ETH Price: $2,712.49 (+2.84%)

Contract

0xD573CAd564543E6EE908471B1EC81EbE2aC190BA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw217357262025-01-30 7:01:1112 days ago1738220471IN
0xD573CAd5...E2aC190BA
0 ETH0.000693861.77909771
Withdraw216194802025-01-14 1:36:1128 days ago1736818571IN
0xD573CAd5...E2aC190BA
0 ETH0.000308234.44495458
Withdraw216194782025-01-14 1:35:4728 days ago1736818547IN
0xD573CAd5...E2aC190BA
0 ETH0.001876854.57788524
Withdraw196539252024-04-14 12:58:47302 days ago1713099527IN
0xD573CAd5...E2aC190BA
0 ETH0.0048577912.52681061
Withdraw196539192024-04-14 12:57:35302 days ago1713099455IN
0xD573CAd5...E2aC190BA
0 ETH0.0047446912.23530286
Withdraw195738842024-04-03 7:52:59313 days ago1712130779IN
0xD573CAd5...E2aC190BA
0 ETH0.01044525.47438155
Withdraw195735912024-04-03 6:54:11314 days ago1712127251IN
0xD573CAd5...E2aC190BA
0 ETH0.0081498621.01569169
Withdraw195735862024-04-03 6:53:11314 days ago1712127191IN
0xD573CAd5...E2aC190BA
0 ETH0.0083981420.4837414
Withdraw189035032023-12-31 5:53:11408 days ago1704001991IN
0xD573CAd5...E2aC190BA
0 ETH0.0049486412.07034474
Withdraw188679452023-12-26 6:01:23413 days ago1703570483IN
0xD573CAd5...E2aC190BA
0 ETH0.0066096217.97031867
Withdraw188679452023-12-26 6:01:23413 days ago1703570483IN
0xD573CAd5...E2aC190BA
0 ETH0.006609117.97031867
Withdraw188679442023-12-26 6:01:11413 days ago1703570471IN
0xD573CAd5...E2aC190BA
0 ETH0.0064966817.6640731
Withdraw188679442023-12-26 6:01:11413 days ago1703570471IN
0xD573CAd5...E2aC190BA
0 ETH0.0064967717.6640731
Withdraw188679442023-12-26 6:01:11413 days ago1703570471IN
0xD573CAd5...E2aC190BA
0 ETH0.0064967717.6640731
Withdraw188679432023-12-26 6:00:59413 days ago1703570459IN
0xD573CAd5...E2aC190BA
0 ETH0.0064119517.43346365
Withdraw188679432023-12-26 6:00:59413 days ago1703570459IN
0xD573CAd5...E2aC190BA
0 ETH0.0064117417.43346365
Withdraw188679422023-12-26 6:00:47413 days ago1703570447IN
0xD573CAd5...E2aC190BA
0 ETH0.0061661215.90059919
Withdraw188677942023-12-26 5:30:35413 days ago1703568635IN
0xD573CAd5...E2aC190BA
0 ETH0.0054235714.74636028
Withdraw188677942023-12-26 5:30:35413 days ago1703568635IN
0xD573CAd5...E2aC190BA
0 ETH0.0057185214.74636028
Withdraw188677902023-12-26 5:29:47413 days ago1703568587IN
0xD573CAd5...E2aC190BA
0 ETH0.005354314.55780185
Withdraw188677892023-12-26 5:29:35413 days ago1703568575IN
0xD573CAd5...E2aC190BA
0 ETH0.005419914.73616511
Withdraw188677892023-12-26 5:29:35413 days ago1703568575IN
0xD573CAd5...E2aC190BA
0 ETH0.0054196514.73616511
Withdraw188677882023-12-26 5:29:23413 days ago1703568563IN
0xD573CAd5...E2aC190BA
0 ETH0.0055743215.15671523
Withdraw188677872023-12-26 5:29:11413 days ago1703568551IN
0xD573CAd5...E2aC190BA
0 ETH0.0055053714.96954043
Withdraw188677862023-12-26 5:28:59413 days ago1703568539IN
0xD573CAd5...E2aC190BA
0 ETH0.0048983413.31915581
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NFTBridgeMinter

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 2023-01-18
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

contract Managed {
  mapping(address => bool) public managers;
  modifier onlyManagers() {
    require(managers[msg.sender] == true, "Caller is not manager");
    _;
  }
  constructor() {
    managers[msg.sender] = true;
  }
  function setManager(address _wallet, bool _manager) public onlyManagers {
    require(_wallet != msg.sender, "Not allowed");
    managers[_wallet] = _manager;
  }
}

interface INFTBridgeLog {
  function outgoing(address _wallet, uint256 _assetId, uint256 _chainID, uint256 _bridgeIndex) external;
  function incoming(address _wallet, uint256 _assetId, uint256 _chainID, uint256 _logIndex, bytes32 txHash, bool _minted) external;
}

interface INFT3D {
  function safeTransferFrom(address from, address to, uint256 tokenId) external;
  function totalSupply() external view returns (uint256);
  function mint(address to, uint32 _assetType, uint256 _value, uint32 _customDetails) external returns (bool success);
}

interface IPC3DUpgrader {
  function getTokenDetails(uint256 index) external view returns (uint32 aType, uint32 customDetails, uint32 lastTx, uint32 lastPayment, uint256 initialvalue, uint32 upgrades, uint32 gDetails, bool leased);
  function setGameDetails(uint256 index, uint32 _details) external;
  function setUpgrades(uint256 index, uint32 _upgrades) external;
}

