1 tx
10 calls
constructor
constructor(address owner_, address guardian_, address admin_)
functions
admin
viewfunction admin() view returns (address)
beacons
viewfunction beacons() view returns (address[])
beaconsContains
viewfunction beaconsContains(address beacon_) view returns (bool isContained)
factory
viewfunction factory() view returns (address)
guardian
viewfunction guardian() view returns (address)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
blacklistBeacons
nonpayablefunction blacklistBeacons(address[] beacons_)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
createModule
nonpayablefunction createModule(address vault_, address beacon_, bytes payload_) returns (address module)
initialize
nonpayablefunction initialize(address factory_)
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
transferOwnership
payablefunction transferOwnership(address newOwner) payable
whitelistBeacons
nonpayablefunction whitelistBeacons(address[] beacons_)
events
Initialized
event Initialized(uint8 version)
LogBlacklistBeacons
event LogBlacklistBeacons(address[] beacons)
LogCreatePrivateModule
event LogCreatePrivateModule(address beacon, bytes payload, address vault, address creator, address module)
LogWhitelistBeacons
event LogWhitelistBeacons(address[] beacons)
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
errors
AddressZero
error AddressZero()
AlreadyInitialized
error AlreadyInitialized()
AlreadyWhitelistedBeacon
error AlreadyWhitelistedBeacon(address beacon)
ModuleNotLinkedToMetaVault
error ModuleNotLinkedToMetaVault()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotAlreadyWhitelistedBeacon
error NotAlreadyWhitelistedBeacon(address beacon)
NotBeacon
error NotBeacon()
NotPrivateVault
error NotPrivateVault()
NotSameAdmin
error NotSameAdmin()
NotSameGuardian
error NotSameGuardian()
NotWhitelistedBeacon
error NotWhitelistedBeacon()
Unauthorized
error Unauthorized()
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162001fe538038062001fe5833981016040819052620000349162000108565b8282826001600160a01b03831615806200005557506001600160a01b038216155b806200006857506001600160a01b038116155b156200008757604051639fabe1c160e01b815260040160405180910390fd5b6200009283620000af565b6001600160a01b0391821660a05216608052506200015292505050565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b80516001600160a01b03811681146200010357600080fd5b919050565b6000806000606084860312156200011e57600080fd5b6200012984620000eb565b92506200013960208501620000eb565b91506200014960408501620000eb565b90509250925092565b60805160a051611e5f62000186600039600081816103c80152610f1501526000818161030c01526106710152611e5f6000f3fe608060405260043610620001075760003560e01c8063c45a01551162000095578063f04e283e1162000060578063f04e283e14620002ca578063f2fde38b14620002e1578063f851a44014620002f8578063fee81cf4146200032e57600080fd5b8063c45a01551462000215578063c4d66de8146200024a578063d2d5226f146200026f578063e6d41b2a14620002a557600080fd5b80635de3006711620000d65780635de300671462000189578063715018a614620001ae5780638da5cb5b14620001b85780639a7c469a14620001ee57600080fd5b806325692962146200010c578063452a93201462000118578063455f4bb1146200015a57806354d1f13d146200017f575b600080fd5b6200011662000374565b005b3480156200012557600080fd5b5062000130620003c4565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156200016757600080fd5b50620001306200017936600462001307565b6200045d565b620001166200059a565b3480156200019657600080fd5b5062000116620001a8366004620013a2565b620005d6565b62000116620008db565b348015620001c557600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275462000130565b348015620001fb57600080fd5b5062000206620008f3565b6040516200015191906200141c565b3480156200022257600080fd5b50600054620001309062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156200025757600080fd5b50620001166200026936600462001478565b62000901565b3480156200027c57600080fd5b50620002946200028e36600462001478565b62000b26565b604051901515815260200162000151565b348015620002b257600080fd5b5062000116620002c4366004620013a2565b62000b3b565b62000116620002db36600462001478565b62000c38565b62000116620002f236600462001478565b62000c7d565b3480156200030557600080fd5b50620001307f000000000000000000000000000000000000000000000000000000000000000081565b3480156200033b57600080fd5b50620003656200034d36600462001478565b63389a75e1600c908152600091909152602090205490565b60405190815260200162000151565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fd0506d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000458919062001498565b905090565b60006200046a8562000ca9565b6000546040517f6373089300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526201000090920490911690636373089390602401602060405180830381865afa158015620004e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005089190620014b8565b6200053f576040517f7f5078a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200054d8585858562000cf7565b90507fdb3c402c5be2b4a208adb01e5235a16e18ef6c40b05c7755f69a4ad9c19753df8484848833866040516200058a9695949392919062001525565b60405180910390a1949350505050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b620005e062000ffc565b8060005b818110156200089a57600084848381811062000604576200060462001578565b90506020020160208101906200061b919062001478565b90508073ffffffffffffffffffffffffffffffffffffffff163b6000036200066f576040517fa55e586e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000718919062001498565b73ffffffffffffffffffffffffffffffffffffffff1614158015620007db5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200079c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007c2919062001498565b73ffffffffffffffffffffffffffffffffffffffff1614155b1562000813576040517feb40346500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200082060018262001033565b1562000875576040517f53de135700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b6200088260018262001065565b505080806200089190620015d6565b915050620005e4565b507f6bde1577d0479248e311fb51a5a79d021bc11715892e54392c930f04f91af0218383604051620008ce92919062001611565b60405180910390a1505050565b620008e562000ffc565b620008f1600062001089565b565b6060620004586001620010ef565b600054610100900460ff1615808015620009225750600054600160ff909116105b806200093e5750303b1580156200093e575060005460ff166001145b620009cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200086c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801562000a2b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff821662000a79576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851602179055801562000b2257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600062000b3560018362001033565b92915050565b62000b4562000ffc565b8060005b8181101562000c0457600084848381811062000b695762000b6962001578565b905060200201602081019062000b80919062001478565b905062000b8f60018262001033565b62000bdf576040517fbfc91f8f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016200086c565b62000bec600182620010fe565b5050808062000bfb90620015d6565b91505062000b49565b507fc9c7cb4e2ba2403dca5a6cbb95e64c1e8e47144f5c322ab83f08004b756a0d148383604051620008ce92919062001611565b62000c4262000ffc565b63389a75e1600c52806000526020600c20805442111562000c6b57636f5e88186000526004601cfd5b6000905562000c7a8162001089565b50565b62000c8762000ffc565b8060601b62000c9e57637448fbae6000526004601cfd5b62000c7a8162001089565b73ffffffffffffffffffffffffffffffffffffffff811662000c7a576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600062000d0660018562001033565b62000d3d576040517fa50cfc3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003243858560405160200162000d58949392919062001670565b6040516020818303038152906040528051906020012090508085858560405162000d8290620012d6565b62000d9093929190620016b6565b8190604051809103906000f590508015801562000db1573d6000803e3d6000fd5b5091508173ffffffffffffffffffffffffffffffffffffffff166378df8e706040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e26919062001498565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161462000e8b576040517fd5a3c4ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ed7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000efd919062001498565b73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fd0506d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f7f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fa5919062001498565b73ffffffffffffffffffffffffffffffffffffffff161462000ff3576040517f0ce3888e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50949350505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314620008f1576382b429006000526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b9392505050565b60006200105e8373ffffffffffffffffffffffffffffffffffffffff841662001122565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b606060006200105e8362001174565b60006200105e8373ffffffffffffffffffffffffffffffffffffffff8416620011d2565b60008181526001830160205260408120546200116b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000b35565b50600062000b35565b606081600001805480602002602001604051908101604052809291908181526020018280548015620011c657602002820191906000526020600020905b815481526020019060010190808311620011b1575b50505050509050919050565b60008181526001830160205260408120548015620012cb576000620011f9600183620016f1565b85549091506000906200120f90600190620016f1565b90508181146200127b57600086600001828154811062001233576200123362001578565b906000526020600020015490508087600001848154811062001259576200125962001578565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806200128f576200128f62001707565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062000b35565b600091505062000b35565b6106f3806200173783390190565b73ffffffffffffffffffffffffffffffffffffffff8116811462000c7a57600080fd5b600080600080606085870312156200131e57600080fd5b84356200132b81620012e4565b935060208501356200133d81620012e4565b9250604085013567ffffffffffffffff808211156200135b57600080fd5b818701915087601f8301126200137057600080fd5b8135818111156200138057600080fd5b8860208285010111156200139357600080fd5b95989497505060200194505050565b60008060208385031215620013b657600080fd5b823567ffffffffffffffff80821115620013cf57600080fd5b818501915085601f830112620013e457600080fd5b813581811115620013f457600080fd5b8660208260051b85010111156200140a57600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b818110156200146c57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010162001438565b50909695505050505050565b6000602082840312156200148b57600080fd5b81356200105e81620012e4565b600060208284031215620014ab57600080fd5b81516200105e81620012e4565b600060208284031215620014cb57600080fd5b815180151581146200105e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808916835260a060208401526200155860a08401888a620014dc565b958116604084015293841660608301525091166080909101529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036200160a576200160a620015a7565b5060010190565b60208082528181018390526000908460408401835b86811015620016655782356200163c81620012e4565b73ffffffffffffffffffffffffffffffffffffffff168252918301919083019060010162001626565b509695505050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16815283601482015281836034830137600091016034019081529392505050565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201526000620016e8604083018486620014dc565b95945050505050565b8181038181111562000b355762000b35620015a7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe60806040526040516106f33803806106f383398101604081905261002291610420565b61002e82826000610035565b505061054a565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e0565b8361027a565b505b505050565b6001600160a01b0381163b6101605760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101d4816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c591906104e0565b6001600160a01b03163b151590565b6102395760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610157565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029f83836040518060600160405280602781526020016106cc602791396102a6565b9392505050565b6060600080856001600160a01b0316856040516102c391906104fb565b600060405180830381855af49150503d80600081146102fe576040519150601f19603f3d011682016040523d82523d6000602084013e610303565b606091505b5090925090506103158683838761031f565b9695505050505050565b6060831561038e578251600003610387576001600160a01b0385163b6103875760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610157565b5081610398565b61039883836103a0565b949350505050565b8151156103b05781518083602001fd5b8060405162461bcd60e51b81526004016101579190610517565b80516001600160a01b03811681146103e157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156104175781810151838201526020016103ff565b50506000910152565b6000806040838503121561043357600080fd5b61043c836103ca565b60208401519092506001600160401b038082111561045957600080fd5b818501915085601f83011261046d57600080fd5b81518181111561047f5761047f6103e6565b604051601f8201601f19908116603f011681019083821181831017156104a7576104a76103e6565b816040528281528860208487010111156104c057600080fd5b6104d18360208301602088016103fc565b80955050505050509250929050565b6000602082840312156104f257600080fd5b61029f826103ca565b6000825161050d8184602087016103fc565b9190910192915050565b60208152600082518060208401526105368160408501602087016103fc565b601f01601f19169190910160400192915050565b610173806105596000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100dc565b565b60006100697fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d505473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d79190610100565b905090565b3660008037600080366000845af43d6000803e8080156100fb573d6000f35b3d6000fd5b60006020828403121561011257600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461013657600080fd5b939250505056fea26469706673582212200ed0cf32baa6dfff62db607e3498cd20a8837451de12c274b3950b048509a8ca64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ac9c668c547bbb86d11e617c609904033fe0e1688e405fe8e9833920d18cc24f64736f6c6343000813003300000000000000000000000077bada8fc2a478f1bc1e1e4980916666187d0df70000000000000000000000006f441151b478e0d60588f221f1a35bcc3f7ab981000000000000000000000000af6f9640092cb1236e5db6e517576355b6c40b7f