1 tx
2 calls
constructor
constructor(address _systemRegistry)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getSystemRegistry
viewfunction getSystemRegistry() view returns (address)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
SOLVER_EXECUTION_ROLE
viewfunction SOLVER_EXECUTION_ROLE() view returns (bytes32)
SOLVER_RECOVERY_ROLE
viewfunction SOLVER_RECOVERY_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
execute
payablefunction execute(address vault, tuple rebalanceParams, bytes data) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
onFlashLoan
nonpayablefunction onFlashLoan(address, address tokenIn, uint256, uint256, bytes data) returns (bytes32)
recover
payablefunction recover(address[] tokens, uint256[] amounts, address[] destinations) payable
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
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)
TokensRecovered
event TokensRecovered(address[] tokens, uint256[] amounts, address[] destinations)
errors
ArraysLengthMismatch
error ArraysLengthMismatch()
CannotRenounceOwnership
error CannotRenounceOwnership()
DynamicStateVariableLengthInvalid
error DynamicStateVariableLengthInvalid()
ExecutionFailed
error ExecutionFailed(bytes32 command)
InvalidCalltype
error InvalidCalltype()
OnlyAutoPool
error OnlyAutoPool()
SingleReturnValuePermittedStatic
error SingleReturnValuePermittedStatic()
SingleReturnValuePermittedVariable
error SingleReturnValuePermittedVariable()
StaticStateVariableLengthInvalid
error StaticStateVariableLengthInvalid()
ValueCallNoValueIndicated
error ValueCallNoValueIndicated()
ZeroAddress
error ZeroAddress(string name)
ZeroParam
error ZeroParam(string name)
creation bytecode
0x6101006040527f4208d9aa7c658dc4c5bcda3bc04e7a99676d37c39bb0ff92589c9a5c464646a460c0527f080f48546d472b593fe966fe6eb27f7ffae3db1952dad4640f0d261382ae981760e052348015610058575f80fd5b506040516124ce3803806124ce833981016040819052610077916102d4565b3060805260408051808201909152600e81526d73797374656d526567697374727960901b60208201526100ab908290610157565b61013a816001600160a01b031663047e51386040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010e91906102d4565b60408051808201909152601081526f6175746f706f6f6c526567697374727960801b6020820152610157565b6001600160a01b03811660a0526101515f3361018d565b5061032b565b6001600160a01b038216610189578060405163eac0d38960e01b815260040161018091906102f6565b60405180910390fd5b5050565b610189828261019c82826101b8565b5f8281526001602052604090206101b39082610254565b505050565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16610189575f828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556102103390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f610268836001600160a01b038416610271565b90505b92915050565b5f8181526001830160205260408120546102b657508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561026b565b505f61026b565b6001600160a01b03811681146102d1575f80fd5b50565b5f602082840312156102e4575f80fd5b81516102ef816102bd565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161215e6103705f395f8181610305015261061b01525f818161023b01526107a901525f81816102d2015261035501525f505061215e5ff3fe6080604052600436106100e7575f3560e01c8063a217fddf11610087578063ca15c87311610057578063ca15c87314610283578063d547741f146102a2578063f12baf5c146102c1578063f369073a146102f4575f80fd5b8063a217fddf14610217578063ae66b8451461022a578063bef893e81461025d578063c0be882e14610270575f80fd5b80632f2ff15d116100c25780632f2ff15d1461018157806336568abe146101a25780639010d07c146101c157806391d14854146101f8575f80fd5b806301ffc9a7146100f257806323e30c8b14610126578063248a9ca314610153575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c3660046117b7565b610327565b60405190151581526020015b60405180910390f35b348015610131575f80fd5b50610145610140366004611836565b610351565b60405190815260200161011d565b34801561015e575f80fd5b5061014561016d3660046118ac565b5f9081526020819052604090206001015490565b34801561018c575f80fd5b506101a061019b3660046118c3565b610527565b005b3480156101ad575f80fd5b506101a06101bc3660046118c3565b610550565b3480156101cc575f80fd5b506101e06101db3660046118f1565b6105d3565b6040516001600160a01b03909116815260200161011d565b348015610203575f80fd5b506101116102123660046118c3565b6105f1565b348015610222575f80fd5b506101455f81565b348015610235575f80fd5b506101457f000000000000000000000000000000000000000000000000000000000000000081565b6101a061026b366004611951565b610619565b6101a061027e3660046119db565b6107a7565b34801561028e575f80fd5b5061014561029d3660046118ac565b61083a565b3480156102ad575f80fd5b506101a06102bc3660046118c3565b610850565b3480156102cc575f80fd5b506101e07f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ff575f80fd5b506101457f000000000000000000000000000000000000000000000000000000000000000081565b5f6001600160e01b03198216635a05180f60e01b148061034b575061034b82610874565b92915050565b5f337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663047e51386040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d39190611a45565b60405163652b9b4160e01b81526001600160a01b038381166004830152919091169063652b9b4190602401602060405180830381865afa158015610419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043d9190611a60565b61045a5760405163deb3a51f60e01b815260040160405180910390fd5b865f8061046986880188611bd8565b9150915061047782826108a8565b506040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156104bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e09190611c92565b90506104f66001600160a01b0385163383610bc8565b507f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99b9a5050505050505050505050565b5f8281526020819052604090206001015461054181610c1a565b61054b8383610c27565b505050565b6001600160a01b03811633146105c55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105cf8282610c48565b5050565b5f8281526001602052604081206105ea9083610c69565b9392505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000061064381610c1a565b6040805180820190915260068152650d8cadccee8d60d31b6020820152869061066d908290610c74565b808514158061067c5750808314155b1561069a576040516307e11acb60e51b815260040160405180910390fd5b7f85149cb8df6da5069c543d856504fa27912a9b91c9a6d1275c8f56ae194e2d138888888888886040516106d396959493929190611cf1565b60405180910390a15f5b8181101561079c575f805f8b8b858181106106fa576106fa611d55565b905060200201602081019061070f9190611d69565b8a8a8681811061072157610721611d55565b9050602002013589898781811061073a5761073a611d55565b905060200201602081019061074f9190611d69565b9194509250905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0384161461078e5761078e6001600160a01b0384168284610bc8565b5050508060010190506106dd565b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006107d181610c1a565b604051636e23e11d60e11b815285906001600160a01b0382169063dc47c23a90610805903090899089908990600401611dac565b5f604051808303815f87803b15801561081c575f80fd5b505af115801561082e573d5f803e3d5ffd5b50505050505050505050565b5f81815260016020526040812061034b90610c96565b5f8281526020819052604090206001015461086a81610c1a565b61054b8383610c48565b5f6001600160e01b03198216637965db0b60e01b148061034b57506301ffc9a760e01b6001600160e01b031983161461034b565b60605f805f8060605f885190505f5b81811015610bba578981815181106108d1576108d1611d55565b6020026020010151965060d887901c5f1c60ff169550604086165f1461091d57896108fb82611e79565b9150818151811061090e5761090e611d55565b6020026020010151945061092e565b602887901b6001600160d01b031794505b600386166109a0576001600160a01b03871661094b8a8988610c9f565b6040516109589190611ea8565b5f60405180830381855af49150503d805f8114610990576040519150601f19603f3d011682016040523d82523d5f602084013e610995565b606091505b509094509250610b52565b60016003871603610a06576001600160a01b0387166109c08a8988610c9f565b6040516109cd9190611ea8565b5f604051808303815f865af19150503d805f8114610990576040519150601f19603f3d011682016040523d82523d5f602084013e610995565b60026003871603610a6b576001600160a01b038716610a268a8988610c9f565b604051610a339190611ea8565b5f60405180830381855afa9150503d805f8114610990576040519150601f19603f3d011682016040523d82523d5f602084013e610995565b600380871603610b39575f808a8760f81c60ff1681518110610a8f57610a8f611d55565b602002602001015190508051602014610abb57604051630c3afcad60e31b815260040160405180910390fd5b602081015191506001600160a01b03891682610adf8d8c60088c901b60ff17610c9f565b604051610aec9190611ea8565b5f6040518083038185875af1925050503d805f8114610b26576040519150601f19603f3d011682016040523d82523d5f602084013e610b2b565b606091505b509096509450610b52915050565b60405163684f9be760e11b815260040160405180910390fd5b83610b835782515f03610b7b576040516355feb88f60e11b8152600481018890526024016105bc565b825183602001fd5b6080861615610ba057610b9b89605889901b85610f66565b610bb2565b610baf89605889901b85611008565b98505b6001016108b7565b509698975050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261054b9084906110de565b610c2481336111af565b50565b610c318282611208565b5f82815260016020526040902061054b908261128b565b610c52828261129f565b5f82815260016020526040902061054b9082611303565b5f6105ea8383611317565b815f036105cf578060405163cf4ee34760e01b81526004016105bc9190611ee1565b5f61034b825490565b60605f8060605f805b6020811015610de357868160208110610cc357610cc3611d55565b1a915060fe19820115610de3576080821615610d885760fe8203610d1f5782515f03610d0c5788604051602001610cfa9190611ef3565b60405160208183030381529060405292505b8251610d189086611f56565b9450610dd4565b5f89607f841681518110610d3557610d35611d55565b6020026020010151519050602081610d4d9190611f69565b15610d6b5760405163456eb8cf60e11b815260040160405180910390fd5b610d76816020611f56565b610d809087611f56565b955050610dd4565b88607f831681518110610d9d57610d9d611d55565b602002602001015151602014610dc657604051633d2b471960e21b815260040160405180910390fd5b610dd1602086611f56565b94505b60209390930192600101610ca8565b50610def846004611f56565b6001600160401b03811115610e0657610e06611a7f565b6040519080825280601f01601f191660200182016040528015610e30576020820181803683370190505b5094508660208601525f93505f5b6020811015610f5a57868160208110610e5957610e59611d55565b1a915060fe19820115610f5a576080821615610f1d5760fe8203610ec457858501602401849052610ea583602088610e92886004611f56565b60208851610ea09190611f88565b61133d565b60208351610eb39190611f88565b610ebd9085611f56565b9350610f4b565b5f89607f841681518110610eda57610eda611d55565b602002602001015190505f81519050858760248a010152610f0a825f8a896004610f049190611f56565b8561133d565b610f148187611f56565b95505050610f4b565b5f89607f841681518110610f3357610f33611d55565b60200260200101519050602081015186602489010152505b60209490940193600101610e3e565b50505050509392505050565b60f882901c60fe198101610f7a5750505050565b5f82516020610f899190611f56565b6001600160401b03811115610fa057610fa0611a7f565b6040519080825280601f01601f191660200182016040528015610fca576020820181803683370190505b50858381518110610fdd57610fdd611d55565b602002602001018190529050610ff8835f836020875161133d565b8251806020830152505050505050565b606060f883901c60fe19810161102157849150506105ea565b60808116156110915760fe810361104d57828060200190518101906110469190611f9b565b94506110d5565b60208381015190811461107357604051633ada1c3b60e01b815260040160405180910390fd5b508251601f19016020848101918252607f83168102870101526110d5565b82516020146110b357604051635c5b1ab160e11b815260040160405180910390fd5b8285607f8316815181106110c9576110c9611d55565b60200260200101819052505b50929392505050565b5f611132826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113579092919063ffffffff16565b80519091501561054b57808060200190518101906111509190611a60565b61054b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105bc565b6111b982826105f1565b6105cf576111c68161136d565b6111d183602061137f565b6040516020016111e292919061208a565b60408051601f198184030181529082905262461bcd60e51b82526105bc91600401611ee1565b61121282826105f1565b6105cf575f828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556112473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f6105ea836001600160a01b038416611514565b6112a982826105f1565b156105cf575f828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f6105ea836001600160a01b038416611560565b5f825f01828154811061132c5761132c611d55565b905f5260205f200154905092915050565b808260208501018286602089010160045afa505050505050565b606061136584845f85611643565b949350505050565b606061034b6001600160a01b03831660145b60605f61138d8360026120e8565b611398906002611f56565b6001600160401b038111156113af576113af611a7f565b6040519080825280601f01601f1916602001820160405280156113d9576020820181803683370190505b509050600360fc1b815f815181106113f3576113f3611d55565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061142157611421611d55565b60200101906001600160f81b03191690815f1a9053505f6114438460026120e8565b61144e906001611f56565b90505b60018111156114c5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061148257611482611d55565b1a60f81b82828151811061149857611498611d55565b60200101906001600160f81b03191690815f1a90535060049490941c936114be816120ff565b9050611451565b5083156105ea5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105bc565b5f81815260018301602052604081205461155957508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561034b565b505f61034b565b5f818152600183016020526040812054801561163a575f611582600183611f88565b85549091505f9061159590600190611f88565b90508181146115f4575f865f0182815481106115b3576115b3611d55565b905f5260205f200154905080875f0184815481106115d3576115d3611d55565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061160557611605612114565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061034b565b5f91505061034b565b6060824710156116a45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105bc565b5f80866001600160a01b031685876040516116bf9190611ea8565b5f6040518083038185875af1925050503d805f81146116f9576040519150601f19603f3d011682016040523d82523d5f602084013e6116fe565b606091505b509150915061170f8783838761171a565b979650505050505050565b606083156117885782515f03611781576001600160a01b0385163b6117815760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105bc565b5081611365565b611365838381511561179d5781518083602001fd5b8060405162461bcd60e51b81526004016105bc9190611ee1565b5f602082840312156117c7575f80fd5b81356001600160e01b0319811681146105ea575f80fd5b6001600160a01b0381168114610c24575f80fd5b5f8083601f840112611802575f80fd5b5081356001600160401b03811115611818575f80fd5b60208301915083602082850101111561182f575f80fd5b9250929050565b5f805f805f8060a0878903121561184b575f80fd5b8635611856816117de565b95506020870135611866816117de565b9450604087013593506060870135925060808701356001600160401b0381111561188e575f80fd5b61189a89828a016117f2565b979a9699509497509295939492505050565b5f602082840312156118bc575f80fd5b5035919050565b5f80604083850312156118d4575f80fd5b8235915060208301356118e6816117de565b809150509250929050565b5f8060408385031215611902575f80fd5b50508035926020909101359150565b5f8083601f840112611921575f80fd5b5081356001600160401b03811115611937575f80fd5b6020830191508360208260051b850101111561182f575f80fd5b5f805f805f8060608789031215611966575f80fd5b86356001600160401b0381111561197b575f80fd5b61198789828a01611911565b90975095505060208701356001600160401b038111156119a5575f80fd5b6119b189828a01611911565b90955093505060408701356001600160401b038111156119cf575f80fd5b61189a89828a01611911565b5f805f808486036101008112156119f0575f80fd5b85356119fb816117de565b945060c0601f1982011215611a0e575f80fd5b5060208501925060e08501356001600160401b03811115611a2d575f80fd5b611a39878288016117f2565b95989497509550505050565b5f60208284031215611a55575f80fd5b81516105ea816117de565b5f60208284031215611a70575f80fd5b815180151581146105ea575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611abb57611abb611a7f565b604052919050565b5f6001600160401b03821115611adb57611adb611a7f565b5060051b60200190565b5f6001600160401b03821115611afd57611afd611a7f565b50601f01601f191660200190565b5f82601f830112611b1a575f80fd5b8135611b2d611b2882611ac3565b611a93565b8082825260208201915060208360051b860101925085831115611b4e575f80fd5b602085015b83811015611bce5780356001600160401b03811115611b70575f80fd5b8601603f81018813611b80575f80fd5b6020810135611b91611b2882611ae5565b8181526040838301018a1015611ba5575f80fd5b816040840160208301375f60208383010152808652505050602083019250602081019050611b53565b5095945050505050565b5f8060408385031215611be9575f80fd5b82356001600160401b03811115611bfe575f80fd5b8301601f81018513611c0e575f80fd5b8035611c1c611b2882611ac3565b8082825260208201915060208360051b850101925087831115611c3d575f80fd5b6020840193505b82841015611c5f578335825260209384019390910190611c44565b945050505060208301356001600160401b03811115611c7c575f80fd5b611c8885828601611b0b565b9150509250929050565b5f60208284031215611ca2575f80fd5b5051919050565b8183526020830192505f815f5b84811015611ce7578135611cc9816117de565b6001600160a01b031686526020958601959190910190600101611cb6565b5093949350505050565b606081525f611d0460608301888a611ca9565b82810360208401528581526001600160fb1b03861115611d22575f80fd5b8560051b808860208401370182810360209081016040850152611d489082018587611ca9565b9998505050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611d79575f80fd5b81356105ea816117de565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03851681525f8435611dc4816117de565b6001600160a01b0316602083810191909152850135611de2816117de565b6001600160a01b0316604083810191909152850135606080840191909152850135611e0c816117de565b6001600160a01b0316608083810191909152850135611e2a816117de565b6001600160a01b031660a08381019190915285013560c083015261010060e08301819052611e5b9083018486611d84565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611e8a57611e8a611e65565b5060010190565b5f81518060208401855e5f93019283525090919050565b5f6105ea8284611e91565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6105ea6020830184611eb3565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611f4a57603f19878603018452611f35858351611eb3565b94506020938401939190910190600101611f19565b50929695505050505050565b8082018082111561034b5761034b611e65565b5f82611f8357634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561034b5761034b611e65565b5f60208284031215611fab575f80fd5b81516001600160401b03811115611fc0575f80fd5b8201601f81018413611fd0575f80fd5b8051611fde611b2882611ac3565b8082825260208201915060208360051b850101925086831115611fff575f80fd5b602084015b8381101561207f5780516001600160401b03811115612021575f80fd5b8501603f81018913612031575f80fd5b6020810151612042611b2882611ae5565b8181526040838301018b1015612056575f80fd5b8160408401602083015e5f60208383010152808652505050602083019250602081019050612004565b509695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f6120bb6017830185611e91565b7001034b99036b4b9b9b4b733903937b6329607d1b81526120df6011820185611e91565b95945050505050565b808202811582820484141761034b5761034b611e65565b5f8161210d5761210d611e65565b505f190190565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220bb25f6691e427bb84462fe47bd617f99f061ceba0ef3a5b229e126dafcd75ae464736f6c634300081a00330000000000000000000000002218f90a98b0c070676f249ef44834686daa4285