7 txs
621 calls
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
authorizedFulfillers
viewfunction authorizedFulfillers(address) view returns (bool)
blockedTokens
viewfunction blockedTokens(address) view returns (bool)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
executedChanges
viewfunction executedChanges(bytes32) view returns (bool)
fallbackExecutor
viewfunction fallbackExecutor() view returns (address)
getAllMainContracts
viewfunction getAllMainContracts() view returns (address _marketMakerPool, address _gradientToken, address _orderbook, address _fallbackExecutor, address _router)
getFallbackExecutor
viewfunction getFallbackExecutor() view returns (address)
getOrderbook
viewfunction getOrderbook() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRouter
viewfunction getRouter() view returns (address)
gradientToken
viewfunction gradientToken() view returns (address)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isAuthorizedFulfiller
viewfunction isAuthorizedFulfiller(address fulfiller) view returns (bool)
isChangeReady
viewfunction isChangeReady(string contractName, address newAddress, uint256 timestamp) view returns (bool ready, uint256 executionTime)
isContractsInitialized
viewfunction isContractsInitialized() view returns (bool)
isInitialized
viewfunction isInitialized(string) view returns (bool)
isRewardDistributor
viewfunction isRewardDistributor(address) view returns (bool)
marketMakerPool
viewfunction marketMakerPool() view returns (address)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
orderbook
viewfunction orderbook() view returns (address)
pendingChanges
viewfunction pendingChanges(bytes32) view returns (uint256)
router
viewfunction router() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TIMELOCK_ROLE
viewfunction TIMELOCK_ROLE() view returns (bytes32)
timelockDuration
viewfunction timelockDuration() view returns (uint256)
authorizeFulfiller
nonpayablefunction authorizeFulfiller(address fulfiller, bool status)
cancelContractAddressChange
nonpayablefunction cancelContractAddressChange(string contractName, address newAddress, uint256 timestamp)
executeContractAddressChange
nonpayablefunction executeContractAddressChange(string contractName, address newAddress, uint256 timestamp)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
removeRewardDistributor
nonpayablefunction removeRewardDistributor(address rewardDistributor)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
scheduleContractAddressChange
nonpayablefunction scheduleContractAddressChange(string contractName, address newAddress)
setContractAddress
nonpayablefunction setContractAddress(string contractName, address newAddress)
setMainContracts
nonpayablefunction setMainContracts(address _marketMakerPool, address _gradientToken, address _orderbook, address _fallbackExecutor, address _router)
setRewardDistributor
nonpayablefunction setRewardDistributor(address rewardDistributor)
setTokenBlockStatus
nonpayablefunction setTokenBlockStatus(address token, bool blocked)
updateTimelockDuration
nonpayablefunction updateTimelockDuration(uint256 newDuration)
events
ContractAddressUpdated
event ContractAddressUpdated(string indexed contractName, address indexed oldAddress, address indexed newAddress)
FulfillerAuthorized
event FulfillerAuthorized(address indexed fulfiller, bool status)
RegistryChangeCancelled
event RegistryChangeCancelled(bytes32 indexed changeId)
RegistryChangeExecuted
event RegistryChangeExecuted(bytes32 indexed changeId)
RegistryChangeScheduled
event RegistryChangeScheduled(string indexed contractName, address indexed newAddress, bytes32 indexed changeId, uint256 executionTime)
RewardDistributorRemoved
event RewardDistributorRemoved(address indexed rewardDistributor)
RewardDistributorSet
event RewardDistributorSet(address indexed rewardDistributor)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TimelockDurationUpdated
event TimelockDurationUpdated(uint256 oldDuration, uint256 newDuration)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
creation bytecode
0x60806040526201518060065534801561001757600080fd5b506100236000336100aa565b5061004e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775336100aa565b506100797f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929336100aa565b506100a47ff66846415d2bf9eabda9e84793ff9c0ea96d87f50fc41e66aa16469c6a442f05336100aa565b50610156565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661014c576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101043390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610150565b5060005b92915050565b6120e6806101656000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806367a0b7bb1161013b578063a62986a8116100b8578063c18b1d5e1161007c578063c18b1d5e146105cc578063d547741f146105df578063f288a2e2146105f2578063f5b541a614610619578063f887ea401461064057600080fd5b8063a62986a814610558578063ab63c60714610584578063b0f479a114610595578063b338f203146105a6578063bb6d890f146105b957600080fd5b806391d14854116100ff57806391d14854146104f45780639a4c179e14610507578063a1809b951461052a578063a217fddf1461053d578063a4d6a34b1461054557600080fd5b806367a0b7bb14610485578063745e9e9f146104a857806375b238fc146104bb5780638880ef91146104d05780638c25c139146104e357600080fd5b8063387c8aeb116101c95780634dda55181161018d5780634dda5518146103cb578063526015b4146103eb578063534e785c146103fe57806365145f7f14610411578063674da6cb1461045b57600080fd5b8063387c8aeb1461032857806339b59958146103535780633cc4168d146103765780634513443a146103a45780634c554eea146103b757600080fd5b8063248a9ca311610210578063248a9ca3146102b55780632bbca157146102e65780632f2ff15d146102ef57806336568abe14610302578063366a6d171461031557600080fd5b806301ffc9a71461024257806316ed85251461026a578063184466c91461028d5780631f3108b4146102a2575b600080fd5b610255610250366004611ca9565b610653565b60405190151581526020015b60405180910390f35b610255610278366004611cf6565b600b6020526000908152604090205460ff1681565b6102a061029b366004611d11565b61068a565b005b6102a06102b0366004611d2a565b61077b565b6102d86102c3366004611d11565b60009081526020819052604090206001015490565b604051908152602001610261565b6102d860065481565b6102a06102fd366004611d66565b610849565b6102a0610310366004611d66565b610863565b6102a0610323366004611d92565b610878565b60025461033b906001600160a01b031681565b6040516001600160a01b039091168152602001610261565b610255610361366004611cf6565b600a6020526000908152604090205460ff1681565b610255610384366004611e0d565b805160208183018101805160098252928201919093012091525460ff1681565b60015461033b906001600160a01b031681565b60055461025590600160a01b900460ff1681565b6102d86103d9366004611d11565b60076020526000908152604090205481565b6102a06103f9366004611f0f565b610f39565b6102a061040c366004611f0f565b61114e565b600154600254600354600454600554604080516001600160a01b0396871681529486166020860152928516928401929092528316606083015291909116608082015260a001610261565b61046e610469366004611f63565b6111d7565b604080519215158352602083019190915201610261565b610255610493366004611cf6565b600c6020526000908152604090205460ff1681565b60045461033b906001600160a01b031681565b6102d860008051602061209183398151915281565b6102a06104de366004611d2a565b611272565b6004546001600160a01b031661033b565b610255610502366004611d66565b6112c8565b610255610515366004611d11565b60086020526000908152604090205460ff1681565b6102a0610538366004611cf6565b6112f1565b6102d8600081565b6102a0610553366004611f63565b6113ac565b610255610566366004611cf6565b6001600160a01b03166000908152600c602052604090205460ff1690565b6003546001600160a01b031661033b565b6005546001600160a01b031661033b565b6102a06105b4366004611f63565b61160c565b6102a06105c7366004611cf6565b611744565b60035461033b906001600160a01b031681565b6102a06105ed366004611d66565b6117fc565b6102d87ff66846415d2bf9eabda9e84793ff9c0ea96d87f50fc41e66aa16469c6a442f0581565b6102d87f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b60055461033b906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b148061068457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206120918339815191526106a281611811565b611c208210156106ee5760405162461bcd60e51b8152602060048201526012602482015271111d5c985d1a5bdb881d1bdbc81cda1bdc9d60721b60448201526064015b60405180910390fd5b62093a808211156107355760405162461bcd60e51b81526020600482015260116024820152704475726174696f6e20746f6f206c6f6e6760781b60448201526064016106e5565b600680549083905560408051828152602081018590527fba28959d3dbcba8b3e77020baf4b9ea6eb4b81767892e5bd56747818afb8d4db910160405180910390a1505050565b60008051602061209183398151915261079381611811565b6001600160a01b0383166107e95760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642066756c66696c6c657220616464726573730000000000000060448201526064016106e5565b6001600160a01b0383166000818152600c6020908152604091829020805460ff191686151590811790915591519182527f8cbb29e662f65817b32eeda8de904cb0f83559e6bc14d8a5a80e6c78c0bb7df8910160405180910390a2505050565b600061085481611811565b61085e838361181e565b505050565b600061086e81611811565b61085e8383611843565b60008051602061209183398151915261089081611811565b6001600160a01b0386166108f05760405162461bcd60e51b815260206004820152602160248201527f496e76616c6964206d61726b6574206d616b657220706f6f6c206164647265736044820152607360f81b60648201526084016106e5565b6001600160a01b0385166109465760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206772616469656e7420746f6b656e2061646472657373000060448201526064016106e5565b6001600160a01b03841661099c5760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206f72646572626f6f6b20616464726573730000000000000060448201526064016106e5565b6001600160a01b0383166109fc5760405162461bcd60e51b815260206004820152602160248201527f496e76616c69642066616c6c6261636b206578656375746f72206164647265736044820152607360f81b60648201526084016106e5565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726f75746572206164647265737360501b60448201526064016106e5565b600554600160a01b900460ff16610cbb57610a8d6040518060400160405280600f81526020016e13585c9ad95d13585ad95c941bdbdb608a1b81525087611876565b60016009604051610ab3906e13585c9ad95d13585ad95c941bdbdb608a1b8152600f0190565b908152602001604051809103902060006101000a81548160ff021916908315150217905550610b076040518060400160405280600d81526020016c23b930b234b2b73a2a37b5b2b760991b81525086611876565b60016009604051610b2b906c23b930b234b2b73a2a37b5b2b760991b8152600d0190565b908152602001604051809103902060006101000a81548160ff021916908315150217905550610b7b604051806040016040528060098152602001684f72646572626f6f6b60b81b81525085611876565b60016009604051610b9b90684f72646572626f6f6b60b81b815260090190565b908152602001604051809103902060006101000a81548160ff021916908315150217905550610bf26040518060400160405280601081526020016f2330b6363130b1b5a2bc32b1baba37b960811b81525084611876565b60016009604051610c19906f2330b6363130b1b5a2bc32b1baba37b960811b815260100190565b908152602001604051809103902060006101000a81548160ff021916908315150217905550610c66604051806040016040528060068152602001652937baba32b960d11b81525083611876565b60016009604051610c8390652937baba32b960d11b815260060190565b908152604051908190036020019020805491151560ff199092169190911790556005805460ff60a01b1916600160a01b179055610f31565b60408051631498056d60e21b81526004810191909152600f60448201526e13585c9ad95d13585ad95c941bdbdb608a1b60648201526001600160a01b0387166024820152309063526015b490608401600060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b505060408051631498056d60e21b81526004810191909152600d60448201526c23b930b234b2b73a2a37b5b2b760991b60648201526001600160a01b038816602482015230925063526015b49150608401600060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505060408051631498056d60e21b8152600481019190915260096044820152684f72646572626f6f6b60b81b60648201526001600160a01b038716602482015230925063526015b49150608401600060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b505060408051631498056d60e21b81526004810191909152601060448201526f2330b6363130b1b5a2bc32b1baba37b960811b60648201526001600160a01b038616602482015230925063526015b49150608401600060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505060408051631498056d60e21b8152600481019190915260066044820152652937baba32b960d11b60648201526001600160a01b038516602482015230925063526015b49150608401600060405180830381600087803b158015610f1857600080fd5b505af1158015610f2c573d6000803e3d6000fd5b505050505b505050505050565b600080516020612091833981519152610f5181611811565b6001600160a01b038216610f995760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106e5565b60098484604051610fab929190611fbf565b9081526040519081900360200190205460ff1661103c5761100384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250611876915050565b600160098585604051611017929190611fbf565b908152604051908190036020019020805491151560ff19909216919091179055611148565b6000848484426040516020016110559493929190611fcf565b60408051601f19818403018152918152815160209283012060008181526007909352912054909150156110ca5760405162461bcd60e51b815260206004820152601860248201527f4368616e676520616c7265616479207363686564756c6564000000000000000060448201526064016106e5565b6000600654426110da9190611fff565b600083815260076020526040908190208290555190915082906001600160a01b0386169061110b9089908990611fbf565b604051908190038120848252907fb79dd82cda4fe45f47e5ca219f0564be215e0cbf2e5ced954adaba1038305c959060200160405180910390a450505b50505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961117881611811565b604051631498056d60e21b8152309063526015b49061119f90879087908790600401612020565b600060405180830381600087803b1580156111b957600080fd5b505af11580156111cd573d6000803e3d6000fd5b5050505050505050565b6000806000868686866040516020016111f39493929190611fcf565b60408051601f1981840301815291815281516020928301206000818152600790935291205492509050811580611237575060008181526008602052604090205460ff165b15611249576000809250925050611269565b81421015801561126557506112618262015180611fff565b4211155b9250505b94509492505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961129c81611811565b506001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008051602061209183398151915261130981611811565b6001600160a01b03821661135f5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206469737472696275746f722061646472657373000000000060448201526064016106e5565b6001600160a01b0382166000818152600b6020526040808220805460ff19166001179055517f075c02c513a415bd4ff5976f8aa6fc5767d2183daca9ec00ab71ce78e8bf81589190a25050565b7ff66846415d2bf9eabda9e84793ff9c0ea96d87f50fc41e66aa16469c6a442f056113d681611811565b6000858585856040516020016113ef9493929190611fcf565b60408051601f1981840301815291815281516020928301206000818152600790935291205490915061145d5760405162461bcd60e51b8152602060048201526017602482015276139bc81c195b991a5b99c818da185b99d948199bdd5b99604a1b60448201526064016106e5565b60008181526008602052604090205460ff16156114b65760405162461bcd60e51b815260206004820152601760248201527610da185b99d948185b1c9958591e48195e1958dd5d1959604a1b60448201526064016106e5565b60008181526007602052604090205442101561150b5760405162461bcd60e51b8152602060048201526014602482015273151a5b595b1bd8dac81b9bdd08195e1c1a5c995960621b60448201526064016106e5565b6000818152600760205260409020546115279062015180611fff565b4211156115765760405162461bcd60e51b815260206004820152601860248201527f457865637574696f6e2077696e646f772065787069726564000000000000000060448201526064016106e5565b6000818152600860209081526040808320805460ff1916600117905560078252808320929092558151601f88018290048202810182019092528682526115d991908890889081908401838280828437600092019190915250889250611876915050565b60405181907f3eb132d19b3d0199c275534574f53d6689be25bdd7a00e7b289a62ef717f963190600090a2505050505050565b60008051602061209183398151915261162481611811565b60008585858560405160200161163d9493929190611fcf565b60408051601f198184030181529181528151602092830120600081815260079093529120549091506116ab5760405162461bcd60e51b8152602060048201526017602482015276139bc81c195b991a5b99c818da185b99d948199bdd5b99604a1b60448201526064016106e5565b60008181526008602052604090205460ff16156117045760405162461bcd60e51b815260206004820152601760248201527610da185b99d948185b1c9958591e48195e1958dd5d1959604a1b60448201526064016106e5565b6000818152600760205260408082208290555182917f50563c2e420182d451e8616b08592c68a3bfbd1ec5e3a7c1071955afa569995091a2505050505050565b60008051602061209183398151915261175c81611811565b6001600160a01b0382166117b25760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206469737472696275746f722061646472657373000000000060448201526064016106e5565b6001600160a01b0382166000818152600b6020526040808220805460ff19169055517f51493821a1424bebf150d9f396be5e9a86af464e975f17d50832d7fb9305f04b9190a25050565b600061180781611811565b61085e8383611b4a565b61181b8133611b6f565b50565b60008281526020819052604090206001015461183981611811565b6111488383611bac565b6001600160a01b038116331461186c5760405163334bd91960e11b815260040160405180910390fd5b61085e8282611c3e565b815160208084019190912060408051808201909152600f81526e13585c9ad95d13585ad95c941bdbdb608a1b92019190915260007f5718351ee587a0afb959821a09ec82f3b6c9f9380db9f35dd993888f1776effe82016118f65750600180546001600160a01b038481166001600160a01b031983161790925516611af2565b60408051808201909152600d81526c23b930b234b2b73a2a37b5b2b760991b6020909101527f54e3a05f34e90baf519af85968cf9cc129d111387d3d32365198b2589f45fd1282016119675750600280546001600160a01b038481166001600160a01b031983161790925516611af2565b6040805180820190915260098152684f72646572626f6f6b60b81b6020909101527f88183fb9287568c59859b76b448f3503c4694b223403814ad47f73822cf48b8682016119d45750600380546001600160a01b038481166001600160a01b031983161790925516611af2565b60408051808201909152601081526f2330b6363130b1b5a2bc32b1baba37b960811b6020909101527f6092fd3727db459d2a5913fbcf4972989120ddb175ccf394f9f9ea095d2742f98201611a485750600480546001600160a01b038481166001600160a01b031983161790925516611af2565b6040805180820190915260068152652937baba32b960d11b6020909101527fc0fa6c26f3dfc3122ad4150e0d1cc1096a75b7119436e7f149ac2ff2cb119e738201611ab25750600580546001600160a01b038481166001600160a01b031983161790925516611af2565b60405162461bcd60e51b8152602060048201526015602482015274496e76616c696420636f6e7472616374206e616d6560581b60448201526064016106e5565b826001600160a01b0316816001600160a01b031685604051611b149190612061565b604051908190038120907fa90fb318cef160851f542872dfce25dadafdfde152ba8cc05e3f0b882842e53c90600090a450505050565b600082815260208190526040902060010154611b6581611811565b6111488383611c3e565b611b7982826112c8565b611ba85760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016106e5565b5050565b6000611bb883836112c8565b611c36576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611bee3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610684565b506000610684565b6000611c4a83836112c8565b15611c36576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610684565b600060208284031215611cbb57600080fd5b81356001600160e01b031981168114611cd357600080fd5b9392505050565b80356001600160a01b0381168114611cf157600080fd5b919050565b600060208284031215611d0857600080fd5b611cd382611cda565b600060208284031215611d2357600080fd5b5035919050565b60008060408385031215611d3d57600080fd5b611d4683611cda565b915060208301358015158114611d5b57600080fd5b809150509250929050565b60008060408385031215611d7957600080fd5b82359150611d8960208401611cda565b90509250929050565b600080600080600060a08688031215611daa57600080fd5b611db386611cda565b9450611dc160208701611cda565b9350611dcf60408701611cda565b9250611ddd60608701611cda565b9150611deb60808701611cda565b90509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611e1f57600080fd5b813567ffffffffffffffff811115611e3657600080fd5b8201601f81018413611e4757600080fd5b803567ffffffffffffffff811115611e6157611e61611df7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611e9057611e90611df7565b604052818152828201602001861015611ea857600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083601f840112611ed857600080fd5b50813567ffffffffffffffff811115611ef057600080fd5b602083019150836020828501011115611f0857600080fd5b9250929050565b600080600060408486031215611f2457600080fd5b833567ffffffffffffffff811115611f3b57600080fd5b611f4786828701611ec6565b9094509250611f5a905060208501611cda565b90509250925092565b60008060008060608587031215611f7957600080fd5b843567ffffffffffffffff811115611f9057600080fd5b611f9c87828801611ec6565b9095509350611faf905060208601611cda565b9396929550929360400135925050565b8183823760009101908152919050565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b8082018082111561068457634e487b7160e01b600052601160045260246000fd5b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b6000825160005b818110156120825760208186018101518583015201612068565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220c785fcaabf6ef3872d629c65bb6d1ae14274c550084dde255cf62948eb8f83de64736f6c634300081a0033