Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 107558083 | 867 days ago | 0 ETH | ||||
| 107558083 | 867 days ago | 0 ETH | ||||
| 107558083 | 867 days ago | 0 ETH | ||||
| 107558083 | 867 days ago | 0 ETH | ||||
| 107558015 | 867 days ago | 0 ETH | ||||
| 107558015 | 867 days ago | 0 ETH | ||||
| 107558015 | 867 days ago | 0 ETH | ||||
| 107558015 | 867 days ago | 0 ETH | ||||
| 107557954 | 867 days ago | 0 ETH | ||||
| 107557954 | 867 days ago | 0 ETH | ||||
| 107557954 | 867 days ago | 0 ETH | ||||
| 107557954 | 867 days ago | 0 ETH | ||||
| 107557918 | 867 days ago | 0 ETH | ||||
| 107557918 | 867 days ago | 0 ETH | ||||
| 107557918 | 867 days ago | 0 ETH | ||||
| 107557918 | 867 days ago | 0 ETH | ||||
| 107557796 | 867 days ago | 0 ETH | ||||
| 107557796 | 867 days ago | 0 ETH | ||||
| 107557796 | 867 days ago | 0 ETH | ||||
| 107557796 | 867 days ago | 0 ETH | ||||
| 107557796 | 867 days ago | 0 ETH | ||||
| 107556796 | 867 days ago | 0 ETH | ||||
| 107556796 | 867 days ago | 0 ETH | ||||
| 107556796 | 867 days ago | 0 ETH | ||||
| 107556796 | 867 days ago | 0 ETH |
Cross-Chain Transactions
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
Contract ABI
API[{"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 | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.