ETH Price: $1,798.96 (+10.51%)

Contract

0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

TokenTracker

Amount:Between 1-10k
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Update your filters to view other transactions

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Dai

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Nova.Arbiscan.io on 2022-10-28
*/

// SPDX-License-Identifier: AGPL-3.0-or-later

// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico
// Copyright (C) 2022 Dai Foundation

// 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.6.11;

// Improved Dai token

contract Dai {

  // --- Auth ---
  mapping (address => uint256) public wards;
  function rely(address usr) external auth {
    wards[usr] = 1;
    emit Rely(usr);
  }
  function deny(address usr) external auth {
    wards[usr] = 0;
    emit Deny(usr);
  }
  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  = "2";
  uint8   public constant decimals = 18;
  uint256 public totalSupply;

  mapping (address => uint256)                      public balanceOf;
  mapping (address => mapping (address => uint256)) public allowance;
  mapping (address => uint256)                      public nonces;

  event Approval(address indexed owner, address indexed spender, uint256 value);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Rely(address indexed usr);
  event Deny(address indexed usr);

  // --- Math ---
  function _add(uint256 x, uint256 y) internal pure returns (uint256 z) {
    require((z = x + y) >= x);
  }
  function _sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
    require((z = x - y) <= x);
  }

  // --- EIP712 niceties ---
  uint256 public immutable deploymentChainId;
  bytes32 private immutable _DOMAIN_SEPARATOR;
  bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

  constructor() public {
    wards[msg.sender] = 1;
    emit Rely(msg.sender);

    uint256 chainId;
    assembly {chainId := chainid()}
    deploymentChainId = chainId;
    _DOMAIN_SEPARATOR = _calculateDomainSeparator(chainId);
  }

  function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) {
    return keccak256(
      abi.encode(
        keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
        keccak256(bytes(name)),
        keccak256(bytes(version)),
        chainId,
        address(this)
      )
    );
  }
  function DOMAIN_SEPARATOR() external view returns (bytes32) {
    uint256 chainId;
    assembly {chainId := chainid()}
    return chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId);
  }

  // --- ERC20 Mutations ---
  function transfer(address to, uint256 value) external returns (bool) {
    require(to != address(0) && to != address(this), "Dai/invalid-address");
    uint256 balance = balanceOf[msg.sender];
    require(balance >= value, "Dai/insufficient-balance");

    balanceOf[msg.sender] = balance - value;
    balanceOf[to] += value;

    emit Transfer(msg.sender, to, value);

    return true;
  }
  function transferFrom(address from, address to, uint256 value) external returns (bool) {
    require(to != address(0) && to != address(this), "Dai/invalid-address");
    uint256 balance = balanceOf[from];
    require(balance >= value, "Dai/insufficient-balance");

    if (from != msg.sender) {
      uint256 allowed = allowance[from][msg.sender];
      if (allowed != type(uint256).max) {
        require(allowed >= value, "Dai/insufficient-allowance");

        allowance[from][msg.sender] = allowed - value;
      }
    }

    balanceOf[from] = balance - value;
    balanceOf[to] += value;

    emit Transfer(from, to, value);

    return true;
  }
  function approve(address spender, uint256 value) external returns (bool) {
    allowance[msg.sender][spender] = value;

    emit Approval(msg.sender, spender, value);

    return true;
  }
  function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
    uint256 newValue = _add(allowance[msg.sender][spender], addedValue);
    allowance[msg.sender][spender] = newValue;

    emit Approval(msg.sender, spender, newValue);

    return true;
  }
  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
    uint256 allowed = allowance[msg.sender][spender];
    require(allowed >= subtractedValue, "Dai/insufficient-allowance");
    allowed = allowed - subtractedValue;
    allowance[msg.sender][spender] = allowed;

    emit Approval(msg.sender, spender, allowed);

    return true;
  }

  // --- Mint/Burn ---
  function mint(address to, uint256 value) external auth {
    require(to != address(0) && to != address(this), "Dai/invalid-address");
    balanceOf[to] = balanceOf[to] + value; // note: we don't need an overflow check here b/c balanceOf[to] <= totalSupply and there is an overflow check below
    totalSupply   = _add(totalSupply, value);

    emit Transfer(address(0), to, value);
  }
  function burn(address from, uint256 value) external {
    uint256 balance = balanceOf[from];
    require(balance >= value, "Dai/insufficient-balance");

    if (from != msg.sender && wards[msg.sender] != 1) {
      uint256 allowed = allowance[from][msg.sender];
      if (allowed != type(uint256).max) {
        require(allowed >= value, "Dai/insufficient-allowance");

        allowance[from][msg.sender] = allowed - value;
      }
    }

    balanceOf[from] = balance - value; // note: we don't need overflow checks b/c require(balance >= value) and balance <= totalSupply
    totalSupply     = totalSupply - value;

    emit Transfer(from, address(0), value);
  }

  // --- Approve by signature ---
  function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
    require(block.timestamp <= deadline, "Dai/permit-expired");

    uint256 chainId;
    assembly {chainId := chainid()}

    bytes32 digest =
      keccak256(abi.encodePacked(
          "\x19\x01",
          chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId),
          keccak256(abi.encode(
            PERMIT_TYPEHASH,
            owner,
            spender,
            value,
            nonces[owner]++,
            deadline
          ))
      ));

    require(owner != address(0) && owner == ecrecover(digest, v, r, s), "Dai/invalid-permit");

    allowance[owner][spender] = value;
    emit Approval(owner, spender, value);
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","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":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deploymentChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"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"}],"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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"}]

