ETH Price: $3,172.52 (-8.32%)
Gas: 3 Gwei

Contract

0xA3421Be733125405Ea20aA853839D34b364eB524
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Poke140627052022-01-23 15:30:00913 days ago1642951800IN
0xA3421Be7...b364eB524
0 ETH0.01640743117.2143549
Poke140616402022-01-23 11:40:52913 days ago1642938052IN
0xA3421Be7...b364eB524
0 ETH0.01461623104.40021153
Poke140606432022-01-23 7:53:18914 days ago1642924398IN
0xA3421Be7...b364eB524
0 ETH0.0136598797.60257242
Poke140596102022-01-23 4:03:39914 days ago1642910619IN
0xA3421Be7...b364eB524
0 ETH0.03598962257.08711982
Poke140585902022-01-23 0:11:07914 days ago1642896667IN
0xA3421Be7...b364eB524
0 ETH0.01703194121.6967256
Poke140575262022-01-22 20:22:30914 days ago1642882950IN
0xA3421Be7...b364eB524
0 ETH0.03220746230.03035137
Poke140570992022-01-22 18:46:10914 days ago1642877170IN
0xA3421Be7...b364eB524
0 ETH0.0301286215.21967403
Poke140560882022-01-22 14:59:34914 days ago1642863574IN
0xA3421Be7...b364eB524
0 ETH0.01781382127.2506957
Poke140550552022-01-22 11:09:01914 days ago1642849741IN
0xA3421Be7...b364eB524
0 ETH0.01912765136.62417018
Poke140548632022-01-22 10:30:44914 days ago1642847444IN
0xA3421Be7...b364eB524
0 ETH0.03676304262.63446274
Poke140547982022-01-22 10:14:36914 days ago1642846476IN
0xA3421Be7...b364eB524
0 ETH0.05195352371.28222382
Poke140547602022-01-22 10:06:24914 days ago1642845984IN
0xA3421Be7...b364eB524
0 ETH0.03000651214.34754692
Poke140546562022-01-22 9:43:11915 days ago1642844591IN
0xA3421Be7...b364eB524
0 ETH0.02560047182.88927142
Poke140538482022-01-22 6:35:23915 days ago1642833323IN
0xA3421Be7...b364eB524
0 ETH0.00805346146.71197362
Poke140538452022-01-22 6:34:32915 days ago1642833272IN
0xA3421Be7...b364eB524
0 ETH0.01558953111.37131397
Poke140536002022-01-22 5:44:35915 days ago1642830275IN
0xA3421Be7...b364eB524
0 ETH0.01029784187.72154376
Poke140536002022-01-22 5:44:35915 days ago1642830275IN
0xA3421Be7...b364eB524
0 ETH0.02627238187.72154376
Poke140527722022-01-22 2:49:45915 days ago1642819785IN
0xA3421Be7...b364eB524
0 ETH0.02033781145.34274329
Poke140517082022-01-21 22:54:57915 days ago1642805697IN
0xA3421Be7...b364eB524
0 ETH0.06271472448.10956573
Poke140514022022-01-21 21:45:47915 days ago1642801547IN
0xA3421Be7...b364eB524
0 ETH0.03418095244.18805613
Poke140509052022-01-21 19:49:49915 days ago1642794589IN
0xA3421Be7...b364eB524
0 ETH0.02584321184.65508847
Poke140498632022-01-21 15:58:22915 days ago1642780702IN
0xA3421Be7...b364eB524
0 ETH0.00619927112.98310922
Poke140498632022-01-21 15:58:22915 days ago1642780702IN
0xA3421Be7...b364eB524
0 ETH0.0158165112.98310922
Poke140489962022-01-21 12:47:31915 days ago1642769251IN
0xA3421Be7...b364eB524
0 ETH0.02843667203.16847463
Poke140486372022-01-21 11:26:33915 days ago1642764393IN
0xA3421Be7...b364eB524
0 ETH0.01631615116.59224033
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MedianCOMPUSD

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-09-25
*/

/// median.sol

// Copyright (C) 2017-2020 Maker Ecosystem Growth Holdings, INC.

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity >=0.5.10;