library ECDSA {
  function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
    bytes32 r;
    bytes32 s;
    uint8 v;
    if (signature.length == 65) {
      // solhint-disable-next-line no-inline-assembly
      assembly {
        r := mload(add(signature, 0x20))
        s := mload(add(signature, 0x40))
        v := byte(0, mload(add(signature, 0x60)))
      }
    } else if (signature.length == 64) {
      // solhint-disable-next-line no-inline-assembly
      assembly {
        let vs := mload(add(signature, 0x40))
        r := mload(add(signature, 0x20))
        s := and(
          vs,
          0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
        )
        v := add(shr(255, vs), 27)
      }
    } else {
      revert("ECDSA: invalid signature length");
    }

    return recover(hash, v, r, s);
  }

  function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
    require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value");
    require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value");

    // If the signature is valid (and not malleable), return the signer address
    address signer = ecrecover(hash, v, r, s);
    require(signer != address(0), "ECDSA: invalid signature");
    return signer;
  }

  function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
    return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
  }

  function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {
    return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
  }
}

contract NFTBridgeMinter is Managed {
  INFTBridgeLog logger;
  INFT3D NFTContract;
  IPC3DUpgrader upgradeContract;
  uint256 public depositIndex;
  address public NFTVault;
  
  address signer;
  uint256 chainID;
  bool public paused;

  constructor() {
    NFTContract = INFT3D(0xB20217bf3d89667Fa15907971866acD6CcD570C8);
    upgradeContract = IPC3DUpgrader(0x2a34c7942C92d2b2f43807225C36fb6763dC0b60);
    logger = INFTBridgeLog(0x2Ec9BA7B80b1aD442390B4fDf735a2BBA061E803);
    NFTVault = 0xf7A9F6001ff8b499149569C54852226d719f2D76;
    chainID = 1;
    signer = 0xa4C03a9B4f1c67aC645A990DDB7B8A27D4D9e7af;
    managers[0x00d6E1038564047244Ad37080E2d695924F8515B] = true;
  }

  function verifyTXCall(bytes32 _taskHash, bytes memory _sig) public view returns (bool valid) {
    address mSigner = ECDSA.recover(ECDSA.toEthSignedMessageHash(_taskHash), _sig);
    if (mSigner == signer) {
      return true;
    } else {
      return false;
    }
  }

  function withdrawclone(address _wallet, uint256 _cloneId, uint32 _upgrades, uint32 _gameDetails, uint256 _chainFrom, uint256 _chainTo, uint256 _logIndex, bytes memory _sig) public {
    require(!paused, "Contract is paused");
    require(_chainTo == chainID, "Invalid chain");
    bytes32 txHash = keccak256(abi.encode(_wallet, _cloneId, _upgrades, _gameDetails, _chainFrom, _chainTo, _logIndex));
    bool txv = verifyTXCall(txHash, _sig);
    require (txv == true, "Invalid signature");
    logger.incoming(_wallet, _cloneId, _chainFrom, _logIndex, txHash, false);
    updateAndTransfer(_wallet, _cloneId, _upgrades, _gameDetails);
  }

  function updateAndTransfer(address _wallet, uint256 _cloneId, uint32 _upgrades, uint32 _gameDetails) private {
    upgradeContract.setUpgrades(_cloneId, _upgrades);
    upgradeContract.setGameDetails(_cloneId, _gameDetails);
    NFTContract.safeTransferFrom(NFTVault, _wallet, _cloneId);
  }

  function withdraw(address _wallet, uint32 _assetType, uint256 _value, uint32 _customDetails, uint32 _upgrades, uint32 _gameDetails, uint256 _chainFrom, uint256 _chainTo, uint256 _logIndex, bytes memory _sig) public {
    require(!paused, "Contract is paused");
    require(_chainTo == chainID, "Invalid chain");
    bytes32 txHash = keccak256(abi.encode(_wallet, _assetType, _value, _customDetails, _upgrades, _gameDetails, _chainFrom, _chainTo, _logIndex));
    require (verifyTXCall(txHash, _sig) == true, "Invalid signature");
    uint256 nIndex = NFTContract.totalSupply();
    upgradeContract.setUpgrades(nIndex, _upgrades);
    upgradeContract.setGameDetails(nIndex, _gameDetails);
    logger.incoming(_wallet, nIndex, _chainFrom, _logIndex, txHash, true);
    require(NFTContract.mint(_wallet, _assetType, _value, _customDetails), "Mint fail");
  }

  function setLogger (address _logger) public onlyManagers {
    logger = INFTBridgeLog(_logger);
  }
  
  function setSigner (address _signer) public onlyManagers {
    signer = _signer;
  }

  function setNFTVault (address _vault) public onlyManagers {
    NFTVault = _vault;
  }

  function pauseContract(bool _paused) public onlyManagers {
    paused = _paused;
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NFTVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"pauseContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_logger","type":"address"}],"name":"setLogger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_manager","type":"bool"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setNFTVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_taskHash","type":"bytes32"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"verifyTXCall","outputs":[{"internalType":"bool","name":"valid","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"uint32","name":"_assetType","type":"uint32"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint32","name":"_customDetails","type":"uint32"},{"internalType":"uint32","name":"_upgrades","type":"uint32"},{"internalType":"uint32","name":"_gameDetails","type":"uint32"},{"internalType":"uint256","name":"_chainFrom","type":"uint256"},{"internalType":"uint256","name":"_chainTo","type":"uint256"},{"internalType":"uint256","name":"_logIndex","type":"uint256"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"uint256","name":"_cloneId","type":"uint256"},{"internalType":"uint32","name":"_upgrades","type":"uint32"},{"internalType":"uint32","name":"_gameDetails","type":"uint32"},{"internalType":"uint256","name":"_chainFrom","type":"uint256"},{"internalType":"uint256","name":"_chainTo","type":"uint256"},{"internalType":"uint256","name":"_logIndex","type":"uint256"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"withdrawclone","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50336000908152602081905260408120805460ff199081166001908117909255600280546001600160a01b031990811673b20217bf3d89667fa15907971866acd6ccd570c817909155600380548216732a34c7942c92d2b2f43807225c36fb6763dc0b6017905582548116732ec9ba7b80b1ad442390b4fdf735a2bba061e80317835560058054821673f7a9f6001ff8b499149569c54852226d719f2d7617905560078390556006805490911673a4c03a9b4f1c67ac645a990ddb7b8a27d4d9e7af17905572d6e1038564047244ad37080e2d695924f8515b9092527f56e4f48a8fa4577e24d761b6ae58640b5ad6fd7b043480a29e50a4175fb439e880549092161790556111aa806101246000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637b898939116100715780637b8989391461013c5780637b93000714610153578063921ebf131461017e578063a5e90eee14610191578063e272b892146101a4578063fdff9b4d146101b757600080fd5b80630d3245a0146100b95780634185d912146100e15780635722e24a146100f65780635c975abb146101095780636c19e783146101165780637431c70f14610129575b600080fd5b6100cc6100c73660046110be565b6101da565b60405190151581526020015b60405180910390f35b6100f46100ef366004610fcb565b61026c565b005b6100f4610104366004610edc565b6106b1565b6008546100cc9060ff1681565b6100f4610124366004610edc565b610707565b6100f4610137366004610edc565b61075d565b61014560045481565b6040519081526020016100d8565b600554610166906001600160a01b031681565b6040516001600160a01b0390911681526020016100d8565b6100f461018c366004610f35565b6107b3565b6100f461019f366004610efe565b610989565b6100f46101b2366004611084565b610a2f565b6100cc6101c5366004610edc565b60006020819052908152604090205460ff1681565b60008061023d610237856040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b84610a76565b6006549091506001600160a01b0380831691161415610260576001915050610266565b60009150505b92915050565b60085460ff16156102b95760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064015b60405180910390fd5b60075483146102fa5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21031b430b4b760991b60448201526064016102b0565b604080516001600160a01b038c1660208083019190915263ffffffff8c811683850152606083018c90528a8116608084015289811660a0840152881660c083015260e08201879052610100820186905261012080830186905283518084039091018152610140909201909252805191012061037581836101da565b15156001146103ba5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016102b0565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156103ff57600080fd5b505afa158015610413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104379190611105565b60035460405163124a72d560e11b81526004810183905263ffffffff8b1660248201529192506001600160a01b031690632494e5aa90604401600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505060035460405163cb5f195360e01b81526004810185905263ffffffff8b1660248201526001600160a01b03909116925063cb5f19539150604401600060405180830381600087803b1580156104f457600080fd5b505af1158015610508573d6000803e3d6000fd5b50505050600160009054906101000a90046001600160a01b03166001600160a01b031662ccaa608d8389888760016040518763ffffffff1660e01b8152600401610587969594939291906001600160a01b039690961686526020860194909452604085019290925260608401526080830152151560a082015260c00190565b600060405180830381600087803b1580156105a157600080fd5b505af11580156105b5573d6000803e3d6000fd5b50506002546040516327ed628b60e01b81526001600160a01b0390911692506327ed628b9150610619908f908f908f908f906004016001600160a01b0394909416845263ffffffff9283166020850152604084019190915216606082015260800190565b602060405180830381600087803b15801561063357600080fd5b505af1158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b91906110a1565b6106a35760405162461bcd60e51b8152602060048201526009602482015268135a5b9d0819985a5b60ba1b60448201526064016102b0565b505050505050505050505050565b3360009081526020819052604090205460ff1615156001146106e55760405162461bcd60e51b81526004016102b09061111e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff16151560011461073b5760405162461bcd60e51b81526004016102b09061111e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1615156001146107915760405162461bcd60e51b81526004016102b09061111e565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60085460ff16156107fb5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016102b0565b600754831461083c5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21031b430b4b760991b60448201526064016102b0565b604080516001600160a01b038a16602082015290810188905263ffffffff80881660608301528616608082015260a0810185905260c0810184905260e081018390526000906101000160405160208183030381529060405280519060200120905060006108a982846101da565b90506001811515146108f15760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016102b0565b6001546040516206655360e51b81526001600160a01b038c81166004830152602482018c9052604482018990526064820187905260848201859052600060a48301529091169062ccaa609060c401600060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b5050505061097d8a8a8a8a610b2c565b50505050505050505050565b3360009081526020819052604090205460ff1615156001146109bd5760405162461bcd60e51b81526004016102b09061111e565b6001600160a01b038216331415610a045760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016102b0565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b3360009081526020819052604090205460ff161515600114610a635760405162461bcd60e51b81526004016102b09061111e565b6008805460ff1916911515919091179055565b600080600080845160411415610aa05750505060208201516040830151606084015160001a610b16565b845160401415610ace5750505060408201516020830151906001600160ff1b0381169060ff1c601b01610b16565b60405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102b0565b610b2286828585610c76565b9695505050505050565b60035460405163124a72d560e11b81526004810185905263ffffffff841660248201526001600160a01b0390911690632494e5aa90604401600060405180830381600087803b158015610b7e57600080fd5b505af1158015610b92573d6000803e3d6000fd5b505060035460405163cb5f195360e01b81526004810187905263ffffffff851660248201526001600160a01b03909116925063cb5f19539150604401600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b5050600254600554604051632142170760e11b81526001600160a01b039182166004820152888216602482015260448101889052911692506342842e0e9150606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b5050505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610cf35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102b0565b8360ff16601b1480610d0857508360ff16601c145b610d5f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016102b0565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610db3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e165760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102b0565b95945050505050565b80356001600160a01b0381168114610e3657600080fd5b919050565b600082601f830112610e4c57600080fd5b813567ffffffffffffffff80821115610e6757610e6761114d565b604051601f8301601f19908116603f01168101908282118183101715610e8f57610e8f61114d565b81604052838152866020858801011115610ea857600080fd5b836020870160208301376000602085830101528094505050505092915050565b803563ffffffff81168114610e3657600080fd5b600060208284031215610eee57600080fd5b610ef782610e1f565b9392505050565b60008060408385031215610f1157600080fd5b610f1a83610e1f565b91506020830135610f2a81611163565b809150509250929050565b600080600080600080600080610100898b031215610f5257600080fd5b610f5b89610e1f565b975060208901359650610f7060408a01610ec8565b9550610f7e60608a01610ec8565b94506080890135935060a0890135925060c0890135915060e089013567ffffffffffffffff811115610faf57600080fd5b610fbb8b828c01610e3b565b9150509295985092959890939650565b6000806000806000806000806000806101408b8d031215610feb57600080fd5b610ff48b610e1f565b995061100260208c01610ec8565b985060408b0135975061101760608c01610ec8565b965061102560808c01610ec8565b955061103360a08c01610ec8565b945060c08b0135935060e08b013592506101008b013591506101208b013567ffffffffffffffff81111561106657600080fd5b6110728d828e01610e3b565b9150509295989b9194979a5092959850565b60006020828403121561109657600080fd5b8135610ef781611163565b6000602082840312156110b357600080fd5b8151610ef781611163565b600080604083850312156110d157600080fd5b82359150602083013567ffffffffffffffff8111156110ef57600080fd5b6110fb85828601610e3b565b9150509250929050565b60006020828403121561111757600080fd5b5051919050565b60208082526015908201527421b0b63632b91034b9903737ba1036b0b730b3b2b960591b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b801515811461117157600080fd5b5056fea26469706673582212206d18efaa11eba3a5b7401dc6cef6ee2aa37581eaafa352db9e8407d33b72db2c64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637b898939116100715780637b8989391461013c5780637b93000714610153578063921ebf131461017e578063a5e90eee14610191578063e272b892146101a4578063fdff9b4d146101b757600080fd5b80630d3245a0146100b95780634185d912146100e15780635722e24a146100f65780635c975abb146101095780636c19e783146101165780637431c70f14610129575b600080fd5b6100cc6100c73660046110be565b6101da565b60405190151581526020015b60405180910390f35b6100f46100ef366004610fcb565b61026c565b005b6100f4610104366004610edc565b6106b1565b6008546100cc9060ff1681565b6100f4610124366004610edc565b610707565b6100f4610137366004610edc565b61075d565b61014560045481565b6040519081526020016100d8565b600554610166906001600160a01b031681565b6040516001600160a01b0390911681526020016100d8565b6100f461018c366004610f35565b6107b3565b6100f461019f366004610efe565b610989565b6100f46101b2366004611084565b610a2f565b6100cc6101c5366004610edc565b60006020819052908152604090205460ff1681565b60008061023d610237856040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b84610a76565b6006549091506001600160a01b0380831691161415610260576001915050610266565b60009150505b92915050565b60085460ff16156102b95760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064015b60405180910390fd5b60075483146102fa5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21031b430b4b760991b60448201526064016102b0565b604080516001600160a01b038c1660208083019190915263ffffffff8c811683850152606083018c90528a8116608084015289811660a0840152881660c083015260e08201879052610100820186905261012080830186905283518084039091018152610140909201909252805191012061037581836101da565b15156001146103ba5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016102b0565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156103ff57600080fd5b505afa158015610413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104379190611105565b60035460405163124a72d560e11b81526004810183905263ffffffff8b1660248201529192506001600160a01b031690632494e5aa90604401600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505060035460405163cb5f195360e01b81526004810185905263ffffffff8b1660248201526001600160a01b03909116925063cb5f19539150604401600060405180830381600087803b1580156104f457600080fd5b505af1158015610508573d6000803e3d6000fd5b50505050600160009054906101000a90046001600160a01b03166001600160a01b031662ccaa608d8389888760016040518763ffffffff1660e01b8152600401610587969594939291906001600160a01b039690961686526020860194909452604085019290925260608401526080830152151560a082015260c00190565b600060405180830381600087803b1580156105a157600080fd5b505af11580156105b5573d6000803e3d6000fd5b50506002546040516327ed628b60e01b81526001600160a01b0390911692506327ed628b9150610619908f908f908f908f906004016001600160a01b0394909416845263ffffffff9283166020850152604084019190915216606082015260800190565b602060405180830381600087803b15801561063357600080fd5b505af1158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b91906110a1565b6106a35760405162461bcd60e51b8152602060048201526009602482015268135a5b9d0819985a5b60ba1b60448201526064016102b0565b505050505050505050505050565b3360009081526020819052604090205460ff1615156001146106e55760405162461bcd60e51b81526004016102b09061111e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff16151560011461073b5760405162461bcd60e51b81526004016102b09061111e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1615156001146107915760405162461bcd60e51b81526004016102b09061111e565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60085460ff16156107fb5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016102b0565b600754831461083c5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21031b430b4b760991b60448201526064016102b0565b604080516001600160a01b038a16602082015290810188905263ffffffff80881660608301528616608082015260a0810185905260c0810184905260e081018390526000906101000160405160208183030381529060405280519060200120905060006108a982846101da565b90506001811515146108f15760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016102b0565b6001546040516206655360e51b81526001600160a01b038c81166004830152602482018c9052604482018990526064820187905260848201859052600060a48301529091169062ccaa609060c401600060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b5050505061097d8a8a8a8a610b2c565b50505050505050505050565b3360009081526020819052604090205460ff1615156001146109bd5760405162461bcd60e51b81526004016102b09061111e565b6001600160a01b038216331415610a045760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016102b0565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b3360009081526020819052604090205460ff161515600114610a635760405162461bcd60e51b81526004016102b09061111e565b6008805460ff1916911515919091179055565b600080600080845160411415610aa05750505060208201516040830151606084015160001a610b16565b845160401415610ace5750505060408201516020830151906001600160ff1b0381169060ff1c601b01610b16565b60405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102b0565b610b2286828585610c76565b9695505050505050565b60035460405163124a72d560e11b81526004810185905263ffffffff841660248201526001600160a01b0390911690632494e5aa90604401600060405180830381600087803b158015610b7e57600080fd5b505af1158015610b92573d6000803e3d6000fd5b505060035460405163cb5f195360e01b81526004810187905263ffffffff851660248201526001600160a01b03909116925063cb5f19539150604401600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b5050600254600554604051632142170760e11b81526001600160a01b039182166004820152888216602482015260448101889052911692506342842e0e9150606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b5050505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610cf35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102b0565b8360ff16601b1480610d0857508360ff16601c145b610d5f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016102b0565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610db3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e165760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102b0565b95945050505050565b80356001600160a01b0381168114610e3657600080fd5b919050565b600082601f830112610e4c57600080fd5b813567ffffffffffffffff80821115610e6757610e6761114d565b604051601f8301601f19908116603f01168101908282118183101715610e8f57610e8f61114d565b81604052838152866020858801011115610ea857600080fd5b836020870160208301376000602085830101528094505050505092915050565b803563ffffffff81168114610e3657600080fd5b600060208284031215610eee57600080fd5b610ef782610e1f565b9392505050565b60008060408385031215610f1157600080fd5b610f1a83610e1f565b91506020830135610f2a81611163565b809150509250929050565b600080600080600080600080610100898b031215610f5257600080fd5b610f5b89610e1f565b975060208901359650610f7060408a01610ec8565b9550610f7e60608a01610ec8565b94506080890135935060a0890135925060c0890135915060e089013567ffffffffffffffff811115610faf57600080fd5b610fbb8b828c01610e3b565b9150509295985092959890939650565b6000806000806000806000806000806101408b8d031215610feb57600080fd5b610ff48b610e1f565b995061100260208c01610ec8565b985060408b0135975061101760608c01610ec8565b965061102560808c01610ec8565b955061103360a08c01610ec8565b945060c08b0135935060e08b013592506101008b013591506101208b013567ffffffffffffffff81111561106657600080fd5b6110728d828e01610e3b565b9150509295989b9194979a5092959850565b60006020828403121561109657600080fd5b8135610ef781611163565b6000602082840312156110b357600080fd5b8151610ef781611163565b600080604083850312156110d157600080fd5b82359150602083013567ffffffffffffffff8111156110ef57600080fd5b6110fb85828601610e3b565b9150509250929050565b60006020828403121561111757600080fd5b5051919050565b60208082526015908201527421b0b63632b91034b9903737ba1036b0b730b3b2b960591b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b801515811461117157600080fd5b5056fea26469706673582212206d18efaa11eba3a5b7401dc6cef6ee2aa37581eaafa352db9e8407d33b72db2c64736f6c63430008070033

