Source Code
Overview
ETH Balance
ETH Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 28270947 | 12 mins ago | 0 ETH | ||||
| 28270947 | 12 mins ago | 0 ETH | ||||
| 28270947 | 12 mins ago | 0 ETH | ||||
| 28270947 | 12 mins ago | 0 ETH | ||||
| 28270947 | 12 mins ago | 0 ETH | ||||
| 28270715 | 20 mins ago | 0 ETH | ||||
| 28270715 | 20 mins ago | 0 ETH | ||||
| 28270715 | 20 mins ago | 0 ETH | ||||
| 28270715 | 20 mins ago | 0 ETH | ||||
| 28270715 | 20 mins ago | 0 ETH | ||||
| 28270683 | 22 mins ago | 0 ETH | ||||
| 28270683 | 22 mins ago | 0 ETH | ||||
| 28270683 | 22 mins ago | 0 ETH | ||||
| 28270683 | 22 mins ago | 0 ETH | ||||
| 28270683 | 22 mins ago | 0 ETH | ||||
| 28270656 | 22 mins ago | 0 ETH | ||||
| 28270656 | 22 mins ago | 0 ETH | ||||
| 28270656 | 22 mins ago | 0 ETH | ||||
| 28270656 | 22 mins ago | 0 ETH | ||||
| 28270656 | 22 mins ago | 0 ETH | ||||
| 28270614 | 24 mins ago | 0 ETH | ||||
| 28270614 | 24 mins ago | 0 ETH | ||||
| 28270614 | 24 mins ago | 0 ETH | ||||
| 28270614 | 24 mins ago | 0 ETH | ||||
| 28270614 | 24 mins ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Api3AggregatorDeviationAdaptor
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
import "@api3/contracts/v0.8/interfaces/IProxy.sol";
import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";
contract Api3AggregatorDeviationAdaptor {
// Updating the proxy address is a security-critical action which is why
// we have made it immutable.
address public immutable api3Proxy;
uint256 public immutable upperBoundRatio;
uint256 public immutable lowerBoundRatio;
AggregatorV3Interface immutable chainlinkDatafeed;
constructor(address _proxy, uint256 _upperBoundRatio, uint256 _lowerBoundRatio, address _chainlinkDatafeed) {
api3Proxy = _proxy;
upperBoundRatio = _upperBoundRatio;
lowerBoundRatio = _lowerBoundRatio;
chainlinkDatafeed = AggregatorV3Interface(_chainlinkDatafeed);
}
function convertDecimals(int256 answer, uint8 input, uint8 output) internal pure returns (int256) {
if (input == output) return answer;
if (input < output) return answer * int256(10 ** (output - input));
return answer / int256(10 ** (input - output));
}
/**
* @notice Test reported asset price against anchor price
* @param reportedPrice The price to be tested
* @custom:error Missing error thrown if asset config is not set
* @custom:error Price error thrown if anchor price is not valid
*/
function validatePriceWithAnchorPrice(
uint256 reportedPrice,
uint256 anchorPrice
) public view returns (bool) {
if (upperBoundRatio == 0) revert("validation config not exist");
if (anchorPrice == 0) revert("anchor price is not valid");
return _isWithinAnchor(reportedPrice, anchorPrice);
}
/**
* @notice Test whether the reported price is within the valid bounds
* @param reportedPrice The price to be tested
* @param anchorPrice The reported price must be within the the valid bounds of this price
*/
function _isWithinAnchor(uint256 reportedPrice, uint256 anchorPrice) private view returns (bool) {
if (reportedPrice != 0) {
// we need to multiply anchorPrice by 1e18 to make the ratio 18 decimals
uint256 anchorRatio = (anchorPrice * 1e18) / reportedPrice;
return anchorRatio <= upperBoundRatio && anchorRatio >= lowerBoundRatio;
}
return false;
}
function getLatestChainlinkData() public view returns (int256, uint256) {
(, int256 answer,, uint256 updatedAt,) = chainlinkDatafeed.latestRoundData();
return (convertDecimals(answer, chainlinkDatafeed.decimals(), 18) ,updatedAt);
}
function latestAnswer() external view returns (int256 value) {
(value, ) = readDataFeed();
}
function latestTimestamp() external view returns (uint256 timestamp) {
( , timestamp) = readDataFeed();
}
function decimals() external view returns (uint8) {
return 18;
}
function readDataFeed()
internal
view
returns (int256,uint256)
{
(int256 api3value,uint256 api3timestamp) = IProxy(api3Proxy).read();
(int256 latestChainlinkValue, uint256 latestChainlinkTimestamp) = getLatestChainlinkData();
if(validatePriceWithAnchorPrice(uint256(api3value), uint256(latestChainlinkValue)))
return (api3value, api3timestamp);
else
return (latestChainlinkValue,latestChainlinkTimestamp);
// If you have any assumptions about `value` and `timestamp`, make sure
// to validate them right after reading from the proxy. For example,
// if the value you are reading is the spot price of an asset, you may
// want to reject non-positive values...
// require(value > 0, "Value not positive");
// ...and if the data feed is being updated with a one day-heartbeat
// interval, you may want to check for that.
// require(
// timestamp + 1 days > block.timestamp,
// "Timestamp older than one day"
// );
// Try to be strict about validations, but be wary of:
// (1) Overly strict validation that may invalidate valid values
// (2) Mutable validation parameters that are controlled by a trusted
// party (eliminates the trust-minimization guarantees of first-party
// oracles)
// (3) Validation parameters that need to be tuned according to
// external conditions (if these are forgotten to be handled, it will
// result in (1), look up the Venus Protocol exploit related to LUNA)
// After validation, you can implement your contract logic here.
}
function getTokenType() external pure returns (uint256) {
return 1;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// solhint-disable-next-line interface-starts-with-i
interface AggregatorV3Interface {
function decimals() external view returns (uint8);
function description() external view returns (string memory);
function version() external view returns (uint256);
function getRoundData(
uint80 _roundId
) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
function latestRoundData()
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@api3/airnode-protocol-v1/contracts/api3-server-v1/proxies/interfaces/IProxy.sol";
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/// @dev See DapiProxy.sol for comments about usage
interface IProxy {
function read() external view returns (int224 value, uint32 timestamp);
function api3ServerV1() external view returns (address);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_proxy","type":"address"},{"internalType":"uint256","name":"_upperBoundRatio","type":"uint256"},{"internalType":"uint256","name":"_lowerBoundRatio","type":"uint256"},{"internalType":"address","name":"_chainlinkDatafeed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"api3Proxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestChainlinkData","outputs":[{"internalType":"int256","name":"","type":"int256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lowerBoundRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upperBoundRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reportedPrice","type":"uint256"},{"internalType":"uint256","name":"anchorPrice","type":"uint256"}],"name":"validatePriceWithAnchorPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
61010060405234801561001157600080fd5b5060405161097e38038061097e8339810160408190526100309161006c565b6001600160a01b0393841660805260a09290925260c0521660e0526100b2565b80516001600160a01b038116811461006757600080fd5b919050565b6000806000806080858703121561008257600080fd5b61008b85610050565b935060208501519250604085015191506100a760608601610050565b905092959194509250565b60805160a05160c05160e05161087261010c600039600081816101a6015261023301526000818160bf015261054a01526000818161014a015281816102e7015261051f01526000818160f4015261043401526108726000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806350d25bcd1161006657806350d25bcd1461013d5780635cfafca9146101455780638205bf6a1461016c578063c02f5a5714610174578063fcab18191461019757600080fd5b806304e365f41461009857806308c03b4c146100ba5780632f400b29146100ef578063313ce5671461012e575b600080fd5b6100a061019e565b604080519283526020830191909152015b60405180910390f35b6100e17f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b1565b6101167f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b1565b604051601281526020016100b1565b6100e16102c3565b6100e17f000000000000000000000000000000000000000000000000000000000000000081565b6100e16102d3565b61018761018236600461057e565b6102e3565b60405190151581526020016100b1565b60016100e1565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022691906105bf565b509350509250506102ba827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b3919061060f565b60126103bb565b94909350915050565b60006102cd61042c565b50919050565b60006102dd61042c565b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000060000361035a5760405162461bcd60e51b815260206004820152601b60248201527f76616c69646174696f6e20636f6e666967206e6f74206578697374000000000060448201526064015b60405180910390fd5b816000036103aa5760405162461bcd60e51b815260206004820152601960248201527f616e63686f72207072696365206973206e6f742076616c6964000000000000006044820152606401610351565b6103b483836104f4565b9392505050565b60008160ff168360ff16036103d15750826103b4565b8160ff168360ff161015610405576103e98383610648565b6103f490600a610745565b6103fe9085610754565b90506103b4565b61040f8284610648565b61041a90600a610745565b610424908561079a565b949350505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166357de26a46040518163ffffffff1660e01b81526004016040805180830381865afa15801561048f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b391906107c8565b63ffffffff169150601b0b91506000806104cb61019e565b915091506104d984836102e3565b156104e957509194909350915050565b909590945092505050565b600082156105755760008361051184670de0b6b3a7640000610811565b61051b9190610828565b90507f0000000000000000000000000000000000000000000000000000000000000000811115801561056d57507f00000000000000000000000000000000000000000000000000000000000000008110155b9150506102dd565b50600092915050565b6000806040838503121561059157600080fd5b50508035926020909101359150565b805169ffffffffffffffffffff811681146105ba57600080fd5b919050565b600080600080600060a086880312156105d757600080fd5b6105e0866105a0565b9450602086015193506040860151925060608601519150610603608087016105a0565b90509295509295909350565b60006020828403121561062157600080fd5b815160ff811681146103b457600080fd5b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102dd576102dd610632565b600181815b8085111561069c57816000190482111561068257610682610632565b8085161561068f57918102915b93841c9390800290610666565b509250929050565b6000826106b3575060016102dd565b816106c0575060006102dd565b81600181146106d657600281146106e0576106fc565b60019150506102dd565b60ff8411156106f1576106f1610632565b50506001821b6102dd565b5060208310610133831016604e8410600b841016171561071f575081810a6102dd565b6107298383610661565b806000190482111561073d5761073d610632565b029392505050565b60006103b460ff8416836106a4565b80820260008212600160ff1b8414161561077057610770610632565b81810583148215176102dd576102dd610632565b634e487b7160e01b600052601260045260246000fd5b6000826107a9576107a9610784565b600160ff1b8214600019841416156107c3576107c3610632565b500590565b600080604083850312156107db57600080fd5b825180601b0b81146107ec57600080fd5b602084015190925063ffffffff8116811461080657600080fd5b809150509250929050565b80820281158282048414176102dd576102dd610632565b60008261083757610837610784565b50049056fea264697066735822122078c952264418db46f05dffb215d5cd69debd50edf0926aa9eb034eaae946062464736f6c63430008110033000000000000000000000000c30e51c9edd92b9eef45f281c712faaaf59912ba0000000000000000000000000000000000000000000000000df27a2cdf4480000000000000000000000000000000000000000000000000000dcef33a6f838000000000000000000000000000eedf0b095b5dfe75f3881cb26c19da209a27463a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c806350d25bcd1161006657806350d25bcd1461013d5780635cfafca9146101455780638205bf6a1461016c578063c02f5a5714610174578063fcab18191461019757600080fd5b806304e365f41461009857806308c03b4c146100ba5780632f400b29146100ef578063313ce5671461012e575b600080fd5b6100a061019e565b604080519283526020830191909152015b60405180910390f35b6100e17f0000000000000000000000000000000000000000000000000dcef33a6f83800081565b6040519081526020016100b1565b6101167f000000000000000000000000c30e51c9edd92b9eef45f281c712faaaf59912ba81565b6040516001600160a01b0390911681526020016100b1565b604051601281526020016100b1565b6100e16102c3565b6100e17f0000000000000000000000000000000000000000000000000df27a2cdf44800081565b6100e16102d3565b61018761018236600461057e565b6102e3565b60405190151581526020016100b1565b60016100e1565b6000806000807f000000000000000000000000eedf0b095b5dfe75f3881cb26c19da209a27463a6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022691906105bf565b509350509250506102ba827f000000000000000000000000eedf0b095b5dfe75f3881cb26c19da209a27463a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b3919061060f565b60126103bb565b94909350915050565b60006102cd61042c565b50919050565b60006102dd61042c565b92915050565b60007f0000000000000000000000000000000000000000000000000df27a2cdf44800060000361035a5760405162461bcd60e51b815260206004820152601b60248201527f76616c69646174696f6e20636f6e666967206e6f74206578697374000000000060448201526064015b60405180910390fd5b816000036103aa5760405162461bcd60e51b815260206004820152601960248201527f616e63686f72207072696365206973206e6f742076616c6964000000000000006044820152606401610351565b6103b483836104f4565b9392505050565b60008160ff168360ff16036103d15750826103b4565b8160ff168360ff161015610405576103e98383610648565b6103f490600a610745565b6103fe9085610754565b90506103b4565b61040f8284610648565b61041a90600a610745565b610424908561079a565b949350505050565b6000806000807f000000000000000000000000c30e51c9edd92b9eef45f281c712faaaf59912ba6001600160a01b03166357de26a46040518163ffffffff1660e01b81526004016040805180830381865afa15801561048f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b391906107c8565b63ffffffff169150601b0b91506000806104cb61019e565b915091506104d984836102e3565b156104e957509194909350915050565b909590945092505050565b600082156105755760008361051184670de0b6b3a7640000610811565b61051b9190610828565b90507f0000000000000000000000000000000000000000000000000df27a2cdf448000811115801561056d57507f0000000000000000000000000000000000000000000000000dcef33a6f8380008110155b9150506102dd565b50600092915050565b6000806040838503121561059157600080fd5b50508035926020909101359150565b805169ffffffffffffffffffff811681146105ba57600080fd5b919050565b600080600080600060a086880312156105d757600080fd5b6105e0866105a0565b9450602086015193506040860151925060608601519150610603608087016105a0565b90509295509295909350565b60006020828403121561062157600080fd5b815160ff811681146103b457600080fd5b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102dd576102dd610632565b600181815b8085111561069c57816000190482111561068257610682610632565b8085161561068f57918102915b93841c9390800290610666565b509250929050565b6000826106b3575060016102dd565b816106c0575060006102dd565b81600181146106d657600281146106e0576106fc565b60019150506102dd565b60ff8411156106f1576106f1610632565b50506001821b6102dd565b5060208310610133831016604e8410600b841016171561071f575081810a6102dd565b6107298383610661565b806000190482111561073d5761073d610632565b029392505050565b60006103b460ff8416836106a4565b80820260008212600160ff1b8414161561077057610770610632565b81810583148215176102dd576102dd610632565b634e487b7160e01b600052601260045260246000fd5b6000826107a9576107a9610784565b600160ff1b8214600019841416156107c3576107c3610632565b500590565b600080604083850312156107db57600080fd5b825180601b0b81146107ec57600080fd5b602084015190925063ffffffff8116811461080657600080fd5b809150509250929050565b80820281158282048414176102dd576102dd610632565b60008261083757610837610784565b50049056fea264697066735822122078c952264418db46f05dffb215d5cd69debd50edf0926aa9eb034eaae946062464736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c30e51c9edd92b9eef45f281c712faaaf59912ba0000000000000000000000000000000000000000000000000df27a2cdf4480000000000000000000000000000000000000000000000000000dcef33a6f838000000000000000000000000000eedf0b095b5dfe75f3881cb26c19da209a27463a
-----Decoded View---------------
Arg [0] : _proxy (address): 0xc30e51C9EDD92B9eeF45f281c712faaAf59912BA
Arg [1] : _upperBoundRatio (uint256): 1005000000000000000
Arg [2] : _lowerBoundRatio (uint256): 995000000000000000
Arg [3] : _chainlinkDatafeed (address): 0xEEDF0B095B5dfe75F3881Cb26c19DA209A27463a
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c30e51c9edd92b9eef45f281c712faaaf59912ba
Arg [1] : 0000000000000000000000000000000000000000000000000df27a2cdf448000
Arg [2] : 0000000000000000000000000000000000000000000000000dcef33a6f838000
Arg [3] : 000000000000000000000000eedf0b095b5dfe75f3881cb26c19da209a27463a
Deployed Bytecode Sourcemap
224:4543:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2420:252;;;:::i;:::-;;;;186:25:4;;;242:2;227:18;;220:34;;;;159:18;2420:252:3;;;;;;;;465:40;;;;;;;;411:25:4;;;399:2;384:18;465:40:3;265:177:4;381:34:3;;;;;;;;-1:-1:-1;;;;;611:32:4;;;593:51;;581:2;566:18;381:34:3;447:203:4;2907:74:3;;;2973:2;797:36:4;;785:2;770:18;2907:74:3;655:184:4;2677:102:3;;;:::i;420:40::-;;;;;2784:115;;;:::i;1422:338::-;;;;;;:::i;:::-;;:::i;:::-;;;1442:14:4;;1435:22;1417:41;;1405:2;1390:18;1422:338:3;1277:187:4;4682:79:3;4754:1;4682:79;;2420:252;2475:6;2483:7;2505:13;2521:17;2543;-1:-1:-1;;;;;2543:33:3;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2502:76;;;;;;;2596:57;2612:6;2620:17;-1:-1:-1;;;;;2620:26:3;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2650:2;2596:15;:57::i;:::-;2588:77;2655:9;;-1:-1:-1;2420:252:3;-1:-1:-1;;2420:252:3:o;2677:102::-;2724:12;2759:14;:12;:14::i;:::-;-1:-1:-1;2747:26:3;2677:102;-1:-1:-1;2677:102:3:o;2784:115::-;2834:17;2879:14;:12;:14::i;:::-;2862:31;2784:115;-1:-1:-1;;2784:115:3:o;1422:338::-;1547:4;1567:15;1586:1;1567:20;1563:63;;1589:37;;-1:-1:-1;;;1589:37:3;;2611:2:4;1589:37:3;;;2593:21:4;2650:2;2630:18;;;2623:30;2689:29;2669:18;;;2662:57;2736:18;;1589:37:3;;;;;;;;1563:63;1640:11;1655:1;1640:16;1636:57;;1658:35;;-1:-1:-1;;;1658:35:3;;2967:2:4;1658:35:3;;;2949:21:4;3006:2;2986:18;;;2979:30;3045:27;3025:18;;;3018:55;3090:18;;1658:35:3;2765:349:4;1636:57:3;1710:43;1726:13;1741:11;1710:15;:43::i;:::-;1703:50;1422:338;-1:-1:-1;;;1422:338:3:o;868:281::-;958:6;989;980:15;;:5;:15;;;976:34;;-1:-1:-1;1004:6:3;997:13;;976:34;1032:6;1024:14;;:5;:14;;;1020:66;;;1070:14;1079:5;1070:6;:14;:::i;:::-;1063:22;;:2;:22;:::i;:::-;1047:39;;:6;:39;:::i;:::-;1040:46;;;;1020:66;1126:14;1134:6;1126:5;:14;:::i;:::-;1119:22;;:2;:22;:::i;:::-;1103:39;;:6;:39;:::i;:::-;1096:46;868:281;-1:-1:-1;;;;868:281:3:o;2986:1684::-;3054:6;3061:7;3083:16;3100:21;3132:9;-1:-1:-1;;;;;3125:22:3;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3082:67;;;;;;;;3159:27;3188:32;3224:24;:22;:24::i;:::-;3158:90;;;;3261:79;3298:9;3318:20;3261:28;:79::i;:::-;3258:210;;;-1:-1:-1;3362:9:3;;3373:13;;-1:-1:-1;2986:1684:3;-1:-1:-1;;2986:1684:3:o;3258:210::-;3422:20;;3443:24;;-1:-1:-1;2986:1684:3;-1:-1:-1;;;2986:1684:3:o;2002:412::-;2093:4;2113:18;;2109:277;;2232:19;2277:13;2255:18;:11;2269:4;2255:18;:::i;:::-;2254:36;;;;:::i;:::-;2232:58;;2326:15;2311:11;:30;;:64;;;;;2360:15;2345:11;:30;;2311:64;2304:71;;;;;2109:277;-1:-1:-1;2402:5:3;2002:412;;;;:::o;1024:248:4:-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;-1:-1:-1;;1192:23:4;;;1262:2;1247:18;;;1234:32;;-1:-1:-1;1024:248:4:o;1469:179::-;1547:13;;1600:22;1589:34;;1579:45;;1569:73;;1638:1;1635;1628:12;1569:73;1469:179;;;:::o;1653:473::-;1756:6;1764;1772;1780;1788;1841:3;1829:9;1820:7;1816:23;1812:33;1809:53;;;1858:1;1855;1848:12;1809:53;1881:39;1910:9;1881:39;:::i;:::-;1871:49;;1960:2;1949:9;1945:18;1939:25;1929:35;;2004:2;1993:9;1989:18;1983:25;1973:35;;2048:2;2037:9;2033:18;2027:25;2017:35;;2071:49;2115:3;2104:9;2100:19;2071:49;:::i;:::-;2061:59;;1653:473;;;;;;;;:::o;2131:273::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:52;;;2268:1;2265;2258:12;2220:52;2300:9;2294:16;2350:4;2343:5;2339:16;2332:5;2329:27;2319:55;;2370:1;2367;2360:12;3119:127;3180:10;3175:3;3171:20;3168:1;3161:31;3211:4;3208:1;3201:15;3235:4;3232:1;3225:15;3251:151;3341:4;3334:12;;;3320;;;3316:31;;3359:14;;3356:40;;;3376:18;;:::i;3407:422::-;3496:1;3539:5;3496:1;3553:270;3574:7;3564:8;3561:21;3553:270;;;3633:4;3629:1;3625:6;3621:17;3615:4;3612:27;3609:53;;;3642:18;;:::i;:::-;3692:7;3682:8;3678:22;3675:55;;;3712:16;;;;3675:55;3791:22;;;;3751:15;;;;3553:270;;;3557:3;3407:422;;;;;:::o;3834:806::-;3883:5;3913:8;3903:80;;-1:-1:-1;3954:1:4;3968:5;;3903:80;4002:4;3992:76;;-1:-1:-1;4039:1:4;4053:5;;3992:76;4084:4;4102:1;4097:59;;;;4170:1;4165:130;;;;4077:218;;4097:59;4127:1;4118:10;;4141:5;;;4165:130;4202:3;4192:8;4189:17;4186:43;;;4209:18;;:::i;:::-;-1:-1:-1;;4265:1:4;4251:16;;4280:5;;4077:218;;4379:2;4369:8;4366:16;4360:3;4354:4;4351:13;4347:36;4341:2;4331:8;4328:16;4323:2;4317:4;4314:12;4310:35;4307:77;4304:159;;;-1:-1:-1;4416:19:4;;;4448:5;;4304:159;4495:34;4520:8;4514:4;4495:34;:::i;:::-;4565:6;4561:1;4557:6;4553:19;4544:7;4541:32;4538:58;;;4576:18;;:::i;:::-;4614:20;;3834:806;-1:-1:-1;;;3834:806:4:o;4645:140::-;4703:5;4732:47;4773:4;4763:8;4759:19;4753:4;4732:47;:::i;4790:237::-;4862:9;;;4829:7;4887:9;;-1:-1:-1;;;4898:18:4;;4883:34;4880:60;;;4920:18;;:::i;:::-;4993:1;4984:7;4979:16;4976:1;4973:23;4969:1;4962:9;4959:38;4949:72;;5001:18;;:::i;5032:127::-;5093:10;5088:3;5084:20;5081:1;5074:31;5124:4;5121:1;5114:15;5148:4;5145:1;5138:15;5164:193;5203:1;5229;5219:35;;5234:18;;:::i;:::-;-1:-1:-1;;;5270:18:4;;-1:-1:-1;;5290:13:4;;5266:38;5263:64;;;5307:18;;:::i;:::-;-1:-1:-1;5341:10:4;;5164:193::o;5362:444::-;5439:6;5447;5500:2;5488:9;5479:7;5475:23;5471:32;5468:52;;;5516:1;5513;5506:12;5468:52;5548:9;5542:16;5602:5;5598:2;5587:21;5580:5;5577:32;5567:60;;5623:1;5620;5613:12;5567:60;5696:2;5681:18;;5675:25;5646:5;;-1:-1:-1;5744:10:4;5731:24;;5719:37;;5709:65;;5770:1;5767;5760:12;5709:65;5793:7;5783:17;;;5362:444;;;;;:::o;5811:168::-;5884:9;;;5915;;5932:15;;;5926:22;;5912:37;5902:71;;5953:18;;:::i;5984:120::-;6024:1;6050;6040:35;;6055:18;;:::i;:::-;-1:-1:-1;6089:9:4;;5984:120::o
Swarm Source
ipfs://78c952264418db46f05dffb215d5cd69debd50edf0926aa9eb034eaae9460624
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 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.