ETH Price: $4,483.32 (-4.78%)

Contract

0x0111a12140C0Bb6A1E544d08f0D22e4580368cE5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Bridge234018592025-09-20 4:20:4718 days ago1758342047IN
0x0111a121...580368cE5
0 ETH0.000016310.15930018
Bridge233566522025-09-13 20:51:2324 days ago1757796683IN
0x0111a121...580368cE5
0 ETH0.000012190.14288159
Bridge231706022025-08-18 21:22:1150 days ago1755552131IN
0x0111a121...580368cE5
0 ETH0.000029510.34585706
Bridge231705872025-08-18 21:19:1150 days ago1755551951IN
0x0111a121...580368cE5
0 ETH0.000011540.35685852
Bridge231705842025-08-18 21:18:3550 days ago1755551915IN
0x0111a121...580368cE5
0 ETH0.000031220.36582718
Bridge231358812025-08-14 1:02:3555 days ago1755133355IN
0x0111a121...580368cE5
0 ETH0.000035091.08453725
Bridge231358792025-08-14 1:02:1155 days ago1755133331IN
0x0111a121...580368cE5
0 ETH0.000105031.02547504
Bridge231358122025-08-14 0:48:3555 days ago1755132515IN
0x0111a121...580368cE5
0 ETH0.000053531.65270961
Bridge231358082025-08-14 0:47:4755 days ago1755132467IN
0x0111a121...580368cE5
0 ETH0.000180121.75778413
Bridge231087072025-08-10 5:55:2359 days ago1754805323IN
0x0111a121...580368cE5
0 ETH0.000007980.24667876
Bridge231087052025-08-10 5:54:5959 days ago1754805299IN
0x0111a121...580368cE5
0 ETH0.000020920.24520702
Bridge230721982025-08-05 3:32:2364 days ago1754364743IN
0x0111a121...580368cE5
0 ETH0.000022280.21753155
Bridge230494822025-08-01 23:23:3567 days ago1754090615IN
0x0111a121...580368cE5
0 ETH0.000012130.37560431
Bridge230494802025-08-01 23:23:1167 days ago1754090591IN
0x0111a121...580368cE5
0 ETH0.000039270.38343902
Bridge229743672025-07-22 11:17:4778 days ago1753183067IN
0x0111a121...580368cE5
0 ETH0.000017630.54453057
Bridge229743662025-07-22 11:17:3578 days ago1753183055IN
0x0111a121...580368cE5
0 ETH0.00005680.55451252
Bridge229735012025-07-22 8:21:5978 days ago1753172519IN
0x0111a121...580368cE5
0 ETH0.000164831.60924149
Bridge229731252025-07-22 7:06:2378 days ago1753167983IN
0x0111a121...580368cE5
0 ETH0.000044010.51564624
Bridge229689572025-07-21 17:08:1178 days ago1753117691IN
0x0111a121...580368cE5
0 ETH0.000252172.95599598
Bridge228251772025-07-01 15:06:5998 days ago1751382419IN
0x0111a121...580368cE5
0 ETH0.000100553.10733316
Bridge228251752025-07-01 15:06:3598 days ago1751382395IN
0x0111a121...580368cE5
0 ETH0.000265763.11408685
Bridge228169672025-06-30 11:34:47100 days ago1751283287IN
0x0111a121...580368cE5
0 ETH0.000137041.33796528
Bridge228078382025-06-29 4:55:59101 days ago1751172959IN
0x0111a121...580368cE5
0 ETH0.00002210.25910788
Bridge228035602025-06-28 14:33:35101 days ago1751121215IN
0x0111a121...580368cE5
0 ETH0.000047670.55861214
Bridge226490822025-06-07 0:18:59123 days ago1749255539IN
0x0111a121...580368cE5
0 ETH0.000113381.10699745
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Mint234018592025-09-20 4:20:4718 days ago1758342047
0x0111a121...580368cE5
0 ETH
Transfer*234018592025-09-20 4:20:4718 days ago1758342047
0x0111a121...580368cE5
0 ETH
Transfer*234018592025-09-20 4:20:4718 days ago1758342047
0x0111a121...580368cE5
0 ETH
Mint233566522025-09-13 20:51:2324 days ago1757796683
0x0111a121...580368cE5
0 ETH
Transfer*233566522025-09-13 20:51:2324 days ago1757796683
0x0111a121...580368cE5
0 ETH
Transfer*233566522025-09-13 20:51:2324 days ago1757796683
0x0111a121...580368cE5
0 ETH
Mint231706022025-08-18 21:22:1150 days ago1755552131
0x0111a121...580368cE5
0 ETH
Transfer*231706022025-08-18 21:22:1150 days ago1755552131
0x0111a121...580368cE5
0 ETH
Transfer*231706022025-08-18 21:22:1150 days ago1755552131
0x0111a121...580368cE5
0 ETH
Mint231705842025-08-18 21:18:3550 days ago1755551915
0x0111a121...580368cE5
0 ETH
Transfer*231705842025-08-18 21:18:3550 days ago1755551915
0x0111a121...580368cE5
0 ETH
Transfer*231705842025-08-18 21:18:3550 days ago1755551915
0x0111a121...580368cE5
0 ETH
Mint231358792025-08-14 1:02:1155 days ago1755133331
0x0111a121...580368cE5
0 ETH
Transfer*231358792025-08-14 1:02:1155 days ago1755133331
0x0111a121...580368cE5
0 ETH
Transfer*231358792025-08-14 1:02:1155 days ago1755133331
0x0111a121...580368cE5
0 ETH
Mint231358082025-08-14 0:47:4755 days ago1755132467
0x0111a121...580368cE5
0 ETH
Transfer*231358082025-08-14 0:47:4755 days ago1755132467
0x0111a121...580368cE5
0 ETH
Transfer*231358082025-08-14 0:47:4755 days ago1755132467
0x0111a121...580368cE5
0 ETH
Mint231087052025-08-10 5:54:5959 days ago1754805299
0x0111a121...580368cE5
0 ETH
Transfer*231087052025-08-10 5:54:5959 days ago1754805299
0x0111a121...580368cE5
0 ETH
Transfer*231087052025-08-10 5:54:5959 days ago1754805299
0x0111a121...580368cE5
0 ETH
Mint230721982025-08-05 3:32:2364 days ago1754364743
0x0111a121...580368cE5
0 ETH
Transfer*230721982025-08-05 3:32:2364 days ago1754364743
0x0111a121...580368cE5
0 ETH
Transfer*230721982025-08-05 3:32:2364 days ago1754364743
0x0111a121...580368cE5
0 ETH
Mint230494802025-08-01 23:23:1167 days ago1754090591
0x0111a121...580368cE5
0 ETH
View All Internal Transactions
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:
BridgeMinterTimeLock

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

