Contract 0x6BE0A2e40Dc84567c26c5BAA1Fb7b4B6aae27143

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x841677df9ef19b7723b9479d40d092dec2123f74d96af144cd668ee97189fd74Claim118114592021-10-16 3:18:564 days 9 hrs ago0x702e124a72ed4345343d8f4577136d957be2e819 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000613965
0xa216c79028b930d0ce38c66348d5b6b773da5d596d2415a7339986e659ecc4f1Approve114249892021-10-02 15:11:5517 days 22 hrs ago0x45552ce620a65af0188928da9c242ea61b6c6c7f IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000222515
0x9351f32982bc34d0e7698049769ee43b292e49c33f02580ad38a4f938fe30c98Transfer113687432021-09-30 15:47:3719 days 21 hrs ago0x39d54467bed92debdbee912f798bb44a5e19652c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000139225
0x922c4a1353044aba368bc01c8efa766715cf3775d0027cb1d6b0629acff2d58fClaim113687182021-09-30 15:46:2219 days 21 hrs ago0x39d54467bed92debdbee912f798bb44a5e19652c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00134057
0x60a890b27af65d8b66c4a28a8db4267548d88911f52f4055e26ff0086ab3472cClaim108410722021-09-12 5:34:0638 days 7 hrs ago0x3fb80007367f16ade9168a3be2fcca5c7f357cbc IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.002369895
0x383f500aff3227b83eebbfe52fa1f96636cb26e14309bb075aac5fff672ccb31Claim107454492021-09-08 21:04:2941 days 16 hrs ago0x6f4f55126a366f9b45bc2c95940b206d3544271f IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.003736015
0xad548c8df49d5db7c7706982558d26fdb384175c8fcaf81d6152b3689bf3948bApprove106293512021-09-04 19:22:1545 days 17 hrs ago0xdf89c1aa44ec1aa8a87f931e09376f28c3a0e58a IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.0000728
0x952731dc216a76ac1bcf93740b56ad06aeca7f9bad6bc0c842b3a6b6412cc0afClaim106231562021-09-04 14:06:3045 days 23 hrs ago0xf5508ebf040d2f049b945fc6325e575db976d4fe IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000398595
0xbe242895cec8095fe8e1177cc273e139f05260e8f3109a34c10402f532b520a5Claim104831582021-08-30 15:59:0950 days 21 hrs ago0x971caed53d91662177608ae04c9618b36573923f IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000613965
0x23ad22c8b285ba0b386bf568f5d886fdb549141689761502352c18c635d5860cTransfer102889312021-08-23 20:18:2657 days 16 hrs ago0x39d54467bed92debdbee912f798bb44a5e19652c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000181825
0x5f50e07dd9a3aeee366536b1e556a047758bee80742c09290d4e677f1136458fClaim100922402021-08-16 23:27:1264 days 13 hrs ago0xaebefb6514d618bce317977f53166594b478d805 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000398595
0xea13f3d508d64ad29a7a5b1887da0053226f1651ebe1cdbbaf43c9e9ed2fada6Claim100344772021-08-14 23:11:4866 days 14 hrs ago0x39d54467bed92debdbee912f798bb44a5e19652c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00126557
0x894a6cfe2eecab2e13a27e559450e1d6fd6666167c05ddc3b89740b3beff0106Approve100183072021-08-14 9:37:2367 days 3 hrs ago0x000a317f1ffd2d3a118c502bb91199b19287f89c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000222515
0xc954419e54a3541d56b399d91585980eb66106ab19433170bdd7395539fdfcc0Claim100181892021-08-14 9:31:2167 days 3 hrs ago0x000a317f1ffd2d3a118c502bb91199b19287f89c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000398595
0x433982882d36d719b690bb7287a10e0692e54f4b1bee84c1d9ac68d831afa2bbClaim98204752021-08-07 8:51:2574 days 4 hrs ago0x890b9201f8a18e69121e7549f6c8724150b7a3d9 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00056991
0x1ca8eaa674b4078c9f76e89d2fae491a6ab548bb05ee667a8a94978cb1720555Claim97932012021-08-06 9:15:5475 days 3 hrs ago0x94f00da8d96bf2acf9d862abf37b4fa40dd612f9 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000926565
0xd7d719431b1edbf6aca2cba0cb73b6b4a197baf5ca4c00fe98246a527dfdf2c4Claim97432202021-08-04 14:21:4976 days 22 hrs ago0x2227de445dbfd90712c48bcd74d492ccca1cb242 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00701605
0xcb42a839c272e296884726493c7c14c87493e1a9380bf52ffb0254bf025f441fClaim96442252021-08-01 0:20:4180 days 12 hrs ago0x24821d11b3e3f14487aa6b96a51ce3479b543072 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.002593505
0xbc5ed96dea22668598e651e156e1ded95a70ae1b65021d57c5c5d1e96c9ce17dClaim96307032021-07-31 12:40:2581 days 34 mins ago0x618b99e669e9759aa4e843a6c3441861d89c5628 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00056991
0xc4f66192a12f251b27d8e28316bab84bf48c2d874b49a396a056f9a35bf066aeClaim95817282021-07-29 19:01:4482 days 18 hrs ago0x702e124a72ed4345343d8f4577136d957be2e819 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00071028
0xcbc0e6408ca1a15d2305d0f8616812fc859ff7b4075f43f6db176f549e885af0Claim95813492021-07-29 18:42:0982 days 18 hrs ago0x702e124a72ed4345343d8f4577136d957be2e819 IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000398595
0xa76c30495ac7a4d0a4cc8ec89572b80997af81dad4e26520566aa4c8e3901b89Claim95808422021-07-29 18:14:3182 days 19 hrs ago0x987ad91d094808082edde40cbf0137f75e8e3a1f IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.000872694504
0xe7f674734059251594051ec60d2920d768171100ea5d8bb37ba30a85469e8d1aClaim95808422021-07-29 18:14:3182 days 19 hrs ago0x987ad91d094808082edde40cbf0137f75e8e3a1f IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.001047664491
0x56a4150c8b7cac303d47f65f1a462f211f3ede9ba9901772ceed86e044820737Claim95511192021-07-28 15:47:2483 days 21 hrs ago0x39d54467bed92debdbee912f798bb44a5e19652c IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.00126810114
0x6f41708c116dbaf1afa7affa69edfb3901ce7e54f4bae3b1f3e863463981fd4cClaim91663442021-07-15 2:42:3097 days 10 hrs ago0x987ad91d094808082edde40cbf0137f75e8e3a1f IN  0x6be0a2e40dc84567c26c5baa1fb7b4b6aae271430 BNB0.001047455
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SteamPunkDogName

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-22
*/

