ETH Price: $3,813.96 (+5.43%)

Contract

0x0A3B938d51F1b6d7bf960A0Cb6Ac9f1154D0008c

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1075580832023-07-30 11:02:23493 days ago1690714943
0x0A3B938d...154D0008c
0 ETH
1075580832023-07-30 11:02:23493 days ago1690714943
0x0A3B938d...154D0008c
0 ETH
1075580832023-07-30 11:02:23493 days ago1690714943
0x0A3B938d...154D0008c
0 ETH
1075580832023-07-30 11:02:23493 days ago1690714943
0x0A3B938d...154D0008c
0 ETH
1075580152023-07-30 11:00:07493 days ago1690714807
0x0A3B938d...154D0008c
0 ETH
1075580152023-07-30 11:00:07493 days ago1690714807
0x0A3B938d...154D0008c
0 ETH
1075580152023-07-30 11:00:07493 days ago1690714807
0x0A3B938d...154D0008c
0 ETH
1075580152023-07-30 11:00:07493 days ago1690714807
0x0A3B938d...154D0008c
0 ETH
1075579542023-07-30 10:58:05493 days ago1690714685
0x0A3B938d...154D0008c
0 ETH
1075579542023-07-30 10:58:05493 days ago1690714685
0x0A3B938d...154D0008c
0 ETH
1075579542023-07-30 10:58:05493 days ago1690714685
0x0A3B938d...154D0008c
0 ETH
1075579542023-07-30 10:58:05493 days ago1690714685
0x0A3B938d...154D0008c
0 ETH
1075579182023-07-30 10:56:53493 days ago1690714613
0x0A3B938d...154D0008c
0 ETH
1075579182023-07-30 10:56:53493 days ago1690714613
0x0A3B938d...154D0008c
0 ETH
1075579182023-07-30 10:56:53493 days ago1690714613
0x0A3B938d...154D0008c
0 ETH
1075579182023-07-30 10:56:53493 days ago1690714613
0x0A3B938d...154D0008c
0 ETH
1075577962023-07-30 10:52:49493 days ago1690714369
0x0A3B938d...154D0008c
0 ETH
1075577962023-07-30 10:52:49493 days ago1690714369
0x0A3B938d...154D0008c
0 ETH
1075577962023-07-30 10:52:49493 days ago1690714369
0x0A3B938d...154D0008c
0 ETH
1075577962023-07-30 10:52:49493 days ago1690714369
0x0A3B938d...154D0008c
0 ETH
1075577962023-07-30 10:52:49493 days ago1690714369
0x0A3B938d...154D0008c
0 ETH
1075567962023-07-30 10:19:29493 days ago1690712369
0x0A3B938d...154D0008c
0 ETH
1075567962023-07-30 10:19:29493 days ago1690712369
0x0A3B938d...154D0008c
0 ETH
1075567962023-07-30 10:19:29493 days ago1690712369
0x0A3B938d...154D0008c
0 ETH
1075567962023-07-30 10:19:29493 days ago1690712369
0x0A3B938d...154D0008c
0 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TarotSolidlyPriceOracleV2

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 3 : TarotSolidlyPriceOracleV2.sol
pragma solidity =0.5.16;

import "./interfaces/ISolidlyBaseV1Pair.sol";
import "./interfaces/ITarotSolidlyPriceOracleV2.sol";

contract TarotSolidlyPriceOracleV2 is ITarotSolidlyPriceOracleV2 {
    uint32 public constant MIN_T = 900;

    function safe112(uint256 n) internal pure returns (uint112) {
        require(n < 2**112, "TarotSolidlyPriceOracleV2: SAFE112");
        return uint112(n);
    }

    function getResult(address pair) external returns (uint112 reserve0, uint112 reserve1, uint32 T) {
        (
            uint256 reserve0CumulativeCurrent,
            uint256 reserve1CumulativeCurrent,
            uint256 blockTimestampCurrent
        ) = ISolidlyBaseV1Pair(pair).currentCumulativePrices();
        uint256 observationLength = ISolidlyBaseV1Pair(pair).observationLength();
        (
            uint256 blockTimestampLast,
            uint256 reserve0CumulativeLast,
            uint256 reserve1CumulativeLast
        ) = ISolidlyBaseV1Pair(pair).observations(observationLength - 1);
        T = uint32(blockTimestampCurrent - blockTimestampLast);
        if (T < MIN_T) {
            (
                blockTimestampLast,
                reserve0CumulativeLast,
                reserve1CumulativeLast
            ) = ISolidlyBaseV1Pair(pair).observations(observationLength - 2);
            T = uint32(blockTimestampCurrent - blockTimestampLast);
        }
        reserve0 = safe112((reserve0CumulativeCurrent - reserve0CumulativeLast) / T);
        reserve1 = safe112((reserve1CumulativeCurrent - reserve1CumulativeLast) / T);
    }
}

File 2 of 3 : ISolidlyBaseV1Pair.sol
pragma solidity >=0.5;

