ETH Price: $2,417.11 (+7.51%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Verify Uniswap V...170333392023-04-12 17:16:23803 days ago1681319783IN
0x6EeE56c1...31757c024
0 ETH0.0117104122.14860869
Verify Uniswap V...170195952023-04-10 18:36:59805 days ago1681151819IN
0x6EeE56c1...31757c024
0 ETH0.0128131325.18294108
Verify Uniswap V...169868252023-04-06 2:58:23810 days ago1680749903IN
0x6EeE56c1...31757c024
0 ETH0.0148974829.27952873
Verify Uniswap V...169868222023-04-06 2:57:47810 days ago1680749867IN
0x6EeE56c1...31757c024
0 ETH0.0165121532.45299896
Verify Uniswap V...169868182023-04-06 2:56:59810 days ago1680749819IN
0x6EeE56c1...31757c024
0 ETH0.0145256328.54869852
Verify Uniswap V...169868142023-04-06 2:56:11810 days ago1680749771IN
0x6EeE56c1...31757c024
0 ETH0.0142947528.09492705
Verify Uniswap V...169868102023-04-06 2:55:23810 days ago1680749723IN
0x6EeE56c1...31757c024
0 ETH0.0147861629.06074316
Verify Uniswap V...169868052023-04-06 2:54:23810 days ago1680749663IN
0x6EeE56c1...31757c024
0 ETH0.0161906631.82115121
Verify Uniswap V...169868012023-04-06 2:53:35810 days ago1680749615IN
0x6EeE56c1...31757c024
0 ETH0.0157396630.93475975
Verify Uniswap V...169867982023-04-06 2:52:59810 days ago1680749579IN
0x6EeE56c1...31757c024
0 ETH0.0157818931.01775817
Verify Uniswap V...169867912023-04-06 2:51:35810 days ago1680749495IN
0x6EeE56c1...31757c024
0 ETH0.0179100435.20042396
Verify Uniswap V...169867842023-04-06 2:50:11810 days ago1680749411IN
0x6EeE56c1...31757c024
0 ETH0.0200115439.33071378
Verify Uniswap V...167647602023-03-05 21:06:59841 days ago1678050419IN
0x6EeE56c1...31757c024
0 ETH0.0164040732.24058842
Verify Uniswap V...167647312023-03-05 21:01:11841 days ago1678050071IN
0x6EeE56c1...31757c024
0 ETH0.0192153237.76582524
Verify Uniswap V...166857202023-02-22 18:21:23852 days ago1677090083IN
0x6EeE56c1...31757c024
0 ETH0.024933849.00492388
Verify Uniswap V...166830732023-02-22 9:22:59853 days ago1677057779IN
0x6EeE56c1...31757c024
0 ETH0.0141445627.79974592
Verify Uniswap V...166824502023-02-22 7:16:47853 days ago1677050207IN
0x6EeE56c1...31757c024
0 ETH0.013493726.52053802
Verify Uniswap V...166818692023-02-22 5:19:47853 days ago1677043187IN
0x6EeE56c1...31757c024
0 ETH0.0128610325.27709521
Verify Uniswap V...166784382023-02-21 17:43:23853 days ago1677001403IN
0x6EeE56c1...31757c024
0 ETH0.0234578246.10404329
Verify Uniswap V...166584592023-02-18 22:23:47856 days ago1676759027IN
0x6EeE56c1...31757c024
0 ETH0.0093130718.30393221
Verify Uniswap V...166540572023-02-18 7:31:47857 days ago1676705507IN
0x6EeE56c1...31757c024
0 ETH0.0144693628.43810871
Verify Uniswap V...166159232023-02-12 23:21:23862 days ago1676244083IN
0x6EeE56c1...31757c024
0 ETH0.0079804615.68481166
Verify Uniswap V...166087602023-02-11 23:19:47863 days ago1676157587IN
0x6EeE56c1...31757c024
0 ETH0.0088053217.3059875
Verify Uniswap V...165817592023-02-08 4:45:11867 days ago1675831511IN
0x6EeE56c1...31757c024
0 ETH0.0152164729.90647966
Verify Uniswap V...165751382023-02-07 6:32:35868 days ago1675751555IN
0x6EeE56c1...31757c024
0 ETH0.0115826122.76449281
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

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:
UniswapV2Twap

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 16000 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
// WARNING! This smart contract and the associated zk-SNARK verifiers have not been audited.
// DO NOT USE THIS CONTRACT FOR PRODUCTION
pragma solidity ^0.8.12;

import "./IAxiomV0.sol";

contract UniswapV2Twap {
    address private axiomAddress;    
    address private verifierAddress;

    // mapping between packed [startBlockNumber (32) || endBlockNumber (32)] and twapPri
    mapping(uint64 => uint256) public twapPris;

    event UniswapV2TwapProof(uint32 startBlockNumber, uint32 endBlockNumber, uint256 twapPri);

    constructor(address _axiomAddress, address _verifierAddress) {
        axiomAddress = _axiomAddress;        
        verifierAddress = _verifierAddress;
    }

    function verifyUniswapV2Twap(
        IAxiomV0.BlockHashWitness calldata startBlock,
        IAxiomV0.BlockHashWitness calldata endBlock,
        bytes calldata proof
    ) external {
        if (block.number - startBlock.blockNumber <= 256) {
            require(IAxiomV0(axiomAddress).isRecentBlockHashValid(startBlock.blockNumber, startBlock.claimedBlockHash),
                    "Starting block hash was not validated in cache");
        } else {
            require(IAxiomV0(axiomAddress).isBlockHashValid(startBlock),
                    "Starting block hash was not validated in cache");
        }
        if (block.number - endBlock.blockNumber <= 256) {
            require(IAxiomV0(axiomAddress).isRecentBlockHashValid(endBlock.blockNumber, endBlock.claimedBlockHash),
                    "Ending block hash was not validated in cache");
        } else {
            require(IAxiomV0(axiomAddress).isBlockHashValid(endBlock),
                    "Ending block hash was not validated in cache");
        }

        // Extract instances from proof 
        uint256 _startBlockHash   = uint256(bytes32(proof[384    :384+32 ])) << 128 | 
                                            uint128(bytes16(proof[384+48 :384+64 ]));
        uint256 _endBlockHash     = uint256(bytes32(proof[384+64 :384+96 ])) << 128 | 
                                            uint128(bytes16(proof[384+112:384+128]));
        uint256 _startBlockNumber = uint256(bytes32(proof[384+128:384+160]));
        uint256 _endBlockNumber   = uint256(bytes32(proof[384+160:384+192]));
        uint256 _twapPri          = uint256(bytes32(proof[384+192:384+224]));

        // Check instance values
        if (_startBlockHash != uint256(startBlock.claimedBlockHash)) {
            revert("Invalid startBlockHash in instance");
        }
        if (_endBlockHash != uint256(endBlock.claimedBlockHash)) {
            revert("Invalid endBlockHash in instance");
        }
        if (_startBlockNumber != startBlock.blockNumber) {
            revert("Invalid startBlockNumber");
        }
        if (_endBlockNumber != endBlock.blockNumber) {
            revert("Invalid endBlockNumber");
        }        

        (bool success, ) = verifierAddress.call(proof);
        if (!success) {
            revert("Proof verification failed");
        }
        twapPris[uint64(uint64(startBlock.blockNumber) << 32 | endBlock.blockNumber)] = _twapPri;
        emit UniswapV2TwapProof(startBlock.blockNumber, endBlock.blockNumber, _twapPri);        
    }
}

// SPDX-License-Identifier: MIT
// WARNING! This smart contract and the associated zk-SNARK verifiers have not been audited.
// DO NOT USE THIS CONTRACT FOR PRODUCTION
pragma solidity ^0.8.12;

interface IAxiomV0 {
    // historicalRoots(startBlockNumber) is 0 unless (startBlockNumber % 1024 == 0)
    // historicalRoots(startBlockNumber) holds the hash of
    //   prevHash || root || numFinal
    // where
    // - prevHash is the parent hash of block startBlockNumber
    // - root is the partial Merkle root of blockhashes of block numbers
    //   [startBlockNumber, startBlockNumber + 1024)
    //   where unconfirmed block hashes are 0's
    // - numFinal is the number of confirmed consecutive roots in [startBlockNumber, startBlockNumber + 1024)
    function historicalRoots(uint32 startBlockNumber) external view returns (bytes32);

    event UpdateEvent(uint32 startBlockNumber, bytes32 prevHash, bytes32 root, uint32 numFinal);

    struct BlockHashWitness {
        uint32 blockNumber;
        bytes32 claimedBlockHash;
        bytes32 prevHash;
        uint32 numFinal;
        bytes32[10] merkleProof;
    }

    // returns Merkle root of a tree of depth `depth` with 0's as leaves
    function getEmptyHash(uint256 depth) external pure returns (bytes32);

    // update blocks in the "backward" direction, anchoring on a "recent" end blockhash that is within last 256 blocks
    // * startBlockNumber must be a multiple of 1024
    // * roots[idx] is the root of a Merkle tree of height 2**(10 - idx) in a Merkle mountain
    //   range which stores block hashes in the interval [startBlockNumber, endBlockNumber]
    function updateRecent(bytes calldata proofData) external;

    // update older blocks in "backwards" direction, anchoring on more recent trusted blockhash
    // must be batch of 1024 blocks
    function updateOld(bytes32 nextRoot, uint32 nextNumFinal, bytes calldata proofData) external;

    // Update older blocks in "backwards" direction, anchoring on more recent trusted blockhash
    // Must be batch of 128 * 1024 blocks
    // `roots` should contain 128 merkle roots, one per batch of 1024 blocks
    // For all except the last batch of 1024 blocks, a Merkle inclusion proof of the `endHash` of the batch
    // must be provided, with respect to the corresponding Merkle root in `roots`
    function updateHistorical(
        bytes32 nextRoot,
        uint32 nextNumFinal,
        bytes32[128] calldata roots,
        bytes32[11][127] calldata endHashProofs,
        bytes calldata proofData
    ) external;

    function isRecentBlockHashValid(uint32 blockNumber, bytes32 claimedBlockHash) external view returns (bool);
    function isBlockHashValid(BlockHashWitness calldata witness) external view returns (bool);
}

Settings
{
  "remappings": [
    "ds-test/=../../lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=/home/ubuntu/axiom-apps/lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=../../lib/forge-std/src/",
    "openzeppelin-contracts/=../../lib/openzeppelin-contracts/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 16000,
    "details": {
      "constantOptimizer": true,
      "yul": true
    }
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_axiomAddress","type":"address"},{"internalType":"address","name":"_verifierAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"startBlockNumber","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"endBlockNumber","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"twapPri","type":"uint256"}],"name":"UniswapV2TwapProof","type":"event"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"twapPris","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"bytes32","name":"claimedBlockHash","type":"bytes32"},{"internalType":"bytes32","name":"prevHash","type":"bytes32"},{"internalType":"uint32","name":"numFinal","type":"uint32"},{"internalType":"bytes32[10]","name":"merkleProof","type":"bytes32[10]"}],"internalType":"struct IAxiomV0.BlockHashWitness","name":"startBlock","type":"tuple"},{"components":[{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"bytes32","name":"claimedBlockHash","type":"bytes32"},{"internalType":"bytes32","name":"prevHash","type":"bytes32"},{"internalType":"uint32","name":"numFinal","type":"uint32"},{"internalType":"bytes32[10]","name":"merkleProof","type":"bytes32[10]"}],"internalType":"struct IAxiomV0.BlockHashWitness","name":"endBlock","type":"tuple"},{"internalType":"bytes","name":"proof","type":"bytes"}],"name":"verifyUniswapV2Twap","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610d7d380380610d7d83398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b610cbf806100be6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063accede1f1461003b578063d63af67714610050575b600080fd5b61004e610049366004610a20565b610082565b005b61007061005e366004610ab3565b60026020526000908152604090205481565b60405190815260200160405180910390f35b6101006100926020860186610afd565b6100a29063ffffffff1643610b18565b116101f05760005473ffffffffffffffffffffffffffffffffffffffff1663c1f7cae26100d26020870187610afd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260208701356024820152604401602060405180830381865afa158015610136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015a9190610b58565b6101eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5374617274696e6720626c6f636b206861736820776173206e6f742076616c6960448201527f646174656420696e20636163686500000000000000000000000000000000000060648201526084015b60405180910390fd5b610313565b6000546040517f6f193b8300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690636f193b8390610246908790600401610b7a565b602060405180830381865afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102879190610b58565b610313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5374617274696e6720626c6f636b206861736820776173206e6f742076616c6960448201527f646174656420696e20636163686500000000000000000000000000000000000060648201526084016101e2565b6101006103236020850185610afd565b6103339063ffffffff1643610b18565b1161047c5760005473ffffffffffffffffffffffffffffffffffffffff1663c1f7cae26103636020860186610afd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260208601356024820152604401602060405180830381865afa1580156103c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103eb9190610b58565b610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f456e64696e6720626c6f636b206861736820776173206e6f742076616c69646160448201527f74656420696e206361636865000000000000000000000000000000000000000060648201526084016101e2565b61059f565b6000546040517f6f193b8300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690636f193b83906104d2908690600401610b7a565b602060405180830381865afa1580156104ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105139190610b58565b61059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f456e64696e6720626c6f636b206861736820776173206e6f742076616c69646160448201527f74656420696e206361636865000000000000000000000000000000000000000060648201526084016101e2565b60006105b16101c06101b08486610bcb565b6105ba91610bf5565b608090811c906105d06101a06101808688610bcb565b6105d991610c3d565b901b17905060006105f06102006101f08587610bcb565b6105f991610bf5565b608090811c9061060f6101e06101c08789610bcb565b61061891610c3d565b901b179050600061062f6102206102008688610bcb565b61063891610c3d565b9050600061064c6102406102208789610bcb565b61065591610c3d565b90506000610669610260610240888a610bcb565b61067291610c3d565b905060208901358514610707576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f496e76616c6964207374617274426c6f636b4861736820696e20696e7374616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016101e2565b60208801358414610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f496e76616c696420656e64426c6f636b4861736820696e20696e7374616e636560448201526064016101e2565b61078160208a018a610afd565b63ffffffff1683146107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c6964207374617274426c6f636b4e756d626572000000000000000060448201526064016101e2565b6107fc6020890189610afd565b63ffffffff16821461086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c696420656e64426c6f636b4e756d6265720000000000000000000060448201526064016101e2565b60015460405160009173ffffffffffffffffffffffffffffffffffffffff1690610897908a908a90610c79565b6000604051808303816000865af19150503d80600081146108d4576040519150601f19603f3d011682016040523d82523d6000602084013e6108d9565b606091505b5050905080610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50726f6f6620766572696669636174696f6e206661696c65640000000000000060448201526064016101e2565b816002600061095660208d018d610afd565b63ffffffff1660208e60000160208101906109719190610afd565b63ffffffff16901b1767ffffffffffffffff168152602080820192909252604001600020919091557f1a09f26262f19c21874102bfcb7b0c89655b81e9b3c28e26109c370ca89549c0906109c7908c018c610afd565b6109d460208c018c610afd565b6040805163ffffffff9384168152929091166020830152810184905260600160405180910390a150505050505050505050565b60006101c08284031215610a1a57600080fd5b50919050565b6000806000806103a08587031215610a3757600080fd5b610a418686610a07565b9350610a51866101c08701610a07565b925061038085013567ffffffffffffffff80821115610a6f57600080fd5b818701915087601f830112610a8357600080fd5b813581811115610a9257600080fd5b886020828501011115610aa457600080fd5b95989497505060200194505050565b600060208284031215610ac557600080fd5b813567ffffffffffffffff81168114610add57600080fd5b9392505050565b803563ffffffff81168114610af857600080fd5b919050565b600060208284031215610b0f57600080fd5b610add82610ae4565b81810381811115610b52577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b600060208284031215610b6a57600080fd5b81518015158114610add57600080fd5b6101c0810163ffffffff80610b8e85610ae4565b168352602084013560208401526040840135604084015280610bb260608601610ae4565b1660608401525061014060808401608084013792915050565b60008085851115610bdb57600080fd5b83861115610be857600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015610c355780818660100360031b1b83161692505b505092915050565b80356020831015610b52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b818382376000910190815291905056fea26469706673582212207eb30ee34d613c758b40218f8650258d9af5c84e5b84c8ffa60673caa0910e4864736f6c6343000811003300000000000000000000000001d5b501c1fc0121e1411970fb79c322737025c20000000000000000000000000792878cb9cfd5f2ef0f90e3090255684ac3ae04

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063accede1f1461003b578063d63af67714610050575b600080fd5b61004e610049366004610a20565b610082565b005b61007061005e366004610ab3565b60026020526000908152604090205481565b60405190815260200160405180910390f35b6101006100926020860186610afd565b6100a29063ffffffff1643610b18565b116101f05760005473ffffffffffffffffffffffffffffffffffffffff1663c1f7cae26100d26020870187610afd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260208701356024820152604401602060405180830381865afa158015610136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015a9190610b58565b6101eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5374617274696e6720626c6f636b206861736820776173206e6f742076616c6960448201527f646174656420696e20636163686500000000000000000000000000000000000060648201526084015b60405180910390fd5b610313565b6000546040517f6f193b8300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690636f193b8390610246908790600401610b7a565b602060405180830381865afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102879190610b58565b610313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5374617274696e6720626c6f636b206861736820776173206e6f742076616c6960448201527f646174656420696e20636163686500000000000000000000000000000000000060648201526084016101e2565b6101006103236020850185610afd565b6103339063ffffffff1643610b18565b1161047c5760005473ffffffffffffffffffffffffffffffffffffffff1663c1f7cae26103636020860186610afd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260208601356024820152604401602060405180830381865afa1580156103c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103eb9190610b58565b610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f456e64696e6720626c6f636b206861736820776173206e6f742076616c69646160448201527f74656420696e206361636865000000000000000000000000000000000000000060648201526084016101e2565b61059f565b6000546040517f6f193b8300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690636f193b83906104d2908690600401610b7a565b602060405180830381865afa1580156104ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105139190610b58565b61059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f456e64696e6720626c6f636b206861736820776173206e6f742076616c69646160448201527f74656420696e206361636865000000000000000000000000000000000000000060648201526084016101e2565b60006105b16101c06101b08486610bcb565b6105ba91610bf5565b608090811c906105d06101a06101808688610bcb565b6105d991610c3d565b901b17905060006105f06102006101f08587610bcb565b6105f991610bf5565b608090811c9061060f6101e06101c08789610bcb565b61061891610c3d565b901b179050600061062f6102206102008688610bcb565b61063891610c3d565b9050600061064c6102406102208789610bcb565b61065591610c3d565b90506000610669610260610240888a610bcb565b61067291610c3d565b905060208901358514610707576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f496e76616c6964207374617274426c6f636b4861736820696e20696e7374616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016101e2565b60208801358414610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f496e76616c696420656e64426c6f636b4861736820696e20696e7374616e636560448201526064016101e2565b61078160208a018a610afd565b63ffffffff1683146107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c6964207374617274426c6f636b4e756d626572000000000000000060448201526064016101e2565b6107fc6020890189610afd565b63ffffffff16821461086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c696420656e64426c6f636b4e756d6265720000000000000000000060448201526064016101e2565b60015460405160009173ffffffffffffffffffffffffffffffffffffffff1690610897908a908a90610c79565b6000604051808303816000865af19150503d80600081146108d4576040519150601f19603f3d011682016040523d82523d6000602084013e6108d9565b606091505b5050905080610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50726f6f6620766572696669636174696f6e206661696c65640000000000000060448201526064016101e2565b816002600061095660208d018d610afd565b63ffffffff1660208e60000160208101906109719190610afd565b63ffffffff16901b1767ffffffffffffffff168152602080820192909252604001600020919091557f1a09f26262f19c21874102bfcb7b0c89655b81e9b3c28e26109c370ca89549c0906109c7908c018c610afd565b6109d460208c018c610afd565b6040805163ffffffff9384168152929091166020830152810184905260600160405180910390a150505050505050505050565b60006101c08284031215610a1a57600080fd5b50919050565b6000806000806103a08587031215610a3757600080fd5b610a418686610a07565b9350610a51866101c08701610a07565b925061038085013567ffffffffffffffff80821115610a6f57600080fd5b818701915087601f830112610a8357600080fd5b813581811115610a9257600080fd5b886020828501011115610aa457600080fd5b95989497505060200194505050565b600060208284031215610ac557600080fd5b813567ffffffffffffffff81168114610add57600080fd5b9392505050565b803563ffffffff81168114610af857600080fd5b919050565b600060208284031215610b0f57600080fd5b610add82610ae4565b81810381811115610b52577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b600060208284031215610b6a57600080fd5b81518015158114610add57600080fd5b6101c0810163ffffffff80610b8e85610ae4565b168352602084013560208401526040840135604084015280610bb260608601610ae4565b1660608401525061014060808401608084013792915050565b60008085851115610bdb57600080fd5b83861115610be857600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015610c355780818660100360031b1b83161692505b505092915050565b80356020831015610b52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b818382376000910190815291905056fea26469706673582212207eb30ee34d613c758b40218f8650258d9af5c84e5b84c8ffa60673caa0910e4864736f6c63430008110033

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

00000000000000000000000001d5b501c1fc0121e1411970fb79c322737025c20000000000000000000000000792878cb9cfd5f2ef0f90e3090255684ac3ae04

-----Decoded View---------------
Arg [0] : _axiomAddress (address): 0x01d5b501C1fc0121e1411970fb79c322737025c2
Arg [1] : _verifierAddress (address): 0x0792878CB9Cfd5f2Ef0F90E3090255684Ac3AE04

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000001d5b501c1fc0121e1411970fb79c322737025c2
Arg [1] : 0000000000000000000000000792878cb9cfd5f2ef0f90e3090255684ac3ae04


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.