60c060405234801561001057600080fd5b503360008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a2466080819052610062816001600160e01b0361006b16565b60a0525061013f565b600060405180806114af60529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b60805160a05161133e6101716000398061077f5280610f2b52508061074a5280610e855280610ef6525061133e6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610740565b6040805160ff9092168252519081900360200190f35b61020c610745565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107a5565b6102da600480360360408110156102c457600080fd5b506001600160a01b03813516906020013561082c565b005b61014f61094e565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b031661096b565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a09565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a1b565b61014f610a2d565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a4c565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610ae9565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c7b565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d4c565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e71565b61020c610e83565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610ea7565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611123565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390926000805160206112e9833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526002602090815260408083208887039055938816808352918490208054880190558351878152935191936000805160206112c9833981519152929081900390910190a3506001949350505050565b60405180605261122582396052019050604051809103902081565b601281565b6000467f0000000000000000000000000000000000000000000000000000000000000000811461077d5761077881611140565b61079f565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107d59084611214565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112e98339815191529281900390910190a35060019392505050565b33600090815260208190526040902054600114610885576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108a657506001600160a01b0382163014155b6108ed576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109189082611214565b6001556040805182815290516001600160a01b038416916000916000805160206112c98339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109c4576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aa5576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b52576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b7b575033600090815260208190526040902054600114155b15610c2a576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c285782811015610bff576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526002602090815260408083208686039055600180548790039055805186815290519293926000805160206112c9833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cf1576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b038916808552908352928190209487900394859055805185815290519293926000805160206112e9833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d6f57506001600160a01b0383163014155b610db6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e16576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b03881680845292819020805488019055805187815290519293926000805160206112c9833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b83421115610ef1576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f00000000000000000000000000000000000000000000000000000000000000008214610f2957610f2482611140565b610f4b565b7f00000000000000000000000000000000000000000000000000000000000000005b6040518060526112258239604080519182900360520182206001600160a01b03808f166000818152600460209081529085902080546001810190915581870194909452858501829052918f166060860152608085018e905260a085019290925260c08085018d90528351808603909101815260e08501845280519082012061190160f01b6101008601526101028501969096526101228085019690965282518085039096018652610142909301909152835193909101929092209250501580159061108757506040805160008152602080820180845284905260ff8816828401526060820187905260808201869052915160019260a0808401939192601f1981019281900390910190855afa158015611068573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112e98339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b6000604051808061127760529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b8082018281101561052e57600080fdfe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db5264736f6c634300060b0033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610740565b6040805160ff9092168252519081900360200190f35b61020c610745565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107a5565b6102da600480360360408110156102c457600080fd5b506001600160a01b03813516906020013561082c565b005b61014f61094e565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b031661096b565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a09565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a1b565b61014f610a2d565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a4c565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610ae9565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c7b565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d4c565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e71565b61020c610e83565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610ea7565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611123565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390926000805160206112e9833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526002602090815260408083208887039055938816808352918490208054880190558351878152935191936000805160206112c9833981519152929081900390910190a3506001949350505050565b60405180605261122582396052019050604051809103902081565b601281565b6000467f000000000000000000000000000000000000000000000000000000000000a4ba811461077d5761077881611140565b61079f565b7f0ae683d31980dfc7ea418b48aaaa6811348e3e2118d7c8614bb7456ec780f6605b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107d59084611214565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112e98339815191529281900390910190a35060019392505050565b33600090815260208190526040902054600114610885576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108a657506001600160a01b0382163014155b6108ed576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109189082611214565b6001556040805182815290516001600160a01b038416916000916000805160206112c98339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109c4576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aa5576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b52576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b7b575033600090815260208190526040902054600114155b15610c2a576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c285782811015610bff576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526002602090815260408083208686039055600180548790039055805186815290519293926000805160206112c9833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cf1576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b038916808552908352928190209487900394859055805185815290519293926000805160206112e9833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d6f57506001600160a01b0383163014155b610db6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e16576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b03881680845292819020805488019055805187815290519293926000805160206112c9833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000a4ba81565b83421115610ef1576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f000000000000000000000000000000000000000000000000000000000000a4ba8214610f2957610f2482611140565b610f4b565b7f0ae683d31980dfc7ea418b48aaaa6811348e3e2118d7c8614bb7456ec780f6605b6040518060526112258239604080519182900360520182206001600160a01b03808f166000818152600460209081529085902080546001810190915581870194909452858501829052918f166060860152608085018e905260a085019290925260c08085018d90528351808603909101815260e08501845280519082012061190160f01b6101008601526101028501969096526101228085019690965282518085039096018652610142909301909152835193909101929092209250501580159061108757506040805160008152602080820180845284905260ff8816828401526060820187905260808201869052915160019260a0808401939192601f1981019281900390910190855afa158015611068573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112e98339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b6000604051808061127760529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b8082018281101561052e57600080fdfe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db5264736f6c634300060b0033

