6 txs
6.1k calls
constructor
constructor(address _owner, address _mofaSigner, address _switchboardRouter, address _swapExecutor, address _calldataRouter, address _permit2, uint256 _expiryBuffer, address _singleOutputRequestImpl)
functions
CALLDATA_EXECUTOR
viewfunction CALLDATA_EXECUTOR() view returns (address)
checkCapacity
viewfunction checkCapacity(address transmitter, address token) view returns (uint256)
EXPIRY_BUFFER
viewfunction EXPIRY_BUFFER() view returns (uint256)
FEE_COLLECTOR
viewfunction FEE_COLLECTOR() view returns (address)
getSingleOutputExtractedRequest
viewfunction getSingleOutputExtractedRequest(bytes32 requestHash) view returns (tuple)
getSingleOutputFulfilledRequest
viewfunction getSingleOutputFulfilledRequest(bytes32 requestHash) view returns (tuple)
getWhitelistedReceiver
viewfunction getWhitelistedReceiver(address router, uint256 destinationChainId) view returns (address)
isBungeeRouter
viewfunction isBungeeRouter(address router) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address router) view returns (bool whitelisted)
MOFA_SIGNER
viewfunction MOFA_SIGNER() view returns (address)
NATIVE_TOKEN_ADDRESS
viewfunction NATIVE_TOKEN_ADDRESS() view returns (address)
nominee
viewfunction nominee() view returns (address)
owner
viewfunction owner() view returns (address)
PERMIT2
viewfunction PERMIT2() view returns (address)
SINGLE_OUTPUT_IMPL_ID
viewfunction SINGLE_OUTPUT_IMPL_ID() view returns (uint8)
SINGLE_OUTPUT_REQUEST_IMPL
viewfunction SINGLE_OUTPUT_REQUEST_IMPL() view returns (address)
singleOutputExtractedRequests
viewfunction singleOutputExtractedRequests(bytes32 requestHash) view returns (uint256 expiry, address router, address sender, address delegate, uint32 switchboardId, address token, address transmitter, address beneficiary, uint256 amount, uint256 promisedAmount, uint256 promisedRefuelAmount, bytes affiliateFees)
singleOutputFulfilledRequests
viewfunction singleOutputFulfilledRequests(bytes32 requestHash) view returns (uint256 fulfilledAmount, uint256 fulfilledRefuelAmount, bool processed)
STAKE_VAULT
viewfunction STAKE_VAULT() view returns (address)
SWAP_EXECUTOR
viewfunction SWAP_EXECUTOR() view returns (address)
SWITCHBOARD_ROUTER
viewfunction SWITCHBOARD_ROUTER() view returns (address)
transmitterCapacity
viewfunction transmitterCapacity(address transmitter, address token) view returns (uint256 capacity)
withdrawnRequests
viewfunction withdrawnRequests(bytes32 requestHash) view returns (bool withdrawn)
claimOwner
nonpayablefunction claimOwner()
executeSOR
payablefunction executeSOR(bytes data) payable returns (bytes)
inboundMsgFromSwitchboard
payablefunction inboundMsgFromSwitchboard(uint8 implId, uint32, bytes payload) payable
nominateOwner
nonpayablefunction nominateOwner(address nominee_)
receiveMsg
payablefunction receiveMsg(bytes payload) payable
registerStakedRouter
nonpayablefunction registerStakedRouter(address stakedRouter)
registerTransmitterStake
payablefunction registerTransmitterStake(address token, uint256 capacity) payable
registerWhitelistedRouter
nonpayablefunction registerWhitelistedRouter(address whitelistedRouter)
rescue
nonpayablefunction rescue(address token, address to, uint256 amount)
setCalldataExecutor
nonpayablefunction setCalldataExecutor(address _calldataExecutor)
setExpiryBuffer
nonpayablefunction setExpiryBuffer(uint256 _expiryBuffer)
setFeeCollector
nonpayablefunction setFeeCollector(address _feeCollector)
setMofaSigner
nonpayablefunction setMofaSigner(address _mofaSigner)
setStakeVault
nonpayablefunction setStakeVault(address _stakeVault)
setSwapExecutor
nonpayablefunction setSwapExecutor(address _swapExecutor)
setSwitchboardRouter
nonpayablefunction setSwitchboardRouter(address _switchboardRouter)
setWhitelistedReceiver
nonpayablefunction setWhitelistedReceiver(address receiver, uint256 destinationChainId, address router)
withdrawTransmitterStake
nonpayablefunction withdrawTransmitterStake(address token, uint256 capacity)
events
OwnerClaimed
event OwnerClaimed(address indexed claimer)
OwnerNominated
event OwnerNominated(address indexed nominee)
errors
InvalidMsg
error InvalidMsg()
InvalidStake
error InvalidStake()
OnlyNominee
error OnlyNominee()
OnlyOwner
error OnlyOwner()
RouterAlreadyRegistered
error RouterAlreadyRegistered()
RouterAlreadyWhitelisted
error RouterAlreadyWhitelisted()
TransferFailed
error TransferFailed()
creation bytecode
0x60e0604052635ba303c560e11b60c0523480156200001c57600080fd5b5060405162001dab38038062001dab8339810160408190526200003f9162000127565b8783816200004d81620000b7565b506001600160a01b03908116608052600280549982166001600160a01b03199a8b1617905560038054988216988a16989098179097555060048054958716958816959095179094556005805493861693909616929092179094556008551660a05250620001c69050565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b80516001600160a01b03811681146200012257600080fd5b919050565b600080600080600080600080610100898b0312156200014557600080fd5b62000150896200010a565b97506200016060208a016200010a565b96506200017060408a016200010a565b95506200018060608a016200010a565b94506200019060808a016200010a565b9350620001a060a08a016200010a565b925060c08901519150620001b760e08a016200010a565b90509295985092959890939650565b60805160a05160c051611ba762000204600039600061112901526000818161085601528181610a3201526110d3015260006104ed0152611ba76000f3fe6080604052600436106102465760003560e01c806374f8d3fd11610139578063b746078a116100b6578063df2ebdbb1161007a578063df2ebdbb14610798578063e1282c5c146107c0578063e9899ed214610804578063f36ba4d814610824578063f5b841e214610844578063f82814861461087857600080fd5b8063b746078a146106be578063ba672c8b146106d1578063c66eaeb61461072d578063cc6dc63a14610740578063ddea5f3a1461076057600080fd5b80638da5cb5b116100fd5780638da5cb5b1461062a578063967aef08146106485780639ed0cb1314610668578063a42dce8014610688578063ae3100c0146106a857600080fd5b806374f8d3fd1461054f57806376479d1b14610592578063795d86b8146105b25780637f660b01146105d257806380f7013e146105f257600080fd5b80633af32abf116101c75780636a0706db1161018b5780636a0706db1461048b5780636a7372da146104ab5780636afdd850146104db578063733957f81461050f5780637373161f1461052f57600080fd5b80633af32abf146103d25780633bd1adec146104025780633cbc7eaa146104175780634c7a77321461043e5780635b94db271461046b57600080fd5b80631e789c361161020e5780631e789c361461031657806320798eb71461035f57806320f99c0a1461037457806320ff430b146103925780632a022241146103b257600080fd5b80630b3458791461024b5780630c0a0ccb146102885780630cb352e0146102b65780630e4bfd6e146102d657806312f07c25146102f6575b600080fd5b34801561025757600080fd5b5060045461026b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561029457600080fd5b506102a86102a33660046116b8565b610898565b60405190815260200161027f565b3480156102c257600080fd5b5060055461026b906001600160a01b031681565b3480156102e257600080fd5b5060035461026b906001600160a01b031681565b34801561030257600080fd5b5060025461026b906001600160a01b031681565b34801561032257600080fd5b5061034f6103313660046116eb565b6001600160a01b03166000908152600c602052604090205460ff1690565b604051901515815260200161027f565b61037261036d36600461170d565b6108c5565b005b34801561038057600080fd5b506001546001600160a01b031661026b565b34801561039e57600080fd5b506103726103ad366004611737565b6109f5565b6103c56103c03660046117bc565b610a2b565b60405161027f919061184e565b3480156103de57600080fd5b5061034f6103ed3660046116eb565b600d6020526000908152604090205460ff1681565b34801561040e57600080fd5b50610372610ac4565b34801561042357600080fd5b5061042c600181565b60405160ff909116815260200161027f565b34801561044a57600080fd5b5061045e610459366004611861565b610afa565b60405161027f919061187a565b34801561047757600080fd5b506103726104863660046116eb565b610ca4565b34801561049757600080fd5b506103726104a63660046116eb565b610d19565b3480156104b757600080fd5b5061034f6104c6366004611861565b600f6020526000908152604090205460ff1681565b3480156104e757600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561051b57600080fd5b5061037261052a3660046116eb565b610d66565b34801561053b57600080fd5b5061037261054a366004611861565b610db3565b34801561055b57600080fd5b5061026b61056a36600461170d565b6001600160a01b039182166000908152600b6020908152604080832093835292905220541690565b34801561059e57600080fd5b506103726105ad3660046116eb565b610de3565b3480156105be57600080fd5b506103726105cd3660046116eb565b610eb1565b3480156105de57600080fd5b5060065461026b906001600160a01b031681565b3480156105fe57600080fd5b506102a861060d3660046116b8565b600e60209081526000928352604080842090915290825290205481565b34801561063657600080fd5b506000546001600160a01b031661026b565b34801561065457600080fd5b5061037261066336600461170d565b610f1f565b34801561067457600080fd5b50610372610683366004611965565b610fe2565b34801561069457600080fd5b506103726106a33660046116eb565b61104a565b3480156106b457600080fd5b506102a860085481565b6103726106cc3660046117bc565b611097565b3480156106dd57600080fd5b506107106106ec366004611861565b60096020526000908152604090208054600182015460029092015490919060ff1683565b60408051938452602084019290925215159082015260600161027f565b61037261073b3660046119a1565b6110c2565b34801561074c57600080fd5b5061037261075b3660046116eb565b6111f4565b34801561076c57600080fd5b5061078061077b366004611861565b611241565b60405161027f9c9b9a99989796959493929190611a15565b3480156107a457600080fd5b5061026b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156107cc57600080fd5b506107e06107db366004611861565b61134d565b6040805182518152602080840151908201529181015115159082015260600161027f565b34801561081057600080fd5b5061037261081f3660046116eb565b6113b1565b34801561083057600080fd5b5061037261083f3660046116eb565b6113fe565b34801561085057600080fd5b5061026b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561088457600080fd5b5060075461026b906001600160a01b031681565b6001600160a01b038083166000908152600e60209081526040808320938516835292905220545b92915050565b336000908152600e602090815260408083206001600160a01b03861684529091529020546108f4908290611ab6565b336000908152600e602090815260408083206001600160a01b03871680855292529091209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed19016109d55780341461095757604051634eba4d4960e11b815260040160405180910390fd5b6007546040516000916001600160a01b03169061138890849084818181858888f193505050503d80600081146109a9576040519150601f19603f3d011682016040523d82523d6000602084013e6109ae565b606091505b50509050806109d0576040516312171d8360e31b815260040160405180910390fd5b505050565b6007546109f1906001600160a01b03848116913391168461144b565b5050565b6000546001600160a01b03163314610a2057604051635fc483c560e01b815260040160405180910390fd5b6109d08382846114ec565b60606000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168585604051610a6a929190611ac9565b600060405180830381855af49150503d8060008114610aa5576040519150601f19603f3d011682016040523d82523d6000602084013e610aaa565b606091505b509150915081610abc57805160208201fd5b949350505050565b6001546001600160a01b03163314610aef57604051637c91ccdd60e01b815260040160405180910390fd5b610af8336115a4565b565b604080516101808101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201929092526101608101919091526000828152600a60208181526040928390208351610180810185528154815260018201546001600160a01b0390811693820193909352600282015483169481019490945260038101548083166060860152600160a01b900463ffffffff1660808501526004810154821660a08501526005810154821660c0850152600681015490911660e0840152600781015461010084015260088101546101208401526009810154610140840152908101805461016084019190610c1b90611ad9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4790611ad9565b8015610c945780601f10610c6957610100808354040283529160200191610c94565b820191906000526020600020905b815481529060010190602001808311610c7757829003601f168201915b5050505050815250509050919050565b6000546001600160a01b03163314610ccf57604051635fc483c560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b6000546001600160a01b03163314610d4457604051635fc483c560e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9157604051635fc483c560e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dde57604051635fc483c560e01b815260040160405180910390fd5b600855565b6000546001600160a01b03163314610e0e57604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0381166000908152600d602052604090205460ff1615610e485760405163406c5bd360e01b815260040160405180910390fd5b6001600160a01b0381166000908152600c602052604090205460ff1615610e8257604051633ba24ff960e11b815260040160405180910390fd5b6001600160a01b0381166000908152600d60205260409020805460ff19166001179055610eae816115f7565b50565b6000546001600160a01b03163314610edc57604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0381166000908152600c602052604090205460ff1615610f1657604051633ba24ff960e11b815260040160405180910390fd5b610eae816115f7565b336000908152600e602090815260408083206001600160a01b0386168452909152902054610f4e908290611b13565b336000818152600e602090815260408083206001600160a01b038881168086529190935292819020949094556007549351632385922d60e01b81526004810192909252602482018590526044820192909252911690632385922d90606401600060405180830381600087803b158015610fc657600080fd5b505af1158015610fda573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0316331461100d57604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b039081166000908152600b60209081526040808320948352939052919091208054919092166001600160a01b0319909116179055565b6000546001600160a01b0316331461107557604051635fc483c560e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146109f157604051631bd147a760e01b815260040160405180910390fd5b600060001960ff8616016110f357507f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03811661111a57604051631bd147a760e01b815260040160405180910390fd5b600080826001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000868660405160240161115b929190611b26565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516111999190611b55565b600060405180830381855af49150503d80600081146111d4576040519150601f19603f3d011682016040523d82523d6000602084013e6111d9565b606091505b5091509150816111eb57805160208201fd5b50505050505050565b6000546001600160a01b0316331461121f57604051635fc483c560e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600a60208190526000918252604090912080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a01549a8a018054999b6001600160a01b03998a169b988a169a8a89169a600160a01b90990463ffffffff1699978916989687169796909516959394929390929091906112ca90611ad9565b80601f01602080910402602001604051908101604052809291908181526020018280546112f690611ad9565b80156113435780601f1061131857610100808354040283529160200191611343565b820191906000526020600020905b81548152906001019060200180831161132657829003601f168201915b505050505090508c565b611373604051806060016040528060008152602001600081526020016000151581525090565b506000908152600960209081526040918290208251606081018452815481526001820154928101929092526002015460ff1615159181019190915290565b6000546001600160a01b031633146113dc57604051635fc483c560e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461142957604051635fc483c560e01b815260040160405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60006040516323b872dd60e01b81526001600160a01b03851660048201526001600160a01b03841660248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806114e55760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064015b60405180910390fd5b5050505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601611590576000816001600160a01b03168361138890604051600060405180830381858888f193505050503d8060008114611563576040519150601f19603f3d011682016040523d82523d6000602084013e611568565b606091505b505090508061158a576040516312171d8360e31b815260040160405180910390fd5b50505050565b6109d06001600160a01b038416828461161b565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d116001600051141617169150508061158a5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016114dc565b80356001600160a01b03811681146116b357600080fd5b919050565b600080604083850312156116cb57600080fd5b6116d48361169c565b91506116e26020840161169c565b90509250929050565b6000602082840312156116fd57600080fd5b6117068261169c565b9392505050565b6000806040838503121561172057600080fd5b6117298361169c565b946020939093013593505050565b60008060006060848603121561174c57600080fd5b6117558461169c565b92506117636020850161169c565b9150604084013590509250925092565b60008083601f84011261178557600080fd5b50813567ffffffffffffffff81111561179d57600080fd5b6020830191508360208285010111156117b557600080fd5b9250929050565b600080602083850312156117cf57600080fd5b823567ffffffffffffffff8111156117e657600080fd5b6117f285828601611773565b90969095509350505050565b60005b83811015611819578181015183820152602001611801565b50506000910152565b6000815180845261183a8160208601602086016117fe565b601f01601f19169290920160200192915050565b6020815260006117066020830184611822565b60006020828403121561187357600080fd5b5035919050565b6020815281516020820152600060208301516118a160408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b038116608084015250608083015163ffffffff811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100611924818501836001600160a01b03169052565b840151610120848101919091528401516101408085019190915284015161016080850191909152840151610180808501529050610abc6101a0840182611822565b60008060006060848603121561197a57600080fd5b6119838461169c565b9250602084013591506119986040850161169c565b90509250925092565b600080600080606085870312156119b757600080fd5b843560ff811681146119c857600080fd5b9350602085013563ffffffff811681146119e157600080fd5b9250604085013567ffffffffffffffff8111156119fd57600080fd5b611a0987828801611773565b95989497509550505050565b8c81526001600160a01b038c811660208301528b811660408301528a8116606083015263ffffffff8a16608083015288811660a083015287811660c0830152861660e08201526101008101859052610120810184905261014081018390526101806101608201819052600090611a8d83820185611822565b9f9e505050505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108bf576108bf611aa0565b8183823760009101908152919050565b600181811c90821680611aed57607f821691505b602082108103611b0d57634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156108bf576108bf611aa0565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60008251611b678184602087016117fe565b919091019291505056fea2646970667358221220ca57a41f325a29fed3b9d4ace16ad128ce94bfb9f43df42fde6136b51ae4a97e64736f6c63430008130033000000000000000000000000a5acba07788f16b4790fcbb09ca3b7fc8dd053a2000000000000000000000000fca2bf17adca71eab5d6a3f76e6fef85e742aacf000000000000000000000000e00561009125b758f7c654563402f454fdc1cfbe0000000000000000000000008d3b1f14d6c2f7817da9badd3328331702ada1b90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000000000000000000000000000000000000000151800000000000000000000000005ac3a6dc6c51a4857245ed50d9d643fd04ba4e49