0 txs
4 calls
constructor
No constructor.
functions
assignedId
viewfunction assignedId(address strategy) view returns (uint96 strategyId)
getStrategy
viewfunction getStrategy(uint96 strategyId) view returns (address strategy)
owner
viewfunction owner(uint96 strategyId) view returns (address owner)
proposedOwnershipTransfer
viewfunction proposedOwnershipTransfer(uint96 strategyId) view returns (address newOwner)
proposedUpdate
viewfunction proposedUpdate(uint96 strategyId) view returns (address newStrategy, uint96 executableAt, bytes32 migrationDataHash)
STRATEGY_UPDATE_DELAY
viewfunction STRATEGY_UPDATE_DELAY() view returns (uint256)
totalRegistered
viewfunction totalRegistered() view returns (uint256)
acceptOwnershipTransfer
nonpayablefunction acceptOwnershipTransfer(uint96 strategyId)
cancelOwnershipTransfer
nonpayablefunction cancelOwnershipTransfer(uint96 strategyId)
cancelStrategyUpdate
nonpayablefunction cancelStrategyUpdate(uint96 strategyId)
proposeOwnershipTransfer
nonpayablefunction proposeOwnershipTransfer(uint96 strategyId, address newOwner)
proposeStrategyUpdate
nonpayablefunction proposeStrategyUpdate(uint96 strategyId, address newStrategy, bytes migrationData)
registerStrategy
nonpayablefunction registerStrategy(address firstOwner, address strategy) returns (uint96 strategyId)
updateStrategy
nonpayablefunction updateStrategy(uint96 strategyId, bytes migrationData)
events
StrategyOwnershipTransferCanceled
event StrategyOwnershipTransferCanceled(uint96 strategyId, address receiver)
StrategyOwnershipTransferProposed
event StrategyOwnershipTransferProposed(uint96 strategyId, address newOwner)
StrategyOwnershipTransferred
event StrategyOwnershipTransferred(uint96 strategyId, address newOwner)
StrategyRegistered
event StrategyRegistered(address owner, uint96 strategyId, address strategy)
StrategyUpdateCanceled
event StrategyUpdateCanceled(uint96 strategyId, address strategy)
StrategyUpdated
event StrategyUpdated(uint96 strategyId, address newStrategy)
StrategyUpdateProposed
event StrategyUpdateProposed(uint96 strategyId, address newStrategy, bytes migrationData)
errors
AddressIsNotStrategy
error AddressIsNotStrategy(address notStrategy)
AssetIsNotFirstToken
error AssetIsNotFirstToken(address invalidStrategy)
AssetMismatch
error AssetMismatch()
MigrationDataMismatch
error MigrationDataMismatch(uint96 strategyId)
MissingStrategyProposedUpdate
error MissingStrategyProposedUpdate(uint96 strategyId)
ProposedStrategyBalancesAreLowerThanCurrentStrategy
error ProposedStrategyBalancesAreLowerThanCurrentStrategy()
StrategyAlreadyProposedUpdate
error StrategyAlreadyProposedUpdate()
StrategyAlreadyRegistered
error StrategyAlreadyRegistered()
StrategyOwnershipTransferAlreadyProposed
error StrategyOwnershipTransferAlreadyProposed()
StrategyOwnershipTransferWithoutPendingProposal
error StrategyOwnershipTransferWithoutPendingProposal()
StrategyUpdateBeforeDelay
error StrategyUpdateBeforeDelay(uint96 strategyId)
TokensSupportedMismatch
error TokensSupportedMismatch()
UnauthorizedOwnershipReceiver
error UnauthorizedOwnershipReceiver()
UnauthorizedStrategyOwner
error UnauthorizedStrategyOwner()
creation bytecode
0x608080604052346027575f80546001600160601b0319166001179055611b8a908161002c8239f35b5f80fdfe60806040818152600480361015610014575f80fd5b5f925f3560e01c9081632c35c4611461132357508063495b910a1461119c57806350528b721461117f57806379c1ae8c1461112d5780637cf8eafb14610cf1578063927416c014610c6d5780639467b648146106a0578063a4f7af241461048d578063a785a2521461043b578063af91eca8146103e9578063c6096ef01461029f578063dd38f2351461024d578063e8783c75146101225763fe945d68146100ba575f80fd5b3461011e57602060031936011261011e5760609282916bffffffffffffffffffffffff6100e5611477565b1682526020522090600182549201549080519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c6020840152820152f35b8280fd5b508290346102495760206003193601126102495761013e611477565b6bffffffffffffffffffffffff8116808452600560205273ffffffffffffffffffffffffffffffffffffffff8585205416923384036102225750839461021c917fa71a0648ad7590614e87b4f5d42c6b7b4d40ac59440fefec98a0cbf0dbc22568955260036020528086207fffffffffffffffffffffffff00000000000000000000000000000000000000009085828254161790556005602052818720908154169055519283928390929173ffffffffffffffffffffffffffffffffffffffff6020916bffffffffffffffffffffffff604085019616845216910152565b0390a180f35b85517f64d6e8f0000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b5050346102495760206003193601126102495773ffffffffffffffffffffffffffffffffffffffff816020936bffffffffffffffffffffffff61028e611477565b168152600385522054169051908152f35b50829034610249576020600319360112610249576102bb611477565b6bffffffffffffffffffffffff8116808452600360205273ffffffffffffffffffffffffffffffffffffffff80868620541633036103c1578185526005602052858520541692831561039a5750839461021c917f64615951aa4d73586ea4fce6350577c74038fbf158af9fa67ea4bef6077a5926955260056020528086207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055519283928390929173ffffffffffffffffffffffffffffffffffffffff6020916bffffffffffffffffffffffff604085019616845216910152565b85517f8091b5c5000000000000000000000000000000000000000000000000000000008152fd5b8386517faa8e74c0000000000000000000000000000000000000000000000000000000008152fd5b5050346102495760206003193601126102495773ffffffffffffffffffffffffffffffffffffffff816020936bffffffffffffffffffffffff61042a611477565b168152600585522054169051908152f35b5050346102495760206003193601126102495773ffffffffffffffffffffffffffffffffffffffff816020936bffffffffffffffffffffffff61047c611477565b168152600185522054169051908152f35b509190346102495780600319360112610249576104a86114b5565b916104b1611492565b936104bb8561178b565b6104c4856119ae565b73ffffffffffffffffffffffffffffffffffffffff80951690818352602095600287526bffffffffffffffffffffffff9586868620541661067857868554169684865260028952868620917fffffffffffffffffffffffffffffffffffffffff00000000000000000000000092898482541617905588875260018a52878720937fffffffffffffffffffffffff000000000000000000000000000000000000000094878682541617905560038b52888820911680948254161790556001880181811161064c57917fcab03cfaad202b039879a613239a6dad32f9d1feb08b8b014be2b61d1f9eb4a893916060931690875416178655865190815287898201528487820152a1813b1561011e57846084849283875195869485937ff50cd5f8000000000000000000000000000000000000000000000000000000008552840152816024840152606060448401528160648401525af180156106425761062b575b505051908152f35b610635829161154f565b61063f5780610623565b80fd5b83513d84823e3d90fd5b6024876011877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8286517fabc225e9000000000000000000000000000000000000000000000000000000008152fd5b5090346109f257806003193601126109f2576106ba611477565b91602467ffffffffffffffff81358181116109f2576106dc90369085016114d8565b95906bffffffffffffffffffffffff80831692835f526020926003845273ffffffffffffffffffffffffffffffffffffffff998a8a5f2054163303610c4557855f52888552895f20928a519461073186611506565b84548d8116875260a01c8c8888019180835260018098015491890191825215610c1657516107603686886115de565b89815191012003610be85751164210610bba57908b94939291875f528387528b5f2080549d8e169d87875116907fffffffffffffffffffffffff0000000000000000000000000000000000000000161790558c5f52600287528b5f2080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169055875f528a8752838c5f205f8155015f9055858551168c51918291610837918390929173ffffffffffffffffffffffffffffffffffffffff6020916bffffffffffffffffffffffff604085019616845216910152565b037f4a4465e9e9f0da1f878812386a2002d1d4333a08bd823d167e6595517ae5f26791a18a51907fa69a2ad1000000000000000000000000000000000000000000000000000000008083528d838d815a935f94fa918215610b7c578b8f8f928f8b8b5f995f99610b86575b505f969798999a8793926108ef925116948951998a98899788967f6b6b97cd0000000000000000000000000000000000000000000000000000000088528701528501526044840191611614565b03925af1998a15610b7c57908d92915f9b610b08575b50505f908c8888511693518094819382525afa928315610afe5784935f9392849291610ad8575b5092935090915f855b6109f6575b505050505050511692833b156109f2575f957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f88946084948b519c8d9a8b998a977ff50cd5f8000000000000000000000000000000000000000000000000000000008952880152860152606060448601528051918291826064880152018686015e85858286010152011681010301925af19081156109e957506109dd575080f35b6109e7915061154f565b005b513d5f823e3d90fd5b5f80fd5b9b9e9c9d9b8151811015610ace575f865b610a8d575b83518103610a3d57508f8f517f9478ee28000000000000000000000000000000000000000000000000000000008152fd5b9d9f9c9e9d610a57610a4f838761196d565b51918761196d565b5110610a6557850185610935565b8c8e517f6d9cff25000000000000000000000000000000000000000000000000000000008152fd5b868451821080610aac575b15610aa65780910190610a07565b50610a0c565b5089610ab8848661196d565b51168a610ac5848861196d565b51161415610a98565b9e9b9d9c9e61093a565b909350610af791503d805f833e610aef8183611563565b8101906116f4565b925f61092c565b8c513d5f823e3d90fd5b919a5091503d805f843e610b1c8184611563565b82019188818403126109f25780519182116109f2570181601f820112156109f2578c815192610b56610b4d856115a4565b92519283611563565b8382528984840101116109f2575f898f9480828496018386015e8301015299905f610905565b8d513d5f823e3d90fd5b6108ef919a505f979899509a610ba88894939c3d8087833e610aef8183611563565b9c909c9a9998509293509a99906108a2565b888a888d51917f626db871000000000000000000000000000000000000000000000000000000008352820152fd5b8a8c8a8f51917f4b5e53ff000000000000000000000000000000000000000000000000000000008352820152fd5b508a8c8a8f51917ffbd0bbc5000000000000000000000000000000000000000000000000000000008352820152fd5b888a517faa8e74c0000000000000000000000000000000000000000000000000000000008152fd5b5090346109f2575f6003193601126109f2576bffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815f54160191818311610cc557602093505191168152f35b6011847f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b5090346109f25760606003193601126109f257610d0c611477565b90610d15611492565b9060443567ffffffffffffffff81116109f257610d3590369086016114d8565b90916bffffffffffffffffffffffff80951693845f526020956003875273ffffffffffffffffffffffffffffffffffffffff9182845f205416330361110557610d7d8161178b565b610d86816119ae565b865f52888852835f205460a01c6110dd57821691825f526002885281845f2054166110b557865f526001885280845f20541684517f38d52e0f000000000000000000000000000000000000000000000000000000008082528a828d81895afa918215611016575f9261107e575b5086519081528a818d81865afa80156110165784905f90611048575b819250169116036110205784517f6ff97f1d000000000000000000000000000000000000000000000000000000008082525f828d81895afa918215611016575f92610ff8575b505f908c88518095819382525afa918215610fee5790610e7d92915f92610fca575b50611aee565b15610fa2576203f480420190814211610f765791600188606095937fffffffffffffffffffffffff00000000000000000000000000000000000000008998967fe8e9f4be158ca7ae553e2bd5cf5552723eb14cb54b26a55f42c9e854b78914699e8e610eef8e610f719f9e36916115de565b818151910120958a5198610f028a611506565b8a8a52828a01961686528a89019687525f5252875f20955116915160a01b1617835551910155805f5260028852815f20877fffffffffffffffffffffffffffffffffffffffff000000000000000000000000825416179055815197889788528701528501526060840191611614565b0390a1005b60118a7f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b8884517f9478ee28000000000000000000000000000000000000000000000000000000008152fd5b610fe79192503d805f833e610fdf8183611563565b810190611944565b908c610e77565b86513d5f823e3d90fd5b5f91925061100f903d8084833e610fdf8183611563565b9190610e55565b87513d5f823e3d90fd5b8985517f83c1010a000000000000000000000000000000000000000000000000000000008152fd5b50508a81813d8311611077575b61105f8183611563565b810103126109f25783611072819261166a565b610e0f565b503d611055565b9091508a81813d83116110ae575b6110968183611563565b810103126109f2576110a79061166a565b908c610df3565b503d61108c565b8884517fabc225e9000000000000000000000000000000000000000000000000000000008152fd5b8884517f1ab4baf3000000000000000000000000000000000000000000000000000000008152fd5b8884517faa8e74c0000000000000000000000000000000000000000000000000000000008152fd5b82346109f25760206003193601126109f25760209073ffffffffffffffffffffffffffffffffffffffff61115f6114b5565b165f52600282526bffffffffffffffffffffffff815f2054169051908152f35b82346109f2575f6003193601126109f257602090516203f4808152f35b5090346109f2576020806003193601126109f2576111b8611477565b906bffffffffffffffffffffffff8216805f526003825273ffffffffffffffffffffffffffffffffffffffff9182855f20541633036112fb57815f52858152845f209185519261120784611506565b60018154868116865260a01c918285870152015487850152156112cc579582917fa28350d9d0c04299d24f31a2c0017beea820deb8b391af4f0d99086dbbb729629785610f71969551165f5260028252875f207fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081541690555f52525f60018682208281550155511692519283928390929173ffffffffffffffffffffffffffffffffffffffff6020916bffffffffffffffffffffffff604085019616845216910152565b866024918751917ffbd0bbc5000000000000000000000000000000000000000000000000000000008352820152fd5b8585517faa8e74c0000000000000000000000000000000000000000000000000000000008152fd5b9050346109f257826003193601126109f25761133d611477565b90611346611492565b926bffffffffffffffffffffffff831690815f52600360205273ffffffffffffffffffffffffffffffffffffffff9283875f20541633036114525750815f52600560205282865f20541661142b575093610f71917fe9a70b4e732c4f74f5838a1914c7496b472fdb0d1e77a9d0ffaba77930c0d040955f526005602052815f209085167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055519283928390929173ffffffffffffffffffffffffffffffffffffffff6020916bffffffffffffffffffffffff604085019616845216910152565b85517ffd391d59000000000000000000000000000000000000000000000000000000008152fd5b7faa8e74c0000000000000000000000000000000000000000000000000000000008152fd5b600435906bffffffffffffffffffffffff821682036109f257565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036109f257565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036109f257565b9181601f840112156109f25782359167ffffffffffffffff83116109f257602083818601950101116109f257565b6060810190811067ffffffffffffffff82111761152257604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161152257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761152257604052565b67ffffffffffffffff811161152257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926115ea826115a4565b916115f86040519384611563565b8294818452818301116109f2578281602093845f960137010152565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b67ffffffffffffffff81116115225760051b60200190565b519073ffffffffffffffffffffffffffffffffffffffff821682036109f257565b9080601f830112156109f2578151906020916116a681611652565b936116b46040519586611563565b81855260208086019260051b8201019283116109f257602001905b8282106116dd575050505090565b8380916116e98461166a565b8152019101906116cf565b91906040838203126109f25782519267ffffffffffffffff938481116109f2578261172091830161168b565b93602091828101519182116109f257019180601f840112156109f257825161174781611652565b936117556040519586611563565b818552838086019260051b8201019283116109f2578301905b82821061177c575050505090565b8151815290830190830161176e565b73ffffffffffffffffffffffffffffffffffffffff16604051906020808301907f01ffc9a70000000000000000000000000000000000000000000000000000000091828152815f60249685888201528781526117e681611506565b51617530938785fa923d5f519085611939575b508461192f575b50836118bc575b83611847575b50505015611819575050565b604051907fa5462fde0000000000000000000000000000000000000000000000000000000082526004820152fd5b829350905f91856040518581019283527fe8662db9000000000000000000000000000000000000000000000000000000008982015288815261188881611506565b5192fa5f5190913d836118b1575b5050816118a7575b505f808061180d565b905015155f61189e565b101591505f80611896565b9250815f604051828101908682527fffffffff00000000000000000000000000000000000000000000000000000000898201528881526118fb81611506565b51908785fa5f51833d83611924575b50508161191a575b501592611807565b905015155f611912565b10159150835f61190a565b151593505f611800565b84111594505f6117f9565b906020828203126109f257815167ffffffffffffffff81116109f25761196a920161168b565b90565b80518210156119815760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6040517f6ff97f1d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216915f82600481865afa918215611ac7575f92611ad2575b50604051917f38d52e0f000000000000000000000000000000000000000000000000000000008352602083600481875afa928315611ac7575f93611a8b575b5080511561198157602001518116911603611a5a5750565b602490604051907f4423619d0000000000000000000000000000000000000000000000000000000082526004820152fd5b9092506020813d602011611abf575b81611aa760209383611563565b810103126109f257611ab89061166a565b915f611a42565b3d9150611a9a565b6040513d5f823e3d90fd5b611ae79192503d805f833e610fdf8183611563565b905f611a03565b908151815111611b8457905f905b8251821015611b7c5773ffffffffffffffffffffffffffffffffffffffff80611b25848661196d565b5116915f945f5b8251811015611b705783611b40828561196d565b51168514611b5057600101611b2c565b5093925093505060015b15611b69576001019091611afc565b5050505f90565b50939250939050611b5a565b505050600190565b50505f9056