Contract 0x4056334cdCa09A54AD0e99c195a8de321406c242 7

Contract Overview

Balance:
0 MATIC
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xe46cca13c0e42955a4df13f8dd4353399d532ad744bb18d684a2a283b61c68d7Deploy DCNT721A343354002023-04-13 20:24:0352 days 1 hr ago0xc04afd2639b0c7c9662e3d7b4858d7db28413e4e IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000883216509 1.500000016
0x06e68deadb15944135a61abe98af4fbffffda8af2d0db8d2177e8c0ed87066c2Deploy DCNT721A343320732023-04-13 18:26:1352 days 3 hrs ago0xc04afd2639b0c7c9662e3d7b4858d7db28413e4e IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.001049199446 1.781677255
0x9d3b585ab49123aae4cc3cb0c74e8d36aa1c258f3bf50b2f899784dc51050a26Deploy DCNT721A340136812023-04-05 22:29:5159 days 23 hrs ago0x66bafad3216e1268e6008917150dafd4945e9444 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000853420509 1.500000016
0x84cc2b332197b9f442556926f8cd55a479d7a4aada5e6c537e0ba360b0d9d6afDeploy DCNT721A340078092023-04-05 19:01:5360 days 2 hrs ago0x66bafad3216e1268e6008917150dafd4945e9444 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000823552509 1.500000017
0xe28905fec10b98c0f087842436ade00425d42e3b889b67a8636bcb9a10b139e3Deploy DCNT721A323828512023-02-24 19:45:18100 days 2 hrs ago0x08f4f0bc0382bc68916dab13cfd956332fabe482 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.001177309203 2.474243114
0xc4cb65852548959808750319b01085c60815f7aee3bda60b994a94f00df5780bDeploy DCNT721A323044202023-02-22 21:27:21102 days 28 mins ago0xcfbf34d385ea2d5eb947063b67ea226dcda3dc38 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000811562091 1.769257801
0xd212f382383534cd53c7576ea36ea95cfabf7137d5be190b4a45a9b7bc7ba508Deploy DCNT Cres...322635382023-02-21 15:45:45103 days 6 hrs ago0xdc4471ee9dfca619ac5465fde7cf2634253a9dc6 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000922020009 1.650000017
0x356ef82e3b3b729d963419fb4607fe801f30f63b2eb6cfd39e785301d0bbbe13Deploy DCNT721A321995942023-02-19 15:11:53105 days 6 hrs ago0xc28becc8d1e25d54a3eac9663d04d43b5bf5700f IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000749494507 1.500000016
0x29497d2181bd813dd4ca96ecb7df96bbc4f0f36b2df4799d6e735787558fcf53Deploy DCNT4907A321993362023-02-19 15:01:09105 days 6 hrs ago0xc28becc8d1e25d54a3eac9663d04d43b5bf5700f IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000949533009 1.500000015
0x86cccf8314a41abef11fa8dbe47e7fe6fd79d83f021654dd594b15d44b7f9f9eDeploy DCNT721A321443922023-02-17 20:10:41107 days 1 hr ago0x42482720814c465583cc79766a82623f79e4ad2d IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.001188109512 1.500000016
0x37b2638d551270fdb1b334d425256c1df478652f0f3c87f717a1626ad69125caDeploy DCNT4907A320883912023-02-16 1:45:57108 days 20 hrs ago0x5d7370fcd6e446bbc14a64c1effe5fbb1c893232 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000687472506 1.500000015
0x5af4599270bb68b059300baa22de7f1b01ea16a11d2606e7daa49ef0bb6b1a7dDeploy DCNT721A320802742023-02-15 19:20:05109 days 2 hrs ago0xcfbf34d385ea2d5eb947063b67ea226dcda3dc38 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.001234400182 2.425000015
0x5ea4c7e13ce79919a4d1ac26bf42575e6adba672fb311041a1cc5acefb35ad75Deploy DCNT721A319138892023-02-10 14:44:57114 days 7 hrs ago0x5d7370fcd6e446bbc14a64c1effe5fbb1c893232 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000957080959 1.734605921
0x9a5a74bc03c60c873873011696eea1fd8b4edfd7554becef8e29390931865e90Deploy DCNT721A317920382023-02-06 17:45:49118 days 4 hrs ago0x699f45fbdafbbed7ce577bd6484c049dcb8519ad IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.00098268451 1.500000016
0xb5296c783319700044e4e4a3a68ff89925572476d86a6c768c01c3e65168f416Deploy DCNT4907A314784382023-01-27 17:26:17128 days 4 hrs ago0x2ba62a52b9244b4e45ba52cc0b1f8d39b522025d IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.00906376536 17.46
0x0922056ddeb244d22fe1594ae10c1a3a3ad0b8f7e01f87308b67450ac2fb89c5Deploy DCNT Cres...314783212023-01-27 17:22:09128 days 4 hrs ago0x2ba62a52b9244b4e45ba52cc0b1f8d39b522025d IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000968071438 1.707733518
0xcff7cdd99fe6936ebf48537571a154047c652d29bd8a01c8afdae413ba2dc2e1Deploy DCNT4907A314779572023-01-27 17:09:15128 days 4 hrs ago0x755bdae53b234c6d1b7be9ce7f316cf8f03f2533 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.001155085707 2.425000016
0x8552026ae58764155ba76640069228a446ba52a3e883d97c332a0afc0f054c87Deploy DCNT Cres...314052802023-01-25 22:08:20129 days 23 hrs ago0xd1ef2ea765f03c3696e19fcbda511fcab42c9937 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000765144007 1.500000015
0xb9180b2b5c6613884fbfad9b52df284dd46be5e1fe969f45df4371fa961a72b1Deploy ZK Editio...312459662023-01-21 23:51:03133 days 22 hrs ago0x2954dbfbbdf8dafd86c8dcace63b26796ef2bf52 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000729573007 1.500000015
0x9e14d84dddb4cab55fc6c7a58ad1badbac6a4dc99b54b82748640baa97c956d7Deploy ZK Editio...312424972023-01-21 21:48:13134 days 7 mins ago0x2954dbfbbdf8dafd86c8dcace63b26796ef2bf52 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000729501007 1.500000015
0x68d2b0de4a92b4432b68de993c4cd847f38a79879175bf9b09ad44fb3d56644aDeploy ZK Editio...312355172023-01-21 17:40:51134 days 4 hrs ago0xdc4471ee9dfca619ac5465fde7cf2634253a9dc6 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000729555007 1.500000015
0xa18e128370f5de60a1106b4f731a1191fb8fbabf83281e2d58d3b4e9d9b526ccDeploy ZK Editio...311916302023-01-20 15:44:14135 days 6 hrs ago0xdc4471ee9dfca619ac5465fde7cf2634253a9dc6 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000729735007 1.500000016
0x1b7daa97168a8dd5cbde81f4acd62a374de06c72993c027b38218e2d8c75d103Deploy DCNT721A311912292023-01-20 15:30:02135 days 6 hrs ago0xcfbf34d385ea2d5eb947063b67ea226dcda3dc38 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000819622508 1.500000016
0x3f656ff800a74eb2fdf01af2db9d6e9e3a6f2503d6a57a74ca040b6e12420da0Deploy ZK Editio...311638052023-01-19 23:17:43135 days 22 hrs ago0x2954dbfbbdf8dafd86c8dcace63b26796ef2bf52 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.000729501007 1.500000015
0xa3b0d54cf93efa4e9a167ae29bdcaf6923454ca8ccaead74d211a32a1ef06d21Deploy ZK Editio...311637022023-01-19 23:14:05135 days 22 hrs ago0x2954dbfbbdf8dafd86c8dcace63b26796ef2bf52 IN  0x4056334cdca09a54ad0e99c195a8de321406c2420 MATIC0.001109659784 2.281682516
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe46cca13c0e42955a4df13f8dd4353399d532ad744bb18d684a2a283b61c68d7343354002023-04-13 20:24:0352 days 1 hr ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x06e68deadb15944135a61abe98af4fbffffda8af2d0db8d2177e8c0ed87066c2343320732023-04-13 18:26:1352 days 3 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x9d3b585ab49123aae4cc3cb0c74e8d36aa1c258f3bf50b2f899784dc51050a26340136812023-04-05 22:29:5159 days 23 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x84cc2b332197b9f442556926f8cd55a479d7a4aada5e6c537e0ba360b0d9d6af340078092023-04-05 19:01:5360 days 2 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xe28905fec10b98c0f087842436ade00425d42e3b889b67a8636bcb9a10b139e3323828512023-02-24 19:45:18100 days 2 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xc4cb65852548959808750319b01085c60815f7aee3bda60b994a94f00df5780b323044202023-02-22 21:27:21102 days 28 mins ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xd212f382383534cd53c7576ea36ea95cfabf7137d5be190b4a45a9b7bc7ba508322635382023-02-21 15:45:45103 days 6 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x356ef82e3b3b729d963419fb4607fe801f30f63b2eb6cfd39e785301d0bbbe13321995942023-02-19 15:11:53105 days 6 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x29497d2181bd813dd4ca96ecb7df96bbc4f0f36b2df4799d6e735787558fcf53321993362023-02-19 15:01:09105 days 6 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x86cccf8314a41abef11fa8dbe47e7fe6fd79d83f021654dd594b15d44b7f9f9e321443922023-02-17 20:10:41107 days 1 hr ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x37b2638d551270fdb1b334d425256c1df478652f0f3c87f717a1626ad69125ca320883912023-02-16 1:45:57108 days 20 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x5af4599270bb68b059300baa22de7f1b01ea16a11d2606e7daa49ef0bb6b1a7d320802742023-02-15 19:20:05109 days 2 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x5ea4c7e13ce79919a4d1ac26bf42575e6adba672fb311041a1cc5acefb35ad75319138892023-02-10 14:44:57114 days 7 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x9a5a74bc03c60c873873011696eea1fd8b4edfd7554becef8e29390931865e90317920382023-02-06 17:45:49118 days 4 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xb5296c783319700044e4e4a3a68ff89925572476d86a6c768c01c3e65168f416314784382023-01-27 17:26:17128 days 4 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x0922056ddeb244d22fe1594ae10c1a3a3ad0b8f7e01f87308b67450ac2fb89c5314783212023-01-27 17:22:09128 days 4 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xcff7cdd99fe6936ebf48537571a154047c652d29bd8a01c8afdae413ba2dc2e1314779572023-01-27 17:09:15128 days 4 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x8552026ae58764155ba76640069228a446ba52a3e883d97c332a0afc0f054c87314052802023-01-25 22:08:20129 days 23 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xb9180b2b5c6613884fbfad9b52df284dd46be5e1fe969f45df4371fa961a72b1312459662023-01-21 23:51:03133 days 22 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x9e14d84dddb4cab55fc6c7a58ad1badbac6a4dc99b54b82748640baa97c956d7312424972023-01-21 21:48:13134 days 7 mins ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x68d2b0de4a92b4432b68de993c4cd847f38a79879175bf9b09ad44fb3d56644a312355172023-01-21 17:40:51134 days 4 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xa18e128370f5de60a1106b4f731a1191fb8fbabf83281e2d58d3b4e9d9b526cc311916302023-01-20 15:44:14135 days 6 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x1b7daa97168a8dd5cbde81f4acd62a374de06c72993c027b38218e2d8c75d103311912292023-01-20 15:30:02135 days 6 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0x3f656ff800a74eb2fdf01af2db9d6e9e3a6f2503d6a57a74ca040b6e12420da0311638052023-01-19 23:17:43135 days 22 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
0xa3b0d54cf93efa4e9a167ae29bdcaf6923454ca8ccaead74d211a32a1ef06d21311637022023-01-19 23:14:05135 days 22 hrs ago 0x4056334cdca09a54ad0e99c195a8de321406c242  Contract Creation0 MATIC
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x006A667D701088243238A4Af19A2543fd37b1C6A