Deployed Bytecode Sourcemap

881:6368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4401:194;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4401:194:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1457:26;;;:::i;:::-;;;;;;;;;;;;;;;;3726:671;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3726:671:0;;;;;;;;;;;;;;;;;:::i;2304:137::-;;;:::i;1415:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3061:224;;;:::i;4599:289::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4599:289:0;;;;;;;;:::i;5309:391::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5309:391:0;;;;;;;;:::i;:::-;;1372:38;;;:::i;966:89::-;;;;;;;;;;;;;;;;-1:-1:-1;966:89:0;-1:-1:-1;;;;;966:89:0;;:::i;1490:66::-;;;;;;;;;;;;;;;;-1:-1:-1;1490:66:0;-1:-1:-1;;;;;1490:66:0;;:::i;1632:63::-;;;;;;;;;;;;;;;;-1:-1:-1;1632:63:0;-1:-1:-1;;;;;1632:63:0;;:::i;1327:40::-;;;:::i;1059:89::-;;;;;;;;;;;;;;;;-1:-1:-1;1059:89:0;-1:-1:-1;;;;;1059:89:0;;:::i;5704:683::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5704:683:0;;;;;;;;:::i;4892:387::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4892:387:0;;;;;;;;:::i;3321:401::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3321:401:0;;;;;;;;:::i;920:41::-;;;;;;;;;;;;;;;;-1:-1:-1;920:41:0;-1:-1:-1;;;;;920:41:0;;:::i;2209:42::-;;;:::i;6428:818::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6428:818:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1561:66::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1561:66:0;;;;;;;;;;:::i;1271:51::-;;;;;;;;;;;;;;-1:-1:-1;;;1271:51:0;;;;:::o;4401:194::-;4491:10;4468:4;4481:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4481:30:0;;;;;;;;;;;:38;;;4533:36;;;;;;;4468:4;;4481:30;;4491:10;;-1:-1:-1;;;;;;;;;;;4533:36:0;;;;;;;-1:-1:-1;4585:4:0;4401:194;;;;;:::o;1457:26::-;;;;:::o;3726:671::-;3807:4;-1:-1:-1;;;;;3828:16:0;;;;;;:39;;-1:-1:-1;;;;;;3848:19:0;;3862:4;3848:19;;3828:39;3820:71;;;;;-1:-1:-1;;;3820:71:0;;;;;;;;;;;;-1:-1:-1;;;3820:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3916:15:0;;3898;3916;;;:9;:15;;;;;;3946:16;;;;3938:53;;;;;-1:-1:-1;;;3938:53:0;;;;;;;;;;;;-1:-1:-1;;;3938:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4004:18:0;;4012:10;4004:18;4000:262;;-1:-1:-1;;;;;4051:15:0;;4033;4051;;;:9;:15;;;;;;;;4067:10;4051:27;;;;;;;;-1:-1:-1;;4091:28:0;;4087:168;;4151:5;4140:7;:16;;4132:55;;;;;-1:-1:-1;;;4132:55:0;;;;;;;;;;;;-1:-1:-1;;;4132:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4200:15:0;;;;;;:9;:15;;;;;;;;4216:10;4200:27;;;;;;;4230:15;;;4200:45;;4087:168;4000:262;;-1:-1:-1;;;;;4270:15:0;;;;;;;:9;:15;;;;;;;;4288;;;4270:33;;4310:13;;;;;;;;;;:22;;;;;;4346:25;;;;;;;4310:13;;-1:-1:-1;;;;;;;;;;;4346:25:0;;;;;;;;;;-1:-1:-1;4387:4:0;;3726:671;-1:-1:-1;;;;3726:671:0:o;2304:137::-;2346:95;;;;;;;;;;;;;;;;;;2304:137;:::o;1415:37::-;1450:2;1415:37;:::o;3061:224::-;3112:7;3171:9;3205:17;3194:28;;:85;;3245:34;3271:7;3245:25;:34::i;:::-;3194:85;;;3225:17;3194:85;3187:92;;;3061:224;:::o;4599:289::-;4728:10;4681:4;4718:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4718:30:0;;;;;;;;;;4681:4;;4713:48;;4750:10;4713:4;:48::i;:::-;4778:10;4768:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4768:30:0;;;;;;;;;;;;:41;;;4823:39;;;;;;;4694:67;;-1:-1:-1;4768:30:0;;-1:-1:-1;;;;;;;;;;;4823:39:0;;;;;;;;;-1:-1:-1;4878:4:0;;4599:289;-1:-1:-1;;;4599:289:0:o;5309:391::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5379:16:0;::::1;::::0;;::::1;::::0;:39:::1;;-1:-1:-1::0;;;;;;5399:19:0;::::1;5413:4;5399:19;;5379:39;5371:71;;;::::0;;-1:-1:-1;;;5371:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5371:71:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5465:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;;:21;::::1;5449:37:::0;;-1:-1:-1;5630:11:0;5625:24:::1;::::0;5481:5;5625:4:::1;:24::i;:::-;5609:11;:40:::0;5663:31:::1;::::0;;;;;;;-1:-1:-1;;;;;5663:31:0;::::1;::::0;5680:1:::1;::::0;-1:-1:-1;;;;;;;;;;;5663:31:0;;;;::::1;::::0;;::::1;5309:391:::0;;:::o;1372:38::-;;;;;;;;;;;;;;-1:-1:-1;;;1372:38:0;;;;:::o;966:89::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1014:10:0;::::1;:5;:10:::0;;;::::1;::::0;;;;;;;1027:1:::1;1014:14:::0;;1040:9;::::1;::::0;1014:5;1040:9:::1;966:89:::0;:::o;1490:66::-;;;;;;;;;;;;;:::o;1632:63::-;;;;;;;;;;;;;:::o;1327:40::-;;;;;;;;;;;;;;-1:-1:-1;;;1327:40:0;;;;:::o;1059:89::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1107:10:0;::::1;1120:1;1107:10:::0;;;::::1;::::0;;;;;;;:14;;;1133:9;::::1;::::0;1120:1;1133:9:::1;1059:89:::0;:::o;5704:683::-;-1:-1:-1;;;;;5781:15:0;;5763;5781;;;:9;:15;;;;;;5811:16;;;;5803:53;;;;;-1:-1:-1;;;5803:53:0;;;;;;;;;;;;-1:-1:-1;;;5803:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5869:18:0;;5877:10;5869:18;;;;:44;;-1:-1:-1;5897:10:0;5891:5;:17;;;;;;;;;;;5912:1;5891:22;;5869:44;5865:288;;;-1:-1:-1;;;;;5942:15:0;;5924;5942;;;:9;:15;;;;;;;;5958:10;5942:27;;;;;;;;-1:-1:-1;;5982:28:0;;5978:168;;6042:5;6031:7;:16;;6023:55;;;;;-1:-1:-1;;;6023:55:0;;;;;;;;;;;;-1:-1:-1;;;6023:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6091:15:0;;;;;;:9;:15;;;;;;;;6107:10;6091:27;;;;;;;6121:15;;;6091:45;;5978:168;5865:288;;-1:-1:-1;;;;;6161:15:0;;;;;;:9;:15;;;;;;;;6179;;;6161:33;;6315:11;;;:19;;;6297:37;;6348:33;;;;;;;6161:15;;;-1:-1:-1;;;;;;;;;;;6348:33:0;;;;;;;;;;5704:683;;;:::o;4892:387::-;5020:10;4979:4;5010:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5010:30:0;;;;;;;;;;5055:26;;;;5047:65;;;;;-1:-1:-1;;;5047:65:0;;;;;;;;;;;;-1:-1:-1;;;5047:65:0;;;;;;;;;;;;;;;5171:10;5161:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5161:30:0;;;;;;;;;;;;5129:25;;;;5161:40;;;;5215:38;;;;;;;5161:30;;5171:10;-1:-1:-1;;;;;;;;;;;5215:38:0;;;;;;;;;;-1:-1:-1;5269:4:0;;4892:387;-1:-1:-1;;;4892:387:0:o;3321:401::-;3384:4;-1:-1:-1;;;;;3405:16:0;;;;;;:39;;-1:-1:-1;;;;;;3425:19:0;;3439:4;3425:19;;3405:39;3397:71;;;;;-1:-1:-1;;;3397:71:0;;;;;;;;;;;;-1:-1:-1;;;3397:71:0;;;;;;;;;;;;;;;3503:10;3475:15;3493:21;;;:9;:21;;;;;;3529:16;;;;3521:53;;;;;-1:-1:-1;;;3521:53:0;;;;;;;;;;;;-1:-1:-1;;;3521:53:0;;;;;;;;;;;;;;;3593:10;3583:21;;;;:9;:21;;;;;;;;3607:15;;;3583:39;;-1:-1:-1;;;;;3629:13:0;;;;;;;;;:22;;;;;;3665:31;;;;;;;3629:13;;3593:10;-1:-1:-1;;;;;;;;;;;3665:31:0;;;;;;;;;;-1:-1:-1;3712:4:0;;3321:401;-1:-1:-1;;;3321:401:0:o;920:41::-;;;;;;;;;;;;;;:::o;2209:42::-;;;:::o;6428:818::-;6583:8;6564:15;:27;;6556:58;;;;;-1:-1:-1;;;6556:58:0;;;;;;;;;;;;-1:-1:-1;;;6556:58:0;;;;;;;;;;;;;;;6666:9;6623:15;6781:17;6770:28;;:85;;6821:34;6847:7;6821:25;:34::i;:::-;6770:85;;;6801:17;6770:85;2346:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6995:13:0;;;;;;;:6;:13;;;;;;;;:15;;;;;;;;6878:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6868:179;;;;;;-1:-1:-1;;;6718:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:349;;;;;;;;;;;-1:-1:-1;;7074:19:0;;;;:58;;-1:-1:-1;7106:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7106:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7097:35:0;:5;-1:-1:-1;;;;;7097:35:0;;7074:58;7066:89;;;;;-1:-1:-1;;;7066:89:0;;;;;;;;;;;;-1:-1:-1;;;7066:89:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7164:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;7209:31;;;;;;;-1:-1:-1;;;;;;;;;;;7209:31:0;;;;;;;;;6428:818;;;;;;;;;:::o;1561:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2693:364::-;2767:7;2829:95;;;;;;;;;;;;;;;;;;;2951:4;;;;;;;;-1:-1:-1;;;2951:4:0;;;;;2984:7;;;;;;;;;;-1:-1:-1;;;2984:7:0;;;;2808:236;;;;;;;;;2935:22;2808:236;;;;2968:25;2808:236;;;;;;;;;;3030:4;2808:236;;;;;;;;;;;;;;;;;;;;;;;;;2790:261;;;;;;-1:-1:-1;;2693:364:0;;;:::o;1953:108::-;2043:5;;;2038:16;;;;2030:25;;;;

Swarm Source

ipfs://c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db52

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Multi-Collateral Dai, brings a lot of new and exciting features, such as support for new CDP collateral types and Dai Savings Rate.

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits

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.