Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 363 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Generate Game | 6886504 | 2067 days ago | IN | 0 ETH | 0.0001204 | ||||
Generate Game | 6886499 | 2067 days ago | IN | 0 ETH | 0.0001204 | ||||
Generate Game | 6886491 | 2067 days ago | IN | 0 ETH | 0.00133477 | ||||
Drain Game | 6886414 | 2067 days ago | IN | 0 ETH | 0.00128703 | ||||
Generate Game | 6834791 | 2075 days ago | IN | 0 ETH | 0.00362332 | ||||
Generate Game | 6656022 | 2105 days ago | IN | 0 ETH | 0.0014373 | ||||
Drain Game | 6577513 | 2118 days ago | IN | 0 ETH | 0.0019003 | ||||
Generate Game | 6422008 | 2143 days ago | IN | 0 ETH | 0.00467183 | ||||
Generate Game | 6421950 | 2143 days ago | IN | 0 ETH | 0.00425648 | ||||
Generate Game | 6375053 | 2151 days ago | IN | 0 ETH | 0.00322417 | ||||
Generate Game | 6370111 | 2152 days ago | IN | 0 ETH | 0.00262248 | ||||
Generate Game | 6338043 | 2157 days ago | IN | 0 ETH | 0.00116101 | ||||
Revoke Stack | 6331309 | 2158 days ago | IN | 0 ETH | 0.00062159 | ||||
Generate Game | 6303355 | 2163 days ago | IN | 0 ETH | 0.00115671 | ||||
Generate Game | 6256136 | 2170 days ago | IN | 0 ETH | 0.00012324 | ||||
Generate Game | 6256132 | 2170 days ago | IN | 0 ETH | 0.00012324 | ||||
Generate Game | 6256131 | 2170 days ago | IN | 0 ETH | 0.00135246 | ||||
Revoke Stack | 6129199 | 2192 days ago | IN | 0 ETH | 0.00060714 | ||||
Generate Game | 6129072 | 2192 days ago | IN | 0 ETH | 0.00144139 | ||||
Generate Game | 6123569 | 2193 days ago | IN | 0 ETH | 0.00409724 | ||||
Generate Game | 6104612 | 2196 days ago | IN | 0 ETH | 0.0008133 | ||||
Generate Game | 6077501 | 2201 days ago | IN | 0 ETH | 0.00040745 | ||||
Generate Game | 6065237 | 2203 days ago | IN | 0 ETH | 0.00040573 | ||||
Generate Game | 6064500 | 2203 days ago | IN | 0 ETH | 0.00041575 | ||||
Generate Game | 6064456 | 2203 days ago | IN | 0 ETH | 0.00044704 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PizzaParlor
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-30 */ pragma solidity ^0.4.15; /* https://cryptogs.io --Austin Thomas Griffith for ETHDenver PizzaParlor -- a new venue for cryptogs games less transactions than original Cryptogs.sol assuming some centralization and a single commit reveal for randomness */ /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract PizzaParlor { uint8 public constant FLIPPINESS = 64; uint8 public constant FLIPPINESSROUNDBONUS = 16; uint8 public constant MAXROUNDS = 12; //must be greater than (255-FLIPPINESS)/FLIPPINESSROUNDBONUS uint32 public constant BLOCKTIMEOUT = 40;// a few hours? address public cryptogsAddress; function PizzaParlor(address _cryptogsAddress) public { cryptogsAddress=_cryptogsAddress; } //to make less transactions on-chain, game creation will happen off-chain //at this point, two players have agreed upon the ten cryptogs that will //be in the game, five from each player // the server will generate a secret, reveal, and commit // this commit is used as the game id and both players share it // the server will pick one user at random to be the game master // this player will get the reveal and be in charge of generating the game // technically either player can generate the game with the reveal // (and either player can drain the stack with the secret) // commit -> player -> stack hash mapping (bytes32 => mapping (address => bytes32)) public commitReceipt; // commit -> player -> block number mapping (bytes32 => mapping (address => uint32)) public commitBlock; mapping (bytes32 => uint8) public stacksTransferred; //tx1&2: players submit to a particular commit hash their stack of pogs (the two txs can happen on the same block, no one is waiting) //these go to the Cryptogs contract and it is transferStackAndCall'ed to here function onTransferStack(address _sender, uint _token1, uint _token2, uint _token3, uint _token4, uint _token5, bytes32 _commit){ //make sure this came from the Cryptogs contract require(msg.sender == cryptogsAddress); //make sure this commit is unique / doesn't already exist require(commitReceipt[_commit][_sender] == 0); //make sure there aren't already two stacks submitted require(stacksTransferred[_commit]<2); stacksTransferred[_commit]++; //make sure this contract now owns these tokens NFT cryptogsContract = NFT(cryptogsAddress); require(cryptogsContract.tokenIndexToOwner(_token1)==address(this)); require(cryptogsContract.tokenIndexToOwner(_token2)==address(this)); require(cryptogsContract.tokenIndexToOwner(_token3)==address(this)); require(cryptogsContract.tokenIndexToOwner(_token4)==address(this)); require(cryptogsContract.tokenIndexToOwner(_token5)==address(this)); //generate a receipt for the transfer bytes32 receipt = keccak256(_commit,_sender,_token1,_token2,_token3,_token4,_token5); commitReceipt[_commit][_sender] = receipt; commitBlock[_commit][_sender] = uint32(block.number); //fire an event for the frontend TransferStack(_commit,_sender,receipt,now,_token1,_token2,_token3,_token4,_token5); } event TransferStack(bytes32 indexed _commit,address indexed _sender,bytes32 indexed _receipt,uint _timestamp,uint256 _token1,uint256 _token2,uint256 _token3,uint256 _token4,uint256 _token5); //tx3: either player, knowing the reveal, can generate the game //this tx calculates random, generates game events, and transfers // tokens back to winners //in order to make game costs fair, the frontend should randomly select // one of the two players and give them the reveal to generate the game // in a bit you could give it to the other player too .... then after the // timeout, they would get the secret to drain the stack function generateGame(bytes32 _commit,bytes32 _reveal,address _opponent,uint _token1, uint _token2, uint _token3, uint _token4, uint _token5,uint _token6, uint _token7, uint _token8, uint _token9, uint _token10){ //verify that receipts are valid require( commitReceipt[_commit][msg.sender] == keccak256(_commit,msg.sender,_token1,_token2,_token3,_token4,_token5) ); require( commitReceipt[_commit][_opponent] == keccak256(_commit,_opponent,_token6,_token7,_token8,_token9,_token10) ); //verify we are on a later block so random will work require( uint32(block.number) > commitBlock[_commit][msg.sender]); require( uint32(block.number) > commitBlock[_commit][_opponent]); //verify that the reveal is correct require(_commit == keccak256(_reveal)); //make sure there are exactly two stacks submitted require(stacksTransferred[_commit]==2); _generateGame(_commit,_reveal,_opponent,[_token1,_token2,_token3,_token4,_token5,_token6,_token7,_token8,_token9,_token10]); } function _generateGame(bytes32 _commit,bytes32 _reveal,address _opponent,uint[10] _tokens) internal { //create Cryptogs contract for transfers NFT cryptogsContract = NFT(cryptogsAddress); //generate the random using commit / reveal and blockhash from future (now past) block bytes32[4] memory pseudoRandoms = _generateRandom(_reveal,commitBlock[_commit][msg.sender],commitBlock[_commit][_opponent]); bool whosTurn = uint8(pseudoRandoms[0][0])%2==0; CoinFlip(_commit,whosTurn,whosTurn ? msg.sender : _opponent); for(uint8 round=1;round<=MAXROUNDS;round++){ for(uint8 i=1;i<=10;i++){ //first check and see if this token has flipped yet if(_tokens[i-1]>0){ //get the random byte between 0-255 from our pseudoRandoms array of bytes32 uint8 rand = _getRandom(pseudoRandoms,(round-1)*10 + i); uint8 threshold = (FLIPPINESS+round*FLIPPINESSROUNDBONUS); if( rand < threshold || round==MAXROUNDS ){ _flip(_commit,round,cryptogsContract,_tokens,i-1,_opponent,whosTurn); } } } whosTurn = !whosTurn; } delete commitReceipt[_commit][msg.sender]; delete commitReceipt[_commit][_opponent]; GenerateGame(_commit,msg.sender); } event CoinFlip(bytes32 indexed _commit,bool _result,address _winner); event GenerateGame(bytes32 indexed _commit,address indexed _sender); function _getRandom(bytes32[4] pseudoRandoms,uint8 randIndex) internal returns (uint8 rand){ if(randIndex<32){ rand = uint8(pseudoRandoms[0][randIndex]); }else if(randIndex<64){ rand = uint8(pseudoRandoms[1][randIndex-32]); }else if(randIndex<96){ rand = uint8(pseudoRandoms[1][randIndex-64]); }else{ rand = uint8(pseudoRandoms[1][randIndex-96]); } return rand; } function _generateRandom(bytes32 _reveal, uint32 block1,uint32 block2) internal returns(bytes32[4] pseudoRandoms){ pseudoRandoms[0] = keccak256(_reveal,block.blockhash(max(block1,block2))); pseudoRandoms[1] = keccak256(pseudoRandoms[0]); pseudoRandoms[2] = keccak256(pseudoRandoms[1]); pseudoRandoms[3] = keccak256(pseudoRandoms[2]); return pseudoRandoms; } function max(uint32 a, uint32 b) private pure returns (uint32) { return a > b ? a : b; } function _flip(bytes32 _commit,uint8 round,NFT cryptogsContract,uint[10] _tokens,uint8 tokenIndex,address _opponent,bool whosTurn) internal { address flipper; if(whosTurn) { flipper=msg.sender; }else{ flipper=_opponent; } cryptogsContract.transfer(flipper,_tokens[tokenIndex]); Flip(_commit,round,flipper,_tokens[tokenIndex]); _tokens[tokenIndex]=0; } event Flip(bytes32 indexed _commit,uint8 _round,address indexed _flipper,uint indexed _token); //if the game times out without either player generating the game, // (the frontend should have selected one of the players randomly to generate the game) //the frontend should give the other player the secret to drain the game // secret -> reveal -> commit function drainGame(bytes32 _commit,bytes32 _secret,address _opponent,uint _token1, uint _token2, uint _token3, uint _token4, uint _token5,uint _token6, uint _token7, uint _token8, uint _token9, uint _token10){ //verify that receipts are valid require( commitReceipt[_commit][msg.sender] == keccak256(_commit,msg.sender,_token1,_token2,_token3,_token4,_token5) ); require( commitReceipt[_commit][_opponent] == keccak256(_commit,_opponent,_token6,_token7,_token8,_token9,_token10) ); //verify we are on a later block so random will work require( uint32(block.number) > commitBlock[_commit][msg.sender]+BLOCKTIMEOUT); require( uint32(block.number) > commitBlock[_commit][_opponent]+BLOCKTIMEOUT); //make sure the commit is the doublehash of the secret require(_commit == keccak256(keccak256(_secret))); //make sure there are exactly two stacks submitted require(stacksTransferred[_commit]==2); _drainGame(_commit,_opponent,[_token1,_token2,_token3,_token4,_token5,_token6,_token7,_token8,_token9,_token10]); } function _drainGame(bytes32 _commit,address _opponent, uint[10] _tokens) internal { //create Cryptogs contract for transfers NFT cryptogsContract = NFT(cryptogsAddress); cryptogsContract.transfer(msg.sender,_tokens[0]); cryptogsContract.transfer(msg.sender,_tokens[1]); cryptogsContract.transfer(msg.sender,_tokens[2]); cryptogsContract.transfer(msg.sender,_tokens[3]); cryptogsContract.transfer(msg.sender,_tokens[4]); cryptogsContract.transfer(msg.sender,_tokens[5]); cryptogsContract.transfer(msg.sender,_tokens[6]); cryptogsContract.transfer(msg.sender,_tokens[7]); cryptogsContract.transfer(msg.sender,_tokens[8]); cryptogsContract.transfer(msg.sender,_tokens[9]); Flip(_commit,1,msg.sender,_tokens[0]); Flip(_commit,1,msg.sender,_tokens[1]); Flip(_commit,1,msg.sender,_tokens[2]); Flip(_commit,1,msg.sender,_tokens[3]); Flip(_commit,1,msg.sender,_tokens[4]); Flip(_commit,1,msg.sender,_tokens[5]); Flip(_commit,1,msg.sender,_tokens[6]); Flip(_commit,1,msg.sender,_tokens[7]); Flip(_commit,1,msg.sender,_tokens[8]); Flip(_commit,1,msg.sender,_tokens[9]); delete commitReceipt[_commit][msg.sender]; delete commitReceipt[_commit][_opponent]; DrainGame(_commit,msg.sender); } event DrainGame(bytes32 indexed _commit,address indexed _sender); //if only one player ever ends up submitting a stack, they need to be able //to pull thier tokens back function revokeStack(bytes32 _commit,uint _token1, uint _token2, uint _token3, uint _token4, uint _token5){ //verify that receipt is valid require( commitReceipt[_commit][msg.sender] == keccak256(_commit,msg.sender,_token1,_token2,_token3,_token4,_token5) ); //make sure there is exactly one stacks submitted require(stacksTransferred[_commit]==1); stacksTransferred[_commit]=0; NFT cryptogsContract = NFT(cryptogsAddress); cryptogsContract.transfer(msg.sender,_token1); cryptogsContract.transfer(msg.sender,_token2); cryptogsContract.transfer(msg.sender,_token3); cryptogsContract.transfer(msg.sender,_token4); cryptogsContract.transfer(msg.sender,_token5); bytes32 previousReceipt = commitReceipt[_commit][msg.sender]; delete commitReceipt[_commit][msg.sender]; //fire an event for the frontend RevokeStack(_commit,msg.sender,now,_token1,_token2,_token3,_token4,_token5,previousReceipt); } event RevokeStack(bytes32 indexed _commit,address indexed _sender,uint _timestamp,uint256 _token1,uint256 _token2,uint256 _token3,uint256 _token4,uint256 _token5,bytes32 _receipt); } contract NFT { function approve(address _to,uint256 _tokenId) public returns (bool) { } function transfer(address _to,uint256 _tokenId) external { } mapping (uint256 => address) public tokenIndexToOwner; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"FLIPPINESS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"address"}],"name":"commitBlock","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FLIPPINESSROUNDBONUS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_token1","type":"uint256"},{"name":"_token2","type":"uint256"},{"name":"_token3","type":"uint256"},{"name":"_token4","type":"uint256"},{"name":"_token5","type":"uint256"},{"name":"_commit","type":"bytes32"}],"name":"onTransferStack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commit","type":"bytes32"},{"name":"_secret","type":"bytes32"},{"name":"_opponent","type":"address"},{"name":"_token1","type":"uint256"},{"name":"_token2","type":"uint256"},{"name":"_token3","type":"uint256"},{"name":"_token4","type":"uint256"},{"name":"_token5","type":"uint256"},{"name":"_token6","type":"uint256"},{"name":"_token7","type":"uint256"},{"name":"_token8","type":"uint256"},{"name":"_token9","type":"uint256"},{"name":"_token10","type":"uint256"}],"name":"drainGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commit","type":"bytes32"},{"name":"_token1","type":"uint256"},{"name":"_token2","type":"uint256"},{"name":"_token3","type":"uint256"},{"name":"_token4","type":"uint256"},{"name":"_token5","type":"uint256"}],"name":"revokeStack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAXROUNDS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"address"}],"name":"commitReceipt","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_commit","type":"bytes32"},{"name":"_reveal","type":"bytes32"},{"name":"_opponent","type":"address"},{"name":"_token1","type":"uint256"},{"name":"_token2","type":"uint256"},{"name":"_token3","type":"uint256"},{"name":"_token4","type":"uint256"},{"name":"_token5","type":"uint256"},{"name":"_token6","type":"uint256"},{"name":"_token7","type":"uint256"},{"name":"_token8","type":"uint256"},{"name":"_token9","type":"uint256"},{"name":"_token10","type":"uint256"}],"name":"generateGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cryptogsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BLOCKTIMEOUT","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"stacksTransferred","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_cryptogsAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_commit","type":"bytes32"},{"indexed":true,"name":"_sender","type":"address"},{"indexed":true,"name":"_receipt","type":"bytes32"},{"indexed":false,"name":"_timestamp","type":"uint256"},{"indexed":false,"name":"_token1","type":"uint256"},{"indexed":false,"name":"_token2","type":"uint256"},{"indexed":false,"name":"_token3","type":"uint256"},{"indexed":false,"name":"_token4","type":"uint256"},{"indexed":false,"name":"_token5","type":"uint256"}],"name":"TransferStack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_commit","type":"bytes32"},{"indexed":false,"name":"_result","type":"bool"},{"indexed":false,"name":"_winner","type":"address"}],"name":"CoinFlip","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_commit","type":"bytes32"},{"indexed":true,"name":"_sender","type":"address"}],"name":"GenerateGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_commit","type":"bytes32"},{"indexed":false,"name":"_round","type":"uint8"},{"indexed":true,"name":"_flipper","type":"address"},{"indexed":true,"name":"_token","type":"uint256"}],"name":"Flip","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_commit","type":"bytes32"},{"indexed":true,"name":"_sender","type":"address"}],"name":"DrainGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_commit","type":"bytes32"},{"indexed":true,"name":"_sender","type":"address"},{"indexed":false,"name":"_timestamp","type":"uint256"},{"indexed":false,"name":"_token1","type":"uint256"},{"indexed":false,"name":"_token2","type":"uint256"},{"indexed":false,"name":"_token3","type":"uint256"},{"indexed":false,"name":"_token4","type":"uint256"},{"indexed":false,"name":"_token5","type":"uint256"},{"indexed":false,"name":"_receipt","type":"bytes32"}],"name":"RevokeStack","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b604051602080611aa18339810160405280805160008054600160a060020a03909216600160a060020a03199092169190911790555050611a4d806100546000396000f3006060604052600436106100a05763ffffffff60e060020a600035041663372e80c381146100a55780634e0733ea146100ce57806359828c9914610109578063610b16ab1461011c5780639a99ebf41461014f5780639edc7b4414610197578063a5f357de146101bc578063b314335c146101cf578063bb8f712f14610203578063ce5c52011461024b578063d4eb45401461027a578063f9c7e1c71461028d575b600080fd5b34156100b057600080fd5b6100b86102a3565b60405160ff909116815260200160405180910390f35b34156100d957600080fd5b6100f0600435600160a060020a03602435166102a8565b60405163ffffffff909116815260200160405180910390f35b341561011457600080fd5b6100b86102cb565b341561012757600080fd5b61014d600160a060020a036004351660243560443560643560843560a43560c4356102d0565b005b341561015a57600080fd5b61014d600435602435600160a060020a036044351660643560843560a43560c43560e43561010435610124356101443561016435610184356106e7565b34156101a257600080fd5b61014d60043560243560443560643560843560a43561093f565b34156101c757600080fd5b6100b8610c99565b34156101da57600080fd5b6101f1600435600160a060020a0360243516610c9e565b60405190815260200160405180910390f35b341561020e57600080fd5b61014d600435602435600160a060020a036044351660643560843560a43560c43560e4356101043561012435610144356101643561018435610cbb565b341561025657600080fd5b61025e610eea565b604051600160a060020a03909116815260200160405180910390f35b341561028557600080fd5b6100f0610ef9565b341561029857600080fd5b6100b8600435610efe565b604081565b600260209081526000928352604080842090915290825290205463ffffffff1681565b601081565b60008054819033600160a060020a039081169116146102ee57600080fd5b6000838152600160209081526040808320600160a060020a038d1684529091529020541561031b57600080fd5b600083815260036020526040902054600260ff9091161061033b57600080fd5b600083815260036020526040808220805460ff8082166001011660ff199091161790559054600160a060020a0390811693503016908390631d36e06c908b905160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156103ae57600080fd5b5af115156103bb57600080fd5b50505060405180519050600160a060020a03161415156103da57600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8960405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561042a57600080fd5b5af1151561043757600080fd5b50505060405180519050600160a060020a031614151561045657600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8860405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156104a657600080fd5b5af115156104b357600080fd5b50505060405180519050600160a060020a03161415156104d257600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8760405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561052257600080fd5b5af1151561052f57600080fd5b50505060405180519050600160a060020a031614151561054e57600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8660405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561059e57600080fd5b5af115156105ab57600080fd5b50505060405180519050600160a060020a03161415156105ca57600080fd5b82898989898989604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d4016040519081900390206000848152600160209081526040808320600160a060020a038e168085529083528184208590558784526002835281842081855290925291829020805463ffffffff19164363ffffffff1617905591925082919085907fbc03a9cf3a0cea583d2d3433a6d1f5f4da47c1821cb48d3ae9977ea802a6dd449042908d908d908d908d908d905180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a4505050505050505050565b8c338b8b8b8b8b604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d40160405190819003902060008e8152600160209081526040808320600160a060020a03331684529091529020541461076c57600080fd5b8c8b8686868686604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d401604051809103902060001916600160008f6000191660001916815260200190815260200160002060008d600160a060020a0316600160a060020a03168152602001908152602001600020546000191614151561081657600080fd5b60008d8152600260209081526040808320600160a060020a033316845290915290205463ffffffff9081166028018116439091161161085457600080fd5b60008d8152600260209081526040808320600160a060020a038f16845290915290205463ffffffff9081166028018116439091161161089257600080fd5b8b60405190815260200160405180910390206040519081526020016040519081900390208d146108c157600080fd5b60008d81526003602052604090205460ff166002146108df57600080fd5b6109308d8c610140604051908101604052808e81526020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815250610f13565b50505050505050505050505050565b60008087338888888888604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d4016040519081900390206000898152600160209081526040808320600160a060020a0333168452909152902054146109c757600080fd5b60008881526003602052604090205460ff166001146109e557600080fd5b600088815260036020526040808220805460ff191690559054600160a060020a03169250829063a9059cbb9033908a905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a5657600080fd5b5af11515610a6357600080fd5b50505081600160a060020a031663a9059cbb338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610aba57600080fd5b5af11515610ac757600080fd5b50505081600160a060020a031663a9059cbb338760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b1e57600080fd5b5af11515610b2b57600080fd5b50505081600160a060020a031663a9059cbb338660405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b8257600080fd5b5af11515610b8f57600080fd5b50505081600160a060020a031663a9059cbb338560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610be657600080fd5b5af11515610bf357600080fd5b505050600088815260016020908152604080832033600160a060020a0316808552925280832080549390559192509089907faf1edfefb4cf4eecc7f6c040867de3c931298f6c597cc633ea77b7986fd7a7ff9042908b908b908b908b908b908a905196875260208701959095526040808701949094526060860192909252608085015260a084015260c083019190915260e0909101905180910390a35050505050505050565b600c81565b600160209081526000928352604080842090915290825290205481565b8c338b8b8b8b8b604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d40160405190819003902060008e8152600160209081526040808320600160a060020a033316845290915290205414610d4057600080fd5b8c8b8686868686604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d401604051809103902060001916600160008f6000191660001916815260200190815260200160002060008d600160a060020a0316600160a060020a031681526020019081526020016000205460001916141515610dea57600080fd5b60008d8152600260209081526040808320600160a060020a033316845290915290205463ffffffff9081164390911611610e2357600080fd5b60008d8152600260209081526040808320600160a060020a038f16845290915290205463ffffffff9081164390911611610e5c57600080fd5b8b6040519081526020016040519081900390208d14610e7a57600080fd5b60008d81526003602052604090205460ff16600214610e9857600080fd5b6109308d8d8d610140604051908101604052808f81526020018e81526020018d81526020018c81526020018b81526020018a8152602001898152602001888152602001878152602001868152506115ab565b600054600160a060020a031681565b602881565b60036020526000908152604090205460ff1681565b600054600160a060020a03168063a9059cbb33845160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610f6b57600080fd5b5af11515610f7857600080fd5b505050600160a060020a03811663a9059cbb33602085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610fd357600080fd5b5af11515610fe057600080fd5b505050600160a060020a03811663a9059cbb33604085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561103b57600080fd5b5af1151561104857600080fd5b505050600160a060020a03811663a9059cbb33606085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156110a357600080fd5b5af115156110b057600080fd5b505050600160a060020a03811663a9059cbb33608085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561110b57600080fd5b5af1151561111857600080fd5b505050600160a060020a03811663a9059cbb3360a085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561117357600080fd5b5af1151561118057600080fd5b505050600160a060020a03811663a9059cbb3360c085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156111db57600080fd5b5af115156111e857600080fd5b505050600160a060020a03811663a9059cbb3360e085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561124357600080fd5b5af1151561125057600080fd5b505050600160a060020a03811663a9059cbb3361010085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156112ac57600080fd5b5af115156112b957600080fd5b505050600160a060020a03811663a9059cbb3361012085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561131557600080fd5b5af1151561132257600080fd5b508391505051600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46020820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46040820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46060820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46080820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a460a0820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a460c0820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a460e0820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a4610100820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a4610120820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46000848152600160209081526040808320600160a060020a0333811680865282855283862086905590881685529252808320929092559085907f3e34363ddbc7b0d3069cc77187cf380a37574760ab8294704fc29a5542f54175905160405180910390a350505050565b60006115b56119d8565b60008054878252600260209081526040808420600160a060020a0333811686529252808420548883168552908420549190921694508291829182918291611607918c9163ffffffff9182169116611797565b95506002865160001a60f860020a0260f860020a900460ff1681151561162957fe5b0660ff161594508a7f3cd01757a3219212bee8308b93a6e0d333a25a61b674e1053a360e5768c01390868061165e578b611660565b335b6040519115158252600160a060020a031660208201526040908101905180910390a2600193505b600c60ff85161161172657600192505b600a60ff8416116117185760008860ff600019860116600a81106116b757fe5b6020020151111561170d576116d4868460018703600a020161181f565b91506010840260400190508060ff168260ff1610806116f6575060ff8416600c145b1561170d5761170d8b85898b600188038e8b6118c6565b600190920191611697565b931593600190930192611687565b60008b8152600160209081526040808320600160a060020a03338116808652828552838620869055908e168552925280832092909255908c907f3faf8fa3d70be2795b288eeaecec28ebc8c8d2f0a8fec2a576322cd8ed50d6f7905160405180910390a35050505050505050505050565b61179f6119d8565b836117aa84846119b4565b63ffffffff1640604051918252602082015260409081019051908190039020815280516040519081526020016040519081900390206020820190815251604051908152602001604051908190039020604082019081525160405190815260200160405190819003902060608201529392505050565b600060208260ff16101561185257825160ff83166020811061183d57fe5b1a60f860020a0260f860020a900490506118c0565b60408260ff16101561187557602083015160ff601f198401166020811061183d57fe5b60608260ff16101561189857602083015160ff603f198401166020811061183d57fe5b602083015160ff605f19840116602081106118af57fe5b1a60f860020a0260f860020a900490505b92915050565b600081156118d55750336118d8565b50815b600160a060020a03861663a9059cbb828760ff8816600a81106118f757fe5b602002015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561193f57600080fd5b5af1151561194c57600080fd5b508691505060ff8516600a811061195f57fe5b6020020151600160a060020a03821689600080516020611a028339815191528a60405160ff909116815260200160405180910390a460008560ff8616600a81106119a557fe5b60200201525050505050505050565b60008163ffffffff168363ffffffff16116119cf57816119d1565b825b9392505050565b60806040519081016040526004815b600081526000199190910190602001816119e7579050509056003665eb6c1d573fea820e2e5da7f05de75fb2ee0f16809ffa651bb1e007adaa79a165627a7a723058207621401dd7920b67023717738b55148ef05fe83e1f4cf378f026c8b11329be5d0029000000000000000000000000efabe332d31c3982b76f8630a306c960169bd5b3
Deployed Bytecode
0x6060604052600436106100a05763ffffffff60e060020a600035041663372e80c381146100a55780634e0733ea146100ce57806359828c9914610109578063610b16ab1461011c5780639a99ebf41461014f5780639edc7b4414610197578063a5f357de146101bc578063b314335c146101cf578063bb8f712f14610203578063ce5c52011461024b578063d4eb45401461027a578063f9c7e1c71461028d575b600080fd5b34156100b057600080fd5b6100b86102a3565b60405160ff909116815260200160405180910390f35b34156100d957600080fd5b6100f0600435600160a060020a03602435166102a8565b60405163ffffffff909116815260200160405180910390f35b341561011457600080fd5b6100b86102cb565b341561012757600080fd5b61014d600160a060020a036004351660243560443560643560843560a43560c4356102d0565b005b341561015a57600080fd5b61014d600435602435600160a060020a036044351660643560843560a43560c43560e43561010435610124356101443561016435610184356106e7565b34156101a257600080fd5b61014d60043560243560443560643560843560a43561093f565b34156101c757600080fd5b6100b8610c99565b34156101da57600080fd5b6101f1600435600160a060020a0360243516610c9e565b60405190815260200160405180910390f35b341561020e57600080fd5b61014d600435602435600160a060020a036044351660643560843560a43560c43560e4356101043561012435610144356101643561018435610cbb565b341561025657600080fd5b61025e610eea565b604051600160a060020a03909116815260200160405180910390f35b341561028557600080fd5b6100f0610ef9565b341561029857600080fd5b6100b8600435610efe565b604081565b600260209081526000928352604080842090915290825290205463ffffffff1681565b601081565b60008054819033600160a060020a039081169116146102ee57600080fd5b6000838152600160209081526040808320600160a060020a038d1684529091529020541561031b57600080fd5b600083815260036020526040902054600260ff9091161061033b57600080fd5b600083815260036020526040808220805460ff8082166001011660ff199091161790559054600160a060020a0390811693503016908390631d36e06c908b905160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156103ae57600080fd5b5af115156103bb57600080fd5b50505060405180519050600160a060020a03161415156103da57600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8960405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561042a57600080fd5b5af1151561043757600080fd5b50505060405180519050600160a060020a031614151561045657600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8860405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156104a657600080fd5b5af115156104b357600080fd5b50505060405180519050600160a060020a03161415156104d257600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8760405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561052257600080fd5b5af1151561052f57600080fd5b50505060405180519050600160a060020a031614151561054e57600080fd5b30600160a060020a031682600160a060020a0316631d36e06c8660405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561059e57600080fd5b5af115156105ab57600080fd5b50505060405180519050600160a060020a03161415156105ca57600080fd5b82898989898989604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d4016040519081900390206000848152600160209081526040808320600160a060020a038e168085529083528184208590558784526002835281842081855290925291829020805463ffffffff19164363ffffffff1617905591925082919085907fbc03a9cf3a0cea583d2d3433a6d1f5f4da47c1821cb48d3ae9977ea802a6dd449042908d908d908d908d908d905180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a4505050505050505050565b8c338b8b8b8b8b604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d40160405190819003902060008e8152600160209081526040808320600160a060020a03331684529091529020541461076c57600080fd5b8c8b8686868686604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d401604051809103902060001916600160008f6000191660001916815260200190815260200160002060008d600160a060020a0316600160a060020a03168152602001908152602001600020546000191614151561081657600080fd5b60008d8152600260209081526040808320600160a060020a033316845290915290205463ffffffff9081166028018116439091161161085457600080fd5b60008d8152600260209081526040808320600160a060020a038f16845290915290205463ffffffff9081166028018116439091161161089257600080fd5b8b60405190815260200160405180910390206040519081526020016040519081900390208d146108c157600080fd5b60008d81526003602052604090205460ff166002146108df57600080fd5b6109308d8c610140604051908101604052808e81526020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815250610f13565b50505050505050505050505050565b60008087338888888888604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d4016040519081900390206000898152600160209081526040808320600160a060020a0333168452909152902054146109c757600080fd5b60008881526003602052604090205460ff166001146109e557600080fd5b600088815260036020526040808220805460ff191690559054600160a060020a03169250829063a9059cbb9033908a905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a5657600080fd5b5af11515610a6357600080fd5b50505081600160a060020a031663a9059cbb338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610aba57600080fd5b5af11515610ac757600080fd5b50505081600160a060020a031663a9059cbb338760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b1e57600080fd5b5af11515610b2b57600080fd5b50505081600160a060020a031663a9059cbb338660405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b8257600080fd5b5af11515610b8f57600080fd5b50505081600160a060020a031663a9059cbb338560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610be657600080fd5b5af11515610bf357600080fd5b505050600088815260016020908152604080832033600160a060020a0316808552925280832080549390559192509089907faf1edfefb4cf4eecc7f6c040867de3c931298f6c597cc633ea77b7986fd7a7ff9042908b908b908b908b908b908a905196875260208701959095526040808701949094526060860192909252608085015260a084015260c083019190915260e0909101905180910390a35050505050505050565b600c81565b600160209081526000928352604080842090915290825290205481565b8c338b8b8b8b8b604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d40160405190819003902060008e8152600160209081526040808320600160a060020a033316845290915290205414610d4057600080fd5b8c8b8686868686604051968752600160a060020a03959095166c01000000000000000000000000026020870152603486019390935260548501919091526074840152609483015260b482015260d401604051809103902060001916600160008f6000191660001916815260200190815260200160002060008d600160a060020a0316600160a060020a031681526020019081526020016000205460001916141515610dea57600080fd5b60008d8152600260209081526040808320600160a060020a033316845290915290205463ffffffff9081164390911611610e2357600080fd5b60008d8152600260209081526040808320600160a060020a038f16845290915290205463ffffffff9081164390911611610e5c57600080fd5b8b6040519081526020016040519081900390208d14610e7a57600080fd5b60008d81526003602052604090205460ff16600214610e9857600080fd5b6109308d8d8d610140604051908101604052808f81526020018e81526020018d81526020018c81526020018b81526020018a8152602001898152602001888152602001878152602001868152506115ab565b600054600160a060020a031681565b602881565b60036020526000908152604090205460ff1681565b600054600160a060020a03168063a9059cbb33845160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610f6b57600080fd5b5af11515610f7857600080fd5b505050600160a060020a03811663a9059cbb33602085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610fd357600080fd5b5af11515610fe057600080fd5b505050600160a060020a03811663a9059cbb33604085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561103b57600080fd5b5af1151561104857600080fd5b505050600160a060020a03811663a9059cbb33606085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156110a357600080fd5b5af115156110b057600080fd5b505050600160a060020a03811663a9059cbb33608085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561110b57600080fd5b5af1151561111857600080fd5b505050600160a060020a03811663a9059cbb3360a085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561117357600080fd5b5af1151561118057600080fd5b505050600160a060020a03811663a9059cbb3360c085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156111db57600080fd5b5af115156111e857600080fd5b505050600160a060020a03811663a9059cbb3360e085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561124357600080fd5b5af1151561125057600080fd5b505050600160a060020a03811663a9059cbb3361010085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156112ac57600080fd5b5af115156112b957600080fd5b505050600160a060020a03811663a9059cbb3361012085015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561131557600080fd5b5af1151561132257600080fd5b508391505051600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46020820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46040820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46060820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46080820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a460a0820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a460c0820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a460e0820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a4610100820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a4610120820151600160a060020a03331685600080516020611a02833981519152600160405160ff909116815260200160405180910390a46000848152600160209081526040808320600160a060020a0333811680865282855283862086905590881685529252808320929092559085907f3e34363ddbc7b0d3069cc77187cf380a37574760ab8294704fc29a5542f54175905160405180910390a350505050565b60006115b56119d8565b60008054878252600260209081526040808420600160a060020a0333811686529252808420548883168552908420549190921694508291829182918291611607918c9163ffffffff9182169116611797565b95506002865160001a60f860020a0260f860020a900460ff1681151561162957fe5b0660ff161594508a7f3cd01757a3219212bee8308b93a6e0d333a25a61b674e1053a360e5768c01390868061165e578b611660565b335b6040519115158252600160a060020a031660208201526040908101905180910390a2600193505b600c60ff85161161172657600192505b600a60ff8416116117185760008860ff600019860116600a81106116b757fe5b6020020151111561170d576116d4868460018703600a020161181f565b91506010840260400190508060ff168260ff1610806116f6575060ff8416600c145b1561170d5761170d8b85898b600188038e8b6118c6565b600190920191611697565b931593600190930192611687565b60008b8152600160209081526040808320600160a060020a03338116808652828552838620869055908e168552925280832092909255908c907f3faf8fa3d70be2795b288eeaecec28ebc8c8d2f0a8fec2a576322cd8ed50d6f7905160405180910390a35050505050505050505050565b61179f6119d8565b836117aa84846119b4565b63ffffffff1640604051918252602082015260409081019051908190039020815280516040519081526020016040519081900390206020820190815251604051908152602001604051908190039020604082019081525160405190815260200160405190819003902060608201529392505050565b600060208260ff16101561185257825160ff83166020811061183d57fe5b1a60f860020a0260f860020a900490506118c0565b60408260ff16101561187557602083015160ff601f198401166020811061183d57fe5b60608260ff16101561189857602083015160ff603f198401166020811061183d57fe5b602083015160ff605f19840116602081106118af57fe5b1a60f860020a0260f860020a900490505b92915050565b600081156118d55750336118d8565b50815b600160a060020a03861663a9059cbb828760ff8816600a81106118f757fe5b602002015160405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561193f57600080fd5b5af1151561194c57600080fd5b508691505060ff8516600a811061195f57fe5b6020020151600160a060020a03821689600080516020611a028339815191528a60405160ff909116815260200160405180910390a460008560ff8616600a81106119a557fe5b60200201525050505050505050565b60008163ffffffff168363ffffffff16116119cf57816119d1565b825b9392505050565b60806040519081016040526004815b600081526000199190910190602001816119e7579050509056003665eb6c1d573fea820e2e5da7f05de75fb2ee0f16809ffa651bb1e007adaa79a165627a7a723058207621401dd7920b67023717738b55148ef05fe83e1f4cf378f026c8b11329be5d0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000efabe332d31c3982b76f8630a306c960169bd5b3
-----Decoded View---------------
Arg [0] : _cryptogsAddress (address): 0xeFabE332D31c3982B76F8630a306C960169bD5b3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000efabe332d31c3982b76f8630a306c960169bd5b3
Swarm Source
bzzr://7621401dd7920b67023717738b55148ef05fe83e1f4cf378f026c8b11329be5d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.