S Price: $0.651913 (+8.97%)

Contract

0x9c439B9f79BceEc77d9Cd43972378a6547Cb9511

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Open Validator78461622025-02-14 12:21:074 days ago1739535667IN
0x9c439B9f...547Cb9511
0 S0.0021367555

Latest 1 internal transaction

Parent Transaction Hash Block From To
78431552025-02-14 11:50:134 days ago1739533813  Contract Creation0 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

Optimization Enabled:
No with 200 runs

Other Settings:
cancun EvmVersion, None license
/**
 *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

Contract ABI

[{"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

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.