Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
107558083 | 493 days ago | 0 ETH | ||||
107558083 | 493 days ago | 0 ETH | ||||
107558083 | 493 days ago | 0 ETH | ||||
107558083 | 493 days ago | 0 ETH | ||||
107558015 | 493 days ago | 0 ETH | ||||
107558015 | 493 days ago | 0 ETH | ||||
107558015 | 493 days ago | 0 ETH | ||||
107558015 | 493 days ago | 0 ETH | ||||
107557954 | 493 days ago | 0 ETH | ||||
107557954 | 493 days ago | 0 ETH | ||||
107557954 | 493 days ago | 0 ETH | ||||
107557954 | 493 days ago | 0 ETH | ||||
107557918 | 493 days ago | 0 ETH | ||||
107557918 | 493 days ago | 0 ETH | ||||
107557918 | 493 days ago | 0 ETH | ||||
107557918 | 493 days ago | 0 ETH | ||||
107557796 | 493 days ago | 0 ETH | ||||
107557796 | 493 days ago | 0 ETH | ||||
107557796 | 493 days ago | 0 ETH | ||||
107557796 | 493 days ago | 0 ETH | ||||
107557796 | 493 days ago | 0 ETH | ||||
107556796 | 493 days ago | 0 ETH | ||||
107556796 | 493 days ago | 0 ETH | ||||
107556796 | 493 days ago | 0 ETH | ||||
107556796 | 493 days ago | 0 ETH |
Loading...
Loading
Contract Name:
TarotSolidlyPriceOracleV2
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
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); } }
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); }
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); }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405234801561001057600080fd5b50610478806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063446a37e01461003b578063f51b5531146100a5575b600080fd5b61006e6004803603602081101561005157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100c6565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6100ad6103ae565b6040805163ffffffff9092168252519081900360200190f35b6000806000806000808673ffffffffffffffffffffffffffffffffffffffff16631df8c7176040518163ffffffff1660e01b815260040160606040518083038186803b15801561011557600080fd5b505afa158015610129573d6000803e3d6000fd5b505050506040513d606081101561013f57600080fd5b50805160208083015160409384015184517febeb31db0000000000000000000000000000000000000000000000000000000081529451939750909550935060009273ffffffffffffffffffffffffffffffffffffffff8b169263ebeb31db92600480840193919291829003018186803b1580156101bb57600080fd5b505afa1580156101cf573d6000803e3d6000fd5b505050506040513d60208110156101e557600080fd5b5051604080517f252c09d70000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301600482015290519192506000918291829173ffffffffffffffffffffffffffffffffffffffff8d169163252c09d7916024808301926060929190829003018186803b15801561027f57600080fd5b505afa158015610293573d6000803e3d6000fd5b505050506040513d60608110156102a957600080fd5b50805160208201516040909201518188039a50909450909250905061038463ffffffff8916101561036e578a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7600286036040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561032857600080fd5b505afa15801561033c573d6000803e3d6000fd5b505050506040513d606081101561035257600080fd5b50805160208201516040909201518188039a5090945090925090505b6103888863ffffffff168389038161038257fe5b046103b4565b995061039e8863ffffffff168288038161038257fe5b9850505050505050509193909250565b61038481565b60006e010000000000000000000000000000821061041d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806104226022913960400191505060405180910390fd5b509056fe5461726f74536f6c69646c7950726963654f7261636c6556323a2053414645313132a265627a7a7231582036fff6f57eaa5fc9d25d80102b4b4294057d995dec474c0c1518776b425b8b9d64736f6c63430005100032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063446a37e01461003b578063f51b5531146100a5575b600080fd5b61006e6004803603602081101561005157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100c6565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6100ad6103ae565b6040805163ffffffff9092168252519081900360200190f35b6000806000806000808673ffffffffffffffffffffffffffffffffffffffff16631df8c7176040518163ffffffff1660e01b815260040160606040518083038186803b15801561011557600080fd5b505afa158015610129573d6000803e3d6000fd5b505050506040513d606081101561013f57600080fd5b50805160208083015160409384015184517febeb31db0000000000000000000000000000000000000000000000000000000081529451939750909550935060009273ffffffffffffffffffffffffffffffffffffffff8b169263ebeb31db92600480840193919291829003018186803b1580156101bb57600080fd5b505afa1580156101cf573d6000803e3d6000fd5b505050506040513d60208110156101e557600080fd5b5051604080517f252c09d70000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301600482015290519192506000918291829173ffffffffffffffffffffffffffffffffffffffff8d169163252c09d7916024808301926060929190829003018186803b15801561027f57600080fd5b505afa158015610293573d6000803e3d6000fd5b505050506040513d60608110156102a957600080fd5b50805160208201516040909201518188039a50909450909250905061038463ffffffff8916101561036e578a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7600286036040518263ffffffff1660e01b81526004018082815260200191505060606040518083038186803b15801561032857600080fd5b505afa15801561033c573d6000803e3d6000fd5b505050506040513d606081101561035257600080fd5b50805160208201516040909201518188039a5090945090925090505b6103888863ffffffff168389038161038257fe5b046103b4565b995061039e8863ffffffff168288038161038257fe5b9850505050505050509193909250565b61038481565b60006e010000000000000000000000000000821061041d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806104226022913960400191505060405180910390fd5b509056fe5461726f74536f6c69646c7950726963654f7261636c6556323a2053414645313132a265627a7a7231582036fff6f57eaa5fc9d25d80102b4b4294057d995dec474c0c1518776b425b8b9d64736f6c63430005100032
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.