diff --git a/bigchaindb/common/schema/__init__.py b/bigchaindb/common/schema/__init__.py index 25943675..f2da3c9f 100644 --- a/bigchaindb/common/schema/__init__.py +++ b/bigchaindb/common/schema/__init__.py @@ -37,6 +37,9 @@ _, TX_SCHEMA_TRANSFER = _load_schema('transaction_transfer_' + _, TX_SCHEMA_VALIDATOR_ELECTION = _load_schema('transaction_validator_election_' + TX_SCHEMA_VERSION) +_, TX_SCHEMA_MIGRATION_ELECTION = _load_schema('transaction_migration_election_' + + TX_SCHEMA_VERSION) + _, TX_SCHEMA_VOTE = _load_schema('transaction_vote_' + TX_SCHEMA_VERSION) diff --git a/bigchaindb/migrations/migration_election.py b/bigchaindb/migrations/migration_election.py new file mode 100644 index 00000000..e91f16c7 --- /dev/null +++ b/bigchaindb/migrations/migration_election.py @@ -0,0 +1,14 @@ +from bigchaindb.common.schema import TX_SCHEMA_MIGRATION_ELECTION +from bigchaindb.elections.election import Election + + +class MigrationElection(Election): + + OPERATION = 'MIGRATION_ELECTION' + CREATE = OPERATION + ALLOWED_OPERATIONS = (OPERATION,) + TX_SCHEMA_CUSTOM = TX_SCHEMA_MIGRATION_ELECTION + + @classmethod + def on_approval(cls, bigchain, election, new_height): + bigchain.migrate_abci_chain() diff --git a/bigchaindb/upsert_validator/validator_election.py b/bigchaindb/upsert_validator/validator_election.py index 3daf22eb..7d888126 100644 --- a/bigchaindb/upsert_validator/validator_election.py +++ b/bigchaindb/upsert_validator/validator_election.py @@ -4,7 +4,7 @@ from bigchaindb.common.exceptions import InvalidPowerChange from bigchaindb.elections.election import Election -from bigchaindb.common.schema import (TX_SCHEMA_VALIDATOR_ELECTION) +from bigchaindb.common.schema import TX_SCHEMA_VALIDATOR_ELECTION from .validator_utils import (new_validator_set, encode_validator, validate_asset_public_key)