generated from peersky/bootstrap_solidity
-
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Milestone
Description
Add new interface & abstract implementation to Distributor contract to configure #16 . It:
- Takes arguments:
- distributionId
- old version requirements
- new version requirements
migrationContractaddress- Migration strategy when upgrade requested, Enum:
- CALL:
- will call migration contract using Migration contract API #15, implementation if migration contract is zero
- DELEGATECALL:
- let migration contract handle and execute migration on behalf of distributor.
- Check ERC165 compatibility with interface defined in Migration contract API #15
- If
migrationContractis zero call implementation instead - use signature from Major release migration data #11 specified calldata appended with user arguments.
- REPOSITORY_MANGED:
- use
delegatecallusing calldata specified in Major release migration data #11. - call
migrationContract, if address is zero call implementation instead - if version increment is more than one, iterate trough
- Revert if if version is downgraded
- use
- CALL:
- Stores migration info: (
migrationContract, both requirements) as hashmap where key ishash(distributionId,strategy,migrationContract) - Emits events:
MigrationContractAddedFromVersions(uint256 indexed oldRequirementBase, uint8 indexed oldRequirement, address migrationContract, uint8 strategy)MigrationContractAddedToVersions(uint256 indexed newVersionsBase, uint8 indexed newRequirement, address migrationContract, uint8 strategy)
Add interface implementation to ownable distributor contract. It:
- Can add migration contract only by owner
Metadata
Metadata
Assignees
Labels
No labels