Source Code
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 132396200 | 334 days ago | 0.000377 ETH | ||||
| 132067903 | 342 days ago | 0.000777 ETH | ||||
| 131636415 | 352 days ago | 0.000311 ETH | ||||
| 131635000 | 352 days ago | 0.000477 ETH | ||||
| 131604023 | 353 days ago | 0.000311 ETH | ||||
| 131569643 | 354 days ago | 0.001131 ETH | ||||
| 131569244 | 354 days ago | 0.000311 ETH | ||||
| 131568887 | 354 days ago | 0.000754 ETH | ||||
| 131564297 | 354 days ago | 0.000377 ETH | ||||
| 131425690 | 357 days ago | 0.000311 ETH | ||||
| 131344897 | 359 days ago | 0.0002888 ETH | ||||
| 131245004 | 361 days ago | 0.000533 ETH | ||||
| 131242943 | 361 days ago | 0.000377 ETH | ||||
| 131240134 | 361 days ago | 0.000477 ETH | ||||
| 131240112 | 361 days ago | 0.000333999 ETH | ||||
| 131239909 | 361 days ago | 0.000533 ETH | ||||
| 131239598 | 361 days ago | 0.000754 ETH | ||||
| 131233366 | 361 days ago | 0.000777 ETH | ||||
| 131232777 | 361 days ago | 0.000777 ETH | ||||
| 131227473 | 362 days ago | 0.000777 ETH | ||||
| 131208848 | 362 days ago | 0.000777 ETH | ||||
| 131200618 | 362 days ago | 0.000777 ETH | ||||
| 131200384 | 362 days ago | 0.000777 ETH | ||||
| 131199744 | 362 days ago | 0.000777 ETH | ||||
| 131199730 | 362 days ago | 0.000777 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BasicMintModule
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 250000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
import {IBasicMintModule, IConfigurable} from "create/interfaces/v1/IBasicMintModule.sol";
import {IMintPayout} from "create/interfaces/v1/IMintPayout.sol";
import {IMintContract} from "create/interfaces/v1/IMintContract.sol";
import {BasicMintConfiguration} from "create/interfaces/v1/BasicMintConfiguration.sol";
import {Version} from "create/contracts/v1/Version.sol";
contract BasicMintModule is IBasicMintModule, Version {
IMintPayout public immutable mintPayout;
mapping(address => BasicMintConfiguration) private _configurations;
mapping(address => mapping(address => uint256)) private _mintedByAddress;
mapping(address => uint256) public mintedByContract;
/// @notice Emitted when quantity is zero.
error InvalidQuantity();
/// @notice Emitted if the collector is minting too many tokens per transaction.
error TooManyTokensPerTransaction();
/// @notice Emitted if the collector is minting too many tokens per wallet.
error TooManyTokensPerCollector();
/// @notice Emitted if the collector is minting more tokens than this module is allowed to mint.
error TooManyTokensForModule();
/// @notice Emitted if the mint has not started yet.
error MintNotStarted();
/// @notice Emitted if the mint has ended.
error MintEnded();
/// @notice Emitted when the value sent is incorrect.
error IncorrectPayment();
/// @notice Emitted when the max supply is reached.
error MaxSupplyReached();
constructor(address _mintPayout) Version(1) {
mintPayout = IMintPayout(_mintPayout);
}
/// @inheritdoc IConfigurable
function updateConfiguration(bytes calldata args) external override {
BasicMintConfiguration memory _config = abi.decode(args, (BasicMintConfiguration));
_configurations[msg.sender] = _config;
emit ConfigurationUpdated(msg.sender, _config);
}
/// @inheritdoc IBasicMintModule
function configuration(address _contract) external view returns (BasicMintConfiguration memory) {
return _configurations[_contract];
}
/// @inheritdoc IBasicMintModule
function mint(address _contract, address _to, address _referrer, uint256 _quantity) external payable {
_mint(_contract, _to, _referrer, _quantity);
}
/// @inheritdoc IBasicMintModule
function mint_efficient_7e80c46e(address _contract, address _to, address _referrer, uint256 _quantity)
external
payable
{
_mint(_contract, _to, _referrer, _quantity);
}
/// @notice The implementation of the mint function.
/// @dev This is implemented as an internal function to share the logic between the `mint` and `mint_efficient_7e80c46e` functions.
/// See the documentation for those functions for information on the parameters.
function _mint(address _contract, address _to, address _referrer, uint256 _quantity) internal {
BasicMintConfiguration memory config = _configurations[_contract];
if (_quantity == 0) revert InvalidQuantity();
if (config.maxPerTransaction > 0 && _quantity > config.maxPerTransaction) revert TooManyTokensPerTransaction();
if (config.maxPerWallet > 0) {
if (_mintedByAddress[_contract][_to] + _quantity > config.maxPerWallet) {
revert TooManyTokensPerCollector();
}
}
if (config.maxForModule > 0 && mintedByContract[_contract] + _quantity > config.maxForModule) {
revert TooManyTokensForModule();
}
if (block.timestamp < config.mintStart) revert MintNotStarted();
if (config.mintEnd > 0 && block.timestamp > config.mintEnd) revert MintEnded();
uint256 protocolFee = mintPayout.protocolFee();
if (msg.value != (config.price + protocolFee) * _quantity) revert IncorrectPayment();
if (config.maxSupply > 0 && IMintContract(_contract).totalMinted() + _quantity > config.maxSupply) {
revert MaxSupplyReached();
}
_mintedByAddress[_contract][_to] += _quantity;
mintedByContract[_contract] += _quantity;
mintPayout.mintDeposit{value: msg.value}(_contract, msg.sender, _referrer, _quantity);
IMintContract(_contract).mint(_to, _quantity);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
import {BasicMintConfiguration} from "create/interfaces/v1/BasicMintConfiguration.sol";
import {IConfigurable} from "create/interfaces/v1/IConfigurable.sol";
interface IBasicMintModuleEvents {
/// @notice Emitted when a contract's basic mint configuration is updated.
/// @param _contract The address of the contract being configured.
/// @param _config The new configuration.
event ConfigurationUpdated(address indexed _contract, BasicMintConfiguration _config);
}
interface IBasicMintModule is IConfigurable, IBasicMintModuleEvents {
/// @notice Retrieves the basic minting configuration for a contract.
/// @param _contract The address of the contract.
/// @return The current minting configuration.
function configuration(address _contract) external view returns (BasicMintConfiguration memory);
/// @notice Mints tokens for a NFT contract to a recipient.
/// @dev Reverts if the mint does not work in the current configuration.
/// @param _contract The address of the contract to mint for.
/// @param _to The recipient of the tokens.
/// @param _referrer The referrer of this mint, or the zero address if none.
/// @param _quantity The quantity of tokens to mint.
function mint(address _contract, address _to, address _referrer, uint256 _quantity) external payable;
/// @notice Mints tokens for a NFT contract to a recipient.
/// @dev Reverts if the mint does not work in the current configuration.
/// This function is preferred over `mint` because the four byte signature is 0x00000000 which is cheaper to call.
/// The implementation is identical to `mint`.
/// @param _contract The address of the contract to mint for.
/// @param _to The recipient of the tokens.
/// @param _referrer The referrer of this mint, or the zero address if none.
/// @param _quantity The quantity of tokens to mint.
function mint_efficient_7e80c46e(address _contract, address _to, address _referrer, uint256 _quantity)
external
payable;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
interface IMintPayoutEvents {
/// @notice Emitted when a deposit has been made.
/// @param from The depositor's address.
/// @param to The address receiving the deposit.
/// @param reason The reason code for the deposit.
/// @param amount The deposit amount.
event Deposit(address from, address to, bytes4 reason, uint256 amount);
/// @notice Emitted when a withdrawal has been made.
/// @param from The address withdrawing.
/// @param to The address receiving the withdrawn funds.
/// @param amount The withdrawal amount.
event Withdraw(address from, address to, uint256 amount);
/// @notice Emitted during a mint deposit to provide additional context.
/// @param depositedBy The address of the mint initiator.
/// @param mintContract The mint contract address this mint deposit refers to.
/// @param minter The address of the person minting.
/// @param referrer The address of the referrer, or the zero address for no referrer.
/// @param creator The address of the contract creator, or the protocol fee recipient if none.
/// @param creatorPayout The amount being paid to the creator.
/// @param referralPayout The amount being paid to the referrer.
/// @param protocolPayout The amount being paid to the protocol.
/// @param totalAmount The total deposit amount.
/// @param quantity The number of tokens being minted.
/// @param protocolFee The per-mint fee for the protocol.
event MintDeposit(
address depositedBy,
address mintContract,
address minter,
address referrer,
address creator,
uint256 creatorPayout,
uint256 referralPayout,
uint256 protocolPayout,
uint256 totalAmount,
uint256 quantity,
uint256 protocolFee
);
/// @notice Emitted when the protocol fee is updated.
/// @param fee The new protocol fee.
event ProtocolFeeUpdated(uint256 fee);
}
interface IMintPayout is IMintPayoutEvents {
function balanceOf(address owner) external view returns (uint256);
function totalSupply() external view returns (uint256);
/// @notice The current protocol fee per-mint.
function protocolFee() external view returns (uint256 fee);
/// @notice Sets the protocol fee per-mint.
/// @dev Only callable by the owner.
/// @param fee The new protocol fee.
function setProtocolFee(uint256 fee) external;
/// @notice Magic value used to represent the fees belonging to the protocol.
function protocolFeeRecipientAccount() external view returns (address);
/// @notice Withdraws from the protocol fee balance.
/// @dev Only callable by the owner.
/// @param to The address receiving the withdrawn funds.
/// @param amount The withdrawal amount.
function withdrawProtocolFee(address to, uint256 amount) external;
/// @notice Deposits ether for a mint.
/// @dev Ensure that `quantity` is > 0. The `protocolFee` should be per-mint, not the total taken.
/// Will trigger a `MintDeposit` event, followed by `Deposit` events for:
/// creator payout, protocol payout, and referrer payout (if a referrer is specified).
/// @param mintContract The mint contract address this mint deposit refers to.
/// @param minter The address of the minter.
/// @param referrer The address of the referrer, or the zero address for no referrer.
/// @param quantity The amount being minted.
function mintDeposit(address mintContract, address minter, address referrer, uint256 quantity) external payable;
/// @notice Deposits ether to an address.
/// @param to The address receiving the deposit.
/// @param reason The reason code for the deposit.
function deposit(address to, bytes4 reason) external payable;
/// @notice Deposits ether to multiple addresses.
/// @dev The length of `recipients`, `amounts`, and `reasons` must be the same.
/// @param recipients List of addresses receiving the deposits.
/// @param amounts List of deposit amounts.
/// @param reasons List of reason codes for the deposits.
function depositBatch(address[] calldata recipients, uint256[] calldata amounts, bytes4[] calldata reasons)
external
payable;
/// @notice Withdraws ether from the `msg.sender`'s account to a specified address.
/// @param to The address receiving the withdrawn funds.
/// @param amount The withdrawal amount.
function withdraw(address to, uint256 amount) external;
/// @notice Withdraws all ether from the `msg.sender`'s account to a specified address.
/// @param to The address receiving the withdrawn funds.
function withdrawAll(address to) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
import {IMetadataRenderer} from "create/interfaces/v1/IMetadataRenderer.sol";
interface IMintContractEvents {
/// @notice Emitted when the royalty is updated.
event RoyaltyUpdated(uint256 bps);
/// @notice Emitted when a new mint module is added.
event ModuleAdded(address module);
/// @notice Emitted when a mint module is removed.
event ModuleRemoved(address module);
/// @notice Emitted when the metadata renderer is updated.
event MetadataRendererUpdated(address renderer);
}
interface IMintContract is IMintContractEvents {
/// @notice Mints tokens using approved mint modules.
/// @param to The address receiving the minted tokens.
/// @param quantity The quantity of tokens to mint.
function mint(address to, uint256 quantity) external;
/// @notice Mints tokens, callable only by the contract owner.
/// @param to The address receiving the minted tokens.
/// @param quantity The quantity of tokens to mint.
function adminMint(address to, uint256 quantity) external;
/// @notice Retrieves the payout recipient address for this mint contract.
/// @return recipient address of the payout recipient.
function payoutRecipient() external view returns (address recipient);
/// @notice Returns the total number of tokens minted.
/// @return total number of tokens minted.
function totalMinted() external view returns (uint256 total);
/// @notice Adds a new mint module as an approved minter.
/// @dev Can only be executed by the owner of the contract.
/// Must be approved in the MintModuleRegistry.
/// @param mintModule The contract address of the mint module.
function addMintModule(address mintModule) external;
/// @notice Removes a mint module as an approved minter.
/// @dev Can only be executed by the owner of the contract.
/// @param mintModule The contract address of the mint module.
function removeMintModule(address mintModule) external;
/// @notice Returns whether a mint module is approved.
/// @param mintModule The contract address of the mint module.
/// @return isApproved Whether the mint module is approved.
function isMintModuleApproved(address mintModule) external view returns (bool isApproved);
/// @notice Updates configuration located in an external contract.
/// @dev Can only be executed by the owner of the contract.
/// The cardinality of `configurables` and `configData` must be the same.
/// @param configurables The contract addresses to configure.
/// @param configData The configuration data for the contracts.
function updateExternalConfiguration(address[] calldata configurables, bytes[] calldata configData) external;
/// @notice Sets the metadata renderer.
/// @dev This will not request a metadata refresh. If needed, call `refreshMetadata`.
/// @param renderer The new metadata renderer.
function setMetadataRenderer(IMetadataRenderer renderer) external;
/// @notice Returns the metadata renderer for this contract.
/// @return metadataRenderer The metadata renderer.
function metadataRenderer() external returns (IMetadataRenderer metadataRenderer);
/// @notice Triggers a batch metadata update.
function refreshMetadata() external;
/// @notice Updates the royalty for this contract.
/// @dev Can only be called by the contract owner.
/// Emits a `RoyaltyUpdated` event.
/// @param bps The new royalty.
function setRoyalty(uint256 bps) external;
/// @notice Returns the royalty for this contract.
/// @return bps The royalty.
function royaltyBps() external returns (uint256 bps);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
struct BasicMintConfiguration {
/// @notice Purchase cost per token.
uint256 price;
/// @notice UNIX timestamp of mint start.
uint64 mintStart;
/// @notice UNIX timestamp of mint end, or zero if open-ended.
uint64 mintEnd;
/// @notice Maximum token purchase limit per wallet, or zero if no limit.
uint32 maxPerWallet;
/// @notice Maximum tokens mintable per transaction, or zero if no limit.
uint32 maxPerTransaction;
/// @notice Maximum tokens mintable by this module, or zero if no limit.
uint32 maxForModule;
/// @notice Maximum tokens that can be minted in total, or zero if no max.
uint32 maxSupply;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
abstract contract Version {
/// @notice The version of the contract.
uint32 public immutable contractVersion;
constructor(uint32 _contractVersion) {
contractVersion = _contractVersion;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
interface IConfigurable {
/// @notice Updates the configuration for the calling contract.
/// @param data The configuration data.
function updateConfiguration(bytes calldata data) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
interface IMetadataRenderer {
/// @notice Retrieves the token URI for the specified token ID.
/// @param tokenId The ID of the token.
/// @return uri The URI of the token.
function tokenURI(uint256 tokenId) external view returns (string memory uri);
}{
"remappings": [
"ERC721A/=lib/ERC721A/contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"openzeppelin/=lib/openzeppelin-contracts/contracts/",
"solmate/=lib/solmate/src/",
"solady/=lib/solady/src/",
"fundrop/=src/Fundrop/",
"operator-filter-registry/=lib/operator-filter-registry/src/",
"base64/=lib/base64/",
"create/=src/Create/",
"erc4626-tests/=lib/operator-filter-registry/lib/openzeppelin-contracts/lib/erc4626-tests/",
"erc721a-upgradeable/=lib/erc721a-upgradeable/contracts/",
"openzeppelin-contracts-upgradeable/=lib/operator-filter-registry/lib/openzeppelin-contracts-upgradeable/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"optimizer": {
"enabled": true,
"runs": 250000
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_mintPayout","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IncorrectPayment","type":"error"},{"inputs":[],"name":"InvalidQuantity","type":"error"},{"inputs":[],"name":"MaxSupplyReached","type":"error"},{"inputs":[],"name":"MintEnded","type":"error"},{"inputs":[],"name":"MintNotStarted","type":"error"},{"inputs":[],"name":"TooManyTokensForModule","type":"error"},{"inputs":[],"name":"TooManyTokensPerCollector","type":"error"},{"inputs":[],"name":"TooManyTokensPerTransaction","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_contract","type":"address"},{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"mintStart","type":"uint64"},{"internalType":"uint64","name":"mintEnd","type":"uint64"},{"internalType":"uint32","name":"maxPerWallet","type":"uint32"},{"internalType":"uint32","name":"maxPerTransaction","type":"uint32"},{"internalType":"uint32","name":"maxForModule","type":"uint32"},{"internalType":"uint32","name":"maxSupply","type":"uint32"}],"indexed":false,"internalType":"struct BasicMintConfiguration","name":"_config","type":"tuple"}],"name":"ConfigurationUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"configuration","outputs":[{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"mintStart","type":"uint64"},{"internalType":"uint64","name":"mintEnd","type":"uint64"},{"internalType":"uint32","name":"maxPerWallet","type":"uint32"},{"internalType":"uint32","name":"maxPerTransaction","type":"uint32"},{"internalType":"uint32","name":"maxForModule","type":"uint32"},{"internalType":"uint32","name":"maxSupply","type":"uint32"}],"internalType":"struct BasicMintConfiguration","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractVersion","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPayout","outputs":[{"internalType":"contract IMintPayout","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"mint_efficient_7e80c46e","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mintedByContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"args","type":"bytes"}],"name":"updateConfiguration","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c060405234801561001057600080fd5b50604051610fbb380380610fbb83398101604081905261002f91610045565b60016080526001600160a01b031660a052610075565b60006020828403121561005757600080fd5b81516001600160a01b038116811461006e57600080fd5b9392505050565b60805160a051610f136100a8600039600081816102a1015281816108e00152610b72015260006102580152610f136000f3fe60806040526004361061006b5760003560e01c8063a0a8e4601161004e578063a0a8e46014610246578063abb162d01461028f578063bf89fcd3146102e8578063efed70711461032357600080fd5b8015610070578063815138921461007057806387f2f93114610085575b600080fd5b61008361007e366004610c8a565b610343565b005b34801561009157600080fd5b506101c76100a0366004610cd5565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525073ffffffffffffffffffffffffffffffffffffffff1660009081526020818152604091829020825160e0810184528154815260019091015467ffffffffffffffff808216938301939093526801000000000000000081049092169281019290925263ffffffff7001000000000000000000000000000000008204811660608401527401000000000000000000000000000000000000000082048116608084015278010000000000000000000000000000000000000000000000008204811660a08401527c01000000000000000000000000000000000000000000000000000000009091041660c082015290565b60405161023d9190600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390f35b34801561025257600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161023d565b34801561029b57600080fd5b506102c37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023d565b3480156102f457600080fd5b50610315610303366004610cd5565b60026020526000908152604090205481565b60405190815260200161023d565b34801561032f57600080fd5b5061008361033e366004610cf7565b610355565b61034f84848484610591565b50505050565b600061036382840184610d95565b3360008181526020818152604091829020845181559084015160019091018054838601516060870151608088015160a089015160c08a015163ffffffff9081167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9282167801000000000000000000000000000000000000000000000000029290921677ffffffffffffffffffffffffffffffffffffffffffffffff93821674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9290951670010000000000000000000000000000000002919091167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff67ffffffffffffffff96871668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909816969099169590951795909517969096169290921717161791909117905551919250907f347dcf024ff81ae3ee3e6af91c3857828fc485ff63fa538cd22952fe2d7f836c90610584908490600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320815160e0810183528154815260019091015467ffffffffffffffff808216948301949094526801000000000000000081049093169181019190915263ffffffff7001000000000000000000000000000000008304811660608301527401000000000000000000000000000000000000000083048116608083015278010000000000000000000000000000000000000000000000008304811660a08301527c010000000000000000000000000000000000000000000000000000000090920490911660c0820152908290036106b7576040517f524f409b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816080015163ffffffff161180156106da5750806080015163ffffffff1682115b15610711576040517fbd8860f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015163ffffffff16156107a557606081015173ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209389168352929052205463ffffffff9091169061076d908490610e94565b11156107a5576040517fb1c9261900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160a0015163ffffffff161180156107fb575060a081015173ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604090205463ffffffff909116906107f9908490610e94565b115b15610832576040517fc0a8c7b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015167ffffffffffffffff1642101561087a576040517f06290e4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040015167ffffffffffffffff161180156108a55750806040015167ffffffffffffffff1642115b156108dc576040517f49084b9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b0e21e8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190610ead565b9050828183600001516109809190610e94565b61098a9190610ec6565b34146109c2576040517f569e8c1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260c0015163ffffffff16118015610a5e57508160c0015163ffffffff16838773ffffffffffffffffffffffffffffffffffffffff1663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190610ead565b610a5c9190610e94565b115b15610a95576040517fd05cb60900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808716600090815260016020908152604080832093891683529290529081208054859290610ad9908490610e94565b909155505073ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604081208054859290610b13908490610e94565b90915550506040517f0fea4a2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301523360248301528581166044830152606482018590527f00000000000000000000000000000000000000000000000000000000000000001690630fea4a299034906084016000604051808303818588803b158015610bb757600080fd5b505af1158015610bcb573d6000803e3d6000fd5b50506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018890528a1693506340c10f1992506044019050600060405180830381600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b50505050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c8557600080fd5b919050565b60008060008060808587031215610ca057600080fd5b610ca985610c61565b9350610cb760208601610c61565b9250610cc560408601610c61565b9396929550929360600135925050565b600060208284031215610ce757600080fd5b610cf082610c61565b9392505050565b60008060208385031215610d0a57600080fd5b823567ffffffffffffffff80821115610d2257600080fd5b818501915085601f830112610d3657600080fd5b813581811115610d4557600080fd5b866020828501011115610d5757600080fd5b60209290920196919550909350505050565b803567ffffffffffffffff81168114610c8557600080fd5b803563ffffffff81168114610c8557600080fd5b600060e08284031215610da757600080fd5b60405160e0810181811067ffffffffffffffff82111715610df1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152610e0460208401610d69565b6020820152610e1560408401610d69565b6040820152610e2660608401610d81565b6060820152610e3760808401610d81565b6080820152610e4860a08401610d81565b60a0820152610e5960c08401610d81565b60c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea757610ea7610e65565b92915050565b600060208284031215610ebf57600080fd5b5051919050565b8082028115828204841417610ea757610ea7610e6556fea2646970667358221220f9bd0d184e7baaf68125fda59f92c4c43b864e6edf443ce2f0d5a9eb8bbdd54464736f6c6343000815003300000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a
Deployed Bytecode
0x60806040526004361061006b5760003560e01c8063a0a8e4601161004e578063a0a8e46014610246578063abb162d01461028f578063bf89fcd3146102e8578063efed70711461032357600080fd5b8015610070578063815138921461007057806387f2f93114610085575b600080fd5b61008361007e366004610c8a565b610343565b005b34801561009157600080fd5b506101c76100a0366004610cd5565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525073ffffffffffffffffffffffffffffffffffffffff1660009081526020818152604091829020825160e0810184528154815260019091015467ffffffffffffffff808216938301939093526801000000000000000081049092169281019290925263ffffffff7001000000000000000000000000000000008204811660608401527401000000000000000000000000000000000000000082048116608084015278010000000000000000000000000000000000000000000000008204811660a08401527c01000000000000000000000000000000000000000000000000000000009091041660c082015290565b60405161023d9190600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390f35b34801561025257600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000181565b60405163ffffffff909116815260200161023d565b34801561029b57600080fd5b506102c37f00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023d565b3480156102f457600080fd5b50610315610303366004610cd5565b60026020526000908152604090205481565b60405190815260200161023d565b34801561032f57600080fd5b5061008361033e366004610cf7565b610355565b61034f84848484610591565b50505050565b600061036382840184610d95565b3360008181526020818152604091829020845181559084015160019091018054838601516060870151608088015160a089015160c08a015163ffffffff9081167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9282167801000000000000000000000000000000000000000000000000029290921677ffffffffffffffffffffffffffffffffffffffffffffffff93821674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9290951670010000000000000000000000000000000002919091167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff67ffffffffffffffff96871668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909816969099169590951795909517969096169290921717161791909117905551919250907f347dcf024ff81ae3ee3e6af91c3857828fc485ff63fa538cd22952fe2d7f836c90610584908490600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320815160e0810183528154815260019091015467ffffffffffffffff808216948301949094526801000000000000000081049093169181019190915263ffffffff7001000000000000000000000000000000008304811660608301527401000000000000000000000000000000000000000083048116608083015278010000000000000000000000000000000000000000000000008304811660a08301527c010000000000000000000000000000000000000000000000000000000090920490911660c0820152908290036106b7576040517f524f409b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816080015163ffffffff161180156106da5750806080015163ffffffff1682115b15610711576040517fbd8860f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015163ffffffff16156107a557606081015173ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209389168352929052205463ffffffff9091169061076d908490610e94565b11156107a5576040517fb1c9261900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160a0015163ffffffff161180156107fb575060a081015173ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604090205463ffffffff909116906107f9908490610e94565b115b15610832576040517fc0a8c7b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015167ffffffffffffffff1642101561087a576040517f06290e4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040015167ffffffffffffffff161180156108a55750806040015167ffffffffffffffff1642115b156108dc576040517f49084b9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a73ffffffffffffffffffffffffffffffffffffffff1663b0e21e8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190610ead565b9050828183600001516109809190610e94565b61098a9190610ec6565b34146109c2576040517f569e8c1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260c0015163ffffffff16118015610a5e57508160c0015163ffffffff16838773ffffffffffffffffffffffffffffffffffffffff1663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190610ead565b610a5c9190610e94565b115b15610a95576040517fd05cb60900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808716600090815260016020908152604080832093891683529290529081208054859290610ad9908490610e94565b909155505073ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604081208054859290610b13908490610e94565b90915550506040517f0fea4a2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301523360248301528581166044830152606482018590527f00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a1690630fea4a299034906084016000604051808303818588803b158015610bb757600080fd5b505af1158015610bcb573d6000803e3d6000fd5b50506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018890528a1693506340c10f1992506044019050600060405180830381600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b50505050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c8557600080fd5b919050565b60008060008060808587031215610ca057600080fd5b610ca985610c61565b9350610cb760208601610c61565b9250610cc560408601610c61565b9396929550929360600135925050565b600060208284031215610ce757600080fd5b610cf082610c61565b9392505050565b60008060208385031215610d0a57600080fd5b823567ffffffffffffffff80821115610d2257600080fd5b818501915085601f830112610d3657600080fd5b813581811115610d4557600080fd5b866020828501011115610d5757600080fd5b60209290920196919550909350505050565b803567ffffffffffffffff81168114610c8557600080fd5b803563ffffffff81168114610c8557600080fd5b600060e08284031215610da757600080fd5b60405160e0810181811067ffffffffffffffff82111715610df1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152610e0460208401610d69565b6020820152610e1560408401610d69565b6040820152610e2660608401610d81565b6060820152610e3760808401610d81565b6080820152610e4860a08401610d81565b60a0820152610e5960c08401610d81565b60c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea757610ea7610e65565b92915050565b600060208284031215610ebf57600080fd5b5051919050565b8082028115828204841417610ea757610ea7610e6556fea2646970667358221220f9bd0d184e7baaf68125fda59f92c4c43b864e6edf443ce2f0d5a9eb8bbdd54464736f6c63430008150033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a
-----Decoded View---------------
Arg [0] : _mintPayout (address): 0x00528E0000006f0000DcBE2F0065011D1Fcd411a
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a
Loading...
Loading
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.