3 txs
400 calls
constructor
constructor(address _vault, address _stakingFactory)
functions
allocationConfigs
viewfunction allocationConfigs(address, uint256) view returns (uint8 allocationType, address admin, uint256 percentage, bytes data)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DEPLOYER_ROLE
viewfunction DEPLOYER_ROLE() view returns (bytes32)
getAllocationConfig
viewfunction getAllocationConfig(address token) view returns (tuple[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
stakingFactory
viewfunction stakingFactory() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalAllocationPercentage
viewfunction totalAllocationPercentage(address token) view returns (uint256)
vault
viewfunction vault() view returns (address)
createAllocationConfig
nonpayablefunction createAllocationConfig(address token, tuple[] configs)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
hook
nonpayablefunction hook(address token, address admin) returns (address)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setDefaultConfig
nonpayablefunction setDefaultConfig(tuple[] configs)
setStakingFactory
nonpayablefunction setStakingFactory(address _stakingFactory)
setVault
nonpayablefunction setVault(address _vault)
events
AllocationConfigCreated
event AllocationConfigCreated(uint8 allocationType, address indexed admin, uint256 percentage, bytes data)
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)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AllocationAlreadyExists
error AllocationAlreadyExists()
NotImplemented
error NotImplemented()
TokenAlreadyDeployed
error TokenAlreadyDeployed()
TransferFailed
error TransferFailed()
creation bytecode
0x608080604052346103c6576040816120fd803803809161001f82856103cb565b8339810103126103c65761003e6020610037836103ee565b92016103ee565b604051909190602081016001600160401b038111828210176103b05760408181526201518060208301526301e1338082820152815261007e6060826103cb565b60405190608082016001600160401b038111838210176103b057604052600182526000602083015260146040830152606082015281526004546001600455806001106102c7575b50600460005260206000206000915b6001831061013b575050506100e833610453565b506100f2336104cf565b506100fc33610567565b50600180546001600160a01b039283166001600160a01b03199182161790915560028054939092169216919091179055604051611a7d90816106008239f35b8051805160038110156102b15783546020830151610100600160a81b0360089190911b1660ff929092166001600160a81b0319909116171783556040810151600184015560600151805160028401916000906001600160401b03831161029d576101a58454610402565b601f8111610262575b50602090601f84116001146101fb579280836003969360209660019996936101f0575b50505060001982871b1c191690861b1790555b019201920191906100d4565b0151915038806101d1565b601f198416858452828420935b81811061024a575093600196936003969388938360209810610232575b505050811b0190556101e4565b015160001983891b60f8161c19169055388080610225565b92936020600181928786015181550195019301610208565b61028d9085845260208420601f860160051c81019160208710610293575b601f0160051c019061043c565b386101ae565b9091508190610280565b634e487b7160e01b82526041600452602482fd5b634e487b7160e01b600052602160045260246000fd5b8060030290600382040361039a5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b017f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e5b81811061032b57506100c5565b8060006003925560006001820155600281016103478154610402565b9081610356575b50500161031e565b81601f6000931160011461036e5750555b388061034e565b8183526020832061038a91601f0160051c81019060010161043c565b8082528160208120915555610367565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176103b057604052565b51906001600160a01b03821682036103c657565b90600182811c92168015610432575b602083101461041c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610411565b818110610447575050565b6000815560010161043c565b6001600160a01b03811660009081526000805160206120dd833981519152602052604090205460ff166104c9576001600160a01b031660008181526000805160206120dd83398151915260205260408120805460ff1916600117905533919060008051602061207d8339815191528180a4600190565b50600090565b6001600160a01b038116600090815260008051602061209d833981519152602052604090205460ff166104c9576001600160a01b0316600081815260008051602061209d83398151915260205260408120805460ff191660011790553391907f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b089060008051602061207d8339815191529080a4600190565b6001600160a01b03811660009081526000805160206120bd833981519152602052604090205460ff166104c9576001600160a01b031660008181526000805160206120bd83398151915260205260408120805460ff191660011790553391907ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c9060008051602061207d8339815191529080a460019056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a71461128d57508063248a9ca31461125857806325b4406b146111bb57806329134768146111945780632f2ff15d1461115457806336568abe146110f557806366a56d7614610d8e5780636817031b14610d33578063813a97ab1461093e5780638de3cb2a146108cb57806391d148541461087d578063a217fddf14610861578063d547741f1461081a578063e5b4abd1146102dc578063ec87621c146102a1578063ecd0026114610266578063ee66202a14610177578063f5f954291461011c5763fbfa77cf146100f057600080fd5b346101175760006003193601126101175760206001600160a01b0360015416604051908152f35b600080fd5b34610117576020600319360112610117576004356001600160a01b038116809103610117576101496117f3565b7fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255600080f35b34610117576020600319360112610117576001600160a01b0361019861132b565b1660005260036020526101ae6040600020611711565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b8282106101e657505050500390f35b91936020610256827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652608060608a5161022b8482516114a6565b6001600160a01b038682015116868501526040810151604085015201519181606082015201906114b3565b96019201920185949391926101d7565b346101175760006003193601126101175760206040517ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c8152f35b346101175760006003193601126101175760206040517f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b088152f35b34610117576040600319360112610117576102f561132b565b6102fd611341565b90610306611865565b6001600160a01b038116908160005260036020526103276040600020611711565b9283511561075c575b604051927f18160ddd000000000000000000000000000000000000000000000000000000008452602084600481845afa93841561050d57600094610725575b5060005b855181101561071a5760406103888288611658565b5101518086029086820414861517156107045760649004906040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201528260448201526020816064816000885af1801561050d576106e8575b506104026103fc8289611658565b51611679565b60038110156106d257610545576001546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602481018390526020816044816000885af1801561050d57610519575b506001600160a01b0360015416916001600160a01b036020610487848b611658565b51015116906060610498848b611658565b51015193803b156101175760009283896104e1604051988996879586947f57dcff4e000000000000000000000000000000000000000000000000000000008652600486016117c5565b03925af191821561050d576001926104fc575b505b01610373565b6000610507916113df565b876104f4565b6040513d6000823e3d90fd5b6105399060203d811161053e575b61053181836113df565b8101906117ad565b610465565b503d610527565b6105526103fc8289611658565b60038110156106d257600103610661576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602481018390526020816044816000885af1801561050d57610645575b506001600160a01b036002541660606105d1838a611658565b51015192813b156101175760009186838961061b604051988996879586947f57dcff4e000000000000000000000000000000000000000000000000000000008652600486016117c5565b03925af191821561050d57600192610634575b506104f6565b600061063f916113df565b8761062e565b61065c9060203d811161053e5761053181836113df565b6105b8565b6103fc61066e9188611658565b60038110156106d2576002036106a8577fd62347250000000000000000000000000000000000000000000000000000000060005260046000fd5b7fd62347250000000000000000000000000000000000000000000000000000000060005260046000fd5b634e487b7160e01b600052602160045260246000fd5b6106ff9060203d811161053e5761053181836113df565b6103ee565b634e487b7160e01b600052601160045260246000fd5b602082604051908152f35b90936020823d602011610754575b81610740602093836113df565b81010312610751575051928561036f565b80fd5b3d9150610733565b925060045461076a816114f4565b9061077860405192836113df565b80825260046000908152907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b602084015b8284106107ba575050505092610330565b604051906107c7826113c3565b825460ff81169160038310156106d257836001600160a01b036020936003956001975260081c168382015284860154604082015261080760028701611402565b60608201528152019201930192906107a9565b346101175760406003193601126101175761085f600435610839611341565b9061085a61085582600052600060205260016040600020015490565b6118d7565b6119b8565b005b3461011757600060031936011261011757602060405160008152f35b3461011757604060031936011261011757610896611341565b60043560005260006020526001600160a01b0360406000209116600052602052602060ff604060002054166040519015158152f35b34610117576020600319360112610117576001600160a01b036108ec61132b565b1660005260036020526109026040600020611711565b600090815b81518310156109335761092b60019160406109228686611658565b5101519061166c565b920191610907565b602090604051908152f35b346101175760406003193601126101175761095761132b565b60243567ffffffffffffffff81116101175761097790369060040161150c565b90610980611865565b803b610d09576001600160a01b0316806000526003602052604060002054610c9b5760009190825b8251841015610cfc576109c19060406109228686611658565b906109cf6103fc8585611658565b60038110156106d25715610c62575b8060005260036020526040600020936109f78185611658565b5194805468010000000000000000811015610c4c57610a1b91600182018155611357565b959095610c365780519560038710156106d257600260609160009860ff825491168060ff1983161783557fffffffffffffffffffffff00000000000000000000000000000000000000000074ffffffffffffffffffffffffffffffffffffffff00602088015160081b16921617178155604084015160018201550191015180519067ffffffffffffffff8211610c2257610ab58354611389565b601f8111610be7575b50602090601f8311600114610b8257918091610af49360019798999a92610b77575b50506000198260011b9260031b1c19161790565b90555b610b046103fc8287611658565b7fcb52c480b9daf3bba79a7bffd39121bb299076896553a46dac069d0d45fc67386001600160a01b036020610b39858a611658565b51015116916040610b4a858a611658565b51015190610b6c6060610b5d878c611658565b51015160405193849384611686565b0390a20192916109a8565b015190508980610ae0565b601f198316848a52828a20995b818110610bcf575091600196979899918488959410610bb6575b505050811b019055610af7565b015160001960f88460031b161c19169055888080610ba9565b92996020600181928d8601518155019b019301610b8f565b610c1290848a5260208a20601f850160051c81019160208610610c18575b601f0160051c0190611641565b88610abe565b9091508190610c05565b602488634e487b7160e01b81526041600452fd5b634e487b7160e01b600052600060045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60005b848110610c7257506109de565b610c7f6103fc8286611658565b60038110156106d2571580610cc5575b610c9b57600101610c65565b7f89ac0f210000000000000000000000000000000000000000000000000000000060005260046000fd5b506001600160a01b036020610cda8387611658565b510151166001600160a01b036020610cf28888611658565b5101511614610c8f565b605a61085f9111156116ac565b7f6474d0da0000000000000000000000000000000000000000000000000000000060005260046000fd5b34610117576020600319360112610117576004356001600160a01b03811680910361011757610d606117f3565b7fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155600080f35b346101175760206003193601126101175760043567ffffffffffffffff811161011757610dbf90369060040161150c565b610dc76117f3565b600454600060045580611022575b506000805b8251821015610cfc57610df39060406109228486611658565b90610dfe8184611658565b5160045468010000000000000000811015610c4c57806001610e2592016004556004611357565b610c365781519060038210156106d257600260609160009360ff825491168060ff1983161783557fffffffffffffffffffffff00000000000000000000000000000000000000000074ffffffffffffffffffffffffffffffffffffffff00602089015160081b1692161717815560408501516001820155019201519081519167ffffffffffffffff831161100e57610ebd8454611389565b601f8111610fde575b50602091601f8411600114610f77576001959493610ef993909283610f6c5750506000198260011b9260031b1c19161790565b90555b610f096103fc8286611658565b7fcb52c480b9daf3bba79a7bffd39121bb299076896553a46dac069d0d45fc67386001600160a01b036020610f3e8589611658565b51015116916040610f4f8589611658565b51015190610f626060610b5d878b611658565b0390a20190610dda565b015190508880610ae0565b9190601f198416858452828420935b818110610fc6575091600196959492918388959310610fad575b505050811b019055610efc565b015160001960f88460031b161c19169055878080610fa0565b92936020600181928786015181550195019301610f86565b6110089085845260208420601f860160051c81019160208710610c1857601f0160051c0190611641565b87610ec6565b602482634e487b7160e01b81526041600452fd5b806003029060038204036107045760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b017f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8181106110865750610dd5565b8060006003925560006001820155600281016110a28154611389565b90816110b1575b505001611079565b81601f600093116001146110c95750555b84806110a9565b818352602083206110e591601f0160051c810190600101611641565b80825281602081209155556110c2565b346101175760406003193601126101175761110e611341565b336001600160a01b0382160361112a5761085f906004356119b8565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b346101175760406003193601126101175761085f600435611173611341565b9061118f61085582600052600060205260016040600020015490565b61191e565b346101175760006003193601126101175760206001600160a01b0360025416604051908152f35b34610117576040600319360112610117576111d461132b565b6001600160a01b036024359116600052600360205260406000208054821015610117576001600160a01b039161120991611357565b50611254815491611221600260018301549201611402565b9060405194846112358760ff8198166114a6565b60081c16602085015260408401526080606084015260808301906114b3565b0390f35b34610117576020600319360112610117576020611285600435600052600060205260016040600020015490565b604051908152f35b3461011757602060031936011261011757600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011757817f7965db0b0000000000000000000000000000000000000000000000000000000060209314908115611301575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112fa565b600435906001600160a01b038216820361011757565b602435906001600160a01b038216820361011757565b8054821015611373576000526003602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156113b9575b60208310146113a357565b634e487b7160e01b600052602260045260246000fd5b91607f1691611398565b6080810190811067ffffffffffffffff821117610c4c57604052565b90601f601f19910116810190811067ffffffffffffffff821117610c4c57604052565b906040519182600082549261141684611389565b8084529360018116908115611484575060011461143d575b5061143b925003836113df565b565b90506000929192526020600020906000915b81831061146857505090602061143b928201013861142e565b602091935080600191548385890101520191019091849261144f565b6020935061143b95925060ff1991501682840152151560051b8201013861142e565b9060038210156106d25752565b919082519283825260005b8481106114df575050601f19601f8460006020809697860101520116010190565b806020809284010151828286010152016114be565b67ffffffffffffffff8111610c4c5760051b60200190565b9080601f8301121561011757813591611524836114f4565b9261153260405194856113df565b80845260208085019160051b830101918383116101175760208101915b83831061155e57505050505090565b823567ffffffffffffffff8111610117578201906080601f198388030112610117576040519161158d836113c3565b6020810135600381101561011757835260408101356001600160a01b038116810361011757602084015260608101356040840152608081013567ffffffffffffffff81116101175760209101019086601f830112156101175781359267ffffffffffffffff8411610c4c5760405161160f6020601f19601f88011601826113df565b84815288602086860101116101175760006020868197828098018386013783010152606082015281520192019161154f565b81811061164c575050565b60008155600101611641565b80518210156113735760209160051b010190565b9190820180921161070457565b5160038110156106d25790565b6116a99392611697826060946114a6565b602082015281604082015201906114b3565b90565b156116b357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f546f74616c2070657263656e74616765206d757374206265203c3d20393000006044820152fd5b9081549161171e836114f4565b9261172c60405194856113df565b808452602084019160005260206000206000925b82841061174d5750505050565b6040519061175a826113c3565b825460ff81169160038310156106d257836001600160a01b036020936003956001975260081c168382015284860154604082015261179a60028701611402565b6060820152815201920193019290611740565b90816020910312610117575180151581036101175790565b90926001600160a01b03608093816116a99796168452166020830152604082015281606082015201906114b3565b3360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff161561182c57565b63e2517d3f60e01b600052336004527f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0860245260446000fd5b3360009081527f740c5e3e456bed56f053f960110118ba9b95a1f5359a82283516fb2e81b6e37e602052604090205460ff161561189e57565b63e2517d3f60e01b600052336004527ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c60245260446000fd5b80600052600060205260406000206001600160a01b03331660005260205260ff60406000205416156119065750565b63e2517d3f60e01b6000523360045260245260446000fd5b80600052600060205260406000206001600160a01b03831660005260205260ff60406000205416156000146119b15780600052600060205260406000206001600160a01b0383166000526020526040600020600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b80600052600060205260406000206001600160a01b03831660005260205260ff604060002054166000146119b15780600052600060205260406000206001600160a01b038316600052602052604060002060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a460019056fea2646970667358221220a4b60390fc83b0cfb17e17a7b5a0ce68330e998c21c4b6813acada5d4e0dd7d464736f6c634300081a00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0de84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645740c5e3e456bed56f053f960110118ba9b95a1f5359a82283516fb2e81b6e37ead3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5000000000000000000000000da902c1f73160dade69ab3c3355110442359eb70000000000000000000000000c749105bc4b4ea6285dbbe2e8221c922bea07a9d