Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00Latest 25 from a total of 28 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Add Config | 15710355 | 67 days ago | IN | 0 ETH | 0.00000293 | ||||
| Add Config | 12169649 | 108 days ago | IN | 0 ETH | 0.00000293 | ||||
| Add Config | 11384603 | 117 days ago | IN | 0 ETH | 0.00000295 | ||||
| Add Config | 8963558 | 145 days ago | IN | 0 ETH | 0.00000296 | ||||
| Add Config | 8795376 | 147 days ago | IN | 0 ETH | 0.00000292 | ||||
| Add Config | 7236212 | 165 days ago | IN | 0 ETH | 0.00000298 | ||||
| Add Config | 4730285 | 194 days ago | IN | 0 ETH | 0.00000149 | ||||
| Add Config | 4311237 | 199 days ago | IN | 0 ETH | 0.00000157 | ||||
| Add Config | 4152115 | 201 days ago | IN | 0 ETH | 0.00000157 | ||||
| Add Config | 4151753 | 201 days ago | IN | 0 ETH | 0.00000157 | ||||
| Add Config | 4151436 | 201 days ago | IN | 0 ETH | 0.00000157 | ||||
| Add Config | 4147713 | 201 days ago | IN | 0 ETH | 0.0000016 | ||||
| Add Config | 4147389 | 201 days ago | IN | 0 ETH | 0.00000159 | ||||
| Add Config | 4147059 | 201 days ago | IN | 0 ETH | 0.0000016 | ||||
| Add Config | 4146729 | 201 days ago | IN | 0 ETH | 0.0000016 | ||||
| Add Config | 4146374 | 201 days ago | IN | 0 ETH | 0.0000016 | ||||
| Add Config | 4145990 | 201 days ago | IN | 0 ETH | 0.00000159 | ||||
| Add Config | 4073766 | 202 days ago | IN | 0 ETH | 0.00000173 | ||||
| Add Config | 4073414 | 202 days ago | IN | 0 ETH | 0.00000175 | ||||
| Add Config | 4072985 | 202 days ago | IN | 0 ETH | 0.00000174 | ||||
| Add Config | 4072648 | 202 days ago | IN | 0 ETH | 0.00000174 | ||||
| Add Config | 4072063 | 202 days ago | IN | 0 ETH | 0.00000175 | ||||
| Add Config | 3611367 | 207 days ago | IN | 0 ETH | 0.0000016 | ||||
| Add Config | 3610767 | 207 days ago | IN | 0 ETH | 0.0000016 | ||||
| Add Config | 3610318 | 207 days ago | IN | 0 ETH | 0.0000016 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
OCRConfigurationStoreEVMSimple
Compiler Version
v0.8.19+commit.7dd6d404
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.0;
import "./interfaces/TypeAndVersionInterface.sol";
import "./lib/ConfigDigestUtilEVMSimple.sol";
import "./OwnerIsCreator.sol";
import "./OCR2Abstract.sol";
/// @title OCRConfigurationStoreEVMSimple
/// @notice This contract stores configurations for protocol versions OCR2 and
/// above in contract storage. It uses the "EVMSimple" config digester.
contract OCRConfigurationStoreEVMSimple is TypeAndVersionInterface {
struct ConfigurationEVMSimple {
address[] signers;
address[] transmitters;
bytes onchainConfig;
bytes offchainConfig;
address contractAddress;
uint64 offchainConfigVersion;
uint32 configCount;
uint8 f;
}
/// @notice a list of configurations keyed by their digest
mapping(bytes32 => ConfigurationEVMSimple) internal s_configurations;
/// @notice emitted when a new configuration is added
event NewConfiguration(bytes32 indexed configDigest);
/// @notice adds a new configuration to the store
function addConfig(ConfigurationEVMSimple calldata configuration) external returns (bytes32) {
bytes32 configDigest = ConfigDigestUtilEVMSimple.configDigestFromConfigData(
block.chainid,
configuration.contractAddress,
configuration.configCount,
configuration.signers,
configuration.transmitters,
configuration.f,
configuration.onchainConfig,
configuration.offchainConfigVersion,
configuration.offchainConfig
);
s_configurations[configDigest] = configuration;
emit NewConfiguration(configDigest);
return configDigest;
}
/// @notice reads a configuration from the store
function readConfig(bytes32 configDigest) external view returns (ConfigurationEVMSimple memory) {
return s_configurations[configDigest];
}
/// @inheritdoc TypeAndVersionInterface
function typeAndVersion() external override pure virtual returns (string memory)
{
return "OCRConfigurationStoreEVMSimple 1.0.0";
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./ConfirmedOwnerWithProposal.sol";
/**
* @title The ConfirmedOwner contract
* @notice A contract with helpers for basic contract ownership.
*/
contract ConfirmedOwner is ConfirmedOwnerWithProposal {
constructor(
address newOwner
)
ConfirmedOwnerWithProposal(
newOwner,
address(0)
)
{
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./interfaces/OwnableInterface.sol";
/**
* @title The ConfirmedOwner contract
* @notice A contract with helpers for basic contract ownership.
*/
contract ConfirmedOwnerWithProposal is OwnableInterface {
address private s_owner;
address private s_pendingOwner;
event OwnershipTransferRequested(
address indexed from,
address indexed to
);
event OwnershipTransferred(
address indexed from,
address indexed to
);
constructor(
address newOwner,
address pendingOwner
) {
require(newOwner != address(0), "Cannot set owner to zero");
s_owner = newOwner;
if (pendingOwner != address(0)) {
_transferOwnership(pendingOwner);
}
}
/**
* @notice Allows an owner to begin transferring ownership to a new address,
* pending.
*/
function transferOwnership(
address to
)
public
override
onlyOwner()
{
_transferOwnership(to);
}
/**
* @notice Allows an ownership transfer to be completed by the recipient.
*/
function acceptOwnership()
external
override
{
require(msg.sender == s_pendingOwner, "Must be proposed owner");
address oldOwner = s_owner;
s_owner = msg.sender;
s_pendingOwner = address(0);
emit OwnershipTransferred(oldOwner, msg.sender);
}
/**
* @notice Get the current owner
*/
function owner()
public
view
override
returns (
address
)
{
return s_owner;
}
/**
* @notice validate, transfer ownership, and emit relevant events
*/
function _transferOwnership(
address to
)
private
{
require(to != msg.sender, "Cannot transfer to self");
s_pendingOwner = to;
emit OwnershipTransferRequested(s_owner, to);
}
/**
* @notice validate access
*/
function _validateOwnership()
internal
view
{
require(msg.sender == s_owner, "Only callable by owner");
}
/**
* @notice Reverts if called by anyone other than the contract owner.
*/
modifier onlyOwner() {
_validateOwnership();
_;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./interfaces/TypeAndVersionInterface.sol";
abstract contract OCR2Abstract is TypeAndVersionInterface {
// Maximum number of oracles the offchain reporting protocol is designed for
uint256 constant internal maxNumOracles = 31;
/**
* @notice triggers a new run of the offchain reporting protocol
* @param previousConfigBlockNumber block in which the previous config was set, to simplify historic analysis
* @param configDigest configDigest of this configuration
* @param configCount ordinal number of this config setting among all config settings over the life of this contract
* @param signers ith element is address ith oracle uses to sign a report
* @param transmitters ith element is address ith oracle uses to transmit a report via the transmit method
* @param f maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly
* @param onchainConfig serialized configuration used by the contract (and possibly oracles)
* @param offchainConfigVersion version of the serialization format used for "offchainConfig" parameter
* @param offchainConfig serialized configuration used by the oracles exclusively and only passed through the contract
*/
event ConfigSet(
uint32 previousConfigBlockNumber,
bytes32 configDigest,
uint64 configCount,
address[] signers,
address[] transmitters,
uint8 f,
bytes onchainConfig,
uint64 offchainConfigVersion,
bytes offchainConfig
);
/**
* @notice sets offchain reporting protocol configuration incl. participating oracles
* @param signers addresses with which oracles sign the reports
* @param transmitters addresses oracles use to transmit the reports
* @param f number of faulty oracles the system can tolerate
* @param onchainConfig serialized configuration used by the contract (and possibly oracles)
* @param offchainConfigVersion version number for offchainEncoding schema
* @param offchainConfig serialized configuration used by the oracles exclusively and only passed through the contract
*/
function setConfig(
address[] memory signers,
address[] memory transmitters,
uint8 f,
bytes memory onchainConfig,
uint64 offchainConfigVersion,
bytes memory offchainConfig
)
external
virtual;
/**
* @notice information about current offchain reporting protocol configuration
* @return configCount ordinal number of current config, out of all configs applied to this contract so far
* @return blockNumber block at which this config was set
* @return configDigest domain-separation tag for current config (see _configDigestFromConfigData)
*/
function latestConfigDetails()
external
view
virtual
returns (
uint32 configCount,
uint32 blockNumber,
bytes32 configDigest
);
function _configDigestFromConfigData(
uint256 chainId,
address contractAddress,
uint64 configCount,
address[] memory signers,
address[] memory transmitters,
uint8 f,
bytes memory onchainConfig,
uint64 offchainConfigVersion,
bytes memory offchainConfig
)
internal
pure
returns (bytes32)
{
uint256 h = uint256(keccak256(abi.encode(chainId, contractAddress, configCount,
signers, transmitters, f, onchainConfig, offchainConfigVersion, offchainConfig
)));
uint256 prefixMask = type(uint256).max << (256-16); // 0xFFFF00..00
uint256 prefix = 0x0001 << (256-16); // 0x000100..00
return bytes32((prefix & prefixMask) | (h & ~prefixMask));
}
/**
* @notice optionally emitted to indicate the latest configDigest and epoch for
which a report was successfully transmitted. Alternatively, the contract may
use latestConfigDigestAndEpoch with scanLogs set to false.
*/
event Transmitted(
bytes32 configDigest,
uint32 epoch
);
/**
* @notice optionally returns the latest configDigest and epoch for which a
report was successfully transmitted. Alternatively, the contract may return
scanLogs set to true and use Transmitted events to provide this information
to offchain watchers.
* @return scanLogs indicates whether to rely on the configDigest and epoch
returned or whether to scan logs for the Transmitted event instead.
* @return configDigest
* @return epoch
*/
function latestConfigDigestAndEpoch()
external
view
virtual
returns(
bool scanLogs,
bytes32 configDigest,
uint32 epoch
);
/**
* @notice transmit is called to post a new report to the contract
* @param reportContext serialized report context containing configDigest, epoch, round, extraHash
* @param report serialized report, which the signatures are signing
* @param rs ith element is the R components of the ith signature on report. Must have at most maxNumOracles entries
* @param ss ith element is the S components of the ith signature on report. Must have at most maxNumOracles entries
* @param rawVs ith element is the the V component of the ith signature
*/
function transmit(
// NOTE: If these parameters are changed, expectedMsgDataLength and/or
// TRANSMIT_MSGDATA_CONSTANT_LENGTH_COMPONENT need to be changed accordingly
bytes32[3] calldata reportContext,
bytes calldata report,
bytes32[] calldata rs, bytes32[] calldata ss, bytes32 rawVs // signatures
)
external
virtual;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./ConfirmedOwner.sol";
/**
* @title The OwnerIsCreator contract
* @notice A contract with helpers for basic contract ownership.
*/
contract OwnerIsCreator is ConfirmedOwner {
constructor(
)
ConfirmedOwner(
msg.sender
)
{
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface OwnableInterface {
function owner()
external
returns (
address
);
function transferOwnership(
address recipient
)
external;
function acceptOwnership()
external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface TypeAndVersionInterface{
function typeAndVersion()
external
pure
returns (string memory);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/// @title ConfigDigestUtilEVMSimple
/// @notice ConfigDigest related utility functions for "EVMSimple" config
/// digester
library ConfigDigestUtilEVMSimple {
function configDigestFromConfigData(
uint256 chainId,
address contractAddress,
uint64 configCount,
address[] memory signers,
address[] memory transmitters,
uint8 f,
bytes memory onchainConfig,
uint64 offchainConfigVersion,
bytes memory offchainConfig
) internal pure returns (bytes32)
{
uint256 hash = uint256(
keccak256(
abi.encode(
chainId,
contractAddress,
configCount,
signers,
transmitters,
f,
onchainConfig,
offchainConfigVersion,
offchainConfig
)));
uint256 prefixMask = type(uint256).max << (256-16); // 0xFFFF00..00
uint256 prefix = 0x0001 << (256-16); // 0x000100..00
return bytes32((prefix & prefixMask) | (hash & ~prefixMask));
}
}{
"evmVersion": "paris",
"libraries": {},
"metadata": {
"appendCBOR": true,
"bytecodeHash": "ipfs",
"useLiteralContent": false
},
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/"
]
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"configDigest","type":"bytes32"}],"name":"NewConfiguration","type":"event"},{"inputs":[{"components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"address[]","name":"transmitters","type":"address[]"},{"internalType":"bytes","name":"onchainConfig","type":"bytes"},{"internalType":"bytes","name":"offchainConfig","type":"bytes"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"offchainConfigVersion","type":"uint64"},{"internalType":"uint32","name":"configCount","type":"uint32"},{"internalType":"uint8","name":"f","type":"uint8"}],"internalType":"struct OCRConfigurationStoreEVMSimple.ConfigurationEVMSimple","name":"configuration","type":"tuple"}],"name":"addConfig","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"configDigest","type":"bytes32"}],"name":"readConfig","outputs":[{"components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"address[]","name":"transmitters","type":"address[]"},{"internalType":"bytes","name":"onchainConfig","type":"bytes"},{"internalType":"bytes","name":"offchainConfig","type":"bytes"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"offchainConfigVersion","type":"uint64"},{"internalType":"uint32","name":"configCount","type":"uint32"},{"internalType":"uint8","name":"f","type":"uint8"}],"internalType":"struct OCRConfigurationStoreEVMSimple.ConfigurationEVMSimple","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"typeAndVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50610d46806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063181f5a7714610046578063a6d3ad9e14610064578063bc4215dc14610085575b600080fd5b61004e6100a5565b60405161005b9190610591565b60405180910390f35b6100776100723660046105ab565b6100c5565b60405190815260200161005b565b6100986100933660046105e7565b610267565b60405161005b9190610644565b6060604051806060016040528060248152602001610ced60249139905090565b600080610217466100dc60a0860160808701610731565b6100ec60e0870160c08801610760565b63ffffffff166100fc878061077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061013b92505050602089018961077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061017e925050506101008a0160e08b016107dd565b61018b60408b018b6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101d09250505060c08c0160a08d01610857565b6101dd60608d018d6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f092505050565b600081815260208190526040902090915083906102348282610aa5565b505060405181907fb07c231f5a1f53b6761761661dcafa59d063ff6e9929e00ad1fb9cb9c5b02e4490600090a292915050565b60408051610100810182526060808252602082018190529181018290528181019190915260006080820181905260a0820181905260c0820181905260e08201526000828152602081815260409182902082518154610120938102820184019094526101008101848152909391928492849184018282801561031157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102f3575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561037357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610355575b5050505050815260200160028201805461038c90610943565b80601f01602080910402602001604051908101604052809291908181526020018280546103b890610943565b80156104055780601f106103da57610100808354040283529160200191610405565b820191906000526020600020905b8154815290600101906020018083116103e857829003601f168201915b5050505050815260200160038201805461041e90610943565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610943565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b505050918352505060048201546001600160a01b0381166020830152600160a01b810467ffffffffffffffff166040830152600160e01b900463ffffffff16606082015260059091015460ff1660809091015292915050565b6000808a8a8a8a8a8a8a8a8a60405160200161051499989796959493929190610c52565b60408051601f1981840301815291905280516020909101206001600160f01b0316600160f01b179150509998505050505050505050565b6000815180845260005b8181101561057157602081850181015186830182015201610555565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006105a4602083018461054b565b9392505050565b6000602082840312156105bd57600080fd5b813567ffffffffffffffff8111156105d457600080fd5b820161010081850312156105a457600080fd5b6000602082840312156105f957600080fd5b5035919050565b600081518084526020808501945080840160005b838110156106395781516001600160a01b031687529582019590820190600101610614565b509495945050505050565b6020815260008251610100806020850152610663610120850183610600565b91506020850151601f19808685030160408701526106818483610600565b9350604087015191508086850301606087015261069e848361054b565b93506060870151915080868503016080870152506106bc838261054b565b92505060808501516106d960a08601826001600160a01b03169052565b5060a085015167ffffffffffffffff811660c08601525060c085015163ffffffff811660e08601525060e085015160ff8116858301525090949350505050565b6001600160a01b038116811461072e57600080fd5b50565b60006020828403121561074357600080fd5b81356105a481610719565b63ffffffff8116811461072e57600080fd5b60006020828403121561077257600080fd5b81356105a48161074e565b6000808335601e1984360301811261079457600080fd5b83018035915067ffffffffffffffff8211156107af57600080fd5b6020019150600581901b36038213156107c757600080fd5b9250929050565b60ff8116811461072e57600080fd5b6000602082840312156107ef57600080fd5b81356105a4816107ce565b6000808335601e1984360301811261081157600080fd5b83018035915067ffffffffffffffff82111561082c57600080fd5b6020019150368190038213156107c757600080fd5b67ffffffffffffffff8116811461072e57600080fd5b60006020828403121561086957600080fd5b81356105a481610841565b634e487b7160e01b600052604160045260246000fd5b5b8181101561089f576000815560010161088b565b5050565b600081356108b081610719565b92915050565b67ffffffffffffffff8311156108ce576108ce610874565b600160401b8311156108e2576108e2610874565b8054838255808410156109085781600052602060002061090682820186830161088a565b505b50818160005260208060002060005b8681101561093a57833561092a81610719565b8282015592820192600101610917565b50505050505050565b600181811c9082168061095757607f821691505b60208210810361097757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156109b957806000526020600020601f840160051c810160208510156109a45750805b6109b6601f850160051c83018261088a565b50505b505050565b67ffffffffffffffff8311156109d6576109d6610874565b6109ea836109e48354610943565b8361097d565b6000601f841160018114610a1e5760008515610a065750838201355b600019600387901b1c1916600186901b1783556109b6565b600083815260209020601f19861690835b82811015610a4f5786850135825560209485019460019092019101610a2f565b5086821015610a6c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600081356108b081610841565b600081356108b08161074e565b600081356108b0816107ce565b610aaf828361077d565b67ffffffffffffffff811115610ac757610ac7610874565b600160401b811115610adb57610adb610874565b825481845580821015610b0157836000526020600020610aff82820184830161088a565b505b508260005260208060002060005b83811015610b32578435610b2281610719565b8282015593820193600101610b0f565b5050610b408186018661077d565b9350915050610b538282600186016108b6565b5050610b6260408301836107fa565b610b708183600286016109be565b5050610b7f60608301836107fa565b610b8d8183600386016109be565b505060048101610bbf610ba2608085016108a3565b82546001600160a01b0319166001600160a01b0391909116178255565b610bfa610bce60a08501610a7e565b82805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b610c2d610c0960c08501610a8b565b8280546001600160e01b031660e09290921b6001600160e01b031916919091179055565b5061089f610c3d60e08401610a98565b6005830160ff821660ff198254161781555050565b8981526001600160a01b038916602082015267ffffffffffffffff888116604083015261012060608301819052600091610c8e8483018b610600565b91508382036080850152610ca2828a610600565b915060ff881660a085015283820360c0850152610cbf828861054b565b90861660e08501528381036101008501529050610cdc818561054b565b9c9b50505050505050505050505056fe4f4352436f6e66696775726174696f6e53746f726545564d53696d706c6520312e302e30a2646970667358221220f63ccb0444dc36741e04ca466f32145c6d83432ddfaf0f2b831d74b31436736964736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063181f5a7714610046578063a6d3ad9e14610064578063bc4215dc14610085575b600080fd5b61004e6100a5565b60405161005b9190610591565b60405180910390f35b6100776100723660046105ab565b6100c5565b60405190815260200161005b565b6100986100933660046105e7565b610267565b60405161005b9190610644565b6060604051806060016040528060248152602001610ced60249139905090565b600080610217466100dc60a0860160808701610731565b6100ec60e0870160c08801610760565b63ffffffff166100fc878061077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061013b92505050602089018961077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061017e925050506101008a0160e08b016107dd565b61018b60408b018b6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101d09250505060c08c0160a08d01610857565b6101dd60608d018d6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f092505050565b600081815260208190526040902090915083906102348282610aa5565b505060405181907fb07c231f5a1f53b6761761661dcafa59d063ff6e9929e00ad1fb9cb9c5b02e4490600090a292915050565b60408051610100810182526060808252602082018190529181018290528181019190915260006080820181905260a0820181905260c0820181905260e08201526000828152602081815260409182902082518154610120938102820184019094526101008101848152909391928492849184018282801561031157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102f3575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561037357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610355575b5050505050815260200160028201805461038c90610943565b80601f01602080910402602001604051908101604052809291908181526020018280546103b890610943565b80156104055780601f106103da57610100808354040283529160200191610405565b820191906000526020600020905b8154815290600101906020018083116103e857829003601f168201915b5050505050815260200160038201805461041e90610943565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610943565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b505050918352505060048201546001600160a01b0381166020830152600160a01b810467ffffffffffffffff166040830152600160e01b900463ffffffff16606082015260059091015460ff1660809091015292915050565b6000808a8a8a8a8a8a8a8a8a60405160200161051499989796959493929190610c52565b60408051601f1981840301815291905280516020909101206001600160f01b0316600160f01b179150509998505050505050505050565b6000815180845260005b8181101561057157602081850181015186830182015201610555565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006105a4602083018461054b565b9392505050565b6000602082840312156105bd57600080fd5b813567ffffffffffffffff8111156105d457600080fd5b820161010081850312156105a457600080fd5b6000602082840312156105f957600080fd5b5035919050565b600081518084526020808501945080840160005b838110156106395781516001600160a01b031687529582019590820190600101610614565b509495945050505050565b6020815260008251610100806020850152610663610120850183610600565b91506020850151601f19808685030160408701526106818483610600565b9350604087015191508086850301606087015261069e848361054b565b93506060870151915080868503016080870152506106bc838261054b565b92505060808501516106d960a08601826001600160a01b03169052565b5060a085015167ffffffffffffffff811660c08601525060c085015163ffffffff811660e08601525060e085015160ff8116858301525090949350505050565b6001600160a01b038116811461072e57600080fd5b50565b60006020828403121561074357600080fd5b81356105a481610719565b63ffffffff8116811461072e57600080fd5b60006020828403121561077257600080fd5b81356105a48161074e565b6000808335601e1984360301811261079457600080fd5b83018035915067ffffffffffffffff8211156107af57600080fd5b6020019150600581901b36038213156107c757600080fd5b9250929050565b60ff8116811461072e57600080fd5b6000602082840312156107ef57600080fd5b81356105a4816107ce565b6000808335601e1984360301811261081157600080fd5b83018035915067ffffffffffffffff82111561082c57600080fd5b6020019150368190038213156107c757600080fd5b67ffffffffffffffff8116811461072e57600080fd5b60006020828403121561086957600080fd5b81356105a481610841565b634e487b7160e01b600052604160045260246000fd5b5b8181101561089f576000815560010161088b565b5050565b600081356108b081610719565b92915050565b67ffffffffffffffff8311156108ce576108ce610874565b600160401b8311156108e2576108e2610874565b8054838255808410156109085781600052602060002061090682820186830161088a565b505b50818160005260208060002060005b8681101561093a57833561092a81610719565b8282015592820192600101610917565b50505050505050565b600181811c9082168061095757607f821691505b60208210810361097757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156109b957806000526020600020601f840160051c810160208510156109a45750805b6109b6601f850160051c83018261088a565b50505b505050565b67ffffffffffffffff8311156109d6576109d6610874565b6109ea836109e48354610943565b8361097d565b6000601f841160018114610a1e5760008515610a065750838201355b600019600387901b1c1916600186901b1783556109b6565b600083815260209020601f19861690835b82811015610a4f5786850135825560209485019460019092019101610a2f565b5086821015610a6c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600081356108b081610841565b600081356108b08161074e565b600081356108b0816107ce565b610aaf828361077d565b67ffffffffffffffff811115610ac757610ac7610874565b600160401b811115610adb57610adb610874565b825481845580821015610b0157836000526020600020610aff82820184830161088a565b505b508260005260208060002060005b83811015610b32578435610b2281610719565b8282015593820193600101610b0f565b5050610b408186018661077d565b9350915050610b538282600186016108b6565b5050610b6260408301836107fa565b610b708183600286016109be565b5050610b7f60608301836107fa565b610b8d8183600386016109be565b505060048101610bbf610ba2608085016108a3565b82546001600160a01b0319166001600160a01b0391909116178255565b610bfa610bce60a08501610a7e565b82805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b610c2d610c0960c08501610a8b565b8280546001600160e01b031660e09290921b6001600160e01b031916919091179055565b5061089f610c3d60e08401610a98565b6005830160ff821660ff198254161781555050565b8981526001600160a01b038916602082015267ffffffffffffffff888116604083015261012060608301819052600091610c8e8483018b610600565b91508382036080850152610ca2828a610600565b915060ff881660a085015283820360c0850152610cbf828861054b565b90861660e08501528381036101008501529050610cdc818561054b565b9c9b50505050505050505050505056fe4f4352436f6e66696775726174696f6e53746f726545564d53696d706c6520312e302e30a2646970667358221220f63ccb0444dc36741e04ca466f32145c6d83432ddfaf0f2b831d74b31436736964736f6c63430008130033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
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.