Contract Name:
DCNTSDK

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 9 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 2 of 9 : Clones.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (proxy/Clones.sol)

pragma solidity ^0.8.0;

/**
 * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
 * deploying minimal proxy contracts, also known as "clones".
 *
 * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
 * > a minimal bytecode implementation that delegates all calls to a known, fixed address.
 *
 * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
 * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
 * deterministic method.
 *
 * _Available since v3.4._
 */
library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create opcode, which should never revert.
     */
    function clone(address implementation) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create(0, 0x09, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create2(0, 0x09, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        /// @solidity memory-safe-assembly
        assembly {
            let ptr := mload(0x40)
            mstore(add(ptr, 0x38), deployer)
            mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)
            mstore(add(ptr, 0x14), implementation)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)
            mstore(add(ptr, 0x58), salt)
            mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))
            predicted := keccak256(add(ptr, 0x43), 0x55)
        }
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(address implementation, bytes32 salt)
        internal
        view
        returns (address predicted)
    {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

File 3 of 9 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 4 of 9 : DCNTSDK.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/*
 ______   _______  _______  _______  _       _________
(  __  \ (  ____ \(  ____ \(  ____ \( (    /|\__   __/
| (  \  )| (    \/| (    \/| (    \/|  \  ( |   ) (
| |   ) || (__    | |      | (__    |   \ | |   | |
| |   | ||  __)   | |      |  __)   | (\ \) |   | |
| |   ) || (      | |      | (      | | \   |   | |
| (__/  )| (____/\| (____/\| (____/\| )  \  |   | |
(______/ (_______/(_______/(_______/|/    )_)   )_(

*/

/// ============ Imports ============

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/proxy/Clones.sol";
import "./interfaces/IDCNTRegistry.sol";
import "./storage/EditionConfig.sol";
import "./storage/MetadataConfig.sol";
import "./storage/TokenGateConfig.sol";
import "./storage/CrescendoConfig.sol";

contract DCNTSDK is Ownable {
  /// ============ Storage ===========
  /// @notice implementation addresses for base contracts
  address public DCNT721AImplementation;
  address public DCNT4907AImplementation;
  address public DCNTCrescendoImplementation;
  address public DCNTVaultImplementation;
  address public DCNTStakingImplementation;
  address public ZKEditionImplementation;

  /// @notice address of the metadata renderer
  address public metadataRenderer;

  /// @notice address of the associated registry
  address public contractRegistry;

  /// @notice addresses for splits contract
  address public SplitMain;

  /// ============ Events ============

  /// @notice Emitted after successfully deploying a contract
  event DeployDCNT721A(address DCNT721A);
  event DeployDCNT4907A(address DCNT4907A);
  event DeployDCNTCrescendo(address DCNTCrescendo);
  event DeployDCNTVault(address DCNTVault);
  event DeployDCNTStaking(address DCNTStaking);
  event DeployZKEdition(address ZKEdition);

  /// ============ Constructor ============

  /// @notice Creates a new DecentSDK instance
  constructor(
    address _DCNT721AImplementation,
    address _DCNT4907AImplementation,
    address _DCNTCrescendoImplementation,
    address _DCNTVaultImplementation,
    address _DCNTStakingImplementation,
    address _metadataRenderer,
    address _contractRegistry,
    address _SplitMain,
    address _ZKEditionImplementation
  ) {
    DCNT721AImplementation = _DCNT721AImplementation;
    DCNT4907AImplementation = _DCNT4907AImplementation;
    DCNTCrescendoImplementation = _DCNTCrescendoImplementation;
    DCNTVaultImplementation = _DCNTVaultImplementation;
    DCNTStakingImplementation = _DCNTStakingImplementation;
    metadataRenderer = _metadataRenderer;
    contractRegistry = _contractRegistry;
    SplitMain = _SplitMain;
    ZKEditionImplementation = _ZKEditionImplementation;
  }

  /// ============ Functions ============

  /// @notice deploy and initialize an erc721a clone
  function deployDCNT721A(
    EditionConfig memory _editionConfig,
    MetadataConfig memory _metadataConfig,
    TokenGateConfig memory _tokenGateConfig
  ) external returns (address clone) {
    clone = Clones.clone(DCNT721AImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,bool,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "(address,uint88,uint8),"
          "address,"
          "address"
        ")",
        msg.sender,
        _editionConfig,
        _metadataConfig,
        _tokenGateConfig,
        metadataRenderer,
        SplitMain
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNT721A");
    emit DeployDCNT721A(clone);
  }

  /// @notice deploy and initialize a ZKEdition clone
  function deployZKEdition(
    EditionConfig memory _editionConfig,
    MetadataConfig memory _metadataConfig,
    TokenGateConfig memory _tokenGateConfig,
    address zkVerifier
  ) external returns (address clone) {
    clone = Clones.clone(ZKEditionImplementation); //zkedition implementation
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,bool,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "(address,uint88,uint8),"
          "address,"
          "address,"
          "address"
        ")",
        msg.sender,
        _editionConfig,
        _metadataConfig,
        _tokenGateConfig,
        metadataRenderer,
        SplitMain,
        zkVerifier
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "ZKEdition");
    emit DeployZKEdition(clone);
  }

  /// @notice deploy and initialize an erc4907a clone
  function deployDCNT4907A(
    EditionConfig memory _editionConfig,
    MetadataConfig memory _metadataConfig,
    TokenGateConfig memory _tokenGateConfig
  ) external returns (address clone) {
    clone = Clones.clone(DCNT4907AImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,bool,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "(address,uint88,uint8),"
          "address,"
          "address"
        ")",
        msg.sender,
        _editionConfig,
        _metadataConfig,
        _tokenGateConfig,
        metadataRenderer,
        SplitMain
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNT4907A");
    emit DeployDCNT4907A(clone);
  }

  // deploy and initialize a Crescendo clone
  function deployDCNTCrescendo(
    CrescendoConfig memory _config,
    MetadataConfig memory _metadataConfig
  ) external returns (address clone) {
    clone = Clones.clone(DCNTCrescendoImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "address,"
          "address"
        ")",
        msg.sender,
        _config,
        _metadataConfig,
        metadataRenderer,
        SplitMain
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(
      msg.sender,
      clone,
      "DCNTCrescendo"
    );
    emit DeployDCNTCrescendo(clone);
  }

  // deploy and initialize a vault wrapper clone
  function deployDCNTVault(
    address _vaultDistributionTokenAddress,
    address _nftVaultKeyAddress,
    uint256 _nftTotalSupply,
    uint256 _unlockDate
  ) external returns (address clone) {
    clone = Clones.clone(DCNTVaultImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize(address,address,address,uint256,uint256)",
        msg.sender,
        _vaultDistributionTokenAddress,
        _nftVaultKeyAddress,
        _nftTotalSupply,
        _unlockDate
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNTVault");
    emit DeployDCNTVault(clone);
  }

  // deploy and initialize a vault wrapper clone
  function deployDCNTStaking(
    address _nft,
    address _token,
    uint256 _vaultDuration,
    uint256 _totalSupply
  ) external returns (address clone) {
    clone = Clones.clone(DCNTStakingImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize(address,address,address,uint256,uint256)",
        msg.sender,
        _nft,
        _token,
        _vaultDuration,
        _totalSupply
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNTStaking");
    emit DeployDCNTStaking(clone);
  }
}

File 5 of 9 : IDCNTRegistry.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IDCNTRegistry {
  function register(
    address _deployer,
    address _deployment,
    string calldata _key
  ) external;

  function remove(address _deployer, address _deployment) external;

  function query(address _deployer) external returns (address[] memory);
}

File 6 of 9 : CrescendoConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct CrescendoConfig {
  string name;
  string symbol;
  uint256 initialPrice;
  uint256 step1;
  uint256 step2;
  uint256 hitch;
  uint256 takeRateBPS;
  uint256 unlockDate;
  uint256 saleStart;
  uint256 royaltyBPS;
}

File 7 of 9 : EditionConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct EditionConfig {
  string name;
  string symbol;
  bool hasAdjustableCap;
  uint256 maxTokens;
  uint256 tokenPrice;
  uint256 maxTokenPurchase;
  bytes32 presaleMerkleRoot;
  uint256 presaleStart;
  uint256 presaleEnd;
  uint256 saleStart;
  uint256 saleEnd;
  uint256 royaltyBPS;
}

File 8 of 9 : MetadataConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct MetadataConfig {
  string contractURI;
  string metadataURI;
  bytes metadataRendererInit;
  address parentIP;
}

File 9 of 9 : TokenGateConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

enum SaleType {
  ALL,
  PRESALE,
  PRIMARY
}

struct TokenGateConfig {
  address tokenAddress; 
  uint88 minBalance;
  SaleType saleType;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_DCNT721AImplementation","type":"address"},{"internalType":"address","name":"_DCNT4907AImplementation","type":"address"},{"internalType":"address","name":"_DCNTCrescendoImplementation","type":"address"},{"internalType":"address","name":"_DCNTVaultImplementation","type":"address"},{"internalType":"address","name":"_DCNTStakingImplementation","type":"address"},{"internalType":"address","name":"_metadataRenderer","type":"address"},{"internalType":"address","name":"_contractRegistry","type":"address"},{"internalType":"address","name":"_SplitMain","type":"address"},{"internalType":"address","name":"_ZKEditionImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNT4907A","type":"address"}],"name":"DeployDCNT4907A","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNT721A","type":"address"}],"name":"DeployDCNT721A","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNTCrescendo","type":"address"}],"name":"DeployDCNTCrescendo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNTStaking","type":"address"}],"name":"DeployDCNTStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNTVault","type":"address"}],"name":"DeployDCNTVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ZKEdition","type":"address"}],"name":"DeployZKEdition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DCNT4907AImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNT721AImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNTCrescendoImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNTStakingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNTVaultImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SplitMain","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZKEditionImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"hasAdjustableCap","type":"bool"},{"internalType":"uint256","name":"maxTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"maxTokenPurchase","type":"uint256"},{"internalType":"bytes32","name":"presaleMerkleRoot","type":"bytes32"},{"internalType":"uint256","name":"presaleStart","type":"uint256"},{"internalType":"uint256","name":"presaleEnd","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"saleEnd","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct EditionConfig","name":"_editionConfig","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"},{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint88","name":"minBalance","type":"uint88"},{"internalType":"enum SaleType","name":"saleType","type":"uint8"}],"internalType":"struct TokenGateConfig","name":"_tokenGateConfig","type":"tuple"}],"name":"deployDCNT4907A","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"hasAdjustableCap","type":"bool"},{"internalType":"uint256","name":"maxTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"maxTokenPurchase","type":"uint256"},{"internalType":"bytes32","name":"presaleMerkleRoot","type":"bytes32"},{"internalType":"uint256","name":"presaleStart","type":"uint256"},{"internalType":"uint256","name":"presaleEnd","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"saleEnd","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct EditionConfig","name":"_editionConfig","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"},{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint88","name":"minBalance","type":"uint88"},{"internalType":"enum SaleType","name":"saleType","type":"uint8"}],"internalType":"struct TokenGateConfig","name":"_tokenGateConfig","type":"tuple"}],"name":"deployDCNT721A","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialPrice","type":"uint256"},{"internalType":"uint256","name":"step1","type":"uint256"},{"internalType":"uint256","name":"step2","type":"uint256"},{"internalType":"uint256","name":"hitch","type":"uint256"},{"internalType":"uint256","name":"takeRateBPS","type":"uint256"},{"internalType":"uint256","name":"unlockDate","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct CrescendoConfig","name":"_config","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"}],"name":"deployDCNTCrescendo","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nft","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_vaultDuration","type":"uint256"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"name":"deployDCNTStaking","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultDistributionTokenAddress","type":"address"},{"internalType":"address","name":"_nftVaultKeyAddress","type":"address"},{"internalType":"uint256","name":"_nftTotalSupply","type":"uint256"},{"internalType":"uint256","name":"_unlockDate","type":"uint256"}],"name":"deployDCNTVault","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"hasAdjustableCap","type":"bool"},{"internalType":"uint256","name":"maxTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"maxTokenPurchase","type":"uint256"},{"internalType":"bytes32","name":"presaleMerkleRoot","type":"bytes32"},{"internalType":"uint256","name":"presaleStart","type":"uint256"},{"internalType":"uint256","name":"presaleEnd","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"saleEnd","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct EditionConfig","name":"_editionConfig","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"},{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint88","name":"minBalance","type":"uint88"},{"internalType":"enum SaleType","name":"saleType","type":"uint8"}],"internalType":"struct TokenGateConfig","name":"_tokenGateConfig","type":"tuple"},{"internalType":"address","name":"zkVerifier","type":"address"}],"name":"deployZKEdition","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"metadataRenderer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620019a9380380620019a983398101604081905262000034916200014d565b6200003f33620000e0565b600180546001600160a01b03199081166001600160a01b039b8c1617909155600280548216998b1699909917909855600380548916978a1697909717909655600480548816958916959095179094556005805487169388169390931790925560078054861691871691909117905560088054851691861691909117905560098054841691851691909117905560068054909216921691909117905562000208565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014857600080fd5b919050565b60008060008060008060008060006101208a8c0312156200016d57600080fd5b620001788a62000130565b98506200018860208b0162000130565b97506200019860408b0162000130565b9650620001a860608b0162000130565b9550620001b860808b0162000130565b9450620001c860a08b0162000130565b9350620001d860c08b0162000130565b9250620001e860e08b0162000130565b9150620001f96101008b0162000130565b90509295985092959850929598565b61179180620002186000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80639f61dfec116100a2578063ca825bb511610071578063ca825bb514610223578063d0ae315a14610236578063e295877c14610249578063eef702e91461025c578063f2fde38b1461026f57600080fd5b80639f61dfec146101d7578063abf410e5146101ea578063b4675ed6146101fd578063bc10a4fa1461021057600080fd5b806370319970116100e95780637031997014610183578063715018a61461019657806373d622f8146101a057806380fab9ee146101b35780638da5cb5b146101c657600080fd5b806310a089131461011b578063389058981461014a5780633c3b370b1461015d5780634285656b14610170575b600080fd5b60015461012e906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61012e610158366004610fe8565b610282565b60055461012e906001600160a01b031681565b60025461012e906001600160a01b031681565b60075461012e906001600160a01b031681565b61019e61041d565b005b61012e6101ae3660046110f5565b610431565b61012e6101c13660046112b2565b6105d5565b6000546001600160a01b031661012e565b60045461012e906001600160a01b031681565b60085461012e906001600160a01b031681565b61012e61020b3660046112b2565b610773565b61012e61021e3660046110f5565b610905565b60035461012e906001600160a01b031681565b60065461012e906001600160a01b031681565b61012e610257366004611327565b610a9e565b60095461012e906001600160a01b031681565b61019e61027d3660046113ad565b610c32565b60035460009061029a906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b03808616936102cc9333938a938a93811692169060240161147f565b60408051601f198184030181529181526020820180516001600160e01b0316624ee2bb60e71b17905251610300919061156c565b6000604051808303816000865af19150503d806000811461033d576040519150601f19603f3d011682016040523d82523d6000602084013e610342565b606091505b505090508061035057600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b03848116602483015260606044830152600d60648301526c44434e544372657363656e646f60981b60848301529091169063ede497399060a401600060405180830381600087803b1580156103c157600080fd5b505af11580156103d5573d6000803e3d6000fd5b50506040516001600160a01b03851681527f2c14c8ffafc8bfdf42e6469d6c292eeaebf445beafb817fb0bc9df3ebd89f0069250602001905060405180910390a15092915050565b610425610d4a565b61042f6000610da4565b565b600454600090610449906001600160a01b0316610cb0565b6040513360248201526001600160a01b03878116604483015286811660648301526084820186905260a4820185905291925060009183169060c40160408051601f198184030181529181526020820180516001600160e01b03166314d6c7d760e31b179052516104b9919061156c565b6000604051808303816000865af19150503d80600081146104f6576040519150601f19603f3d011682016040523d82523d6000602084013e6104fb565b606091505b505090508061050957600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b0384811660248301526060604483015260096064830152681110d39515985d5b1d60ba1b60848301529091169063ede497399060a401600060405180830381600087803b15801561057657600080fd5b505af115801561058a573d6000803e3d6000fd5b50506040516001600160a01b03851681527ff12b488daa6140ffee78fe266c37addbbaea912b09ce36e613a17844dac4255b925060200190505b60405180910390a150949350505050565b6001546000906105ed906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b03808616936106239333938b938b938b9390821692911690602401611687565b60408051601f198184030181529181526020820180516001600160e01b03166364f7af7760e11b17905251610658919061156c565b6000604051808303816000865af19150503d8060008114610695576040519150601f19603f3d011682016040523d82523d6000602084013e61069a565b606091505b50509050806106a857600080fd5b6008805460405163ede4973960e01b81523360048201526001600160a01b0385811660248301526060604483015260648201939093526744434e543732314160c01b608482015291169063ede497399060a401600060405180830381600087803b15801561071557600080fd5b505af1158015610729573d6000803e3d6000fd5b50506040516001600160a01b03851681527f149ce80ffd882db4157fb46dd05201336d87f52ace89212615557e5455b8a0df925060200190505b60405180910390a1509392505050565b60025460009061078b906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b03808616936107c19333938b938b938b9390821692911690602401611687565b60408051601f198184030181529181526020820180516001600160e01b03166364f7af7760e11b179052516107f6919061156c565b6000604051808303816000865af19150503d8060008114610833576040519150601f19603f3d011682016040523d82523d6000602084013e610838565b606091505b505090508061084657600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b03848116602483015260606044830152600960648301526844434e54343930374160b81b60848301529091169063ede497399060a401600060405180830381600087803b1580156108b357600080fd5b505af11580156108c7573d6000803e3d6000fd5b50506040516001600160a01b03851681527f3758a9cde202b40b236c1867c2734461fd598d835ad020bda26ca4f85838f2c492506020019050610763565b60055460009061091d906001600160a01b0316610cb0565b6040513360248201526001600160a01b03878116604483015286811660648301526084820186905260a4820185905291925060009183169060c40160408051601f198184030181529181526020820180516001600160e01b03166314d6c7d760e31b1790525161098d919061156c565b6000604051808303816000865af19150503d80600081146109ca576040519150601f19603f3d011682016040523d82523d6000602084013e6109cf565b606091505b50509050806109dd57600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b03848116602483015260606044830152600b60648301526a44434e545374616b696e6760a81b60848301529091169063ede497399060a401600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b50506040516001600160a01b03851681527fe9eeb18af71a650338802cfcb86b39b211ed34fd8a37cacc5a16514a183e8d66925060200190506105c4565b600654600090610ab6906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b0380861693610aee9333938c938c938c93908216929116908b906024016116ed565b60408051601f198184030181529181526020820180516001600160e01b0316637385777f60e11b17905251610b23919061156c565b6000604051808303816000865af19150503d8060008114610b60576040519150601f19603f3d011682016040523d82523d6000602084013e610b65565b606091505b5050905080610b7357600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b0384811660248301526060604483015260096064830152682d25a2b234ba34b7b760b91b60848301529091169063ede497399060a401600060405180830381600087803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b50506040516001600160a01b03851681527f49451ac6869c0fa590f484823265bd786e5c483c78431c2fc0cc2f7f939678e4925060200190506105c4565b610c3a610d4a565b6001600160a01b038116610ca45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610cad81610da4565b50565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116610d455760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610c9b565b919050565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c9b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e2d57610e2d610df4565b60405290565b604051610140810167ffffffffffffffff81118282101715610e2d57610e2d610df4565b604051610180810167ffffffffffffffff81118282101715610e2d57610e2d610df4565b600067ffffffffffffffff80841115610e9657610e96610df4565b604051601f8501601f19908116603f01168101908282118183101715610ebe57610ebe610df4565b81604052809350858152868686011115610ed757600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610f0257600080fd5b610f1183833560208501610e7b565b9392505050565b80356001600160a01b0381168114610d4557600080fd5b600060808284031215610f4157600080fd5b610f49610e0a565b9050813567ffffffffffffffff80821115610f6357600080fd5b610f6f85838601610ef1565b83526020840135915080821115610f8557600080fd5b610f9185838601610ef1565b60208401526040840135915080821115610faa57600080fd5b508201601f81018413610fbc57600080fd5b610fcb84823560208401610e7b565b604083015250610fdd60608301610f18565b606082015292915050565b60008060408385031215610ffb57600080fd5b823567ffffffffffffffff8082111561101357600080fd5b90840190610140828703121561102857600080fd5b611030610e33565b82358281111561103f57600080fd5b61104b88828601610ef1565b82525060208301358281111561106057600080fd5b61106c88828601610ef1565b60208301525060408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508094505060208501359150808211156110de57600080fd5b506110eb85828601610f2f565b9150509250929050565b6000806000806080858703121561110b57600080fd5b61111485610f18565b935061112260208601610f18565b93969395505050506040820135916060013590565b80358015158114610d4557600080fd5b6000610180828403121561115a57600080fd5b611162610e57565b9050813567ffffffffffffffff8082111561117c57600080fd5b61118885838601610ef1565b8352602084013591508082111561119e57600080fd5b506111ab84828501610ef1565b6020830152506111bd60408301611137565b6040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010080830135818301525061012080830135818301525061014080830135818301525061016080830135818301525092915050565b60006060828403121561123c57600080fd5b6040516060810181811067ffffffffffffffff8211171561125f5761125f610df4565b60405290508061126e83610f18565b815260208301356affffffffffffffffffffff8116811461128e57600080fd5b60208201526040830135600381106112a557600080fd5b6040919091015292915050565b600080600060a084860312156112c757600080fd5b833567ffffffffffffffff808211156112df57600080fd5b6112eb87838801611147565b9450602086013591508082111561130157600080fd5b5061130e86828701610f2f565b92505061131e856040860161122a565b90509250925092565b60008060008060c0858703121561133d57600080fd5b843567ffffffffffffffff8082111561135557600080fd5b61136188838901611147565b9550602087013591508082111561137757600080fd5b5061138487828801610f2f565b935050611394866040870161122a565b91506113a260a08601610f18565b905092959194509250565b6000602082840312156113bf57600080fd5b610f1182610f18565b60005b838110156113e35781810151838201526020016113cb565b50506000910152565b600081518084526114048160208601602086016113c8565b601f01601f19169290920160200192915050565b600081516080845261142d60808501826113ec565b90506020830151848203602086015261144682826113ec565b9150506040830151848203604086015261146082826113ec565b6060948501516001600160a01b03169590940194909452509092915050565b60018060a01b038616815260a06020820152600085516101408060a08501526114ac6101e08501836113ec565b91506020880151609f198584030160c08601526114c983826113ec565b925050604088015160e08501526060880151610100818187015260808a01519150610120828188015260a08b01518488015260c08b015161016088015260e08b0151610180880152818b01516101a0880152808b01516101c088015250505050828103604084015261153b8187611418565b91505061155360608301856001600160a01b03169052565b6001600160a01b03831660808301529695505050505050565b6000825161157e8184602087016113c8565b9190910192915050565b6000610180825181855261159e828601826113ec565b915050602083015184820360208601526115b882826113ec565b91505060408301516115ce604086018215159052565b50606083810151908501526080808401519085015260a0808401519085015260c0808401519085015260e080840151908501526101008084015190850152610120808401519085015261014080840151908501526101609283015192909301919091525090565b80516001600160a01b031682526020808201516affffffffffffffffffffff169083015260408101516003811061167c57634e487b7160e01b600052602160045260246000fd5b806040840152505050565b6001600160a01b038781168252610100602083018190526000916116ad8483018a611588565b915083820360408501526116c18289611418565b92506116d06060850188611635565b80861660c085015280851660e08501525050979650505050505050565b6001600160a01b038881168252610120602083018190526000916117138483018b611588565b91508382036040850152611727828a611418565b92506117366060850189611635565b95861660c08401525092841660e082015292166101009092019190915294935050505056fea2646970667358221220b1a762e510db2551afcc2f6cf716511c8279bb06300ebcfe5a154c239dbf206264736f6c63430008110033000000000000000000000000537af717cd649ae3307fcfd9c078e817df8b646c0000000000000000000000003a50cf8122b89dc8785770cf8a8c07d5c0627c72000000000000000000000000d0fb925f5ff15fcad74e7f0fa9242fd2ec8d190a000000000000000000000000d2d92f35f52ec65d39c136ebd357004472bdc75800000000000000000000000049799190ad4ef8299e0d078eef07bdb4309f7186000000000000000000000000815cf686109c8591536f921920d5bf357e67d7f50000000000000000000000000d335a3f2284c974a70afdcab1db4d00b6c820790000000000000000000000002ed6c4b5da6378c7897ac67ba9e43102feb694ee0000000000000000000000005392e06ac979e370fd45d25d0b5424cd8ca56529

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading