0 txs
3k calls
constructor
constructor(address endpoint_, address usdai_, address stakedUsdai_, address usdaiOAdapter_, address stakedUsdaiOAdapter_, address usdaiQueuedDepositor_)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
IMPLEMENTATION_VERSION
viewfunction IMPLEMENTATION_VERSION() view returns (string)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addWhitelistedOAdapters
nonpayablefunction addWhitelistedOAdapters(address[] oAdapters)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address[] oAdapters)
localCompose
payablefunction localCompose(uint8 actionType, address depositToken, uint256 depositAmount, bytes data) payable
lzCompose
payablefunction lzCompose(address from, bytes32, bytes message, address, bytes) payable
removeWhitelistedOAdapters
nonpayablefunction removeWhitelistedOAdapters(address[] oAdapters)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
rescue
nonpayablefunction rescue(address token, address to, uint256 amount)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
ActionFailed
event ActionFailed(string indexed action, bytes reason)
ComposerDeposit
event ComposerDeposit(uint256 indexed dstEid, address indexed depositToken, address indexed recipient, uint256 depositAmount, uint256 usdaiAmount)
ComposerDepositAndStake
event ComposerDepositAndStake(uint256 indexed dstEid, address indexed depositToken, address indexed recipient, uint256 depositAmount, uint256 usdaiAmount, uint256 susdaiAmount)
ComposerQueuedDeposit
event ComposerQueuedDeposit(uint8 indexed queueType, address indexed depositToken, address indexed recipient, uint256 depositAmount)
Initialized
event Initialized(uint64 version)
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)
WhitelistedOAdaptersAdded
event WhitelistedOAdaptersAdded(address[] oAdapters)
WhitelistedOAdaptersRemoved
event WhitelistedOAdaptersRemoved(address[] oAdapters)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
DepositAndStakeFailed
error DepositAndStakeFailed()
DepositFailed
error DepositFailed()
InvalidAddress
error InvalidAddress()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
QueuedDepositFailed
error QueuedDepositFailed()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnknownAction
error UnknownAction()
creation bytecode
0x6101403461019757601f6121d538819003918201601f19168301916001600160401b0383118484101761019b5780849260c09460405283398101031261019757610048816101af565b90610055602082016101af565b610061604083016101af565b61006d606084016101af565b9161008660a061007f608087016101af565b95016101af565b945f5160206121b55f395f51905f525460ff8160401c16610188576002600160401b03196001600160401b03821601610132575b506080526001600160a01b0390811660a05290811660e05290811660c052908116610100521661012052604051611ff190816101c482396080518161030e015260a0518181816114d30152611ad7015260c05181611c26015260e05181611635015261010051816118920152610120518161105e0152f35b6001600160401b0319166001600160401b039081175f5160206121b55f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ba565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101975756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c90816301ffc9a714610a0a575080631f6b68431461097757806320ff430b146108e2578063248a9ca3146108a35780632f2ff15d1461085957806336568abe146108155780636f80302e14610776578063754b377c1461072d57806391d14854146106d7578063946d9204146104ab578063a217fddf14610491578063abc8f9ac14610336578063d0a10260146101145763d547741f0361000f57346101115760403660031901126101115761010d6004356100dd610ac5565b90610108610103825f525f516020611f9c5f395f51905f52602052600160405f20015490565b610d23565b610ec6565b5080f35b80fd5b60a03660031901126102de57610128610aaf565b60443567ffffffffffffffff81116102de57610148903690600401610bde565b9091610152610adb565b506084359067ffffffffffffffff82116102de5761017c6001600160a01b03923690600401610bde565b5050610186610f63565b1690815f52600160205260405f2054158015610303575b6102f45780602c116102de57600c830192602093359180604c116102de576101ce913691604b190190604c01610ba8565b80518101906040818303126102de57848101519160038310156102de57604082015167ffffffffffffffff81116102de57600492876102139281809501920101610c8e565b9460405192838092637e062a3560e11b82525afa9485156102e9575f956102a5575b50508061026e575061024692611a49565b505b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055005b6001810361028657506102809261143a565b50610248565b6002036102965761028092611001565b63211bf9ef60e21b5f5260045ffd5b9080929550813d83116102e2575b6102bd8183610a8d565b810103126102de57516001600160a01b03811681036102de57928480610235565b5f80fd5b503d6102b3565b6040513d5f823e3d90fd5b63e6c4247b60e01b5f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561019d565b60803660031901126102de5760043560038110156102de57610356610ac5565b9060443560643567ffffffffffffffff81116102de57366023820112156102de5761038b903690602481600401359101610ba8565b91610394610f63565b6040516323b872dd60e01b8152336004820152306024820152604481018390526020816064815f6001600160a01b038a165af180156102e957610464575b508061041c57506103e292611a49565b1561040d5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055005b6379cacff160e01b5f5260045ffd5b60018103610441575061042e9261143a565b610248576322cac4e960e11b5f5260045ffd5b6002036102965761045192611001565b61024857637ee4bb2560e01b5f5260045ffd5b6104859060203d60201161048a575b61047d8183610a8d565b810190610c76565b6103d2565b503d610473565b346102de575f3660031901126102de5760206040515f8152f35b346102de5760403660031901126102de576104c4610aaf565b60243567ffffffffffffffff81116102de576104e4903690600401610af1565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159067ffffffffffffffff8116801590816106cf575b60011490816106c5575b1590816106bc575b506106ad5767ffffffffffffffff1981166001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00558161066e575b5061057b611e41565b610583611e41565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556105af611e41565b5f5b83518110156105e057806105d96001600160a01b036105d260019488610c0c565b5116611d0d565b50016105b1565b506105ea82610d70565b506105f157005b68ff0000000000000000197ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610572565b63f92ee8a960e01b5f5260045ffd5b90501585610536565b303b15915061052e565b839150610524565b346102de5760403660031901126102de576106f0610ac5565b6004355f525f516020611f9c5f395f51905f526020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346102de575f3660031901126102de5761077260405161074e604082610a8d565b6003815262312e3360e81b6020820152604051918291602083526020830190610b84565b0390f35b346102de5760203660031901126102de5760043567ffffffffffffffff81116102de576107a7903690600401610af1565b6107af610cd4565b5f5b81518110156107e057806107d96001600160a01b036107d260019486610c0c565b5116611d74565b50016107b1565b6040517f5b3c8d2a80b964008670d0735205ee9cddae62e68a4ceb3dacceb6b8978fe12d90806108108582610c34565b0390a1005b346102de5760403660031901126102de5761082e610ac5565b336001600160a01b0382160361084a5761001a90600435610ec6565b63334bd91960e11b5f5260045ffd5b346102de5760403660031901126102de5761001a600435610878610ac5565b9061089e610103825f525f516020611f9c5f395f51905f52602052600160405f20015490565b610e1f565b346102de5760203660031901126102de5760206108da6004355f525f516020611f9c5f395f51905f52602052600160405f20015490565b604051908152f35b346102de5760603660031901126102de576001600160a01b03602061094e610908610aaf565b610910610ac5565b610918610cd4565b60405163a9059cbb60e01b81526001600160a01b0390911660048201526044803560248301529094859384925f92918491820190565b0393165af180156102e95761095f57005b61001a9060203d60201161048a5761047d8183610a8d565b346102de5760203660031901126102de5760043567ffffffffffffffff81116102de576109a8903690600401610af1565b6109b0610cd4565b5f5b81518110156109da57806109d36001600160a01b036105d260019486610c0c565b50016109b2565b6040517f9bad2819fd33af65a6c4cf2f77d06ba265f7316b4e3d0e58a78384302f384d8590806108108582610c34565b346102de5760203660031901126102de576004359063ffffffff60e01b82168092036102de57602091637965db0b60e01b8114908115610a4c575b5015158152f35b6301ffc9a760e01b14905083610a45565b6040810190811067ffffffffffffffff821117610a7957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610a7957604052565b600435906001600160a01b03821682036102de57565b602435906001600160a01b03821682036102de57565b606435906001600160a01b03821682036102de57565b81601f820112156102de5780359167ffffffffffffffff8311610a79578260051b9160405193610b246020850186610a8d565b84526020808501938201019182116102de57602001915b818310610b485750505090565b82356001600160a01b03811681036102de57815260209283019201610b3b565b67ffffffffffffffff8111610a7957601f01601f191660200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b929192610bb482610b68565b91610bc26040519384610a8d565b8294818452818301116102de578281602093845f960137010152565b9181601f840112156102de5782359167ffffffffffffffff83116102de57602083818601950101116102de57565b8051821015610c205760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b60206040818301928281528451809452019201905f5b818110610c575750505090565b82516001600160a01b0316845260209384019390920191600101610c4a565b908160209103126102de575180151581036102de5790565b81601f820112156102de57805190610ca582610b68565b92610cb36040519485610a8d565b828452602083830101116102de57815f9260208093018386015e8301015290565b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615610d0c57565b63e2517d3f60e01b5f52336004525f60245260445ffd5b805f525f516020611f9c5f395f51905f5260205260405f206001600160a01b0333165f5260205260ff60405f20541615610d5a5750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16610e1a576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b805f525f516020611f9c5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f205416155f14610ec057805f525f516020611f9c5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b805f525f516020611f9c5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f2054165f14610ec057805f525f516020611f9c5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005414610fb25760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b633ee5aeb560e01b5f5260045ffd5b519063ffffffff821682036102de57565b3d15610ffc573d90610fe382610b68565b91610ff16040519384610a8d565b82523d5f602084013e565b606090565b906060838051810103126102de57602083015160028110156102de576040840151936001600160a01b0385168095036102de5761104860606001600160a01b039201610fc1565b931692602063ffffffff60a46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169361108a87868a611e7f565b5f604051958694859363211cd00b60e01b85528960048601528b60248601528a60448601528c60648601521660848401525af190816111d4575b506111a3575060209061110d926110d9610fd2565b945f60405180968195829463a9059cbb60e01b845260048401602090939291936001600160a01b0360408201951681520152565b03925af180156102e957611186575b507f3f1432edc06ed540f00a186d9b228e60ba0b9440f9d81ea738e6091041f88f5461117f600d6040517f5175657565644465706f7369740000000000000000000000000000000000000081522092604051918291602083526020830190610b84565b0390a25f90565b61119e9060203d60201161048a5761047d8183610a8d565b61111c565b9060207f2360d37ede5f54f9d9cd8a21a21bdfe32d56785cc2e610f1621f85a93b2a83fa91604051908152a4600190565b6020813d6020116111fb575b816111ed60209383610a8d565b810103126102de57516110c4565b3d91506111e0565b919060e0838203126102de576040519060e0820182811067ffffffffffffffff821117610a7957604052819361123881610fc1565b8352602081015160208401526040810151604084015260608101516060840152608081015167ffffffffffffffff81116102de5782611278918301610c8e565b608084015260a081015167ffffffffffffffff81116102de578261129d918301610c8e565b60a084015260c08101519167ffffffffffffffff83116102de5760c0926112c49201610c8e565b910152565b919360a0936112fd96956001600160a01b038094168552602085015260408401521660608201528160808201520190610b84565b90565b91908260409103126102de5760405161131881610a5d565b6020808294805184520151910152565b919082810360c081126102de576080136102de57604051906060820182811067ffffffffffffffff821117610a795760405283518252602084015167ffffffffffffffff811681036102de578260809160206112fd95015261138d8360408801611300565b60408201529401611300565b9193926001600160a01b039060206114266060946080875263ffffffff81511660808801528281015160a0880152604081015160c08801528581015160e088015260c06114116113fa608084015160e06101008c01526101608b0190610b84565b60a08401518a8203607f19016101208c0152610b84565b910151878203607f1901610140890152610b84565b968051828701520151604085015216910152565b919091815182019060a083602084019303126102de57602083015191604084015167ffffffffffffffff81116102de5781602061147992870101610c8e565b90606085015190608086015167ffffffffffffffff81116102de5760a09160206114a592890101611203565b950151946001600160a01b036020820151169560206001600160a01b038616968961151c6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016976114ff838a8d611e7f565b604051630365f9bb60e61b8152998a9485943092600487016112c9565b03815f885af15f9581611a15575b5061161e5750505050509060206115785f93611544610fd2565b60405163a9059cbb60e01b81526001600160a01b038616600482015260248101979097529594859283919082906044820190565b03925af19182156102e9575f92839283928392611601575b5034905af15061159e610fd2565b507f3f1432edc06ed540f00a186d9b228e60ba0b9440f9d81ea738e6091041f88f5461117f60076040517f4465706f7369740000000000000000000000000000000000000000000000000081522092604051918291602083526020830190610b84565b6116199060203d60201161048a5761047d8183610a8d565b611590565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482018190526024820187905297989597949695939492939291906020816044815f8c5af180156102e9576119f8575b506040519463bc157ac160e01b865288600487015230602487015260448601526020856064815f865af15f95816119c4575b5061177a575050505050509160206116d45f9394611544610fd2565b03925af19182156102e9575f9283928392839261175d575b5034905af1506116fa610fd2565b507f3f1432edc06ed540f00a186d9b228e60ba0b9440f9d81ea738e6091041f88f5461117f60056040517f5374616b6500000000000000000000000000000000000000000000000000000081522092604051918291602083526020830190610b84565b6117759060203d60201161048a5761047d8183610a8d565b6116ec565b83959794965063ffffffff899293945116155f14611844575060405163a9059cbb60e01b81526001600160a01b039190911660048201526024810186905290602090829060449082905f905af180156102e9577f626ad3dbf10921e922874fef17f1b7639cd7f522a62e37dd78820fd5406664a39461181f9263ffffffff92611827575b50511694604051938493846040919493926060820195825260208201520152565b0390a4600190565b61183f9060203d60201161048a5761047d8183610a8d565b6117fe565b6118869160c09188604089969b99015260405161186081610a5d565b8181525f602082015260405180958194829363c7c7f5b360e01b84528960048501611399565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081611996575b5061194957505050506020906118d3926110d9610fd2565b03925af180156102e95761192c575b507f3f1432edc06ed540f00a186d9b228e60ba0b9440f9d81ea738e6091041f88f5461117f60046040516314d95b9960e21b81522092604051918291602083526020830190610b84565b6119449060203d60201161048a5761047d8183610a8d565b6118e2565b7f626ad3dbf10921e922874fef17f1b7639cd7f522a62e37dd78820fd5406664a393955063ffffffff61181f91511694604051938493846040919493926060820195825260208201520152565b6119b79060c03d60c0116119bd575b6119af8183610a8d565b810190611328565b506118bb565b503d6119a5565b9095506020813d6020116119f0575b816119e060209383610a8d565b810103126102de5751945f6116b8565b3d91506119d3565b611a109060203d60201161048a5761047d8183610a8d565b611686565b9095506020813d602011611a41575b81611a3160209383610a8d565b810103126102de5751945f61152a565b3d9150611a24565b91909181518201608083602083019203126102de57602083015192604081015167ffffffffffffffff81116102de57826020611a8792840101610c8e565b91606082015167ffffffffffffffff81116102de576080916020611aad92850101611203565b910151936001600160a01b036020830151169460206001600160a01b038616956001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693611b038a868a611e7f565b611b246040519788938493630365f9bb60e61b85528d3092600487016112c9565b03815f865af15f9481611cc4575b50611b4b57505050509060206115785f93611544610fd2565b948293949563ffffffff829893945116155f14611bfd57505060405163a9059cbb60e01b81526001600160a01b03871660048201526024810185905291602090839060449082905f905af180156102e9577f70541f2cd4077601aa6b3d67c176e7136177aff35b4a16b98846a1ba410002799360409363ffffffff92611be0575b5051169382519182526020820152a4600190565b611bf89060203d60201161048a5761047d8183610a8d565b611bcc565b611c1a9160c0918760408896979a98015260405161186081610a5d565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081611ca6575b50611c66575050506020906118d3926110d9610fd2565b7f70541f2cd4077601aa6b3d67c176e7136177aff35b4a16b98846a1ba410002799294509063ffffffff60409251169382519182526020820152a4600190565b611cbe9060c03d60c0116119bd576119af8183610a8d565b50611c4f565b9094506020813d602011611cf0575b81611ce060209383610a8d565b810103126102de5751935f611b32565b3d9150611cd3565b8054821015610c20575f5260205f2001905f90565b805f52600160205260405f2054155f14610e1a575f5468010000000000000000811015610a7957611d5e611d488260018594015f555f611cf8565b819391549060031b91821b915f19901b19161790565b90555f54905f52600160205260405f2055600190565b5f818152600160205260409020548015610ec0575f198101818111611e2d575f545f19810191908211611e2d57818103611df7575b5050505f548015611de3575f1901611dc1815f611cf8565b8154905f199060031b1b191690555f555f5260016020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611e17611e07611d48935f611cf8565b90549060031b1c9283925f611cf8565b90555f52600160205260405f20555f8080611da9565b634e487b7160e01b5f52601160045260245ffd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611e7057565b631afcd79f60e31b5f5260045ffd5b60405163095ea7b360e01b60208083019182526001600160a01b0385166024840152604480840196909652948252929390925f90611ebe606486610a8d565b84519082855af15f513d82611f22575b505015611eda57505050565b611f1b611f20936001600160a01b036040519163095ea7b360e01b60208401521660248201525f604482015260448152611f15606482610a8d565b82611f47565b611f47565b565b909150611f3f57506001600160a01b0381163b15155b5f80611ece565b600114611f38565b905f602091828151910182855af1156102e9575f513d611f9257506001600160a01b0381163b155b611f765750565b6001600160a01b0390635274afe760e01b5f521660045260245ffd5b60011415611f6f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a264697066735822122061449a616e2b698e5e292e9f96d9c0d0307c9a4f062cb4f35321d2fe41412c6064736f6c634300081d0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a000000000000000000000000001a44076050125825900e736c501f859c50fe728c0000000000000000000000000a1a1a107e45b7ced86833863f482bc5f4ed82ef0000000000000000000000000b2b2b2076d95dda7817e785989fe353fe955ef9000000000000000000000000ffa10065ce1d1c42fabc46e06b84ed8ffeb4bae5000000000000000000000000ffb20098fd7b8e84762eea4609f299d101427f2400000000000000000000000081cc0dee5e599784cbb4862c605c7003b0ac5a53