ETH Price: $3,252.38 (+4.87%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint200431542024-06-07 23:13:11236 days ago1717801991IN
0x02C26437...948274f84
0 ETH0.0008081810.70398451
Mint199814472024-05-30 8:23:35245 days ago1717057415IN
0x02C26437...948274f84
0 ETH0.0008260610.93333631
Mint199796242024-05-30 2:16:23245 days ago1717035383IN
0x02C26437...948274f84
0 ETH0.000495476.557808
Mint199792262024-05-30 0:56:23245 days ago1717030583IN
0x02C26437...948274f84
0 ETH0.0011991515.87129512
Mint199792222024-05-30 0:55:35245 days ago1717030535IN
0x02C26437...948274f84
0 ETH0.0003161514.8555905
Mint199788522024-05-29 23:41:11245 days ago1717026071IN
0x02C26437...948274f84
0 ETH0.000516736.83917539
Mint199775732024-05-29 19:23:59245 days ago1717010639IN
0x02C26437...948274f84
0 ETH0.0007620210.08568898
Mint199764672024-05-29 15:39:59245 days ago1716997199IN
0x02C26437...948274f84
0 ETH0.0014669519.42906076
Mint199756542024-05-29 12:55:11246 days ago1716987311IN
0x02C26437...948274f84
0 ETH0.001251416.56282706
Mint199749472024-05-29 10:32:47246 days ago1716978767IN
0x02C26437...948274f84
0 ETH0.0007746910.260405
Mint199720322024-05-29 0:46:23246 days ago1716943583IN
0x02C26437...948274f84
0 ETH0.000752189.9623839
Mint199656212024-05-28 3:16:23247 days ago1716866183IN
0x02C26437...948274f84
0 ETH0.0007381612.63923895
Mint199654322024-05-28 2:38:35247 days ago1716863915IN
0x02C26437...948274f84
0 ETH0.0009584612.69438292
Mint199494142024-05-25 20:55:47249 days ago1716670547IN
0x02C26437...948274f84
0 ETH0.000331324.38821401
Mint198405752024-05-10 15:36:47264 days ago1715355407IN
0x02C26437...948274f84
0 ETH0.000453016
Mint198401232024-05-10 14:06:23264 days ago1715349983IN
0x02C26437...948274f84
0 ETH0.000688989.12533065
Mint198370362024-05-10 3:45:11265 days ago1715312711IN
0x02C26437...948274f84
0 ETH0.000448155.93564609
Mint198278772024-05-08 21:00:11266 days ago1715202011IN
0x02C26437...948274f84
0 ETH0.000532867.05751876
Mint198058102024-05-05 18:54:35269 days ago1714935275IN
0x02C26437...948274f84
0 ETH0.000506498.67236365
Mint198057672024-05-05 18:45:59269 days ago1714934759IN
0x02C26437...948274f84
0 ETH0.000642928.51527343
Mint197922102024-05-03 21:15:59271 days ago1714770959IN
0x02C26437...948274f84
0 ETH0.000492746.52616215
Mint197782332024-05-01 22:21:11273 days ago1714602071IN
0x02C26437...948274f84
0 ETH0.000625668.28661786
Mint197407212024-04-26 16:29:23278 days ago1714148963IN
0x02C26437...948274f84
0 ETH0.000698599.25260653
Mint197209422024-04-23 22:01:47281 days ago1713909707IN
0x02C26437...948274f84
0 ETH0.0008460114.4857744
Mint197109022024-04-22 12:20:47283 days ago1713788447IN
0x02C26437...948274f84
0 ETH0.000581579.957999
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DynamicContribution

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion
File 1 of 3 : DynamicContribution.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "../lib/solmate/src/tokens/ERC721.sol";
import "../lib/solmate/src/utils/LibString.sol";

/// @dev Only `owner` has a privilege, but the `sender` was provided.
/// @param sender Sender address.
/// @param owner Required sender address as an owner.
error OwnerOnly(address sender, address owner);

/// @dev Provided zero address.
error ZeroAddress();

/// @dev Zero value when it has to be different from zero.
error ZeroValue();

/// @dev Value overflow.
/// @param provided Overflow value.
/// @param max Maximum possible value.
error Overflow(uint256 provided, uint256 max);

/// @dev Wrong token Id provided.
/// @param provided Token Id.
error WrongTokenId(uint256 provided);

/// @dev Caught reentrancy violation.
error ReentrancyGuard();

/// @title DynamicContribution - Ownable smart contract for minting ERC721 tokens
contract DynamicContribution is ERC721 {
    using LibString for uint256;

    event OwnerUpdated(address indexed owner);
    event BaseURIChanged(string baseURI);

    // Owner address
    address public owner;
    // Base URI
    string public baseURI;
    // Unit counter
    uint256 public totalSupply;
    // Reentrancy lock
    uint256 internal _locked = 1;

    /// @dev DynamicContribution constructor.
    /// @param _name DynamicContribution contract name.
    /// @param _symbol DynamicContribution contract symbol.
    /// @param _baseURI DynamicContribution token base URI.
    constructor(string memory _name, string memory _symbol, string memory _baseURI) ERC721(_name, _symbol)
    {
        baseURI = _baseURI;
        owner = msg.sender;
    }

    /// @dev Changes the owner address.
    /// @param newOwner Address of a new owner.
    function changeOwner(address newOwner) external {
        // Check for the ownership
        if (msg.sender != owner) {
            revert OwnerOnly(msg.sender, owner);
        }

        // Check for the zero address
        if (newOwner == address(0)) {
            revert ZeroAddress();
        }

        owner = newOwner;
        emit OwnerUpdated(newOwner);
    }

    /// @dev Mints a new token.
    /// @return tokenId Minted token Id.
    function mint() external returns (uint256 tokenId) {
        // Reentrancy guard
        if (_locked > 1) {
            revert ReentrancyGuard();
        }
        _locked = 2;

        // Get the current total supply
        tokenId = totalSupply;
        tokenId++;
        // Set total supply to the token Id number
        totalSupply = tokenId;
        // Mint a token
        _safeMint(msg.sender, tokenId);

        _locked = 1;
    }

    /// @dev Mints a new token for a specified account.
    /// @param account Account address for the token mint.
    /// @return tokenId Minted token Id.
    function mintFor(address account) external returns (uint256 tokenId) {
        // Reentrancy guard
        if (_locked > 1) {
            revert ReentrancyGuard();
        }
        _locked = 2;

        // Get the current total supply
        tokenId = totalSupply;
        tokenId++;
        // Set total supply to the token Id number
        totalSupply = tokenId;
        // Mint a token
        _safeMint(account, tokenId);

        _locked = 1;
    }

    /// @dev Checks for the token existence.
    /// @notice Token counter starts from 1.
    /// @param tokenId Token Id.
    /// @return true if the token exists, false otherwise.
    function exists(uint256 tokenId) external view returns (bool) {
        return tokenId > 0 && tokenId < (totalSupply + 1);
    }

    /// @dev Sets token base URI.
    /// @param bURI Base URI string.
    function setBaseURI(string memory bURI) external {
        // Check for the ownership
        if (msg.sender != owner) {
            revert OwnerOnly(msg.sender, owner);
        }

        // Check for the zero value
        if (bytes(bURI).length == 0) {
            revert ZeroValue();
        }

        baseURI = bURI;
        emit BaseURIChanged(bURI);
    }

    /// @dev Gets the valid unit Id from the provided index.
    /// @notice Token counter starts from 1.
    /// @param id Token counter.
    /// @return tokenId Token Id.
    function tokenByIndex(uint256 id) external view returns (uint256 tokenId) {
        tokenId = id + 1;
        if (tokenId > totalSupply) {
            revert Overflow(tokenId, totalSupply);
        }
    }

    /// @dev Gets token URI.
    /// @param tokenId Token Id.
    /// @return Token URI string.
    function tokenURI(uint256 tokenId) public view override returns (string memory) {
        if (tokenId == 0 || tokenId > totalSupply) {
            revert WrongTokenId(tokenId);
        }
        return string.concat(baseURI, tokenId.toString());
    }
}

File 2 of 3 : ERC721.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /*//////////////////////////////////////////////////////////////
                         METADATA STORAGE/LOGIC
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                      ERC721 BALANCE/OWNER STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) internal _ownerOf;

    mapping(address => uint256) internal _balanceOf;

    function ownerOf(uint256 id) public view virtual returns (address owner) {
        require((owner = _ownerOf[id]) != address(0), "NOT_MINTED");
    }

    function balanceOf(address owner) public view virtual returns (uint256) {
        require(owner != address(0), "ZERO_ADDRESS");

        return _balanceOf[owner];
    }

    /*//////////////////////////////////////////////////////////////
                         ERC721 APPROVAL STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) public getApproved;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    /*//////////////////////////////////////////////////////////////
                              ERC721 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 id) public virtual {
        address owner = _ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == _ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || isApprovedForAll[from][msg.sender] || msg.sender == getApproved[id],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            _balanceOf[from]--;

            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes calldata data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    /*//////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(_ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }

    function _burn(uint256 id) internal virtual {
        address owner = _ownerOf[id];

        require(owner != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            _balanceOf[owner]--;
        }

        delete _ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL SAFE MINT LOGIC
    //////////////////////////////////////////////////////////////*/

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }
}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721TokenReceiver {
    function onERC721Received(
        address,
        address,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC721TokenReceiver.onERC721Received.selector;
    }
}