pragma solidity ^0.7.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
  /**
   * @dev Returns the addition of two unsigned integers, reverting on
   * overflow.
   *
   * Counterpart to Solidity's `+` operator.
   *
   * Requirements:
   *
   * - Addition cannot overflow.
   */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, "SafeMath: addition overflow");

    return c;
  }

  /**
   * @dev Returns the subtraction of two unsigned integers, reverting on
   * overflow (when the result is negative).
   *
   * Counterpart to Solidity's `-` operator.
   *
   * Requirements:
   *
   * - Subtraction cannot overflow.
   */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    return sub(a, b, "SafeMath: subtraction overflow");
  }

  /**
   * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
   * overflow (when the result is negative).
   *
   * Counterpart to Solidity's `-` operator.
   *
   * Requirements:
   *
   * - Subtraction cannot overflow.
   */
  function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b <= a, errorMessage);
    uint256 c = a - b;

    return c;
  }

  /**
   * @dev Returns the multiplication of two unsigned integers, reverting on
   * overflow.
   *
   * Counterpart to Solidity's `*` operator.
   *
   * Requirements:
   *
   * - Multiplication cannot overflow.
   */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b, "SafeMath: multiplication overflow");

    return c;
  }

  /**
   * @dev Returns the integer division of two unsigned integers. Reverts on
   * division by zero. The result is rounded towards zero.
   *
   * Counterpart to Solidity's `/` operator. Note: this function uses a
   * `revert` opcode (which leaves remaining gas untouched) while Solidity
   * uses an invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   *
   * - The divisor cannot be zero.
   */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return div(a, b, "SafeMath: division by zero");
  }

  /**
   * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
   * division by zero. The result is rounded towards zero.
   *
   * Counterpart to Solidity's `/` operator. Note: this function uses a
   * `revert` opcode (which leaves remaining gas untouched) while Solidity
   * uses an invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   *
   * - The divisor cannot be zero.
   */
  function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b > 0, errorMessage);
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
   * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
   * Reverts when dividing by zero.
   *
   * Counterpart to Solidity's `%` operator. This function uses a `revert`
   * opcode (which leaves remaining gas untouched) while Solidity uses an
   * invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   *
   * - The divisor cannot be zero.
   */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    return mod(a, b, "SafeMath: modulo by zero");
  }

  /**
   * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
   * Reverts with custom message when dividing by zero.
   *
   * Counterpart to Solidity's `%` operator. This function uses a `revert`
   * opcode (which leaves remaining gas untouched) while Solidity uses an
   * invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   *
   * - The divisor cannot be zero.
   */
  function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b != 0, errorMessage);
    return a % b;
  }
}

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
  /**
   * @dev Returns true if this contract implements the interface defined by
   * `interfaceId`. See the corresponding
   * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
   * to learn more about how these ids are created.
   *
   * This function call must use less than 30 000 gas.
   */
  function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(address owner, address spender) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);


  /**
   * TODO: Add comment
   */
  function burn(uint256 burnQuantity) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
  /**
   * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
   */
  event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

  /**
   * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
   */
  event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

  /**
   * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
   */
  event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

  /**
   * @dev Returns the number of tokens in ``owner``'s account.
   */
  function balanceOf(address owner) external view returns (uint256 balance);

  /**
   * @dev Returns the owner of the `tokenId` token.
   *
   * Requirements:
   *
   * - `tokenId` must exist.
   */
  function ownerOf(uint256 tokenId) external view returns (address owner);

  /**
   * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
   * are aware of the ERC721 protocol to prevent tokens from being forever locked.
   *
   * Requirements:
   *
   * - `from` cannot be the zero address.
   * - `to` cannot be the zero address.
   * - `tokenId` token must exist and be owned by `from`.
   * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
   * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
   *
   * Emits a {Transfer} event.
   */
  function safeTransferFrom(address from, address to, uint256 tokenId) external;

  /**
   * @dev Transfers `tokenId` token from `from` to `to`.
   *
   * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
   *
   * Requirements:
   *
   * - `from` cannot be the zero address.
   * - `to` cannot be the zero address.
   * - `tokenId` token must be owned by `from`.
   * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address from, address to, uint256 tokenId) external;

  /**
   * @dev Gives permission to `to` to transfer `tokenId` token to another account.
   * The approval is cleared when the token is transferred.
   *
   * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
   *
   * Requirements:
   *
   * - The caller must own the token or be an approved operator.
   * - `tokenId` must exist.
   *
   * Emits an {Approval} event.
   */
  function approve(address to, uint256 tokenId) external;

  /**
   * @dev Returns the account approved for `tokenId` token.
   *
   * Requirements:
   *
   * - `tokenId` must exist.
   */
  function getApproved(uint256 tokenId) external view returns (address operator);

  /**
   * @dev Approve or remove `operator` as an operator for the caller.
   * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
   *
   * Requirements:
   *
   * - The `operator` cannot be the caller.
   *
   * Emits an {ApprovalForAll} event.
   */
  function setApprovalForAll(address operator, bool _approved) external;

  /**
   * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
   *
   * See {setApprovalForAll}
   */
  function isApprovedForAll(address owner, address operator) external view returns (bool);

  /**
    * @dev Safely transfers `tokenId` token from `from` to `to`.
    *
    * Requirements:
    *
   * - `from` cannot be the zero address.
   * - `to` cannot be the zero address.
    * - `tokenId` token must exist and be owned by `from`.
    * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
    * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
    *
    * Emits a {Transfer} event.
    */
  function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
}

/**
 * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 * @dev See https://eips.ethereum.org/EIPS/eip-721
 */
interface IERC721Enumerable is IERC721 {

  /**
   * @dev Returns the total amount of tokens stored by the contract.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns a token ID owned by `owner` at a given `index` of its token list.
   * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.
   */
  function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);

  /**
   * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.
   * Use along with {totalSupply} to enumerate all tokens.
   */
  function tokenByIndex(uint256 index) external view returns (uint256);
}

interface ISPD is IERC721Enumerable {
  function isMintedBeforeReveal(uint256 index) external view returns (bool);
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
  function _msgSender() internal view virtual returns (address payable) {
    return msg.sender;
  }

  function _msgData() internal view virtual returns (bytes memory) {
    this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
    return msg.data;
  }
}

/**
 *
 * SteamPunkDogName Contract (The native token of SteamPunkDogs)
 * @dev Extends standard ERC20 contract
 */
contract SteamPunkDogName is Context, IERC20 {
  using SafeMath for uint256;

  // Constants
  uint256 public SECONDS_IN_A_DAY = 86400;

  uint256 public constant INITIAL_ALLOTMENT = 1830 * (10 ** 18);

  uint256 public constant PRE_REVEAL_MULTIPLIER = 2;

  // Public variables
  uint256 public emissionStart;

  uint256 public emissionEnd;

  uint256 public emissionPerDay = 10 * (10 ** 18);

  mapping (address => uint256) private _balances;

  mapping (address => mapping (address => uint256)) private _allowances;

  mapping(uint256 => uint256) private _lastClaim;

  uint256 private _totalSupply;

  string private _name;
  string private _symbol;
  uint8 private _decimals;
  address private _spdAddress;

  /**
   * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
   * a default value of 18. Also initalizes {emissionStart}
   *
   * To select a different value for {decimals}, use {_setupDecimals}.
   *
   * All three of these values are immutable: they can only be set once during
   * construction.
   */
  constructor (string memory name, string memory symbol, uint256 emissionStartTimestamp) {
    _name = name;
    _symbol = symbol;
    _decimals = 18;
    emissionStart = emissionStartTimestamp;
    emissionEnd = emissionStartTimestamp + (86400 * 365 * 10);
  }

  /**
   * @dev Returns the name of the token.
   */
  function name() public view returns (string memory) {
    return _name;
  }

  /**
   * @dev Returns the symbol of the token, usually a shorter version of the
   * name.
   */
  function symbol() public view returns (string memory) {
    return _symbol;
  }

  /**
   * @dev Returns the number of decimals used to get its user representation.
   * For example, if `decimals` equals `2`, a balance of `505` tokens should
   * be displayed to a user as `5,05` (`505 / 10 ** 2`).
   *
   * Tokens usually opt for a value of 18, imitating the relationship between
   * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
   * called.
   *
   * NOTE: This information is only used for _display_ purposes: it in
   * no way affects any of the arithmetic of the contract, including
   * {IERC20-balanceOf} and {IERC20-transfer}.
   */
  function decimals() public view returns (uint8) {
    return _decimals;
  }

  /**
   * @dev See {IERC20-totalSupply}.
   */
  function totalSupply() public view override returns (uint256) {
    return _totalSupply;
  }

  /**
   * @dev See {IERC20-balanceOf}.
   */
  function balanceOf(address account) public view override returns (uint256) {
    return _balances[account];
  }

  /**
   * @dev When accumulated NCTs have last been claimed for a SteamPunkDog index
   */
  function lastClaim(uint256 tokenIndex) public view returns (uint256) {
    require(ISPD(_spdAddress).ownerOf(tokenIndex) != address(0), "Owner cannot be 0 address");
    require(tokenIndex < ISPD(_spdAddress).totalSupply(), "NFT at index has not been minted yet");

    uint256 lastClaimed = uint256(_lastClaim[tokenIndex]) != 0 ? uint256(_lastClaim[tokenIndex]) : emissionStart;
    return lastClaimed;
  }

  /**
   * @dev Accumulated SPDN tokens for a SteamPunkDog token index.
   */
  function accumulated(uint256 tokenIndex) public view returns (uint256) {
    require(block.timestamp > emissionStart, "Emission has not started yet");
    require(ISPD(_spdAddress).ownerOf(tokenIndex) != address(0), "Owner cannot be 0 address");
    require(tokenIndex < ISPD(_spdAddress).totalSupply(), "NFT at index has not been minted yet");

    uint256 lastClaimed = lastClaim(tokenIndex);

    // Sanity check if last claim was on or after emission end
    if (lastClaimed >= emissionEnd) return 0;

    uint256 accumulationPeriod = block.timestamp < emissionEnd ? block.timestamp : emissionEnd; // Getting the min value of both
    uint256 totalAccumulated = accumulationPeriod.sub(lastClaimed).mul(emissionPerDay).div(SECONDS_IN_A_DAY);

    // If claim hasn't been done before for the index, add initial allotment (plus prereveal multiplier if applicable)
    if (lastClaimed == emissionStart) {
      uint256 initialAllotment = ISPD(_spdAddress).isMintedBeforeReveal(tokenIndex) == true ? INITIAL_ALLOTMENT.mul(PRE_REVEAL_MULTIPLIER) : INITIAL_ALLOTMENT;
      totalAccumulated = totalAccumulated.add(initialAllotment);
    }

    return totalAccumulated;
  }

  /**
   * @dev Permissioning not added because it is only callable once. It is set right after deployment and verified.
   */
  function setSPDAddress(address spdAddress) public {
    require(_spdAddress == address(0), "Already set");

    _spdAddress = spdAddress;
  }

  /**
   * @dev Claim mints NCTs and supports multiple SteamPunkDog token indices at once.
   */
  function claim(uint256[] memory tokenIndices) public returns (uint256) {
    require(block.timestamp > emissionStart, "Emission has not started yet");

    uint256 totalClaimQty = 0;
    for (uint i = 0; i < tokenIndices.length; i++) {
      // Sanity check for non-minted index
      require(tokenIndices[i] < ISPD(_spdAddress).totalSupply(), "NFT at index has not been minted yet");
      // Duplicate token index check
      for (uint j = i + 1; j < tokenIndices.length; j++) {
        require(tokenIndices[i] != tokenIndices[j], "Duplicate token index");
      }

      uint tokenIndex = tokenIndices[i];
      require(ISPD(_spdAddress).ownerOf(tokenIndex) == msg.sender, "Sender is not the owner");

      uint256 claimQty = accumulated(tokenIndex);
      if (claimQty != 0) {
        totalClaimQty = totalClaimQty.add(claimQty);
        _lastClaim[tokenIndex] = block.timestamp;
      }
    }

    require(totalClaimQty != 0, "No accumulated SPDN");
    _mint(msg.sender, totalClaimQty);
    return totalClaimQty;
  }

  /**
   * @dev See {IERC20-transfer}.
   *
   * Requirements:
   *
   * - `recipient` cannot be the zero address.
   * - the caller must have a balance of at least `amount`.
   */
  function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
    _transfer(_msgSender(), recipient, amount);
    return true;
  }

  /**
   * @dev See {IERC20-allowance}.
   */
  function allowance(address owner, address spender) public view virtual override returns (uint256) {
    return _allowances[owner][spender];
  }

  /**
   * @dev See {IERC20-approve}.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   */
  function approve(address spender, uint256 amount) public virtual override returns (bool) {
    _approve(_msgSender(), spender, amount);
    return true;
  }

  /**
   * @dev See {IERC20-transferFrom}.
   *
   * Emits an {Approval} event indicating the updated allowance. This is not
   * required by the EIP. See the note at the beginning of {ERC20}.
   *
   * Requirements:
   *
   * - `sender` and `recipient` cannot be the zero address.
   * - `sender` must have a balance of at least `amount`.
   * - the caller must have allowance for ``sender``'s tokens of at least
   * `amount`.
   */
  function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
    _transfer(sender, recipient, amount);
    // Approval check is skipped if the caller of transferFrom is the SteamPunkDog contract. For better UX.
    if (msg.sender != _spdAddress) {
      _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
    }
    return true;
  }

  /**
   * @dev Atomically increases the allowance granted to `spender` by the caller.
   *
   * This is an alternative to {approve} that can be used as a mitigation for
   * problems described in {IERC20-approve}.
   *
   * Emits an {Approval} event indicating the updated allowance.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   */
  function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
    _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
    return true;
  }

  // ++
  /**
   * @dev Burns a quantity of tokens held by the caller.
   *
   * Emits an {Transfer} event to 0 address
   *
   */
  function burn(uint256 burnQuantity) public virtual override returns (bool) {
    _burn(msg.sender, burnQuantity);
    return true;
  }
  // ++

  /**
   * @dev Atomically decreases the allowance granted to `spender` by the caller.
   *
   * This is an alternative to {approve} that can be used as a mitigation for
   * problems described in {IERC20-approve}.
   *
   * Emits an {Approval} event indicating the updated allowance.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   * - `spender` must have allowance for the caller of at least
   * `subtractedValue`.
   */
  function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
    _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
    return true;
  }

  /**
   * @dev Moves tokens `amount` from `sender` to `recipient`.
   *
   * This is internal function is equivalent to {transfer}, and can be used to
   * e.g. implement automatic token fees, slashing mechanisms, etc.
   *
   * Emits a {Transfer} event.
   *
   * Requirements:
   *
   * - `sender` cannot be the zero address.
   * - `recipient` cannot be the zero address.
   * - `sender` must have a balance of at least `amount`.
   */
  function _transfer(address sender, address recipient, uint256 amount) internal virtual {
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    _beforeTokenTransfer(sender, recipient, amount);

    _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
    _balances[recipient] = _balances[recipient].add(amount);
    emit Transfer(sender, recipient, amount);
  }

  /** @dev Creates `amount` tokens and assigns them to `account`, increasing
   * the total supply.
   *
   * Emits a {Transfer} event with `from` set to the zero address.
   *
   * Requirements:
   *
   * - `to` cannot be the zero address.
   */
  function _mint(address account, uint256 amount) internal virtual {
    require(account != address(0), "ERC20: mint to the zero address");

    _beforeTokenTransfer(address(0), account, amount);

    _totalSupply = _totalSupply.add(amount);
    _balances[account] = _balances[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

  /**
   * @dev Destroys `amount` tokens from `account`, reducing the
   * total supply.
   *
   * Emits a {Transfer} event with `to` set to the zero address.
   *
   * Requirements:
   *
   * - `account` cannot be the zero address.
   * - `account` must have at least `amount` tokens.
   */
  function _burn(address account, uint256 amount) internal virtual {
    require(account != address(0), "ERC20: burn from the zero address");

    _beforeTokenTransfer(account, address(0), amount);

    _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
    _totalSupply = _totalSupply.sub(amount);
    emit Transfer(account, address(0), amount);
  }

  /**
   * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
   *
   * This internal function is equivalent to `approve`, and can be used to
   * e.g. set automatic allowances for certain subsystems, etc.
   *
   * Emits an {Approval} event.
   *
   * Requirements:
   *
   * - `owner` cannot be the zero address.
   * - `spender` cannot be the zero address.
   */
  function _approve(address owner, address spender, uint256 amount) internal virtual {
    require(owner != address(0), "ERC20: approve from the zero address");
    require(spender != address(0), "ERC20: approve to the zero address");

    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
  }

  /**
   * @dev Sets {decimals} to a value other than the default one of 18.
   *
   * WARNING: This function should only be called from the constructor. Most
   * applications that interact with token contracts will not expect
   * {decimals} to ever change, and may work incorrectly if it does.
   */
  function _setupDecimals(uint8 decimals_) internal {
    _decimals = decimals_;
  }

  /**
   * @dev Hook that is called before any transfer of tokens. This includes
   * minting and burning.
   *
   * Calling conditions:
   *
   * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
   * will be to transferred to `to`.
   * - when `from` is zero, `amount` tokens will be minted for `to`.
   * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
   * - `from` and `to` are never both zero.
   *
   * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
   */
  function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"emissionStartTimestamp","type":"uint256"}],"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":"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":"INITIAL_ALLOTMENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRE_REVEAL_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_IN_A_DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenIndex","type":"uint256"}],"name":"accumulated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnQuantity","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIndices","type":"uint256[]"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"emissionEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emissionPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emissionStart","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":"uint256","name":"tokenIndex","type":"uint256"}],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spdAddress","type":"address"}],"name":"setSPDAddress","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405262015180600055678ac7230489e800006003553480156200002457600080fd5b5060405162002a1a38038062002a1a833981810160405260608110156200004a57600080fd5b81019080805160405193929190846401000000008211156200006b57600080fd5b838201915060208201858111156200008257600080fd5b8251866001820283011164010000000082111715620000a057600080fd5b8083526020830192505050908051906020019080838360005b83811015620000d6578082015181840152602081019050620000b9565b50505050905090810190601f168015620001045780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012857600080fd5b838201915060208201858111156200013f57600080fd5b82518660018202830111640100000000821117156200015d57600080fd5b8083526020830192505050908051906020019080838360005b838110156200019357808201518184015260208101905062000176565b50505050905090810190601f168015620001c15780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508260089080519060200190620001ed92919062000240565b5081600990805190602001906200020692919062000240565b506012600a60006101000a81548160ff021916908360ff160217905550806001819055506312cc03008101600281905550505050620002f6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620002785760008555620002c4565b82601f106200029357805160ff1916838001178555620002c4565b82800160010185558215620002c4579182015b82811115620002c3578251825591602001919060010190620002a6565b5b509050620002d39190620002d7565b5090565b5b80821115620002f2576000816000905550600101620002d8565b5090565b61271480620003066000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80636ba4c138116100b8578063a457c2d71161007c578063a457c2d71461063e578063a9059cbb146106a2578063b551b82f14610706578063c607cde714610724578063dd62ed3e14610766578063f9cfa06f146107de57610142565b80636ba4c1381461045b57806370a082311461052757806373422b311461057f5780638368909c1461059d57806395d89b41146105bb57610142565b8063367df1651161010a578063367df165146102f1578063395093511461030f5780633d3728b51461037357806342966c68146103b5578063513da948146103f95780635258970f1461041757610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461022e57806323b872dd1461024c578063313ce567146102d0575b600080fd5b61014f6107fc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089e565b60405180821515815260200191505060405180910390f35b6102366108bc565b6040518082815260200191505060405180910390f35b6102b86004803603606081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108c6565b60405180821515815260200191505060405180910390f35b6102d86109f5565b604051808260ff16815260200191505060405180910390f35b6102f9610a0c565b6040518082815260200191505060405180910390f35b61035b6004803603604081101561032557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a19565b60405180821515815260200191505060405180910390f35b61039f6004803603602081101561038957600080fd5b8101908080359060200190929190505050610acc565b6040518082815260200191505060405180910390f35b6103e1600480360360208110156103cb57600080fd5b8101908080359060200190929190505050610d5c565b60405180821515815260200191505060405180910390f35b610401610d71565b6040518082815260200191505060405180910390f35b6104596004803603602081101561042d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d77565b005b6105116004803603602081101561047157600080fd5b810190808035906020019064010000000081111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460208302840111640100000000831117156104c257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e7f565b6040518082815260200191505060405180910390f35b6105696004803603602081101561053d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611311565b6040518082815260200191505060405180910390f35b61058761135a565b6040518082815260200191505060405180910390f35b6105a561135f565b6040518082815260200191505060405180910390f35b6105c3611365565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106035780820151818401526020810190506105e8565b50505050905090810190601f1680156106305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61068a6004803603604081101561065457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611407565b60405180821515815260200191505060405180910390f35b6106ee600480360360408110156106b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d4565b60405180821515815260200191505060405180910390f35b61070e6114f2565b6040518082815260200191505060405180910390f35b6107506004803603602081101561073a57600080fd5b81019080803590602001909291905050506114f8565b6040518082815260200191505060405180910390f35b6107c86004803603604081101561077c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611948565b6040518082815260200191505060405180910390f35b6107e66119cf565b6040518082815260200191505060405180910390f35b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108945780601f1061086957610100808354040283529160200191610894565b820191906000526020600020905b81548152906001019060200180831161087757829003601f168201915b5050505050905090565b60006108b26108ab6119d5565b84846119dd565b6001905092915050565b6000600754905090565b60006108d3848484611bd4565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ea576109e9846109346119d5565b6109e48560405180606001604052806028815260200161262860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061099a6119d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e999092919063ffffffff16565b6119dd565b5b600190509392505050565b6000600a60009054906101000a900460ff16905090565b6863345a083e94d8000081565b6000610ac2610a266119d5565b84610abd8560056000610a376119d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5990919063ffffffff16565b6119dd565b6001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b5857600080fd5b505afa158015610b6c573d6000803e3d6000fd5b505050506040513d6020811015610b8257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415610c1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4f776e65722063616e6e6f74206265203020616464726573730000000000000081525060200191505060405180910390fd5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8557600080fd5b505afa158015610c99573d6000803e3d6000fd5b505050506040513d6020811015610caf57600080fd5b81019080805190602001909291905050508210610d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061259b6024913960400191505060405180910390fd5b60008060066000858152602001908152602001600020541415610d3c57600154610d51565b60066000848152602001908152602001600020545b905080915050919050565b6000610d683383611fe1565b60019050919050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff16600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f416c72656164792073657400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001544211610ef8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f456d697373696f6e20686173206e6f742073746172746564207965740000000081525060200191505060405180910390fd5b6000805b835181101561128657600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6d57600080fd5b505afa158015610f81573d6000803e3d6000fd5b505050506040513d6020811015610f9757600080fd5b8101908080519060200190929190505050848281518110610fb457fe5b602002602001015110611012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061259b6024913960400191505060405180910390fd5b60006001820190505b84518110156110cd5784818151811061103057fe5b602002602001015185838151811061104457fe5b602002602001015114156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4475706c696361746520746f6b656e20696e646578000000000000000000000081525060200191505060405180910390fd5b808060010191505061101b565b5060008482815181106110dc57fe5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff16600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561117057600080fd5b505afa158015611184573d6000803e3d6000fd5b505050506040513d602081101561119a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611234576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e646572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600061123f826114f8565b9050600081146112775761125c8185611f5990919063ffffffff16565b93504260066000848152602001908152602001600020819055505b50508080600101915050610efc565b5060008114156112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f20616363756d756c61746564205350444e0000000000000000000000000081525060200191505060405180910390fd5b61130833826121a7565b80915050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600281565b60025481565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113fd5780601f106113d2576101008083540402835291602001916113fd565b820191906000526020600020905b8154815290600101906020018083116113e057829003601f168201915b5050505050905090565b60006114ca6114146119d5565b846114c5856040518060600160405280602581526020016126ba602591396005600061143e6119d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e999092919063ffffffff16565b6119dd565b6001905092915050565b60006114e86114e16119d5565b8484611bd4565b6001905092915050565b60035481565b60006001544211611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f456d697373696f6e20686173206e6f742073746172746564207965740000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d602081101561162657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4f776e65722063616e6e6f74206265203020616464726573730000000000000081525060200191505060405180910390fd5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561172957600080fd5b505afa15801561173d573d6000803e3d6000fd5b505050506040513d602081101561175357600080fd5b810190808051906020019092919050505082106117bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061259b6024913960400191505060405180910390fd5b60006117c683610acc565b905060025481106117db576000915050611943565b600060025442106117ee576002546117f0565b425b9050600061182f600054611821600354611813878761237090919063ffffffff16565b6123ba90919063ffffffff16565b61244090919063ffffffff16565b905060015483141561193c57600060011515600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bc28d702886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156118b457600080fd5b505afa1580156118c8573d6000803e3d6000fd5b505050506040513d60208110156118de57600080fd5b8101908080519060200190929190505050151514611905576863345a083e94d80000611923565b61192260026863345a083e94d800006123ba90919063ffffffff16565b5b90506119388183611f5990919063ffffffff16565b9150505b8093505050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60005481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806126966024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125bf6022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806126716025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ce0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125566023913960400191505060405180910390fd5b611ceb83838361248a565b611d57816040518060600160405280602681526020016125e160269139600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e999092919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dec81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5990919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611f46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f0b578082015181840152602081019050611ef0565b50505050905090810190601f168015611f385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611fd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126506021913960400191505060405180910390fd5b6120738260008361248a565b6120df8160405180606001604052806022815260200161257960229139600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e999092919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121378160075461237090919063ffffffff16565b600781905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6122566000838361248a565b61226b81600754611f5990919063ffffffff16565b6007819055506122c381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5990919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006123b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e99565b905092915050565b6000808314156123cd576000905061243a565b60008284029050828482816123de57fe5b0414612435576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126076021913960400191505060405180910390fd5b809150505b92915050565b600061248283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248f565b905092915050565b505050565b6000808311829061253b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125005780820151818401526020810190506124e5565b50505050905090810190601f16801561252d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161254757fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654e465420617420696e64657820686173206e6f74206265656e206d696e7465642079657445524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201cac72c9b13e914c9e1c58888c85ae48406f684073693a2694fe83194ee0d70564736f6c63430007060033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000060a8d2240000000000000000000000000000000000000000000000000000000000000010537465616d50756e6b446f674e616d650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045350444e00000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000060a8d2240000000000000000000000000000000000000000000000000000000000000010537465616d50756e6b446f674e616d650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045350444e00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): SteamPunkDogName