interface ISolidlyBaseV1Pair {
    function getReserves()
        external
        view
        returns (
            uint112 _reserve0,
            uint112 _reserve1,
            uint32 _blockTimestampLast
        );

    function reserve0CumulativeLast() external view returns (uint256);

    function reserve1CumulativeLast() external view returns (uint256);

    function currentCumulativePrices()
        external
        view
        returns (
            uint256 reserve0Cumulative,
            uint256 reserve1Cumulative,
            uint256 blockTimestamp
        );

    function stable() external view returns (bool);

    function observationLength() external view returns (uint256);

    function observations(uint256) external view returns (uint256 timestamp, uint256 reserve0Cumulative, uint256 reserve1Cumulative);
}

File 3 of 3 : ITarotSolidlyPriceOracleV2.sol
pragma solidity >=0.5;

interface ITarotSolidlyPriceOracleV2 {
    function MIN_T() external pure returns (uint32);

    function getResult(address pair) external returns (uint112 reserve0, uint112 reserve1, uint32 T);
}

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"MIN_T","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"getResult","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"T","type":"uint32"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610478806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063446a37e01461003b578063f51b5531146100a5575b600080fd5b61006e6004803603602081101561005157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100c6565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6100ad6103ae565b6040805163ffffffff9092168252519081900360200190f35b6000806000806000808673ffffffffffffffffffffffffffffffffffffffff16631df8c7176040518163ffffffff1660e01b815260040160606040518083038186803b15801561011557600080fd5b505afa158015610129573d6000803e3d6000fd5b505050506040513d606081101561013f57600080fd5b50805160208083015160409384015184517febeb31db0000000000000000000000000000000000000000000000000000000081529451939750909550935060009273ffffffffffffffffffffffffffffffffffffffff8b169263ebeb31db92600480840193919291829003018186803b1580156101bb57600080fd5b505afa1580156101cf573d6000803e3d6000fd5b505050506040513d60208110156101e557600080fd5b5051604080517f252c09d70000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301600482015290519192506000918291829173ffffffffffffffffffffffffffffffffffffffff8d169163252c09d7916024808301926060929190829003018186803b15801561027f57600080fd5b505afa158015610293573d6000803e3d6000fd5b505050506040513d60608110156102a957600080fd5b50805160208201516040909201518188039a50909450909250905061038463ffffffff8916101561036e578a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7600286036040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561032857600080fd5b505afa15801561033c573d6000803e3d6000fd5b505050506040513d606081101561035257600080fd5b50805160208201516040909201518188039a5090945090925090505b6103888863ffffffff168389038161038257fe5b046103b4565b995061039e8863ffffffff168288038161038257fe5b9850505050505050509193909250565b61038481565b60006e010000000000000000000000000000821061041d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806104226022913960400191505060405180910390fd5b509056fe5461726f74536f6c69646c7950726963654f7261636c6556323a2053414645313132a265627a7a7231582036fff6f57eaa5fc9d25d80102b4b4294057d995dec474c0c1518776b425b8b9d64736f6c63430005100032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063446a37e01461003b578063f51b5531146100a5575b600080fd5b61006e6004803603602081101561005157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100c6565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6100ad6103ae565b6040805163ffffffff9092168252519081900360200190f35b6000806000806000808673ffffffffffffffffffffffffffffffffffffffff16631df8c7176040518163ffffffff1660e01b815260040160606040518083038186803b15801561011557600080fd5b505afa158015610129573d6000803e3d6000fd5b505050506040513d606081101561013f57600080fd5b50805160208083015160409384015184517febeb31db0000000000000000000000000000000000000000000000000000000081529451939750909550935060009273ffffffffffffffffffffffffffffffffffffffff8b169263ebeb31db92600480840193919291829003018186803b1580156101bb57600080fd5b505afa1580156101cf573d6000803e3d6000fd5b505050506040513d60208110156101e557600080fd5b5051604080517f252c09d70000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301600482015290519192506000918291829173ffffffffffffffffffffffffffffffffffffffff8d169163252c09d7916024808301926060929190829003018186803b15801561027f57600080fd5b505afa158015610293573d6000803e3d6000fd5b505050506040513d60608110156102a957600080fd5b50805160208201516040909201518188039a50909450909250905061038463ffffffff8916101561036e578a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7600286036040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561032857600080fd5b505afa15801561033c573d6000803e3d6000fd5b505050506040513d606081101561035257600080fd5b50805160208201516040909201518188039a5090945090925090505b6103888863ffffffff168389038161038257fe5b046103b4565b995061039e8863ffffffff168288038161038257fe5b9850505050505050509193909250565b61038481565b60006e010000000000000000000000000000821061041d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806104226022913960400191505060405180910390fd5b509056fe5461726f74536f6c69646c7950726963654f7261636c6556323a2053414645313132a265627a7a7231582036fff6f57eaa5fc9d25d80102b4b4294057d995dec474c0c1518776b425b8b9d64736f6c63430005100032

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
[ 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.