S Price: $0.696983 (+3.59%)

Contract

0xFD6b5c873fAf51a9a9968eeaF31EC2C9C93DC2A6

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add Bungee Gatew...13569932024-12-23 16:00:5721 days ago1734969657IN
0xFD6b5c87...9C93DC2A6
0 S0.000046441
Add Bungee Gatew...13569762024-12-23 16:00:4221 days ago1734969642IN
0xFD6b5c87...9C93DC2A6
0 S0.000046441
Add Bungee Gatew...13569472024-12-23 16:00:2521 days ago1734969625IN
0xFD6b5c87...9C93DC2A6
0 S0.000046431
Add Bungee Gatew...13569252024-12-23 16:00:1021 days ago1734969610IN
0xFD6b5c87...9C93DC2A6
0 S0.000046441
Add Bungee Gatew...13568982024-12-23 15:59:5221 days ago1734969592IN
0xFD6b5c87...9C93DC2A6
0 S0.000051191.10230769
Add Bungee Gatew...13568692024-12-23 15:59:3321 days ago1734969573IN
0xFD6b5c87...9C93DC2A6
0 S0.000046431
Add Bungee Gatew...13568542024-12-23 15:59:1821 days ago1734969558IN
0xFD6b5c87...9C93DC2A6
0 S0.000046431
Add Bungee Gatew...13568282024-12-23 15:59:0021 days ago1734969540IN
0xFD6b5c87...9C93DC2A6
0 S0.000046431
Add Bungee Gatew...13568132024-12-23 15:58:4821 days ago1734969528IN
0xFD6b5c87...9C93DC2A6
0 S0.000046441
Add Bungee Gatew...13567942024-12-23 15:58:3621 days ago1734969516IN
0xFD6b5c87...9C93DC2A6
0 S0.000046431
Add Bungee Gatew...13567592024-12-23 15:58:1221 days ago1734969492IN
0xFD6b5c87...9C93DC2A6
0 S0.000046431
Connect Switchbo...13567192024-12-23 15:57:4721 days ago1734969467IN
0xFD6b5c87...9C93DC2A6
0 S0.000174511
Connect Switchbo...13567022024-12-23 15:57:3221 days ago1734969452IN
0xFD6b5c87...9C93DC2A6
0 S0.000174511
Connect Switchbo...13565572024-12-23 15:56:0021 days ago1734969360IN
0xFD6b5c87...9C93DC2A6
0 S0.00017451
Connect Switchbo...13560622024-12-23 15:50:3621 days ago1734969036IN
0xFD6b5c87...9C93DC2A6
0 S0.000174511
Connect Switchbo...13560342024-12-23 15:50:1621 days ago1734969016IN
0xFD6b5c87...9C93DC2A6
0 S0.000174511
Connect Switchbo...13560052024-12-23 15:49:5621 days ago1734968996IN
0xFD6b5c87...9C93DC2A6
0 S0.00017451
Connect Switchbo...13559812024-12-23 15:49:3821 days ago1734968978IN
0xFD6b5c87...9C93DC2A6
0 S0.000221121.26714285
Connect Switchbo...13559462024-12-23 15:49:1921 days ago1734968959IN
0xFD6b5c87...9C93DC2A6
0 S0.00017451
Connect Switchbo...13559102024-12-23 15:49:0121 days ago1734968941IN
0xFD6b5c87...9C93DC2A6
0 S0.000174511
Connect Switchbo...13558912024-12-23 15:48:4921 days ago1734968929IN
0xFD6b5c87...9C93DC2A6
0 S0.000174511
Connect Switchbo...13558612024-12-23 15:48:2521 days ago1734968905IN
0xFD6b5c87...9C93DC2A6
0 S0.00017451
Claim Owner13556502024-12-23 15:46:0021 days ago1734968760IN
0xFD6b5c87...9C93DC2A6
0 S0.000032741.11
Nominate Owner13372492024-12-23 12:10:5722 days ago1734955857IN
0xFD6b5c87...9C93DC2A6
0 S0.000055061.11
Set Bungee Gatew...13341662024-12-23 11:29:3022 days ago1734953370IN
0xFD6b5c87...9C93DC2A6
0 S0.000031931.1
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
38816202025-01-14 14:38:4727 mins ago1736865527
0xFD6b5c87...9C93DC2A6
0.00344534 S
38816202025-01-14 14:38:4727 mins ago1736865527
0xFD6b5c87...9C93DC2A6
0.00344534 S
38745712025-01-14 13:28:511 hr ago1736861331
0xFD6b5c87...9C93DC2A6
0.00330853 S
38745712025-01-14 13:28:511 hr ago1736861331
0xFD6b5c87...9C93DC2A6
0.00330853 S
38674672025-01-14 12:18:522 hrs ago1736857132
0xFD6b5c87...9C93DC2A6
0.00324476 S
38674672025-01-14 12:18:522 hrs ago1736857132
0xFD6b5c87...9C93DC2A6
0.00324476 S
38544242025-01-14 9:59:015 hrs ago1736848741
0xFD6b5c87...9C93DC2A6
0.0033474 S
38544242025-01-14 9:59:015 hrs ago1736848741
0xFD6b5c87...9C93DC2A6
0.0033474 S
38419362025-01-14 7:38:517 hrs ago1736840331
0xFD6b5c87...9C93DC2A6
0.00332909 S
38419362025-01-14 7:38:517 hrs ago1736840331
0xFD6b5c87...9C93DC2A6
0.00332909 S
38365832025-01-14 6:28:448 hrs ago1736836124
0xFD6b5c87...9C93DC2A6
0.00544664 S
38365832025-01-14 6:28:448 hrs ago1736836124
0xFD6b5c87...9C93DC2A6
0.00544664 S
38307032025-01-14 5:18:459 hrs ago1736831925
0xFD6b5c87...9C93DC2A6
0.00332909 S
38307032025-01-14 5:18:459 hrs ago1736831925
0xFD6b5c87...9C93DC2A6
0.00332909 S
38117132025-01-14 0:38:5214 hrs ago1736815132
0xFD6b5c87...9C93DC2A6
0.03860554 S
38117132025-01-14 0:38:5214 hrs ago1736815132
0xFD6b5c87...9C93DC2A6
0.03860554 S
38068702025-01-13 23:28:5415 hrs ago1736810934
0xFD6b5c87...9C93DC2A6
0.35285108 S
38068702025-01-13 23:28:5415 hrs ago1736810934
0xFD6b5c87...9C93DC2A6
0.35285108 S
38068662025-01-13 23:28:5015 hrs ago1736810930
0xFD6b5c87...9C93DC2A6
0.05276998 S
38068662025-01-13 23:28:5015 hrs ago1736810930
0xFD6b5c87...9C93DC2A6
0.05276998 S
38009542025-01-13 22:18:4916 hrs ago1736806729
0xFD6b5c87...9C93DC2A6
0.08648312 S
38009542025-01-13 22:18:4916 hrs ago1736806729
0xFD6b5c87...9C93DC2A6
0.08648312 S
38009502025-01-13 22:18:4716 hrs ago1736806727
0xFD6b5c87...9C93DC2A6
0.00547664 S
38009502025-01-13 22:18:4716 hrs ago1736806727
0xFD6b5c87...9C93DC2A6
0.00547664 S
37712282025-01-13 17:38:5121 hrs ago1736789931
0xFD6b5c87...9C93DC2A6
0.00965117 S
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SwitchboardRouter

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 7 : SwitchboardRouter.sol
// 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();
    }
}

File 2 of 7 : BungeeErrors.sol
// 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();

File 3 of 7 : Errors.sol
// 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();

File 4 of 7 : IBungeeGateway.sol
// 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);
}

File 5 of 7 : IPlug.sol
// 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;
}

File 6 of 7 : ISwitchboardPlug.sol
// 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;
}

File 7 of 7 : Ownable.sol
// 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_);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"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"}]

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


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.