contract LibNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  usr,
        bytes32  indexed  arg1,
        bytes32  indexed  arg2,
        bytes             data
    ) anonymous;

    modifier note {
        _;
        assembly {
            // log an 'anonymous' event with a constant 6 words of calldata
            // and four indexed topics: selector, caller, arg1 and arg2
            let mark := msize                         // end of memory ensures zero
            mstore(0x40, add(mark, 288))              // update free memory pointer
            mstore(mark, 0x20)                        // bytes type data offset
            mstore(add(mark, 0x20), 224)              // bytes size (padded)
            calldatacopy(add(mark, 0x40), 0, 224)     // bytes payload
            log4(mark, 288,                           // calldata
                 shl(224, shr(224, calldataload(0))), // msg.sig
                 caller,                              // msg.sender
                 calldataload(4),                     // arg1
                 calldataload(36)                     // arg2
                )
        }
    }
}

contract Median is LibNote {

    // --- Auth ---
    mapping (address => uint) public wards;
    function rely(address usr) external note auth { wards[usr] = 1; }
    function deny(address usr) external note auth { wards[usr] = 0; }
    modifier auth {
        require(wards[msg.sender] == 1, "Median/not-authorized");
        _;
    }

    uint128        val;
    uint32  public age;
    bytes32 public constant wat = "ethusd"; // You want to change this every deploy
    uint256 public bar = 1;

    // Authorized oracles, set by an auth
    mapping (address => uint256) public orcl;

    // Whitelisted contracts, set by an auth
    mapping (address => uint256) public bud;

    // Mapping for at most 256 oracles
    mapping (uint8 => address) public slot;

    modifier toll { require(bud[msg.sender] == 1, "Median/contract-not-whitelisted"); _;}

    event LogMedianPrice(uint256 val, uint256 age);

    //Set type of Oracle
    constructor() public {
        wards[msg.sender] = 1;
    }

    function read() external view toll returns (uint256) {
        require(val > 0, "Median/invalid-price-feed");
        return val;
    }

    function peek() external view toll returns (uint256,bool) {
        return (val, val > 0);
    }

    function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
        return ecrecover(
            keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))),
            v, r, s
        );
    }

    function poke(
        uint256[] calldata val_, uint256[] calldata age_,
        uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) external
    {
        require(val_.length == bar, "Median/bar-too-low");

        uint256 bloom = 0;
        uint256 last = 0;
        uint256 zzz = age;

        for (uint i = 0; i < val_.length; i++) {
            // Validate the values were signed by an authorized oracle
            address signer = recover(val_[i], age_[i], v[i], r[i], s[i]);
            // Check that signer is an oracle
            require(orcl[signer] == 1, "Median/invalid-oracle");
            // Price feed age greater than last medianizer age
            require(age_[i] > zzz, "Median/stale-message");
            // Check for ordered values
            require(val_[i] >= last, "Median/messages-not-in-order");
            last = val_[i];
            // Bloom filter for signer uniqueness
            uint8 sl = uint8(uint256(signer) >> 152);
            require((bloom >> sl) % 2 == 0, "Median/oracle-already-signed");
            bloom += uint256(2) ** sl;
        }

        val = uint128(val_[val_.length >> 1]);
        age = uint32(block.timestamp);

        emit LogMedianPrice(val, age);
    }

    function lift(address[] calldata a) external note auth {
        for (uint i = 0; i < a.length; i++) {
            require(a[i] != address(0), "Median/no-oracle-0");
            uint8 s = uint8(uint256(a[i]) >> 152);
            require(slot[s] == address(0), "Median/signer-already-exists");
            orcl[a[i]] = 1;
            slot[s] = a[i];
        }
    }

    function drop(address[] calldata a) external note auth {
       for (uint i = 0; i < a.length; i++) {
            orcl[a[i]] = 0;
            slot[uint8(uint256(a[i]) >> 152)] = address(0);
       }
    }

    function setBar(uint256 bar_) external note auth {
        require(bar_ > 0, "Median/quorum-is-zero");
        require(bar_ % 2 != 0, "Median/quorum-not-odd-number");
        bar = bar_;
    }

    function kiss(address a) external note auth {
        require(a != address(0), "Median/no-contract-0");
        bud[a] = 1;
    }

    function diss(address a) external note auth {
        bud[a] = 0;
    }

    function kiss(address[] calldata a) external note auth {
        for(uint i = 0; i < a.length; i++) {
            require(a[i] != address(0), "Median/no-contract-0");
            bud[a[i]] = 1;
        }
    }

    function diss(address[] calldata a) external note auth {
        for(uint i = 0; i < a.length; i++) {
            bud[a[i]] = 0;
        }
    }
}

