Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 27 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Bungee Gatew... | 1356993 | 21 days ago | IN | 0 S | 0.00004644 | ||||
Add Bungee Gatew... | 1356976 | 21 days ago | IN | 0 S | 0.00004644 | ||||
Add Bungee Gatew... | 1356947 | 21 days ago | IN | 0 S | 0.00004643 | ||||
Add Bungee Gatew... | 1356925 | 21 days ago | IN | 0 S | 0.00004644 | ||||
Add Bungee Gatew... | 1356898 | 21 days ago | IN | 0 S | 0.00005119 | ||||
Add Bungee Gatew... | 1356869 | 21 days ago | IN | 0 S | 0.00004643 | ||||
Add Bungee Gatew... | 1356854 | 21 days ago | IN | 0 S | 0.00004643 | ||||
Add Bungee Gatew... | 1356828 | 21 days ago | IN | 0 S | 0.00004643 | ||||
Add Bungee Gatew... | 1356813 | 21 days ago | IN | 0 S | 0.00004644 | ||||
Add Bungee Gatew... | 1356794 | 21 days ago | IN | 0 S | 0.00004643 | ||||
Add Bungee Gatew... | 1356759 | 21 days ago | IN | 0 S | 0.00004643 | ||||
Connect Switchbo... | 1356719 | 21 days ago | IN | 0 S | 0.00017451 | ||||
Connect Switchbo... | 1356702 | 21 days ago | IN | 0 S | 0.00017451 | ||||
Connect Switchbo... | 1356557 | 21 days ago | IN | 0 S | 0.0001745 | ||||
Connect Switchbo... | 1356062 | 21 days ago | IN | 0 S | 0.00017451 | ||||
Connect Switchbo... | 1356034 | 21 days ago | IN | 0 S | 0.00017451 | ||||
Connect Switchbo... | 1356005 | 21 days ago | IN | 0 S | 0.0001745 | ||||
Connect Switchbo... | 1355981 | 21 days ago | IN | 0 S | 0.00022112 | ||||
Connect Switchbo... | 1355946 | 21 days ago | IN | 0 S | 0.0001745 | ||||
Connect Switchbo... | 1355910 | 21 days ago | IN | 0 S | 0.00017451 | ||||
Connect Switchbo... | 1355891 | 21 days ago | IN | 0 S | 0.00017451 | ||||
Connect Switchbo... | 1355861 | 21 days ago | IN | 0 S | 0.0001745 | ||||
Claim Owner | 1355650 | 21 days ago | IN | 0 S | 0.00003274 | ||||
Nominate Owner | 1337249 | 22 days ago | IN | 0 S | 0.00005506 | ||||
Set Bungee Gatew... | 1334166 | 22 days ago | IN | 0 S | 0.00003193 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
3881620 | 27 mins ago | 0.00344534 S | ||||
3881620 | 27 mins ago | 0.00344534 S | ||||
3874571 | 1 hr ago | 0.00330853 S | ||||
3874571 | 1 hr ago | 0.00330853 S | ||||
3867467 | 2 hrs ago | 0.00324476 S | ||||
3867467 | 2 hrs ago | 0.00324476 S | ||||
3854424 | 5 hrs ago | 0.0033474 S | ||||
3854424 | 5 hrs ago | 0.0033474 S | ||||
3841936 | 7 hrs ago | 0.00332909 S | ||||
3841936 | 7 hrs ago | 0.00332909 S | ||||
3836583 | 8 hrs ago | 0.00544664 S | ||||
3836583 | 8 hrs ago | 0.00544664 S | ||||
3830703 | 9 hrs ago | 0.00332909 S | ||||
3830703 | 9 hrs ago | 0.00332909 S | ||||
3811713 | 14 hrs ago | 0.03860554 S | ||||
3811713 | 14 hrs ago | 0.03860554 S | ||||
3806870 | 15 hrs ago | 0.35285108 S | ||||
3806870 | 15 hrs ago | 0.35285108 S | ||||
3806866 | 15 hrs ago | 0.05276998 S | ||||
3806866 | 15 hrs ago | 0.05276998 S | ||||
3800954 | 16 hrs ago | 0.08648312 S | ||||
3800954 | 16 hrs ago | 0.08648312 S | ||||
3800950 | 16 hrs ago | 0.00547664 S | ||||
3800950 | 16 hrs ago | 0.00547664 S | ||||
3771228 | 21 hrs ago | 0.00965117 S |
Loading...
Loading
Contract Name:
SwitchboardRouter
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; import {Ownable} from "../utils/Ownable.sol"; import { NotBungeeGateway, NotSiblingBungeeGateway, NotSwitchboardPlug, SwitchboardPlugZero, IncorrectSwitchboard, InvalidMsg } from "../common/Errors.sol"; import {ISwitchboardPlug} from "../interfaces/ISwitchboardPlug.sol"; import {IBungeeGateway} from "../interfaces/IBungeeGateway.sol"; contract SwitchboardRouter is Ownable { /*////////////////////////////////////////////////////////////////////////// PUBLIC STORAGE //////////////////////////////////////////////////////////////////////////*/ address public BUNGEE_GATEWAY; /// switchboardId count uint32 public switchboardIdCount = 1; /// maps switchboardId to switchboardPlug mapping(uint32 switchboardId => ISwitchboardPlug switchboardPlug) public switchboardPlugs; mapping(uint32 chainId => address bungeeGateway) public bungeeGateways; constructor(address _owner, address _bungeeGateway) Ownable(_owner) { BUNGEE_GATEWAY = _bungeeGateway; } /*////////////////////////////////////////////////////////////////////////// EXTERNAL FUNCTIONS //////////////////////////////////////////////////////////////////////////*/ /// @notice Send Settlement Message /// @param chainSlug chain slug used in Socket where the requests are to be settled on /// @param switchboardId identifier for settlement message security /// @param destGasLimit gasLimit required to execute the settlement message on the destination chain /// @param payload settlement message data function sendOutboundMsg( uint32 chainSlug, uint32 switchboardId, uint8 msgId, uint256 destGasLimit, bytes calldata payload ) external payable { // checks if the caller is Bungee Gateway (ISwitchboardPlug switchboardPlug, address siblingBungeeGateway) = _validateOutboundMsg( chainSlug, switchboardId ); // encodes msg.sender (Bungee Gateway) along with the payload // calls outbound with the payload switchboardPlug.outbound{value: msg.value}( chainSlug, destGasLimit, abi.encodePacked(msgId, siblingBungeeGateway, msg.sender, payload) ); } function receiveAndDeliverMsg(uint32 switchboardId, uint32 siblingChainId, bytes calldata payload) external { // checks if the caller is switchboardPlug _checkIfSwitchboardPlug(switchboardId); // decodes the receiving bungee Gateway address from the incoming payload uint8 msgId = uint8(bytes1(payload)); address msgReceiver = address(bytes20(payload[1:])); address msgSender = address(bytes20(payload[21:])); if (msgReceiver != BUNGEE_GATEWAY || msgSender != bungeeGateways[siblingChainId]) revert InvalidMsg(); // sends inbound message to Bungee IBungeeGateway(msgReceiver).inboundMsgFromSwitchboard( msgId, switchboardId, abi.encodePacked(switchboardId, payload[41:]) ); } /*////////////////////////////////////////////////////////////////////////// ADMIN FUNCTIONS //////////////////////////////////////////////////////////////////////////*/ /** * @notice adds new bungee gateway contract Can only be called by the owner. * @param _bungeeGateway address of the bungee gateway on sibling chain. * @param _chainId id of the sibling chain. */ function addBungeeGateway(address _bungeeGateway, uint32 _chainId) external onlyOwner { bungeeGateways[_chainId] = _bungeeGateway; } /** * @notice sets the bungee gateway contract. Can only be called by the owner. * @param _bungeeGateway address of the new bungee gateway. */ function setBungeeGateway(address _bungeeGateway) external onlyOwner { BUNGEE_GATEWAY = _bungeeGateway; } /// @notice adds switchboardPlug to switchboardPlugs mapping /// @param switchboardPlug address of the switchboardPlug mapped to the id function addSwitchboardPlug(address switchboardPlug) external onlyOwner { // maps switchboardId to SwitchboardPlug switchboardPlugs[switchboardIdCount] = ISwitchboardPlug(switchboardPlug); // checks if the SWITCHBOARD_ID() on the contract is the same as one being assigned on SwitchboardPlug if (switchboardIdCount != switchboardPlugs[switchboardIdCount].SWITCHBOARD_ID()) revert IncorrectSwitchboard(); // increments switchboard count switchboardIdCount += 1; } /// @notice Disables SwitchboardPlug /// @param switchboardId id of the plug to be disabled function removeSwitchboardPlug(uint32 switchboardId) external onlyOwner { delete switchboardPlugs[switchboardId]; } function connectSwitchboardPlug( uint32 switchboardId, uint32 siblingChainSlug, address siblingPlug ) external onlyOwner { switchboardPlugs[switchboardId].connect(siblingChainSlug, siblingPlug); } /*////////////////////////////////////////////////////////////////////////// INTERNAL FUNCTIONS //////////////////////////////////////////////////////////////////////////*/ function _validateOutboundMsg( uint32 toChainId, uint32 switchboardId ) internal view returns (ISwitchboardPlug switchboardPlug, address siblingBungeeGateway) { // revert if caller is not bungee gateway if (msg.sender != BUNGEE_GATEWAY) revert NotBungeeGateway(); // revert if the bungee gateway address does not exist on the sibling chain siblingBungeeGateway = bungeeGateways[toChainId]; if (bungeeGateways[toChainId] == address(0)) revert NotSiblingBungeeGateway(); // finds the switchboardPlug to route the message through switchboardPlug = switchboardPlugs[switchboardId]; // checks if switchboardPlug is not initialised for the switchboardId if (address(switchboardPlug) == address(0)) revert SwitchboardPlugZero(); } /// @notice checks switchboardPlugs mapping if caller is a whitelisted switchboardPlug function _checkIfSwitchboardPlug(uint32 switchboardId) internal view { if (msg.sender != address(switchboardPlugs[switchboardId])) revert NotSwitchboardPlug(); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; // error MofaSignatureInvalid(); error InsufficientNativeAmount(); error InvalidMultipleNativeTokens(); error FulfilmentChainInvalid(); error RequestAlreadyFulfilled(); error RouterNotRegistered(); error TransferFailed(); error CallerNotBungeeGateway(); error NoExecutionCacheFound(); error ExecutionCacheFailed(); error SwapOutputInsufficient(); error UnsupportedDestinationChainId(); error MinOutputNotMet(); error OnlyOwner(); error OnlyNominee(); error InvalidRequest(); error FulfilmentDeadlineNotMet(); error CallerNotDelegate(); error BungeeSiblingDoesNotExist(); error InvalidMsg(); error NotDelegate(); error RequestProcessed(); error RequestNotProcessed(); error InvalidSwitchboard(); error PromisedAmountNotMet(); error MsgReceiveFailed(); error RouterAlreadyWhitelisted(); error InvalidStake(); error RouterAlreadyRegistered(); error InvalidFulfil(); error InsufficientCapacity(); error ReleaseFundsNotImplemented();
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; // TODO - separate our errors depending on which actor they are part of error NotBungeeGateway(); error NotSiblingBungeeGateway(); error NotSocket(); error NotSwitchboardRouter(); error NotSwitchboardPlug(); error SwitchboardPlugZero(); error ConnectionAlreadyInitialised(); error IncorrectSwitchboard(); error InvalidMsg(); error CallerNotCCTPMessageTransmitter();
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; interface IBungeeGateway { function setWhitelistedReceiver(address receiver, uint256 destinationChainId, address router) external; function getWhitelistedReceiver(address router, uint256 destinationChainId) external view returns (address); function inboundMsgFromSwitchboard(uint8 msgId, uint32 switchboardId, bytes calldata payload) external; function isBungeeRouter(address router) external view returns (bool); function withdrawnRequests(bytes32 requestHash) external view returns (bool); function withdrawRequestOnOrigin(bytes32 requestHash) external; function executeSOR(bytes calldata data) external payable returns (bytes memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; /** * @title IPlug * @notice Interface for a plug contract that executes the message received from a source chain. */ interface IPlug { /** * @dev this should be only executable by socket * @notice executes the message received from source chain * @notice It is expected to have original sender checks in the destination plugs using payload * @param srcChainSlug_ chain slug of source * @param payload_ the data which is needed by plug at inbound call on remote */ function inbound(uint32 srcChainSlug_, bytes calldata payload_) external payable; }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; import {IPlug} from "./IPlug.sol"; interface ISwitchboardPlug is IPlug { function SWITCHBOARD_ID() external view returns (uint32); function connect(uint32 siblingChainSlug, address siblingPlug) external; function outbound(uint32 siblingChainSlug, uint256 msgGasLimit, bytes calldata payload) external payable; }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.8.17; import {OnlyOwner, OnlyNominee} from "../common/BungeeErrors.sol"; abstract contract Ownable { address private _owner; address private _nominee; event OwnerNominated(address indexed nominee); event OwnerClaimed(address indexed claimer); constructor(address owner_) { _claimOwner(owner_); } modifier onlyOwner() { if (msg.sender != _owner) { revert OnlyOwner(); } _; } function owner() public view returns (address) { return _owner; } function nominee() public view returns (address) { return _nominee; } function nominateOwner(address nominee_) external { if (msg.sender != _owner) { revert OnlyOwner(); } _nominee = nominee_; emit OwnerNominated(_nominee); } function claimOwner() external { if (msg.sender != _nominee) { revert OnlyNominee(); } _claimOwner(msg.sender); } function _claimOwner(address claimer_) internal { _owner = claimer_; _nominee = address(0); emit OwnerClaimed(claimer_); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_bungeeGateway","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IncorrectSwitchboard","type":"error"},{"inputs":[],"name":"InvalidMsg","type":"error"},{"inputs":[],"name":"NotBungeeGateway","type":"error"},{"inputs":[],"name":"NotSiblingBungeeGateway","type":"error"},{"inputs":[],"name":"NotSwitchboardPlug","type":"error"},{"inputs":[],"name":"OnlyNominee","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"SwitchboardPlugZero","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"claimer","type":"address"}],"name":"OwnerClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nominee","type":"address"}],"name":"OwnerNominated","type":"event"},{"inputs":[],"name":"BUNGEE_GATEWAY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_bungeeGateway","type":"address"},{"internalType":"uint32","name":"_chainId","type":"uint32"}],"name":"addBungeeGateway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"switchboardPlug","type":"address"}],"name":"addSwitchboardPlug","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"chainId","type":"uint32"}],"name":"bungeeGateways","outputs":[{"internalType":"address","name":"bungeeGateway","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"switchboardId","type":"uint32"},{"internalType":"uint32","name":"siblingChainSlug","type":"uint32"},{"internalType":"address","name":"siblingPlug","type":"address"}],"name":"connectSwitchboardPlug","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nominee_","type":"address"}],"name":"nominateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"switchboardId","type":"uint32"},{"internalType":"uint32","name":"siblingChainId","type":"uint32"},{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"receiveAndDeliverMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"switchboardId","type":"uint32"}],"name":"removeSwitchboardPlug","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"chainSlug","type":"uint32"},{"internalType":"uint32","name":"switchboardId","type":"uint32"},{"internalType":"uint8","name":"msgId","type":"uint8"},{"internalType":"uint256","name":"destGasLimit","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"sendOutboundMsg","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_bungeeGateway","type":"address"}],"name":"setBungeeGateway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchboardIdCount","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"switchboardId","type":"uint32"}],"name":"switchboardPlugs","outputs":[{"internalType":"contract ISwitchboardPlug","name":"switchboardPlug","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526002805463ffffffff60a01b1916600160a01b17905534801561002657600080fd5b50604051610f53380380610f53833981016040819052610045916100e5565b8161004f81610076565b50600280546001600160a01b0319166001600160a01b039290921691909117905550610118565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b80516001600160a01b03811681146100e057600080fd5b919050565b600080604083850312156100f857600080fd5b610101836100c9565b915061010f602084016100c9565b90509250929050565b610e2c806101276000396000f3fe6080604052600436106100e85760003560e01c806370372d851161008a578063a317055e11610059578063a317055e14610265578063b25499a214610285578063b8898c08146102bb578063bc455d2c146102f157600080fd5b806370372d85146101e7578063757fb06c146102075780638da5cb5b146102275780639a78cbc51461024557600080fd5b806340788883116100c657806340788883146101745780635813c9c5146101945780635b94db27146101a757806367872a5d146101c757600080fd5b806320f99c0a146100ed5780633123053d146101245780633bd1adec1461015d575b600080fd5b3480156100f957600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561013057600080fd5b5060025461014890600160a01b900463ffffffff1681565b60405163ffffffff909116815260200161011b565b34801561016957600080fd5b50610172610311565b005b34801561018057600080fd5b5061017261018f366004610a3d565b610347565b6101726101a2366004610aa2565b610493565b3480156101b357600080fd5b506101726101c2366004610b49565b610538565b3480156101d357600080fd5b506101726101e2366004610b6b565b6105ad565b3480156101f357600080fd5b50600254610107906001600160a01b031681565b34801561021357600080fd5b50610172610222366004610ba2565b61060c565b34801561023357600080fd5b506000546001600160a01b0316610107565b34801561025157600080fd5b50610172610260366004610b49565b6106b6565b34801561027157600080fd5b50610172610280366004610be9565b610703565b34801561029157600080fd5b506101076102a0366004610be9565b6004602052600090815260409020546001600160a01b031681565b3480156102c757600080fd5b506101076102d6366004610be9565b6003602052600090815260409020546001600160a01b031681565b3480156102fd57600080fd5b5061017261030c366004610b49565b610752565b6001546001600160a01b0316331461033c57604051637c91ccdd60e01b815260040160405180910390fd5b610345336108a1565b565b610350846108f4565b600061035c8284610c06565b60f81c905060006103708360018187610c36565b61037991610c60565b60601c9050600061038d8460158188610c36565b61039691610c60565b60025460609190911c91506001600160a01b0383811691161415806103dc575063ffffffff86166000908152600460205260409020546001600160a01b03828116911614155b156103fa57604051631bd147a760e01b815260040160405180910390fd5b6001600160a01b03821663c66eaeb6848980610419896029818d610c36565b60405160200161042b93929190610c93565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161045893929190610d01565b600060405180830381600087803b15801561047257600080fd5b505af1158015610486573d6000803e3d6000fd5b5050505050505050505050565b6000806104a08888610935565b91509150816001600160a01b0316630293f697348a888a86338b8b6040516020016104cf959493929190610d32565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016104fc93929190610d82565b6000604051808303818588803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b50505050505050505050505050565b6000546001600160a01b0316331461056357604051635fc483c560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b6000546001600160a01b031633146105d857604051635fc483c560e01b815260040160405180910390fd5b63ffffffff16600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461063757604051635fc483c560e01b815260040160405180910390fd5b63ffffffff83811660009081526003602052604090819020549051638ec4a6e760e01b815291841660048301526001600160a01b0383811660248401521690638ec4a6e790604401600060405180830381600087803b15801561069957600080fd5b505af11580156106ad573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146106e157604051635fc483c560e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461072e57604051635fc483c560e01b815260040160405180910390fd5b63ffffffff16600090815260036020526040902080546001600160a01b0319169055565b6000546001600160a01b0316331461077d57604051635fc483c560e01b815260040160405180910390fd5b60028054600160a01b9081900463ffffffff908116600090815260036020908152604080832080546001600160a01b0319166001600160a01b0389811691909117909155955494909404909216815282902054825163441edf0160e11b8152925193169263883dbe029260048082019392918290030181865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190610da7565b600254600160a01b900463ffffffff90811691161461085e576040516339bf270760e01b815260040160405180910390fd5b6001600260148282829054906101000a900463ffffffff166108809190610dc4565b92506101000a81548163ffffffff021916908363ffffffff16021790555050565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b63ffffffff81166000908152600360205260409020546001600160a01b031633146109325760405163fb60bbf960e01b815260040160405180910390fd5b50565b60025460009081906001600160a01b03163314610965576040516308c277e160e31b815260040160405180910390fd5b5063ffffffff83166000908152600460205260409020546001600160a01b0316806109a357604051634271b76f60e01b815260040160405180910390fd5b63ffffffff83166000908152600360205260409020546001600160a01b03169150816109e2576040516381c5e9a160e01b815260040160405180910390fd5b9250929050565b63ffffffff8116811461093257600080fd5b60008083601f840112610a0d57600080fd5b50813567ffffffffffffffff811115610a2557600080fd5b6020830191508360208285010111156109e257600080fd5b60008060008060608587031215610a5357600080fd5b8435610a5e816109e9565b93506020850135610a6e816109e9565b9250604085013567ffffffffffffffff811115610a8a57600080fd5b610a96878288016109fb565b95989497509550505050565b60008060008060008060a08789031215610abb57600080fd5b8635610ac6816109e9565b95506020870135610ad6816109e9565b9450604087013560ff81168114610aec57600080fd5b935060608701359250608087013567ffffffffffffffff811115610b0f57600080fd5b610b1b89828a016109fb565b979a9699509497509295939492505050565b80356001600160a01b0381168114610b4457600080fd5b919050565b600060208284031215610b5b57600080fd5b610b6482610b2d565b9392505050565b60008060408385031215610b7e57600080fd5b610b8783610b2d565b91506020830135610b97816109e9565b809150509250929050565b600080600060608486031215610bb757600080fd5b8335610bc2816109e9565b92506020840135610bd2816109e9565b9150610be060408501610b2d565b90509250925092565b600060208284031215610bfb57600080fd5b8135610b64816109e9565b6001600160f81b03198135818116916001851015610c2e5780818660010360031b1b83161692505b505092915050565b60008085851115610c4657600080fd5b83861115610c5357600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff198135818116916014851015610c2e5760149490940360031b84901b1690921692915050565b60e084901b6001600160e01b0319168152818360048301376000910160040190815292915050565b6000815180845260005b81811015610ce157602081850181015186830182015201610cc5565b506000602082860101526020601f19601f83011685010191505092915050565b60ff8416815263ffffffff83166020820152606060408201526000610d296060830184610cbb565b95945050505050565b6001600160f81b031960f887901b1681526bffffffffffffffffffffffff19606086811b8216600184015285901b1660158201526000828460298401375060009101602901908152949350505050565b63ffffffff84168152826020820152606060408201526000610d296060830184610cbb565b600060208284031215610db957600080fd5b8151610b64816109e9565b63ffffffff818116838216019080821115610def57634e487b7160e01b600052601160045260246000fd5b509291505056fea26469706673582212200ad77e0ed11b4a0fa558bc7f4352bebcbea9ed77c79217edf689aae46824bb4164736f6c63430008130033000000000000000000000000a5acba07788f16b4790fcbb09ca3b7fc8dd053a20000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100e85760003560e01c806370372d851161008a578063a317055e11610059578063a317055e14610265578063b25499a214610285578063b8898c08146102bb578063bc455d2c146102f157600080fd5b806370372d85146101e7578063757fb06c146102075780638da5cb5b146102275780639a78cbc51461024557600080fd5b806340788883116100c657806340788883146101745780635813c9c5146101945780635b94db27146101a757806367872a5d146101c757600080fd5b806320f99c0a146100ed5780633123053d146101245780633bd1adec1461015d575b600080fd5b3480156100f957600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561013057600080fd5b5060025461014890600160a01b900463ffffffff1681565b60405163ffffffff909116815260200161011b565b34801561016957600080fd5b50610172610311565b005b34801561018057600080fd5b5061017261018f366004610a3d565b610347565b6101726101a2366004610aa2565b610493565b3480156101b357600080fd5b506101726101c2366004610b49565b610538565b3480156101d357600080fd5b506101726101e2366004610b6b565b6105ad565b3480156101f357600080fd5b50600254610107906001600160a01b031681565b34801561021357600080fd5b50610172610222366004610ba2565b61060c565b34801561023357600080fd5b506000546001600160a01b0316610107565b34801561025157600080fd5b50610172610260366004610b49565b6106b6565b34801561027157600080fd5b50610172610280366004610be9565b610703565b34801561029157600080fd5b506101076102a0366004610be9565b6004602052600090815260409020546001600160a01b031681565b3480156102c757600080fd5b506101076102d6366004610be9565b6003602052600090815260409020546001600160a01b031681565b3480156102fd57600080fd5b5061017261030c366004610b49565b610752565b6001546001600160a01b0316331461033c57604051637c91ccdd60e01b815260040160405180910390fd5b610345336108a1565b565b610350846108f4565b600061035c8284610c06565b60f81c905060006103708360018187610c36565b61037991610c60565b60601c9050600061038d8460158188610c36565b61039691610c60565b60025460609190911c91506001600160a01b0383811691161415806103dc575063ffffffff86166000908152600460205260409020546001600160a01b03828116911614155b156103fa57604051631bd147a760e01b815260040160405180910390fd5b6001600160a01b03821663c66eaeb6848980610419896029818d610c36565b60405160200161042b93929190610c93565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161045893929190610d01565b600060405180830381600087803b15801561047257600080fd5b505af1158015610486573d6000803e3d6000fd5b5050505050505050505050565b6000806104a08888610935565b91509150816001600160a01b0316630293f697348a888a86338b8b6040516020016104cf959493929190610d32565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016104fc93929190610d82565b6000604051808303818588803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b50505050505050505050505050565b6000546001600160a01b0316331461056357604051635fc483c560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b6000546001600160a01b031633146105d857604051635fc483c560e01b815260040160405180910390fd5b63ffffffff16600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461063757604051635fc483c560e01b815260040160405180910390fd5b63ffffffff83811660009081526003602052604090819020549051638ec4a6e760e01b815291841660048301526001600160a01b0383811660248401521690638ec4a6e790604401600060405180830381600087803b15801561069957600080fd5b505af11580156106ad573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146106e157604051635fc483c560e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461072e57604051635fc483c560e01b815260040160405180910390fd5b63ffffffff16600090815260036020526040902080546001600160a01b0319169055565b6000546001600160a01b0316331461077d57604051635fc483c560e01b815260040160405180910390fd5b60028054600160a01b9081900463ffffffff908116600090815260036020908152604080832080546001600160a01b0319166001600160a01b0389811691909117909155955494909404909216815282902054825163441edf0160e11b8152925193169263883dbe029260048082019392918290030181865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190610da7565b600254600160a01b900463ffffffff90811691161461085e576040516339bf270760e01b815260040160405180910390fd5b6001600260148282829054906101000a900463ffffffff166108809190610dc4565b92506101000a81548163ffffffff021916908363ffffffff16021790555050565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b63ffffffff81166000908152600360205260409020546001600160a01b031633146109325760405163fb60bbf960e01b815260040160405180910390fd5b50565b60025460009081906001600160a01b03163314610965576040516308c277e160e31b815260040160405180910390fd5b5063ffffffff83166000908152600460205260409020546001600160a01b0316806109a357604051634271b76f60e01b815260040160405180910390fd5b63ffffffff83166000908152600360205260409020546001600160a01b03169150816109e2576040516381c5e9a160e01b815260040160405180910390fd5b9250929050565b63ffffffff8116811461093257600080fd5b60008083601f840112610a0d57600080fd5b50813567ffffffffffffffff811115610a2557600080fd5b6020830191508360208285010111156109e257600080fd5b60008060008060608587031215610a5357600080fd5b8435610a5e816109e9565b93506020850135610a6e816109e9565b9250604085013567ffffffffffffffff811115610a8a57600080fd5b610a96878288016109fb565b95989497509550505050565b60008060008060008060a08789031215610abb57600080fd5b8635610ac6816109e9565b95506020870135610ad6816109e9565b9450604087013560ff81168114610aec57600080fd5b935060608701359250608087013567ffffffffffffffff811115610b0f57600080fd5b610b1b89828a016109fb565b979a9699509497509295939492505050565b80356001600160a01b0381168114610b4457600080fd5b919050565b600060208284031215610b5b57600080fd5b610b6482610b2d565b9392505050565b60008060408385031215610b7e57600080fd5b610b8783610b2d565b91506020830135610b97816109e9565b809150509250929050565b600080600060608486031215610bb757600080fd5b8335610bc2816109e9565b92506020840135610bd2816109e9565b9150610be060408501610b2d565b90509250925092565b600060208284031215610bfb57600080fd5b8135610b64816109e9565b6001600160f81b03198135818116916001851015610c2e5780818660010360031b1b83161692505b505092915050565b60008085851115610c4657600080fd5b83861115610c5357600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff198135818116916014851015610c2e5760149490940360031b84901b1690921692915050565b60e084901b6001600160e01b0319168152818360048301376000910160040190815292915050565b6000815180845260005b81811015610ce157602081850181015186830182015201610cc5565b506000602082860101526020601f19601f83011685010191505092915050565b60ff8416815263ffffffff83166020820152606060408201526000610d296060830184610cbb565b95945050505050565b6001600160f81b031960f887901b1681526bffffffffffffffffffffffff19606086811b8216600184015285901b1660158201526000828460298401375060009101602901908152949350505050565b63ffffffff84168152826020820152606060408201526000610d296060830184610cbb565b600060208284031215610db957600080fd5b8151610b64816109e9565b63ffffffff818116838216019080821115610def57634e487b7160e01b600052601160045260246000fd5b509291505056fea26469706673582212200ad77e0ed11b4a0fa558bc7f4352bebcbea9ed77c79217edf689aae46824bb4164736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a5acba07788f16b4790fcbb09ca3b7fc8dd053a20000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _owner (address): 0xa5acBA07788f16B4790FCBb09cA3b7Fc8dd053A2
Arg [1] : _bungeeGateway (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5acba07788f16b4790fcbb09ca3b7fc8dd053a2
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.