0 txs
121 calls
constructor
constructor()
functions
CLAIM_ROLE
viewfunction CLAIM_ROLE() view returns (bytes32)
claimer
viewfunction claimer() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DEPOSIT_ROLE
viewfunction DEPOSIT_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)
getRoleMembers
viewfunction getRoleMembers(bytes32 role) view returns (address[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
oft
viewfunction oft() view returns (address)
PUSH_ROLE
viewfunction PUSH_ROLE() view returns (bytes32)
REDEEM_ROLE
viewfunction REDEEM_ROLE() view returns (bytes32)
sourceCoreAddress
viewfunction sourceCoreAddress() view returns (bytes32)
sourceEndpointId
viewfunction sourceEndpointId() view returns (uint32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
vault
viewfunction vault() view returns (address)
claim
nonpayablefunction claim(bytes data)
deposit
nonpayablefunction deposit(uint256 assets)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(tuple params)
pushToSource
payablefunction pushToSource(uint256 assets) payable
redeem
nonpayablefunction redeem(uint256 shares)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
Claim
event Claim(uint256 assets, bytes data)
Deposit
event Deposit(uint256 assets)
Initialized
event Initialized(uint64 version)
PushToSource
event PushToSource(uint256 assets, (bytes32 guid, uint64 nonce, (uint256 nativeFee, uint256 lzTokenFee) fee) msgReceipt, (uint256 amountSentLD, uint256 amountReceivedLD) oftReceipt)
Redeem
event Redeem(uint256 shares)
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)
TargetCoreStorageInit
event TargetCoreStorageInit((address admin, address vault, address claimer, uint32 sourceEndpointId, bytes32 sourceCoreAddress, address depositRoleHolder, address redeemRoleHolder, address claimRoleHolder, address pushRoleHolder) params)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
FailedCall
error FailedCall()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a060405234801561000f575f80fd5b50610018610021565b336080526100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516121846100eb5f395f61092101526121845ff3fe608060405260043610610147575f3560e01c8063a217fddf116100b3578063ce49042f1161006d578063ce49042f146103f0578063d379be2314610433578063d547741f1461045c578063dae8dbb81461047b578063db006a75146104ae578063fbfa77cf146104cd575f80fd5b8063a217fddf14610321578063a3246ad314610334578063b2d147f814610360578063b6b55f2514610393578063c63ff8dd146103b2578063ca15c873146103d1575f80fd5b806371ca30321161010457806371ca303214610232578063772576c71461025157806386c1b4eb146102845780639010d07c146102b757806391d14854146102ee5780639b5215f61461030d575f80fd5b806301ffc9a71461014b57806311cac6931461017f578063248a9ca3146101945780632f2ff15d146101c1578063353efdcf146101e057806336568abe14610213575b5f80fd5b348015610156575f80fd5b5061016a610165366004611b0f565b6104e1565b60405190151581526020015b60405180910390f35b61019261018d366004611b36565b61050b565b005b34801561019f575f80fd5b506101b36101ae366004611b36565b6107ed565b604051908152602001610176565b3480156101cc575f80fd5b506101926101db366004611b71565b61080d565b3480156101eb575f80fd5b506101b37f0d0f4f2c3a69d5346dc60c7709840b33816dde52d67d94461509b54b59a39fa581565b34801561021e575f80fd5b5061019261022d366004611b71565b61082f565b34801561023d575f80fd5b5061019261024c366004611b9f565b610867565b34801561025c575f80fd5b506101b37fc68cc72e51d1060fd2d52ab4bc5c37623d37835c556599aef0424e391ea036e481565b34801561028f575f80fd5b506101b37f5f8483b6270bfec8f5db1fd04c09453c886fc4113adea39a3e7b07cc1dca97bc81565b3480156102c2575f80fd5b506102d66102d1366004611bb6565b6109e9565b6040516001600160a01b039091168152602001610176565b3480156102f9575f80fd5b5061016a610308366004611b71565b610a16565b348015610318575f80fd5b506102d6610a4c565b34801561032c575f80fd5b506101b35f81565b34801561033f575f80fd5b5061035361034e366004611b36565b610a7a565b6040516101769190611bd6565b34801561036b575f80fd5b506101b37f75bcdd2c70d0bfa583cf15c7a1196c436cb16ccc4d6ea3d79b3e675827da650d81565b34801561039e575f80fd5b506101926103ad366004611b36565b610aaa565b3480156103bd575f80fd5b506101926103cc366004611c22565b610bba565b3480156103dc575f80fd5b506101b36103eb366004611b36565b610e34565b3480156103fb575f80fd5b5061041e5f8051602061210f83398151915254600160a01b900463ffffffff1690565b60405163ffffffff9091168152602001610176565b34801561043e575f80fd5b505f8051602061210f833981519152546001600160a01b03166102d6565b348015610467575f80fd5b50610192610476366004611b71565b610e58565b348015610486575f80fd5b507fa4b0e0c6727e33139d3521e8ca408d0b120de2c59eab4223b7ecace54ec3fa03546101b3565b3480156104b9575f80fd5b506101926104c8366004611b36565b610e74565b3480156104d8575f80fd5b506102d6610f56565b5f6001600160e01b03198216635a05180f60e01b1480610505575061050582610f84565b92915050565b7f75bcdd2c70d0bfa583cf15c7a1196c436cb16ccc4d6ea3d79b3e675827da650d61053581610fb8565b5f61053e610a4c565b60405163180ef33160e31b8152600481018590529091506001600160a01b0382169063c077998890602401602060405180830381865afa158015610584573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a89190611c8e565b6040516370a0823160e01b81523060048201529093505f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156105ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106139190611c8e565b90508084111561066a5760405162461bcd60e51b815260206004820152601f60248201527f546172676574436f72653a20696e73756666696369656e74206173736574730060448201526064015b60405180910390fd5b835f036106775750505050565b5f80836001600160a01b031663c7c7f5b3346040518060e001604052806106b65f8051602061210f83398151915254600160a01b900463ffffffff1690565b63ffffffff1681526020016106e97fa4b0e0c6727e33139d3521e8ca408d0b120de2c59eab4223b7ecace54ec3fa035490565b815260208082018c905260408083018d905280515f808252818401835260608501919091528151818152808401835260808501528151818152808401835260a090940193909352805180820182523481529182019290925290516001600160e01b031960e086901b1681526107649291903390600401611cf2565b60c06040518083038185885af1158015610780573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107a59190611e06565b915091507fd6b1482ea5bfed7479bb53ecaf90fbf5d00e96e640bc7d4ad38176e84aed50ee8683836040516107dc93929190611ea2565b60405180910390a1505050505b5050565b5f9081525f8051602061212f833981519152602052604090206001015490565b610816826107ed565b61081f81610fb8565b6108298383610fc5565b50505050565b6001600160a01b03811633146108585760405163334bd91960e11b815260040160405180910390fd5b6108628282611007565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156108ac5750825b90505f8267ffffffffffffffff1660011480156108c85750303b155b9050811580156108d6575080155b156108f45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561091e57845460ff60401b1916600160401b1785555b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146109965760405162461bcd60e51b815260206004820152601860248201527f546172676574436f72653a206e6f74206465706c6f79657200000000000000006044820152606401610661565b61099f86611040565b83156109e157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016107dc565b505050505050565b5f8281525f805160206120ef833981519152602081905260408220610a0e9084611472565b949350505050565b5f9182525f8051602061212f833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7fa4b0e0c6727e33139d3521e8ca408d0b120de2c59eab4223b7ecace54ec3fa00546001600160a01b031690565b5f8181525f805160206120ef8339815191526020819052604090912060609190610aa39061147d565b9392505050565b7f0d0f4f2c3a69d5346dc60c7709840b33816dde52d67d94461509b54b59a39fa5610ad481610fb8565b5f610add610a4c565b90505f610ae8610f56565b9050610afe6001600160a01b0383168286611489565b604051636e553f6560e01b8152600481018590523060248201526001600160a01b03821690636e553f65906044016020604051808303815f875af1158015610b48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611c8e565b50610b816001600160a01b038316825f61150b565b6040518481527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e384269060200160405180910390a150505050565b7f5f8483b6270bfec8f5db1fd04c09453c886fc4113adea39a3e7b07cc1dca97bc610be481610fb8565b5f610bed610a4c565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610c34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c589190611c8e565b90505f610cb7610c7c5f8051602061210f833981519152546001600160a01b031690565b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506115be92505050565b90508051602014610d0a5760405162461bcd60e51b815260206004820152601c60248201527f546172676574436f72653a20696e76616c696420726573706f6e7365000000006044820152606401610661565b5f81806020019051810190610d1f9190611c8e565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038616906370a0823190602401602060405180830381865afa158015610d66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8a9190611c8e565b9050811580610da25750610d9e8285611f0e565b8114155b15610def5760405162461bcd60e51b815260206004820152601860248201527f546172676574436f72653a20636c61696d206661696c656400000000000000006044820152606401610661565b7f36635d492e51c0a65ce341140983fc2d5d2c760ba44a54c80bb0902f74c1c83d828989604051610e2293929190611f21565b60405180910390a15050505050505050565b5f8181525f805160206120ef833981519152602081905260408220610aa3906115cb565b610e61826107ed565b610e6a81610fb8565b6108298383611007565b7fc68cc72e51d1060fd2d52ab4bc5c37623d37835c556599aef0424e391ea036e4610e9e81610fb8565b610ea6610f56565b604051635d043b2960e11b815260048101849052306024820181905260448201526001600160a01b03919091169063ba087652906064016020604051808303815f875af1158015610ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1d9190611c8e565b506040518281527f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44906020015b60405180910390a15050565b7fa4b0e0c6727e33139d3521e8ca408d0b120de2c59eab4223b7ecace54ec3fa01546001600160a01b031690565b5f6001600160e01b03198216637965db0b60e01b148061050557506301ffc9a760e01b6001600160e01b0319831614610505565b610fc281336115d4565b50565b5f5f805160206120ef83398151915281610fdf858561160d565b90508015610a0e575f858152602083905260409020610ffe90856116ae565b50949350505050565b5f5f805160206120ef8339815191528161102185856116c2565b90508015610a0e575f858152602083905260409020610ffe908561173b565b61104861174f565b61105e5f6110596020840184611f56565b610fc5565b505f61106d6020830183611f56565b6001600160a01b0316148061109957505f61108e6040830160208401611f56565b6001600160a01b0316145b806110bb57505f6110b06060830160408401611f56565b6001600160a01b0316145b156111035760405162461bcd60e51b8152602060048201526018602482015277546172676574436f72653a207a65726f206164647265737360401b6044820152606401610661565b6111136080820160608301611f84565b63ffffffff165f036111605760405162461bcd60e51b8152602060048201526016602482015275546172676574436f72653a207a65726f2076616c756560501b6044820152606401610661565b60808101356111ac5760405162461bcd60e51b8152602060048201526018602482015277546172676574436f72653a207a65726f206164647265737360401b6044820152606401610661565b7fa4b0e0c6727e33139d3521e8ca408d0b120de2c59eab4223b7ecace54ec3fa006111dd6040830160208401611f56565b6001820180546001600160a01b0319166001600160a01b03929092169182179055604080516338d52e0f60e01b815290516338d52e0f916004808201926020929091908290030181865afa158015611237573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125b9190611f9d565b81546001600160a01b0319166001600160a01b03919091161781556112866060830160408401611f56565b6002820180546001600160a01b0319166001600160a01b03929092169190911790556112b86080830160608401611f84565b60028201805463ffffffff92909216600160a01b0263ffffffff60a01b19909216919091179055608082013560038201555f6112fa60c0840160a08501611f56565b6001600160a01b03161461133e5761133c7f0d0f4f2c3a69d5346dc60c7709840b33816dde52d67d94461509b54b59a39fa561105960c0850160a08601611f56565b505b5f61134f60e0840160c08501611f56565b6001600160a01b031614611393576113917fc68cc72e51d1060fd2d52ab4bc5c37623d37835c556599aef0424e391ea036e461105960e0850160c08601611f56565b505b5f6113a5610100840160e08501611f56565b6001600160a01b0316146113ea576113e87f5f8483b6270bfec8f5db1fd04c09453c886fc4113adea39a3e7b07cc1dca97bc611059610100850160e08601611f56565b505b5f6113fd61012084016101008501611f56565b6001600160a01b031614611443576114417f75bcdd2c70d0bfa583cf15c7a1196c436cb16ccc4d6ea3d79b3e675827da650d61105961012085016101008601611f56565b505b7ffa19c973bc01bbdc216969e86d6dbcdee3943dd20a72fb0164c512b76d3fde1882604051610f4a9190611fb8565b5f610aa3838361179a565b60605f610aa3836117c0565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa1580156114d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114fa9190611c8e565b9050610829848461150b8585611f0e565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261155c8482611819565b61082957604080516001600160a01b03851660248201525f6044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526115b4908590611862565b6108298482611862565b6060610aa383835f6118ce565b5f610505825490565b6115de8282610a16565b6107e95760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610661565b5f5f8051602061212f8339815191526116268484610a16565b6116a5575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561165b3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610505565b5f915050610505565b5f610aa3836001600160a01b038416611964565b5f5f8051602061212f8339815191526116db8484610a16565b156116a5575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610505565b5f610aa3836001600160a01b0384166119b0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661179857604051631afcd79f60e31b815260040160405180910390fd5b565b5f825f0182815481106117af576117af612098565b905f5260205f200154905092915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561180d57602002820191905f5260205f20905b8154815260200190600101908083116117f9575b50505050509050919050565b5f805f8060205f8651602088015f8a5af192503d91505f5190508280156118585750811561184a5780600114611858565b5f866001600160a01b03163b115b9695505050505050565b5f8060205f8451602086015f885af180611881576040513d5f823e3d81fd5b50505f513d915081156118985780600114156118a5565b6001600160a01b0384163b155b1561082957604051635274afe760e01b81526001600160a01b0385166004820152602401610661565b6060814710156118fa5760405163cf47918160e01b815247600482015260248101839052604401610661565b5f80856001600160a01b0316848660405161191591906120ac565b5f6040518083038185875af1925050503d805f811461194f576040519150601f19603f3d011682016040523d82523d5f602084013e611954565b606091505b5091509150611858868383611a8a565b5f8181526001830160205260408120546119a957508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610505565b505f610505565b5f81815260018301602052604081205480156116a5575f6119d26001836120c7565b85549091505f906119e5906001906120c7565b9050808214611a44575f865f018281548110611a0357611a03612098565b905f5260205f200154905080875f018481548110611a2357611a23612098565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080611a5557611a556120da565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610505565b606082611a9f57611a9a82611ae6565b610aa3565b8151158015611ab657506001600160a01b0384163b155b15611adf57604051639996b31560e01b81526001600160a01b0385166004820152602401610661565b5080610aa3565b805115611af65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f60208284031215611b1f575f80fd5b81356001600160e01b031981168114610aa3575f80fd5b5f60208284031215611b46575f80fd5b5035919050565b6001600160a01b0381168114610fc2575f80fd5b8035611b6c81611b4d565b919050565b5f8060408385031215611b82575f80fd5b823591506020830135611b9481611b4d565b809150509250929050565b5f6101208284031215611bb0575f80fd5b50919050565b5f8060408385031215611bc7575f80fd5b50508035926020909101359150565b602080825282518282018190525f9190848201906040850190845b81811015611c165783516001600160a01b031683529284019291840191600101611bf1565b50909695505050505050565b5f8060208385031215611c33575f80fd5b823567ffffffffffffffff80821115611c4a575f80fd5b818501915085601f830112611c5d575f80fd5b813581811115611c6b575f80fd5b866020828501011115611c7c575f80fd5b60209290920196919550909350505050565b5f60208284031215611c9e575f80fd5b5051919050565b5f5b83811015611cbf578181015183820152602001611ca7565b50505f910152565b5f8151808452611cde816020860160208601611ca5565b601f01601f19169290920160200192915050565b6080815263ffffffff8451166080820152602084015160a0820152604084015160c0820152606084015160e08201525f608085015160e0610100840152611d3d610160840182611cc7565b905060a0860151607f198085840301610120860152611d5c8383611cc7565b925060c08801519150808584030161014086015250611d7b8282611cc7565b92505050611d96602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b5f60408284031215611dbd575f80fd5b6040516040810181811067ffffffffffffffff82111715611dec57634e487b7160e01b5f52604160045260245ffd5b604052825181526020928301519281019290925250919050565b5f8082840360c0811215611e18575f80fd5b6080811215611e25575f80fd5b506040516060810167ffffffffffffffff8282108183111715611e5657634e487b7160e01b5f52604160045260245ffd5b8160405285518352602086015191508082168214611e72575f80fd5b506020820152611e858560408601611dad565b60408201529150611e998460808501611dad565b90509250929050565b5f60e0820190508482528351602083015267ffffffffffffffff60208501511660408301526040840151611ee3606084018280518252602090810151910152565b50825160a0830152602083015160c0830152610a0e565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561050557610505611efa565b83815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215611f66575f80fd5b8135610aa381611b4d565b803563ffffffff81168114611b6c575f80fd5b5f60208284031215611f94575f80fd5b610aa382611f71565b5f60208284031215611fad575f80fd5b8151610aa381611b4d565b61012081018235611fc881611b4d565b6001600160a01b03168252611fdf60208401611b61565b6001600160a01b03166020830152611ff960408401611b61565b6001600160a01b0316604083015261201360608401611f71565b63ffffffff1660608301526080838101359083015261203460a08401611b61565b6001600160a01b031660a083015261204e60c08401611b61565b6001600160a01b031660c083015261206860e08401611b61565b6001600160a01b031660e0830152610100612084848201611b61565b6001600160a01b0316920191909152919050565b634e487b7160e01b5f52603260045260245ffd5b5f82516120bd818460208701611ca5565b9190910192915050565b8181038181111561050557610505611efa565b634e487b7160e01b5f52603160045260245ffdfec1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000a4b0e0c6727e33139d3521e8ca408d0b120de2c59eab4223b7ecace54ec3fa0202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220d0cb59b226e3863a940bbfe93ee05407b1f98d076ea8ec6dd4b1734e7256d5a364736f6c63430008190033