contract MedianCOMPUSD is Median {
    bytes32 public constant wat = "COMPUSD";

    function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
        return ecrecover(
            keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))),
            v, r, s
        );
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"val","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"age","type":"uint256"}],"name":"LogMedianPrice","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"constant":true,"inputs":[],"name":"age","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bud","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"drop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"lift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"orcl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"val_","type":"uint256[]"},{"internalType":"uint256[]","name":"age_","type":"uint256[]"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"poke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"read","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"bar_","type":"uint256"}],"name":"setBar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"slot","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]

6080604052600160025560016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b58061005c6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146106c45780639c52a7f11461073d578063bf353dbb14610781578063f29c29c4146107d9578063febb0f7e1461081d57610121565b806365c4ce7a1461038557806365fae35e146103c957806389bbb8b21461040d5780638d0e5a9a146105da5780638ef5eaf01461064b57610121565b806346d4577d116100f457806346d4577d1461024f5780634ca29923146102c85780634fce7a2a146102e657806357de26a41461033e57806359e02dd71461035c57610121565b8063020b2e32146101265780631b25b65f1461017e578063262a9dff146101f7578063352d3fba14610221575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083b565b6040518082815260200191505060405180910390f35b6101f56004803603602081101561019457600080fd5b81019080803590602001906401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460208302840111640100000000831117156101e557600080fd5b9091929391929390505050610853565b005b6101ff610a95565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b61024d6004803603602081101561023757600080fd5b8101908080359060200190929190505050610aab565b005b6102c66004803603602081101561026557600080fd5b810190808035906020019064010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9091929391929390505050610c93565b005b6102d0610e0a565b6040518082815260200191505060405180910390f35b610328600480360360208110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610346610e46565b6040518082815260200191505060405180910390f35b610364610fd9565b60405180838152602001821515151581526020019250505060405180910390f35b6103c76004803603602081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611101565b005b61040b600480360360208110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611230565b005b6105d8600480360360a081101561042357600080fd5b810190808035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390803590602001906401000000008111156104ea57600080fd5b8201836020820111156104fc57600080fd5b8035906020019184602083028401116401000000008311171561051e57600080fd5b90919293919293908035906020019064010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184602083028401116401000000008311171561057357600080fd5b90919293919293908035906020019064010000000081111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111640100000000831117156105c857600080fd5b909192939192939050505061135e565b005b610609600480360360208110156105f057600080fd5b81019080803560ff169060200190929190505050611820565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c26004803603602081101561066157600080fd5b810190808035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460208302840111640100000000831117156106b257600080fd5b9091929391929390505050611853565b005b61073b600480360360208110156106da57600080fd5b81019080803590602001906401000000008111156106f757600080fd5b82018360208201111561070957600080fd5b8035906020019184602083028401116401000000008311171561072b57600080fd5b9091929391929390505050611a65565b005b61077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4a565b005b6107c36004803603602081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f78565b6040518082815260200191505060405180910390f35b61081b600480360360208110156107ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f90565b005b610825612162565b6040518082815260200191505060405180910390f35b60036020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610a5d57600073ffffffffffffffffffffffffffffffffffffffff1683838381811061093c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008585858181106109f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061090d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600160109054906101000a900463ffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008111610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f71756f72756d2d69732d7a65726f000000000000000000000081525060200191505060405180910390fd5b600060028281610be157fe5b061415610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d6265720000000081525060200191505060405180910390fd5b806002819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610dd257600060046000858585818110610d6a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610d4d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b7f434f4d505553440000000000000000000000000000000000000000000000000081565b60046020528060005260406000206000915090505481565b60006001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b6000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d656469616e2f696e76616c69642d70726963652d666565640000000000000081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905090565b6000806001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611816fffffffffffffffffffffffffffffffff169150915091509091565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b6002548a8a9050146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6261722d746f6f2d6c6f77000000000000000000000000000081525060200191505060405180910390fd5b600080905060008090506000600160109054906101000a900463ffffffff1663ffffffff16905060008090505b8d8d905081101561171657600061147c8f8f8481811061142157fe5b905060200201358e8e8581811061143457fe5b905060200201358d8d8681811061144757fe5b9050602002013560ff168c8c8781811061145d57fe5b905060200201358b8b8881811061147057fe5b90506020020135612168565b90506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f696e76616c69642d6f7261636c65000000000000000000000081525060200191505060405180910390fd5b828d8d8481811061154057fe5b90506020020135116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f7374616c652d6d65737361676500000000000000000000000081525060200191505060405180910390fd5b838f8f848181106115c757fe5b905060200201351015611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6d657373616765732d6e6f742d696e2d6f726465720000000081525060200191505060405180910390fd5b8e8e8381811061164e57fe5b905060200201359350600060988273ffffffffffffffffffffffffffffffffffffffff16901c9050600060028260ff1688901c8161168857fe5b06146116fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6f7261636c652d616c72656164792d7369676e65640000000081525060200191505060405180910390fd5b8060ff1660020a8601955050508080600101915050611405565b508c8c60018f8f9050901c81811061172a57fe5b90506020020135600160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600160106101000a81548163ffffffff021916908363ffffffff1602179055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600160009054906101000a90046fffffffffffffffffffffffffffffffff16600160109054906101000a900463ffffffff1660405180836fffffffffffffffffffffffffffffffff1681526020018263ffffffff1681526020019250505060405180910390a150505050505050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611a2d5760006003600085858581811061192a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060056000609886868681811061199957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505061190d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611e1257600073ffffffffffffffffffffffffffffffffffffffff16838383818110611b4e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6e6f2d6f7261636c652d30000000000000000000000000000081525060200191505060405180910390fd5b60006098848484818110611c0557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c9050600073ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f7369676e65722d616c72656164792d6578697374730000000081525060200191505060405180910390fd5b600160036000868686818110611d2957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838383818110611d9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050611b1f565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612044576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60025481565b6000600186867f434f4d50555344000000000000000000000000000000000000000000000000006040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561226b573d6000803e3d6000fd5b5050506020604051035190509594505050505056fea265627a7a72315820ad21a731fb74c33c2eab545026c2cf6f8508c1c9a802566a26cfaf6a078da28364736f6c634300050c0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146106c45780639c52a7f11461073d578063bf353dbb14610781578063f29c29c4146107d9578063febb0f7e1461081d57610121565b806365c4ce7a1461038557806365fae35e146103c957806389bbb8b21461040d5780638d0e5a9a146105da5780638ef5eaf01461064b57610121565b806346d4577d116100f457806346d4577d1461024f5780634ca29923146102c85780634fce7a2a146102e657806357de26a41461033e57806359e02dd71461035c57610121565b8063020b2e32146101265780631b25b65f1461017e578063262a9dff146101f7578063352d3fba14610221575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083b565b6040518082815260200191505060405180910390f35b6101f56004803603602081101561019457600080fd5b81019080803590602001906401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460208302840111640100000000831117156101e557600080fd5b9091929391929390505050610853565b005b6101ff610a95565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b61024d6004803603602081101561023757600080fd5b8101908080359060200190929190505050610aab565b005b6102c66004803603602081101561026557600080fd5b810190808035906020019064010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9091929391929390505050610c93565b005b6102d0610e0a565b6040518082815260200191505060405180910390f35b610328600480360360208110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610346610e46565b6040518082815260200191505060405180910390f35b610364610fd9565b60405180838152602001821515151581526020019250505060405180910390f35b6103c76004803603602081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611101565b005b61040b600480360360208110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611230565b005b6105d8600480360360a081101561042357600080fd5b810190808035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390803590602001906401000000008111156104ea57600080fd5b8201836020820111156104fc57600080fd5b8035906020019184602083028401116401000000008311171561051e57600080fd5b90919293919293908035906020019064010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184602083028401116401000000008311171561057357600080fd5b90919293919293908035906020019064010000000081111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111640100000000831117156105c857600080fd5b909192939192939050505061135e565b005b610609600480360360208110156105f057600080fd5b81019080803560ff169060200190929190505050611820565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c26004803603602081101561066157600080fd5b810190808035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460208302840111640100000000831117156106b257600080fd5b9091929391929390505050611853565b005b61073b600480360360208110156106da57600080fd5b81019080803590602001906401000000008111156106f757600080fd5b82018360208201111561070957600080fd5b8035906020019184602083028401116401000000008311171561072b57600080fd5b9091929391929390505050611a65565b005b61077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4a565b005b6107c36004803603602081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f78565b6040518082815260200191505060405180910390f35b61081b600480360360208110156107ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f90565b005b610825612162565b6040518082815260200191505060405180910390f35b60036020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610a5d57600073ffffffffffffffffffffffffffffffffffffffff1683838381811061093c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008585858181106109f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061090d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600160109054906101000a900463ffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008111610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f71756f72756d2d69732d7a65726f000000000000000000000081525060200191505060405180910390fd5b600060028281610be157fe5b061415610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d6265720000000081525060200191505060405180910390fd5b806002819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610dd257600060046000858585818110610d6a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610d4d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b7f434f4d505553440000000000000000000000000000000000000000000000000081565b60046020528060005260406000206000915090505481565b60006001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b6000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d656469616e2f696e76616c69642d70726963652d666565640000000000000081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905090565b6000806001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611816fffffffffffffffffffffffffffffffff169150915091509091565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b6002548a8a9050146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6261722d746f6f2d6c6f77000000000000000000000000000081525060200191505060405180910390fd5b600080905060008090506000600160109054906101000a900463ffffffff1663ffffffff16905060008090505b8d8d905081101561171657600061147c8f8f8481811061142157fe5b905060200201358e8e8581811061143457fe5b905060200201358d8d8681811061144757fe5b9050602002013560ff168c8c8781811061145d57fe5b905060200201358b8b8881811061147057fe5b90506020020135612168565b90506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f696e76616c69642d6f7261636c65000000000000000000000081525060200191505060405180910390fd5b828d8d8481811061154057fe5b90506020020135116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f7374616c652d6d65737361676500000000000000000000000081525060200191505060405180910390fd5b838f8f848181106115c757fe5b905060200201351015611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6d657373616765732d6e6f742d696e2d6f726465720000000081525060200191505060405180910390fd5b8e8e8381811061164e57fe5b905060200201359350600060988273ffffffffffffffffffffffffffffffffffffffff16901c9050600060028260ff1688901c8161168857fe5b06146116fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6f7261636c652d616c72656164792d7369676e65640000000081525060200191505060405180910390fd5b8060ff1660020a8601955050508080600101915050611405565b508c8c60018f8f9050901c81811061172a57fe5b90506020020135600160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600160106101000a81548163ffffffff021916908363ffffffff1602179055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600160009054906101000a90046fffffffffffffffffffffffffffffffff16600160109054906101000a900463ffffffff1660405180836fffffffffffffffffffffffffffffffff1681526020018263ffffffff1681526020019250505060405180910390a150505050505050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611a2d5760006003600085858581811061192a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060056000609886868681811061199957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505061190d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611e1257600073ffffffffffffffffffffffffffffffffffffffff16838383818110611b4e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6e6f2d6f7261636c652d30000000000000000000000000000081525060200191505060405180910390fd5b60006098848484818110611c0557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c9050600073ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f7369676e65722d616c72656164792d6578697374730000000081525060200191505060405180910390fd5b600160036000868686818110611d2957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838383818110611d9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050611b1f565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612044576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60025481565b6000600186867f434f4d50555344000000000000000000000000000000000000000000000000006040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561226b573d6000803e3d6000fd5b5050506020604051035190509594505050505056fea265627a7a72315820ad21a731fb74c33c2eab545026c2cf6f8508c1c9a802566a26cfaf6a078da28364736f6c634300050c0032

