More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Open Validator | 7846162 | 4 days ago | IN | 0 S | 0.00213675 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
7843155 | 4 days ago | Contract Creation | 0 S |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x69a9206d...1bB73c0fA The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Validator
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-14 */ // File: contracts/sources/OZ/IERC20.sol // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); } // File: contracts/sources/OZ/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; 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: contracts/sources/OZ/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; abstract contract Ownable is Context { address private _owner; error OwnableUnauthorizedAccount(address account); error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/validator.sol pragma solidity ^0.8.0; contract Validator is Ownable { address public EMLTokenAddress; address public validatorFactory; uint256 public validatorPrice; address public admin; bool public active = false; // Validator Current Owner mapping(address => address) public validatorOwners; // Mapping to associate the contract address with the validator address mapping(address => address) public validatorContracts; // Events event EMLBalanceChecked(uint256 balance); event ValidatorCount(uint256 activeCount, uint256 maxCount); event ValidatorClosed(address indexed owner, uint256 amount); event ValidatorOpened(); event ValidatorClosedEvent(); constructor(address _EMLTokenAddress, address _initialOwner, address _validatorFactory) Ownable(_initialOwner) { EMLTokenAddress = _EMLTokenAddress; admin = _initialOwner; validatorFactory = _validatorFactory; // Set the validatorFactory by default validatorContracts[address(this)] = address(this); validatorOwners[address(this)] = _initialOwner; } // Keccak hash function for an array of strings function calculateKeccak256(string[] calldata inputs) external view returns (bytes32) { require(active, "Validator is not active"); // Check if the validator is active // Concatenate all strings in the array bytes memory concatenatedString; for (uint256 i = 0; i < inputs.length; i++) { concatenatedString = abi.encodePacked(concatenatedString, inputs[i]); } // Calculate the Keccak256 hash of the concatenated string bytes32 hash = keccak256(concatenatedString); return hash; } // Set a new validator factory function setValidatorFactory(address _validatorFactory) external onlyOwner { require(_validatorFactory != address(0), "Invalid validator factory address"); validatorFactory = _validatorFactory; } // Return the validator contract address function getValidatorContractAddress() external view returns (address) { return validatorContracts[address(this)]; } // Return the current validator owner function getValidatorOwner() external view returns (address) { return validatorOwners[address(this)]; } // Return the amount of EML available in the contract function getEMLBalance() external view returns (uint256) { return IERC20(EMLTokenAddress).balanceOf(address(this)); } // Function to close the validator and send the EML balance to the owner function closeValidator() external onlyOwner { uint256 balance = IERC20(EMLTokenAddress).balanceOf(address(this)); require(balance > 0, "No EML tokens to transfer"); IERC20(EMLTokenAddress).transfer(owner(), balance); active = false; emit ValidatorClosed(owner(), balance); emit ValidatorClosedEvent(); } // Open the validator if it holds at least 20,000 EML function openValidator() external onlyOwner { uint256 emlBalance = IERC20(EMLTokenAddress).balanceOf(address(this)); emit EMLBalanceChecked(emlBalance); // Log la balance require(emlBalance >= 20000 * 10**18, "Validator must hold at least 20,000 EML"); active = true; emit ValidatorOpened(); } // Function to check if the validator is active function isActive() external view returns (bool) { return active; } // Function to get the admin address function getAdmin() external view returns (address) { return admin; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_EMLTokenAddress","type":"address"},{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_validatorFactory","type":"address"}],"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":"uint256","name":"balance","type":"uint256"}],"name":"EMLBalanceChecked","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ValidatorClosed","type":"event"},{"anonymous":false,"inputs":[],"name":"ValidatorClosedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxCount","type":"uint256"}],"name":"ValidatorCount","type":"event"},{"anonymous":false,"inputs":[],"name":"ValidatorOpened","type":"event"},{"inputs":[],"name":"EMLTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"inputs","type":"string[]"}],"name":"calculateKeccak256","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeValidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEMLBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValidatorContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValidatorOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openValidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_validatorFactory","type":"address"}],"name":"setValidatorFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"validatorContracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"validatorOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061011f575f3560e01c8063725eecf1116100ab578063c10f74611161006f578063c10f7461146102bf578063d7368fd6146102dd578063e727530d146102fb578063f2fde38b14610319578063f851a440146103355761011f565b8063725eecf1146102195780638da5cb5b146102375780638e0a98f51461025557806393d26c1a14610285578063bddb92de146102b55761011f565b806322227e50116100f257806322227e50146101ab57806322f3e2d4146101b55780633741b351146101d35780636e9960c3146101f1578063715018a61461020f5761011f565b806302fb0c5e1461012357806308975904146101415780630c45192f1461015f5780631a521d831461018f575b5f80fd5b61012b610353565b6040516101389190610d24565b60405180910390f35b610149610366565b6040516101569190610d55565b60405180910390f35b61017960048036038101906101749190610dd7565b61036c565b6040516101869190610e3a565b60405180910390f35b6101a960048036038101906101a49190610ead565b610438565b005b6101b36104f1565b005b6101bd610663565b6040516101ca9190610d24565b60405180910390f35b6101db610679565b6040516101e89190610ee7565b60405180910390f35b6101f96106dc565b6040516102069190610ee7565b60405180910390f35b610217610704565b005b610221610717565b60405161022e9190610ee7565b60405180910390f35b61023f61077a565b60405161024c9190610ee7565b60405180910390f35b61026f600480360381019061026a9190610ead565b6107a1565b60405161027c9190610ee7565b60405180910390f35b61029f600480360381019061029a9190610ead565b6107d1565b6040516102ac9190610ee7565b60405180910390f35b6102bd610801565b005b6102c7610a29565b6040516102d49190610d55565b60405180910390f35b6102e5610ac8565b6040516102f29190610ee7565b60405180910390f35b610303610aed565b6040516103109190610ee7565b60405180910390f35b610333600480360381019061032e9190610ead565b610b12565b005b61033d610b96565b60405161034a9190610ee7565b60405180910390f35b600460149054906101000a900460ff1681565b60035481565b5f600460149054906101000a900460ff166103bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b390610f5a565b60405180910390fd5b60605f5b8484905081101561042157818585838181106103df576103de610f78565b5b90506020028101906103f19190610fb1565b604051602001610403939291906110a1565b604051602081830303815290604052915080806001019150506103c0565b505f81805190602001209050809250505092915050565b610440610bbb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a590611136565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104f9610bbb565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105549190610ee7565b602060405180830381865afa15801561056f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610593919061117e565b90507f64f92430a863b716cb543f76c5e5261d58e00def4da37fc65d94e7973f85be5d816040516105c49190610d55565b60405180910390a169043c33c1937564800000811015610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090611219565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055507feecaf0fad5fdd007a30b9e010c1e85793a74fea4c863836e1c17d073890b129660405160405180910390a150565b5f600460149054906101000a900460ff16905090565b5f60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61070c610bbb565b6107155f610c42565b565b5f60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6005602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610809610bbb565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108649190610ee7565b602060405180830381865afa15801561087f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a3919061117e565b90505f81116108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de90611281565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61092c61077a565b836040518363ffffffff1660e01b815260040161094a92919061129f565b6020604051808303815f875af1158015610966573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098a91906112f0565b505f600460146101000a81548160ff0219169083151502179055506109ad61077a565b73ffffffffffffffffffffffffffffffffffffffff167f9d03f7af1f34c5005e27fe2af80d574ce35cd499379a90d0e40290cf3b95fc7c826040516109f29190610d55565b60405180910390a27fac7c9a336f6590ba5c617c188a74b09fcbb0924ef0f93f03d9d47ab69c10070a60405160405180910390a150565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a849190610ee7565b602060405180830381865afa158015610a9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac3919061117e565b905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b1a610bbb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b8a575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b819190610ee7565b60405180910390fd5b610b9381610c42565b50565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc3610d03565b73ffffffffffffffffffffffffffffffffffffffff16610be161077a565b73ffffffffffffffffffffffffffffffffffffffff1614610c4057610c04610d03565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c379190610ee7565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f8115159050919050565b610d1e81610d0a565b82525050565b5f602082019050610d375f830184610d15565b92915050565b5f819050919050565b610d4f81610d3d565b82525050565b5f602082019050610d685f830184610d46565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610d9757610d96610d76565b5b8235905067ffffffffffffffff811115610db457610db3610d7a565b5b602083019150836020820283011115610dd057610dcf610d7e565b5b9250929050565b5f8060208385031215610ded57610dec610d6e565b5b5f83013567ffffffffffffffff811115610e0a57610e09610d72565b5b610e1685828601610d82565b92509250509250929050565b5f819050919050565b610e3481610e22565b82525050565b5f602082019050610e4d5f830184610e2b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e7c82610e53565b9050919050565b610e8c81610e72565b8114610e96575f80fd5b50565b5f81359050610ea781610e83565b92915050565b5f60208284031215610ec257610ec1610d6e565b5b5f610ecf84828501610e99565b91505092915050565b610ee181610e72565b82525050565b5f602082019050610efa5f830184610ed8565b92915050565b5f82825260208201905092915050565b7f56616c696461746f72206973206e6f74206163746976650000000000000000005f82015250565b5f610f44601783610f00565b9150610f4f82610f10565b602082019050919050565b5f6020820190508181035f830152610f7181610f38565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112610fcd57610fcc610fa5565b5b80840192508235915067ffffffffffffffff821115610fef57610fee610fa9565b5b60208301925060018202360383131561100b5761100a610fad565b5b509250929050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61103f82611013565b611049818561101d565b9350611059818560208601611027565b80840191505092915050565b5f81905092915050565b828183375f83830152505050565b5f6110888385611065565b935061109583858461106f565b82840190509392505050565b5f6110ac8286611035565b91506110b982848661107d565b9150819050949350505050565b7f496e76616c69642076616c696461746f7220666163746f7279206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f611120602183610f00565b915061112b826110c6565b604082019050919050565b5f6020820190508181035f83015261114d81611114565b9050919050565b61115d81610d3d565b8114611167575f80fd5b50565b5f8151905061117881611154565b92915050565b5f6020828403121561119357611192610d6e565b5b5f6111a08482850161116a565b91505092915050565b7f56616c696461746f72206d75737420686f6c64206174206c656173742032302c5f8201527f30303020454d4c00000000000000000000000000000000000000000000000000602082015250565b5f611203602783610f00565b915061120e826111a9565b604082019050919050565b5f6020820190508181035f830152611230816111f7565b9050919050565b7f4e6f20454d4c20746f6b656e7320746f207472616e73666572000000000000005f82015250565b5f61126b601983610f00565b915061127682611237565b602082019050919050565b5f6020820190508181035f8301526112988161125f565b9050919050565b5f6040820190506112b25f830185610ed8565b6112bf6020830184610d46565b9392505050565b6112cf81610d0a565b81146112d9575f80fd5b50565b5f815190506112ea816112c6565b92915050565b5f6020828403121561130557611304610d6e565b5b5f611312848285016112dc565b9150509291505056fea264697066735822122058f1e0bdd875ebb21ab69f8a11083c02fc1e5e24de36b548f89a8c3ae3e87da764736f6c634300081a0033
Deployed Bytecode Sourcemap
2889:3691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3064:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3001:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4053:572;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4669:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5957:345;;;:::i;:::-;;6363:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5122:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6494:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2285:103;;;:::i;:::-;;4941:130;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2016:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3131:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3267:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5523:367;;;:::i;:::-;;5306:131;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2963:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2926:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2396:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3037:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3064:26;;;;;;;;;;;;;:::o;3001:29::-;;;;:::o;4053:572::-;4130:7;4158:6;;;;;;;;;;;4150:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4290:31;4337:9;4332:139;4356:6;;:13;;4352:1;:17;4332:139;;;4429:18;4449:6;;4456:1;4449:9;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;4412:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4391:68;;4371:3;;;;;;;4332:139;;;;4551:12;4576:18;4566:29;;;;;;4551:44;;4613:4;4606:11;;;;4053:572;;;;:::o;4669:218::-;1975:13;:11;:13::i;:::-;4792:1:::1;4763:31;;:17;:31;;::::0;4755:77:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4862:17;4843:16;;:36;;;;;;;;;;;;;;;;;;4669:218:::0;:::o;5957:345::-;1975:13;:11;:13::i;:::-;6012:18:::1;6040:15;;;;;;;;;;;6033:33;;;6075:4;6033:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6012:69;;6097:29;6115:10;6097:29;;;;;;:::i;:::-;;;;;;;;6179:14;6165:10;:28;;6157:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;6257:4;6248:6;;:13;;;;;;;;;;;;;;;;;;6277:17;;;;;;;;;;6001:301;5957:345::o:0;6363:81::-;6406:4;6430:6;;;;;;;;;;;6423:13;;6363:81;:::o;5122:117::-;5174:7;5201:15;:30;5225:4;5201:30;;;;;;;;;;;;;;;;;;;;;;;;;5194:37;;5122:117;:::o;6494:83::-;6537:7;6564:5;;;;;;;;;;;6557:12;;6494:83;:::o;2285:103::-;1975:13;:11;:13::i;:::-;2350:30:::1;2377:1;2350:18;:30::i;:::-;2285:103::o:0;4941:130::-;5003:7;5030:18;:33;5057:4;5030:33;;;;;;;;;;;;;;;;;;;;;;;;;5023:40;;4941:130;:::o;2016:87::-;2062:7;2089:6;;;;;;;;;;;2082:13;;2016:87;:::o;3131:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3267:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;5523:367::-;1975:13;:11;:13::i;:::-;5579:15:::1;5604;;;;;;;;;;;5597:33;;;5639:4;5597:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5579:66;;5674:1;5664:7;:11;5656:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;5725:15;;;;;;;;;;;5718:32;;;5751:7;:5;:7::i;:::-;5760;5718:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5788:5;5779:6;;:14;;;;;;;;;;;;;;;;;;5827:7;:5;:7::i;:::-;5811:33;;;5836:7;5811:33;;;;;;:::i;:::-;;;;;;;;5860:22;;;;;;;;;;5568:322;5523:367::o:0;5306:131::-;5354:7;5388:15;;;;;;;;;;;5381:33;;;5423:4;5381:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5374:55;;5306:131;:::o;2963:31::-;;;;;;;;;;;;;:::o;2926:30::-;;;;;;;;;;;;;:::o;2396:220::-;1975:13;:11;:13::i;:::-;2501:1:::1;2481:22;;:8;:22;;::::0;2477:93:::1;;2555:1;2527:31;;;;;;;;;;;:::i;:::-;;;;;;;;2477:93;2580:28;2599:8;2580:18;:28::i;:::-;2396:220:::0;:::o;3037:20::-;;;;;;;;;;;;;:::o;2111:166::-;2182:12;:10;:12::i;:::-;2171:23;;:7;:5;:7::i;:::-;:23;;;2167:103;;2245:12;:10;:12::i;:::-;2218:40;;;;;;;;;;;:::i;:::-;;;;;;;;2167:103;2111:166::o;2624:191::-;2698:16;2717:6;;;;;;;;;;;2698:25;;2743:8;2734:6;;:17;;;;;;;;;;;;;;;;;;2798:8;2767:40;;2788:8;2767:40;;;;;;;;;;;;2687:128;2624:191;:::o;1003:98::-;1056:7;1083:10;1076:17;;1003:98;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:77::-;471:7;500:5;489:16;;434:77;;;:::o;517:118::-;604:24;622:5;604:24;:::i;:::-;599:3;592:37;517:118;;:::o;641:222::-;734:4;772:2;761:9;757:18;749:26;;785:71;853:1;842:9;838:17;829:6;785:71;:::i;:::-;641:222;;;;:::o;950:117::-;1059:1;1056;1049:12;1073:117;1182:1;1179;1172:12;1196:117;1305:1;1302;1295:12;1319:117;1428:1;1425;1418:12;1442:117;1551:1;1548;1541:12;1581:580;1666:8;1676:6;1726:3;1719:4;1711:6;1707:17;1703:27;1693:122;;1734:79;;:::i;:::-;1693:122;1847:6;1834:20;1824:30;;1877:18;1869:6;1866:30;1863:117;;;1899:79;;:::i;:::-;1863:117;2013:4;2005:6;2001:17;1989:29;;2067:3;2059:4;2051:6;2047:17;2037:8;2033:32;2030:41;2027:128;;;2074:79;;:::i;:::-;2027:128;1581:580;;;;;:::o;2167:583::-;2265:6;2273;2322:2;2310:9;2301:7;2297:23;2293:32;2290:119;;;2328:79;;:::i;:::-;2290:119;2476:1;2465:9;2461:17;2448:31;2506:18;2498:6;2495:30;2492:117;;;2528:79;;:::i;:::-;2492:117;2641:92;2725:7;2716:6;2705:9;2701:22;2641:92;:::i;:::-;2623:110;;;;2419:324;2167:583;;;;;:::o;2756:77::-;2793:7;2822:5;2811:16;;2756:77;;;:::o;2839:118::-;2926:24;2944:5;2926:24;:::i;:::-;2921:3;2914:37;2839:118;;:::o;2963:222::-;3056:4;3094:2;3083:9;3079:18;3071:26;;3107:71;3175:1;3164:9;3160:17;3151:6;3107:71;:::i;:::-;2963:222;;;;:::o;3191:126::-;3228:7;3268:42;3261:5;3257:54;3246:65;;3191:126;;;:::o;3323:96::-;3360:7;3389:24;3407:5;3389:24;:::i;:::-;3378:35;;3323:96;;;:::o;3425:122::-;3498:24;3516:5;3498:24;:::i;:::-;3491:5;3488:35;3478:63;;3537:1;3534;3527:12;3478:63;3425:122;:::o;3553:139::-;3599:5;3637:6;3624:20;3615:29;;3653:33;3680:5;3653:33;:::i;:::-;3553:139;;;;:::o;3698:329::-;3757:6;3806:2;3794:9;3785:7;3781:23;3777:32;3774:119;;;3812:79;;:::i;:::-;3774:119;3932:1;3957:53;4002:7;3993:6;3982:9;3978:22;3957:53;:::i;:::-;3947:63;;3903:117;3698:329;;;;:::o;4033:118::-;4120:24;4138:5;4120:24;:::i;:::-;4115:3;4108:37;4033:118;;:::o;4157:222::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:71;4369:1;4358:9;4354:17;4345:6;4301:71;:::i;:::-;4157:222;;;;:::o;4385:169::-;4469:11;4503:6;4498:3;4491:19;4543:4;4538:3;4534:14;4519:29;;4385:169;;;;:::o;4560:173::-;4700:25;4696:1;4688:6;4684:14;4677:49;4560:173;:::o;4739:366::-;4881:3;4902:67;4966:2;4961:3;4902:67;:::i;:::-;4895:74;;4978:93;5067:3;4978:93;:::i;:::-;5096:2;5091:3;5087:12;5080:19;;4739:366;;;:::o;5111:419::-;5277:4;5315:2;5304:9;5300:18;5292:26;;5364:9;5358:4;5354:20;5350:1;5339:9;5335:17;5328:47;5392:131;5518:4;5392:131;:::i;:::-;5384:139;;5111:419;;;:::o;5536:180::-;5584:77;5581:1;5574:88;5681:4;5678:1;5671:15;5705:4;5702:1;5695:15;5722:117;5831:1;5828;5821:12;5845:117;5954:1;5951;5944:12;5968:117;6077:1;6074;6067:12;6091:725;6169:4;6175:6;6231:11;6218:25;6331:1;6325:4;6321:12;6310:8;6294:14;6290:29;6286:48;6266:18;6262:73;6252:168;;6339:79;;:::i;:::-;6252:168;6451:18;6441:8;6437:33;6429:41;;6503:4;6490:18;6480:28;;6531:18;6523:6;6520:30;6517:117;;;6553:79;;:::i;:::-;6517:117;6661:2;6655:4;6651:13;6643:21;;6718:4;6710:6;6706:17;6690:14;6686:38;6680:4;6676:49;6673:136;;;6728:79;;:::i;:::-;6673:136;6182:634;6091:725;;;;;:::o;6822:98::-;6873:6;6907:5;6901:12;6891:22;;6822:98;;;:::o;6926:147::-;7027:11;7064:3;7049:18;;6926:147;;;;:::o;7079:139::-;7168:6;7163:3;7158;7152:23;7209:1;7200:6;7195:3;7191:16;7184:27;7079:139;;;:::o;7224:386::-;7328:3;7356:38;7388:5;7356:38;:::i;:::-;7410:88;7491:6;7486:3;7410:88;:::i;:::-;7403:95;;7507:65;7565:6;7560:3;7553:4;7546:5;7542:16;7507:65;:::i;:::-;7597:6;7592:3;7588:16;7581:23;;7332:278;7224:386;;;;:::o;7616:148::-;7718:11;7755:3;7740:18;;7616:148;;;;:::o;7770:::-;7868:6;7863:3;7858;7845:30;7909:1;7900:6;7895:3;7891:16;7884:27;7770:148;;;:::o;7948:330::-;8064:3;8085:89;8167:6;8162:3;8085:89;:::i;:::-;8078:96;;8184:56;8233:6;8228:3;8221:5;8184:56;:::i;:::-;8265:6;8260:3;8256:16;8249:23;;7948:330;;;;;:::o;8284:451::-;8472:3;8494:93;8583:3;8574:6;8494:93;:::i;:::-;8487:100;;8604:105;8705:3;8696:6;8688;8604:105;:::i;:::-;8597:112;;8726:3;8719:10;;8284:451;;;;;;:::o;8741:220::-;8881:34;8877:1;8869:6;8865:14;8858:58;8950:3;8945:2;8937:6;8933:15;8926:28;8741:220;:::o;8967:366::-;9109:3;9130:67;9194:2;9189:3;9130:67;:::i;:::-;9123:74;;9206:93;9295:3;9206:93;:::i;:::-;9324:2;9319:3;9315:12;9308:19;;8967:366;;;:::o;9339:419::-;9505:4;9543:2;9532:9;9528:18;9520:26;;9592:9;9586:4;9582:20;9578:1;9567:9;9563:17;9556:47;9620:131;9746:4;9620:131;:::i;:::-;9612:139;;9339:419;;;:::o;9764:122::-;9837:24;9855:5;9837:24;:::i;:::-;9830:5;9827:35;9817:63;;9876:1;9873;9866:12;9817:63;9764:122;:::o;9892:143::-;9949:5;9980:6;9974:13;9965:22;;9996:33;10023:5;9996:33;:::i;:::-;9892:143;;;;:::o;10041:351::-;10111:6;10160:2;10148:9;10139:7;10135:23;10131:32;10128:119;;;10166:79;;:::i;:::-;10128:119;10286:1;10311:64;10367:7;10358:6;10347:9;10343:22;10311:64;:::i;:::-;10301:74;;10257:128;10041:351;;;;:::o;10398:226::-;10538:34;10534:1;10526:6;10522:14;10515:58;10607:9;10602:2;10594:6;10590:15;10583:34;10398:226;:::o;10630:366::-;10772:3;10793:67;10857:2;10852:3;10793:67;:::i;:::-;10786:74;;10869:93;10958:3;10869:93;:::i;:::-;10987:2;10982:3;10978:12;10971:19;;10630:366;;;:::o;11002:419::-;11168:4;11206:2;11195:9;11191:18;11183:26;;11255:9;11249:4;11245:20;11241:1;11230:9;11226:17;11219:47;11283:131;11409:4;11283:131;:::i;:::-;11275:139;;11002:419;;;:::o;11427:175::-;11567:27;11563:1;11555:6;11551:14;11544:51;11427:175;:::o;11608:366::-;11750:3;11771:67;11835:2;11830:3;11771:67;:::i;:::-;11764:74;;11847:93;11936:3;11847:93;:::i;:::-;11965:2;11960:3;11956:12;11949:19;;11608:366;;;:::o;11980:419::-;12146:4;12184:2;12173:9;12169:18;12161:26;;12233:9;12227:4;12223:20;12219:1;12208:9;12204:17;12197:47;12261:131;12387:4;12261:131;:::i;:::-;12253:139;;11980:419;;;:::o;12405:332::-;12526:4;12564:2;12553:9;12549:18;12541:26;;12577:71;12645:1;12634:9;12630:17;12621:6;12577:71;:::i;:::-;12658:72;12726:2;12715:9;12711:18;12702:6;12658:72;:::i;:::-;12405:332;;;;;:::o;12743:116::-;12813:21;12828:5;12813:21;:::i;:::-;12806:5;12803:32;12793:60;;12849:1;12846;12839:12;12793:60;12743:116;:::o;12865:137::-;12919:5;12950:6;12944:13;12935:22;;12966:30;12990:5;12966:30;:::i;:::-;12865:137;;;;:::o;13008:345::-;13075:6;13124:2;13112:9;13103:7;13099:23;13095:32;13092:119;;;13130:79;;:::i;:::-;13092:119;13250:1;13275:61;13328:7;13319:6;13308:9;13304:22;13275:61;:::i;:::-;13265:71;;13221:125;13008:345;;;;:::o
Swarm Source
ipfs://58f1e0bdd875ebb21ab69f8a11083c02fc1e5e24de36b548f89a8c3ae3e87da7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ 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.