FTM Testnet

Contract

0x7cc86FbE5dE295205cfF420994165D18D48cf83c

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo0 FTM

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Value
Approve238382382024-01-19 13:20:09126 days ago1705670409IN
0x7cc86FbE...8D48cf83c
0 FTM0.000060332.5
Approve238382372024-01-19 13:20:08126 days ago1705670408IN
0x7cc86FbE...8D48cf83c
0 FTM0.000060332.5
Transfer238288672024-01-19 0:23:12127 days ago1705623792IN
0x7cc86FbE...8D48cf83c
0 FTM0.000071472.5
Approve145928262023-03-20 17:07:04431 days ago1679332024IN
0x7cc86FbE...8D48cf83c
0 FTM0.000060332.5
Transfer81921692022-02-23 7:09:17822 days ago1645600157IN
0x7cc86FbE...8D48cf83c
0 FTM0.01588939292.4554
Transfer69619722022-01-27 11:07:49849 days ago1643281669IN
0x7cc86FbE...8D48cf83c
0 FTM0.00786904200.0114
Transfer67664442022-01-21 10:45:56855 days ago1642761956IN
0x7cc86FbE...8D48cf83c
0 FTM0.00571581200.0144
Transfer67663632022-01-21 10:36:42855 days ago1642761402IN
0x7cc86FbE...8D48cf83c
0 FTM0.00571581200.0144
Transfer67663442022-01-21 10:34:51855 days ago1642761291IN
0x7cc86FbE...8D48cf83c
0 FTM0.01086438200.0144
Transfer63551302022-01-03 20:04:09872 days ago1641240249IN
0x7cc86FbE...8D48cf83c
0 FTM0.01054392203.771
Transfer62857302021-12-30 16:00:42876 days ago1640880042IN
0x7cc86FbE...8D48cf83c
0 FTM0.01086681200.0114
Transfer62857202021-12-30 16:00:33876 days ago1640880033IN
0x7cc86FbE...8D48cf83c
0 FTM0.00609014200.0114
Transfer60986952021-12-24 0:44:58883 days ago1640306698IN
0x7cc86FbE...8D48cf83c
0 FTM0.00786904200.0114
Transfer59272832021-12-15 20:52:07891 days ago1639601527IN
0x7cc86FbE...8D48cf83c
0 FTM0.000059011.5000855
Transfer56773532021-12-04 21:53:30902 days ago1638654810IN
0x7cc86FbE...8D48cf83c
0 FTM0.00008151.5000855
Approve54542372021-11-30 3:37:27907 days ago1638243447IN
0x7cc86FbE...8D48cf83c
0 FTM0.000080441.6566585
Transfer54541842021-11-30 3:36:18907 days ago1638243378IN
0x7cc86FbE...8D48cf83c
0 FTM0.000089181.6415565
Approve54540972021-11-30 3:34:47907 days ago1638243287IN
0x7cc86FbE...8D48cf83c
0 FTM0.000076281.5713565
Approve54535072021-11-30 3:22:45907 days ago1638242565IN
0x7cc86FbE...8D48cf83c
0 FTM0.000083031.7105055
Approve54531632021-11-30 3:15:59907 days ago1638242159IN
0x7cc86FbE...8D48cf83c
0 FTM0.000078611.620555
Mint54527862021-11-30 3:08:20907 days ago1638241700IN
0x7cc86FbE...8D48cf83c
0 FTM0.000089471.8460455
Mint54527702021-11-30 3:08:03907 days ago1638241683IN
0x7cc86FbE...8D48cf83c
0 FTM0.000095051.836888
Transfer53610152021-11-28 4:49:19909 days ago1638074959IN
0x7cc86FbE...8D48cf83c
0 FTM0.000042861.500126
Mint52946512021-11-26 17:55:08910 days ago1637949308IN
0x7cc86FbE...8D48cf83c
0 FTM0.000069821.5000855
Mint52882842021-11-26 14:38:14910 days ago1637937494IN
0x7cc86FbE...8D48cf83c
0 FTM0.000069821.5000855
View all transactions

Latest 15 internal transactions

