ETH Price: $2,977.86 (-6.55%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Bridging ...170727702023-04-18 9:45:471008 days ago1681811147IN
0xB4056Fe9...bC98496AD
0 ETH0.0010800935.92164445
Bridge Back170727632023-04-18 9:44:231008 days ago1681811063IN
0xB4056Fe9...bC98496AD
0 ETH0.0040657241.13316645
Update Squid Gro...170727452023-04-18 9:40:471008 days ago1681810847IN
0xB4056Fe9...bC98496AD
0 ETH0.0010830837.283397
Bridge Back170727222023-04-18 9:35:591008 days ago1681810559IN
0xB4056Fe9...bC98496AD
0 ETH0.0031267734.10489267
Bridge Back170726102023-04-18 9:13:111008 days ago1681809191IN
0xB4056Fe9...bC98496AD
0 ETH0.0035387336.71455915
Bridge170725782023-04-18 9:06:471008 days ago1681808807IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0032997233.89829343
Update Squid Gro...170725682023-04-18 9:04:471008 days ago1681808687IN
0xB4056Fe9...bC98496AD
0 ETH0.0010484236.09034429
Bridge170723692023-04-18 8:24:231008 days ago1681806263IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0039823933.34135923
Bridge Back170723582023-04-18 8:22:111008 days ago1681806131IN
0xB4056Fe9...bC98496AD
0 ETH0.0038135738.61030497
Bridge170723352023-04-18 8:17:351008 days ago1681805855IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0035687134.8701524
Bridge170722702023-04-18 8:04:111008 days ago1681805051IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0040483139.55635373
Bridge170722652023-04-18 8:02:591008 days ago1681804979IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0050577742.34470242
Update Bridging ...170722472023-04-18 7:59:111008 days ago1681804751IN
0xB4056Fe9...bC98496AD
0 ETH0.0010532535.04298158
Update Bridging ...165624352023-02-05 11:57:591080 days ago1675598279IN
0xB4056Fe9...bC98496AD
0 ETH0.0004796515.95244371
Bridge Back165624032023-02-05 11:51:351080 days ago1675597895IN
0xB4056Fe9...bC98496AD
0 ETH0.0016792416.90542082
Bridge165623702023-02-05 11:44:591080 days ago1675597499IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0016719116.67227601
Bridge Back165623612023-02-05 11:43:111080 days ago1675597391IN
0xB4056Fe9...bC98496AD
0 ETH0.0018265517.5919532
Bridge165623582023-02-05 11:42:351080 days ago1675597355IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0016365215.57398229
Bridge165623512023-02-05 11:41:111080 days ago1675597271IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0017889217.02225766
Bridge Back165623512023-02-05 11:41:111080 days ago1675597271IN
0xB4056Fe9...bC98496AD
0 ETH0.0019839519.10352598
Bridge165623402023-02-05 11:38:591080 days ago1675597139IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.001752116.63538001
Bridge165623372023-02-05 11:38:231080 days ago1675597103IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.001721616.4625716
Bridge Back165623362023-02-05 11:38:111080 days ago1675597091IN
0xB4056Fe9...bC98496AD
0 ETH0.0019509918.78611955
Bridge165623332023-02-05 11:37:351080 days ago1675597055IN
0xB4056Fe9...bC98496AD
0.0035 ETH0.0017600516.75330139
Bridge Back165623322023-02-05 11:37:231080 days ago1675597043IN
0xB4056Fe9...bC98496AD
0 ETH0.0020356219.60101778
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer170725782023-04-18 9:06:471008 days ago1681808807
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer170723692023-04-18 8:24:231008 days ago1681806263
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer170723352023-04-18 8:17:351008 days ago1681805855
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer170722702023-04-18 8:04:111008 days ago1681805051
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer170722652023-04-18 8:02:591008 days ago1681804979
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623702023-02-05 11:44:591080 days ago1675597499
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623582023-02-05 11:42:351080 days ago1675597355
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623512023-02-05 11:41:111080 days ago1675597271
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623402023-02-05 11:38:591080 days ago1675597139
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623372023-02-05 11:38:231080 days ago1675597103
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623332023-02-05 11:37:351080 days ago1675597055
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623192023-02-05 11:34:471080 days ago1675596887
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623162023-02-05 11:34:111080 days ago1675596851
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623112023-02-05 11:33:111080 days ago1675596791
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165623082023-02-05 11:32:351080 days ago1675596755
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165621662023-02-05 11:03:591080 days ago1675595039
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165621292023-02-05 10:56:111080 days ago1675594571
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165621032023-02-05 10:50:471080 days ago1675594247
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165619782023-02-05 10:25:471080 days ago1675592747
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165612932023-02-05 8:08:351080 days ago1675584515
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165560592023-02-04 14:37:591081 days ago1675521479
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165560562023-02-04 14:37:231081 days ago1675521443
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165558402023-02-04 13:53:471081 days ago1675518827
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165557722023-02-04 13:39:591081 days ago1675517999
0xB4056Fe9...bC98496AD
0.0035 ETH
Transfer165557182023-02-04 13:28:351081 days ago1675517315
0xB4056Fe9...bC98496AD
0.0035 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SquidGrowETHBridgeContract

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-12-19
*/

/**
 *Submitted for verification at Etherscan.io on 2022-09-06
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}



interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Permit {
    
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function nonces(address owner) external view returns (uint256);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}


library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    function safePermit(
        IERC20Permit token,
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal {
        uint256 nonceBefore = token.nonces(owner);
        token.permit(owner, spender, value, deadline, v, r, s);
        uint256 nonceAfter = token.nonces(owner);
        require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed");
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract SquidGrowETHBridgeContract is Ownable {
    using SafeERC20 for IERC20;

    mapping(uint256 => uint256) private _nonces;
    mapping(uint256 => mapping(uint256 => bool)) private nonceProcessed;
    mapping(uint256 => uint256) private _processFees;
    mapping(address => bool) public _isExcludedFromFees;
    mapping (uint256 => bool) public supportedTargetChains;

    uint256 private _bridgeFee = 3;
    uint256 constant MAX_BRIDGE_FEES = 10;
    bool public _isBridgingPaused = false;

    address payable public system = payable(0x7B9f65e1B5F7a8031cBe25A78815A65244898260);
    address public governor = address(0xd070544810510865114Ad5A0b6a821A5BD2E7C49);
    address public bridgeFeesAddress = address(0xc25Dc58cEAacA1CeD62a0364f0C77e0C3E678990);

    IERC20 public squidGrow;

    event BridgeRequest(
        address indexed receiver,
        uint256 amount,
        uint256 nonce,
        uint256 indexed targetChain
    );

    event BridgeProcessed(
        uint256 indexed sourceChain,
        address indexed receiver,
        uint256 nonce,
        uint256 transferAmount,
        uint256 serviceFee
    );

    event ExcludedFromFees(address indexed account, bool indexed isExcluded);
    event BridgeFeesUpdated(uint256 bridgeFee);
    event GovernorUpdated(address indexed oldGovernor, address indexed newGovernor);
    event BridgeFeeAddressUpdated(address indexed oldBridgeFeeAddress, address indexed newBridgeFeeAddress);
    event SytemUpdated(address indexed oldSystem, address indexed newSystem);
    event ProcessFeesUpdated(uint256 indexed targetChain, uint256 processFees);
    event BridgingStateUpdated(bool indexed isPaused);
    event TargetChainAdded(uint256 indexed targetChain, uint256 timestamp);
    event TargetChainRemoved(uint256 indexed targetChain, uint256 timestamp);

    modifier onlySystem() {
        require(system == _msgSender(), "Ownable: caller is not the system");
        _;
    }
    
    modifier onlyGovernance() {
        require(governor == _msgSender(), "Ownable: caller is not the system");
        _;
    }

    /// Modifier to make a function callable only when the contract is not paused
    modifier whenNotPaused() {
        require(!_isBridgingPaused, "the bridging is paused");
        _;
    }

    constructor(address _squidGrow) {
        //   initializing processed fees
        // chainID : BSC mainnet => 56
        _processFees[56] = 0.001 ether;
        supportedTargetChains[56] = true;

        squidGrow = IERC20(_squidGrow);
        emit TargetChainAdded(56, block.timestamp);
    }

    function updateSquidGrowContract(address _squidGrow) external onlyOwner {
        squidGrow = IERC20(_squidGrow);
    }

    function addTargetChain(uint256 _targetChain) external onlyOwner {
        require(supportedTargetChains[_targetChain] != true, "Already supported");
        supportedTargetChains[_targetChain] = true;
        emit TargetChainAdded(_targetChain, block.timestamp);
    }

    function removeTargetChain(uint256 _targetChain) external onlyOwner {
        require(supportedTargetChains[_targetChain] != false, "Already not supported");
        supportedTargetChains[_targetChain] = false;
        emit TargetChainRemoved(_targetChain, block.timestamp);
    }

    function excludeFromFees(address account, bool exclude) external onlyGovernance {
        require(_isExcludedFromFees[account] != exclude, "Already set");
       _isExcludedFromFees[account] = exclude;
       emit ExcludedFromFees(account, exclude);
   }

    function updateBridgeFee(uint256 bridgeFee) external onlyGovernance {
        require(_bridgeFee <= MAX_BRIDGE_FEES, "Cannot update to more than MAX_BRIDGE_FEES");
        _bridgeFee = bridgeFee;
        emit BridgeFeesUpdated(bridgeFee);
    }
    
    function updateGovernor(address _governor) external onlyGovernance {
        emit GovernorUpdated(governor,_governor);
        governor = _governor;
    }

    function getBridgeFee() external view returns (uint256) {
        return _bridgeFee;
    }
    
    function updateBridgeFeesAddress(address _bridgeFeesAddress) external onlyGovernance {
        emit BridgeFeeAddressUpdated(bridgeFeesAddress, _bridgeFeesAddress);
        bridgeFeesAddress = _bridgeFeesAddress;
    }

    function updateSystem(address payable _system) external onlyOwner {
        emit SytemUpdated(system, _system);
        system = _system;
    }

    function setProcessFees(uint256 _targetChain, uint256 processFees)
        external
        onlyOwner
    {
        _processFees[_targetChain] = processFees;
        emit ProcessFeesUpdated(_targetChain, processFees);
    }
    
    function getProcessFees(uint256 _targetChain) external view returns(uint256){
        return _processFees[_targetChain];
    }

    function getBridgeStatus(uint256 nonce, uint256 fromChainID)
        external
        view
        returns (bool)
    {
        return nonceProcessed[fromChainID][nonce];
    }


    function updateBridgingState(bool paused) external onlyOwner {
        require(_isBridgingPaused != paused, "Already set");
        _isBridgingPaused = paused;
        emit BridgingStateUpdated(paused);
    }

    function calculateFees(uint256 amount) public view returns (uint256) {
        return (amount * _bridgeFee) / 1000;
    }

    /// @notice Transfers `amount` squidGrow initializes a bridging transaction to the target chain.
    /// @param _targetChain The target chain to which the wrapped asset will be minted
    /// @param _amount The amount of squidGrow to bridge
    function bridge(
        uint256 _targetChain,
        uint256 _amount
    ) public whenNotPaused payable{
        require(supportedTargetChains[_targetChain] == true, "targetChain not supported");
        uint256 processFee = _processFees[_targetChain];
        require(
            msg.value >= processFee,
            "Insufficient Fee to bridge"
        );
        _nonces[_targetChain] = _nonces[_targetChain] + 1;
        _sendETH(system, processFee);
        squidGrow.safeTransferFrom(_msgSender(), address(this), _amount);
        emit BridgeRequest(_msgSender(), _amount, _nonces[_targetChain], _targetChain);
    }


    /// @notice Transfers `amount` native tokens to the `receiver` address.
    /// @param _sourceChain The chainId of the chain that we're bridging from
    /// @param _nonce The source transaction ID
    /// @param _amount The amount to transfer
    /// @param _receiver The address reveiving the tokens
    function bridgeBack(
        uint256 _sourceChain,
        uint256 _nonce,
        uint256 _amount,
        address _receiver
    ) external whenNotPaused onlySystem {
        require(
            !nonceProcessed[_sourceChain][_nonce],
            "Bridge transaction is already processed"
        );
        nonceProcessed[_sourceChain][_nonce] = true;

        uint256 serviceFee;
        if(!_isExcludedFromFees[_receiver]) {
            serviceFee = calculateFees(_amount);
        }

        uint256 transferAmount = _amount - serviceFee;

        if(serviceFee > 0) {
            squidGrow.safeTransfer(bridgeFeesAddress, serviceFee);
        }
        squidGrow.safeTransfer(_receiver, transferAmount);

        emit BridgeProcessed(
            _sourceChain,
            _receiver,
            _nonce,
            transferAmount,
            serviceFee
        );
    }

    function _sendETH(address _receipient, uint256 _amount) internal {
        (bool success, ) = _receipient.call{value : _amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_squidGrow","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldBridgeFeeAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newBridgeFeeAddress","type":"address"}],"name":"BridgeFeeAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bridgeFee","type":"uint256"}],"name":"BridgeFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sourceChain","type":"uint256"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transferAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"serviceFee","type":"uint256"}],"name":"BridgeProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"targetChain","type":"uint256"}],"name":"BridgeRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"BridgingStateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldGovernor","type":"address"},{"indexed":true,"internalType":"address","name":"newGovernor","type":"address"}],"name":"GovernorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"targetChain","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"processFees","type":"uint256"}],"name":"ProcessFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldSystem","type":"address"},{"indexed":true,"internalType":"address","name":"newSystem","type":"address"}],"name":"SytemUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"targetChain","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TargetChainAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"targetChain","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TargetChainRemoved","type":"event"},{"inputs":[],"name":"_isBridgingPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_targetChain","type":"uint256"}],"name":"addTargetChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_targetChain","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"bridge","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sourceChain","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"bridgeBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bridgeFeesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBridgeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"fromChainID","type":"uint256"}],"name":"getBridgeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_targetChain","type":"uint256"}],"name":"getProcessFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","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":"uint256","name":"_targetChain","type":"uint256"}],"name":"removeTargetChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_targetChain","type":"uint256"},{"internalType":"uint256","name":"processFees","type":"uint256"}],"name":"setProcessFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"squidGrow","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supportedTargetChains","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"system","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bridgeFee","type":"uint256"}],"name":"updateBridgeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bridgeFeesAddress","type":"address"}],"name":"updateBridgeFeesAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"paused","type":"bool"}],"name":"updateBridgingState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governor","type":"address"}],"name":"updateGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_squidGrow","type":"address"}],"name":"updateSquidGrowContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_system","type":"address"}],"name":"updateSystem","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600360065560078054747b9f65e1b5f7a8031cbe25a78815a65244898260006001600160a81b0319909116179055600880546001600160a01b031990811673d070544810510865114ad5a0b6a821a5bd2e7c49179091556009805490911673c25dc58ceaaca1ced62a0364f0c77e0c3e67899017905534801561008657600080fd5b506040516118243803806118248339810160408190526100a5916101b6565b6100ae33610166565b6038600081905266038d7ea4c680007f22848320af6c4894685e387cf97d56ba798f5dabcd8f3a2db70374776f0f2f9355600560209081527f5f395545d7c2ebf6d2fe0bd3c2073d7c4780f2b676eec0a614b06e38606c9b7a8054600160ff19909116179055600a80546001600160a01b0319166001600160a01b0385161790556040514281527f5e345a97ae03ecaea86362457ac3c90ecefc9f2d036eddc640fdec90c30ca608910160405180910390a2506101e6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156101c857600080fd5b81516001600160a01b03811681146101df57600080fd5b9392505050565b61162f806101f56000396000f3fe6080604052600436106101815760003560e01c806385659de1116100d1578063c02466681161008a578063cc46119411610064578063cc46119414610494578063e0bf7fd1146104b4578063e73dcecf146104e4578063f2fde38b1461050457600080fd5b8063c024666814610441578063c90b79cb14610461578063cbae8e211461048157600080fd5b806385659de1146103895780638da5cb5b1461039e57806395bf75fd146103bc578063a5fa1cf8146103e1578063b1fa6e3c14610401578063b54fc3f81461042157600080fd5b80635664af631161013e57806362f384ad1161011857806362f384ad14610314578063715018a6146103345780637a681df21461034957806382a990ca1461036957600080fd5b80635664af63146102975780635a1c0366146102c75780635f11b9ce146102e757600080fd5b8063048daa1a1461018657806309e9e949146101c35780630c340a241461020d578063119b49091461022d57806339a79b461461024757806352238fdd14610269575b600080fd5b34801561019257600080fd5b50600a546101a6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101cf57600080fd5b506101fd6101de366004611431565b6000908152600260209081526040808320938352929052205460ff1690565b60405190151581526020016101ba565b34801561021957600080fd5b506008546101a6906001600160a01b031681565b34801561023957600080fd5b506007546101fd9060ff1681565b34801561025357600080fd5b50610267610262366004611381565b610524565b005b34801561027557600080fd5b50610289610284366004611418565b6105b3565b6040519081526020016101ba565b3480156102a357600080fd5b506101fd6102b2366004611418565b60056020526000908152604090205460ff1681565b3480156102d357600080fd5b506102676102e2366004611418565b6105d6565b3480156102f357600080fd5b50610289610302366004611418565b60009081526003602052604090205490565b34801561032057600080fd5b5061026761032f366004611381565b6106a1565b34801561034057600080fd5b50610267610727565b34801561035557600080fd5b50610267610364366004611418565b61073b565b34801561037557600080fd5b50610267610384366004611381565b6107ee565b34801561039557600080fd5b50600654610289565b3480156103aa57600080fd5b506000546001600160a01b03166101a6565b3480156103c857600080fd5b506007546101a69061010090046001600160a01b031681565b3480156103ed57600080fd5b506102676103fc366004611381565b61085d565b34801561040d57600080fd5b5061026761041c366004611453565b610887565b34801561042d57600080fd5b5061026761043c366004611418565b610a66565b34801561044d57600080fd5b5061026761045c3660046113a5565b610b13565b34801561046d57600080fd5b5061026761047c366004611431565b610bee565b61026761048f366004611431565b610c47565b3480156104a057600080fd5b506009546101a6906001600160a01b031681565b3480156104c057600080fd5b506101fd6104cf366004611381565b60046020526000908152604090205460ff1681565b3480156104f057600080fd5b506102676104ff3660046113de565b610e04565b34801561051057600080fd5b5061026761051f366004611381565b610e90565b6008546001600160a01b031633146105575760405162461bcd60e51b815260040161054e906114e3565b60405180910390fd5b6009546040516001600160a01b038084169216907fe09196022e417d602f181fd0c991f9bc207d7404cf8f30d97b5c2d768de619d190600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006103e8600654836105c6919061155e565b6105d0919061153c565b92915050565b6008546001600160a01b031633146106005760405162461bcd60e51b815260040161054e906114e3565b600a60065411156106665760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f742075706461746520746f206d6f7265207468616e204d41585f4260448201526952494447455f4645455360b01b606482015260840161054e565b60068190556040518181527ffa2bd91f58e892e78ea8fa0246e7ba70f1b6496b8a61f69bd5d4e752b54419349060200160405180910390a150565b6008546001600160a01b031633146106cb5760405162461bcd60e51b815260040161054e906114e3565b6008546040516001600160a01b038084169216907f5af6a85e864342d4f108c43dd574d98480c91f1de0ac2a9f66d826dee49bd9bb90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b61072f610f09565b6107396000610f63565b565b610743610f09565b60008181526005602052604090205460ff166107995760405162461bcd60e51b8152602060048201526015602482015274105b1c9958591e481b9bdd081cdd5c1c1bdc9d1959605a1b604482015260640161054e565b60008181526005602052604090819020805460ff191690555181907fc456c2aca506f5d0f2dfcae589c061fe0e094934e62ece9525d6a18e14eff0f4906107e39042815260200190565b60405180910390a250565b6107f6610f09565b6007546040516001600160a01b0380841692610100900416907f57d93e99e91a676616c4ebf9d6125ce9e342958a2c17e82729cd01c03dc2007e90600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b610865610f09565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60075460ff16156108d35760405162461bcd60e51b81526020600482015260166024820152751d1a1948189c9a5919da5b99c81a5cc81c185d5cd95960521b604482015260640161054e565b6007546001600160a01b036101009091041633146109035760405162461bcd60e51b815260040161054e906114e3565b600084815260026020908152604080832086845290915290205460ff161561097d5760405162461bcd60e51b815260206004820152602760248201527f427269646765207472616e73616374696f6e20697320616c72656164792070726044820152661bd8d95cdcd95960ca1b606482015260840161054e565b60008481526002602090815260408083208684528252808320805460ff191660011790556001600160a01b0384168352600490915281205460ff166109c8576109c5836105b3565b90505b60006109d4828561157d565b905081156109f957600954600a546109f9916001600160a01b03918216911684610fb3565b600a54610a10906001600160a01b03168483610fb3565b60408051868152602081018390529081018390526001600160a01b0384169087907f69173028a05dd8dda18f2c1fceafe49e70b54d6a911b3e619e95100bbb3059bf9060600160405180910390a3505050505050565b610a6e610f09565b60008181526005602052604090205460ff16151560011415610ac65760405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e481cdd5c1c1bdc9d1959607a1b604482015260640161054e565b60008181526005602052604090819020805460ff191660011790555181907f5e345a97ae03ecaea86362457ac3c90ecefc9f2d036eddc640fdec90c30ca608906107e39042815260200190565b6008546001600160a01b03163314610b3d5760405162461bcd60e51b815260040161054e906114e3565b6001600160a01b03821660009081526004602052604090205460ff1615158115151415610b9a5760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e481cd95d60aa1b604482015260640161054e565b6001600160a01b038216600081815260046020526040808220805460ff191685151590811790915590519092917f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb91a35050565b610bf6610f09565b600082815260036020526040908190208290555182907f827580a0371269d409407fe52216f17951eaea5ea4d527800379d7d3206b9ffe90610c3b9084815260200190565b60405180910390a25050565b60075460ff1615610c935760405162461bcd60e51b81526020600482015260166024820152751d1a1948189c9a5919da5b99c81a5cc81c185d5cd95960521b604482015260640161054e565b60008281526005602052604090205460ff161515600114610cf65760405162461bcd60e51b815260206004820152601960248201527f746172676574436861696e206e6f7420737570706f7274656400000000000000604482015260640161054e565b60008281526003602052604090205434811115610d555760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e742046656520746f20627269646765000000000000604482015260640161054e565b600083815260016020819052604090912054610d7091611524565b600084815260016020526040902055600754610d9a9061010090046001600160a01b03168261101b565b610db233600a546001600160a01b03169030856110e4565b600083815260016020908152604091829020548251858152918201528151859233927f12f682e9c961212f3aaf02fc8098abd0669b917350bd22eed3b287939815450c929081900390910190a3505050565b610e0c610f09565b60075460ff1615158115151415610e535760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e481cd95d60aa1b604482015260640161054e565b6007805460ff19168215159081179091556040517f7ef65168f9390734ad988124ff1b4ce279e2459178e9e73b5a8debbb7c667fe690600090a250565b610e98610f09565b6001600160a01b038116610efd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054e565b610f0681610f63565b50565b6000546001600160a01b031633146107395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161054e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b03831660248201526044810182905261101690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611122565b505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611068576040519150601f19603f3d011682016040523d82523d6000602084013e61106d565b606091505b50509050806110165760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161054e565b6040516001600160a01b038085166024830152831660448201526064810182905261111c9085906323b872dd60e01b90608401610fdf565b50505050565b6000611177826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111f49092919063ffffffff16565b805190915015611016578080602001905181019061119591906113fb565b6110165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161054e565b6060611203848460008561120b565b949350505050565b60608247101561126c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161054e565b600080866001600160a01b031685876040516112889190611494565b60006040518083038185875af1925050503d80600081146112c5576040519150601f19603f3d011682016040523d82523d6000602084013e6112ca565b606091505b50915091506112db878383876112e6565b979650505050505050565b6060831561135257825161134b576001600160a01b0385163b61134b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161054e565b5081611203565b61120383838151156113675781518083602001fd5b8060405162461bcd60e51b815260040161054e91906114b0565b60006020828403121561139357600080fd5b813561139e816115d6565b9392505050565b600080604083850312156113b857600080fd5b82356113c3816115d6565b915060208301356113d3816115eb565b809150509250929050565b6000602082840312156113f057600080fd5b813561139e816115eb565b60006020828403121561140d57600080fd5b815161139e816115eb565b60006020828403121561142a57600080fd5b5035919050565b6000806040838503121561144457600080fd5b50508035926020909101359150565b6000806000806080858703121561146957600080fd5b8435935060208501359250604085013591506060850135611489816115d6565b939692955090935050565b600082516114a6818460208701611594565b9190910192915050565b60208152600082518060208401526114cf816040850160208701611594565b601f01601f19169190910160400192915050565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652073797374656040820152606d60f81b606082015260800190565b60008219821115611537576115376115c0565b500190565b60008261155957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611578576115786115c0565b500290565b60008282101561158f5761158f6115c0565b500390565b60005b838110156115af578181015183820152602001611597565b8381111561111c5750506000910152565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610f0657600080fd5b8015158114610f0657600080fdfea2646970667358221220b2f968bcf95db2488e2b47e93e84bd03ac60d94c151561a9a7c682d87819413764736f6c6343000807003300000000000000000000000088479186bac914e4313389a64881f5ed0153c765

Deployed Bytecode

0x6080604052600436106101815760003560e01c806385659de1116100d1578063c02466681161008a578063cc46119411610064578063cc46119414610494578063e0bf7fd1146104b4578063e73dcecf146104e4578063f2fde38b1461050457600080fd5b8063c024666814610441578063c90b79cb14610461578063cbae8e211461048157600080fd5b806385659de1146103895780638da5cb5b1461039e57806395bf75fd146103bc578063a5fa1cf8146103e1578063b1fa6e3c14610401578063b54fc3f81461042157600080fd5b80635664af631161013e57806362f384ad1161011857806362f384ad14610314578063715018a6146103345780637a681df21461034957806382a990ca1461036957600080fd5b80635664af63146102975780635a1c0366146102c75780635f11b9ce146102e757600080fd5b8063048daa1a1461018657806309e9e949146101c35780630c340a241461020d578063119b49091461022d57806339a79b461461024757806352238fdd14610269575b600080fd5b34801561019257600080fd5b50600a546101a6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101cf57600080fd5b506101fd6101de366004611431565b6000908152600260209081526040808320938352929052205460ff1690565b60405190151581526020016101ba565b34801561021957600080fd5b506008546101a6906001600160a01b031681565b34801561023957600080fd5b506007546101fd9060ff1681565b34801561025357600080fd5b50610267610262366004611381565b610524565b005b34801561027557600080fd5b50610289610284366004611418565b6105b3565b6040519081526020016101ba565b3480156102a357600080fd5b506101fd6102b2366004611418565b60056020526000908152604090205460ff1681565b3480156102d357600080fd5b506102676102e2366004611418565b6105d6565b3480156102f357600080fd5b50610289610302366004611418565b60009081526003602052604090205490565b34801561032057600080fd5b5061026761032f366004611381565b6106a1565b34801561034057600080fd5b50610267610727565b34801561035557600080fd5b50610267610364366004611418565b61073b565b34801561037557600080fd5b50610267610384366004611381565b6107ee565b34801561039557600080fd5b50600654610289565b3480156103aa57600080fd5b506000546001600160a01b03166101a6565b3480156103c857600080fd5b506007546101a69061010090046001600160a01b031681565b3480156103ed57600080fd5b506102676103fc366004611381565b61085d565b34801561040d57600080fd5b5061026761041c366004611453565b610887565b34801561042d57600080fd5b5061026761043c366004611418565b610a66565b34801561044d57600080fd5b5061026761045c3660046113a5565b610b13565b34801561046d57600080fd5b5061026761047c366004611431565b610bee565b61026761048f366004611431565b610c47565b3480156104a057600080fd5b506009546101a6906001600160a01b031681565b3480156104c057600080fd5b506101fd6104cf366004611381565b60046020526000908152604090205460ff1681565b3480156104f057600080fd5b506102676104ff3660046113de565b610e04565b34801561051057600080fd5b5061026761051f366004611381565b610e90565b6008546001600160a01b031633146105575760405162461bcd60e51b815260040161054e906114e3565b60405180910390fd5b6009546040516001600160a01b038084169216907fe09196022e417d602f181fd0c991f9bc207d7404cf8f30d97b5c2d768de619d190600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006103e8600654836105c6919061155e565b6105d0919061153c565b92915050565b6008546001600160a01b031633146106005760405162461bcd60e51b815260040161054e906114e3565b600a60065411156106665760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f742075706461746520746f206d6f7265207468616e204d41585f4260448201526952494447455f4645455360b01b606482015260840161054e565b60068190556040518181527ffa2bd91f58e892e78ea8fa0246e7ba70f1b6496b8a61f69bd5d4e752b54419349060200160405180910390a150565b6008546001600160a01b031633146106cb5760405162461bcd60e51b815260040161054e906114e3565b6008546040516001600160a01b038084169216907f5af6a85e864342d4f108c43dd574d98480c91f1de0ac2a9f66d826dee49bd9bb90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b61072f610f09565b6107396000610f63565b565b610743610f09565b60008181526005602052604090205460ff166107995760405162461bcd60e51b8152602060048201526015602482015274105b1c9958591e481b9bdd081cdd5c1c1bdc9d1959605a1b604482015260640161054e565b60008181526005602052604090819020805460ff191690555181907fc456c2aca506f5d0f2dfcae589c061fe0e094934e62ece9525d6a18e14eff0f4906107e39042815260200190565b60405180910390a250565b6107f6610f09565b6007546040516001600160a01b0380841692610100900416907f57d93e99e91a676616c4ebf9d6125ce9e342958a2c17e82729cd01c03dc2007e90600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b610865610f09565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60075460ff16156108d35760405162461bcd60e51b81526020600482015260166024820152751d1a1948189c9a5919da5b99c81a5cc81c185d5cd95960521b604482015260640161054e565b6007546001600160a01b036101009091041633146109035760405162461bcd60e51b815260040161054e906114e3565b600084815260026020908152604080832086845290915290205460ff161561097d5760405162461bcd60e51b815260206004820152602760248201527f427269646765207472616e73616374696f6e20697320616c72656164792070726044820152661bd8d95cdcd95960ca1b606482015260840161054e565b60008481526002602090815260408083208684528252808320805460ff191660011790556001600160a01b0384168352600490915281205460ff166109c8576109c5836105b3565b90505b60006109d4828561157d565b905081156109f957600954600a546109f9916001600160a01b03918216911684610fb3565b600a54610a10906001600160a01b03168483610fb3565b60408051868152602081018390529081018390526001600160a01b0384169087907f69173028a05dd8dda18f2c1fceafe49e70b54d6a911b3e619e95100bbb3059bf9060600160405180910390a3505050505050565b610a6e610f09565b60008181526005602052604090205460ff16151560011415610ac65760405162461bcd60e51b8152602060048201526011602482015270105b1c9958591e481cdd5c1c1bdc9d1959607a1b604482015260640161054e565b60008181526005602052604090819020805460ff191660011790555181907f5e345a97ae03ecaea86362457ac3c90ecefc9f2d036eddc640fdec90c30ca608906107e39042815260200190565b6008546001600160a01b03163314610b3d5760405162461bcd60e51b815260040161054e906114e3565b6001600160a01b03821660009081526004602052604090205460ff1615158115151415610b9a5760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e481cd95d60aa1b604482015260640161054e565b6001600160a01b038216600081815260046020526040808220805460ff191685151590811790915590519092917f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb91a35050565b610bf6610f09565b600082815260036020526040908190208290555182907f827580a0371269d409407fe52216f17951eaea5ea4d527800379d7d3206b9ffe90610c3b9084815260200190565b60405180910390a25050565b60075460ff1615610c935760405162461bcd60e51b81526020600482015260166024820152751d1a1948189c9a5919da5b99c81a5cc81c185d5cd95960521b604482015260640161054e565b60008281526005602052604090205460ff161515600114610cf65760405162461bcd60e51b815260206004820152601960248201527f746172676574436861696e206e6f7420737570706f7274656400000000000000604482015260640161054e565b60008281526003602052604090205434811115610d555760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e742046656520746f20627269646765000000000000604482015260640161054e565b600083815260016020819052604090912054610d7091611524565b600084815260016020526040902055600754610d9a9061010090046001600160a01b03168261101b565b610db233600a546001600160a01b03169030856110e4565b600083815260016020908152604091829020548251858152918201528151859233927f12f682e9c961212f3aaf02fc8098abd0669b917350bd22eed3b287939815450c929081900390910190a3505050565b610e0c610f09565b60075460ff1615158115151415610e535760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e481cd95d60aa1b604482015260640161054e565b6007805460ff19168215159081179091556040517f7ef65168f9390734ad988124ff1b4ce279e2459178e9e73b5a8debbb7c667fe690600090a250565b610e98610f09565b6001600160a01b038116610efd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054e565b610f0681610f63565b50565b6000546001600160a01b031633146107395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161054e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b03831660248201526044810182905261101690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611122565b505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611068576040519150601f19603f3d011682016040523d82523d6000602084013e61106d565b606091505b50509050806110165760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161054e565b6040516001600160a01b038085166024830152831660448201526064810182905261111c9085906323b872dd60e01b90608401610fdf565b50505050565b6000611177826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111f49092919063ffffffff16565b805190915015611016578080602001905181019061119591906113fb565b6110165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161054e565b6060611203848460008561120b565b949350505050565b60608247101561126c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161054e565b600080866001600160a01b031685876040516112889190611494565b60006040518083038185875af1925050503d80600081146112c5576040519150601f19603f3d011682016040523d82523d6000602084013e6112ca565b606091505b50915091506112db878383876112e6565b979650505050505050565b6060831561135257825161134b576001600160a01b0385163b61134b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161054e565b5081611203565b61120383838151156113675781518083602001fd5b8060405162461bcd60e51b815260040161054e91906114b0565b60006020828403121561139357600080fd5b813561139e816115d6565b9392505050565b600080604083850312156113b857600080fd5b82356113c3816115d6565b915060208301356113d3816115eb565b809150509250929050565b6000602082840312156113f057600080fd5b813561139e816115eb565b60006020828403121561140d57600080fd5b815161139e816115eb565b60006020828403121561142a57600080fd5b5035919050565b6000806040838503121561144457600080fd5b50508035926020909101359150565b6000806000806080858703121561146957600080fd5b8435935060208501359250604085013591506060850135611489816115d6565b939692955090935050565b600082516114a6818460208701611594565b9190910192915050565b60208152600082518060208401526114cf816040850160208701611594565b601f01601f19169190910160400192915050565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652073797374656040820152606d60f81b606082015260800190565b60008219821115611537576115376115c0565b500190565b60008261155957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611578576115786115c0565b500290565b60008282101561158f5761158f6115c0565b500390565b60005b838110156115af578181015183820152602001611597565b8381111561111c5750506000910152565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610f0657600080fd5b8015158114610f0657600080fdfea2646970667358221220b2f968bcf95db2488e2b47e93e84bd03ac60d94c151561a9a7c682d87819413764736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000088479186bac914e4313389a64881f5ed0153c765

-----Decoded View---------------
Arg [0] : _squidGrow (address): 0x88479186BAC914E4313389a64881F5ed0153C765

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000088479186bac914e4313389a64881f5ed0153c765


Deployed Bytecode Sourcemap

10344:7809:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11129:23;;;;;;;;;;-1:-1:-1;11129:23:0;;;;-1:-1:-1;;;;;11129:23:0;;;;;;-1:-1:-1;;;;;2957:32:1;;;2939:51;;2927:2;2912:18;11129:23:0;;;;;;;;15246:182;;;;;;;;;;-1:-1:-1;15246:182:0;;;;;:::i;:::-;15357:4;15386:27;;;:14;:27;;;;;;;;:34;;;;;;;;;;;15246:182;;;;4049:14:1;;4042:22;4024:41;;4012:2;3997:18;15246:182:0;3884:187:1;10950:77:0;;;;;;;;;;-1:-1:-1;10950:77:0;;;;-1:-1:-1;;;;;10950:77:0;;;10814:37;;;;;;;;;;-1:-1:-1;10814:37:0;;;;;;;;14487:220;;;;;;;;;;-1:-1:-1;14487:220:0;;;;;:::i;:::-;;:::i;:::-;;15658:123;;;;;;;;;;-1:-1:-1;15658:123:0;;;;;:::i;:::-;;:::i;:::-;;;10520:25:1;;;10508:2;10493:18;15658:123:0;10374:177:1;10670:54:0;;;;;;;;;;-1:-1:-1;10670:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13958:248;;;;;;;;;;-1:-1:-1;13958:248:0;;;;;:::i;:::-;;:::i;15110:128::-;;;;;;;;;;-1:-1:-1;15110:128:0;;;;;:::i;:::-;15178:7;15204:26;;;:12;:26;;;;;;;15110:128;14218:157;;;;;;;;;;-1:-1:-1;14218:157:0;;;;;:::i;:::-;;:::i;1074:103::-;;;;;;;;;;;;;:::i;13400:284::-;;;;;;;;;;-1:-1:-1;13400:284:0;;;;;:::i;:::-;;:::i;14715:146::-;;;;;;;;;;-1:-1:-1;14715:146:0;;;;;:::i;:::-;;:::i;14383:92::-;;;;;;;;;;-1:-1:-1;14457:10:0;;14383:92;;839:87;;;;;;;;;;-1:-1:-1;885:7:0;912:6;-1:-1:-1;;;;;912:6:0;839:87;;10860:83;;;;;;;;;;-1:-1:-1;10860:83:0;;;;;;;-1:-1:-1;;;;;10860:83:0;;;12990:121;;;;;;;;;;-1:-1:-1;12990:121:0;;;;;:::i;:::-;;:::i;16997:908::-;;;;;;;;;;-1:-1:-1;16997:908:0;;;;;:::i;:::-;;:::i;13119:273::-;;;;;;;;;;-1:-1:-1;13119:273:0;;;;;:::i;:::-;;:::i;13692:258::-;;;;;;;;;;-1:-1:-1;13692:258:0;;;;;:::i;:::-;;:::i;14869:229::-;;;;;;;;;;-1:-1:-1;14869:229:0;;;;;:::i;:::-;;:::i;16037:639::-;;;;;;:::i;:::-;;:::i;11034:86::-;;;;;;;;;;-1:-1:-1;11034:86:0;;;;-1:-1:-1;;;;;11034:86:0;;;10612:51;;;;;;;;;;-1:-1:-1;10612:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15438:212;;;;;;;;;;-1:-1:-1;15438:212:0;;;;;:::i;:::-;;:::i;1185:201::-;;;;;;;;;;-1:-1:-1;1185:201:0;;;;;:::i;:::-;;:::i;14487:220::-;12390:8;;-1:-1:-1;;;;;12390:8:0;259:10;12390:24;12382:70;;;;-1:-1:-1;;;12382:70:0;;;;;;;:::i;:::-;;;;;;;;;14612:17:::1;::::0;14588:62:::1;::::0;-1:-1:-1;;;;;14588:62:0;;::::1;::::0;14612:17:::1;::::0;14588:62:::1;::::0;14612:17:::1;::::0;14588:62:::1;14661:17;:38:::0;;-1:-1:-1;;;;;;14661:38:0::1;-1:-1:-1::0;;;;;14661:38:0;;;::::1;::::0;;;::::1;::::0;;14487:220::o;15658:123::-;15718:7;15769:4;15755:10;;15746:6;:19;;;;:::i;:::-;15745:28;;;;:::i;:::-;15738:35;15658:123;-1:-1:-1;;15658:123:0:o;13958:248::-;12390:8;;-1:-1:-1;;;;;12390:8:0;259:10;12390:24;12382:70;;;;-1:-1:-1;;;12382:70:0;;;;;;;:::i;:::-;10805:2:::1;14045:10;;:29;;14037:84;;;::::0;-1:-1:-1;;;14037:84:0;;10165:2:1;14037:84:0::1;::::0;::::1;10147:21:1::0;10204:2;10184:18;;;10177:30;10243:34;10223:18;;;10216:62;-1:-1:-1;;;10294:18:1;;;10287:40;10344:19;;14037:84:0::1;9963:406:1::0;14037:84:0::1;14132:10;:22:::0;;;14170:28:::1;::::0;10520:25:1;;;14170:28:0::1;::::0;10508:2:1;10493:18;14170:28:0::1;;;;;;;13958:248:::0;:::o;14218:157::-;12390:8;;-1:-1:-1;;;;;12390:8:0;259:10;12390:24;12382:70;;;;-1:-1:-1;;;12382:70:0;;;;;;;:::i;:::-;14317:8:::1;::::0;14301:35:::1;::::0;-1:-1:-1;;;;;14301:35:0;;::::1;::::0;14317:8:::1;::::0;14301:35:::1;::::0;14317:8:::1;::::0;14301:35:::1;14347:8;:20:::0;;-1:-1:-1;;;;;;14347:20:0::1;-1:-1:-1::0;;;;;14347:20:0;;;::::1;::::0;;;::::1;::::0;;14218:157::o;1074:103::-;798:13;:11;:13::i;:::-;1139:30:::1;1166:1;1139:18;:30::i;:::-;1074:103::o:0;13400:284::-;798:13;:11;:13::i;:::-;13487:35:::1;::::0;;;:21:::1;:35;::::0;;;;;::::1;;13479:78;;;::::0;-1:-1:-1;;;13479:78:0;;4888:2:1;13479:78:0::1;::::0;::::1;4870:21:1::0;4927:2;4907:18;;;4900:30;-1:-1:-1;;;4946:18:1;;;4939:51;5007:18;;13479:78:0::1;4686:345:1::0;13479:78:0::1;13606:5;13568:35:::0;;;:21:::1;:35;::::0;;;;;;:43;;-1:-1:-1;;13568:43:0::1;::::0;;13627:49;13590:12;;13627:49:::1;::::0;::::1;::::0;13660:15:::1;10520:25:1::0;;10508:2;10493:18;;10374:177;13627:49:0::1;;;;;;;;13400:284:::0;:::o;14715:146::-;798:13;:11;:13::i;:::-;14810:6:::1;::::0;14797:29:::1;::::0;-1:-1:-1;;;;;14797:29:0;;::::1;::::0;14810:6:::1;::::0;::::1;;::::0;14797:29:::1;::::0;;;::::1;14837:6;:16:::0;;-1:-1:-1;;;;;14837:16:0;;::::1;;;-1:-1:-1::0;;;;;;14837:16:0;;::::1;::::0;;;::::1;::::0;;14715:146::o;12990:121::-;798:13;:11;:13::i;:::-;13073:9:::1;:30:::0;;-1:-1:-1;;;;;;13073:30:0::1;-1:-1:-1::0;;;;;13073:30:0;;;::::1;::::0;;;::::1;::::0;;12990:121::o;16997:908::-;12608:17;;;;12607:18;12599:53;;;;-1:-1:-1;;;12599:53:0;;9814:2:1;12599:53:0;;;9796:21:1;9853:2;9833:18;;;9826:30;-1:-1:-1;;;9872:18:1;;;9865:52;9934:18;;12599:53:0;9612:346:1;12599:53:0;12253:6:::1;::::0;-1:-1:-1;;;;;12253:6:0::1;::::0;;::::1;;259:10:::0;12253:22:::1;12245:68;;;;-1:-1:-1::0;;;12245:68:0::1;;;;;;;:::i;:::-;17202:28:::2;::::0;;;:14:::2;:28;::::0;;;;;;;:36;;;;;;;;;::::2;;17201:37;17179:126;;;::::0;-1:-1:-1;;;17179:126:0;;8637:2:1;17179:126:0::2;::::0;::::2;8619:21:1::0;8676:2;8656:18;;;8649:30;8715:34;8695:18;;;8688:62;-1:-1:-1;;;8766:18:1;;;8759:37;8813:19;;17179:126:0::2;8435:403:1::0;17179:126:0::2;17316:28;::::0;;;:14:::2;:28;::::0;;;;;;;:36;;;;;;;;:43;;-1:-1:-1;;17316:43:0::2;17355:4;17316:43;::::0;;-1:-1:-1;;;;;17405:30:0;::::2;::::0;;:19:::2;:30:::0;;;;;;17316:43:::2;17405:30;17401:98;;17465:22;17479:7;17465:13;:22::i;:::-;17452:35;;17401:98;17511:22;17536:20;17546:10:::0;17536:7;:20:::2;:::i;:::-;17511:45:::0;-1:-1:-1;17572:14:0;;17569:99:::2;;17626:17;::::0;17603:9:::2;::::0;:53:::2;::::0;-1:-1:-1;;;;;17603:9:0;;::::2;::::0;17626:17:::2;17645:10:::0;17603:22:::2;:53::i;:::-;17678:9;::::0;:49:::2;::::0;-1:-1:-1;;;;;17678:9:0::2;17701::::0;17712:14;17678:22:::2;:49::i;:::-;17745:152;::::0;;11011:25:1;;;11067:2;11052:18;;11045:34;;;11095:18;;;11088:34;;;-1:-1:-1;;;;;17745:152:0;::::2;::::0;17775:12;;17745:152:::2;::::0;10999:2:1;10984:18;17745:152:0::2;;;;;;;17168:737;;16997:908:::0;;;;:::o;13119:273::-;798:13;:11;:13::i;:::-;13203:35:::1;::::0;;;:21:::1;:35;::::0;;;;;::::1;;:43;;:35:::0;:43:::1;;13195:73;;;::::0;-1:-1:-1;;;13195:73:0;;5645:2:1;13195:73:0::1;::::0;::::1;5627:21:1::0;5684:2;5664:18;;;5657:30;-1:-1:-1;;;5703:18:1;;;5696:47;5760:18;;13195:73:0::1;5443:341:1::0;13195:73:0::1;13279:35;::::0;;;:21:::1;:35;::::0;;;;;;:42;;-1:-1:-1;;13279:42:0::1;13317:4;13279:42;::::0;;13337:47;13301:12;;13337:47:::1;::::0;::::1;::::0;13368:15:::1;10520:25:1::0;;10508:2;10493:18;;10374:177;13692:258:0;12390:8;;-1:-1:-1;;;;;12390:8:0;259:10;12390:24;12382:70;;;;-1:-1:-1;;;12382:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13791:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;::::1;;:39;;::::0;::::1;;;;13783:63;;;::::0;-1:-1:-1;;;13783:63:0;;7227:2:1;13783:63:0::1;::::0;::::1;7209:21:1::0;7266:2;7246:18;;;7239:30;-1:-1:-1;;;7285:18:1;;;7278:41;7336:18;;13783:63:0::1;7025:335:1::0;13783:63:0::1;-1:-1:-1::0;;;;;13856:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:38;;-1:-1:-1;;13856:38:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13909:34;;13856:38;;:28;13909:34:::1;::::0;::::1;13692:258:::0;;:::o;14869:229::-;798:13;:11;:13::i;:::-;14989:26:::1;::::0;;;:12:::1;:26;::::0;;;;;;:40;;;15045:45;15002:12;;15045:45:::1;::::0;::::1;::::0;15018:11;10520:25:1;;10508:2;10493:18;;10374:177;15045:45:0::1;;;;;;;;14869:229:::0;;:::o;16037:639::-;12608:17;;;;12607:18;12599:53;;;;-1:-1:-1;;;12599:53:0;;9814:2:1;12599:53:0;;;9796:21:1;9853:2;9833:18;;;9826:30;-1:-1:-1;;;9872:18:1;;;9865:52;9934:18;;12599:53:0;9612:346:1;12599:53:0;16164:35:::1;::::0;;;:21:::1;:35;::::0;;;;;::::1;;:43;;:35:::0;:43:::1;16156:81;;;::::0;-1:-1:-1;;;16156:81:0;;7567:2:1;16156:81:0::1;::::0;::::1;7549:21:1::0;7606:2;7586:18;;;7579:30;7645:27;7625:18;;;7618:55;7690:18;;16156:81:0::1;7365:349:1::0;16156:81:0::1;16248:18;16269:26:::0;;;:12:::1;:26;::::0;;;;;16328:9:::1;:23:::0;-1:-1:-1;16328:23:0::1;16306:99;;;::::0;-1:-1:-1;;;16306:99:0;;8282:2:1;16306:99:0::1;::::0;::::1;8264:21:1::0;8321:2;8301:18;;;8294:30;8360:28;8340:18;;;8333:56;8406:18;;16306:99:0::1;8080:350:1::0;16306:99:0::1;16440:21;::::0;;;:7:::1;:21;::::0;;;;;;;;:25:::1;::::0;::::1;:::i;:::-;16416:21;::::0;;;:7:::1;:21;::::0;;;;:49;16485:6:::1;::::0;16476:28:::1;::::0;16485:6:::1;::::0;::::1;-1:-1:-1::0;;;;;16485:6:0::1;16493:10:::0;16476:8:::1;:28::i;:::-;16515:64;259:10:::0;16515:9:::1;::::0;-1:-1:-1;;;;;16515:9:0::1;::::0;16564:4:::1;16571:7:::0;16515:26:::1;:64::i;:::-;16632:21;::::0;;;:7:::1;:21;::::0;;;;;;;;;16595:73;;10730:25:1;;;10771:18;;;10764:34;16595:73:0;;16655:12;;259:10;;16595:73:::1;::::0;;;;;;;;;::::1;16145:531;16037:639:::0;;:::o;15438:212::-;798:13;:11;:13::i;:::-;15518:17:::1;::::0;::::1;;:27;;::::0;::::1;;;;15510:51;;;::::0;-1:-1:-1;;;15510:51:0;;7227:2:1;15510:51:0::1;::::0;::::1;7209:21:1::0;7266:2;7246:18;;;7239:30;-1:-1:-1;;;7285:18:1;;;7278:41;7336:18;;15510:51:0::1;7025:335:1::0;15510:51:0::1;15572:17;:26:::0;;-1:-1:-1;;15572:26:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15614:28:::1;::::0;::::1;::::0;-1:-1:-1;;15614:28:0::1;15438:212:::0;:::o;1185:201::-;798:13;:11;:13::i;:::-;-1:-1:-1;;;;;1274:22:0;::::1;1266:73;;;::::0;-1:-1:-1;;;1266:73:0;;5238:2:1;1266:73:0::1;::::0;::::1;5220:21:1::0;5277:2;5257:18;;;5250:30;5316:34;5296:18;;;5289:62;-1:-1:-1;;;5367:18:1;;;5360:36;5413:19;;1266:73:0::1;5036:402:1::0;1266:73:0::1;1350:28;1369:8;1350:18;:28::i;:::-;1185:201:::0;:::o;934:132::-;885:7;912:6;-1:-1:-1;;;;;912:6:0;259:10;998:23;990:68;;;;-1:-1:-1;;;990:68:0;;7921:2:1;990:68:0;;;7903:21:1;;;7940:18;;;7933:30;7999:34;7979:18;;;7972:62;8051:18;;990:68:0;7719:356:1;1394:191:0;1468:16;1487:6;;-1:-1:-1;;;;;1504:17:0;;;-1:-1:-1;;;;;;1504:17:0;;;;;;1537:40;;1487:6;;;;;;;1537:40;;1468:16;1537:40;1457:128;1394:191;:::o;7198:211::-;7342:58;;-1:-1:-1;;;;;3797:32:1;;7342:58:0;;;3779:51:1;3846:18;;;3839:34;;;7315:86:0;;7335:5;;-1:-1:-1;;;7365:23:0;3752:18:1;;7342:58:0;;;;-1:-1:-1;;7342:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7342:58:0;-1:-1:-1;;;;;;7342:58:0;;;;;;;;;;7315:19;:86::i;:::-;7198:211;;;:::o;17913:229::-;17990:12;18008:11;-1:-1:-1;;;;;18008:16:0;18033:7;18008:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17989:56;;;18064:7;18056:78;;;;-1:-1:-1;;;18056:78:0;;5991:2:1;18056:78:0;;;5973:21:1;6030:2;6010:18;;;6003:30;6069:34;6049:18;;;6042:62;6140:28;6120:18;;;6113:56;6186:19;;18056:78:0;5789:422:1;7417:248:0;7588:68;;-1:-1:-1;;;;;3483:15:1;;;7588:68:0;;;3465:34:1;3535:15;;3515:18;;;3508:43;3567:18;;;3560:34;;;7561:96:0;;7581:5;;-1:-1:-1;;;7611:27:0;3400:18:1;;7588:68:0;3225:375:1;7561:96:0;7417:248;;;;:::o;9621:716::-;10045:23;10071:69;10099:4;10071:69;;;;;;;;;;;;;;;;;10079:5;-1:-1:-1;;;;;10071:27:0;;;:69;;;;;:::i;:::-;10155:17;;10045:95;;-1:-1:-1;10155:21:0;10151:179;;10252:10;10241:30;;;;;;;;;;;;:::i;:::-;10233:85;;;;-1:-1:-1;;;10233:85:0;;9403:2:1;10233:85:0;;;9385:21:1;9442:2;9422:18;;;9415:30;9481:34;9461:18;;;9454:62;-1:-1:-1;;;9532:18:1;;;9525:40;9582:19;;10233:85:0;9201:406:1;3549:229:0;3686:12;3718:52;3740:6;3748:4;3754:1;3757:12;3718:21;:52::i;:::-;3711:59;3549:229;-1:-1:-1;;;;3549:229:0:o;4054:455::-;4224:12;4282:5;4257:21;:30;;4249:81;;;;-1:-1:-1;;;4249:81:0;;6418:2:1;4249:81:0;;;6400:21:1;6457:2;6437:18;;;6430:30;6496:34;6476:18;;;6469:62;-1:-1:-1;;;6547:18:1;;;6540:36;6593:19;;4249:81:0;6216:402:1;4249:81:0;4342:12;4356:23;4383:6;-1:-1:-1;;;;;4383:11:0;4402:5;4409:4;4383:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4341:73;;;;4432:69;4459:6;4467:7;4476:10;4488:12;4432:26;:69::i;:::-;4425:76;4054:455;-1:-1:-1;;;;;;;4054:455:0:o;5613:644::-;5798:12;5827:7;5823:427;;;5855:17;;5851:290;;-1:-1:-1;;;;;2990:19:0;;;6065:60;;;;-1:-1:-1;;;6065:60:0;;9045:2:1;6065:60:0;;;9027:21:1;9084:2;9064:18;;;9057:30;9123:31;9103:18;;;9096:59;9172:18;;6065:60:0;8843:353:1;6065:60:0;-1:-1:-1;6162:10:0;6155:17;;5823:427;6205:33;6213:10;6225:12;6739:17;;:21;6735:388;;6971:10;6965:17;7028:15;7015:10;7011:2;7007:19;7000:44;6735:388;7098:12;7091:20;;-1:-1:-1;;;7091:20:0;;;;;;;;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;526:382::-;591:6;599;652:2;640:9;631:7;627:23;623:32;620:52;;;668:1;665;658:12;620:52;707:9;694:23;726:31;751:5;726:31;:::i;:::-;776:5;-1:-1:-1;833:2:1;818:18;;805:32;846:30;805:32;846:30;:::i;:::-;895:7;885:17;;;526:382;;;;;:::o;913:241::-;969:6;1022:2;1010:9;1001:7;997:23;993:32;990:52;;;1038:1;1035;1028:12;990:52;1077:9;1064:23;1096:28;1118:5;1096:28;:::i;1159:245::-;1226:6;1279:2;1267:9;1258:7;1254:23;1250:32;1247:52;;;1295:1;1292;1285:12;1247:52;1327:9;1321:16;1346:28;1368:5;1346:28;:::i;1409:180::-;1468:6;1521:2;1509:9;1500:7;1496:23;1492:32;1489:52;;;1537:1;1534;1527:12;1489:52;-1:-1:-1;1560:23:1;;1409:180;-1:-1:-1;1409:180:1:o;1594:248::-;1662:6;1670;1723:2;1711:9;1702:7;1698:23;1694:32;1691:52;;;1739:1;1736;1729:12;1691:52;-1:-1:-1;;1762:23:1;;;1832:2;1817:18;;;1804:32;;-1:-1:-1;1594:248:1:o;1847:452::-;1933:6;1941;1949;1957;2010:3;1998:9;1989:7;1985:23;1981:33;1978:53;;;2027:1;2024;2017:12;1978:53;2063:9;2050:23;2040:33;;2120:2;2109:9;2105:18;2092:32;2082:42;;2171:2;2160:9;2156:18;2143:32;2133:42;;2225:2;2214:9;2210:18;2197:32;2238:31;2263:5;2238:31;:::i;:::-;1847:452;;;;-1:-1:-1;1847:452:1;;-1:-1:-1;;1847:452:1:o;2304:274::-;2433:3;2471:6;2465:13;2487:53;2533:6;2528:3;2521:4;2513:6;2509:17;2487:53;:::i;:::-;2556:16;;;;;2304:274;-1:-1:-1;;2304:274:1:o;4298:383::-;4447:2;4436:9;4429:21;4410:4;4479:6;4473:13;4522:6;4517:2;4506:9;4502:18;4495:34;4538:66;4597:6;4592:2;4581:9;4577:18;4572:2;4564:6;4560:15;4538:66;:::i;:::-;4665:2;4644:15;-1:-1:-1;;4640:29:1;4625:45;;;;4672:2;4621:54;;4298:383;-1:-1:-1;;4298:383:1:o;6623:397::-;6825:2;6807:21;;;6864:2;6844:18;;;6837:30;6903:34;6898:2;6883:18;;6876:62;-1:-1:-1;;;6969:2:1;6954:18;;6947:31;7010:3;6995:19;;6623:397::o;11133:128::-;11173:3;11204:1;11200:6;11197:1;11194:13;11191:39;;;11210:18;;:::i;:::-;-1:-1:-1;11246:9:1;;11133:128::o;11266:217::-;11306:1;11332;11322:132;;11376:10;11371:3;11367:20;11364:1;11357:31;11411:4;11408:1;11401:15;11439:4;11436:1;11429:15;11322:132;-1:-1:-1;11468:9:1;;11266:217::o;11488:168::-;11528:7;11594:1;11590;11586:6;11582:14;11579:1;11576:21;11571:1;11564:9;11557:17;11553:45;11550:71;;;11601:18;;:::i;:::-;-1:-1:-1;11641:9:1;;11488:168::o;11661:125::-;11701:4;11729:1;11726;11723:8;11720:34;;;11734:18;;:::i;:::-;-1:-1:-1;11771:9:1;;11661:125::o;11791:258::-;11863:1;11873:113;11887:6;11884:1;11881:13;11873:113;;;11963:11;;;11957:18;11944:11;;;11937:39;11909:2;11902:10;11873:113;;;12004:6;12001:1;11998:13;11995:48;;;-1:-1:-1;;12039:1:1;12021:16;;12014:27;11791:258::o;12054:127::-;12115:10;12110:3;12106:20;12103:1;12096:31;12146:4;12143:1;12136:15;12170:4;12167:1;12160:15;12186:131;-1:-1:-1;;;;;12261:31:1;;12251:42;;12241:70;;12307:1;12304;12297:12;12322:118;12408:5;12401:13;12394:21;12387:5;12384:32;12374:60;;12430:1;12427;12420:12

Swarm Source

ipfs://b2f968bcf95db2488e2b47e93e84bd03ac60d94c151561a9a7c682d878194137

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.