Deployed Bytecode Sourcemap

6254:391:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6254:391:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2555:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2555:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5877:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5877:214:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5877:214:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5877:214:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5877:214:0;;;;;;;;;;;;:::i;:::-;;2371:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5452:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5452:196:0;;;;;;;;;;;;;;;;;:::i;:::-;;6099:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6099:148:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6099:148:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6099:148:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6099:148:0;;;;;;;;;;;;:::i;:::-;;6294:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2650;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2650:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3028:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3174:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5796:73;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5796:73:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2095:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2095:65:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3588:1259;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3588:1259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3588:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3588:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3588:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3588:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3588:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3588:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3588:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3588:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3588:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3588:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3588:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3588:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3588:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3588:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3588:1259:0;;;;;;;;;;;;:::i;:::-;;2738:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2738:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5235:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5235:209:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5235:209:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5235:209:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5235:209:0;;;;;;;;;;;;:::i;:::-;;4855:372;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4855:372:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4855:372:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4855:372:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4855:372:0;;;;;;;;;;;;:::i;:::-;;2166:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2166:65:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2050:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2050:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5656:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5656:132:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2481:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2555:40;;;;;;;;;;;;;;;;;:::o;5877:214::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5947:6;5956:1;5947:10;;5943:141;5963:1;;:8;;5959:1;:12;5943:141;;;6017:1;6001:18;;:1;;6003;6001:4;;;;;;;;;;;;;;;:18;;;;5993:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6071:1;6059:3;:9;6063:1;;6065;6063:4;;;;;;;;;;;;;;;6059:9;;;;;;;;;;;;;;;:13;;;;5973:3;;;;;;;5943:141;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;;:::o;2371:18::-;;;;;;;;;;;;;:::o;5452:196::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:1;5520:4;:8;5512:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5585:1;5580;5573:4;:8;;;;;;:13;;5565:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5636:4;5630:3;:10;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;:::o;6099:148::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6169:6;6178:1;6169:10;;6165:75;6185:1;;:8;;6181:1;:12;6165:75;;;6227:1;6215:3;:9;6219:1;;6221;6219:4;;;;;;;;;;;;;;;6215:9;;;;;;;;;;;;;;;:13;;;;6195:3;;;;;;;6165:75;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;;:::o;6294:39::-;;;:::o;2650:::-;;;;;;;;;;;;;;;;;:::o;3028:138::-;3072:7;2828:1;2809:3;:15;2813:10;2809:15;;;;;;;;;;;;;;;;:20;2801:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3106:1;3100:3;;;;;;;;;;;:7;;;3092:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3155:3;;;;;;;;;;;3148:10;;;;3028:138;:::o;3174:98::-;3218:7;3226:4;2828:1;2809:3;:15;2813:10;2809:15;;;;;;;;;;;;;;;;:20;2801:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3251:3;;;;;;;;;;;3262:1;3256:3;;;;;;;;;;;:7;;;3243:21;;;;;;;;;3174:98;;:::o;5796:73::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5860:1;5851:3;:6;5855:1;5851:6;;;;;;;;;;;;;;;:10;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;:::o;2095:65::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:1;2143:5;:10;2149:3;2143:10;;;;;;;;;;;;;;;:14;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;:::o;3588:1259::-;3783:3;;3768:4;;:11;;:18;3760:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3822:13;3838:1;3822:17;;3850:12;3865:1;3850:16;;3877:11;3891:3;;;;;;;;;;;3877:17;;;;3912:6;3921:1;3912:10;;3907:801;3928:4;;:11;;3924:1;:15;3907:801;;;4033:14;4050:43;4058:4;;4063:1;4058:7;;;;;;;;;;;;;4067:4;;4072:1;4067:7;;;;;;;;;;;;;4076:1;;4078;4076:4;;;;;;;;;;;;;;;4082:1;;4084;4082:4;;;;;;;;;;;;;4088:1;;4090;4088:4;;;;;;;;;;;;;4050:7;:43::i;:::-;4033:60;;4179:1;4163:4;:12;4168:6;4163:12;;;;;;;;;;;;;;;;:17;4155:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:3;4293:4;;4298:1;4293:7;;;;;;;;;;;;;:13;4285:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4406:4;4395;;4400:1;4395:7;;;;;;;;;;;;;:15;;4387:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:4;;4470:1;4465:7;;;;;;;;;;;;;4458:14;;4538:8;4574:3;4563:6;4555:15;;:22;;4538:40;;4622:1;4617;4611:2;4602:11;;:5;:11;;4601:17;;;;;;:22;4593:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4694:2;4680:16;;4688:1;4680:16;4671:25;;;;3907:801;;3941:3;;;;;;;3907:801;;;;4734:4;;4754:1;4739:4;;:11;;:16;;4734:22;;;;;;;;;;;;;4720:3;;:37;;;;;;;;;;;;;;;;;;4781:15;4768:3;;:29;;;;;;;;;;;;;;;;;;4815:24;4830:3;;;;;;;;;;;4835;;;;;;;;;;;4815:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;3588:1259;;;;;;;;;;;;;:::o;2738:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;5235:209::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5305:6;5314:1;5305:10;;5300:137;5321:1;;:8;;5317:1;:12;5300:137;;;5364:1;5351:4;:10;5356:1;;5358;5356:4;;;;;;;;;;;;;;;5351:10;;;;;;;;;;;;;;;:14;;;;5424:1;5380:4;:33;5408:3;5399:1;;5401;5399:4;;;;;;;;;;;;;;;5391:13;;:20;;5380:33;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;5331:3;;;;;;;5300:137;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;;:::o;4855:372::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4926:6;4935:1;4926:10;;4921:299;4942:1;;:8;;4938:1;:12;4921:299;;;4996:1;4980:18;;:1;;4982;4980:4;;;;;;;;;;;;;;;:18;;;;4972:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5036:7;5069:3;5060:1;;5062;5060:4;;;;;;;;;;;;;;;5052:13;;:20;;5036:37;;5115:1;5096:21;;:4;:7;5101:1;5096:7;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;5088:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5178:1;5165:4;:10;5170:1;;5172;5170:4;;;;;;;;;;;;;;;5165:10;;;;;;;;;;;;;;;:14;;;;5204:1;;5206;5204:4;;;;;;;;;;;;;;;5194;:7;5199:1;5194:7;;;;;;;;;;;;;;;;:14;;;;;;;;;;;;;;;;;;4921:299;4952:3;;;;;;;4921:299;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;;:::o;2166:65::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2227:1;2214:5;:10;2220:3;2214:10;;;;;;;;;;;;;;;:14;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;:::o;2050:38::-;;;;;;;;;;;;;;;;;:::o;5656:132::-;2291:1;2270:5;:17;2276:10;2270:17;;;;;;;;;;;;;;;;:22;2262:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5732:1;5719:15;;:1;:15;;;;5711:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5779:1;5770:3;:6;5774:1;5770:6;;;;;;;;;;;;;;;:10;;;;1246:5;1342:3;1336:4;1332:14;1326:4;1319:28;1417:4;1411;1404:18;1509:3;1502:4;1496;1492:15;1485:28;1596:3;1593:1;1586:4;1580;1576:15;1563:37;1918:2;1905:16;1855:1;1842:15;1773:6;1738:1;1725:15;1720:3;1716:25;1711:3;1707:35;1646:3;1640:4;1635:333;1069:910;;:::o;2481:22::-;;;;:::o;6342:300::-;6441:7;6468:166;6582:4;6588;6594:3;6565:33;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6565:33:0;;;6555:44;;;;;;6502:98;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6502:98:0;;;6492:109;;;;;;6616:1;6619;6622;6468:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6468:166:0;;;;;;;;6461:173;;6342:300;;;;;;;:::o

Swarm Source

bzzr://ad21a731fb74c33c2eab545026c2cf6f8508c1c9a802566a26cfaf6a078da283

Block Transaction Difficulty 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
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.