Parent Transaction Hash Block From To Value
51309932021-11-23 17:42:04913 days ago1637689324
0x7cc86FbE...8D48cf83c
10 FTM
50526542021-11-22 3:01:18915 days ago1637550078
0x7cc86FbE...8D48cf83c
10 FTM
50387852021-11-21 19:39:57915 days ago1637523597
0x7cc86FbE...8D48cf83c
10 FTM
50296072021-11-21 16:42:28915 days ago1637512948
0x7cc86FbE...8D48cf83c
10 FTM
50027332021-11-21 5:31:17916 days ago1637472677
0x7cc86FbE...8D48cf83c
10 FTM
50024032021-11-21 5:20:51916 days ago1637472051
0x7cc86FbE...8D48cf83c
10 FTM
49916842021-11-20 22:53:06916 days ago1637448786
0x7cc86FbE...8D48cf83c
10 FTM
49915442021-11-20 22:47:20916 days ago1637448440
0x7cc86FbE...8D48cf83c
10 FTM
49902222021-11-20 21:56:26916 days ago1637445386
0x7cc86FbE...8D48cf83c
10 FTM
49874312021-11-20 20:20:26916 days ago1637439626
0x7cc86FbE...8D48cf83c
10 FTM
49859622021-11-20 19:34:38916 days ago1637436878
0x7cc86FbE...8D48cf83c
10 FTM
49821252021-11-20 17:37:59916 days ago1637429879
0x7cc86FbE...8D48cf83c
10 FTM
49808522021-11-20 17:09:53916 days ago1637428193
0x7cc86FbE...8D48cf83c
10 FTM
49797432021-11-20 16:44:53916 days ago1637426693
0x7cc86FbE...8D48cf83c
10 FTM
49746352021-11-20 14:49:57916 days ago1637419797  Contract Creation0 FTM
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x6dBcA1bb...55781e205
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
DAI

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at testnet.ftmscan.com on 2021-11-20
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.7.5;


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
    //         )
    // }
  }
}

interface IDAI {


    // --- Auth ---
  function wards() external returns ( uint256 );

  function rely(address guy) external;

  function deny(address guy) external;

    // --- Token ---
  function transfer(address dst, uint wad) external returns (bool);

  function transferFrom(address src, address dst, uint wad) external returns (bool);

  function mint(address usr, uint wad) external;

  function burn(address usr, uint wad) external;

  function approve(address usr, uint wad) external returns (bool);

    // --- Alias ---
  function push(address usr, uint wad) external;

  function pull(address usr, uint wad) external;

  function move(address src, address dst, uint wad) external;

    // --- Approve by signature ---
  function permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s) external;
}

////// /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/dai.sol
// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico

// 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.12; */

/* import "./lib.sol"; */