File 3 of 3 : LibString.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

/// @notice Efficient library for creating string representations of integers.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)
/// @author Modified from Solady (https://github.com/Vectorized/solady/blob/main/src/utils/LibString.sol)
library LibString {
    function toString(uint256 value) internal pure returns (string memory str) {
        /// @solidity memory-safe-assembly
        assembly {
            // The maximum value of a uint256 contains 78 digits (1 byte per digit), but we allocate 160 bytes
            // to keep the free memory pointer word aligned. We'll need 1 word for the length, 1 word for the
            // trailing zeros padding, and 3 other words for a max of 78 digits. In total: 5 * 32 = 160 bytes.
            let newFreeMemoryPointer := add(mload(0x40), 160)

            // Update the free memory pointer to avoid overriding our string.
            mstore(0x40, newFreeMemoryPointer)

            // Assign str to the end of the zone of newly allocated memory.
            str := sub(newFreeMemoryPointer, 32)

            // Clean the last word of memory it may not be overwritten.
            mstore(str, 0)

            // Cache the end of the memory to calculate the length later.
            let end := str

            // We write the string from rightmost digit to leftmost digit.
            // The following is essentially a do-while loop that also handles the zero case.
            // prettier-ignore
            for { let temp := value } 1 {} {
                // Move the pointer 1 byte to the left.
                str := sub(str, 1)

                // Write the character to the pointer.
                // The ASCII index of the '0' character is 48.
                mstore8(str, add(48, mod(temp, 10)))

                // Keep dividing temp until zero.
                temp := div(temp, 10)

                 // prettier-ignore
                if iszero(temp) { break }
            }

            // Compute and cache the final total length of the string.
            let length := sub(end, str)

            // Move the pointer 32 bytes leftwards to make room for the length.
            str := sub(str, 32)

            // Store the string's length at the start of memory allocated for our string.
            mstore(str, length)
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"Overflow","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OwnerOnly","type":"error"},{"inputs":[],"name":"ReentrancyGuard","type":"error"},{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"}],"name":"WrongTokenId","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroValue","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"baseURI","type":"string"}],"name":"BaseURIChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"mintFor","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"bURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260016009553480156200001657600080fd5b5060405162001fa838038062001fa883398101604081905262000039916200014d565b828260006200004983826200026d565b5060016200005882826200026d565b50600791506200006b905082826200026d565b5050600680546001600160a01b0319163317905550620003399050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b057600080fd5b81516001600160401b0380821115620000cd57620000cd62000088565b604051601f8301601f19908116603f01168101908282118183101715620000f857620000f862000088565b816040528381526020925086838588010111156200011557600080fd5b600091505b838210156200013957858201830151818301840152908201906200011a565b600093810190920192909252949350505050565b6000806000606084860312156200016357600080fd5b83516001600160401b03808211156200017b57600080fd5b62000189878388016200009e565b94506020860151915080821115620001a057600080fd5b620001ae878388016200009e565b93506040860151915080821115620001c557600080fd5b50620001d4868287016200009e565b9150509250925092565b600181811c90821680620001f357607f821691505b6020821081036200021457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026857600081815260208120601f850160051c81016020861015620002435750805b601f850160051c820191505b8181101562000264578281556001016200024f565b5050505b505050565b81516001600160401b0381111562000289576200028962000088565b620002a1816200029a8454620001de565b846200021a565b602080601f831160018114620002d95760008415620002c05750858301515b600019600386901b1c1916600185901b17855562000264565b600085815260208120601f198616915b828110156200030a57888601518255948401946001909101908401620002e9565b5085821015620003295787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c5f80620003496000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80636352211e116100d857806395d89b411161008c578063b88d4fde11610066578063b88d4fde14610341578063c87b56dd14610354578063e985e9c51461036757600080fd5b806395d89b4114610313578063a22cb4651461031b578063a6f9dae11461032e57600080fd5b806370a08231116100bd57806370a08231146102cd57806371e578dc146102e05780638da5cb5b146102f357600080fd5b80636352211e146102b25780636c0360eb146102c557600080fd5b806318160ddd1161013a5780634f558e79116101145780634f558e79146102795780634f6ccce71461028c57806355f804b31461029f57600080fd5b806318160ddd1461024a57806323b872dd1461025357806342842e0e1461026657600080fd5b8063081812fc1161016b578063081812fc146101c4578063095ea7b31461021f5780631249c58b1461023457600080fd5b806301ffc9a71461018757806306fdde03146101af575b600080fd5b61019a610195366004611554565b610395565b60405190151581526020015b60405180910390f35b6101b761047a565b6040516101a6919061159c565b6101fa6101d23660046115ed565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a6565b61023261022d36600461162a565b610508565b005b61023c610657565b6040519081526020016101a6565b61023c60085481565b610232610261366004611654565b6106c4565b610232610274366004611654565b61098b565b61019a6102873660046115ed565b610af5565b61023c61029a3660046115ed565b610b17565b6102326102ad3660046116bf565b610b75565b6101fa6102c03660046115ed565b610c6a565b6101b7610cf6565b61023c6102db36600461178e565b610d03565b61023c6102ee36600461178e565b610dab565b6006546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b6101b7610e1a565b6102326103293660046117a9565b610e27565b61023261033c36600461178e565b610ebe565b61023261034f3660046117e5565b610fed565b6101b76103623660046115ed565b611147565b61019a610375366004611880565b600560209081526000928352604080842090915290825290205460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061042857507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061047457507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008054610487906118b3565b80601f01602080910402602001604051908101604052809291908181526020018280546104b3906118b3565b80156105005780601f106104d557610100808354040283529160200191610500565b820191906000526020600020905b8154815290600101906020018083116104e357829003601f168201915b505050505081565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061056b575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6105d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600060016009541115610696576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506002600955600854806106a981611935565b600881905591506106bc905033826111c3565b600160095590565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016105cd565b73ffffffffffffffffffffffffffffffffffffffff82166107d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016105cd565b3373ffffffffffffffffffffffffffffffffffffffff84161480610825575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b80610853575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b6108b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016105cd565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6109968383836106c4565b73ffffffffffffffffffffffffffffffffffffffff82163b1580610a8a57506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a66919061196d565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610af0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016105cd565b505050565b600080821180156104745750600854610b0f90600161198a565b821092915050565b6000610b2482600161198a565b9050600854811115610b70576008546040517f7ae596850000000000000000000000000000000000000000000000000000000081526105cd918391600401918252602082015260400190565b919050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610be8576006546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044016105cd565b8051600003610c23576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007610c2f82826119eb565b507f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf681604051610c5f919061159c565b60405180910390a150565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016105cd565b60078054610487906118b3565b600073ffffffffffffffffffffffffffffffffffffffff8216610d82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f41444452455353000000000000000000000000000000000000000060448201526064016105cd565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b600060016009541115610dea576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600260095560085480610dfd81611935565b60088190559150610e10905082826111c3565b6001600955919050565b60018054610487906118b3565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610f31576006546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044016105cd565b73ffffffffffffffffffffffffffffffffffffffff8116610f7e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b90600090a250565b610ff88585856106c4565b73ffffffffffffffffffffffffffffffffffffffff84163b15806110da57506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a02906110739033908a90899089908990600401611b05565b6020604051808303816000875af1158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b6919061196d565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016105cd565b5050505050565b6060811580611157575060085482115b15611191576040517f23f7828a000000000000000000000000000000000000000000000000000000008152600481018390526024016105cd565b600761119c83611328565b6040516020016111ad929190611b84565b6040516020818303038152906040529050919050565b6111cd828261138a565b73ffffffffffffffffffffffffffffffffffffffff82163b15806112be57506040517f150b7a0200000000000000000000000000000000000000000000000000000000808252336004830152600060248301819052604483018490526080606484015260848301529073ffffffffffffffffffffffffffffffffffffffff84169063150b7a029060a4016020604051808303816000875af1158015611276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129a919061196d565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016105cd565b5050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061134257508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b73ffffffffffffffffffffffffffffffffffffffff8216611407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016105cd565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016105cd565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461155157600080fd5b50565b60006020828403121561156657600080fd5b813561157181611523565b9392505050565b60005b8381101561159357818101518382015260200161157b565b50506000910152565b60208152600082518060208401526115bb816040850160208701611578565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156115ff57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b7057600080fd5b6000806040838503121561163d57600080fd5b61164683611606565b946020939093013593505050565b60008060006060848603121561166957600080fd5b61167284611606565b925061168060208501611606565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156116d157600080fd5b813567ffffffffffffffff808211156116e957600080fd5b818401915084601f8301126116fd57600080fd5b81358181111561170f5761170f611690565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561175557611755611690565b8160405282815287602084870101111561176e57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156117a057600080fd5b61157182611606565b600080604083850312156117bc57600080fd5b6117c583611606565b9150602083013580151581146117da57600080fd5b809150509250929050565b6000806000806000608086880312156117fd57600080fd5b61180686611606565b945061181460208701611606565b935060408601359250606086013567ffffffffffffffff8082111561183857600080fd5b818801915088601f83011261184c57600080fd5b81358181111561185b57600080fd5b89602082850101111561186d57600080fd5b9699959850939650602001949392505050565b6000806040838503121561189357600080fd5b61189c83611606565b91506118aa60208401611606565b90509250929050565b600181811c908216806118c757607f821691505b602082108103611900577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361196657611966611906565b5060010190565b60006020828403121561197f57600080fd5b815161157181611523565b8082018082111561047457610474611906565b601f821115610af057600081815260208120601f850160051c810160208610156119c45750805b601f850160051c820191505b818110156119e3578281556001016119d0565b505050505050565b815167ffffffffffffffff811115611a0557611a05611690565b611a1981611a1384546118b3565b8461199d565b602080601f831160018114611a6c5760008415611a365750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119e3565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611ab957888601518255948401946001909101908401611a9a565b5085821015611af557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b6000808454611b92816118b3565b60018281168015611baa5760018114611bdd57611c0c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450611c0c565b8860005260208060002060005b85811015611c035781548a820152908401908201611bea565b50505082870194505b505050508351611c20818360208801611578565b0194935050505056fea264697066735822122082024bbfc4ac954e3d3923a3d8ca56b5e3593780cf839fde44b97cf99df3885b64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001e4175746f6e6f6c61732044796e616d696320436f6e747269627574696f6e0000000000000000000000000000000000000000000000000000000000000000000c4155544f4e4f4c41532d44430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b68747470733a2f2f7066702e6175746f6e6f6c61732e746563682f0000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101825760003560e01c80636352211e116100d857806395d89b411161008c578063b88d4fde11610066578063b88d4fde14610341578063c87b56dd14610354578063e985e9c51461036757600080fd5b806395d89b4114610313578063a22cb4651461031b578063a6f9dae11461032e57600080fd5b806370a08231116100bd57806370a08231146102cd57806371e578dc146102e05780638da5cb5b146102f357600080fd5b80636352211e146102b25780636c0360eb146102c557600080fd5b806318160ddd1161013a5780634f558e79116101145780634f558e79146102795780634f6ccce71461028c57806355f804b31461029f57600080fd5b806318160ddd1461024a57806323b872dd1461025357806342842e0e1461026657600080fd5b8063081812fc1161016b578063081812fc146101c4578063095ea7b31461021f5780631249c58b1461023457600080fd5b806301ffc9a71461018757806306fdde03146101af575b600080fd5b61019a610195366004611554565b610395565b60405190151581526020015b60405180910390f35b6101b761047a565b6040516101a6919061159c565b6101fa6101d23660046115ed565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a6565b61023261022d36600461162a565b610508565b005b61023c610657565b6040519081526020016101a6565b61023c60085481565b610232610261366004611654565b6106c4565b610232610274366004611654565b61098b565b61019a6102873660046115ed565b610af5565b61023c61029a3660046115ed565b610b17565b6102326102ad3660046116bf565b610b75565b6101fa6102c03660046115ed565b610c6a565b6101b7610cf6565b61023c6102db36600461178e565b610d03565b61023c6102ee36600461178e565b610dab565b6006546101fa9073ffffffffffffffffffffffffffffffffffffffff1681565b6101b7610e1a565b6102326103293660046117a9565b610e27565b61023261033c36600461178e565b610ebe565b61023261034f3660046117e5565b610fed565b6101b76103623660046115ed565b611147565b61019a610375366004611880565b600560209081526000928352604080842090915290825290205460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061042857507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061047457507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008054610487906118b3565b80601f01602080910402602001604051908101604052809291908181526020018280546104b3906118b3565b80156105005780601f106104d557610100808354040283529160200191610500565b820191906000526020600020905b8154815290600101906020018083116104e357829003601f168201915b505050505081565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061056b575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6105d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600060016009541115610696576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506002600955600854806106a981611935565b600881905591506106bc905033826111c3565b600160095590565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016105cd565b73ffffffffffffffffffffffffffffffffffffffff82166107d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016105cd565b3373ffffffffffffffffffffffffffffffffffffffff84161480610825575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b80610853575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b6108b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016105cd565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6109968383836106c4565b73ffffffffffffffffffffffffffffffffffffffff82163b1580610a8a57506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a66919061196d565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610af0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016105cd565b505050565b600080821180156104745750600854610b0f90600161198a565b821092915050565b6000610b2482600161198a565b9050600854811115610b70576008546040517f7ae596850000000000000000000000000000000000000000000000000000000081526105cd918391600401918252602082015260400190565b919050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610be8576006546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044016105cd565b8051600003610c23576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007610c2f82826119eb565b507f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf681604051610c5f919061159c565b60405180910390a150565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016105cd565b60078054610487906118b3565b600073ffffffffffffffffffffffffffffffffffffffff8216610d82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f41444452455353000000000000000000000000000000000000000060448201526064016105cd565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b600060016009541115610dea576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600260095560085480610dfd81611935565b60088190559150610e10905082826111c3565b6001600955919050565b60018054610487906118b3565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610f31576006546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044016105cd565b73ffffffffffffffffffffffffffffffffffffffff8116610f7e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b90600090a250565b610ff88585856106c4565b73ffffffffffffffffffffffffffffffffffffffff84163b15806110da57506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a02906110739033908a90899089908990600401611b05565b6020604051808303816000875af1158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b6919061196d565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016105cd565b5050505050565b6060811580611157575060085482115b15611191576040517f23f7828a000000000000000000000000000000000000000000000000000000008152600481018390526024016105cd565b600761119c83611328565b6040516020016111ad929190611b84565b6040516020818303038152906040529050919050565b6111cd828261138a565b73ffffffffffffffffffffffffffffffffffffffff82163b15806112be57506040517f150b7a0200000000000000000000000000000000000000000000000000000000808252336004830152600060248301819052604483018490526080606484015260848301529073ffffffffffffffffffffffffffffffffffffffff84169063150b7a029060a4016020604051808303816000875af1158015611276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129a919061196d565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016105cd565b5050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061134257508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b73ffffffffffffffffffffffffffffffffffffffff8216611407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016105cd565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016105cd565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461155157600080fd5b50565b60006020828403121561156657600080fd5b813561157181611523565b9392505050565b60005b8381101561159357818101518382015260200161157b565b50506000910152565b60208152600082518060208401526115bb816040850160208701611578565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156115ff57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b7057600080fd5b6000806040838503121561163d57600080fd5b61164683611606565b946020939093013593505050565b60008060006060848603121561166957600080fd5b61167284611606565b925061168060208501611606565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156116d157600080fd5b813567ffffffffffffffff808211156116e957600080fd5b818401915084601f8301126116fd57600080fd5b81358181111561170f5761170f611690565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561175557611755611690565b8160405282815287602084870101111561176e57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156117a057600080fd5b61157182611606565b600080604083850312156117bc57600080fd5b6117c583611606565b9150602083013580151581146117da57600080fd5b809150509250929050565b6000806000806000608086880312156117fd57600080fd5b61180686611606565b945061181460208701611606565b935060408601359250606086013567ffffffffffffffff8082111561183857600080fd5b818801915088601f83011261184c57600080fd5b81358181111561185b57600080fd5b89602082850101111561186d57600080fd5b9699959850939650602001949392505050565b6000806040838503121561189357600080fd5b61189c83611606565b91506118aa60208401611606565b90509250929050565b600181811c908216806118c757607f821691505b602082108103611900577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361196657611966611906565b5060010190565b60006020828403121561197f57600080fd5b815161157181611523565b8082018082111561047457610474611906565b601f821115610af057600081815260208120601f850160051c810160208610156119c45750805b601f850160051c820191505b818110156119e3578281556001016119d0565b505050505050565b815167ffffffffffffffff811115611a0557611a05611690565b611a1981611a1384546118b3565b8461199d565b602080601f831160018114611a6c5760008415611a365750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119e3565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611ab957888601518255948401946001909101908401611a9a565b5085821015611af557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b6000808454611b92816118b3565b60018281168015611baa5760018114611bdd57611c0c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450611c0c565b8860005260208060002060005b85811015611c035781548a820152908401908201611bea565b50505082870194505b505050508351611c20818360208801611578565b0194935050505056fea264697066735822122082024bbfc4ac954e3d3923a3d8ca56b5e3593780cf839fde44b97cf99df3885b64736f6c63430008110033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001e4175746f6e6f6c61732044796e616d696320436f6e747269627574696f6e0000000000000000000000000000000000000000000000000000000000000000000c4155544f4e4f4c41532d44430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b68747470733a2f2f7066702e6175746f6e6f6c61732e746563682f0000000000

-----Decoded View---------------
Arg [0] : _name (string): Autonolas Dynamic Contribution
Arg [1] : _symbol (string): AUTONOLAS-DC
Arg [2] : _baseURI (string): https://pfp.autonolas.tech/

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [4] : 4175746f6e6f6c61732044796e616d696320436f6e747269627574696f6e0000
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [6] : 4155544f4e4f4c41532d44430000000000000000000000000000000000000000
Arg [7] : 000000000000000000000000000000000000000000000000000000000000001b
Arg [8] : 68747470733a2f2f7066702e6175746f6e6f6c61732e746563682f0000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.