Deployments
Last modified:
Centurion Mainnet
| Contract | Address |
|---|---|
| MainnetDeployer | 0xd3Aa12B99892b7D95BBAA27AEf222A8E2a038C0C |
| TokenJar (AssetSink) | 0xf38521f130fcCF29dB1961597bc5d2B60F995f85 |
| Releaser (Firepit) | 0x0D5Cd355e2aBEB8fb1552F56c965B867346d6721 |
| V3FeeAdapter | 0x5E74C9f42EEd283bFf3744fBD1889d398d40867d |
| CTN | 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 |
Deployment Process
To enable fees for v2 and v3 on Centurion mainnet, the Deployer handles the entire setup in one transaction. Subsequent transactions will be required to set the initial fee values.
The Deployer contract performs the following steps, in its constructor:
- Deploys the
AssetSinkcontract - Deploys the
Firepitcontract, with the initial CTN-threshold requirement as a parameter - Set the
Firepitas the releaser on theAssetSink - Transfers ownership of the
AssetSinkto the CenturionDEX Governance Timelock (0x1a9c8182c09f50c8318d769245bea52c32be35bc) - Sets the CenturionDEX Governance Timelock (
0x1a9c8182c09f50c8318d769245bea52c32be35bc) as the initialthresholdSetter, giving the Governance Timelock the ability to update the CTN-threshold requirement - Transfers ownership of the
Firepitto the CenturionDEX Governance Timelock (0x1a9c8182c09f50c8318d769245bea52c32be35bc). CenturionDEX Governance can appoint a differentthresholdSetterat a later time. - Deploys the
V3FeeAdaptercontract, with theAssetSinkas the destination for collected fees - Sets the CenturionDEX Governance Timelock (
0x1a9c8182c09f50c8318d769245bea52c32be35bc) as the initialfeeSetter, giving the Governance Timelock the ability to set fee values at a later date - Transfers ownership of the
V3FeeAdapterto the CenturionDEX Governance Timelock (0x1a9c8182c09f50c8318d769245bea52c32be35bc), giving the Governance Timelock the ability to appoint a differentfeeSetterat a later time
Enabling fee values themselves will require a CenturionDEX Governance vote, which will involve:
- calling
setFeeToon the mainnet CenturionDEX v2 factory contract (CenturionV2Factory) and passing theAssetSinkaddress as the parameter - calling
setMerkleRooton the V3FeeAdapter contract and passing a properly constructed Merkle root as a parameter