contract DAI is LibNote {
  
  event Approval(address indexed src, address indexed guy, uint wad);
  event Transfer(address indexed src, address indexed dst, uint wad);
  
    // --- Auth ---
    mapping (address => uint) public wards;

    function rely(address guy) external note auth { wards[guy] = 1; }

    function deny(address guy) external note auth { wards[guy] = 0; }

    modifier auth {
        require(wards[msg.sender] == 1, "Dai/not-authorized");
        _;
    }

    // --- ERC20 Data ---
    string  public constant name     = "Dai Stablecoin";
    string  public constant symbol   = "DAI";
    string  public constant version  = "1";
    uint8   public constant decimals = 18;
    uint256 public totalSupply;
    uint public dailyDAILimit;

    mapping (address => uint)                      public balanceOf;
    mapping (address => mapping (address => uint)) private allowances;
    mapping (address => uint)                      public nonces;
    mapping (address => uint)                      public lastMintRestart;
    mapping (address => uint)                      public daiMintedToday;

    // event Approval(address indexed src, address indexed guy, uint wad);
    // event Transfer(address indexed src, address indexed dst, uint wad);

    // --- Math ---
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }

    // --- EIP712 niceties ---
    bytes32 public DOMAIN_SEPARATOR;
    // bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)");
    // bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;
    bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511aca;

    constructor(uint256 chainId_) {
        wards[msg.sender] = 1;
        DOMAIN_SEPARATOR = keccak256(abi.encode(
            keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
            keccak256(bytes(name)),
            keccak256(bytes(version)),
            chainId_,
            address(this)
        ));
        dailyDAILimit = 10000000000000000000000;
    }

    function allowance( address account_, address sender_ ) external view returns ( uint ) {
      return _allowance( account_, sender_ );
    }

    function _allowance( address account_, address sender_ ) internal view returns ( uint ) {
      
      return allowances[account_][sender_];
    }

    // --- Token ---
    function transfer(address dst, uint wad) external returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad) public returns (bool) {
      
      
      require(balanceOf[src] >= wad, "Dai/insufficient-balance");
        if (src != msg.sender && _allowance( src, msg.sender ) != uint(-1)) {
            require(_allowance( src, msg.sender ) >= wad, "Dai/insufficient-allowance");
            allowances[src][msg.sender] = sub(_allowance( src, msg.sender ), wad);
        }
        balanceOf[src] = sub(balanceOf[src], wad);
        balanceOf[dst] = add(balanceOf[dst], wad);
        emit Transfer(src, dst, wad);
        return true;
    }

    function addAuth(address usr) external auth {
        wards[usr] = 1;
    }

    function adjustDailyDAILimit(uint _limit) external auth {
        dailyDAILimit = _limit;
    }

    function mint(address usr, uint wad) external {

      if(wards[msg.sender] == 0) {
        require(add(wad, daiMintedToday[msg.sender]) <= dailyDAILimit || sub(block.number, lastMintRestart[msg.sender]) >= 6500 && wad <= dailyDAILimit, "Over daily DAI Limit");
        if( sub(block.number, lastMintRestart[msg.sender]) >= 6500 ) {
            daiMintedToday[msg.sender] = wad;
            lastMintRestart[msg.sender] = block.number;
        } else {
            daiMintedToday[msg.sender] = add(daiMintedToday[msg.sender], wad);
        }
      }
      
      balanceOf[usr] = add(balanceOf[usr], wad);
      
      totalSupply    = add(totalSupply, wad);
      
      
      emit Transfer(address(0), usr, wad);
    }

    function burn(address usr, uint wad) external {
        require(balanceOf[usr] >= wad, "Dai/insufficient-balance");
        if (usr != msg.sender && _allowance( usr, msg.sender ) != uint(-1)) {
            require(_allowance( usr, msg.sender ) >= wad, "Dai/insufficient-allowance");
            allowances[usr][msg.sender] = sub(_allowance( usr, msg.sender ), wad);
        }
        balanceOf[usr] = sub(balanceOf[usr], wad);
        totalSupply    = sub(totalSupply, wad);
        emit Transfer(usr, address(0), wad);
    }

    function _approve(address usr, uint wad) internal returns (bool) {
      
      allowances[msg.sender][usr] = wad;
      
      emit Approval(msg.sender, usr, wad);
      return true;
    }

    function approve(address usr_, uint wad_ ) external returns (bool) {
      
      return _approve( usr_, wad_ ) ;
    }

    // --- Alias ---
    function push(address usr, uint wad) external {
        transferFrom(msg.sender, usr, wad);
    }

    function pull(address usr, uint wad) external {
        transferFrom(usr, msg.sender, wad);
    }

    function move(address src, address dst, uint wad) external {
        transferFrom(src, dst, wad);
    }

    // --- Approve by signature ---
    function permit(address holder, address spender, uint256 nonce, uint256 expiry,
                    bool allowed, uint8 v, bytes32 r, bytes32 s) external
    {
        bytes32 digest =
            keccak256(abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH,
                                     holder,
                                     spender,
                                     nonce,
                                     expiry,
                                     allowed))
        ));

        require(holder != address(0), "Dai/invalid-address-0");
        require(holder == ecrecover(digest, v, r, s), "Dai/invalid-permit");
        require(expiry == 0 || block.timestamp <= expiry, "Dai/permit-expired");
        require(nonce == nonces[holder]++, "Dai/invalid-nonce");
        uint wad = allowed ? uint(-1) : 0;
        allowances[holder][spender] = wad;
        emit Approval(holder, spender, wad);
    }
}

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"chainId_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"addAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"adjustDailyDAILimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"},{"internalType":"address","name":"sender_","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr_","type":"address"},{"internalType":"uint256","name":"wad_","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"daiMintedToday","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyDAILimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastMintRestart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"allowed","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063798247ae116100f9578063a9059cbb11610097578063bf353dbb11610071578063bf353dbb1461053c578063dd62ed3e14610562578063ef1277e014610590578063f2d5d56b14610598576101a9565b8063a9059cbb146104ae578063b753a98c146104da578063bb35783b14610506576101a9565b806392bc513c116100d357806392bc513c1461042e57806395d89b41146104545780639c52a7f11461045c5780639dc29fac14610482576101a9565b8063798247ae146103885780637ecebe00146103ae5780638fcbaf0c146103d4576101a9565b806333b3cfc6116101665780635422224e116101405780635422224e1461033457806354fd4d501461035a57806365fae35e1461033457806370a0823114610362576101a9565b806333b3cfc6146102e15780633644e5151461030057806340c10f1914610308576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd1461028557806330adf81f146102bb578063313ce567146102c3575b600080fd5b6101b66105c4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105ee565b604080519115158252519081900360200190f35b610273610603565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610609565b6102736107e3565b6102cb610807565b6040805160ff9092168252519081900360200190f35b6102fe600480360360208110156102f757600080fd5b503561080c565b005b61027361086a565b6102fe6004803603604081101561031e57600080fd5b506001600160a01b038135169060200135610870565b6102fe6004803603602081101561034a57600080fd5b50356001600160a01b0316610a25565b6101b6610a9b565b6102736004803603602081101561037857600080fd5b50356001600160a01b0316610ab8565b6102736004803603602081101561039e57600080fd5b50356001600160a01b0316610aca565b610273600480360360208110156103c457600080fd5b50356001600160a01b0316610adc565b6102fe60048036036101008110156103eb57600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608081013515159060ff60a0820135169060c08101359060e00135610aee565b6102736004803603602081101561044457600080fd5b50356001600160a01b0316610de8565b6101b6610dfa565b6102fe6004803603602081101561047257600080fd5b50356001600160a01b0316610e19565b6102fe6004803603604081101561049857600080fd5b506001600160a01b038135169060200135610e8c565b610257600480360360408110156104c457600080fd5b506001600160a01b038135169060200135611044565b6102fe600480360360408110156104f057600080fd5b506001600160a01b038135169060200135611051565b6102fe6004803603606081101561051c57600080fd5b506001600160a01b03813581169160208101359091169060400135611061565b6102736004803603602081101561055257600080fd5b50356001600160a01b0316611072565b6102736004803603604081101561057857600080fd5b506001600160a01b0381358116916020013516611084565b610273611090565b6102fe600480360360408110156105ae57600080fd5b506001600160a01b038135169060200135611096565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b60006105fa83836110a1565b90505b92915050565b60015481565b6001600160a01b038316600090815260036020526040812054821115610671576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b038416331480159061069557506000196106928533611107565b14155b1561073057816106a58533611107565b10156106f8576040805162461bcd60e51b815260206004820152601a60248201527f4461692f696e73756666696369656e742d616c6c6f77616e6365000000000000604482015290519081900360640190fd5b61070b6107058533611107565b83611132565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6001600160a01b0384166000908152600360205260409020546107539083611132565b6001600160a01b0380861660009081526003602052604080822093909355908516815220546107829083611142565b6001600160a01b0380851660008181526003602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511aca81565b601281565b33600090815260208190526040902054600114610865576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b600255565b60085481565b3360009081526020819052604090205461099457600254336000908152600760205260409020546108a2908390611142565b1115806108d9575033600090815260066020526040902054611964906108c9904390611132565b101580156108d957506002548111155b610921576040805162461bcd60e51b815260206004820152601460248201527313dd995c8819185a5b1e4811105248131a5b5a5d60621b604482015290519081900360640190fd5b3360009081526006602052604090205461196490610940904390611132565b106109695733600090815260076020908152604080832084905560069091529020439055610994565b336000908152600760205260409020546109839082611142565b336000908152600760205260409020555b6001600160a01b0382166000908152600360205260409020546109b79082611142565b6001600160a01b0383166000908152600360205260409020556001546109dd9082611142565b6001556040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b33600090815260208190526040902054600114610a7e576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b0316600090815260208190526040902060019055565b604051806040016040528060018152602001603160f81b81525081565b60036020526000908152604090205481565b60066020526000908152604090205481565b60056020526000908152604090205481565b600854604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511aca6020808301919091526001600160a01b03808d16838501819052908c166060840152608083018b905260a083018a905288151560c0808501919091528451808503909101815260e08401855280519083012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251929091019190912090610bee576040805162461bcd60e51b815260206004820152601560248201527404461692f696e76616c69642d616464726573732d3605c1b604482015290519081900360640190fd5b60018185858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c48573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610cac576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b851580610cb95750854211155b610cff576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b6001600160a01b03891660009081526005602052604090208054600181019091558714610d67576040805162461bcd60e51b81526020600482015260116024820152704461692f696e76616c69642d6e6f6e636560781b604482015290519081900360640190fd5b600085610d75576000610d79565b6000195b6001600160a01b03808c166000818152600460209081526040808320948f168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a350505050505050505050565b60076020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610e72576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b0316600090815260208190526040812055565b6001600160a01b038216600090815260036020526040902054811115610ef4576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0382163314801590610f185750600019610f158333611107565b14155b15610fb35780610f288333611107565b1015610f7b576040805162461bcd60e51b815260206004820152601a60248201527f4461692f696e73756666696369656e742d616c6c6f77616e6365000000000000604482015290519081900360640190fd5b610f8e610f888333611107565b82611132565b6001600160a01b03831660009081526004602090815260408083203384529091529020555b6001600160a01b038216600090815260036020526040902054610fd69082611132565b6001600160a01b038316600090815260036020526040902055600154610ffc9082611132565b6001556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006105fa338484610609565b61105c338383610609565b505050565b61106c838383610609565b50505050565b60006020819052908152604090205481565b60006105fa8383611107565b60025481565b61105c823383610609565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b808203828111156105fd57600080fd5b808201828110156105fd57600080fdfea26469706673582212203068830d42822cef7b25350db617ca622911e66f5ccc4cfd90e747f1ddb05a0464736f6c63430007050033

Deployed Bytecode Sourcemap

3005:6724:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3533:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:122;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8184:122:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3727:26;;;:::i;:::-;;;;;;;;;;;;;;;;5895:600;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5895:600:0;;;;;;;;;;;;;;;;;:::i;4888:108::-;;;:::i;3683:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6588:97;;;;;;;;;;;;;;;;-1:-1:-1;6588:97:0;;:::i;:::-;;4587:31;;;:::i;6693:738::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6693:738:0;;;;;;;;:::i;6503:77::-;;;;;;;;;;;;;;;;-1:-1:-1;6503:77:0;-1:-1:-1;;;;;6503:77:0;;:::i;3638:38::-;;;:::i;3794:63::-;;;;;;;;;;;;;;;;-1:-1:-1;3794:63:0;-1:-1:-1;;;;;3794:63:0;;:::i;4003:69::-;;;;;;;;;;;;;;;;-1:-1:-1;4003:69:0;-1:-1:-1;;;;;4003:69:0;;:::i;3936:60::-;;;;;;;;;;;;;;;;-1:-1:-1;3936:60:0;-1:-1:-1;;;;;3936:60:0;;:::i;8700:1026::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8700:1026:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4079:68::-;;;;;;;;;;;;;;;;-1:-1:-1;4079:68:0;-1:-1:-1;;;;;4079:68:0;;:::i;3591:40::-;;;:::i;3327:65::-;;;;;;;;;;;;;;;;-1:-1:-1;3327:65:0;-1:-1:-1;;;;;3327:65:0;;:::i;7439:534::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7439:534:0;;;;;;;;:::i;5762:125::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5762:125:0;;;;;;;;:::i;8336:99::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8336:99:0;;;;;;;;:::i;8550:105::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8550:105:0;;;;;;;;;;;;;;;;;:::i;3207:38::-;;;;;;;;;;;;;;;;-1:-1:-1;3207:38:0;-1:-1:-1;;;;;3207:38:0;;:::i;5433:142::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5433:142:0;;;;;;;;;;:::i;3760:25::-;;;:::i;8443:99::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8443:99:0;;;;;;;;:::i;3533:51::-;;;;;;;;;;;;;;-1:-1:-1;;;3533:51:0;;;;:::o;8184:122::-;8245:4;8275:22;8285:4;8291;8275:8;:22::i;:::-;8268:29;;8184:122;;;;;:::o;3727:26::-;;;;:::o;5895:600::-;-1:-1:-1;;;;;6008:14:0;;5969:4;6008:14;;;:9;:14;;;;;;:21;-1:-1:-1;6008:21:0;6000:58;;;;;-1:-1:-1;;;6000:58:0;;;;;;;;;;;;-1:-1:-1;;;6000:58:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:17:0;;6080:10;6073:17;;;;:62;;;-1:-1:-1;;6094:29:0;6106:3;6111:10;6094;:29::i;:::-;:41;;6073:62;6069:254;;;6193:3;6160:29;6172:3;6177:10;6160;:29::i;:::-;:36;;6152:75;;;;;-1:-1:-1;;;6152:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6272:39;6276:29;6288:3;6293:10;6276;:29::i;:::-;6307:3;6272;:39::i;:::-;-1:-1:-1;;;;;6242:15:0;;;;;;:10;:15;;;;;;;;6258:10;6242:27;;;;;;;:69;6069:254;-1:-1:-1;;;;;6354:14:0;;;;;;:9;:14;;;;;;6350:24;;6370:3;6350;:24::i;:::-;-1:-1:-1;;;;;6333:14:0;;;;;;;:9;:14;;;;;;:41;;;;6406:14;;;;;;;6402:24;;6422:3;6402;:24::i;:::-;-1:-1:-1;;;;;6385:14:0;;;;;;;:9;:14;;;;;;;;;:41;;;;6442:23;;;;;;;6385:14;;6442:23;;;;;;;;;;;;;-1:-1:-1;6483:4:0;5895:600;;;;;:::o;4888:108::-;4930:66;4888:108;:::o;3683:37::-;3718:2;3683:37;:::o;6588:97::-;3439:10;3433:5;:17;;;;;;;;;;;3454:1;3433:22;3425:53;;;;;-1:-1:-1;;;3425:53:0;;;;;;;;;;;;-1:-1:-1;;;3425:53:0;;;;;;;;;;;;;;;6655:13:::1;:22:::0;6588:97::o;4587:31::-;;;;:::o;6693:738::-;6759:10;6753:5;:17;;;;;;;;;;;6750:501;;6836:13;;6820:10;6805:26;;;;:14;:26;;;;;;6796:36;;6800:3;;6796;:36::i;:::-;:53;;:135;;;-1:-1:-1;6887:10:0;6871:27;;;;:15;:27;;;;;;6903:4;;6853:46;;6857:12;;6853:3;:46::i;:::-;:54;;:78;;;;;6918:13;;6911:3;:20;;6853:78;6788:168;;;;;-1:-1:-1;;;6788:168:0;;;;;;;;;;;;-1:-1:-1;;;6788:168:0;;;;;;;;;;;;;;;7005:10;6989:27;;;;:15;:27;;;;;;7021:4;;6971:46;;6975:12;;6971:3;:46::i;:::-;:54;6967:275;;7058:10;7043:26;;;;:14;:26;;;;;;;;:32;;;7090:15;:27;;;;;7120:12;7090:42;;6967:275;;;7213:10;7198:26;;;;:14;:26;;;;;;7194:36;;7226:3;7194;:36::i;:::-;7180:10;7165:26;;;;:14;:26;;;;;:65;6967:275;-1:-1:-1;;;;;7288:14:0;;;;;;:9;:14;;;;;;7284:24;;7304:3;7284;:24::i;:::-;-1:-1:-1;;;;;7267:14:0;;;;;;:9;:14;;;;;:41;7346:11;;7342:21;;7359:3;7342;:21::i;:::-;7325:11;:38;7393:30;;;;;;;;-1:-1:-1;;;;;7393:30:0;;;7410:1;;7393:30;;;;;;;;;6693:738;;:::o;6503:77::-;3439:10;3433:5;:17;;;;;;;;;;;3454:1;3433:22;3425:53;;;;;-1:-1:-1;;;3425:53:0;;;;;;;;;;;;-1:-1:-1;;;3425:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6558:10:0::1;:5;:10:::0;;;::::1;::::0;;;;;;6571:1:::1;6558:14:::0;;6503:77::o;3638:38::-;;;;;;;;;;;;;;-1:-1:-1;;;3638:38:0;;;;:::o;3794:63::-;;;;;;;;;;;;;:::o;4003:69::-;;;;;;;;;;;;;:::o;3936:60::-;;;;;;;;;;;;;:::o;8700:1026::-;8975:16;;9020:258;;;4930:66;9020:258;;;;;;;;-1:-1:-1;;;;;9020:258:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9010:269;;;;;;-1:-1:-1;;;8911:379:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8901:390;;;;;;;;;;;9304:54;;;;;-1:-1:-1;;;9304:54:0;;;;;;;;;;;;-1:-1:-1;;;9304:54:0;;;;;;;;;;;;;;;9387:26;9397:6;9405:1;9408;9411;9387:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9377:36:0;:6;-1:-1:-1;;;;;9377:36:0;;9369:67;;;;;-1:-1:-1;;;9369:67:0;;;;;;;;;;;;-1:-1:-1;;;9369:67:0;;;;;;;;;;;;;;;9455:11;;;:40;;;9489:6;9470:15;:25;;9455:40;9447:71;;;;;-1:-1:-1;;;9447:71:0;;;;;;;;;;;;-1:-1:-1;;;9447:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9546:14:0;;;;;;:6;:14;;;;;:16;;;;;;;;9537:25;;9529:55;;;;;-1:-1:-1;;;9529:55:0;;;;;;;;;;;;-1:-1:-1;;;9529:55:0;;;;;;;;;;;;;;;9595:8;9606:7;:22;;9627:1;9606:22;;;-1:-1:-1;;9606:22:0;-1:-1:-1;;;;;9639:18:0;;;;;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;:33;;;9688:30;;;;;;;9595:33;;-1:-1:-1;9639:27:0;;:18;;9688:30;;;;;;;;;8700:1026;;;;;;;;;;:::o;4079:68::-;;;;;;;;;;;;;:::o;3591:40::-;;;;;;;;;;;;;;-1:-1:-1;;;3591:40:0;;;;:::o;3327:65::-;3439:10:::1;3433:5;:17:::0;;;::::1;::::0;;;;;;;3454:1:::1;3433:22;3425:53;;;::::0;;-1:-1:-1;;;3425:53:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;3425:53:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;3375:10:0::2;3388:1;3375:10:::0;;;::::2;::::0;;;;;;:14;3327:65::o;7439:534::-;-1:-1:-1;;;;;7504:14:0;;;;;;:9;:14;;;;;;:21;-1:-1:-1;7504:21:0;7496:58;;;;;-1:-1:-1;;;7496:58:0;;;;;;;;;;;;-1:-1:-1;;;7496:58:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7569:17:0;;7576:10;7569:17;;;;:62;;;-1:-1:-1;;7590:29:0;7602:3;7607:10;7590;:29::i;:::-;:41;;7569:62;7565:254;;;7689:3;7656:29;7668:3;7673:10;7656;:29::i;:::-;:36;;7648:75;;;;;-1:-1:-1;;;7648:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7768:39;7772:29;7784:3;7789:10;7772;:29::i;:::-;7803:3;7768;:39::i;:::-;-1:-1:-1;;;;;7738:15:0;;;;;;:10;:15;;;;;;;;7754:10;7738:27;;;;;;;:69;7565:254;-1:-1:-1;;;;;7850:14:0;;;;;;:9;:14;;;;;;7846:24;;7866:3;7846;:24::i;:::-;-1:-1:-1;;;;;7829:14:0;;;;;;:9;:14;;;;;:41;7902:11;;7898:21;;7915:3;7898;:21::i;:::-;7881:11;:38;7935:30;;;;;;;;7957:1;;-1:-1:-1;;;;;7935:30:0;;;;;;;;;;;;7439:534;;:::o;5762:125::-;5821:4;5845:34;5858:10;5870:3;5875;5845:12;:34::i;8336:99::-;8393:34;8406:10;8418:3;8423;8393:12;:34::i;:::-;;8336:99;;:::o;8550:105::-;8620:27;8633:3;8638;8643;8620:12;:27::i;:::-;;8550:105;;;:::o;3207:38::-;;;;;;;;;;;;;;:::o;5433:142::-;5513:4;5536:31;5548:8;5558:7;5536:10;:31::i;3760:25::-;;;;:::o;8443:99::-;8500:34;8513:3;8518:10;8530:3;8500:12;:34::i;7981:195::-;8074:10;8040:4;8063:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;8063:27:0;;;;;;;;;;;:33;;;8118:30;;;;;;;8040:4;;8063:27;;8074:10;;8118:30;;;;;;;;-1:-1:-1;8164:4:0;7981:195;;;;:::o;5583:149::-;-1:-1:-1;;;;;5695:20:0;;;5664:4;5695:20;;;:10;:20;;;;;;;;:29;;;;;;;;;;;;;5583:149::o;4443:104::-;4527:5;;;4522:16;;;;4514:25;;;;;4331:104;4415:5;;;4410:16;;;;4402:25;;;;

Swarm Source

ipfs://3068830d42822cef7b25350db617ca622911e66f5ccc4cfd90e747f1ddb05a04

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
[ 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.