interface ERC20 {
    function transferOwnership(address _newOwner) external;
    function acceptOwnership() external;
    function totalSupply() external view returns (uint);
    function mint(address to, uint256 value) external;
}

contract BridgeMinterTimeLock {

    // Declare the immutable variables at the contract level
    address public immutable approver;
    address public immutable notary;
    ERC20 public immutable tokenAddress;
    uint256 public immutable chainId;
    bytes32 public immutable domainSeparator;

    address public owner;
    bool private bridging;
    address public pendingOwner;
    address public erc20PendingOwner;
    uint public ownershipTransferInitiatedAt;
    uint public erc20OwnershipTransferInitiatedAt;
    uint constant TRANSFER_DELAY = 48 hours;
    bool public notaryApprove;
    bool public approverApprove;

    mapping(bytes32 => bool) private nonces;

    event Bridged(address  receiver, uint256 amount);
    event TransferOwnership(address indexed owner, bool indexed confirmed);


    constructor(
        address _owner,
        address _approver,
        address _notary,
        address _tokenContractAddress,
        uint256 _chainId
    ) {
        require(_owner != address(0), "Invalid owner");
        require(_approver != address(0), "Invalid approver");
        require(_notary != address(0), "Invalid notary");
        require(_tokenContractAddress != address(0), "Invalid token contract address");

        owner = _owner;
        approver = _approver;
        notary = _notary;
        tokenAddress = ERC20(_tokenContractAddress);
        chainId = _chainId;

        domainSeparator = keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId)"),
                keccak256("Neptune Bridge"),
                keccak256("0.0.1"),
                _chainId
            )
        );
    }

    // Function to initiate ownership transfer
    function initiateTransferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0), "New owner cannot be zero address");
        require(_newOwner != owner, "New owner is already the current owner");
        pendingOwner = _newOwner;
        ownershipTransferInitiatedAt = block.timestamp;
    }

    // Function to finalize ownership transfer after 48 hours
    function finalizeTransferOwnership() public {
        require(msg.sender == pendingOwner, "Only pending owner can finalize ownership transfer");
        require(block.timestamp >= ownershipTransferInitiatedAt + TRANSFER_DELAY, "Must wait 48 hours to confirm transfer.");
        owner = pendingOwner;
        pendingOwner = address(0);
        emit TransferOwnership(owner, true); // Emit an event to log the ownership transfer
}

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner can call this function");
        _;
    }

    // Function to initiate token ownership transfer
    function initiateTransferTokenOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0), "New owner cannot be zero address");
        erc20OwnershipTransferInitiatedAt = block.timestamp;
        erc20PendingOwner = _newOwner;
    }

    // Function to finalize token ownership transfer after 48 hours
    function completeTransferTokenOwnership() public onlyOwner { 
        require(block.timestamp >= erc20OwnershipTransferInitiatedAt + TRANSFER_DELAY, "Must wait 48 hours to confirm transfer.");
        tokenAddress.transferOwnership(erc20PendingOwner);
        emit TransferOwnership(erc20PendingOwner, true); // Emit an event to log the token ownership transfer
    }

    function acceptTokenOwnership() public {
        tokenAddress.acceptOwnership();
    }

    modifier checkNonce(bytes32 nonce) {
        require(nonces[nonce]==false); // dev: already processed
        _;
    }

    function bridge(address sender, uint256 bridgedAmount, bytes32 nonce, bytes32 messageHash, bytes calldata approvedMessage, bytes calldata notarizedMessage)
    external checkNonce(nonce) {
        require(bridging == false, "Re-entrancy guard triggered: bridging already in progress"); // Re-entrancy guard
        bridging = true;

        bytes32 hashToVerify = keccak256(
            abi.encode(keccak256("SignedMessage(bytes32 key,address sender,uint256 amount)"), nonce, sender, bridgedAmount)
        );

        require(checkEncoding(approvedMessage, messageHash, hashToVerify, approver), "Invalid signature from approver"); // Check approver's signature
        require(checkEncoding(notarizedMessage, messageHash, hashToVerify, notary), "Invalid signature from notary"); // Check notary's signature
        nonces[nonce]=true;

        ERC20(tokenAddress).mint(sender, bridgedAmount);

        emit Bridged(sender, bridgedAmount);
        bridging = false;
    }


    function checkEncoding(bytes memory signedMessage,bytes32 messageHash, bytes32 hashToVerify, address signer) 
    internal view returns(bool){

        bytes32 domainSeparatorHash = keccak256(abi.encodePacked("\x19\x01", domainSeparator, hashToVerify));
        require(messageHash == domainSeparatorHash); //dev: values do not match

        return signer == recoverSigner(messageHash, signedMessage);
    }

    function splitSignature(bytes memory sig)
    internal pure returns (uint8 v, bytes32 r, bytes32 s){
        require(sig.length == 65); // dev: signature invalid

        assembly {
            // first 32 bytes, after the length prefix.
            r := mload(add(sig, 32))
            // second 32 bytes.
            s := mload(add(sig, 64))
            // final byte (first byte of the next 32 bytes).
            v := byte(0, mload(add(sig, 96)))
        }

        return (v, r, s);
    }

    function recoverSigner(bytes32 message, bytes memory sig)
    internal pure returns (address){
        uint8 v;
        bytes32 r;
        bytes32 s;

        (v, r, s) = splitSignature(sig);

        return tryRecover(message, v, r, s);
    }

    function tryRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s)
    internal 
    pure 
    returns (address) {
        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
            return address(0);
        } else if (v != 27 && v != 28) {
            return address(0);
        }

        // If the signature is valid (and not malleable), return the signer address
        address signer = ecrecover(hash, v, r, s);
        if (signer == address(0)) {
            return address(0);
        }

        return signer;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_approver","type":"address"},{"internalType":"address","name":"_notary","type":"address"},{"internalType":"address","name":"_tokenContractAddress","type":"address"},{"internalType":"uint256","name":"_chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Bridged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"bool","name":"confirmed","type":"bool"}],"name":"TransferOwnership","type":"event"},{"inputs":[],"name":"acceptTokenOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approverApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"bridgedAmount","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"messageHash","type":"bytes32"},{"internalType":"bytes","name":"approvedMessage","type":"bytes"},{"internalType":"bytes","name":"notarizedMessage","type":"bytes"}],"name":"bridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"completeTransferTokenOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"erc20OwnershipTransferInitiatedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"erc20PendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeTransferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"initiateTransferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"initiateTransferTokenOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"notary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notaryApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownershipTransferInitiatedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6101206040523480156200001257600080fd5b50604051620022563803806200225683398181016040528101906200003891906200042b565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620000aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a19062000514565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200011c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001139062000586565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200018e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200018590620005f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000200576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001f7906200066a565b60405180910390fd5b846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508060e081815250507fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e7fbf362ddb5d91b26633f508c4b8932aac8d6bcea5c25f6f1724c15e83952116d77fae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885836040516020016200035d9493929190620006b8565b604051602081830303815290604052805190602001206101008181525050505050505062000705565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003b8826200038b565b9050919050565b620003ca81620003ab565b8114620003d657600080fd5b50565b600081519050620003ea81620003bf565b92915050565b6000819050919050565b6200040581620003f0565b81146200041157600080fd5b50565b6000815190506200042581620003fa565b92915050565b600080600080600060a086880312156200044a576200044962000386565b5b60006200045a88828901620003d9565b95505060206200046d88828901620003d9565b94505060406200048088828901620003d9565b93505060606200049388828901620003d9565b9250506080620004a68882890162000414565b9150509295509295909350565b600082825260208201905092915050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620004fc600d83620004b3565b91506200050982620004c4565b602082019050919050565b600060208201905081810360008301526200052f81620004ed565b9050919050565b7f496e76616c696420617070726f76657200000000000000000000000000000000600082015250565b60006200056e601083620004b3565b91506200057b8262000536565b602082019050919050565b60006020820190508181036000830152620005a1816200055f565b9050919050565b7f496e76616c6964206e6f74617279000000000000000000000000000000000000600082015250565b6000620005e0600e83620004b3565b9150620005ed82620005a8565b602082019050919050565b600060208201905081810360008301526200061381620005d1565b9050919050565b7f496e76616c696420746f6b656e20636f6e747261637420616464726573730000600082015250565b600062000652601e83620004b3565b91506200065f826200061a565b602082019050919050565b60006020820190508181036000830152620006858162000643565b9050919050565b6000819050919050565b620006a1816200068c565b82525050565b620006b281620003f0565b82525050565b6000608082019050620006cf600083018762000696565b620006de602083018662000696565b620006ed604083018562000696565b620006fc6060830184620006a7565b95945050505050565b60805160a05160c05160e05161010051611ae26200077460003960008181610f1c0152610f43015260006108e40152600081816104fd015281816107a801528181610b420152610de4015260008181610b1e0152610d530152600081816104cd0152610ca40152611ae26000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80639c0ced83116100a25780639e07f0db116100715780639e07f0db14610261578063b46324471461027d578063be027e8b1461029b578063e30c3978146102b9578063f698da25146102d757610116565b80639c0ced83146101fd5780639d1d6b8a1461021b5780639d54c79d146102255780639d76ea581461024357610116565b806338a5e016116100e957806338a5e016146101915780635024f4891461019b5780637298bdf7146101b75780638da5cb5b146101c15780639a8a0592146101df57610116565b8063080fec241461011b578063141a8dd81461013757806316b926461461015557806338184dc314610173575b600080fd5b610135600480360381019061013091906111a1565b6102f5565b005b61013f6104cb565b60405161014c91906111dd565b60405180910390f35b61015d6104ef565b60405161016a9190611211565b60405180910390f35b61017b6104f5565b6040516101889190611211565b60405180910390f35b6101996104fb565b005b6101b560048036038101906101b091906111a1565b61057d565b005b6101bf6106c5565b005b6101c96108be565b6040516101d691906111dd565b60405180910390f35b6101e76108e2565b6040516101f49190611211565b60405180910390f35b610205610906565b60405161021291906111dd565b60405180910390f35b61022361092c565b005b61022d610b1c565b60405161023a91906111dd565b60405180910390f35b61024b610b40565b604051610258919061128b565b60405180910390f35b61027b6004803603810190610276919061136d565b610b64565b005b610285610ece565b6040516102929190611457565b60405180910390f35b6102a3610ee1565b6040516102b09190611457565b60405180910390f35b6102c1610ef4565b6040516102ce91906111dd565b60405180910390f35b6102df610f1a565b6040516102ec9190611481565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037a9061151f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e99061158b565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104779061161d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260038190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035481565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379ba50976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561056357600080fd5b505af1158015610577573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106029061151f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361067a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106719061158b565b60405180910390fd5b4260048190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a9061151f565b60405180910390fd5b6202a300600454610764919061166c565b4210156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90611712565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161082191906111dd565b600060405180830381600087803b15801561083b57600080fd5b505af115801561084f573d6000803e3d6000fd5b5050505060011515600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcbe2aa772079086290469c944126fdc8e1438a556b92ebdb5044506435217f0460405160405180910390a3565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906117a4565b60405180910390fd5b6202a3006003546109cd919061166c565b421015610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690611712565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001151560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcbe2aa772079086290469c944126fdc8e1438a556b92ebdb5044506435217f0460405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b85600015156006600083815260200190815260200160002060009054906101000a900460ff16151514610b9657600080fd5b60001515600060149054906101000a900460ff16151514610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390611836565b60405180910390fd5b6001600060146101000a81548160ff02191690831515021790555060007f3c1316138cd3c347ee70454f6b80926b84604f3f07629dbed9845a8c06cc9ea3888b8b604051602001610c409493929190611856565b604051602081830303815290604052805190602001209050610cc886868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505088837f0000000000000000000000000000000000000000000000000000000000000000610f3e565b610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906118e7565b60405180910390fd5b610d7784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505088837f0000000000000000000000000000000000000000000000000000000000000000610f3e565b610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90611953565b60405180910390fd5b6001600660008a815260200190815260200160002060006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f198b8b6040518363ffffffff1660e01b8152600401610e3d929190611973565b600060405180830381600087803b158015610e5757600080fd5b505af1158015610e6b573d6000803e3d6000fd5b505050507f48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca407308a8a604051610ea0929190611973565b60405180910390a160008060146101000a81548160ff02191690831515021790555050505050505050505050565b600560019054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000084604051602001610f74929190611a14565b604051602081830303815290604052805190602001209050808514610f9857600080fd5b610fa28587610fdb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614915050949350505050565b600080600080610fea8561100d565b8093508194508295505050506110028684848461103f565b935050505092915050565b6000806000604184511461102057600080fd5b6020840151915060408401519050606084015160001a92509193909250565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c11156110755760009050611131565b601b8460ff161415801561108d5750601c8460ff1614155b1561109b5760009050611131565b6000600186868686604051600081526020016040526040516110c09493929190611a67565b6020604051602081039080840390855afa1580156110e2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361112c576000915050611131565b809150505b949350505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061116e82611143565b9050919050565b61117e81611163565b811461118957600080fd5b50565b60008135905061119b81611175565b92915050565b6000602082840312156111b7576111b6611139565b5b60006111c58482850161118c565b91505092915050565b6111d781611163565b82525050565b60006020820190506111f260008301846111ce565b92915050565b6000819050919050565b61120b816111f8565b82525050565b60006020820190506112266000830184611202565b92915050565b6000819050919050565b600061125161124c61124784611143565b61122c565b611143565b9050919050565b600061126382611236565b9050919050565b600061127582611258565b9050919050565b6112858161126a565b82525050565b60006020820190506112a0600083018461127c565b92915050565b6112af816111f8565b81146112ba57600080fd5b50565b6000813590506112cc816112a6565b92915050565b6000819050919050565b6112e5816112d2565b81146112f057600080fd5b50565b600081359050611302816112dc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261132d5761132c611308565b5b8235905067ffffffffffffffff81111561134a5761134961130d565b5b60208301915083600182028301111561136657611365611312565b5b9250929050565b60008060008060008060008060c0898b03121561138d5761138c611139565b5b600061139b8b828c0161118c565b98505060206113ac8b828c016112bd565b97505060406113bd8b828c016112f3565b96505060606113ce8b828c016112f3565b955050608089013567ffffffffffffffff8111156113ef576113ee61113e565b5b6113fb8b828c01611317565b945094505060a089013567ffffffffffffffff81111561141e5761141d61113e565b5b61142a8b828c01611317565b92509250509295985092959890939650565b60008115159050919050565b6114518161143c565b82525050565b600060208201905061146c6000830184611448565b92915050565b61147b816112d2565b82525050565b60006020820190506114966000830184611472565b92915050565b600082825260208201905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b600061150960218361149c565b9150611514826114ad565b604082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f4e6577206f776e65722063616e6e6f74206265207a65726f2061646472657373600082015250565b600061157560208361149c565b91506115808261153f565b602082019050919050565b600060208201905081810360008301526115a481611568565b9050919050565b7f4e6577206f776e657220697320616c7265616479207468652063757272656e7460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b600061160760268361149c565b9150611612826115ab565b604082019050919050565b60006020820190508181036000830152611636816115fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611677826111f8565b9150611682836111f8565b925082820190508082111561169a5761169961163d565b5b92915050565b7f4d757374207761697420343820686f75727320746f20636f6e6669726d20747260008201527f616e736665722e00000000000000000000000000000000000000000000000000602082015250565b60006116fc60278361149c565b9150611707826116a0565b604082019050919050565b6000602082019050818103600083015261172b816116ef565b9050919050565b7f4f6e6c792070656e64696e67206f776e65722063616e2066696e616c697a652060008201527f6f776e657273686970207472616e736665720000000000000000000000000000602082015250565b600061178e60328361149c565b915061179982611732565b604082019050919050565b600060208201905081810360008301526117bd81611781565b9050919050565b7f52652d656e7472616e6379206775617264207472696767657265643a2062726960008201527f6467696e6720616c726561647920696e2070726f677265737300000000000000602082015250565b600061182060398361149c565b915061182b826117c4565b604082019050919050565b6000602082019050818103600083015261184f81611813565b9050919050565b600060808201905061186b6000830187611472565b6118786020830186611472565b61188560408301856111ce565b6118926060830184611202565b95945050505050565b7f496e76616c6964207369676e61747572652066726f6d20617070726f76657200600082015250565b60006118d1601f8361149c565b91506118dc8261189b565b602082019050919050565b60006020820190508181036000830152611900816118c4565b9050919050565b7f496e76616c6964207369676e61747572652066726f6d206e6f74617279000000600082015250565b600061193d601d8361149c565b915061194882611907565b602082019050919050565b6000602082019050818103600083015261196c81611930565b9050919050565b600060408201905061198860008301856111ce565b6119956020830184611202565b9392505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006119dd60028361199c565b91506119e8826119a7565b600282019050919050565b6000819050919050565b611a0e611a09826112d2565b6119f3565b82525050565b6000611a1f826119d0565b9150611a2b82856119fd565b602082019150611a3b82846119fd565b6020820191508190509392505050565b600060ff82169050919050565b611a6181611a4b565b82525050565b6000608082019050611a7c6000830187611472565b611a896020830186611a58565b611a966040830185611472565b611aa36060830184611472565b9594505050505056fea26469706673582212207d3511c409a0fbdd34c23b02d830b41f44dd0362028dd1c55a667861951f203e64736f6c63430008120033000000000000000000000000411345716f8d510de74e1fa3b98dd5d729f0f5c10000000000000000000000004c2949f6589c12662aa27ba5e0b0f84b351b28fc000000000000000000000000935711c2f34078a833c9465ef2fc77194b97de5e00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc00000000000000000000000000000000000000000000000000000000009a7257

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c80639c0ced83116100a25780639e07f0db116100715780639e07f0db14610261578063b46324471461027d578063be027e8b1461029b578063e30c3978146102b9578063f698da25146102d757610116565b80639c0ced83146101fd5780639d1d6b8a1461021b5780639d54c79d146102255780639d76ea581461024357610116565b806338a5e016116100e957806338a5e016146101915780635024f4891461019b5780637298bdf7146101b75780638da5cb5b146101c15780639a8a0592146101df57610116565b8063080fec241461011b578063141a8dd81461013757806316b926461461015557806338184dc314610173575b600080fd5b610135600480360381019061013091906111a1565b6102f5565b005b61013f6104cb565b60405161014c91906111dd565b60405180910390f35b61015d6104ef565b60405161016a9190611211565b60405180910390f35b61017b6104f5565b6040516101889190611211565b60405180910390f35b6101996104fb565b005b6101b560048036038101906101b091906111a1565b61057d565b005b6101bf6106c5565b005b6101c96108be565b6040516101d691906111dd565b60405180910390f35b6101e76108e2565b6040516101f49190611211565b60405180910390f35b610205610906565b60405161021291906111dd565b60405180910390f35b61022361092c565b005b61022d610b1c565b60405161023a91906111dd565b60405180910390f35b61024b610b40565b604051610258919061128b565b60405180910390f35b61027b6004803603810190610276919061136d565b610b64565b005b610285610ece565b6040516102929190611457565b60405180910390f35b6102a3610ee1565b6040516102b09190611457565b60405180910390f35b6102c1610ef4565b6040516102ce91906111dd565b60405180910390f35b6102df610f1a565b6040516102ec9190611481565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037a9061151f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e99061158b565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104779061161d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260038190555050565b7f0000000000000000000000004c2949f6589c12662aa27ba5e0b0f84b351b28fc81565b60035481565b60045481565b7f00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc73ffffffffffffffffffffffffffffffffffffffff166379ba50976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561056357600080fd5b505af1158015610577573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106029061151f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361067a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106719061158b565b60405180910390fd5b4260048190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a9061151f565b60405180910390fd5b6202a300600454610764919061166c565b4210156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90611712565b60405180910390fd5b7f00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc73ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161082191906111dd565b600060405180830381600087803b15801561083b57600080fd5b505af115801561084f573d6000803e3d6000fd5b5050505060011515600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcbe2aa772079086290469c944126fdc8e1438a556b92ebdb5044506435217f0460405160405180910390a3565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f00000000000000000000000000000000000000000000000000000000009a725781565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906117a4565b60405180910390fd5b6202a3006003546109cd919061166c565b421015610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690611712565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001151560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcbe2aa772079086290469c944126fdc8e1438a556b92ebdb5044506435217f0460405160405180910390a3565b7f000000000000000000000000935711c2f34078a833c9465ef2fc77194b97de5e81565b7f00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc81565b85600015156006600083815260200190815260200160002060009054906101000a900460ff16151514610b9657600080fd5b60001515600060149054906101000a900460ff16151514610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390611836565b60405180910390fd5b6001600060146101000a81548160ff02191690831515021790555060007f3c1316138cd3c347ee70454f6b80926b84604f3f07629dbed9845a8c06cc9ea3888b8b604051602001610c409493929190611856565b604051602081830303815290604052805190602001209050610cc886868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505088837f0000000000000000000000004c2949f6589c12662aa27ba5e0b0f84b351b28fc610f3e565b610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906118e7565b60405180910390fd5b610d7784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505088837f000000000000000000000000935711c2f34078a833c9465ef2fc77194b97de5e610f3e565b610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90611953565b60405180910390fd5b6001600660008a815260200190815260200160002060006101000a81548160ff0219169083151502179055507f00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc73ffffffffffffffffffffffffffffffffffffffff166340c10f198b8b6040518363ffffffff1660e01b8152600401610e3d929190611973565b600060405180830381600087803b158015610e5757600080fd5b505af1158015610e6b573d6000803e3d6000fd5b505050507f48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca407308a8a604051610ea0929190611973565b60405180910390a160008060146101000a81548160ff02191690831515021790555050505050505050505050565b600560019054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f55774bbb6c4d74b787b556ec05076d3469f8c87e3b33c81a887a01c4406c6c9281565b6000807f55774bbb6c4d74b787b556ec05076d3469f8c87e3b33c81a887a01c4406c6c9284604051602001610f74929190611a14565b604051602081830303815290604052805190602001209050808514610f9857600080fd5b610fa28587610fdb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614915050949350505050565b600080600080610fea8561100d565b8093508194508295505050506110028684848461103f565b935050505092915050565b6000806000604184511461102057600080fd5b6020840151915060408401519050606084015160001a92509193909250565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c11156110755760009050611131565b601b8460ff161415801561108d5750601c8460ff1614155b1561109b5760009050611131565b6000600186868686604051600081526020016040526040516110c09493929190611a67565b6020604051602081039080840390855afa1580156110e2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361112c576000915050611131565b809150505b949350505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061116e82611143565b9050919050565b61117e81611163565b811461118957600080fd5b50565b60008135905061119b81611175565b92915050565b6000602082840312156111b7576111b6611139565b5b60006111c58482850161118c565b91505092915050565b6111d781611163565b82525050565b60006020820190506111f260008301846111ce565b92915050565b6000819050919050565b61120b816111f8565b82525050565b60006020820190506112266000830184611202565b92915050565b6000819050919050565b600061125161124c61124784611143565b61122c565b611143565b9050919050565b600061126382611236565b9050919050565b600061127582611258565b9050919050565b6112858161126a565b82525050565b60006020820190506112a0600083018461127c565b92915050565b6112af816111f8565b81146112ba57600080fd5b50565b6000813590506112cc816112a6565b92915050565b6000819050919050565b6112e5816112d2565b81146112f057600080fd5b50565b600081359050611302816112dc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261132d5761132c611308565b5b8235905067ffffffffffffffff81111561134a5761134961130d565b5b60208301915083600182028301111561136657611365611312565b5b9250929050565b60008060008060008060008060c0898b03121561138d5761138c611139565b5b600061139b8b828c0161118c565b98505060206113ac8b828c016112bd565b97505060406113bd8b828c016112f3565b96505060606113ce8b828c016112f3565b955050608089013567ffffffffffffffff8111156113ef576113ee61113e565b5b6113fb8b828c01611317565b945094505060a089013567ffffffffffffffff81111561141e5761141d61113e565b5b61142a8b828c01611317565b92509250509295985092959890939650565b60008115159050919050565b6114518161143c565b82525050565b600060208201905061146c6000830184611448565b92915050565b61147b816112d2565b82525050565b60006020820190506114966000830184611472565b92915050565b600082825260208201905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b600061150960218361149c565b9150611514826114ad565b604082019050919050565b60006020820190508181036000830152611538816114fc565b9050919050565b7f4e6577206f776e65722063616e6e6f74206265207a65726f2061646472657373600082015250565b600061157560208361149c565b91506115808261153f565b602082019050919050565b600060208201905081810360008301526115a481611568565b9050919050565b7f4e6577206f776e657220697320616c7265616479207468652063757272656e7460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b600061160760268361149c565b9150611612826115ab565b604082019050919050565b60006020820190508181036000830152611636816115fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611677826111f8565b9150611682836111f8565b925082820190508082111561169a5761169961163d565b5b92915050565b7f4d757374207761697420343820686f75727320746f20636f6e6669726d20747260008201527f616e736665722e00000000000000000000000000000000000000000000000000602082015250565b60006116fc60278361149c565b9150611707826116a0565b604082019050919050565b6000602082019050818103600083015261172b816116ef565b9050919050565b7f4f6e6c792070656e64696e67206f776e65722063616e2066696e616c697a652060008201527f6f776e657273686970207472616e736665720000000000000000000000000000602082015250565b600061178e60328361149c565b915061179982611732565b604082019050919050565b600060208201905081810360008301526117bd81611781565b9050919050565b7f52652d656e7472616e6379206775617264207472696767657265643a2062726960008201527f6467696e6720616c726561647920696e2070726f677265737300000000000000602082015250565b600061182060398361149c565b915061182b826117c4565b604082019050919050565b6000602082019050818103600083015261184f81611813565b9050919050565b600060808201905061186b6000830187611472565b6118786020830186611472565b61188560408301856111ce565b6118926060830184611202565b95945050505050565b7f496e76616c6964207369676e61747572652066726f6d20617070726f76657200600082015250565b60006118d1601f8361149c565b91506118dc8261189b565b602082019050919050565b60006020820190508181036000830152611900816118c4565b9050919050565b7f496e76616c6964207369676e61747572652066726f6d206e6f74617279000000600082015250565b600061193d601d8361149c565b915061194882611907565b602082019050919050565b6000602082019050818103600083015261196c81611930565b9050919050565b600060408201905061198860008301856111ce565b6119956020830184611202565b9392505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006119dd60028361199c565b91506119e8826119a7565b600282019050919050565b6000819050919050565b611a0e611a09826112d2565b6119f3565b82525050565b6000611a1f826119d0565b9150611a2b82856119fd565b602082019150611a3b82846119fd565b6020820191508190509392505050565b600060ff82169050919050565b611a6181611a4b565b82525050565b6000608082019050611a7c6000830187611472565b611a896020830186611a58565b611a966040830185611472565b611aa36060830184611472565b9594505050505056fea26469706673582212207d3511c409a0fbdd34c23b02d830b41f44dd0362028dd1c55a667861951f203e64736f6c63430008120033

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

