Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 15395675 | 1248 days ago | IN | 0 ETH | 0.00056958 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AxelarAuthWeighted
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-08-26
*/
// Sources flattened with hardhat v2.9.9 https://hardhat.org
// File contracts/interfaces/IOwnable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;
interface IOwnable {
error NotOwner();
error InvalidOwner();
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function owner() external view returns (address);
function transferOwnership(address newOwner) external;
}
// File contracts/interfaces/IAxelarAuth.sol
interface IAxelarAuth is IOwnable {
function validateProof(bytes32 messageHash, bytes calldata proof) external returns (bool currentOperators);
function transferOperatorship(bytes calldata params) external;
}
// File contracts/interfaces/IAxelarAuthWeighted.sol
interface IAxelarAuthWeighted is IAxelarAuth {
error InvalidOperators();
error InvalidThreshold();
error DuplicateOperators();
error MalformedSigners();
error LowSignaturesWeight();
error InvalidWeights();
event OperatorshipTransferred(address[] newOperators, uint256[] newWeights, uint256 newThreshold);
function currentEpoch() external view returns (uint256);
function hashForEpoch(uint256 epoch) external view returns (bytes32);
function epochForHash(bytes32 hash) external view returns (uint256);
}
// File contracts/ECDSA.sol
/**
* @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
*
* These functions can be used to verify that a message was signed by the holder
* of the private keys of a given address.
*/
library ECDSA {
error InvalidSignatureLength();
error InvalidS();
error InvalidV();
error InvalidSignature();
/**
* @dev Returns the address that signed a hashed message (`hash`) with
* `signature`. This address can then be used for verification purposes.
*
* The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
* this function rejects them by requiring the `s` value to be in the lower
* half order, and the `v` value to be either 27 or 28.
*
* IMPORTANT: `hash` _must_ be the result of a hash operation for the
* verification to be secure: it is possible to craft signatures that
* recover to arbitrary addresses for non-hashed data. A safe way to ensure
* this is by receiving a hash of the original message (which may otherwise
* be too long), and then calling {toEthSignedMessageHash} on it.
*/
function recover(bytes32 hash, bytes memory signature) internal pure returns (address signer) {
// Check the signature length
if (signature.length != 65) revert InvalidSignatureLength();
// Divide the signature in r, s and v variables
bytes32 r;
bytes32 s;
uint8 v;
// ecrecover takes the signature parameters, and the only way to get them
// currently is to use assembly.
// solhint-disable-next-line no-inline-assembly
assembly {
r := mload(add(signature, 0x20))
s := mload(add(signature, 0x40))
v := byte(0, mload(add(signature, 0x60)))
}
// EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
// unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
// the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most
// signatures from current libraries generate a unique signature with an s-value in the lower half order.
//
// If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
// with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
// vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
// these malleable signatures as well.
if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) revert InvalidS();
if (v != 27 && v != 28) revert InvalidV();
// If the signature is valid (and not malleable), return the signer address
if ((signer = ecrecover(hash, v, r, s)) == address(0)) revert InvalidSignature();
}
/**
* @dev Returns an Ethereum Signed Message, created from a `hash`. This
* replicates the behavior of the
* https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]
* JSON-RPC method.
*
* See {recover}.
*/
function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
// 32 is the length in bytes of hash,
// enforced by the type signature above
return keccak256(abi.encodePacked('\x19Ethereum Signed Message:\n32', hash));
}
}
// File contracts/Ownable.sol
abstract contract Ownable is IOwnable {
address public owner;
constructor() {
owner = msg.sender;
emit OwnershipTransferred(address(0), msg.sender);
}
modifier onlyOwner() {
if (owner != msg.sender) revert NotOwner();
_;
}
function transferOwnership(address newOwner) external virtual onlyOwner {
if (newOwner == address(0)) revert InvalidOwner();
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
// File contracts/auth/AxelarAuthWeighted.sol
contract AxelarAuthWeighted is Ownable, IAxelarAuthWeighted {
uint256 public currentEpoch;
mapping(uint256 => bytes32) public hashForEpoch;
mapping(bytes32 => uint256) public epochForHash;
uint8 internal constant OLD_KEY_RETENTION = 16;
constructor(bytes[] memory recentOperators) {
for (uint256 i; i < recentOperators.length; ++i) {
_transferOperatorship(recentOperators[i]);
}
}
/**************************\
|* External Functionality *|
\**************************/
/// @dev This function takes messageHash and proof data and reverts if proof is invalid
/// @return True if provided operators are the current ones
function validateProof(bytes32 messageHash, bytes calldata proof) external view returns (bool) {
(address[] memory operators, uint256[] memory weights, uint256 threshold, bytes[] memory signatures) = abi.decode(
proof,
(address[], uint256[], uint256, bytes[])
);
bytes32 operatorsHash = keccak256(abi.encode(operators, weights, threshold));
uint256 operatorsEpoch = epochForHash[operatorsHash];
uint256 epoch = currentEpoch;
if (operatorsEpoch == 0 || epoch - operatorsEpoch >= OLD_KEY_RETENTION) revert InvalidOperators();
_validateSignatures(messageHash, operators, weights, threshold, signatures);
return operatorsEpoch == epoch;
}
/***********************\
|* Owner Functionality *|
\***********************/
function transferOperatorship(bytes calldata params) external onlyOwner {
_transferOperatorship(params);
}
/**************************\
|* Internal Functionality *|
\**************************/
function _transferOperatorship(bytes memory params) internal {
(address[] memory newOperators, uint256[] memory newWeights, uint256 newThreshold) = abi.decode(
params,
(address[], uint256[], uint256)
);
uint256 operatorsLength = newOperators.length;
uint256 weightsLength = newWeights.length;
// operators must be sorted binary or alphabetically in lower case
if (operatorsLength == 0 || !_isSortedAscAndContainsNoDuplicate(newOperators)) revert InvalidOperators();
if (weightsLength != operatorsLength) revert InvalidWeights();
uint256 totalWeight = 0;
for (uint256 i = 0; i < weightsLength; ++i) {
totalWeight += newWeights[i];
}
if (newThreshold == 0 || totalWeight < newThreshold) revert InvalidThreshold();
bytes32 newOperatorsHash = keccak256(params);
if (epochForHash[newOperatorsHash] > 0) revert DuplicateOperators();
uint256 epoch = currentEpoch + 1;
currentEpoch = epoch;
hashForEpoch[epoch] = newOperatorsHash;
epochForHash[newOperatorsHash] = epoch;
emit OperatorshipTransferred(newOperators, newWeights, newThreshold);
}
function _validateSignatures(
bytes32 messageHash,
address[] memory operators,
uint256[] memory weights,
uint256 threshold,
bytes[] memory signatures
) internal pure {
uint256 operatorsLength = operators.length;
uint256 operatorIndex = 0;
uint256 weight = 0;
// looking for signers within operators
// assuming that both operators and signatures are sorted
for (uint256 i = 0; i < signatures.length; ++i) {
address signer = ECDSA.recover(messageHash, signatures[i]);
// looping through remaining operators to find a match
for (; operatorIndex < operatorsLength && signer != operators[operatorIndex]; ++operatorIndex) {}
// checking if we are out of operators
if (operatorIndex == operatorsLength) revert MalformedSigners();
// return if weight sum above threshold
weight += weights[operatorIndex];
// weight needs to reach or surpass threshold
if (weight >= threshold) return;
// increasing operators index if match was found
++operatorIndex;
}
// if weight sum below threshold
revert LowSignaturesWeight();
}
function _isSortedAscAndContainsNoDuplicate(address[] memory accounts) internal pure returns (bool) {
for (uint256 i; i < accounts.length - 1; ++i) {
if (accounts[i] >= accounts[i + 1]) {
return false;
}
}
return accounts[0] != address(0);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"bytes[]","name":"recentOperators","type":"bytes[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"DuplicateOperators","type":"error"},{"inputs":[],"name":"InvalidOperators","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"InvalidS","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidSignatureLength","type":"error"},{"inputs":[],"name":"InvalidThreshold","type":"error"},{"inputs":[],"name":"InvalidV","type":"error"},{"inputs":[],"name":"InvalidWeights","type":"error"},{"inputs":[],"name":"LowSignaturesWeight","type":"error"},{"inputs":[],"name":"MalformedSigners","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"newOperators","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"newWeights","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"OperatorshipTransferred","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":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"epochForHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"hashForEpoch","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"params","type":"bytes"}],"name":"transferOperatorship","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"}],"name":"validateProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5060405162001693380380620016938339810160408190526200003491620003bf565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360005b8151811015620000c057620000ad828281518110620000995762000099620004fd565b6020026020010151620000c860201b60201c565b620000b88162000529565b905062000076565b505062000761565b600080600083806020019051810190620000e39190620005b4565b8251825193965091945092509081158062000106575062000104856200027e565b155b156200012557604051630849699d60e11b815260040160405180910390fd5b818114620001465760405163108cef9d60e31b815260040160405180910390fd5b6000805b828110156200019257858181518110620001685762000168620004fd565b6020026020010151826200017d91906200069b565b91506200018a8162000529565b90506200014a565b50831580620001a057508381105b15620001bf5760405163aabd5a0960e01b815260040160405180910390fd5b86516020808901919091206000818152600390925260409091205415620001f95760405163adda47f760e01b815260040160405180910390fd5b600060015460016200020c91906200069b565b60018190556000818152600260209081526040808320869055858352600390915290819020829055519091507f05b53362d4afea7533e835bd99f6c0f2c251e2f08b5c461734829516519dd5ac906200026b908a908a908a90620006b6565b60405180910390a1505050505050505050565b6000805b6001835162000292919062000747565b811015620003145782620002a88260016200069b565b81518110620002bb57620002bb620004fd565b60200260200101516001600160a01b0316838281518110620002e157620002e1620004fd565b60200260200101516001600160a01b031610620003015750600092915050565b6200030c8162000529565b905062000282565b5060006001600160a01b031682600081518110620003365762000336620004fd565b60200260200101516001600160a01b031614159050919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000391576200039162000350565b604052919050565b60006001600160401b03821115620003b557620003b562000350565b5060051b60200190565b60006020808385031215620003d357600080fd5b82516001600160401b0380821115620003eb57600080fd5b8185019150601f86818401126200040157600080fd5b825162000418620004128262000399565b62000366565b81815260059190911b840185019085810190898311156200043857600080fd5b8686015b83811015620004ef57805186811115620004565760008081fd5b8701603f81018c13620004695760008081fd5b888101518781111562000480576200048062000350565b62000493818801601f19168b0162000366565b81815260408e81848601011115620004ab5760008081fd5b60005b83811015620004cb578481018201518382018e01528c01620004ae565b83811115620004dd5760008d85850101525b5050855250509187019187016200043c565b509998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141562000540576200054062000513565b5060010190565b600082601f8301126200055957600080fd5b815160206200056c620004128362000399565b82815260059290921b840181019181810190868411156200058c57600080fd5b8286015b84811015620005a9578051835291830191830162000590565b509695505050505050565b600080600060608486031215620005ca57600080fd5b83516001600160401b0380821115620005e257600080fd5b818601915086601f830112620005f757600080fd5b815160206200060a620004128362000399565b82815260059290921b8401810191818101908a8411156200062a57600080fd5b948201945b83861015620006615785516001600160a01b0381168114620006515760008081fd5b825294820194908201906200062f565b918901519197509093505050808211156200067b57600080fd5b506200068a8682870162000547565b925050604084015190509250925092565b60008219821115620006b157620006b162000513565b500190565b606080825284519082018190526000906020906080840190828801845b82811015620006fa5781516001600160a01b031684529284019290840190600101620006d3565b5050508381038285015285518082528683019183019060005b81811015620007315783518352928401929184019160010162000713565b5050809350505050826040830152949350505050565b6000828210156200075c576200075c62000513565b500390565b610f2280620007716000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063ba6742e51161005b578063ba6742e5146100ec578063d289d1cb1461010c578063f1501c8914610121578063f2fde38b1461014157600080fd5b806373e3d66a1461008257806376671808146100aa5780638da5cb5b146100c1575b600080fd5b610095610090366004610933565b610154565b60405190151581526020015b60405180910390f35b6100b360015481565b6040519081526020016100a1565b6000546100d4906001600160a01b031681565b6040516001600160a01b0390911681526020016100a1565b6100b36100fa36600461097f565b60026020526000908152604090205481565b61011f61011a366004610998565b610201565b005b6100b361012f36600461097f565b60036020526000908152604090205481565b61011f61014f3660046109f2565b61026f565b60008080808061016686880188610bd0565b9350935093509350600084848460405160200161018593929190610cc0565b60408051601f19818403018152918152815160209283012060008181526003909352912054600154919250908115806101c8575060106101c58383610d63565b10155b156101e657604051630849699d60e11b815260040160405180910390fd5b6101f38b8888888861034d565b149998505050505050505050565b6000546001600160a01b0316331461022c576040516330cd747160e01b815260040160405180910390fd5b61026b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049d92505050565b5050565b6000546001600160a01b0316331461029a576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b0381166102da576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b8351600080805b84518110156104635760006103828a87848151811061037557610375610d7a565b6020026020010151610687565b90505b84841080156103bf57508884815181106103a1576103a1610d7a565b60200260200101516001600160a01b0316816001600160a01b031614155b156103d4576103cd84610d90565b9350610385565b8484141561040e576040517fc6fb539300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87848151811061042057610420610d7a565b6020026020010151836104339190610dab565b9250868310610446575050505050610496565b61044f84610d90565b9350508061045c90610d90565b9050610354565b506040517f203b225800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b6000806000838060200190518101906104b69190610e1e565b825182519396509194509250908115806104d657506104d48561082a565b155b156104f457604051630849699d60e11b815260040160405180910390fd5b81811461052d576040517f84677ce800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b828110156105705785818151811061054b5761054b610d7a565b60200260200101518261055e9190610dab565b915061056981610d90565b9050610531565b5083158061057d57508381105b156105b4576040517faabd5a0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86516020808901919091206000818152600390925260409091205415610606576040517fadda47f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060015460016106179190610dab565b60018190556000818152600260209081526040808320869055858352600390915290819020829055519091507f05b53362d4afea7533e835bd99f6c0f2c251e2f08b5c461734829516519dd5ac90610674908a908a908a90610cc0565b60405180910390a1505050505050505050565b600081516041146106c4576040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610730576040517f40c1e74800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060ff16601b1415801561074857508060ff16601c14155b1561077f576040517f119bce3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820180845289905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156107d3573d6000803e3d6000fd5b505050602060405103519450846001600160a01b03161415610821576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b6000805b6001835161083c9190610d63565b8110156108b1578261084f826001610dab565b8151811061085f5761085f610d7a565b60200260200101516001600160a01b031683828151811061088257610882610d7a565b60200260200101516001600160a01b0316106108a15750600092915050565b6108aa81610d90565b905061082e565b5060006001600160a01b0316826000815181106108d0576108d0610d7a565b60200260200101516001600160a01b031614159050919050565b60008083601f8401126108fc57600080fd5b50813567ffffffffffffffff81111561091457600080fd5b60208301915083602082850101111561092c57600080fd5b9250929050565b60008060006040848603121561094857600080fd5b83359250602084013567ffffffffffffffff81111561096657600080fd5b610972868287016108ea565b9497909650939450505050565b60006020828403121561099157600080fd5b5035919050565b600080602083850312156109ab57600080fd5b823567ffffffffffffffff8111156109c257600080fd5b6109ce858286016108ea565b90969095509350505050565b6001600160a01b03811681146109ef57600080fd5b50565b600060208284031215610a0457600080fd5b8135610a0f816109da565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a5557610a55610a16565b604052919050565b600067ffffffffffffffff821115610a7757610a77610a16565b5060051b60200190565b600082601f830112610a9257600080fd5b81356020610aa7610aa283610a5d565b610a2c565b82815260059290921b84018101918181019086841115610ac657600080fd5b8286015b84811015610ae15780358352918301918301610aca565b509695505050505050565b6000601f8381840112610afe57600080fd5b82356020610b0e610aa283610a5d565b82815260059290921b85018101918181019087841115610b2d57600080fd5b8287015b84811015610bc457803567ffffffffffffffff80821115610b525760008081fd5b818a0191508a603f830112610b675760008081fd5b85820135604082821115610b7d57610b7d610a16565b610b8e828b01601f19168901610a2c565b92508183528c81838601011115610ba55760008081fd5b8181850189850137506000908201870152845250918301918301610b31565b50979650505050505050565b60008060008060808587031215610be657600080fd5b843567ffffffffffffffff80821115610bfe57600080fd5b818701915087601f830112610c1257600080fd5b81356020610c22610aa283610a5d565b82815260059290921b8401810191818101908b841115610c4157600080fd5b948201945b83861015610c68578535610c59816109da565b82529482019490820190610c46565b98505088013592505080821115610c7e57600080fd5b610c8a88838901610a81565b9450604087013593506060870135915080821115610ca757600080fd5b50610cb487828801610aec565b91505092959194509250565b606080825284519082018190526000906020906080840190828801845b82811015610d025781516001600160a01b031684529284019290840190600101610cdd565b5050508381038285015285518082528683019183019060005b81811015610d3757835183529284019291840191600101610d1b565b5050809350505050826040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015610d7557610d75610d4d565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610da457610da4610d4d565b5060010190565b60008219821115610dbe57610dbe610d4d565b500190565b600082601f830112610dd457600080fd5b81516020610de4610aa283610a5d565b82815260059290921b84018101918181019086841115610e0357600080fd5b8286015b84811015610ae15780518352918301918301610e07565b600080600060608486031215610e3357600080fd5b835167ffffffffffffffff80821115610e4b57600080fd5b818601915086601f830112610e5f57600080fd5b81516020610e6f610aa283610a5d565b82815260059290921b8401810191818101908a841115610e8e57600080fd5b948201945b83861015610eb5578551610ea6816109da565b82529482019490820190610e93565b91890151919750909350505080821115610ece57600080fd5b50610edb86828701610dc3565b92505060408401519050925092509256fea26469706673582212200ddc1b1cc323f5787654ff6b953672c656a5ae6baaac3108e31ea3b7daad1dfd64736f6c6343000809003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000000140000000000000000000000001bc6dba6229c3ac1faa0a7d9cdcc1ca4728061f50000000000000000000000001bdb0c8626b31498190f854e6890f9e3b0c677c50000000000000000000000001e1e4860a4d66670f55f09a18183d211f68b0d9f00000000000000000000000027c7333ebae53dcfdc893d4322b7ab1e69c96ce00000000000000000000000002cc704bc8ade53b051e771a46bfca558d7396df300000000000000000000000031174208ecc9cada535e6d0af9bb790b9faddaaf000000000000000000000000368a5f50b2f03948779417bd25270fbe37f4b5170000000000000000000000004438260d2351523166cb8777097f13750be319690000000000000000000000005a54e2e42599074212df39190fa3e50db378d18e00000000000000000000000062f66cceb5a295c9f59fb43d93ec8b603c51479e00000000000000000000000075746864cd9c5619b59dd7a7082bb9f383d74a6800000000000000000000000076af8c4d9c678181781c43e536b358ffaed79829000000000000000000000000787bf0802521d073275b44987bfbbc29ec792ca10000000000000000000000009075d14c284a01fefc78910765d2abefb906ff810000000000000000000000009c112ef47b506cf3706a16de1902722cc413af82000000000000000000000000a60463481f85354fdb5409d6575438c52e272bca000000000000000000000000aaebb2845a300c3a9570a388843208e4dbaaafad000000000000000000000000ee983ce6ad7bb166770a66a7af600fd552ee6f3d000000000000000000000000f4462493709f32e01f1bc555d9a27b4790826e32000000000000000000000000f93b5526d81ea90fa3261f8f5105e4d0eb8b017b000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063ba6742e51161005b578063ba6742e5146100ec578063d289d1cb1461010c578063f1501c8914610121578063f2fde38b1461014157600080fd5b806373e3d66a1461008257806376671808146100aa5780638da5cb5b146100c1575b600080fd5b610095610090366004610933565b610154565b60405190151581526020015b60405180910390f35b6100b360015481565b6040519081526020016100a1565b6000546100d4906001600160a01b031681565b6040516001600160a01b0390911681526020016100a1565b6100b36100fa36600461097f565b60026020526000908152604090205481565b61011f61011a366004610998565b610201565b005b6100b361012f36600461097f565b60036020526000908152604090205481565b61011f61014f3660046109f2565b61026f565b60008080808061016686880188610bd0565b9350935093509350600084848460405160200161018593929190610cc0565b60408051601f19818403018152918152815160209283012060008181526003909352912054600154919250908115806101c8575060106101c58383610d63565b10155b156101e657604051630849699d60e11b815260040160405180910390fd5b6101f38b8888888861034d565b149998505050505050505050565b6000546001600160a01b0316331461022c576040516330cd747160e01b815260040160405180910390fd5b61026b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049d92505050565b5050565b6000546001600160a01b0316331461029a576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b0381166102da576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b8351600080805b84518110156104635760006103828a87848151811061037557610375610d7a565b6020026020010151610687565b90505b84841080156103bf57508884815181106103a1576103a1610d7a565b60200260200101516001600160a01b0316816001600160a01b031614155b156103d4576103cd84610d90565b9350610385565b8484141561040e576040517fc6fb539300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87848151811061042057610420610d7a565b6020026020010151836104339190610dab565b9250868310610446575050505050610496565b61044f84610d90565b9350508061045c90610d90565b9050610354565b506040517f203b225800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b6000806000838060200190518101906104b69190610e1e565b825182519396509194509250908115806104d657506104d48561082a565b155b156104f457604051630849699d60e11b815260040160405180910390fd5b81811461052d576040517f84677ce800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b828110156105705785818151811061054b5761054b610d7a565b60200260200101518261055e9190610dab565b915061056981610d90565b9050610531565b5083158061057d57508381105b156105b4576040517faabd5a0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86516020808901919091206000818152600390925260409091205415610606576040517fadda47f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060015460016106179190610dab565b60018190556000818152600260209081526040808320869055858352600390915290819020829055519091507f05b53362d4afea7533e835bd99f6c0f2c251e2f08b5c461734829516519dd5ac90610674908a908a908a90610cc0565b60405180910390a1505050505050505050565b600081516041146106c4576040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610730576040517f40c1e74800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060ff16601b1415801561074857508060ff16601c14155b1561077f576040517f119bce3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820180845289905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156107d3573d6000803e3d6000fd5b505050602060405103519450846001600160a01b03161415610821576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b6000805b6001835161083c9190610d63565b8110156108b1578261084f826001610dab565b8151811061085f5761085f610d7a565b60200260200101516001600160a01b031683828151811061088257610882610d7a565b60200260200101516001600160a01b0316106108a15750600092915050565b6108aa81610d90565b905061082e565b5060006001600160a01b0316826000815181106108d0576108d0610d7a565b60200260200101516001600160a01b031614159050919050565b60008083601f8401126108fc57600080fd5b50813567ffffffffffffffff81111561091457600080fd5b60208301915083602082850101111561092c57600080fd5b9250929050565b60008060006040848603121561094857600080fd5b83359250602084013567ffffffffffffffff81111561096657600080fd5b610972868287016108ea565b9497909650939450505050565b60006020828403121561099157600080fd5b5035919050565b600080602083850312156109ab57600080fd5b823567ffffffffffffffff8111156109c257600080fd5b6109ce858286016108ea565b90969095509350505050565b6001600160a01b03811681146109ef57600080fd5b50565b600060208284031215610a0457600080fd5b8135610a0f816109da565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a5557610a55610a16565b604052919050565b600067ffffffffffffffff821115610a7757610a77610a16565b5060051b60200190565b600082601f830112610a9257600080fd5b81356020610aa7610aa283610a5d565b610a2c565b82815260059290921b84018101918181019086841115610ac657600080fd5b8286015b84811015610ae15780358352918301918301610aca565b509695505050505050565b6000601f8381840112610afe57600080fd5b82356020610b0e610aa283610a5d565b82815260059290921b85018101918181019087841115610b2d57600080fd5b8287015b84811015610bc457803567ffffffffffffffff80821115610b525760008081fd5b818a0191508a603f830112610b675760008081fd5b85820135604082821115610b7d57610b7d610a16565b610b8e828b01601f19168901610a2c565b92508183528c81838601011115610ba55760008081fd5b8181850189850137506000908201870152845250918301918301610b31565b50979650505050505050565b60008060008060808587031215610be657600080fd5b843567ffffffffffffffff80821115610bfe57600080fd5b818701915087601f830112610c1257600080fd5b81356020610c22610aa283610a5d565b82815260059290921b8401810191818101908b841115610c4157600080fd5b948201945b83861015610c68578535610c59816109da565b82529482019490820190610c46565b98505088013592505080821115610c7e57600080fd5b610c8a88838901610a81565b9450604087013593506060870135915080821115610ca757600080fd5b50610cb487828801610aec565b91505092959194509250565b606080825284519082018190526000906020906080840190828801845b82811015610d025781516001600160a01b031684529284019290840190600101610cdd565b5050508381038285015285518082528683019183019060005b81811015610d3757835183529284019291840191600101610d1b565b5050809350505050826040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015610d7557610d75610d4d565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610da457610da4610d4d565b5060010190565b60008219821115610dbe57610dbe610d4d565b500190565b600082601f830112610dd457600080fd5b81516020610de4610aa283610a5d565b82815260059290921b84018101918181019086841115610e0357600080fd5b8286015b84811015610ae15780518352918301918301610e07565b600080600060608486031215610e3357600080fd5b835167ffffffffffffffff80821115610e4b57600080fd5b818601915086601f830112610e5f57600080fd5b81516020610e6f610aa283610a5d565b82815260059290921b8401810191818101908a841115610e8e57600080fd5b948201945b83861015610eb5578551610ea6816109da565b82529482019490820190610e93565b91890151919750909350505080821115610ece57600080fd5b50610edb86828701610dc3565b92505060408401519050925092509256fea26469706673582212200ddc1b1cc323f5787654ff6b953672c656a5ae6baaac3108e31ea3b7daad1dfd64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000000140000000000000000000000001bc6dba6229c3ac1faa0a7d9cdcc1ca4728061f50000000000000000000000001bdb0c8626b31498190f854e6890f9e3b0c677c50000000000000000000000001e1e4860a4d66670f55f09a18183d211f68b0d9f00000000000000000000000027c7333ebae53dcfdc893d4322b7ab1e69c96ce00000000000000000000000002cc704bc8ade53b051e771a46bfca558d7396df300000000000000000000000031174208ecc9cada535e6d0af9bb790b9faddaaf000000000000000000000000368a5f50b2f03948779417bd25270fbe37f4b5170000000000000000000000004438260d2351523166cb8777097f13750be319690000000000000000000000005a54e2e42599074212df39190fa3e50db378d18e00000000000000000000000062f66cceb5a295c9f59fb43d93ec8b603c51479e00000000000000000000000075746864cd9c5619b59dd7a7082bb9f383d74a6800000000000000000000000076af8c4d9c678181781c43e536b358ffaed79829000000000000000000000000787bf0802521d073275b44987bfbbc29ec792ca10000000000000000000000009075d14c284a01fefc78910765d2abefb906ff810000000000000000000000009c112ef47b506cf3706a16de1902722cc413af82000000000000000000000000a60463481f85354fdb5409d6575438c52e272bca000000000000000000000000aaebb2845a300c3a9570a388843208e4dbaaafad000000000000000000000000ee983ce6ad7bb166770a66a7af600fd552ee6f3d000000000000000000000000f4462493709f32e01f1bc555d9a27b4790826e32000000000000000000000000f93b5526d81ea90fa3261f8f5105e4d0eb8b017b000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : recentOperators (bytes[]): System.Byte[]
-----Encoded View---------------
49 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [3] : 00000000000000000000000000000000000000000000000000000000000005a0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000300
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [8] : 0000000000000000000000001bc6dba6229c3ac1faa0a7d9cdcc1ca4728061f5
Arg [9] : 0000000000000000000000001bdb0c8626b31498190f854e6890f9e3b0c677c5
Arg [10] : 0000000000000000000000001e1e4860a4d66670f55f09a18183d211f68b0d9f
Arg [11] : 00000000000000000000000027c7333ebae53dcfdc893d4322b7ab1e69c96ce0
Arg [12] : 0000000000000000000000002cc704bc8ade53b051e771a46bfca558d7396df3
Arg [13] : 00000000000000000000000031174208ecc9cada535e6d0af9bb790b9faddaaf
Arg [14] : 000000000000000000000000368a5f50b2f03948779417bd25270fbe37f4b517
Arg [15] : 0000000000000000000000004438260d2351523166cb8777097f13750be31969
Arg [16] : 0000000000000000000000005a54e2e42599074212df39190fa3e50db378d18e
Arg [17] : 00000000000000000000000062f66cceb5a295c9f59fb43d93ec8b603c51479e
Arg [18] : 00000000000000000000000075746864cd9c5619b59dd7a7082bb9f383d74a68
Arg [19] : 00000000000000000000000076af8c4d9c678181781c43e536b358ffaed79829
Arg [20] : 000000000000000000000000787bf0802521d073275b44987bfbbc29ec792ca1
Arg [21] : 0000000000000000000000009075d14c284a01fefc78910765d2abefb906ff81
Arg [22] : 0000000000000000000000009c112ef47b506cf3706a16de1902722cc413af82
Arg [23] : 000000000000000000000000a60463481f85354fdb5409d6575438c52e272bca
Arg [24] : 000000000000000000000000aaebb2845a300c3a9570a388843208e4dbaaafad
Arg [25] : 000000000000000000000000ee983ce6ad7bb166770a66a7af600fd552ee6f3d
Arg [26] : 000000000000000000000000f4462493709f32e01f1bc555d9a27b4790826e32
Arg [27] : 000000000000000000000000f93b5526d81ea90fa3261f8f5105e4d0eb8b017b
Arg [28] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [33] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [34] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [35] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [41] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [42] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [43] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [44] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [45] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [46] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [47] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [48] : 0000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode Sourcemap
5614:4674:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6329:745;;;;;;:::i;:::-;;:::i;:::-;;;1013:14:1;;1006:22;988:41;;976:2;961:18;6329:745:0;;;;;;;;5681:27;;;;;;;;;1186:25:1;;;1174:2;1159:18;5681:27:0;1040:177:1;5082:20:0;;;;;-1:-1:-1;;;;;5082:20:0;;;;;;-1:-1:-1;;;;;1386:55:1;;;1368:74;;1356:2;1341:18;5082:20:0;1222:226:1;5715:47:0;;;;;;:::i;:::-;;;;;;;;;;;;;;7177:120;;;;;;:::i;:::-;;:::i;:::-;;5769:47;;;;;;:::i;:::-;;;;;;;;;;;;;;5334:222;;;;;;:::i;:::-;;:::i;6329:745::-;6418:4;;;;;6538:96;;;;6563:5;6538:96;:::i;:::-;6435:199;;;;;;;;6647:21;6692:9;6703:7;6712:9;6681:41;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6681:41:0;;;;;;;;;6671:52;;6681:41;6671:52;;;;6734:22;6759:27;;;:12;:27;;;;;;6813:12;;6671:52;;-1:-1:-1;6759:27:0;6842:19;;;:66;;-1:-1:-1;5869:2:0;6865:22;6873:14;6865:5;:22;:::i;:::-;:43;;6842:66;6838:97;;;6917:18;;-1:-1:-1;;;6917:18:0;;;;;;;;;;;6838:97;6948:75;6968:11;6981:9;6992:7;7001:9;7012:10;6948:19;:75::i;:::-;7043:23;;6329:745;-1:-1:-1;;;;;;;;;6329:745:0:o;7177:120::-;5266:5;;-1:-1:-1;;;;;5266:5:0;5275:10;5266:19;5262:42;;5294:10;;-1:-1:-1;;;5294:10:0;;;;;;;;;;;5262:42;7260:29:::1;7282:6;;7260:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7260:21:0::1;::::0;-1:-1:-1;;;7260:29:0:i:1;:::-;7177:120:::0;;:::o;5334:222::-;5266:5;;-1:-1:-1;;;;;5266:5:0;5275:10;5266:19;5262:42;;5294:10;;-1:-1:-1;;;5294:10:0;;;;;;;;;;;5262:42;-1:-1:-1;;;;;5421:22:0;::::1;5417:49;;5452:14;;;;;;;;;;;;;;5417:49;5505:5;::::0;;5484:37:::1;::::0;-1:-1:-1;;;;;5484:37:0;;::::1;::::0;5505:5;::::1;::::0;5484:37:::1;::::0;::::1;5532:5;:16:::0;;;::::1;-1:-1:-1::0;;;;;5532:16:0;;;::::1;::::0;;;::::1;::::0;;5334:222::o;8671:1288::-;8924:16;;8898:23;;;9132:739;9156:10;:17;9152:1;:21;9132:739;;;9195:14;9212:41;9226:11;9239:10;9250:1;9239:13;;;;;;;;:::i;:::-;;;;;;;9212;:41::i;:::-;9195:58;;9336:97;9359:15;9343:13;:31;:69;;;;;9388:9;9398:13;9388:24;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;9378:34:0;:6;-1:-1:-1;;;;;9378:34:0;;;9343:69;9336:97;;;9414:15;;;:::i;:::-;;;9336:97;;;9520:15;9503:13;:32;9499:63;;;9544:18;;;;;;;;;;;;;;9499:63;9640:7;9648:13;9640:22;;;;;;;;:::i;:::-;;;;;;;9630:32;;;;;:::i;:::-;;;9750:9;9740:6;:19;9736:32;;9761:7;;;;;;;9736:32;9844:15;;;:::i;:::-;;;9180:691;9175:3;;;;:::i;:::-;;;9132:739;;;;9930:21;;;;;;;;;;;;;;8671:1288;;;;;;:::o;7409:1254::-;7482:29;7513:27;7542:20;7591:6;7566:88;;;;;;;;;;;;:::i;:::-;7691:19;;7745:17;;7481:173;;-1:-1:-1;7481:173:0;;-1:-1:-1;7481:173:0;-1:-1:-1;7691:19:0;7855:20;;;:73;;;7880:48;7915:12;7880:34;:48::i;:::-;7879:49;7855:73;7851:104;;;7937:18;;-1:-1:-1;;;7937:18:0;;;;;;;;;;;7851:104;7989:15;7972:13;:32;7968:61;;8013:16;;;;;;;;;;;;;;7968:61;8042:19;8081:9;8076:99;8100:13;8096:1;:17;8076:99;;;8150:10;8161:1;8150:13;;;;;;;;:::i;:::-;;;;;;;8135:28;;;;;:::i;:::-;;-1:-1:-1;8115:3:0;;;:::i;:::-;;;8076:99;;;-1:-1:-1;8189:17:0;;;:47;;;8224:12;8210:11;:26;8189:47;8185:78;;;8245:18;;;;;;;;;;;;;;8185:78;8303:17;;;;;;;;;;8276:24;8337:30;;;:12;:30;;;;;;;;:34;8333:67;;8380:20;;;;;;;;;;;;;;8333:67;8413:13;8429:12;;8444:1;8429:16;;;;:::i;:::-;8456:12;:20;;;8487:19;;;;:12;:19;;;;;;;;:38;;;8536:30;;;:12;:30;;;;;;;:38;;;8592:63;8413:32;;-1:-1:-1;8592:63:0;;;;8616:12;;8630:10;;8642:12;;8592:63;:::i;:::-;;;;;;;;7470:1193;;;;;;;;7409:1254;:::o;2532:1920::-;2610:14;2680:9;:16;2700:2;2680:22;2676:59;;2711:24;;;;;;;;;;;;;;2676:59;3097:4;3082:20;;3076:27;3143:4;3128:20;;3122:27;3197:4;3182:20;;3176:27;2805:9;3168:36;4127:66;4114:79;;4110:102;;;4202:10;;;;;;;;;;;;;;4110:102;4229:1;:7;;4234:2;4229:7;;:18;;;;;4240:1;:7;;4245:2;4240:7;;4229:18;4225:41;;;4256:10;;;;;;;;;;;;;;4225:41;4378:24;;;4415:1;4378:24;;;;;;;;;11445:25:1;;;11518:4;11506:17;;11486:18;;;11479:45;;;;11540:18;;;11533:34;;;11583:18;;;11576:34;;;4378:24:0;;11417:19:1;;4378:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4369:33;;;-1:-1:-1;;;;;4368:49:0;;4364:80;;;4426:18;;;;;;;;;;;;;;4364:80;2626:1826;;;2532:1920;;;;:::o;9967:318::-;10061:4;10083:9;10078:155;10116:1;10098:8;:15;:19;;;;:::i;:::-;10094:1;:23;10078:155;;;10158:8;10167:5;:1;10171;10167:5;:::i;:::-;10158:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10143:30:0;:8;10152:1;10143:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10143:30:0;;10139:83;;-1:-1:-1;10201:5:0;;9967:318;-1:-1:-1;;9967:318:0:o;10139:83::-;10119:3;;;:::i;:::-;;;10078:155;;;;10275:1;-1:-1:-1;;;;;10252:25:0;:8;10261:1;10252:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10252:25:0;;;10245:32;;9967:318;;;:::o;14:347:1:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:1;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:477::-;445:6;453;461;514:2;502:9;493:7;489:23;485:32;482:52;;;530:1;527;520:12;482:52;566:9;553:23;543:33;;627:2;616:9;612:18;599:32;654:18;646:6;643:30;640:50;;;686:1;683;676:12;640:50;725:58;775:7;766:6;755:9;751:22;725:58;:::i;:::-;366:477;;802:8;;-1:-1:-1;699:84:1;;-1:-1:-1;;;;366:477:1:o;1453:180::-;1512:6;1565:2;1553:9;1544:7;1540:23;1536:32;1533:52;;;1581:1;1578;1571:12;1533:52;-1:-1:-1;1604:23:1;;1453:180;-1:-1:-1;1453:180:1:o;1820:409::-;1890:6;1898;1951:2;1939:9;1930:7;1926:23;1922:32;1919:52;;;1967:1;1964;1957:12;1919:52;2007:9;1994:23;2040:18;2032:6;2029:30;2026:50;;;2072:1;2069;2062:12;2026:50;2111:58;2161:7;2152:6;2141:9;2137:22;2111:58;:::i;:::-;2188:8;;2085:84;;-1:-1:-1;1820:409:1;-1:-1:-1;;;;1820:409:1:o;2419:154::-;-1:-1:-1;;;;;2498:5:1;2494:54;2487:5;2484:65;2474:93;;2563:1;2560;2553:12;2474:93;2419:154;:::o;2578:247::-;2637:6;2690:2;2678:9;2669:7;2665:23;2661:32;2658:52;;;2706:1;2703;2696:12;2658:52;2745:9;2732:23;2764:31;2789:5;2764:31;:::i;:::-;2814:5;2578:247;-1:-1:-1;;;2578:247:1:o;2830:184::-;-1:-1:-1;;;2879:1:1;2872:88;2979:4;2976:1;2969:15;3003:4;3000:1;2993:15;3019:275;3090:2;3084:9;3155:2;3136:13;;-1:-1:-1;;3132:27:1;3120:40;;3190:18;3175:34;;3211:22;;;3172:62;3169:88;;;3237:18;;:::i;:::-;3273:2;3266:22;3019:275;;-1:-1:-1;3019:275:1:o;3299:183::-;3359:4;3392:18;3384:6;3381:30;3378:56;;;3414:18;;:::i;:::-;-1:-1:-1;3459:1:1;3455:14;3471:4;3451:25;;3299:183::o;3487:662::-;3541:5;3594:3;3587:4;3579:6;3575:17;3571:27;3561:55;;3612:1;3609;3602:12;3561:55;3648:6;3635:20;3674:4;3698:60;3714:43;3754:2;3714:43;:::i;:::-;3698:60;:::i;:::-;3792:15;;;3878:1;3874:10;;;;3862:23;;3858:32;;;3823:12;;;;3902:15;;;3899:35;;;3930:1;3927;3920:12;3899:35;3966:2;3958:6;3954:15;3978:142;3994:6;3989:3;3986:15;3978:142;;;4060:17;;4048:30;;4098:12;;;;4011;;3978:142;;;-1:-1:-1;4138:5:1;3487:662;-1:-1:-1;;;;;;3487:662:1:o;4154:1539::-;4206:5;4236:4;4280:3;4275:2;4267:6;4263:15;4259:25;4249:53;;4298:1;4295;4288:12;4249:53;4334:6;4321:20;4360:4;4384:60;4400:43;4440:2;4400:43;:::i;4384:60::-;4478:15;;;4564:1;4560:10;;;;4548:23;;4544:32;;;4509:12;;;;4588:15;;;4585:35;;;4616:1;4613;4606:12;4585:35;4652:2;4644:6;4640:15;4664:1000;4680:6;4675:3;4672:15;4664:1000;;;4766:3;4753:17;4793:18;4843:2;4830:11;4827:19;4824:109;;;4887:1;4916:2;4912;4905:14;4824:109;4968:11;4960:6;4956:24;4946:34;;5020:3;5015:2;5011;5007:11;5003:21;4993:119;;5066:1;5095:2;5091;5084:14;4993:119;5156:2;5152;5148:11;5135:25;5183:2;5208;5204;5201:10;5198:36;;;5214:18;;:::i;:::-;5262:51;5286:11;;;-1:-1:-1;;5282:25:1;5278:34;;5262:51;:::i;:::-;5247:66;;5342:2;5333:7;5326:19;5386:3;5381:2;5376;5372;5368:11;5364:20;5361:29;5358:122;;;5432:1;5462:3;5457;5450:16;5358:122;5537:2;5532;5528;5524:11;5519:2;5510:7;5506:16;5493:47;-1:-1:-1;5587:1:1;5564:16;;;5560:25;;5553:36;5602:20;;-1:-1:-1;5642:12:1;;;;4697;;4664:1000;;;-1:-1:-1;5682:5:1;4154:1539;-1:-1:-1;;;;;;;4154:1539:1:o;5698:1517::-;5868:6;5876;5884;5892;5945:3;5933:9;5924:7;5920:23;5916:33;5913:53;;;5962:1;5959;5952:12;5913:53;6002:9;5989:23;6031:18;6072:2;6064:6;6061:14;6058:34;;;6088:1;6085;6078:12;6058:34;6126:6;6115:9;6111:22;6101:32;;6171:7;6164:4;6160:2;6156:13;6152:27;6142:55;;6193:1;6190;6183:12;6142:55;6229:2;6216:16;6251:4;6275:60;6291:43;6331:2;6291:43;:::i;6275:60::-;6369:15;;;6451:1;6447:10;;;;6439:19;;6435:28;;;6400:12;;;;6475:19;;;6472:39;;;6507:1;6504;6497:12;6472:39;6531:11;;;;6551:217;6567:6;6562:3;6559:15;6551:217;;;6647:3;6634:17;6664:31;6689:5;6664:31;:::i;:::-;6708:18;;6584:12;;;;6746;;;;6551:217;;;6787:5;-1:-1:-1;;6830:18:1;;6817:32;;-1:-1:-1;;6861:16:1;;;6858:36;;;6890:1;6887;6880:12;6858:36;6913:63;6968:7;6957:8;6946:9;6942:24;6913:63;:::i;:::-;6903:73;;7023:2;7012:9;7008:18;6995:32;6985:42;;7080:2;7069:9;7065:18;7052:32;7036:48;;7109:2;7099:8;7096:16;7093:36;;;7125:1;7122;7115:12;7093:36;;7148:61;7201:7;7190:8;7179:9;7175:24;7148:61;:::i;:::-;7138:71;;;5698:1517;;;;;;;:::o;7220:1273::-;7516:2;7528:21;;;7598:13;;7501:18;;;7620:22;;;7468:4;;7696;;7673:3;7658:19;;;7723:15;;;7468:4;7766:218;7780:6;7777:1;7774:13;7766:218;;;7845:13;;-1:-1:-1;;;;;7841:62:1;7829:75;;7924:12;;;;7959:15;;;;7802:1;7795:9;7766:218;;;-1:-1:-1;;;8020:19:1;;;8000:18;;;7993:47;8090:13;;8112:21;;;8188:15;;;;8151:12;;;8223:1;8233:189;8249:8;8244:3;8241:17;8233:189;;;8318:15;;8304:30;;8395:17;;;;8356:14;;;;8277:1;8268:11;8233:189;;;8237:3;;8439:5;8431:13;;;;;8480:6;8475:2;8464:9;8460:18;8453:34;7220:1273;;;;;;:::o;8498:184::-;-1:-1:-1;;;8547:1:1;8540:88;8647:4;8644:1;8637:15;8671:4;8668:1;8661:15;8687:125;8727:4;8755:1;8752;8749:8;8746:34;;;8760:18;;:::i;:::-;-1:-1:-1;8797:9:1;;8687:125::o;8817:184::-;-1:-1:-1;;;8866:1:1;8859:88;8966:4;8963:1;8956:15;8990:4;8987:1;8980:15;9006:135;9045:3;-1:-1:-1;;9066:17:1;;9063:43;;;9086:18;;:::i;:::-;-1:-1:-1;9133:1:1;9122:13;;9006:135::o;9146:128::-;9186:3;9217:1;9213:6;9210:1;9207:13;9204:39;;;9223:18;;:::i;:::-;-1:-1:-1;9259:9:1;;9146:128::o;9279:659::-;9344:5;9397:3;9390:4;9382:6;9378:17;9374:27;9364:55;;9415:1;9412;9405:12;9364:55;9444:6;9438:13;9470:4;9494:60;9510:43;9550:2;9510:43;:::i;9494:60::-;9588:15;;;9674:1;9670:10;;;;9658:23;;9654:32;;;9619:12;;;;9698:15;;;9695:35;;;9726:1;9723;9716:12;9695:35;9762:2;9754:6;9750:15;9774:135;9790:6;9785:3;9782:15;9774:135;;;9856:10;;9844:23;;9887:12;;;;9807;;9774:135;;9943:1270;10081:6;10089;10097;10150:2;10138:9;10129:7;10125:23;10121:32;10118:52;;;10166:1;10163;10156:12;10118:52;10199:9;10193:16;10228:18;10269:2;10261:6;10258:14;10255:34;;;10285:1;10282;10275:12;10255:34;10323:6;10312:9;10308:22;10298:32;;10368:7;10361:4;10357:2;10353:13;10349:27;10339:55;;10390:1;10387;10380:12;10339:55;10419:2;10413:9;10441:4;10465:60;10481:43;10521:2;10481:43;:::i;10465:60::-;10559:15;;;10641:1;10637:10;;;;10629:19;;10625:28;;;10590:12;;;;10665:19;;;10662:39;;;10697:1;10694;10687:12;10662:39;10721:11;;;;10741:210;10757:6;10752:3;10749:15;10741:210;;;10830:3;10824:10;10847:31;10872:5;10847:31;:::i;:::-;10891:18;;10774:12;;;;10929;;;;10741:210;;;11006:18;;;11000:25;10970:5;;-1:-1:-1;11000:25:1;;-1:-1:-1;;;11037:16:1;;;11034:36;;;11066:1;11063;11056:12;11034:36;;11089:74;11155:7;11144:8;11133:9;11129:24;11089:74;:::i;:::-;11079:84;;;11203:2;11192:9;11188:18;11182:25;11172:35;;9943:1270;;;;;:::o
Swarm Source
ipfs://0ddc1b1cc323f5787654ff6b953672c656a5ae6baaac3108e31ea3b7daad1dfd
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.