Source Code
Overview
S Balance
S Value
$0.00Latest 25 from a total of 332 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Multiple Val... | 57498633 | 44 days ago | IN | 0 S | 0.0027977 | ||||
| Set Multiple Val... | 57461514 | 44 days ago | IN | 0 S | 0.00279842 | ||||
| Set Value | 57424127 | 45 days ago | IN | 0 S | 0.0020553 | ||||
| Set Value | 57424021 | 45 days ago | IN | 0 S | 0.00205022 | ||||
| Set Multiple Val... | 57386448 | 45 days ago | IN | 0 S | 0.00279842 | ||||
| Set Multiple Val... | 57349980 | 46 days ago | IN | 0 S | 0.00279915 | ||||
| Set Value | 57320371 | 46 days ago | IN | 0 S | 0.00205603 | ||||
| Set Value | 57320213 | 46 days ago | IN | 0 S | 0.00205022 | ||||
| Set Multiple Val... | 57313190 | 46 days ago | IN | 0 S | 0.00279915 | ||||
| Set Value | 57311226 | 46 days ago | IN | 0 S | 0.00205603 | ||||
| Set Value | 57311123 | 46 days ago | IN | 0 S | 0.00205603 | ||||
| Set Multiple Val... | 57283589 | 47 days ago | IN | 0 S | 0.00279842 | ||||
| Set Multiple Val... | 57240982 | 47 days ago | IN | 0 S | 0.00279842 | ||||
| Set Value | 57224884 | 48 days ago | IN | 0 S | 0.00205603 | ||||
| Set Value | 57224836 | 48 days ago | IN | 0 S | 0.00205095 | ||||
| Set Multiple Val... | 57187002 | 48 days ago | IN | 0 S | 0.0027977 | ||||
| Set Multiple Val... | 57183902 | 48 days ago | IN | 0 S | 0.00279842 | ||||
| Set Multiple Val... | 57138475 | 49 days ago | IN | 0 S | 0.00279842 | ||||
| Set Value | 57090412 | 49 days ago | IN | 0 S | 0.00205603 | ||||
| Set Value | 57090301 | 49 days ago | IN | 0 S | 0.00205022 | ||||
| Set Value | 57085985 | 49 days ago | IN | 0 S | 0.00205603 | ||||
| Set Value | 57085877 | 49 days ago | IN | 0 S | 0.00205022 | ||||
| Set Multiple Val... | 57031918 | 50 days ago | IN | 0 S | 0.00279697 | ||||
| Set Value | 56984767 | 50 days ago | IN | 0 S | 0.00205603 | ||||
| Set Value | 56984405 | 50 days ago | IN | 0 S | 0.00205095 |
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x94E88fb2...7f02a12ba in Avalanche C-Chain The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
DIAParallelOracle
Compiler Version
v0.8.29+commit.ab55807c
Contract Source Code (Solidity)
/**
*Submitted for verification at SonicScan.org on 2025-10-12
*/
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: contracts/DIAParallelOracle.sol
pragma solidity 0.8.29;
//import { IERC20Metadata } from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
interface IERC20Metadata {
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
interface IRedeemer {
function quoteRedemptionCurve(uint256 amount)
external
view
returns (address[] memory tokens, uint256[] memory amounts);
}
interface IGetters {
function getOracleValues(address collateral)
external
view
returns (uint256 mint, uint256 burn, uint256 ratio, uint256 minRatio, uint256 redemption);
function getTotalIssued()
external
view
returns (uint256 stablecoinsIssued);
}
interface IERC4626 {
function convertToAssets(uint256 shares) external view returns (uint256 assets);
}
contract DIAParallelOracle is Ownable(msg.sender) {
address public getterAddress;
address public redeemerAddress;
address public susdpVaultAddress;
uint256 public outputDecimals;
uint256 public constant QUERY_DECIMALS = 18;
string public USDP_QUERY_STRING;
mapping (string => uint256) public values;
event OracleUpdate(string key, uint128 value, uint128 timestamp);
constructor(address _getterAddress, address _redeemerAddress, address _susdpVaultAddress, uint256 _outputDecimals) {
require(_outputDecimals <= QUERY_DECIMALS, "Output decimals must be less or equal QUERY_DECIMALS.");
getterAddress = _getterAddress;
redeemerAddress = _redeemerAddress;
susdpVaultAddress = _susdpVaultAddress;
outputDecimals = _outputDecimals;
USDP_QUERY_STRING = "USDp/USD";
}
function setGetterAddress(address _newGetterAddress) onlyOwner external {
getterAddress = _newGetterAddress;
}
function setRedeemerAddress(address _newRedeemerAddress) onlyOwner external {
redeemerAddress = _newRedeemerAddress;
}
function setSusdpVaultAddress(address _newSusdpVaultAddress) onlyOwner external {
susdpVaultAddress = _newSusdpVaultAddress;
}
function setOutputDecimals(uint256 _newDecimals) onlyOwner external {
require(outputDecimals <= QUERY_DECIMALS, "Output decimals must be less or equal QUERY_DECIMALS.");
outputDecimals = _newDecimals;
}
function setUsdpQueryString(string memory newUsdpQueryString) onlyOwner external {
USDP_QUERY_STRING = newUsdpQueryString;
}
function getChainSpecificUsdpPrice() external view returns (uint256) {
IRedeemer redeemerInstance = IRedeemer(redeemerAddress);
IGetters getterInstance = IGetters(getterAddress);
(address[] memory collateralTokens, uint256[] memory redemptionValues) =
redeemerInstance.quoteRedemptionCurve(10 ** QUERY_DECIMALS);
uint256 usdpPrice = 0;
for (uint256 i = 0; i < collateralTokens.length; ++i) {
address currToken = collateralTokens[i];
uint256 currRedemptionValue = redemptionValues[i];
uint8 currTokenDecimals = IERC20Metadata(currToken).decimals();
if (currTokenDecimals < QUERY_DECIMALS) {
uint256 currDecimalDelta = QUERY_DECIMALS - currTokenDecimals;
currRedemptionValue = currRedemptionValue * (10 ** currDecimalDelta);
} else if (currTokenDecimals > QUERY_DECIMALS) {
uint256 currDecimalDelta = currTokenDecimals - QUERY_DECIMALS;
currRedemptionValue = currRedemptionValue / (10 ** currDecimalDelta);
}
(, , , , uint256 currOracleRedemptionPrice) = getterInstance.getOracleValues(currToken);
uint256 redemptionValueUsd = currOracleRedemptionPrice * currRedemptionValue;
usdpPrice += redemptionValueUsd;
}
uint256 decimalDelta = (QUERY_DECIMALS + 18) - outputDecimals;
return usdpPrice / (10 ** decimalDelta);
}
function getChainSpecificUsdpIssued() external view returns (uint256) {
IGetters getterInstance = IGetters(getterAddress);
return getterInstance.getTotalIssued();
}
function getSusdpPrice() public view returns (uint256) {
IERC4626 susdpVaultInstance = IERC4626(susdpVaultAddress);
(uint128 usdpPrice,) = getValue(USDP_QUERY_STRING);
uint256 susdpRate = susdpVaultInstance.convertToAssets(10 ** QUERY_DECIMALS);
return (susdpRate * usdpPrice) / (10 ** QUERY_DECIMALS);
}
function setValue(string memory key, uint128 value, uint128 timestamp) onlyOwner external {
uint256 cValue = (((uint256)(value)) << 128) + timestamp;
values[key] = cValue;
emit OracleUpdate(key, value, timestamp);
}
function setMultipleValues(string[] memory keys, uint256[] memory compressedValues) onlyOwner external {
require(keys.length == compressedValues.length);
for (uint128 i = 0; i < keys.length; i++) {
string memory currentKey = keys[i];
uint256 currentCvalue = compressedValues[i];
uint128 value = (uint128)(currentCvalue >> 128);
uint128 timestamp = (uint128)(currentCvalue % 2**128);
values[currentKey] = currentCvalue;
emit OracleUpdate(currentKey, value, timestamp);
}
}
function getValue(string memory key) public view returns (uint128, uint128) {
if (compareStrings(key, "sUSDp/USD")) {
return (uint128(getSusdpPrice()), uint128(block.timestamp));
} else {
uint256 cValue = values[key];
uint128 timestamp = (uint128)(cValue % 2**128);
uint128 value = (uint128)(cValue >> 128);
return (value, timestamp);
}
}
function compareStrings(string memory _a, string memory _b) internal pure returns(bool) {
return keccak256(abi.encodePacked(_a)) == keccak256(abi.encodePacked(_b));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_getterAddress","type":"address"},{"internalType":"address","name":"_redeemerAddress","type":"address"},{"internalType":"address","name":"_susdpVaultAddress","type":"address"},{"internalType":"uint256","name":"_outputDecimals","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"uint128","name":"value","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"timestamp","type":"uint128"}],"name":"OracleUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"QUERY_DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDP_QUERY_STRING","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainSpecificUsdpIssued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainSpecificUsdpPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSusdpPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"}],"name":"getValue","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outputDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeemerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGetterAddress","type":"address"}],"name":"setGetterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"keys","type":"string[]"},{"internalType":"uint256[]","name":"compressedValues","type":"uint256[]"}],"name":"setMultipleValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDecimals","type":"uint256"}],"name":"setOutputDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRedeemerAddress","type":"address"}],"name":"setRedeemerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSusdpVaultAddress","type":"address"}],"name":"setSusdpVaultAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUsdpQueryString","type":"string"}],"name":"setUsdpQueryString","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"uint128","name":"timestamp","type":"uint128"}],"name":"setValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"susdpVaultAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"values","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
0x608060405234801561000f575f5ffd5b5060405161286d38038061286d8339818101604052810190610031919061035d565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906103d0565b60405180910390fd5b6100b18161020b60201b60201c565b5060128111156100f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ed90610469565b60405180910390fd5b8360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806004819055506040518060400160405280600881526020017f555344702f5553440000000000000000000000000000000000000000000000008152506005908161020191906106bb565b505050505061078a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102f9826102d0565b9050919050565b610309816102ef565b8114610313575f5ffd5b50565b5f8151905061032481610300565b92915050565b5f819050919050565b61033c8161032a565b8114610346575f5ffd5b50565b5f8151905061035781610333565b92915050565b5f5f5f5f60808587031215610375576103746102cc565b5b5f61038287828801610316565b945050602061039387828801610316565b93505060406103a487828801610316565b92505060606103b587828801610349565b91505092959194509250565b6103ca816102ef565b82525050565b5f6020820190506103e35f8301846103c1565b92915050565b5f82825260208201905092915050565b7f4f757470757420646563696d616c73206d757374206265206c657373206f72205f8201527f657175616c2051554552595f444543494d414c532e0000000000000000000000602082015250565b5f6104536035836103e9565b915061045e826103f9565b604082019050919050565b5f6020820190508181035f83015261048081610447565b9050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061050257607f821691505b602082108103610515576105146104be565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261053c565b610581868361053c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6105bc6105b76105b28461032a565b610599565b61032a565b9050919050565b5f819050919050565b6105d5836105a2565b6105e96105e1826105c3565b848454610548565b825550505050565b5f5f905090565b6106006105f1565b61060b8184846105cc565b505050565b5b8181101561062e576106235f826105f8565b600181019050610611565b5050565b601f821115610673576106448161051b565b61064d8461052d565b8101602085101561065c578190505b6106706106688561052d565b830182610610565b50505b505050565b5f82821c905092915050565b5f6106935f1984600802610678565b1980831691505092915050565b5f6106ab8383610684565b9150826002028217905092915050565b6106c482610487565b67ffffffffffffffff8111156106dd576106dc610491565b5b6106e782546104eb565b6106f2828285610632565b5f60209050601f831160018114610723575f8415610711578287015190505b61071b85826106a0565b865550610782565b601f1984166107318661051b565b5f5b8281101561075857848901518255600182019150602085019450602081019050610733565b868310156107755784890151610771601f891682610684565b8355505b6001600288020188555050505b505050505050565b6120d6806107975f395ff3fe608060405234801561000f575f5ffd5b5060043610610135575f3560e01c80638d241526116100b6578063a44cee4f1161007a578063a44cee4f146102fe578063bf560ad81461031c578063e65f4a071461033a578063f190fb8914610358578063f2fde38b14610376578063f904dbcc1461039257610135565b80638d241526146102595780638da5cb5b14610275578063960384a014610293578063a1b6012f146102c4578063a2af0419146102e257610135565b80635daf9a97116100fd5780635daf9a97146101dd5780636b59e8c3146101fb578063715018a61461021757806373893608146102215780637898e0c21461023d57610135565b80631157b834146101395780632b3eb84e1461015757806345eb8b4414610175578063495ae3cf146101915780635a9ade8b146101ad575b5f5ffd5b6101416103b0565b60405161014e919061107f565b60405180910390f35b61015f6103d5565b60405161016c9190611108565b60405180910390f35b61018f600480360381019061018a9190611163565b610461565b005b6101ab60048036038101906101a691906112ba565b6104ac565b005b6101c760048036038101906101c291906112ba565b6104c7565b6040516101d49190611319565b60405180910390f35b6101e56104f4565b6040516101f2919061107f565b60405180910390f35b6102156004803603810190610210919061135c565b610519565b005b61021f610571565b005b61023b60048036038101906102369190611163565b610584565b005b610257600480360381019061025291906113cc565b6105cf565b005b610273600480360381019061026e91906115da565b610672565b005b61027d6107a9565b60405161028a919061107f565b60405180910390f35b6102ad60048036038101906102a891906112ba565b6107d0565b6040516102bb92919061165f565b60405180910390f35b6102cc610881565b6040516102d99190611319565b60405180910390f35b6102fc60048036038101906102f79190611163565b610a02565b005b610306610a4d565b6040516103139190611319565b60405180910390f35b610324610ae6565b6040516103319190611319565b60405180910390f35b610342610aec565b60405161034f919061107f565b60405180910390f35b610360610b11565b60405161036d9190611319565b60405180910390f35b610390600480360381019061038b9190611163565b610e10565b005b61039a610e94565b6040516103a79190611319565b60405180910390f35b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600580546103e2906116b3565b80601f016020809104026020016040519081016040528092919081815260200182805461040e906116b3565b80156104595780601f1061043057610100808354040283529160200191610459565b820191905f5260205f20905b81548152906001019060200180831161043c57829003601f168201915b505050505081565b610469610e99565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104b4610e99565b80600590816104c39190611883565b5050565b6006818051602081018201805184825260208301602085012081835280955050505050505f915090505481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610521610e99565b60126004541115610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055e906119c2565b60405180910390fd5b8060048190555050565b610579610e99565b6105825f610f20565b565b61058c610e99565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6105d7610e99565b5f816fffffffffffffffffffffffffffffffff166080846fffffffffffffffffffffffffffffffff16901b61060c9190611a0d565b90508060068560405161061f9190611a7a565b9081526020016040518091039020819055507fa7fc99ed7617309ee23f63ae90196a1e490d362e6f6a547a59bc809ee229178284848460405161066493929190611a90565b60405180910390a150505050565b61067a610e99565b8051825114610687575f5ffd5b5f5f90505b8251816fffffffffffffffffffffffffffffffff1610156107a4575f83826fffffffffffffffffffffffffffffffff16815181106106cd576106cc611acc565b5b602002602001015190505f83836fffffffffffffffffffffffffffffffff16815181106106fd576106fc611acc565b5b602002602001015190505f608082901c90505f7001000000000000000000000000000000008361072d9190611b26565b9050826006856040516107409190611a7a565b9081526020016040518091039020819055507fa7fc99ed7617309ee23f63ae90196a1e490d362e6f6a547a59bc809ee229178284838360405161078593929190611a90565b60405180910390a150505050808061079c90611b56565b91505061068c565b505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f610811836040518060400160405280600981526020017f73555344702f5553440000000000000000000000000000000000000000000000815250610fe1565b156108285761081e610881565b429150915061087c565b5f6006846040516108399190611a7a565b90815260200160405180910390205490505f700100000000000000000000000000000000826108689190611b26565b90505f608083901c90508082945094505050505b915091565b5f5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f610939600580546108b8906116b3565b80601f01602080910402602001604051908101604052809291908181526020018280546108e4906116b3565b801561092f5780601f106109065761010080835404028352916020019161092f565b820191905f5260205f20905b81548152906001019060200180831161091257829003601f168201915b50505050506107d0565b5090505f8273ffffffffffffffffffffffffffffffffffffffff166307a2d13a6012600a6109679190611cbc565b6040518263ffffffff1660e01b81526004016109839190611319565b602060405180830381865afa15801561099e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c29190611d1a565b90506012600a6109d29190611cbc565b826fffffffffffffffffffffffffffffffff16826109f09190611d45565b6109fa9190611d86565b935050505090565b610a0a610e99565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16638db9653f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae09190611d1a565b91505090565b60045481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5f8373ffffffffffffffffffffffffffffffffffffffff1663d703a0cd6012600a610b889190611cbc565b6040518263ffffffff1660e01b8152600401610ba49190611319565b5f60405180830381865afa158015610bbe573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610be69190611f1f565b915091505f5f90505f5f90505b8351811015610dcf575f848281518110610c1057610c0f611acc565b5b602002602001015190505f848381518110610c2e57610c2d611acc565b5b602002602001015190505f8273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca69190611fcb565b905060128160ff161015610ce7575f8160ff166012610cc59190611ff6565b905080600a610cd49190611cbc565b83610cdf9190611d45565b925050610d23565b60128160ff161115610d22575f60128260ff16610d049190611ff6565b905080600a610d139190611cbc565b83610d1e9190611d86565b9250505b5b5f8873ffffffffffffffffffffffffffffffffffffffff166338c269eb856040518263ffffffff1660e01b8152600401610d5d919061107f565b60a060405180830381865afa158015610d78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9c9190612029565b9450505050505f8382610daf9190611d45565b90508087610dbd9190611a0d565b96505050505050806001019050610bf3565b505f600454601280610de19190611a0d565b610deb9190611ff6565b905080600a610dfa9190611cbc565b82610e059190611d86565b965050505050505090565b610e18610e99565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e88575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610e7f919061107f565b60405180910390fd5b610e9181610f20565b50565b601281565b610ea1611039565b73ffffffffffffffffffffffffffffffffffffffff16610ebf6107a9565b73ffffffffffffffffffffffffffffffffffffffff1614610f1e57610ee2611039565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610f15919061107f565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81604051602001610ff39190611a7a565b604051602081830303815290604052805190602001208360405160200161101a9190611a7a565b6040516020818303038152906040528051906020012014905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61106982611040565b9050919050565b6110798161105f565b82525050565b5f6020820190506110925f830184611070565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6110da82611098565b6110e481856110a2565b93506110f48185602086016110b2565b6110fd816110c0565b840191505092915050565b5f6020820190508181035f83015261112081846110d0565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b6111428161105f565b811461114c575f5ffd5b50565b5f8135905061115d81611139565b92915050565b5f6020828403121561117857611177611131565b5b5f6111858482850161114f565b91505092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111cc826110c0565b810181811067ffffffffffffffff821117156111eb576111ea611196565b5b80604052505050565b5f6111fd611128565b905061120982826111c3565b919050565b5f67ffffffffffffffff82111561122857611227611196565b5b611231826110c0565b9050602081019050919050565b828183375f83830152505050565b5f61125e6112598461120e565b6111f4565b90508281526020810184848401111561127a57611279611192565b5b61128584828561123e565b509392505050565b5f82601f8301126112a1576112a061118e565b5b81356112b184826020860161124c565b91505092915050565b5f602082840312156112cf576112ce611131565b5b5f82013567ffffffffffffffff8111156112ec576112eb611135565b5b6112f88482850161128d565b91505092915050565b5f819050919050565b61131381611301565b82525050565b5f60208201905061132c5f83018461130a565b92915050565b61133b81611301565b8114611345575f5ffd5b50565b5f8135905061135681611332565b92915050565b5f6020828403121561137157611370611131565b5b5f61137e84828501611348565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6113ab81611387565b81146113b5575f5ffd5b50565b5f813590506113c6816113a2565b92915050565b5f5f5f606084860312156113e3576113e2611131565b5b5f84013567ffffffffffffffff811115611400576113ff611135565b5b61140c8682870161128d565b935050602061141d868287016113b8565b925050604061142e868287016113b8565b9150509250925092565b5f67ffffffffffffffff82111561145257611451611196565b5b602082029050602081019050919050565b5f5ffd5b5f61147961147484611438565b6111f4565b9050808382526020820190506020840283018581111561149c5761149b611463565b5b835b818110156114e357803567ffffffffffffffff8111156114c1576114c061118e565b5b8086016114ce898261128d565b8552602085019450505060208101905061149e565b5050509392505050565b5f82601f8301126115015761150061118e565b5b8135611511848260208601611467565b91505092915050565b5f67ffffffffffffffff82111561153457611533611196565b5b602082029050602081019050919050565b5f6115576115528461151a565b6111f4565b9050808382526020820190506020840283018581111561157a57611579611463565b5b835b818110156115a3578061158f8882611348565b84526020840193505060208101905061157c565b5050509392505050565b5f82601f8301126115c1576115c061118e565b5b81356115d1848260208601611545565b91505092915050565b5f5f604083850312156115f0576115ef611131565b5b5f83013567ffffffffffffffff81111561160d5761160c611135565b5b611619858286016114ed565b925050602083013567ffffffffffffffff81111561163a57611639611135565b5b611646858286016115ad565b9150509250929050565b61165981611387565b82525050565b5f6040820190506116725f830185611650565b61167f6020830184611650565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806116ca57607f821691505b6020821081036116dd576116dc611686565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261173f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611704565b6117498683611704565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61178461177f61177a84611301565b611761565b611301565b9050919050565b5f819050919050565b61179d8361176a565b6117b16117a98261178b565b848454611710565b825550505050565b5f5f905090565b6117c86117b9565b6117d3818484611794565b505050565b5b818110156117f6576117eb5f826117c0565b6001810190506117d9565b5050565b601f82111561183b5761180c816116e3565b611815846116f5565b81016020851015611824578190505b611838611830856116f5565b8301826117d8565b50505b505050565b5f82821c905092915050565b5f61185b5f1984600802611840565b1980831691505092915050565b5f611873838361184c565b9150826002028217905092915050565b61188c82611098565b67ffffffffffffffff8111156118a5576118a4611196565b5b6118af82546116b3565b6118ba8282856117fa565b5f60209050601f8311600181146118eb575f84156118d9578287015190505b6118e38582611868565b86555061194a565b601f1984166118f9866116e3565b5f5b82811015611920578489015182556001820191506020850194506020810190506118fb565b8683101561193d5784890151611939601f89168261184c565b8355505b6001600288020188555050505b505050505050565b7f4f757470757420646563696d616c73206d757374206265206c657373206f72205f8201527f657175616c2051554552595f444543494d414c532e0000000000000000000000602082015250565b5f6119ac6035836110a2565b91506119b782611952565b604082019050919050565b5f6020820190508181035f8301526119d9816119a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a1782611301565b9150611a2283611301565b9250828201905080821115611a3a57611a396119e0565b5b92915050565b5f81905092915050565b5f611a5482611098565b611a5e8185611a40565b9350611a6e8185602086016110b2565b80840191505092915050565b5f611a858284611a4a565b915081905092915050565b5f6060820190508181035f830152611aa881866110d0565b9050611ab76020830185611650565b611ac46040830184611650565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611b3082611301565b9150611b3b83611301565b925082611b4b57611b4a611af9565b5b828206905092915050565b5f611b6082611387565b91506fffffffffffffffffffffffffffffffff8203611b8257611b816119e0565b5b600182019050919050565b5f8160011c9050919050565b5f5f8291508390505b6001851115611be257808604811115611bbe57611bbd6119e0565b5b6001851615611bcd5780820291505b8081029050611bdb85611b8d565b9450611ba2565b94509492505050565b5f82611bfa5760019050611cb5565b81611c07575f9050611cb5565b8160018114611c1d5760028114611c2757611c56565b6001915050611cb5565b60ff841115611c3957611c386119e0565b5b8360020a915084821115611c5057611c4f6119e0565b5b50611cb5565b5060208310610133831016604e8410600b8410161715611c8b5782820a905083811115611c8657611c856119e0565b5b611cb5565b611c988484846001611b99565b92509050818404811115611caf57611cae6119e0565b5b81810290505b9392505050565b5f611cc682611301565b9150611cd183611301565b9250611cfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611beb565b905092915050565b5f81519050611d1481611332565b92915050565b5f60208284031215611d2f57611d2e611131565b5b5f611d3c84828501611d06565b91505092915050565b5f611d4f82611301565b9150611d5a83611301565b9250828202611d6881611301565b91508282048414831517611d7f57611d7e6119e0565b5b5092915050565b5f611d9082611301565b9150611d9b83611301565b925082611dab57611daa611af9565b5b828204905092915050565b5f67ffffffffffffffff821115611dd057611dcf611196565b5b602082029050602081019050919050565b5f81519050611def81611139565b92915050565b5f611e07611e0284611db6565b6111f4565b90508083825260208201905060208402830185811115611e2a57611e29611463565b5b835b81811015611e535780611e3f8882611de1565b845260208401935050602081019050611e2c565b5050509392505050565b5f82601f830112611e7157611e7061118e565b5b8151611e81848260208601611df5565b91505092915050565b5f611e9c611e978461151a565b6111f4565b90508083825260208201905060208402830185811115611ebf57611ebe611463565b5b835b81811015611ee85780611ed48882611d06565b845260208401935050602081019050611ec1565b5050509392505050565b5f82601f830112611f0657611f0561118e565b5b8151611f16848260208601611e8a565b91505092915050565b5f5f60408385031215611f3557611f34611131565b5b5f83015167ffffffffffffffff811115611f5257611f51611135565b5b611f5e85828601611e5d565b925050602083015167ffffffffffffffff811115611f7f57611f7e611135565b5b611f8b85828601611ef2565b9150509250929050565b5f60ff82169050919050565b611faa81611f95565b8114611fb4575f5ffd5b50565b5f81519050611fc581611fa1565b92915050565b5f60208284031215611fe057611fdf611131565b5b5f611fed84828501611fb7565b91505092915050565b5f61200082611301565b915061200b83611301565b9250828203905081811115612023576120226119e0565b5b92915050565b5f5f5f5f5f60a0868803121561204257612041611131565b5b5f61204f88828901611d06565b955050602061206088828901611d06565b945050604061207188828901611d06565b935050606061208288828901611d06565b925050608061209388828901611d06565b915050929550929590935056fea2646970667358221220c20028e91e19a87778fb0875730cd86c7a3c9d213a4c253198459ac3d919045e64736f6c634300081d0033000000000000000000000000befbae2330186f031b469e26283acc66bb5f8826000000000000000000000000befbae2330186f031b469e26283acc66bb5f8826000000000000000000000000e8a3da6f5ed1cf04c58ac7f6a7383641e877517b0000000000000000000000000000000000000000000000000000000000000012
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610135575f3560e01c80638d241526116100b6578063a44cee4f1161007a578063a44cee4f146102fe578063bf560ad81461031c578063e65f4a071461033a578063f190fb8914610358578063f2fde38b14610376578063f904dbcc1461039257610135565b80638d241526146102595780638da5cb5b14610275578063960384a014610293578063a1b6012f146102c4578063a2af0419146102e257610135565b80635daf9a97116100fd5780635daf9a97146101dd5780636b59e8c3146101fb578063715018a61461021757806373893608146102215780637898e0c21461023d57610135565b80631157b834146101395780632b3eb84e1461015757806345eb8b4414610175578063495ae3cf146101915780635a9ade8b146101ad575b5f5ffd5b6101416103b0565b60405161014e919061107f565b60405180910390f35b61015f6103d5565b60405161016c9190611108565b60405180910390f35b61018f600480360381019061018a9190611163565b610461565b005b6101ab60048036038101906101a691906112ba565b6104ac565b005b6101c760048036038101906101c291906112ba565b6104c7565b6040516101d49190611319565b60405180910390f35b6101e56104f4565b6040516101f2919061107f565b60405180910390f35b6102156004803603810190610210919061135c565b610519565b005b61021f610571565b005b61023b60048036038101906102369190611163565b610584565b005b610257600480360381019061025291906113cc565b6105cf565b005b610273600480360381019061026e91906115da565b610672565b005b61027d6107a9565b60405161028a919061107f565b60405180910390f35b6102ad60048036038101906102a891906112ba565b6107d0565b6040516102bb92919061165f565b60405180910390f35b6102cc610881565b6040516102d99190611319565b60405180910390f35b6102fc60048036038101906102f79190611163565b610a02565b005b610306610a4d565b6040516103139190611319565b60405180910390f35b610324610ae6565b6040516103319190611319565b60405180910390f35b610342610aec565b60405161034f919061107f565b60405180910390f35b610360610b11565b60405161036d9190611319565b60405180910390f35b610390600480360381019061038b9190611163565b610e10565b005b61039a610e94565b6040516103a79190611319565b60405180910390f35b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600580546103e2906116b3565b80601f016020809104026020016040519081016040528092919081815260200182805461040e906116b3565b80156104595780601f1061043057610100808354040283529160200191610459565b820191905f5260205f20905b81548152906001019060200180831161043c57829003601f168201915b505050505081565b610469610e99565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104b4610e99565b80600590816104c39190611883565b5050565b6006818051602081018201805184825260208301602085012081835280955050505050505f915090505481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610521610e99565b60126004541115610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055e906119c2565b60405180910390fd5b8060048190555050565b610579610e99565b6105825f610f20565b565b61058c610e99565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6105d7610e99565b5f816fffffffffffffffffffffffffffffffff166080846fffffffffffffffffffffffffffffffff16901b61060c9190611a0d565b90508060068560405161061f9190611a7a565b9081526020016040518091039020819055507fa7fc99ed7617309ee23f63ae90196a1e490d362e6f6a547a59bc809ee229178284848460405161066493929190611a90565b60405180910390a150505050565b61067a610e99565b8051825114610687575f5ffd5b5f5f90505b8251816fffffffffffffffffffffffffffffffff1610156107a4575f83826fffffffffffffffffffffffffffffffff16815181106106cd576106cc611acc565b5b602002602001015190505f83836fffffffffffffffffffffffffffffffff16815181106106fd576106fc611acc565b5b602002602001015190505f608082901c90505f7001000000000000000000000000000000008361072d9190611b26565b9050826006856040516107409190611a7a565b9081526020016040518091039020819055507fa7fc99ed7617309ee23f63ae90196a1e490d362e6f6a547a59bc809ee229178284838360405161078593929190611a90565b60405180910390a150505050808061079c90611b56565b91505061068c565b505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f610811836040518060400160405280600981526020017f73555344702f5553440000000000000000000000000000000000000000000000815250610fe1565b156108285761081e610881565b429150915061087c565b5f6006846040516108399190611a7a565b90815260200160405180910390205490505f700100000000000000000000000000000000826108689190611b26565b90505f608083901c90508082945094505050505b915091565b5f5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f610939600580546108b8906116b3565b80601f01602080910402602001604051908101604052809291908181526020018280546108e4906116b3565b801561092f5780601f106109065761010080835404028352916020019161092f565b820191905f5260205f20905b81548152906001019060200180831161091257829003601f168201915b50505050506107d0565b5090505f8273ffffffffffffffffffffffffffffffffffffffff166307a2d13a6012600a6109679190611cbc565b6040518263ffffffff1660e01b81526004016109839190611319565b602060405180830381865afa15801561099e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c29190611d1a565b90506012600a6109d29190611cbc565b826fffffffffffffffffffffffffffffffff16826109f09190611d45565b6109fa9190611d86565b935050505090565b610a0a610e99565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16638db9653f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae09190611d1a565b91505090565b60045481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5f8373ffffffffffffffffffffffffffffffffffffffff1663d703a0cd6012600a610b889190611cbc565b6040518263ffffffff1660e01b8152600401610ba49190611319565b5f60405180830381865afa158015610bbe573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610be69190611f1f565b915091505f5f90505f5f90505b8351811015610dcf575f848281518110610c1057610c0f611acc565b5b602002602001015190505f848381518110610c2e57610c2d611acc565b5b602002602001015190505f8273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca69190611fcb565b905060128160ff161015610ce7575f8160ff166012610cc59190611ff6565b905080600a610cd49190611cbc565b83610cdf9190611d45565b925050610d23565b60128160ff161115610d22575f60128260ff16610d049190611ff6565b905080600a610d139190611cbc565b83610d1e9190611d86565b9250505b5b5f8873ffffffffffffffffffffffffffffffffffffffff166338c269eb856040518263ffffffff1660e01b8152600401610d5d919061107f565b60a060405180830381865afa158015610d78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9c9190612029565b9450505050505f8382610daf9190611d45565b90508087610dbd9190611a0d565b96505050505050806001019050610bf3565b505f600454601280610de19190611a0d565b610deb9190611ff6565b905080600a610dfa9190611cbc565b82610e059190611d86565b965050505050505090565b610e18610e99565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e88575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610e7f919061107f565b60405180910390fd5b610e9181610f20565b50565b601281565b610ea1611039565b73ffffffffffffffffffffffffffffffffffffffff16610ebf6107a9565b73ffffffffffffffffffffffffffffffffffffffff1614610f1e57610ee2611039565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610f15919061107f565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81604051602001610ff39190611a7a565b604051602081830303815290604052805190602001208360405160200161101a9190611a7a565b6040516020818303038152906040528051906020012014905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61106982611040565b9050919050565b6110798161105f565b82525050565b5f6020820190506110925f830184611070565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6110da82611098565b6110e481856110a2565b93506110f48185602086016110b2565b6110fd816110c0565b840191505092915050565b5f6020820190508181035f83015261112081846110d0565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b6111428161105f565b811461114c575f5ffd5b50565b5f8135905061115d81611139565b92915050565b5f6020828403121561117857611177611131565b5b5f6111858482850161114f565b91505092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111cc826110c0565b810181811067ffffffffffffffff821117156111eb576111ea611196565b5b80604052505050565b5f6111fd611128565b905061120982826111c3565b919050565b5f67ffffffffffffffff82111561122857611227611196565b5b611231826110c0565b9050602081019050919050565b828183375f83830152505050565b5f61125e6112598461120e565b6111f4565b90508281526020810184848401111561127a57611279611192565b5b61128584828561123e565b509392505050565b5f82601f8301126112a1576112a061118e565b5b81356112b184826020860161124c565b91505092915050565b5f602082840312156112cf576112ce611131565b5b5f82013567ffffffffffffffff8111156112ec576112eb611135565b5b6112f88482850161128d565b91505092915050565b5f819050919050565b61131381611301565b82525050565b5f60208201905061132c5f83018461130a565b92915050565b61133b81611301565b8114611345575f5ffd5b50565b5f8135905061135681611332565b92915050565b5f6020828403121561137157611370611131565b5b5f61137e84828501611348565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6113ab81611387565b81146113b5575f5ffd5b50565b5f813590506113c6816113a2565b92915050565b5f5f5f606084860312156113e3576113e2611131565b5b5f84013567ffffffffffffffff811115611400576113ff611135565b5b61140c8682870161128d565b935050602061141d868287016113b8565b925050604061142e868287016113b8565b9150509250925092565b5f67ffffffffffffffff82111561145257611451611196565b5b602082029050602081019050919050565b5f5ffd5b5f61147961147484611438565b6111f4565b9050808382526020820190506020840283018581111561149c5761149b611463565b5b835b818110156114e357803567ffffffffffffffff8111156114c1576114c061118e565b5b8086016114ce898261128d565b8552602085019450505060208101905061149e565b5050509392505050565b5f82601f8301126115015761150061118e565b5b8135611511848260208601611467565b91505092915050565b5f67ffffffffffffffff82111561153457611533611196565b5b602082029050602081019050919050565b5f6115576115528461151a565b6111f4565b9050808382526020820190506020840283018581111561157a57611579611463565b5b835b818110156115a3578061158f8882611348565b84526020840193505060208101905061157c565b5050509392505050565b5f82601f8301126115c1576115c061118e565b5b81356115d1848260208601611545565b91505092915050565b5f5f604083850312156115f0576115ef611131565b5b5f83013567ffffffffffffffff81111561160d5761160c611135565b5b611619858286016114ed565b925050602083013567ffffffffffffffff81111561163a57611639611135565b5b611646858286016115ad565b9150509250929050565b61165981611387565b82525050565b5f6040820190506116725f830185611650565b61167f6020830184611650565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806116ca57607f821691505b6020821081036116dd576116dc611686565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261173f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611704565b6117498683611704565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61178461177f61177a84611301565b611761565b611301565b9050919050565b5f819050919050565b61179d8361176a565b6117b16117a98261178b565b848454611710565b825550505050565b5f5f905090565b6117c86117b9565b6117d3818484611794565b505050565b5b818110156117f6576117eb5f826117c0565b6001810190506117d9565b5050565b601f82111561183b5761180c816116e3565b611815846116f5565b81016020851015611824578190505b611838611830856116f5565b8301826117d8565b50505b505050565b5f82821c905092915050565b5f61185b5f1984600802611840565b1980831691505092915050565b5f611873838361184c565b9150826002028217905092915050565b61188c82611098565b67ffffffffffffffff8111156118a5576118a4611196565b5b6118af82546116b3565b6118ba8282856117fa565b5f60209050601f8311600181146118eb575f84156118d9578287015190505b6118e38582611868565b86555061194a565b601f1984166118f9866116e3565b5f5b82811015611920578489015182556001820191506020850194506020810190506118fb565b8683101561193d5784890151611939601f89168261184c565b8355505b6001600288020188555050505b505050505050565b7f4f757470757420646563696d616c73206d757374206265206c657373206f72205f8201527f657175616c2051554552595f444543494d414c532e0000000000000000000000602082015250565b5f6119ac6035836110a2565b91506119b782611952565b604082019050919050565b5f6020820190508181035f8301526119d9816119a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a1782611301565b9150611a2283611301565b9250828201905080821115611a3a57611a396119e0565b5b92915050565b5f81905092915050565b5f611a5482611098565b611a5e8185611a40565b9350611a6e8185602086016110b2565b80840191505092915050565b5f611a858284611a4a565b915081905092915050565b5f6060820190508181035f830152611aa881866110d0565b9050611ab76020830185611650565b611ac46040830184611650565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611b3082611301565b9150611b3b83611301565b925082611b4b57611b4a611af9565b5b828206905092915050565b5f611b6082611387565b91506fffffffffffffffffffffffffffffffff8203611b8257611b816119e0565b5b600182019050919050565b5f8160011c9050919050565b5f5f8291508390505b6001851115611be257808604811115611bbe57611bbd6119e0565b5b6001851615611bcd5780820291505b8081029050611bdb85611b8d565b9450611ba2565b94509492505050565b5f82611bfa5760019050611cb5565b81611c07575f9050611cb5565b8160018114611c1d5760028114611c2757611c56565b6001915050611cb5565b60ff841115611c3957611c386119e0565b5b8360020a915084821115611c5057611c4f6119e0565b5b50611cb5565b5060208310610133831016604e8410600b8410161715611c8b5782820a905083811115611c8657611c856119e0565b5b611cb5565b611c988484846001611b99565b92509050818404811115611caf57611cae6119e0565b5b81810290505b9392505050565b5f611cc682611301565b9150611cd183611301565b9250611cfe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611beb565b905092915050565b5f81519050611d1481611332565b92915050565b5f60208284031215611d2f57611d2e611131565b5b5f611d3c84828501611d06565b91505092915050565b5f611d4f82611301565b9150611d5a83611301565b9250828202611d6881611301565b91508282048414831517611d7f57611d7e6119e0565b5b5092915050565b5f611d9082611301565b9150611d9b83611301565b925082611dab57611daa611af9565b5b828204905092915050565b5f67ffffffffffffffff821115611dd057611dcf611196565b5b602082029050602081019050919050565b5f81519050611def81611139565b92915050565b5f611e07611e0284611db6565b6111f4565b90508083825260208201905060208402830185811115611e2a57611e29611463565b5b835b81811015611e535780611e3f8882611de1565b845260208401935050602081019050611e2c565b5050509392505050565b5f82601f830112611e7157611e7061118e565b5b8151611e81848260208601611df5565b91505092915050565b5f611e9c611e978461151a565b6111f4565b90508083825260208201905060208402830185811115611ebf57611ebe611463565b5b835b81811015611ee85780611ed48882611d06565b845260208401935050602081019050611ec1565b5050509392505050565b5f82601f830112611f0657611f0561118e565b5b8151611f16848260208601611e8a565b91505092915050565b5f5f60408385031215611f3557611f34611131565b5b5f83015167ffffffffffffffff811115611f5257611f51611135565b5b611f5e85828601611e5d565b925050602083015167ffffffffffffffff811115611f7f57611f7e611135565b5b611f8b85828601611ef2565b9150509250929050565b5f60ff82169050919050565b611faa81611f95565b8114611fb4575f5ffd5b50565b5f81519050611fc581611fa1565b92915050565b5f60208284031215611fe057611fdf611131565b5b5f611fed84828501611fb7565b91505092915050565b5f61200082611301565b915061200b83611301565b9250828203905081811115612023576120226119e0565b5b92915050565b5f5f5f5f5f60a0868803121561204257612041611131565b5b5f61204f88828901611d06565b955050602061206088828901611d06565b945050604061207188828901611d06565b935050606061208288828901611d06565b925050608061209388828901611d06565b915050929550929590935056fea2646970667358221220c20028e91e19a87778fb0875730cd86c7a3c9d213a4c253198459ac3d919045e64736f6c634300081d0033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in S
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.