000000000000000000000000411345716f8d510de74e1fa3b98dd5d729f0f5c10000000000000000000000004c2949f6589c12662aa27ba5e0b0f84b351b28fc000000000000000000000000935711c2f34078a833c9465ef2fc77194b97de5e00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc00000000000000000000000000000000000000000000000000000000009a7257

-----Decoded View---------------
Arg [0] : _owner (address): 0x411345716f8D510dE74E1fa3B98dD5d729F0f5C1
Arg [1] : _approver (address): 0x4C2949f6589c12662aa27BA5E0b0F84b351B28FC
Arg [2] : _notary (address): 0x935711C2F34078a833C9465EF2FC77194b97dE5E
Arg [3] : _tokenContractAddress (address): 0x60158131416F5e53D55D73A11BE2E203cB26Abcc
Arg [4] : _chainId (uint256): 10121815

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000411345716f8d510de74e1fa3b98dd5d729f0f5c1
Arg [1] : 0000000000000000000000004c2949f6589c12662aa27ba5e0b0f84b351b28fc
Arg [2] : 000000000000000000000000935711c2f34078a833c9465ef2fc77194b97de5e
Arg [3] : 00000000000000000000000060158131416f5e53d55d73a11be2e203cb26abcc
Arg [4] : 00000000000000000000000000000000000000000000000000000000009a7257


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