Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 85 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint | 9766654 | 1849 days ago | IN | 0 ETH | 0.00154163 | ||||
Mint | 9683672 | 1862 days ago | IN | 0 ETH | 0.0023268 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00010926 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00010926 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00010926 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00010926 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00010926 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.0000745 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00009933 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00009933 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00009933 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.00009933 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674586 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.00004966 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 | ||||
Give Art Credit | 9674585 | 1863 days ago | IN | 0 ETH | 0.0000903 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 9641112 | 1868 days ago | 0.25 ETH |
Loading...
Loading
Contract Name:
AvastarPrintRegistryMinter
Compiler Version
v0.5.0+commit.1d4f565a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-03-10 */ /************** * Copyright Art Blocks LLC 2020. www.artblocks.io. *************/ // File: openzeppelin-solidity/contracts/math/SafeMath.sol pragma solidity ^0.5.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) { require(b <= a, "SafeMath: subtraction overflow"); 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-solidity/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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); 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) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } } // File: openzeppelin-solidity/contracts/utils/Address.sol pragma solidity ^0.5.0; /** * @dev Collection of functions related to the address type, */ library Address { /** * @dev Returns true if `account` is a contract. * * This test is non-exhaustive, and there may be false-negatives: during the * execution of a contract's constructor, its address will be reported as * not containing a contract. * * > It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } } // File: openzeppelin-solidity/contracts/drafts/Counters.sol pragma solidity ^0.5.0; /** * @title Counters * @author Matt Condon (@shrugs) * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number * of elements in a mapping, issuing ERC721 ids, or counting request ids. * * Include with `using Counters for Counters.Counter;` * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never * directly accessed. */ library Counters { using SafeMath for uint256; struct Counter { // This variable should never be directly accessed by users of the library: interactions must be restricted to // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add // this feature: see https://github.com/ethereum/solidity/issues/4637 uint256 _value; // default: 0 } function current(Counter storage counter) internal view returns (uint256) { return counter._value; } function increment(Counter storage counter) internal { counter._value += 1; } function decrement(Counter storage counter) internal { counter._value = counter._value.sub(1); } } // File: contracts/Strings.sol pragma solidity ^0.5.0; //https://github.com/oraclize/ethereum-api/blob/master/oraclizeAPI_0.5.sol library Strings { function strConcat(string memory _a, string memory _b) internal pure returns (string memory _concatenatedString) { return strConcat(_a, _b, "", "", ""); } function strConcat(string memory _a, string memory _b, string memory _c) internal pure returns (string memory _concatenatedString) { return strConcat(_a, _b, _c, "", ""); } function strConcat(string memory _a, string memory _b, string memory _c, string memory _d) internal pure returns (string memory _concatenatedString) { return strConcat(_a, _b, _c, _d, ""); } function strConcat(string memory _a, string memory _b, string memory _c, string memory _d, string memory _e) internal pure returns (string memory _concatenatedString) { bytes memory _ba = bytes(_a); bytes memory _bb = bytes(_b); bytes memory _bc = bytes(_c); bytes memory _bd = bytes(_d); bytes memory _be = bytes(_e); string memory abcde = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length); bytes memory babcde = bytes(abcde); uint k = 0; uint i = 0; for (i = 0; i < _ba.length; i++) { babcde[k++] = _ba[i]; } for (i = 0; i < _bb.length; i++) { babcde[k++] = _bb[i]; } for (i = 0; i < _bc.length; i++) { babcde[k++] = _bc[i]; } for (i = 0; i < _bd.length; i++) { babcde[k++] = _bd[i]; } for (i = 0; i < _be.length; i++) { babcde[k++] = _be[i]; } return string(babcde); } function uint2str(uint _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return "0"; } uint j = _i; uint len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint k = len - 1; while (_i != 0) { bstr[k--] = byte(uint8(48 + _i % 10)); _i /= 10; } return string(bstr); } } pragma solidity ^0.5.0; interface AvastarPrintRegistryInterface { function mint(uint256 _avastarId, string calldata _nfc) external returns (uint256 _tokenId); function pricePerPrintIntlShipInWei() external view returns (uint256 _pricePerPrintIntlShipInWei); } pragma solidity ^0.5.0; interface AvastarsInterface { function ownerOf(uint256 _avastarId) external view returns (address); } // File: contracts/AvastarPrintRegistryMinter.sol pragma solidity ^0.5.0; contract AvastarPrintRegistryMinter { using SafeMath for uint256; /////////////// // Variables // /////////////// AvastarPrintRegistryInterface public aprContract; AvastarsInterface public avastarsContract; address public owner1; address payable public printerAddress; mapping(uint256 => uint256) public artIdToCreditsToSpend; mapping(address => uint256) public addressToCreditsToSpend; mapping(address => uint256) public managerAddressToCreditsToGive; ///////////////// // Constructor // ///////////////// constructor(address payable _printerAddress, address _registryContract, address _artContract) public { aprContract = AvastarPrintRegistryInterface(_registryContract); avastarsContract = AvastarsInterface(_artContract); owner1 = msg.sender; printerAddress = _printerAddress; } ////////////////////////////// // Minting Function // ////////////////////////////// function mint(uint256 _avastarId, string memory _contactMethodAndType) public returns (uint256 _tokenId) { uint256 artCreditBalance = artIdToCreditsToSpend[_avastarId]; uint256 addressCreditBalance = addressToCreditsToSpend[msg.sender]; require(msg.sender == avastarsContract.ownerOf(_avastarId), "You must own Avastar!"); require(artCreditBalance>0 || addressCreditBalance >0 , "Must have a credit!"); uint256 mintedToken = aprContract.mint(_avastarId, _contactMethodAndType); if (artCreditBalance >0) { artIdToCreditsToSpend[_avastarId] --; } else { addressToCreditsToSpend[msg.sender] --; } return mintedToken; } ////////////////////////////// // Manager Function // ////////////////////////////// function giveArtCredit(uint256 _artId) public payable { uint creditsToGive = managerAddressToCreditsToGive[msg.sender]; require(creditsToGive>0 || msg.sender==owner1 || msg.sender==printerAddress || msg.value==aprContract.pricePerPrintIntlShipInWei(), "You must have permission!"); artIdToCreditsToSpend[_artId] ++; if (msg.value>0) { printerAddress.transfer(msg.value); } else { if (msg.sender==owner1 || msg.sender==printerAddress){ return; } else { managerAddressToCreditsToGive[msg.sender] --; } } } function giveAddressCredit(address _recipient) public payable { uint creditsToGive = managerAddressToCreditsToGive[msg.sender]; require(creditsToGive>0 || msg.sender==owner1 || msg.sender==printerAddress || msg.value==aprContract.pricePerPrintIntlShipInWei(), "You must have permission!"); addressToCreditsToSpend[_recipient] ++; if (msg.value>0) { printerAddress.transfer(msg.value); } else { if (msg.sender==owner1 || msg.sender==printerAddress){ return; } else { managerAddressToCreditsToGive[msg.sender] --; } } } function removeArtCredit(uint256 _artId) public { uint creditsToSpend = artIdToCreditsToSpend[_artId]; require(creditsToSpend>0, "There must be a credit to remove!"); require(msg.sender==owner1 || msg.sender==printerAddress , "You must have permission!"); artIdToCreditsToSpend[_artId] --; } function removeAddressCredit(address _recipient) public { uint creditsToSpend = addressToCreditsToSpend[_recipient]; require(creditsToSpend>0, "There must be a credit to remove!"); require(msg.sender==owner1 || msg.sender==printerAddress , "You must have permission!"); addressToCreditsToSpend[_recipient] --; } ////////////////////////////// // Owner Functions // ////////////////////////////// function updatePrinterAddress(address payable _printerAddress) public returns (bool) { require(msg.sender == owner1 || msg.sender == printerAddress); printerAddress = _printerAddress; return true; } function setManagerCredits(address _manager, uint _credits) public returns (bool) { require(msg.sender == owner1 || msg.sender == printerAddress); managerAddressToCreditsToGive[_manager]=_credits; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"aprContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"avastarsContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"},{"name":"_credits","type":"uint256"}],"name":"setManagerCredits","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_artId","type":"uint256"}],"name":"giveArtCredit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressToCreditsToSpend","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_avastarId","type":"uint256"},{"name":"_contactMethodAndType","type":"string"}],"name":"mint","outputs":[{"name":"_tokenId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"managerAddressToCreditsToGive","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"removeAddressCredit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_artId","type":"uint256"}],"name":"removeArtCredit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_printerAddress","type":"address"}],"name":"updatePrinterAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"giveAddressCredit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"printerAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"artIdToCreditsToSpend","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_printerAddress","type":"address"},{"name":"_registryContract","type":"address"},{"name":"_artContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051606080610d9d8339810180604052606081101561003057600080fd5b508051602082015160409092015160008054600160a060020a03948516600160a060020a03199182161790915560018054928516928216929092179091556002805482163317905560038054939092169216919091179055610d06806100976000396000f3fe6080604052600436106100b65763ffffffff60e060020a60003504166310cdafcd81146100bb5780633176c299146100ec578063321dbe26146101015780635a0d33771461014e5780635eaafbca1461016d57806373688914146101b257806377097fc8146101c757806397038a5814610281578063b0e79d14146102b4578063c4230b11146102e7578063d39e546c14610311578063e243151014610344578063f27f25d11461036a578063f7b822df1461037f575b600080fd5b3480156100c757600080fd5b506100d06103a9565b60408051600160a060020a039092168252519081900360200190f35b3480156100f857600080fd5b506100d06103b8565b34801561010d57600080fd5b5061013a6004803603604081101561012457600080fd5b50600160a060020a0381351690602001356103c7565b604080519115158252519081900360200190f35b61016b6004803603602081101561016457600080fd5b5035610419565b005b34801561017957600080fd5b506101a06004803603602081101561019057600080fd5b5035600160a060020a03166105c5565b60408051918252519081900360200190f35b3480156101be57600080fd5b506100d06105d7565b3480156101d357600080fd5b506101a0600480360360408110156101ea57600080fd5b8135919081019060408101602082013564010000000081111561020c57600080fd5b82018360208201111561021e57600080fd5b8035906020019184600183028401116401000000008311171561024057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105e6945050505050565b34801561028d57600080fd5b506101a0600480360360208110156102a457600080fd5b5035600160a060020a0316610894565b3480156102c057600080fd5b5061016b600480360360208110156102d757600080fd5b5035600160a060020a03166108a6565b3480156102f357600080fd5b5061016b6004803603602081101561030a57600080fd5b50356109c5565b34801561031d57600080fd5b5061013a6004803603602081101561033457600080fd5b5035600160a060020a0316610ad1565b61016b6004803603602081101561035a57600080fd5b5035600160a060020a0316610b34565b34801561037657600080fd5b506100d0610c99565b34801561038b57600080fd5b506101a0600480360360208110156103a257600080fd5b5035610ca8565b600054600160a060020a031681565b600154600160a060020a031681565b600254600090600160a060020a03163314806103ed5750600354600160a060020a031633145b15156103f857600080fd5b50600160a060020a0391909116600090815260066020526040902055600190565b33600090815260066020526040812054908111806104415750600254600160a060020a031633145b806104565750600354600160a060020a031633145b806104db57506000809054906101000a9004600160a060020a0316600160a060020a031663346f151d6040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156104ac57600080fd5b505afa1580156104c0573d6000803e3d6000fd5b505050506040513d60208110156104d657600080fd5b505134145b151561051f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b60008281526004602052604081208054600101905534111561057a57600354604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610574573d6000803e3d6000fd5b506105c0565b600254600160a060020a031633148061059d5750600354600160a060020a031633145b156105a857506105c2565b33600090815260066020526040902080546000190190555b505b50565b60056020526000908152604090205481565b600254600160a060020a031681565b600082815260046020818152604080842054338552600583528185205460015483517f6352211e000000000000000000000000000000000000000000000000000000008152958601899052925191949093600160a060020a0390931692636352211e92602480840193829003018186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d602081101561068d57600080fd5b5051600160a060020a031633146106ee576040805160e560020a62461bcd02815260206004820152601560248201527f596f75206d757374206f776e2041766173746172210000000000000000000000604482015290519081900360640190fd5b60008211806106fd5750600081115b1515610753576040805160e560020a62461bcd02815260206004820152601360248201527f4d75737420686176652061206372656469742100000000000000000000000000604482015290519081900360640190fd5b60008054604080517f77097fc80000000000000000000000000000000000000000000000000000000081526004810189815260248201928352885160448301528851600160a060020a03909416936377097fc8938b938b939260649091019060208501908083838c5b838110156107d45781810151838201526020016107bc565b50505050905090810190601f1680156108015780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506040513d602081101561084b57600080fd5b505190506000831115610873576000868152600460205260409020805460001901905561088b565b33600090815260056020526040902080546000190190555b95945050505050565b60066020526000908152604090205481565b600160a060020a03811660009081526005602052604081205490811161093c576040805160e560020a62461bcd02815260206004820152602160248201527f5468657265206d75737420626520612063726564697420746f2072656d6f766560448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600160a060020a031633148061095f5750600354600160a060020a031633145b15156109a3576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b50600160a060020a031660009081526005602052604090208054600019019055565b600081815260046020526040812054908111610a51576040805160e560020a62461bcd02815260206004820152602160248201527f5468657265206d75737420626520612063726564697420746f2072656d6f766560448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600160a060020a0316331480610a745750600354600160a060020a031633145b1515610ab8576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b5060009081526004602052604090208054600019019055565b600254600090600160a060020a0316331480610af75750600354600160a060020a031633145b1515610b0257600080fd5b5060038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b3360009081526006602052604081205490811180610b5c5750600254600160a060020a031633145b80610b715750600354600160a060020a031633145b80610bf657506000809054906101000a9004600160a060020a0316600160a060020a031663346f151d6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610bc757600080fd5b505afa158015610bdb573d6000803e3d6000fd5b505050506040513d6020811015610bf157600080fd5b505134145b1515610c3a576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b600160a060020a03821660009081526005602052604081208054600101905534111561057a57600354604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610574573d6000803e3d6000fd5b600354600160a060020a031681565b6004602052600090815260409020548156fe596f75206d7573742068617665207065726d697373696f6e2100000000000000a165627a7a72305820d3c610a120c22aa626c5d6df973f043d42f142030d92413d395e25de61dc58e8002900000000000000000000000089447f2ca722481d1399ae08b4d7e9471883f6c800000000000000000000000096bf02e2fb3d8f8ad6f61b3ff3fefe6740f84a9a000000000000000000000000f3e778f839934fc819cfa1040aabacecba01e049
Deployed Bytecode
0x6080604052600436106100b65763ffffffff60e060020a60003504166310cdafcd81146100bb5780633176c299146100ec578063321dbe26146101015780635a0d33771461014e5780635eaafbca1461016d57806373688914146101b257806377097fc8146101c757806397038a5814610281578063b0e79d14146102b4578063c4230b11146102e7578063d39e546c14610311578063e243151014610344578063f27f25d11461036a578063f7b822df1461037f575b600080fd5b3480156100c757600080fd5b506100d06103a9565b60408051600160a060020a039092168252519081900360200190f35b3480156100f857600080fd5b506100d06103b8565b34801561010d57600080fd5b5061013a6004803603604081101561012457600080fd5b50600160a060020a0381351690602001356103c7565b604080519115158252519081900360200190f35b61016b6004803603602081101561016457600080fd5b5035610419565b005b34801561017957600080fd5b506101a06004803603602081101561019057600080fd5b5035600160a060020a03166105c5565b60408051918252519081900360200190f35b3480156101be57600080fd5b506100d06105d7565b3480156101d357600080fd5b506101a0600480360360408110156101ea57600080fd5b8135919081019060408101602082013564010000000081111561020c57600080fd5b82018360208201111561021e57600080fd5b8035906020019184600183028401116401000000008311171561024057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105e6945050505050565b34801561028d57600080fd5b506101a0600480360360208110156102a457600080fd5b5035600160a060020a0316610894565b3480156102c057600080fd5b5061016b600480360360208110156102d757600080fd5b5035600160a060020a03166108a6565b3480156102f357600080fd5b5061016b6004803603602081101561030a57600080fd5b50356109c5565b34801561031d57600080fd5b5061013a6004803603602081101561033457600080fd5b5035600160a060020a0316610ad1565b61016b6004803603602081101561035a57600080fd5b5035600160a060020a0316610b34565b34801561037657600080fd5b506100d0610c99565b34801561038b57600080fd5b506101a0600480360360208110156103a257600080fd5b5035610ca8565b600054600160a060020a031681565b600154600160a060020a031681565b600254600090600160a060020a03163314806103ed5750600354600160a060020a031633145b15156103f857600080fd5b50600160a060020a0391909116600090815260066020526040902055600190565b33600090815260066020526040812054908111806104415750600254600160a060020a031633145b806104565750600354600160a060020a031633145b806104db57506000809054906101000a9004600160a060020a0316600160a060020a031663346f151d6040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156104ac57600080fd5b505afa1580156104c0573d6000803e3d6000fd5b505050506040513d60208110156104d657600080fd5b505134145b151561051f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b60008281526004602052604081208054600101905534111561057a57600354604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610574573d6000803e3d6000fd5b506105c0565b600254600160a060020a031633148061059d5750600354600160a060020a031633145b156105a857506105c2565b33600090815260066020526040902080546000190190555b505b50565b60056020526000908152604090205481565b600254600160a060020a031681565b600082815260046020818152604080842054338552600583528185205460015483517f6352211e000000000000000000000000000000000000000000000000000000008152958601899052925191949093600160a060020a0390931692636352211e92602480840193829003018186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d602081101561068d57600080fd5b5051600160a060020a031633146106ee576040805160e560020a62461bcd02815260206004820152601560248201527f596f75206d757374206f776e2041766173746172210000000000000000000000604482015290519081900360640190fd5b60008211806106fd5750600081115b1515610753576040805160e560020a62461bcd02815260206004820152601360248201527f4d75737420686176652061206372656469742100000000000000000000000000604482015290519081900360640190fd5b60008054604080517f77097fc80000000000000000000000000000000000000000000000000000000081526004810189815260248201928352885160448301528851600160a060020a03909416936377097fc8938b938b939260649091019060208501908083838c5b838110156107d45781810151838201526020016107bc565b50505050905090810190601f1680156108015780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506040513d602081101561084b57600080fd5b505190506000831115610873576000868152600460205260409020805460001901905561088b565b33600090815260056020526040902080546000190190555b95945050505050565b60066020526000908152604090205481565b600160a060020a03811660009081526005602052604081205490811161093c576040805160e560020a62461bcd02815260206004820152602160248201527f5468657265206d75737420626520612063726564697420746f2072656d6f766560448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600160a060020a031633148061095f5750600354600160a060020a031633145b15156109a3576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b50600160a060020a031660009081526005602052604090208054600019019055565b600081815260046020526040812054908111610a51576040805160e560020a62461bcd02815260206004820152602160248201527f5468657265206d75737420626520612063726564697420746f2072656d6f766560448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600160a060020a0316331480610a745750600354600160a060020a031633145b1515610ab8576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b5060009081526004602052604090208054600019019055565b600254600090600160a060020a0316331480610af75750600354600160a060020a031633145b1515610b0257600080fd5b5060038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b3360009081526006602052604081205490811180610b5c5750600254600160a060020a031633145b80610b715750600354600160a060020a031633145b80610bf657506000809054906101000a9004600160a060020a0316600160a060020a031663346f151d6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610bc757600080fd5b505afa158015610bdb573d6000803e3d6000fd5b505050506040513d6020811015610bf157600080fd5b505134145b1515610c3a576040805160e560020a62461bcd0281526020600482015260196024820152600080516020610cbb833981519152604482015290519081900360640190fd5b600160a060020a03821660009081526005602052604081208054600101905534111561057a57600354604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610574573d6000803e3d6000fd5b600354600160a060020a031681565b6004602052600090815260409020548156fe596f75206d7573742068617665207065726d697373696f6e2100000000000000a165627a7a72305820d3c610a120c22aa626c5d6df973f043d42f142030d92413d395e25de61dc58e80029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000089447f2ca722481d1399ae08b4d7e9471883f6c800000000000000000000000096bf02e2fb3d8f8ad6f61b3ff3fefe6740f84a9a000000000000000000000000f3e778f839934fc819cfa1040aabacecba01e049
-----Decoded View---------------
Arg [0] : _printerAddress (address): 0x89447f2Ca722481d1399ae08b4d7E9471883F6c8
Arg [1] : _registryContract (address): 0x96bF02E2Fb3D8f8AD6f61B3fF3fefE6740f84a9a
Arg [2] : _artContract (address): 0xF3E778F839934fC819cFA1040AabaCeCBA01e049
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000089447f2ca722481d1399ae08b4d7e9471883f6c8
Arg [1] : 00000000000000000000000096bf02e2fb3d8f8ad6f61b3ff3fefe6740f84a9a
Arg [2] : 000000000000000000000000f3e778f839934fc819cfa1040aabacecba01e049
Deployed Bytecode Sourcemap
9093:4603:0:-;;;;;;;;;-1:-1:-1;;;9093:4603:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9239:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9239:48:0;;;;;;;;-1:-1:-1;;;;;9239:48:0;;;;;;;;;;;;;;9294:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9294:41:0;;;;13448:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13448:243:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13448:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10973:690;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10973:690:0;;;;;9481:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9481:58:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9481:58:0;-1:-1:-1;;;;;9481:58:0;;;;;;;;;;;;;;;;;;;9344:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9344:21:0;;;;10136:719;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10136:719:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10136:719:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;10136:719:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10136:719:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;10136:719:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;10136:719:0;;-1:-1:-1;10136:719:0;;-1:-1:-1;;;;;10136:719:0;9546:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9546:64:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9546:64:0;-1:-1:-1;;;;;9546:64:0;;;12736:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12736:352:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12736:352:0;-1:-1:-1;;;;;12736:352:0;;;12392:332;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12392:332:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12392:332:0;;;13210:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13210:230:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13210:230:0;-1:-1:-1;;;;;13210:230:0;;;11671:703;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11671:703:0;-1:-1:-1;;;;;11671:703:0;;;9372:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9372:37:0;;;;9418:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9418:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9418:56:0;;;9239:48;;;-1:-1:-1;;;;;9239:48:0;;:::o;9294:41::-;;;-1:-1:-1;;;;;9294:41:0;;:::o;13448:243::-;13563:6;;13524:4;;-1:-1:-1;;;;;13563:6:0;13549:10;:20;;:52;;-1:-1:-1;13587:14:0;;-1:-1:-1;;;;;13587:14:0;13573:10;:28;13549:52;13541:61;;;;;;;;-1:-1:-1;;;;;;13613:39:0;;;;;;;;:29;:39;;;;;:48;13679:4;;13448:243::o;10973:690::-;11089:10;11038:18;11059:41;;;:29;:41;;;;;;;11119:15;;;:37;;-1:-1:-1;11150:6:0;;-1:-1:-1;;;;;11150:6:0;11138:10;:18;11119:37;:67;;;-1:-1:-1;11172:14:0;;-1:-1:-1;;;;;11172:14:0;11160:10;:26;11119:67;:122;;;;11201:11;;;;;;;;;-1:-1:-1;;;;;11201:11:0;-1:-1:-1;;;;;11201:38:0;;:40;;;;;-1:-1:-1;;;11201:40:0;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11201:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11201:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11201:40:0;11190:9;:51;11119:122;11111:160;;;;;;;-1:-1:-1;;;;;11111:160:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11111:160:0;;;;;;;;;;;;;;;11282:29;;;;:21;:29;;;;;:32;;;;;;11339:9;:11;11335:321;;;11371:14;;:34;;-1:-1:-1;;;;;11371:14:0;;;;11395:9;11371:34;;;;;:14;:34;:14;:34;11395:9;11371:14;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11371:34:0;11335:321;;;11462:6;;-1:-1:-1;;;;;11462:6:0;11450:10;:18;;:48;;-1:-1:-1;11484:14:0;;-1:-1:-1;;;;;11484:14:0;11472:10;:26;11450:48;11446:195;;;11522:7;;;11446:195;11607:10;11577:41;;;;:29;:41;;;;;:44;;-1:-1:-1;;11577:44:0;;;11446:195;10973:690;;;:::o;9481:58::-;;;;;;;;;;;;;:::o;9344:21::-;;;-1:-1:-1;;;;;9344:21:0;;:::o;10136:719::-;10223:16;10279:33;;;:21;:33;;;;;;;;;10378:10;10354:35;;:23;:35;;;;;;10422:16;;:36;;;;;;;;;;;;;10279:33;;10354:35;;-1:-1:-1;;;;;10422:16:0;;;;:24;;:36;;;;;;;;;;:16;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;10422:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10422:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10422:36:0;-1:-1:-1;;;;;10408:50:0;:10;:50;10400:84;;;;;-1:-1:-1;;;;;10400:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10520:1;10503:16;:18;:45;;;;10547:1;10525:20;:23;10503:45;10495:78;;;;;;;-1:-1:-1;;;;;10495:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10584:19;10606:11;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10606:11:0;;;;:16;;10623:10;;10635:21;;10606:51;;;;;;;;;;;;;10584:19;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10606:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10606:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10606:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10606:51:0;;-1:-1:-1;10690:1:0;10672:19;;10668:151;;;10704:33;;;;:21;:33;;;;;:36;;-1:-1:-1;;10704:36:0;;;10668:151;;;10793:10;10769:35;;;;:23;:35;;;;;:38;;-1:-1:-1;;10769:38:0;;;10668:151;10836:11;10136:719;-1:-1:-1;;;;;10136:719:0:o;9546:64::-;;;;;;;;;;;;;:::o;12736:352::-;-1:-1:-1;;;;;12825:35:0;;12803:19;12825:35;;;:23;:35;;;;;;;12879:16;;12871:62;;;;;-1:-1:-1;;;;;12871:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12964:6;;-1:-1:-1;;;;;12964:6:0;12952:10;:18;;:48;;-1:-1:-1;12986:14:0;;-1:-1:-1;;;;;12986:14:0;12974:10;:26;12952:48;12944:87;;;;;;;-1:-1:-1;;;;;12944:87:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12944:87:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13042:35:0;;;;;:23;:35;;;;;:38;;-1:-1:-1;;13042:38:0;;;12736:352::o;12392:332::-;12451:19;12473:29;;;:21;:29;;;;;;;12521:16;;12513:62;;;;;-1:-1:-1;;;;;12513:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12606:6;;-1:-1:-1;;;;;12606:6:0;12594:10;:18;;:48;;-1:-1:-1;12628:14:0;;-1:-1:-1;;;;;12628:14:0;12616:10;:26;12594:48;12586:87;;;;;;;-1:-1:-1;;;;;12586:87:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12586:87:0;;;;;;;;;;;;;;;-1:-1:-1;12684:29:0;;;;:21;:29;;;;;:32;;-1:-1:-1;;12684:32:0;;;12392:332::o;13210:230::-;13328:6;;13289:4;;-1:-1:-1;;;;;13328:6:0;13314:10;:20;;:52;;-1:-1:-1;13352:14:0;;-1:-1:-1;;;;;13352:14:0;13338:10;:28;13314:52;13306:61;;;;;;;;-1:-1:-1;13378:14:0;:32;;-1:-1:-1;;;;;13378:32:0;;-1:-1:-1;;13378:32:0;;;;;;;13210:230;;;:::o;11671:703::-;11795:10;11744:18;11765:41;;;:29;:41;;;;;;;11825:15;;;:37;;-1:-1:-1;11856:6:0;;-1:-1:-1;;;;;11856:6:0;11844:10;:18;11825:37;:67;;;-1:-1:-1;11878:14:0;;-1:-1:-1;;;;;11878:14:0;11866:10;:26;11825:67;:122;;;;11907:11;;;;;;;;;-1:-1:-1;;;;;11907:11:0;-1:-1:-1;;;;;11907:38:0;;:40;;;;;-1:-1:-1;;;11907:40:0;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11907:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11907:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11907:40:0;11896:9;:51;11825:122;11817:160;;;;;;;-1:-1:-1;;;;;11817:160:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11817:160:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11988:35:0;;;;;;:23;:35;;;;;:38;;;;;;12050:9;:11;12046:321;;;12082:14;;:34;;-1:-1:-1;;;;;12082:14:0;;;;12106:9;12082:34;;;;;:14;:34;:14;:34;12106:9;12082:14;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;9372:37:0;;;-1:-1:-1;;;;;9372:37:0;;:::o;9418:56::-;;;;;;;;;;;;;:::o
Swarm Source
bzzr://d3c610a120c22aa626c5d6df973f043d42f142030d92413d395e25de61dc58e8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.