Deployed Bytecode Sourcemap

3196:3194:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3901:276;;;;;;:::i;:::-;;:::i;:::-;;;8157:14:1;;8150:22;8132:41;;8120:2;8105:18;3901:276:0;;;;;;;;5135:865;;;;;;:::i;:::-;;:::i;:::-;;6006:101;;;;;;:::i;:::-;;:::i;3422:18::-;;;;;;;;;6115:86;;;;;;:::i;:::-;;:::i;6207:88::-;;;;;;:::i;:::-;;:::i;3319:27::-;;;;;;;;;12314:25:1;;;12302:2;12287:18;3319:27:0;12168:177:1;3351:23:0;;;;;-1:-1:-1;;;;;3351:23:0;;;;;;-1:-1:-1;;;;;5007:32:1;;;4989:51;;4977:2;4962:18;3351:23:0;4843:203:1;4183:645:0;;;;;;:::i;:::-;;:::i;298:165::-;;;;;;:::i;:::-;;:::i;6301:86::-;;;;;;:::i;:::-;;:::i;84:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3901:276;3982:10;4001:15;4019:60;4033:39;4062:9;2928:58;;4700:66:1;2928:58:0;;;4688:79:1;4783:12;;;4776:28;;;2895:7:0;;4820:12:1;;2928:58:0;;;;;;;;;;;;2918:69;;;;;;2911:76;;2826:167;;;;4033:39;4074:4;4019:13;:60::i;:::-;4101:6;;4001:78;;-1:-1:-1;;;;;;4090:17:0;;;4101:6;;4090:17;4086:86;;;4125:4;4118:11;;;;;4086:86;4159:5;4152:12;;;3901:276;;;;;:::o;5135:865::-;5366:6;;;;5365:7;5357:38;;;;-1:-1:-1;;;5357:38:0;;12023:2:1;5357:38:0;;;12005:21:1;12062:2;12042:18;;;12035:30;-1:-1:-1;;;12081:18:1;;;12074:48;12139:18;;5357:38:0;;;;;;;;;5422:7;;5410:8;:19;5402:45;;;;-1:-1:-1;;;5402:45:0;;9502:2:1;5402:45:0;;;9484:21:1;9541:2;9521:18;;;9514:30;-1:-1:-1;;;9560:18:1;;;9553:43;9613:18;;5402:45:0;9300:337:1;5402:45:0;5481:113;;;-1:-1:-1;;;;;7534:32:1;;5481:113:0;;;;7516:51:1;;;;7586:10;7632:15;;;7612:18;;;7605:43;7664:18;;;7657:34;;;7727:15;;;7707:18;;;7700:43;7780:15;;;7759:19;;;7752:44;7833:15;;7812:19;;;7805:44;7865:19;;;7858:35;;;7909:19;;;7902:35;;;7953:19;;;;7946:35;;;5481:113:0;;;;;;;;;;7488:19:1;;;;5481:113:0;;;5471:124;;;;;5611:26;5471:124;5632:4;5611:12;:26::i;:::-;:34;;5641:4;5611:34;5602:65;;;;-1:-1:-1;;;5602:65:0;;9844:2:1;5602:65:0;;;9826:21:1;9883:2;9863:18;;;9856:30;-1:-1:-1;;;9902:18:1;;;9895:47;9959:18;;5602:65:0;9642:341:1;5602:65:0;5691:11;;:25;;;-1:-1:-1;;;5691:25:0;;;;5674:14;;-1:-1:-1;;;;;5691:11:0;;:23;;:25;;;;;;;;;;;;;;:11;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5723:15;;:46;;-1:-1:-1;;;5723:46:0;;;;;12522:25:1;;;12595:10;12583:23;;12563:18;;;12556:51;5674:42:0;;-1:-1:-1;;;;;;5723:15:0;;:27;;12495:18:1;;5723:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5776:15:0;;:52;;-1:-1:-1;;;5776:52:0;;;;;12522:25:1;;;12595:10;12583:23;;12563:18;;;12556:51;-1:-1:-1;;;;;5776:15:0;;;;-1:-1:-1;5776:30:0;;-1:-1:-1;12495:18:1;;5776:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5835:6;;;;;;;;;-1:-1:-1;;;;;5835:6:0;-1:-1:-1;;;;;5835:15:0;;5851:7;5860:6;5868:10;5880:9;5891:6;5899:4;5835:69;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5730:32:1;;;;5712:51;;5794:2;5779:18;;5772:34;;;;5837:2;5822:18;;5815:34;;;;5880:2;5865:18;;5858:34;5923:3;5908:19;;5901:35;5980:14;5973:22;5750:3;5952:19;;5945:51;5699:3;5684:19;;5431:571;5835:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5919:11:0;;:61;;-1:-1:-1;;;5919:61:0;;-1:-1:-1;;;;;5919:11:0;;;;-1:-1:-1;5919:16:0;;-1:-1:-1;5919:61:0;;5936:7;;5945:10;;5957:6;;5965:14;;5919:61;;-1:-1:-1;;;;;6933:32:1;;;;6915:51;;6985:10;7031:15;;;7026:2;7011:18;;7004:43;7078:2;7063:18;;7056:34;;;;7126:15;7121:2;7106:18;;7099:43;6902:3;6887:19;;6688:460;5919:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5911:83;;;;-1:-1:-1;;;5911:83:0;;10593:2:1;5911:83:0;;;10575:21:1;10632:1;10612:18;;;10605:29;-1:-1:-1;;;10650:18:1;;;10643:39;10699:18;;5911:83:0;10391:332:1;5911:83:0;5350:650;;5135:865;;;;;;;;;;:::o;6006:101::-;177:10;168:8;:20;;;;;;;;;;;;;:28;;:20;:28;160:62;;;;-1:-1:-1;;;160:62:0;;;;;;;:::i;:::-;6070:6:::1;:31:::0;;-1:-1:-1;;;;;;6070:31:0::1;-1:-1:-1::0;;;;;6070:31:0;;;::::1;::::0;;;::::1;::::0;;6006:101::o;6115:86::-;177:10;168:8;:20;;;;;;;;;;;;;:28;;:20;:28;160:62;;;;-1:-1:-1;;;160:62:0;;;;;;;:::i;:::-;6179:6:::1;:16:::0;;-1:-1:-1;;;;;;6179:16:0::1;-1:-1:-1::0;;;;;6179:16:0;;;::::1;::::0;;;::::1;::::0;;6115:86::o;6207:88::-;177:10;168:8;:20;;;;;;;;;;;;;:28;;:20;:28;160:62;;;;-1:-1:-1;;;160:62:0;;;;;;;:::i;:::-;6272:8:::1;:17:::0;;-1:-1:-1;;;;;;6272:17:0::1;-1:-1:-1::0;;;;;6272:17:0;;;::::1;::::0;;;::::1;::::0;;6207:88::o;4183:645::-;4379:6;;;;4378:7;4370:38;;;;-1:-1:-1;;;4370:38:0;;12023:2:1;4370:38:0;;;12005:21:1;12062:2;12042:18;;;12035:30;-1:-1:-1;;;12081:18:1;;;12074:48;12139:18;;4370:38:0;11821:342:1;4370:38:0;4435:7;;4423:8;:19;4415:45;;;;-1:-1:-1;;;4415:45:0;;9502:2:1;4415:45:0;;;9484:21:1;9541:2;9521:18;;;9514:30;-1:-1:-1;;;9560:18:1;;;9553:43;9613:18;;4415:45:0;9300:337:1;4415:45:0;4494:87;;;-1:-1:-1;;;;;6336:32:1;;4494:87:0;;;6318:51:1;6385:18;;;6378:34;;;6431:10;6477:15;;;6457:18;;;6450:43;6529:15;;6509:18;;;6502:43;6561:19;;;6554:35;;;6605:19;;;6598:35;;;6649:19;;;6642:35;;;4467:14:0;;6290:19:1;;4494:87:0;;;;;;;;;;;;4484:98;;;;;;4467:115;;4589:8;4600:26;4613:6;4621:4;4600:12;:26::i;:::-;4589:37;-1:-1:-1;4649:4:0;4642:11;;;;4633:42;;;;-1:-1:-1;;;4633:42:0;;9844:2:1;4633:42:0;;;9826:21:1;9883:2;9863:18;;;9856:30;-1:-1:-1;;;9902:18:1;;;9895:47;9959:18;;4633:42:0;9642:341:1;4633:42:0;4682:6;;:72;;-1:-1:-1;;;4682:72:0;;-1:-1:-1;;;;;5730:32:1;;;4682:72:0;;;5712:51:1;5779:18;;;5772:34;;;5822:18;;;5815:34;;;5865:18;;;5858:34;;;5908:19;;;5901:35;;;4682:6:0;5952:19:1;;;5945:51;4682:6:0;;;;:15;;5684:19:1;;4682:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4761:61;4779:7;4788:8;4798:9;4809:12;4761:17;:61::i;:::-;4363:465;;4183:645;;;;;;;;:::o;298:165::-;177:10;168:8;:20;;;;;;;;;;;;;:28;;:20;:28;160:62;;;;-1:-1:-1;;;160:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;385:21:0;::::1;396:10;385:21;;377:45;;;::::0;-1:-1:-1;;;377:45:0;;11333:2:1;377:45:0::1;::::0;::::1;11315:21:1::0;11372:2;11352:18;;;11345:30;-1:-1:-1;;;11391:18:1;;;11384:41;11442:18;;377:45:0::1;11131:335:1::0;377:45:0::1;-1:-1:-1::0;;;;;429:17:0;;;::::1;:8;:17:::0;;;::::1;::::0;;;;;;:28;;-1:-1:-1;;429:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;298:165::o;6301:86::-;177:10;168:8;:20;;;;;;;;;;;;;:28;;:20;:28;160:62;;;;-1:-1:-1;;;160:62:0;;;;;;;:::i;:::-;6365:6:::1;:16:::0;;-1:-1:-1;;6365:16:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6301:86::o;1421:872::-;1499:7;1515:9;1531;1547:7;1565:9;:16;1585:2;1565:22;1561:689;;;-1:-1:-1;;;1699:4:0;1684:20;;1678:27;1741:4;1726:20;;1720:27;1791:4;1776:20;;1770:27;1767:1;1762:36;1561:689;;;1824:9;:16;1844:2;1824:22;1820:430;;;-1:-1:-1;;;1963:4:0;1948:20;;1942:27;2005:4;1990:20;;1984:27;;-1:-1:-1;;;;;2026:108:0;;;2157:3;2153:12;2167:2;2149:21;1820:430;;;2201:41;;-1:-1:-1;;;2201:41:0;;9142:2:1;2201:41:0;;;9124:21:1;9181:2;9161:18;;;9154:30;9220:33;9200:18;;;9193:61;9271:18;;2201:41:0;8940:355:1;1820:430:0;2265:22;2273:4;2279:1;2282;2285;2265:7;:22::i;:::-;2258:29;1421:872;-1:-1:-1;;;;;;1421:872:0:o;4834:295::-;4950:15;;:48;;-1:-1:-1;;;4950:48:0;;;;;12522:25:1;;;12595:10;12583:23;;12563:18;;;12556:51;-1:-1:-1;;;;;4950:15:0;;;;:27;;12495:18:1;;4950:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5005:15:0;;:54;;-1:-1:-1;;;5005:54:0;;;;;12522:25:1;;;12595:10;12583:23;;12563:18;;;12556:51;-1:-1:-1;;;;;5005:15:0;;;;-1:-1:-1;5005:30:0;;-1:-1:-1;12495:18:1;;5005:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5066:11:0;;5095:8;;5066:57;;-1:-1:-1;;;5066:57:0;;-1:-1:-1;;;;;5095:8:0;;;5066:57;;;5291:34:1;5361:15;;;5341:18;;;5334:43;5393:18;;;5386:34;;;5066:11:0;;;-1:-1:-1;5066:28:0;;-1:-1:-1;5226:18:1;;5066:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4834:295;;;;:::o;2299:521::-;2384:7;2422:66;2408:80;;;2400:127;;;;-1:-1:-1;;;2400:127:0;;10190:2:1;2400:127:0;;;10172:21:1;10229:2;10209:18;;;10202:30;10268:34;10248:18;;;10241:62;-1:-1:-1;;;10319:18:1;;;10312:32;10361:19;;2400:127:0;9988:398:1;2400:127:0;2542:1;:7;;2547:2;2542:7;:18;;;;2553:1;:7;;2558:2;2553:7;2542:18;2534:65;;;;-1:-1:-1;;;2534:65:0;;10930:2:1;2534:65:0;;;10912:21:1;10969:2;10949:18;;;10942:30;11008:34;10988:18;;;10981:62;-1:-1:-1;;;11059:18:1;;;11052:32;11101:19;;2534:65:0;10728:398:1;2534:65:0;2706:24;;;2689:14;2706:24;;;;;;;;;8411:25:1;;;8484:4;8472:17;;8452:18;;;8445:45;;;;8506:18;;;8499:34;;;8549:18;;;8542:34;;;2706:24:0;;8383:19:1;;2706:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2706:24:0;;-1:-1:-1;;2706:24:0;;;-1:-1:-1;;;;;;;2745:20:0;;2737:57;;;;-1:-1:-1;;;2737:57:0;;8789:2:1;2737:57:0;;;8771:21:1;8828:2;8808:18;;;8801:30;8867:26;8847:18;;;8840:54;8911:18;;2737:57:0;8587:348:1;2737:57:0;2808:6;2299:521;-1:-1:-1;;;;;2299:521:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:718::-;234:5;287:3;280:4;272:6;268:17;264:27;254:55;;305:1;302;295:12;254:55;341:6;328:20;367:18;404:2;400;397:10;394:36;;;410:18;;:::i;:::-;485:2;479:9;453:2;539:13;;-1:-1:-1;;535:22:1;;;559:2;531:31;527:40;515:53;;;583:18;;;603:22;;;580:46;577:72;;;629:18;;:::i;:::-;669:10;665:2;658:22;704:2;696:6;689:18;750:3;743:4;738:2;730:6;726:15;722:26;719:35;716:55;;;767:1;764;757:12;716:55;831:2;824:4;816:6;812:17;805:4;797:6;793:17;780:54;878:1;871:4;866:2;858:6;854:15;850:26;843:37;898:6;889:15;;;;;;192:718;;;;:::o;915:163::-;982:20;;1042:10;1031:22;;1021:33;;1011:61;;1068:1;1065;1058:12;1083:186;1142:6;1195:2;1183:9;1174:7;1170:23;1166:32;1163:52;;;1211:1;1208;1201:12;1163:52;1234:29;1253:9;1234:29;:::i;:::-;1224:39;1083:186;-1:-1:-1;;;1083:186:1:o;1274:315::-;1339:6;1347;1400:2;1388:9;1379:7;1375:23;1371:32;1368:52;;;1416:1;1413;1406:12;1368:52;1439:29;1458:9;1439:29;:::i;:::-;1429:39;;1518:2;1507:9;1503:18;1490:32;1531:28;1553:5;1531:28;:::i;:::-;1578:5;1568:15;;;1274:315;;;;;:::o;1594:815::-;1723:6;1731;1739;1747;1755;1763;1771;1779;1832:3;1820:9;1811:7;1807:23;1803:33;1800:53;;;1849:1;1846;1839:12;1800:53;1872:29;1891:9;1872:29;:::i;:::-;1862:39;;1948:2;1937:9;1933:18;1920:32;1910:42;;1971:37;2004:2;1993:9;1989:18;1971:37;:::i;:::-;1961:47;;2027:37;2060:2;2049:9;2045:18;2027:37;:::i;:::-;2017:47;;2111:3;2100:9;2096:19;2083:33;2073:43;;2163:3;2152:9;2148:19;2135:33;2125:43;;2215:3;2204:9;2200:19;2187:33;2177:43;;2271:3;2260:9;2256:19;2243:33;2299:18;2291:6;2288:30;2285:50;;;2331:1;2328;2321:12;2285:50;2354:49;2395:7;2386:6;2375:9;2371:22;2354:49;:::i;:::-;2344:59;;;1594:815;;;;;;;;;;;:::o;2414:961::-;2559:6;2567;2575;2583;2591;2599;2607;2615;2623;2631;2684:3;2672:9;2663:7;2659:23;2655:33;2652:53;;;2701:1;2698;2691:12;2652:53;2724:29;2743:9;2724:29;:::i;:::-;2714:39;;2772:37;2805:2;2794:9;2790:18;2772:37;:::i;:::-;2762:47;;2856:2;2845:9;2841:18;2828:32;2818:42;;2879:37;2912:2;2901:9;2897:18;2879:37;:::i;:::-;2869:47;;2935:38;2968:3;2957:9;2953:19;2935:38;:::i;:::-;2925:48;;2992:38;3025:3;3014:9;3010:19;2992:38;:::i;:::-;2982:48;;3077:3;3066:9;3062:19;3049:33;3039:43;;3129:3;3118:9;3114:19;3101:33;3091:43;;3181:3;3170:9;3166:19;3153:33;3143:43;;3237:3;3226:9;3222:19;3209:33;3265:18;3257:6;3254:30;3251:50;;;3297:1;3294;3287:12;3251:50;3320:49;3361:7;3352:6;3341:9;3337:22;3320:49;:::i;:::-;3310:59;;;2414:961;;;;;;;;;;;;;:::o;3380:241::-;3436:6;3489:2;3477:9;3468:7;3464:23;3460:32;3457:52;;;3505:1;3502;3495:12;3457:52;3544:9;3531:23;3563:28;3585:5;3563:28;:::i;3626:245::-;3693:6;3746:2;3734:9;3725:7;3721:23;3717:32;3714:52;;;3762:1;3759;3752:12;3714:52;3794:9;3788:16;3813:28;3835:5;3813:28;:::i;3876:388::-;3953:6;3961;4014:2;4002:9;3993:7;3989:23;3985:32;3982:52;;;4030:1;4027;4020:12;3982:52;4066:9;4053:23;4043:33;;4127:2;4116:9;4112:18;4099:32;4154:18;4146:6;4143:30;4140:50;;;4186:1;4183;4176:12;4140:50;4209:49;4250:7;4241:6;4230:9;4226:22;4209:49;:::i;:::-;4199:59;;;3876:388;;;;;:::o;4269:184::-;4339:6;4392:2;4380:9;4371:7;4367:23;4363:32;4360:52;;;4408:1;4405;4398:12;4360:52;-1:-1:-1;4431:16:1;;4269:184;-1:-1:-1;4269:184:1:o;11471:345::-;11673:2;11655:21;;;11712:2;11692:18;;;11685:30;-1:-1:-1;;;11746:2:1;11731:18;;11724:51;11807:2;11792:18;;11471:345::o;12618:127::-;12679:10;12674:3;12670:20;12667:1;12660:31;12710:4;12707:1;12700:15;12734:4;12731:1;12724:15;12750:118;12836:5;12829:13;12822:21;12815:5;12812:32;12802:60;;12858:1;12855;12848:12;12802:60;12750:118;:::o

Swarm Source

ipfs://6d18efaa11eba3a5b7401dc6cef6ee2aa37581eaafa352db9e8407d33b72db2c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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