Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
SHIELDOracle
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "./interfaces/IPool.sol"; contract SHIELDOracle { address public token0; address public token1; IPool public pair; constructor(IPool _pair) { pair = _pair; token0 = pair.token0(); token1 = pair.token1(); } function update() external { pair.sync(); } function quote( address _token, uint256 _amountIn, uint256 _granularity ) external view returns (uint256 amountOut) { require(_token == token0 || _token == token1, "Oracle: Invalid token"); amountOut = _quote(_token, _amountIn, _granularity); } function _quote( address tokenIn, uint256 amountIn, uint256 granularity // number of observations to query ) internal view returns (uint256 amountOut) { uint256 observationLength = IPool(pair).observationLength(); require( granularity > 0 && granularity <= observationLength, "Oracle: Invalid granularity" ); amountOut = IPool(pair).quote(tokenIn, amountIn, granularity); require(amountOut > 0, "Oracle: Zero price returned"); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IPool { function token0() external view returns (address); function token1() external view returns (address); function sync() external; function observationLength() external view returns (uint256); function quote(address tokenIn, uint256 amountIn, uint256 granularity) external view returns (uint256 amountOut); }
{ "optimizer": { "enabled": true, "runs": 200 }, "viaIR": false, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [ "@=node_modules/@" ], "evmVersion": "paris" }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IPool","name":"_pair","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"uint256","name":"_granularity","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516105aa3803806105aa83398101604081905261002f9161016c565b600280546001600160a01b0319166001600160a01b03831690811790915560408051630dfe168160e01b81529051630dfe1681916004808201926020929091908290030181865afa158015610088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ac919061016c565b600080546001600160a01b0319166001600160a01b039283161790556002546040805163d21220a760e01b81529051919092169163d21220a79160048083019260209291908290030181865afa15801561010a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012e919061016c565b600180546001600160a01b0319166001600160a01b039290921691909117905550610190565b6001600160a01b038116811461016957600080fd5b50565b60006020828403121561017e57600080fd5b815161018981610154565b9392505050565b61040b8061019f6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630dfe16811461005c5780639e8cc04b1461008c578063a2e62045146100ad578063a8aa1b31146100b7578063d21220a7146100ca575b600080fd5b60005461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009f61009a36600461037b565b6100dd565b604051908152602001610083565b6100b5610163565b005b60025461006f906001600160a01b031681565b60015461006f906001600160a01b031681565b600080546001600160a01b038581169116148061010757506001546001600160a01b038581169116145b6101505760405162461bcd60e51b815260206004820152601560248201527427b930b1b6329d1024b73b30b634b2103a37b5b2b760591b60448201526064015b60405180910390fd5b61015b8484846101cd565b949350505050565b600260009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156101b357600080fd5b505af11580156101c7573d6000803e3d6000fd5b50505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663ebeb31db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024791906103bc565b90506000831180156102595750808311155b6102a55760405162461bcd60e51b815260206004820152601b60248201527f4f7261636c653a20496e76616c6964206772616e756c617269747900000000006044820152606401610147565b600254604051639e8cc04b60e01b81526001600160a01b038781166004830152602482018790526044820186905290911690639e8cc04b90606401602060405180830381865afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032191906103bc565b9150600082116103735760405162461bcd60e51b815260206004820152601b60248201527f4f7261636c653a205a65726f2070726963652072657475726e656400000000006044820152606401610147565b509392505050565b60008060006060848603121561039057600080fd5b83356001600160a01b03811681146103a757600080fd5b95602085013595506040909401359392505050565b6000602082840312156103ce57600080fd5b505191905056fea26469706673582212209c4ad26c1fcf72a06f9a4e2f414c80a6c6a58f12db94742840869926cfee7ded64736f6c63430008140033000000000000000000000000348c3e7701a1f6499fe870f75feea2a66d70edd3
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100575760003560e01c80630dfe16811461005c5780639e8cc04b1461008c578063a2e62045146100ad578063a8aa1b31146100b7578063d21220a7146100ca575b600080fd5b60005461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009f61009a36600461037b565b6100dd565b604051908152602001610083565b6100b5610163565b005b60025461006f906001600160a01b031681565b60015461006f906001600160a01b031681565b600080546001600160a01b038581169116148061010757506001546001600160a01b038581169116145b6101505760405162461bcd60e51b815260206004820152601560248201527427b930b1b6329d1024b73b30b634b2103a37b5b2b760591b60448201526064015b60405180910390fd5b61015b8484846101cd565b949350505050565b600260009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156101b357600080fd5b505af11580156101c7573d6000803e3d6000fd5b50505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663ebeb31db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024791906103bc565b90506000831180156102595750808311155b6102a55760405162461bcd60e51b815260206004820152601b60248201527f4f7261636c653a20496e76616c6964206772616e756c617269747900000000006044820152606401610147565b600254604051639e8cc04b60e01b81526001600160a01b038781166004830152602482018790526044820186905290911690639e8cc04b90606401602060405180830381865afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032191906103bc565b9150600082116103735760405162461bcd60e51b815260206004820152601b60248201527f4f7261636c653a205a65726f2070726963652072657475726e656400000000006044820152606401610147565b509392505050565b60008060006060848603121561039057600080fd5b83356001600160a01b03811681146103a757600080fd5b95602085013595506040909401359392505050565b6000602082840312156103ce57600080fd5b505191905056fea26469706673582212209c4ad26c1fcf72a06f9a4e2f414c80a6c6a58f12db94742840869926cfee7ded64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000348c3e7701a1f6499fe870f75feea2a66d70edd3
-----Decoded View---------------
Arg [0] : _pair (address): 0x348C3E7701A1F6499fe870f75fEEA2A66d70eDd3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000348c3e7701a1f6499fe870f75feea2a66d70edd3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.