ETH Price: $2,086.64 (-1.60%)

Contract

0x933Eb50FCfE663D6b7E11535360d77eCbBD84665
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer74704552019-03-30 15:22:152532 days ago1553959335IN
0x933Eb50F...CbBD84665
0 ETH0.0002104610
Mint71765962019-02-05 4:18:392585 days ago1549340319IN
0x933Eb50F...CbBD84665
0 ETH0.000140726
Mint71703332019-02-03 21:53:382587 days ago1549230818IN
0x933Eb50F...CbBD84665
0 ETH0.001583647
Mint71701802019-02-03 21:14:342587 days ago1549228474IN
0x933Eb50F...CbBD84665
0 ETH0.00041997
Mint71701722019-02-03 21:13:132587 days ago1549228393IN
0x933Eb50F...CbBD84665
0 ETH0.001584447
Mint71701282019-02-03 20:59:542587 days ago1549227594IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71700812019-02-03 20:47:012587 days ago1549226821IN
0x933Eb50F...CbBD84665
0 ETH0.001583547
Mint71700612019-02-03 20:41:542587 days ago1549226514IN
0x933Eb50F...CbBD84665
0 ETH0.00041997
Mint71700512019-02-03 20:40:182587 days ago1549226418IN
0x933Eb50F...CbBD84665
0 ETH0.000419917
Mint71699732019-02-03 20:15:012587 days ago1549224901IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71698082019-02-03 19:35:032587 days ago1549222503IN
0x933Eb50F...CbBD84665
0 ETH0.001177015.2
Mint71696492019-02-03 18:43:022587 days ago1549219382IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71694852019-02-03 17:55:362587 days ago1549216536IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Transfer71694532019-02-03 17:43:032587 days ago1549215783IN
0x933Eb50F...CbBD84665
0 ETH0.000027351.3
Mint71694452019-02-03 17:39:512587 days ago1549215591IN
0x933Eb50F...CbBD84665
0 ETH0.001583647
Mint71694302019-02-03 17:33:582587 days ago1549215238IN
0x933Eb50F...CbBD84665
0 ETH0.001584447
Mint71692962019-02-03 16:53:112587 days ago1549212791IN
0x933Eb50F...CbBD84665
0 ETH0.00041997
Mint71692442019-02-03 16:39:452587 days ago1549211985IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71692352019-02-03 16:36:242587 days ago1549211784IN
0x933Eb50F...CbBD84665
0 ETH0.001584447
Mint71692222019-02-03 16:32:532587 days ago1549211573IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71691782019-02-03 16:19:262587 days ago1549210766IN
0x933Eb50F...CbBD84665
0 ETH0.001584447
Mint71691672019-02-03 16:17:242587 days ago1549210644IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71691392019-02-03 16:11:142587 days ago1549210274IN
0x933Eb50F...CbBD84665
0 ETH0.001583997
Mint71691032019-02-03 15:57:442587 days ago1549209464IN
0x933Eb50F...CbBD84665
0 ETH0.001582747
Mint71690872019-02-03 15:52:592587 days ago1549209179IN
0x933Eb50F...CbBD84665
0 ETH0.001583547
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SimpleNonceMinter

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-12-10
*/

pragma solidity ^0.4.24;

contract ICollectable {

    function mint(uint32 delegateID, address to) public returns (uint);

    function transferFrom(address from, address to, uint256 tokenId) public;
    function approve(address to, uint256 tokenId) public;
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;

    function safeTransferFrom(address from, address to, uint256 tokenId) public;

}

contract Ownable {

    address public owner;

    constructor() public {
        owner = msg.sender;
    }

    function setOwner(address _owner) public onlyOwner {
        owner = _owner;
    }

    function getOwner() public view returns (address) {
        return owner;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

}

contract SimpleNonceMinter is Ownable {

    ICollectable collectable;
    uint32 delegateID;
    mapping(uint => bool) public nonces;
    mapping(address => bool) public signers;

    constructor(ICollectable _collectable, uint32 _delegateID) public {
        collectable = _collectable;
        delegateID = _delegateID;
    }

    function setCanSign(address _signer, bool _can) public onlyOwner {
        signers[_signer] = _can;
    }

    function mint(bytes memory sig, address to, uint nonce, bool add27) public returns (uint) {
        require(!nonces[nonce], "can only claim once");
        bytes32 message = prefixed(keccak256(abi.encodePacked(address(this), nonce)));
        require(signers[getSigner(message, sig, add27)], "must be signed by approved signer");
        nonces[nonce] = true;
        return collectable.mint(delegateID, to);
    }

    function getSigner(bytes32 message, bytes memory sig, bool add27) internal pure returns (address) {
        uint8 v;
        bytes32 r;
        bytes32 s;

        (v, r, s) = splitSignature(sig);

        if (add27) {
            v += 27;
        }

        return ecrecover(message, v, r, s);
    }

    function prefixed(bytes32 hash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    function splitSignature(bytes memory sig) internal pure returns (uint8 v, bytes32 r, bytes32 s) {
        require(sig.length == 65, "incorrect signature length");

        assembly {
            // first 32 bytes, after the length prefix
            r := mload(add(sig, 32))
            // second 32 bytes
            s := mload(add(sig, 64))
            // final byte (first byte of the next 32 bytes)
            v := byte(0, mload(add(sig, 96)))
        }

        return (v, r, s);
    }

}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"nonces","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"signers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_signer","type":"address"},{"name":"_can","type":"bool"}],"name":"setCanSign","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sig","type":"bytes"},{"name":"to","type":"address"},{"name":"nonce","type":"uint256"},{"name":"add27","type":"bool"}],"name":"mint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_collectable","type":"address"},{"name":"_delegateID","type":"uint32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

608060405234801561001057600080fd5b5060405160408061081483398101604052805160209091015160008054600160a060020a031990811633179091556001805463ffffffff909316740100000000000000000000000000000000000000000260a060020a63ffffffff0219600160a060020a0390951693909216929092179290921691909117905561077b806100996000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af40358114610087578063141a468c146100aa578063736c0d5b146100d6578063893d20e8146100f75780638da5cb5b14610128578063affecb9b1461013d578063c3a7787114610163575b600080fd5b34801561009357600080fd5b506100a8600160a060020a03600435166101e5565b005b3480156100b657600080fd5b506100c260043561022b565b604080519115158252519081900360200190f35b3480156100e257600080fd5b506100c2600160a060020a0360043516610240565b34801561010357600080fd5b5061010c610255565b60408051600160a060020a039092168252519081900360200190f35b34801561013457600080fd5b5061010c610264565b34801561014957600080fd5b506100a8600160a060020a03600435166024351515610273565b34801561016f57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101d394369492936024939284019190819084018382808284375094975050508335600160a060020a03169450505060208201359160400135151590506102b5565b60408051918252519081900360200190f35b600054600160a060020a031633146101fc57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60026020526000908152604090205460ff1681565b60036020526000908152604090205460ff1681565b600054600160a060020a031690565b600054600160a060020a031681565b600054600160a060020a0316331461028a57600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600082815260026020526040812054819060ff161561033557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616e206f6e6c7920636c61696d206f6e636500000000000000000000000000604482015290519081900360640190fd5b6103e230856040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106103b05780518252601f199092019160209182019101610391565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902061057f565b9050600360006103f3838987610629565b600160a060020a0316815260208101919091526040016000205460ff1615156104a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f6d757374206265207369676e656420627920617070726f766564207369676e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600260209081526040808320805460ff191660019081179091555481517f3e6eaa0300000000000000000000000000000000000000000000000000000000815263ffffffff740100000000000000000000000000000000000000008304166004820152600160a060020a038a8116602483015292519290911693633e6eaa039360448084019491939192918390030190829087803b15801561054957600080fd5b505af115801561055d573d6000803e3d6000fd5b505050506040513d602081101561057357600080fd5b50519695505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b602083106105f75780518252601f1990920191602091820191016105d8565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b600080600080610638866106bc565b91945092509050841561064c57601b830192505b60408051600080825260208083018085528b905260ff8716838501526060830186905260808301859052925160019360a0808501949193601f19840193928390039091019190865af11580156106a6573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b60008060008351604114151561073357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f696e636f7272656374207369676e6174757265206c656e677468000000000000604482015290519081900360640190fd5b5050506020810151604082015160609092015160001a929091905600a165627a7a72305820f5c530d83438bb34a2389c83c080211a1a011a904f06a198f68053f331ed3ade0029000000000000000000000000a5e5be69c923c701ae6ac8f1f5936af3ae610c680000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af40358114610087578063141a468c146100aa578063736c0d5b146100d6578063893d20e8146100f75780638da5cb5b14610128578063affecb9b1461013d578063c3a7787114610163575b600080fd5b34801561009357600080fd5b506100a8600160a060020a03600435166101e5565b005b3480156100b657600080fd5b506100c260043561022b565b604080519115158252519081900360200190f35b3480156100e257600080fd5b506100c2600160a060020a0360043516610240565b34801561010357600080fd5b5061010c610255565b60408051600160a060020a039092168252519081900360200190f35b34801561013457600080fd5b5061010c610264565b34801561014957600080fd5b506100a8600160a060020a03600435166024351515610273565b34801561016f57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101d394369492936024939284019190819084018382808284375094975050508335600160a060020a03169450505060208201359160400135151590506102b5565b60408051918252519081900360200190f35b600054600160a060020a031633146101fc57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60026020526000908152604090205460ff1681565b60036020526000908152604090205460ff1681565b600054600160a060020a031690565b600054600160a060020a031681565b600054600160a060020a0316331461028a57600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600082815260026020526040812054819060ff161561033557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616e206f6e6c7920636c61696d206f6e636500000000000000000000000000604482015290519081900360640190fd5b6103e230856040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106103b05780518252601f199092019160209182019101610391565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902061057f565b9050600360006103f3838987610629565b600160a060020a0316815260208101919091526040016000205460ff1615156104a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f6d757374206265207369676e656420627920617070726f766564207369676e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600260209081526040808320805460ff191660019081179091555481517f3e6eaa0300000000000000000000000000000000000000000000000000000000815263ffffffff740100000000000000000000000000000000000000008304166004820152600160a060020a038a8116602483015292519290911693633e6eaa039360448084019491939192918390030190829087803b15801561054957600080fd5b505af115801561055d573d6000803e3d6000fd5b505050506040513d602081101561057357600080fd5b50519695505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b602083106105f75780518252601f1990920191602091820191016105d8565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b600080600080610638866106bc565b91945092509050841561064c57601b830192505b60408051600080825260208083018085528b905260ff8716838501526060830186905260808301859052925160019360a0808501949193601f19840193928390039091019190865af11580156106a6573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b60008060008351604114151561073357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f696e636f7272656374207369676e6174757265206c656e677468000000000000604482015290519081900360640190fd5b5050506020810151604082015160609092015160001a929091905600a165627a7a72305820f5c530d83438bb34a2389c83c080211a1a011a904f06a198f68053f331ed3ade0029

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

000000000000000000000000a5e5be69c923c701ae6ac8f1f5936af3ae610c680000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _collectable (address): 0xa5e5be69C923C701aE6Ac8F1F5936Af3Ae610C68
Arg [1] : _delegateID (uint32): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5e5be69c923c701ae6ac8f1f5936af3ae610c68
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://f5c530d83438bb34a2389c83c080211a1a011a904f06a198f68053f331ed3ade

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.