Arg [1] : symbol (string): SPDN
Arg [2] : emissionStartTimestamp (uint256): 1621676580

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000060a8d224
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000010
Arg [4] : 537465616d50756e6b446f674e616d6500000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 5350444e00000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

14812:13391:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16223:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21412:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17234:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22025:463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17100:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14957:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22871:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17597:413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23223:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15104:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19422:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19673:1048;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17383:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15025:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15139:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16409:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23842:259;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20916:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15172:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18097:1189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21136:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14911:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16223:77;16260:13;16289:5;16282:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16223:77;:::o;21412:159::-;21495:4;21508:39;21517:12;:10;:12::i;:::-;21531:7;21540:6;21508:8;:39::i;:::-;21561:4;21554:11;;21412:159;;;;:::o;17234:94::-;17287:7;17310:12;;17303:19;;17234:94;:::o;22025:463::-;22131:4;22144:36;22154:6;22162:9;22173:6;22144:9;:36::i;:::-;22314:11;;;;;;;;;;;22300:25;;:10;:25;;;22296:169;;22336:121;22345:6;22353:12;:10;:12::i;:::-;22367:89;22405:6;22367:89;;;;;;;;;;;;;;;;;:11;:19;22379:6;22367:19;;;;;;;;;;;;;;;:33;22387:12;:10;:12::i;:::-;22367:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22336:8;:121::i;:::-;22296:169;22478:4;22471:11;;22025:463;;;;;:::o;17100:77::-;17141:5;17162:9;;;;;;;;;;;17155:16;;17100:77;:::o;14957:61::-;15001:17;14957:61;:::o;22871:208::-;22959:4;22972:83;22981:12;:10;:12::i;:::-;22995:7;23004:50;23043:10;23004:11;:25;23016:12;:10;:12::i;:::-;23004:25;;;;;;;;;;;;;;;:34;23030:7;23004:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;22972:8;:83::i;:::-;23069:4;23062:11;;22871:208;;;;:::o;17597:413::-;17657:7;17730:1;17681:51;;17686:11;;;;;;;;;;;17681:25;;;17707:10;17681:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;17673:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17795:11;;;;;;;;;;;17790:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17777:10;:44;17769:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17871:19;17928:1;17901:10;:22;17912:10;17901:22;;;;;;;;;;;;17893:36;;:86;;17966:13;;17893:86;;;17940:10;:22;17951:10;17940:22;;;;;;;;;;;;17893:86;17871:108;;17993:11;17986:18;;;17597:413;;;:::o;23223:137::-;23292:4;23305:31;23311:10;23323:12;23305:5;:31::i;:::-;23350:4;23343:11;;23223:137;;;:::o;15104:28::-;;;;:::o;19422:145::-;19510:1;19487:25;;:11;;;;;;;;;;;:25;;;19479:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19551:10;19537:11;;:24;;;;;;;;;;;;;;;;;;19422:145;:::o;19673:1048::-;19735:7;19777:13;;19759:15;:31;19751:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19832:21;19869:6;19864:727;19885:12;:19;19881:1;:23;19864:727;;;19995:11;;;;;;;;;;;19990:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19972:12;19985:1;19972:15;;;;;;;;;;;;;;:49;19964:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20114:6;20127:1;20123;:5;20114:14;;20109:140;20134:12;:19;20130:1;:23;20109:140;;;20198:12;20211:1;20198:15;;;;;;;;;;;;;;20179:12;20192:1;20179:15;;;;;;;;;;;;;;:34;;20171:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20155:3;;;;;;;20109:140;;;;20259:15;20277:12;20290:1;20277:15;;;;;;;;;;;;;;20259:33;;20350:10;20309:51;;20314:11;;;;;;;;;;;20309:25;;;20335:10;20309:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;20301:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20399:16;20418:23;20430:10;20418:11;:23::i;:::-;20399:42;;20466:1;20454:8;:13;20450:134;;20496:27;20514:8;20496:13;:17;;:27;;;;:::i;:::-;20480:43;;20559:15;20534:10;:22;20545:10;20534:22;;;;;;;;;;;:40;;;;20450:134;19864:727;;19906:3;;;;;;;19864:727;;;;20624:1;20607:13;:18;;20599:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20656:32;20662:10;20674:13;20656:5;:32::i;:::-;20702:13;20695:20;;;19673:1048;;;:::o;17383:113::-;17449:7;17472:9;:18;17482:7;17472:18;;;;;;;;;;;;;;;;17465:25;;17383:113;;;:::o;15025:49::-;15073:1;15025:49;:::o;15139:26::-;;;;:::o;16409:81::-;16448:13;16477:7;16470:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16409:81;:::o;23842:259::-;23935:4;23948:129;23957:12;:10;:12::i;:::-;23971:7;23980:96;24019:15;23980:96;;;;;;;;;;;;;;;;;:11;:25;23992:12;:10;:12::i;:::-;23980:25;;;;;;;;;;;;;;;:34;24006:7;23980:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;23948:8;:129::i;:::-;24091:4;24084:11;;23842:259;;;;:::o;20916:165::-;21002:4;21015:42;21025:12;:10;:12::i;:::-;21039:9;21050:6;21015:9;:42::i;:::-;21071:4;21064:11;;20916:165;;;;:::o;15172:47::-;;;;:::o;18097:1189::-;18159:7;18201:13;;18183:15;:31;18175:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18311:1;18262:51;;18267:11;;;;;;;;;;;18262:25;;;18288:10;18262:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;18254:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18376:11;;;;;;;;;;;18371:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18358:10;:44;18350:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18452:19;18474:21;18484:10;18474:9;:21::i;:::-;18452:43;;18587:11;;18572;:26;18568:40;;18607:1;18600:8;;;;;18568:40;18617:26;18664:11;;18646:15;:29;:61;;18696:11;;18646:61;;;18678:15;18646:61;18617:90;;18747:24;18774:77;18834:16;;18774:55;18814:14;;18774:35;18797:11;18774:18;:22;;:35;;;;:::i;:::-;:39;;:55;;;;:::i;:::-;:59;;:77;;;;:::i;:::-;18747:104;;18999:13;;18984:11;:28;18980:269;;;19023:24;19104:4;19050:58;;19055:11;;;;;;;;;;;19050:38;;;19089:10;19050:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;:125;;15001:17;19050:125;;;19111:44;15073:1;15001:17;19111:21;;:44;;;;:::i;:::-;19050:125;19023:152;;19203:38;19224:16;19203;:20;;:38;;;;:::i;:::-;19184:57;;18980:269;;19264:16;19257:23;;;;;18097:1189;;;;:::o;21136:145::-;21225:7;21248:11;:18;21260:5;21248:18;;;;;;;;;;;;;;;:27;21267:7;21248:27;;;;;;;;;;;;;;;;21241:34;;21136:145;;;;:::o;14911:39::-;;;;:::o;14355:100::-;14408:15;14439:10;14432:17;;14355:100;:::o;26807:328::-;26922:1;26905:19;;:5;:19;;;;26897:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26999:1;26980:21;;:7;:21;;;;26972:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27079:6;27049:11;:18;27061:5;27049:18;;;;;;;;;;;;;;;:27;27068:7;27049:27;;;;;;;;;;;;;;;:36;;;;27113:7;27097:32;;27106:5;27097:32;;;27122:6;27097:32;;;;;;;;;;;;;;;;;;26807:328;;;:::o;24561:513::-;24681:1;24663:20;;:6;:20;;;;24655:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24761:1;24740:23;;:9;:23;;;;24732:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24812:47;24833:6;24841:9;24852:6;24812:20;:47::i;:::-;24888:71;24910:6;24888:71;;;;;;;;;;;;;;;;;:9;:17;24898:6;24888:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;24868:9;:17;24878:6;24868:17;;;;;;;;;;;;;;;:91;;;;24989:32;25014:6;24989:9;:20;24999:9;24989:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24966:9;:20;24976:9;24966:20;;;;;;;;;;;;;;;:55;;;;25050:9;25033:35;;25042:6;25033:35;;;25061:6;25033:35;;;;;;;;;;;;;;;;;;24561:513;;;:::o;1684:178::-;1770:7;1799:1;1794;:6;;1802:12;1786:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1822:9;1838:1;1834;:5;1822:17;;1855:1;1848:8;;;1684:178;;;;;:::o;845:167::-;903:7;919:9;935:1;931;:5;919:17;;956:1;951;:6;;943:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1005:1;998:8;;;845:167;;;;:::o;26001:396::-;26100:1;26081:21;;:7;:21;;;;26073:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26149:49;26170:7;26187:1;26191:6;26149:20;:49::i;:::-;26228:68;26251:6;26228:68;;;;;;;;;;;;;;;;;:9;:18;26238:7;26228:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;26207:9;:18;26217:7;26207:18;;;;;;;;;;;;;;;:89;;;;26318:24;26335:6;26318:12;;:16;;:24;;;;:::i;:::-;26303:12;:39;;;;26380:1;26354:37;;26363:7;26354:37;;;26384:6;26354:37;;;;;;;;;;;;;;;;;;26001:396;;:::o;25336:356::-;25435:1;25416:21;;:7;:21;;;;25408:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25482:49;25511:1;25515:7;25524:6;25482:20;:49::i;:::-;25555:24;25572:6;25555:12;;:16;;:24;;;;:::i;:::-;25540:12;:39;;;;25607:30;25630:6;25607:9;:18;25617:7;25607:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;25586:9;:18;25596:7;25586:18;;;;;;;;;;;;;;;:51;;;;25670:7;25649:37;;25666:1;25649:37;;;25679:6;25649:37;;;;;;;;;;;;;;;;;;25336:356;;:::o;1273:130::-;1331:7;1354:43;1358:1;1361;1354:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1347:50;;1273:130;;;;:::o;2099:431::-;2157:7;2391:1;2386;:6;2382:37;;;2410:1;2403:8;;;;2382:37;2427:9;2443:1;2439;:5;2427:17;;2468:1;2463;2459;:5;;;;;;:10;2451:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2523:1;2516:8;;;2099:431;;;;;:::o;2980:126::-;3038:7;3061:39;3065:1;3068;3061:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3054:46;;2980:126;;;;:::o;28108:92::-;;;;:::o;3576:260::-;3662:7;3690:1;3686;:5;3693:12;3678:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:9;3729:1;3725;:5;;;;;;3713:17;;3829:1;3822:8;;;3576:260;;;;;:::o

Swarm Source

ipfs://1cac72c9b13e914c9e1c58888c85ae48406f684073693a2694fe83194ee0d705
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.