| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xdfdfff…0f9bbb | 2 days agoSat, 15 Aug 2026 22:12:25 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…0000000e |
| 0xdfdfff…0f9bbb | 2 days agoSat, 15 Aug 2026 22:12:25 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…0000000e |
| 0x81a072…7a677d | 2 days agoSat, 15 Aug 2026 22:12:22 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…0000000d |
| 0x81a072…7a677d | 2 days agoSat, 15 Aug 2026 22:12:22 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…0000000d |
| 0x361b5c…f121f8 | 2 days agoSat, 15 Aug 2026 22:12:13 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…0000000c |
| 0x361b5c…f121f8 | 2 days agoSat, 15 Aug 2026 22:12:13 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…0000000c |
| 0xd7e429…6c88f4 | 2 days agoSat, 15 Aug 2026 22:12:08 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…0000000b |
| 0xd7e429…6c88f4 | 2 days agoSat, 15 Aug 2026 22:12:08 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…0000000b |
| 0x5f9733…147ead | 2 days agoSat, 15 Aug 2026 22:12:05 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…0000000a |
| 0x5f9733…147ead | 2 days agoSat, 15 Aug 2026 22:12:05 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…0000000a |
| 0x15146f…37a5f0 | 2 days agoSat, 15 Aug 2026 22:12:00 UTC | 0x30385c…adfe | [0] 0x000000000000…c4bc6815 [1] 0x000000000000…00000009 |
| 0x15146f…37a5f0 | 2 days agoSat, 15 Aug 2026 22:12:00 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…c4bc6815 [2] 0x000000000000…00000009 |
| 0x98f3c9…9d776e | 2 days agoSat, 15 Aug 2026 22:11:57 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…00000008 |
| 0x98f3c9…9d776e | 2 days agoSat, 15 Aug 2026 22:11:57 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…00000008 |
| 0xab8f06…e844dd | 2 days agoSat, 15 Aug 2026 22:11:52 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…00000007 |
| 0xab8f06…e844dd | 2 days agoSat, 15 Aug 2026 22:11:52 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…00000007 |
| 0x5750f4…18fd54 | 2 days agoSat, 15 Aug 2026 22:11:44 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…00000006 |
| 0x5750f4…18fd54 | 2 days agoSat, 15 Aug 2026 22:11:44 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…00000006 |
| 0xf4de07…dd3532 | 2 days agoSat, 15 Aug 2026 22:11:39 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…00000005 |
| 0xf4de07…dd3532 | 2 days agoSat, 15 Aug 2026 22:11:39 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…00000005 |
| 0x9c5143…b6720b | 2 days agoSat, 15 Aug 2026 22:11:34 UTC | 0x30385c…adfe | [0] 0x000000000000…fedb25bb [1] 0x000000000000…00000004 |
| 0x9c5143…b6720b | 2 days agoSat, 15 Aug 2026 22:11:34 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…fedb25bb [2] 0x000000000000…00000004 |
| 0x8e98ef…053da6 | 2 days agoSat, 15 Aug 2026 22:11:26 UTC | 0x30385c…adfe | [0] 0x000000000000…bee69da3 [1] 0x000000000000…00000003 |
| 0x8e98ef…053da6 | 2 days agoSat, 15 Aug 2026 22:11:26 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…bee69da3 [2] 0x000000000000…00000003 |
| 0x6613ac…8454bd | 2 days agoSat, 15 Aug 2026 22:11:26 UTC | 0x30385c…adfe | [0] 0x000000000000…c6d23520 [1] 0x000000000000…00000002 |
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import {
OwnableUpgradeable
} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import {
ERC721Upgradeable
} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";
import {
ReentrancyGuardUpgradeable
} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
/// @notice The protocol's single ERC-721 collection. Fixed supply of 444. Minted for ETH at
/// an owner-settable price, forwarded to protocolWallet. Every mint starts Unactuated —
/// unusable in PositionManager until its holder pays actuationFee (burned) to Actuate it,
/// raising it to Base (see ADR-0021). Open to any caller, no cap.
contract ProjectNFT is
Initializable,
ERC721Upgradeable,
OwnableUpgradeable,
UUPSUpgradeable,
ReentrancyGuardUpgradeable
{
using Strings for uint256;
using SafeERC20 for IERC20;
uint256 public constant MAX_SUPPLY = 444;
/// @notice actuate() sends actuationFee here instead of burning it — plain IERC20 has no
/// burn primitive, and the literal zero address isn't usable: OZ's ERC20Upgradeable
/// (which ProjectToken is) explicitly reverts `transferFrom(..., address(0), ...)` with
/// ERC20InvalidReceiver. This is the conventional unspendable substitute — see ADR-0021.
/// Unlike a real burn, it does not reduce projectToken.totalSupply().
address public constant BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD;
/// @notice A Position's profit-boost level, activated (and paid for) at deposit time —
/// see ADR-0018. Lives on the NFT, not the Position: every token starts at Unactuated
/// (see ADR-0021) and is only ever non-Base while custodied inside an open Position,
/// reset back to Base by PositionManager whenever that Position closes (Withdraw, Keep
/// NFT, Cash-Out) — Keep Basket is the one exception, since it never closes the Position.
/// Unactuated is appended after T4, not inserted before Base, so Base..T4's existing
/// indices (and every tierMultiplierBps/tierActivationBps entry keyed off them) stay
/// unchanged — mint() writes it explicitly rather than relying on the enum's zero-default.
enum Tier {
Base,
T1,
T2,
T3,
T4,
Unactuated
}
/// @notice The protocol's fee token, referenced generically — see BURN_ADDRESS.
IERC20 public projectToken;
uint256 public mintPrice;
uint256 public totalMinted;
/// @notice Receives the ETH paid at mint() — see ADR-0021.
address public protocolWallet;
/// @notice Project Token burned by actuate() — see ADR-0021.
uint256 public actuationFee;
/// @notice The only contract allowed to change a token's tier (see ADR-0018).
address public positionManager;
mapping(uint256 tokenId => Tier) public tierOf;
/// @notice IPFS base URI for token metadata. Static per tokenId and never reflects
string public baseURI;
event MintPriceUpdated(uint256 newMintPrice);
event Minted(address indexed to, uint256 indexed tokenId);
event PositionManagerUpdated(address indexed newPositionManager);
event TierUpdated(uint256 indexed tokenId, Tier newTier);
event BaseURIUpdated(string newBaseURI);
event ProtocolWalletUpdated(address indexed newProtocolWallet);
event ActuationFeeUpdated(uint256 newActuationFee);
event Actuated(uint256 indexed tokenId, address indexed by);
error SupplyExhausted();
error NotPositionManager();
error NotTokenOwner();
error AlreadyActuated();
error IncorrectMintPayment();
error EthTransferFailed();
modifier onlyPositionManager() {
if (msg.sender != positionManager) revert NotPositionManager();
_;
}
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
function initialize(
string calldata name_,
string calldata symbol_,
address owner_,
address projectToken_,
uint256 mintPrice_,
address protocolWallet_,
uint256 actuationFee_
) external initializer {
__ERC721_init(name_, symbol_);
__Ownable_init(owner_);
__UUPSUpgradeable_init();
__ReentrancyGuard_init();
projectToken = IERC20(projectToken_);
mintPrice = mintPrice_;
emit MintPriceUpdated(mintPrice_);
protocolWallet = protocolWallet_;
emit ProtocolWalletUpdated(protocolWallet_);
actuationFee = actuationFee_;
emit ActuationFeeUpdated(actuationFee_);
}
function setMintPrice(uint256 newMintPrice) external onlyOwner {
mintPrice = newMintPrice;
emit MintPriceUpdated(newMintPrice);
}
/// @notice Sets the address mint() forwards its ETH to — see ADR-0021.
function setProtocolWallet(address newProtocolWallet) external onlyOwner {
protocolWallet = newProtocolWallet;
emit ProtocolWalletUpdated(newProtocolWallet);
}
/// @notice Sets the Project Token amount actuate() burns — see ADR-0021.
function setActuationFee(uint256 newActuationFee) external onlyOwner {
actuationFee = newActuationFee;
emit ActuationFeeUpdated(newActuationFee);
}
/// @notice Sets the IPFS base URI metadata is served from — see ADR-0020.
function setBaseURI(string calldata newBaseURI) external onlyOwner {
baseURI = newBaseURI;
emit BaseURIUpdated(newBaseURI);
}
/// @notice `{baseURI}{tokenId}.json` — static per tokenId, never reflects tierOf (ADR-0020).
function tokenURI(uint256 tokenId) public view override returns (string memory) {
_requireOwned(tokenId);
return string.concat(baseURI, tokenId.toString(), ".json");
}
function setPositionManager(address newPositionManager) external onlyOwner {
positionManager = newPositionManager;
emit PositionManagerUpdated(newPositionManager);
}
/// @notice Sets `tokenId`'s tier — PositionManager-only, called both to activate a paid
/// tier at deposit time and to reset back to Base whenever the owning Position closes
/// (see ADR-0018).
function setTier(uint256 tokenId, Tier newTier) external onlyPositionManager {
tierOf[tokenId] = newTier;
emit TierUpdated(tokenId, newTier);
}
/// @notice Pays `mintPrice` ETH, forwarded to protocolWallet, and mints the next NFT to
/// the caller. Starts Unactuated — see ADR-0021, actuate().
function mint() external payable nonReentrant returns (uint256 tokenId) {
if (totalMinted >= MAX_SUPPLY) revert SupplyExhausted();
if (msg.value != mintPrice) revert IncorrectMintPayment();
unchecked {
tokenId = ++totalMinted;
}
tierOf[tokenId] = Tier.Unactuated;
_safeMint(msg.sender, tokenId);
(bool sent,) = protocolWallet.call{value: msg.value}("");
if (!sent) revert EthTransferFailed();
emit Minted(msg.sender, tokenId);
}
/// @notice Sends `actuationFee` ProjectToken from the caller to BURN_ADDRESS and raises
/// `tokenId` from Unactuated to Base, unlocking it for PositionManager.deposit() — see
/// ADR-0021. Callable only by the token's current holder, only while still Unactuated:
/// permanent once done, since nothing ever writes Tier.Unactuated again afterward.
/// @dev Caller must have approved this contract to spend `actuationFee` ProjectToken beforehand.
function actuate(uint256 tokenId) external nonReentrant {
if (ownerOf(tokenId) != msg.sender) revert NotTokenOwner();
if (tierOf[tokenId] != Tier.Unactuated) revert AlreadyActuated();
if (actuationFee > 0) {
projectToken.safeTransferFrom(msg.sender, BURN_ADDRESS, actuationFee);
}
tierOf[tokenId] = Tier.Base;
emit Actuated(tokenId, msg.sender);
emit TierUpdated(tokenId, Tier.Base);
}
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
}[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"name": "AddressEmptyCode",
"type": "error",
"inputs": [
{
"name": "target",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "AlreadyActuated",
"type": "error",
"inputs": []
},
{
"name": "ERC1967InvalidImplementation",
"type": "error",
"inputs": [
{
"name": "implementation",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1967NonPayable",
"type": "error",
"inputs": []
},
{
"name": "ERC721IncorrectOwner",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InsufficientApproval",
"type": "error",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC721InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidOperator",
"type": "error",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC721NonexistentToken",
"type": "error",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "EthTransferFailed",
"type": "error",
"inputs": []
},
{
"name": "FailedCall",
"type": "error",
"inputs": []
},
{
"name": "IncorrectMintPayment",
"type": "error",
"inputs": []
},
{
"name": "InvalidInitialization",
"type": "error",
"inputs": []
},
{
"name": "NotInitializing",
"type": "error",
"inputs": []
},
{
"name": "NotPositionManager",
"type": "error",
"inputs": []
},
{
"name": "NotTokenOwner",
"type": "error",
"inputs": []
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "SupplyExhausted",
"type": "error",
"inputs": []
},
{
"name": "UUPSUnauthorizedCallContext",
"type": "error",
"inputs": []
},
{
"name": "UUPSUnsupportedProxiableUUID",
"type": "error",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"name": "Actuated",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "by",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ActuationFeeUpdated",
"type": "event",
"inputs": [
{
"name": "newActuationFee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "approved",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ApprovalForAll",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "BaseURIUpdated",
"type": "event",
"inputs": [
{
"name": "newBaseURI",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "Initialized",
"type": "event",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "MintPriceUpdated",
"type": "event",
"inputs": [
{
"name": "newMintPrice",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Minted",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PositionManagerUpdated",
"type": "event",
"inputs": [
{
"name": "newPositionManager",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ProtocolWalletUpdated",
"type": "event",
"inputs": [
{
"name": "newProtocolWallet",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "TierUpdated",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "newTier",
"type": "uint8",
"indexed": false,
"internalType": "enum ProjectNFT.Tier"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Upgraded",
"type": "event",
"inputs": [
{
"name": "implementation",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "BURN_ADDRESS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "MAX_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "UPGRADE_INTERFACE_VERSION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "actuate",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "actuationFee",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "baseURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "getApproved",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "initialize",
"type": "function",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "owner_",
"type": "address",
"internalType": "address"
},
{
"name": "projectToken_",
"type": "address",
"internalType": "address"
},
{
"name": "mintPrice_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "protocolWallet_",
"type": "address",
"internalType": "address"
},
{
"name": "actuationFee_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "isApprovedForAll",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "mint",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "mintPrice",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "ownerOf",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "positionManager",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "projectToken",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"name": "protocolWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "proxiableUUID",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setActuationFee",
"type": "function",
"inputs": [
{
"name": "newActuationFee",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setApprovalForAll",
"type": "function",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setBaseURI",
"type": "function",
"inputs": [
{
"name": "newBaseURI",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMintPrice",
"type": "function",
"inputs": [
{
"name": "newMintPrice",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPositionManager",
"type": "function",
"inputs": [
{
"name": "newPositionManager",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setProtocolWallet",
"type": "function",
"inputs": [
{
"name": "newProtocolWallet",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTier",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "newTier",
"type": "uint8",
"internalType": "enum ProjectNFT.Tier"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "tierOf",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "enum ProjectNFT.Tier"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalMinted",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "upgradeToAndCall",
"type": "function",
"inputs": [
{
"name": "newImplementation",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "payable"
}
]0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161248a90816100ed823960805181818161131001526113a20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611c365750806306d6e63f14611c0e57806306fdde0314611b51578063081812fc14611b08578063095ea7b314611a1c5780631249c58b1461174757806323b872dd1461173057806332cb6b0c146117145780633bdc6f641461158857806342842e0e146115595780634b60ce77146115325780634f1ef2861461136457806352d1902d146112fe57806353f96df2146112cc57806355f804b3146111045780635760f2e31461109e5780636352211e1461106e5780636817c76c146110515780636c0360eb14610fbf57806370a0823114610f70578063715018a614610f09578063791b98bc14610ee15780638da5cb5b14610ead57806395d89b4114610dcb578063a22cb46514610d33578063a2309ff814610d16578063ac68113f14610c86578063ad3cb1cc14610c3f578063b05c8d4814610bf3578063b88d4fde14610b98578063c87b56dd14610939578063d2a4a7ed1461091c578063e239ccc814610307578063e985e9c5146102bb578063f01e9a8b14610255578063f2fde38b1461022a578063f4a0a528146101de5763fccc2813146101be575f80fd5b346101da575f3660031901126101da57602060405161dead8152f35b5f80fd5b346101da5760203660031901126101da577f525b762709cc2a983aec5ccdfd807a061f993c91090b5bcd7da92ca254976aaa602060043561021d612179565b80600155604051908152a1005b346101da5760203660031901126101da57610253610246611cc5565b61024e612179565b6120a1565b005b346101da5760203660031901126101da5761026e611cc5565b610276612179565b600380546001600160a01b0319166001600160a01b039290921691821790557fb916d07c980006ab0bae9d0dcc612a069bcba68647e0c53e2a153fc1a6761ee45f80a2005b346101da5760403660031901126101da576102d4611cc5565b6102e56102df611cdb565b91612069565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346101da5760e03660031901126101da5760043567ffffffffffffffff81116101da57610338903690600401611dd0565b60243567ffffffffffffffff81116101da57610358903690600401611dd0565b6044356001600160a01b03811681036101da576064356001600160a01b03811691908290036101da5760a4356001600160a01b0381169560843594918790036101da5760c435955f8051602061243e8339815191525460ff8160401c16159967ffffffffffffffff821680159081610914575b600114908161090a575b159081610901575b506108f25767ffffffffffffffff1982166001175f8051602061243e8339815191525561041e93610416928c6108c6575b503691611d69565b923691611d69565b906104276122f4565b61042f6122f4565b80519067ffffffffffffffff821161079d576104585f8051602061237e83398151915254611dfe565b601f8111610857575b50602090601f83116001146107bc5761049192915f91836107b1575b50508160011b915f199060031b1c19161790565b5f8051602061237e833981519152555b80519067ffffffffffffffff821161079d576104ca5f8051602061245e83398151915254611dfe565b601f811161072e575b50602090601f831160011461066457936105717f525b762709cc2a983aec5ccdfd807a061f993c91090b5bcd7da92ca254976aaa946105518560209a98967fe0cde9d94d989b0f389c8278778de60f8fd82539bee6b7906a5860916c09b2539c9a968c985f926106595750508160011b915f199060031b1c19161790565b5f8051602061245e833981519152555b6105696122f4565b61024e6122f4565b6105796122f4565b6105816122f4565b6105896122f4565b60015f805160206123fe833981519152556bffffffffffffffffffffffff60a01b5f5416175f5580600155604051908152a1600380546001600160a01b03191683179055604051917fb916d07c980006ab0bae9d0dcc612a069bcba68647e0c53e2a153fc1a6761ee45f80a2806004558152a161060257005b68ff0000000000000000195f8051602061243e83398151915254165f8051602061243e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b015190508e8061047d565b90601f198316915f8051602061245e8339815191525f52815f20925f5b8181106107165750946001857fe0cde9d94d989b0f389c8278778de60f8fd82539bee6b7906a5860916c09b2539b999560209b9995610571958d997f525b762709cc2a983aec5ccdfd807a061f993c91090b5bcd7da92ca254976aaa9b106106fe575b505050811b015f8051602061245e83398151915255610561565b01515f1960f88460031b161c191690558d80806106e4565b92936020600181928786015181550195019301610681565b5f8051602061245e8339815191525f527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f840160051c81019160208510610793575b601f0160051c01905b81811061078857506104d3565b5f815560010161077b565b9091508190610772565b634e487b7160e01b5f52604160045260245ffd5b015190508a8061047d565b90601f198316915f8051602061237e8339815191525f527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81925f5b81811061083f5750908460019594939210610827575b505050811b015f8051602061237e833981519152556104a1565b01515f1960f88460031b161c1916905589808061080d565b929360206001819287860151815501950193016107f7565b5f8051602061237e8339815191525f527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81601f840160051c810191602085106108bc575b601f0160051c01905b8181106108b15750610461565b5f81556001016108a4565b909150819061089b565b68ffffffffffffffffff191668010000000000000001175f8051602061243e833981519152558c61040e565b63f92ee8a960e01b5f5260045ffd5b9050158c6103dd565b303b1591506103d5565b8c91506103cb565b346101da575f3660031901126101da576020600454604051908152f35b346101da5760203660031901126101da5760043561095681612112565b5080815f9272184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b811015610b72575b50806d04ee2d6d415b85acef8100000000600a921015610b57575b662386f26fc10000811015610b43575b6305f5e100811015610b32575b612710811015610b23575b6064811015610b15575b1015610b0b575b6001820190600a60216109f96109e385611d4d565b946109f16040519687611d2b565b808652611d4d565b602085019590601f19013687378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015610a3857600a9091610a0a565b5050604051905f90600754610a4c81611dfe565b9060018116908115610ae95750600114610aa6575b5082610aa294610a8e93600593518092825e0164173539b7b760d91b815203601a19810184520182611d2b565b604051918291602083526020830190611ca1565b0390f35b90915060075f525f805160206123be8339815191525f905b828210610ad357505082016020019082610a61565b6001816020925483858901015201910190610abe565b60ff191660208681019190915282151590920285019091019250839050610a61565b90600101906109ce565b6064600291049301926109c7565b612710600491049301926109bd565b6305f5e100600891049301926109b2565b662386f26fc10000601091049301926109a5565b6d04ee2d6d415b85acef810000000060209104930192610995565b6040935072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b90049050600a61097a565b346101da5760803660031901126101da57610bb1611cc5565b610bb9611cdb565b906044356064359267ffffffffffffffff84116101da57610be1610253943690600401611d9f565b92610bed838383611e65565b336121ac565b346101da5760203660031901126101da577fe0cde9d94d989b0f389c8278778de60f8fd82539bee6b7906a5860916c09b2536020600435610c32612179565b80600455604051908152a1005b346101da575f3660031901126101da57610aa2604051610c60604082611d2b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611ca1565b346101da5760403660031901126101da5760043560243560068110156101da576005546001600160a01b03163303610d0757610d027f54380abc1de34d167d10de0d099750cde7301984df803e820771880cbc1f2cdc91835f52600660205260405f2060ff1981541660ff831617905560405191829182611dbd565b0390a2005b63041fb8cb60e31b5f5260045ffd5b346101da575f3660031901126101da576020600254604051908152f35b346101da5760403660031901126101da57610d4c611cc5565b602435908115158092036101da576001600160a01b0316908115610db857610d7333612069565b825f5260205260405f2060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b5f5260045260245ffd5b346101da575f3660031901126101da576040515f5f8051602061245e83398151915254610df781611dfe565b8084529060018116908115610e895750600114610e1f575b610aa283610a8e81850382611d2b565b5f8051602061245e8339815191525f9081527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b808210610e6f57509091508101602001610a8e610e0f565b919260018160209254838588010152019101909291610e57565b60ff191660208086019190915291151560051b84019091019150610a8e9050610e0f565b346101da575f3660031901126101da575f8051602061239e833981519152546040516001600160a01b039091168152602090f35b346101da575f3660031901126101da576005546040516001600160a01b039091168152602090f35b346101da575f3660031901126101da57610f21612179565b5f8051602061239e83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101da5760203660031901126101da57610f89611cc5565b6001600160a01b03811615610fac57610fa3602091612031565b54604051908152f35b6322718ad960e21b5f525f60045260245ffd5b346101da575f3660031901126101da576040515f600754610fdf81611dfe565b8084529060018116908115610e89575060011461100657610aa283610a8e81850382611d2b565b60075f9081525f805160206123be833981519152939250905b80821061103757509091508101602001610a8e610e0f565b91926001816020925483858801015201910190929161101f565b346101da575f3660031901126101da576020600154604051908152f35b346101da5760203660031901126101da57602061108c600435612112565b6040516001600160a01b039091168152f35b346101da5760203660031901126101da576110b7611cc5565b6110bf612179565b600580546001600160a01b0319166001600160a01b039290921691821790557fec6364b6f2ba0f396e400595a24e036f54f5f02cbc9bc98ff8227632619aee8b5f80a2005b346101da5760203660031901126101da5760043567ffffffffffffffff81116101da57611135903690600401611dd0565b61113d612179565b67ffffffffffffffff811161079d57611157600754611dfe565b601f811161127c575b505f91601f82116001146111eb576040906111b283807f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad965f916111e0575b508160011b915f199060031b1c19161790565b6007555b82825193849260208452816020850152848401375f828201840152601f01601f19168101030190a1005b90508301358761119f565b601f19821660075f525f805160206123be833981519152905f5b8181106112645750907f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad9484604094931061124b575b5050600183811b016007556111b6565b8201355f19600386901b60f8161c19169055848061123b565b83860135835560209586019560019093019201611205565b60075f525f805160206123be833981519152601f830160051c810191602084106112c2575b601f0160051c01905b8181106112b75750611160565b5f81556001016112aa565b90915081906112a1565b346101da5760203660031901126101da576004355f526006602052610aa260ff60405f20541660405191829182611dbd565b346101da575f3660031901126101da577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036113555760206040515f805160206123de8339815191528152f35b63703e46dd60e11b5f5260045ffd5b60403660031901126101da57611378611cc5565b60243567ffffffffffffffff81116101da57611398903690600401611d9f565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611510575b50611355576113da612179565b6040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f91816114dc575b5061141c5783634c9c8ce360e01b5f5260045260245ffd5b805f805160206123de8339815191528592036114ca5750813b156114b8575f805160206123de83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151156114a0575f8083602061025395519101845af461149a611e36565b9161231f565b5050346114a957005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611508575b816114f860209383611d2b565b810103126101da57519085611404565b3d91506114eb565b5f805160206123de833981519152546001600160a01b031614159050836113cd565b346101da575f3660031901126101da575f546040516001600160a01b039091168152602090f35b346101da5761025361156a36611cf1565b906040519261157a602085611d2b565b5f8452610bed838383611e65565b346101da5760203660031901126101da576004356115a4612141565b6115ad81612112565b336001600160a01b039091160361170557805f52600660205260ff60405f20541660068110156116f1576005036116e2576004548061165f575b50805f52600660205260405f2060ff1981541690557f54380abc1de34d167d10de0d099750cde7301984df803e820771880cbc1f2cdc602060405133847fe491b9c9a69811b069b3a97dc37c08a7d5ceb52a34ccd92bc1a96610cef576985f80a35f8152a260015f805160206123fe83398151915255005b60205f60018060a01b0381541692604051838101916323b872dd60e01b835233602483015261dead60448301526064820152606481526116a0608482611d2b565b519082855af1156116d7575f513d6116ce5750803b155b156115e757635274afe760e01b5f5260045260245ffd5b600114156116b7565b6040513d5f823e3d90fd5b63d97e7ae560e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b6359dc379f60e01b5f5260045ffd5b346101da575f3660031901126101da5760206040516101bc8152f35b346101da5761025361174136611cf1565b91611e65565b5f3660031901126101da5761175a612141565b6002546101bc811015611a0d5760015434036119fe5760010180600255805f52600660205260405f20600560ff1982541617905560209060405161179e8382611d2b565b5f815233156119eb576117b0826122bb565b6001600160a01b03811680151591908490836119af575b6117d033612031565b805460010190555f8281527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930288526040812080546001600160a01b0319163390811790915591907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080a45061199c5782333b6118b8575b50505f8080803460018060a01b03600354165af1611864611e36565b50156118a9576040519080337f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe5f80a360015f805160206123fe833981519152558152f35b630db2c7f160e31b5f5260045ffd5b6118f09160405180938192630a85bd0160e11b83523360048401525f6024840152866044840152608060648401526084830190611ca1565b03815f335af15f918161195c575b5061192b578261190c611e36565b805191908261192857633250574960e11b5f523360045260245ffd5b01fd5b6001600160e01b03191663757a42ff60e11b01611949578282611848565b633250574960e11b5f523360045260245ffd5b9091508381813d8311611995575b6119748183611d2b565b810103126101da57516001600160e01b0319811681036101da5790846118fe565b503d61196a565b6339e3563760e11b5f525f60045260245ffd5b5f8281525f8051602061241e8339815191526020526040902080546001600160a01b03191690556119df83612031565b80545f190190556117c7565b633250574960e11b5f525f60045260245ffd5b632dd539e760e01b5f5260045ffd5b63ed227a6960e01b5f5260045ffd5b346101da5760403660031901126101da57611a35611cc5565b602435611a4181612112565b33151580611af5575b80611ad2575b611abf5781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f9081525f8051602061241e8339815191526020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b5f523360045260245ffd5b50611adc81612069565b335f908152602091909152604090205460ff1615611a50565b506001600160a01b038116331415611a4a565b346101da5760203660031901126101da57602061108c600435611b2a81612112565b505f9081525f8051602061241e83398151915260205260409020546001600160a01b031690565b346101da575f3660031901126101da576040515f5f8051602061237e83398151915254611b7d81611dfe565b8084529060018116908115610e895750600114611ba457610aa283610a8e81850382611d2b565b5f8051602061237e8339815191525f9081527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81939250905b808210611bf457509091508101602001610a8e610e0f565b919260018160209254838588010152019101909291611bdc565b346101da575f3660031901126101da576003546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da576004359063ffffffff60e01b82168092036101da576020916380ac58cd60e01b8114908115611c90575b8115611c7f575b5015158152f35b6301ffc9a760e01b14905083611c78565b635b5e139f60e01b81149150611c71565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101da57565b602435906001600160a01b03821682036101da57565b60609060031901126101da576004356001600160a01b03811681036101da57906024356001600160a01b03811681036101da579060443590565b90601f8019910116810190811067ffffffffffffffff82111761079d57604052565b67ffffffffffffffff811161079d57601f01601f191660200190565b929192611d7582611d4d565b91611d836040519384611d2b565b8294818452818301116101da578281602093845f960137010152565b9080601f830112156101da57816020611dba93359101611d69565b90565b9190602083019260068210156116f15752565b9181601f840112156101da5782359167ffffffffffffffff83116101da57602083818601950101116101da57565b90600182811c92168015611e2c575b6020831014611e1857565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611e0d565b3d15611e60573d90611e4782611d4d565b91611e556040519384611d2b565b82523d5f602084013e565b606090565b9091906001600160a01b03831680156119eb5782611e82816122bb565b9133151580611f7e575b506001600160a01b03831695611ea69087611f4257612031565b60018154019055815f527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260405f20816bffffffffffffffffffffffff60a01b825416179055857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4506001600160a01b0316808303611f2a57505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b5f8481525f8051602061241e8339815191526020526040902080546001600160a01b0319169055611f7285612031565b80545f19019055612031565b90915080611fcb575b15611f945783905f611e8c565b836001600160a01b038316611fb557637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f523360045260245260445ffd5b506001600160a01b0382163314801561200f575b80611f8757505f8481525f8051602061241e83398151915260205260409020546001600160a01b03163314611f87565b5061201982612069565b335f908152602091909152604090205460ff16611fdf565b6001600160a01b03165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b03165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b6001600160a01b031680156120ff575f8051602061239e83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b61211b816122bb565b906001600160a01b0382161561212f575090565b637e27328960e01b5f5260045260245ffd5b60025f805160206123fe833981519152541461216a5760025f805160206123fe83398151915255565b633ee5aeb560e01b5f5260045ffd5b5f8051602061239e833981519152546001600160a01b0316330361219957565b63118cdaa760e01b5f523360045260245ffd5b823b6121ba575b5050505050565b604051630a85bd0160e11b81526001600160a01b039182166004820152918116602483015260448201939093526080606482015291169160209082908190612206906084830190611ca1565b03815f865af15f9181612276575b506122425750612222611e36565b8051908161223d5782633250574960e11b5f5260045260245ffd5b602001fd5b6001600160e01b03191663757a42ff60e11b0161226457505f808080806121b3565b633250574960e11b5f5260045260245ffd5b9091506020813d6020116122b3575b8161229260209383611d2b565b810103126101da57516001600160e01b0319811681036101da57905f612214565b3d9150612285565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60ff5f8051602061243e8339815191525460401c161561231057565b631afcd79f60e31b5f5260045ffd5b90612343575080511561233457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612374575b612354575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561234c56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301a164736f6c634300081a000a
0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611c365750806306d6e63f14611c0e57806306fdde0314611b51578063081812fc14611b08578063095ea7b314611a1c5780631249c58b1461174757806323b872dd1461173057806332cb6b0c146117145780633bdc6f641461158857806342842e0e146115595780634b60ce77146115325780634f1ef2861461136457806352d1902d146112fe57806353f96df2146112cc57806355f804b3146111045780635760f2e31461109e5780636352211e1461106e5780636817c76c146110515780636c0360eb14610fbf57806370a0823114610f70578063715018a614610f09578063791b98bc14610ee15780638da5cb5b14610ead57806395d89b4114610dcb578063a22cb46514610d33578063a2309ff814610d16578063ac68113f14610c86578063ad3cb1cc14610c3f578063b05c8d4814610bf3578063b88d4fde14610b98578063c87b56dd14610939578063d2a4a7ed1461091c578063e239ccc814610307578063e985e9c5146102bb578063f01e9a8b14610255578063f2fde38b1461022a578063f4a0a528146101de5763fccc2813146101be575f80fd5b346101da575f3660031901126101da57602060405161dead8152f35b5f80fd5b346101da5760203660031901126101da577f525b762709cc2a983aec5ccdfd807a061f993c91090b5bcd7da92ca254976aaa602060043561021d612179565b80600155604051908152a1005b346101da5760203660031901126101da57610253610246611cc5565b61024e612179565b6120a1565b005b346101da5760203660031901126101da5761026e611cc5565b610276612179565b600380546001600160a01b0319166001600160a01b039290921691821790557fb916d07c980006ab0bae9d0dcc612a069bcba68647e0c53e2a153fc1a6761ee45f80a2005b346101da5760403660031901126101da576102d4611cc5565b6102e56102df611cdb565b91612069565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346101da5760e03660031901126101da5760043567ffffffffffffffff81116101da57610338903690600401611dd0565b60243567ffffffffffffffff81116101da57610358903690600401611dd0565b6044356001600160a01b03811681036101da576064356001600160a01b03811691908290036101da5760a4356001600160a01b0381169560843594918790036101da5760c435955f8051602061243e8339815191525460ff8160401c16159967ffffffffffffffff821680159081610914575b600114908161090a575b159081610901575b506108f25767ffffffffffffffff1982166001175f8051602061243e8339815191525561041e93610416928c6108c6575b503691611d69565b923691611d69565b906104276122f4565b61042f6122f4565b80519067ffffffffffffffff821161079d576104585f8051602061237e83398151915254611dfe565b601f8111610857575b50602090601f83116001146107bc5761049192915f91836107b1575b50508160011b915f199060031b1c19161790565b5f8051602061237e833981519152555b80519067ffffffffffffffff821161079d576104ca5f8051602061245e83398151915254611dfe565b601f811161072e575b50602090601f831160011461066457936105717f525b762709cc2a983aec5ccdfd807a061f993c91090b5bcd7da92ca254976aaa946105518560209a98967fe0cde9d94d989b0f389c8278778de60f8fd82539bee6b7906a5860916c09b2539c9a968c985f926106595750508160011b915f199060031b1c19161790565b5f8051602061245e833981519152555b6105696122f4565b61024e6122f4565b6105796122f4565b6105816122f4565b6105896122f4565b60015f805160206123fe833981519152556bffffffffffffffffffffffff60a01b5f5416175f5580600155604051908152a1600380546001600160a01b03191683179055604051917fb916d07c980006ab0bae9d0dcc612a069bcba68647e0c53e2a153fc1a6761ee45f80a2806004558152a161060257005b68ff0000000000000000195f8051602061243e83398151915254165f8051602061243e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b015190508e8061047d565b90601f198316915f8051602061245e8339815191525f52815f20925f5b8181106107165750946001857fe0cde9d94d989b0f389c8278778de60f8fd82539bee6b7906a5860916c09b2539b999560209b9995610571958d997f525b762709cc2a983aec5ccdfd807a061f993c91090b5bcd7da92ca254976aaa9b106106fe575b505050811b015f8051602061245e83398151915255610561565b01515f1960f88460031b161c191690558d80806106e4565b92936020600181928786015181550195019301610681565b5f8051602061245e8339815191525f527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f840160051c81019160208510610793575b601f0160051c01905b81811061078857506104d3565b5f815560010161077b565b9091508190610772565b634e487b7160e01b5f52604160045260245ffd5b015190508a8061047d565b90601f198316915f8051602061237e8339815191525f527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81925f5b81811061083f5750908460019594939210610827575b505050811b015f8051602061237e833981519152556104a1565b01515f1960f88460031b161c1916905589808061080d565b929360206001819287860151815501950193016107f7565b5f8051602061237e8339815191525f527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81601f840160051c810191602085106108bc575b601f0160051c01905b8181106108b15750610461565b5f81556001016108a4565b909150819061089b565b68ffffffffffffffffff191668010000000000000001175f8051602061243e833981519152558c61040e565b63f92ee8a960e01b5f5260045ffd5b9050158c6103dd565b303b1591506103d5565b8c91506103cb565b346101da575f3660031901126101da576020600454604051908152f35b346101da5760203660031901126101da5760043561095681612112565b5080815f9272184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b811015610b72575b50806d04ee2d6d415b85acef8100000000600a921015610b57575b662386f26fc10000811015610b43575b6305f5e100811015610b32575b612710811015610b23575b6064811015610b15575b1015610b0b575b6001820190600a60216109f96109e385611d4d565b946109f16040519687611d2b565b808652611d4d565b602085019590601f19013687378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015610a3857600a9091610a0a565b5050604051905f90600754610a4c81611dfe565b9060018116908115610ae95750600114610aa6575b5082610aa294610a8e93600593518092825e0164173539b7b760d91b815203601a19810184520182611d2b565b604051918291602083526020830190611ca1565b0390f35b90915060075f525f805160206123be8339815191525f905b828210610ad357505082016020019082610a61565b6001816020925483858901015201910190610abe565b60ff191660208681019190915282151590920285019091019250839050610a61565b90600101906109ce565b6064600291049301926109c7565b612710600491049301926109bd565b6305f5e100600891049301926109b2565b662386f26fc10000601091049301926109a5565b6d04ee2d6d415b85acef810000000060209104930192610995565b6040935072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b90049050600a61097a565b346101da5760803660031901126101da57610bb1611cc5565b610bb9611cdb565b906044356064359267ffffffffffffffff84116101da57610be1610253943690600401611d9f565b92610bed838383611e65565b336121ac565b346101da5760203660031901126101da577fe0cde9d94d989b0f389c8278778de60f8fd82539bee6b7906a5860916c09b2536020600435610c32612179565b80600455604051908152a1005b346101da575f3660031901126101da57610aa2604051610c60604082611d2b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611ca1565b346101da5760403660031901126101da5760043560243560068110156101da576005546001600160a01b03163303610d0757610d027f54380abc1de34d167d10de0d099750cde7301984df803e820771880cbc1f2cdc91835f52600660205260405f2060ff1981541660ff831617905560405191829182611dbd565b0390a2005b63041fb8cb60e31b5f5260045ffd5b346101da575f3660031901126101da576020600254604051908152f35b346101da5760403660031901126101da57610d4c611cc5565b602435908115158092036101da576001600160a01b0316908115610db857610d7333612069565b825f5260205260405f2060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b5f5260045260245ffd5b346101da575f3660031901126101da576040515f5f8051602061245e83398151915254610df781611dfe565b8084529060018116908115610e895750600114610e1f575b610aa283610a8e81850382611d2b565b5f8051602061245e8339815191525f9081527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b808210610e6f57509091508101602001610a8e610e0f565b919260018160209254838588010152019101909291610e57565b60ff191660208086019190915291151560051b84019091019150610a8e9050610e0f565b346101da575f3660031901126101da575f8051602061239e833981519152546040516001600160a01b039091168152602090f35b346101da575f3660031901126101da576005546040516001600160a01b039091168152602090f35b346101da575f3660031901126101da57610f21612179565b5f8051602061239e83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101da5760203660031901126101da57610f89611cc5565b6001600160a01b03811615610fac57610fa3602091612031565b54604051908152f35b6322718ad960e21b5f525f60045260245ffd5b346101da575f3660031901126101da576040515f600754610fdf81611dfe565b8084529060018116908115610e89575060011461100657610aa283610a8e81850382611d2b565b60075f9081525f805160206123be833981519152939250905b80821061103757509091508101602001610a8e610e0f565b91926001816020925483858801015201910190929161101f565b346101da575f3660031901126101da576020600154604051908152f35b346101da5760203660031901126101da57602061108c600435612112565b6040516001600160a01b039091168152f35b346101da5760203660031901126101da576110b7611cc5565b6110bf612179565b600580546001600160a01b0319166001600160a01b039290921691821790557fec6364b6f2ba0f396e400595a24e036f54f5f02cbc9bc98ff8227632619aee8b5f80a2005b346101da5760203660031901126101da5760043567ffffffffffffffff81116101da57611135903690600401611dd0565b61113d612179565b67ffffffffffffffff811161079d57611157600754611dfe565b601f811161127c575b505f91601f82116001146111eb576040906111b283807f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad965f916111e0575b508160011b915f199060031b1c19161790565b6007555b82825193849260208452816020850152848401375f828201840152601f01601f19168101030190a1005b90508301358761119f565b601f19821660075f525f805160206123be833981519152905f5b8181106112645750907f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad9484604094931061124b575b5050600183811b016007556111b6565b8201355f19600386901b60f8161c19169055848061123b565b83860135835560209586019560019093019201611205565b60075f525f805160206123be833981519152601f830160051c810191602084106112c2575b601f0160051c01905b8181106112b75750611160565b5f81556001016112aa565b90915081906112a1565b346101da5760203660031901126101da576004355f526006602052610aa260ff60405f20541660405191829182611dbd565b346101da575f3660031901126101da577f000000000000000000000000b2ffe1d4f9503d74cf999bde9bae229b20636bfd6001600160a01b031630036113555760206040515f805160206123de8339815191528152f35b63703e46dd60e11b5f5260045ffd5b60403660031901126101da57611378611cc5565b60243567ffffffffffffffff81116101da57611398903690600401611d9f565b6001600160a01b037f000000000000000000000000b2ffe1d4f9503d74cf999bde9bae229b20636bfd16308114908115611510575b50611355576113da612179565b6040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f91816114dc575b5061141c5783634c9c8ce360e01b5f5260045260245ffd5b805f805160206123de8339815191528592036114ca5750813b156114b8575f805160206123de83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151156114a0575f8083602061025395519101845af461149a611e36565b9161231f565b5050346114a957005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611508575b816114f860209383611d2b565b810103126101da57519085611404565b3d91506114eb565b5f805160206123de833981519152546001600160a01b031614159050836113cd565b346101da575f3660031901126101da575f546040516001600160a01b039091168152602090f35b346101da5761025361156a36611cf1565b906040519261157a602085611d2b565b5f8452610bed838383611e65565b346101da5760203660031901126101da576004356115a4612141565b6115ad81612112565b336001600160a01b039091160361170557805f52600660205260ff60405f20541660068110156116f1576005036116e2576004548061165f575b50805f52600660205260405f2060ff1981541690557f54380abc1de34d167d10de0d099750cde7301984df803e820771880cbc1f2cdc602060405133847fe491b9c9a69811b069b3a97dc37c08a7d5ceb52a34ccd92bc1a96610cef576985f80a35f8152a260015f805160206123fe83398151915255005b60205f60018060a01b0381541692604051838101916323b872dd60e01b835233602483015261dead60448301526064820152606481526116a0608482611d2b565b519082855af1156116d7575f513d6116ce5750803b155b156115e757635274afe760e01b5f5260045260245ffd5b600114156116b7565b6040513d5f823e3d90fd5b63d97e7ae560e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b6359dc379f60e01b5f5260045ffd5b346101da575f3660031901126101da5760206040516101bc8152f35b346101da5761025361174136611cf1565b91611e65565b5f3660031901126101da5761175a612141565b6002546101bc811015611a0d5760015434036119fe5760010180600255805f52600660205260405f20600560ff1982541617905560209060405161179e8382611d2b565b5f815233156119eb576117b0826122bb565b6001600160a01b03811680151591908490836119af575b6117d033612031565b805460010190555f8281527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930288526040812080546001600160a01b0319163390811790915591907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080a45061199c5782333b6118b8575b50505f8080803460018060a01b03600354165af1611864611e36565b50156118a9576040519080337f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe5f80a360015f805160206123fe833981519152558152f35b630db2c7f160e31b5f5260045ffd5b6118f09160405180938192630a85bd0160e11b83523360048401525f6024840152866044840152608060648401526084830190611ca1565b03815f335af15f918161195c575b5061192b578261190c611e36565b805191908261192857633250574960e11b5f523360045260245ffd5b01fd5b6001600160e01b03191663757a42ff60e11b01611949578282611848565b633250574960e11b5f523360045260245ffd5b9091508381813d8311611995575b6119748183611d2b565b810103126101da57516001600160e01b0319811681036101da5790846118fe565b503d61196a565b6339e3563760e11b5f525f60045260245ffd5b5f8281525f8051602061241e8339815191526020526040902080546001600160a01b03191690556119df83612031565b80545f190190556117c7565b633250574960e11b5f525f60045260245ffd5b632dd539e760e01b5f5260045ffd5b63ed227a6960e01b5f5260045ffd5b346101da5760403660031901126101da57611a35611cc5565b602435611a4181612112565b33151580611af5575b80611ad2575b611abf5781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f9081525f8051602061241e8339815191526020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b5f523360045260245ffd5b50611adc81612069565b335f908152602091909152604090205460ff1615611a50565b506001600160a01b038116331415611a4a565b346101da5760203660031901126101da57602061108c600435611b2a81612112565b505f9081525f8051602061241e83398151915260205260409020546001600160a01b031690565b346101da575f3660031901126101da576040515f5f8051602061237e83398151915254611b7d81611dfe565b8084529060018116908115610e895750600114611ba457610aa283610a8e81850382611d2b565b5f8051602061237e8339815191525f9081527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81939250905b808210611bf457509091508101602001610a8e610e0f565b919260018160209254838588010152019101909291611bdc565b346101da575f3660031901126101da576003546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da576004359063ffffffff60e01b82168092036101da576020916380ac58cd60e01b8114908115611c90575b8115611c7f575b5015158152f35b6301ffc9a760e01b14905083611c78565b635b5e139f60e01b81149150611c71565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101da57565b602435906001600160a01b03821682036101da57565b60609060031901126101da576004356001600160a01b03811681036101da57906024356001600160a01b03811681036101da579060443590565b90601f8019910116810190811067ffffffffffffffff82111761079d57604052565b67ffffffffffffffff811161079d57601f01601f191660200190565b929192611d7582611d4d565b91611d836040519384611d2b565b8294818452818301116101da578281602093845f960137010152565b9080601f830112156101da57816020611dba93359101611d69565b90565b9190602083019260068210156116f15752565b9181601f840112156101da5782359167ffffffffffffffff83116101da57602083818601950101116101da57565b90600182811c92168015611e2c575b6020831014611e1857565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611e0d565b3d15611e60573d90611e4782611d4d565b91611e556040519384611d2b565b82523d5f602084013e565b606090565b9091906001600160a01b03831680156119eb5782611e82816122bb565b9133151580611f7e575b506001600160a01b03831695611ea69087611f4257612031565b60018154019055815f527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260405f20816bffffffffffffffffffffffff60a01b825416179055857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4506001600160a01b0316808303611f2a57505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b5f8481525f8051602061241e8339815191526020526040902080546001600160a01b0319169055611f7285612031565b80545f19019055612031565b90915080611fcb575b15611f945783905f611e8c565b836001600160a01b038316611fb557637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f523360045260245260445ffd5b506001600160a01b0382163314801561200f575b80611f8757505f8481525f8051602061241e83398151915260205260409020546001600160a01b03163314611f87565b5061201982612069565b335f908152602091909152604090205460ff16611fdf565b6001600160a01b03165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b03165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b6001600160a01b031680156120ff575f8051602061239e83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b61211b816122bb565b906001600160a01b0382161561212f575090565b637e27328960e01b5f5260045260245ffd5b60025f805160206123fe833981519152541461216a5760025f805160206123fe83398151915255565b633ee5aeb560e01b5f5260045ffd5b5f8051602061239e833981519152546001600160a01b0316330361219957565b63118cdaa760e01b5f523360045260245ffd5b823b6121ba575b5050505050565b604051630a85bd0160e11b81526001600160a01b039182166004820152918116602483015260448201939093526080606482015291169160209082908190612206906084830190611ca1565b03815f865af15f9181612276575b506122425750612222611e36565b8051908161223d5782633250574960e11b5f5260045260245ffd5b602001fd5b6001600160e01b03191663757a42ff60e11b0161226457505f808080806121b3565b633250574960e11b5f5260045260245ffd5b9091506020813d6020116122b3575b8161229260209383611d2b565b810103126101da57516001600160e01b0319811681036101da57905f612214565b3d9150612285565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60ff5f8051602061243e8339815191525460401c161561231057565b631afcd79f60e31b5f5260045ffd5b90612343575080511561233457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612374575b612354575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561234c56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301a164736f6c634300081a000a
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xdfdfff…0f9bbb | Mint | 37,464,115 | 2 days agoSat, 15 Aug 2026 22:12:25 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000254 | |
| 0x81a072…7a677d | Mint | 37,464,079 | 2 days agoSat, 15 Aug 2026 22:12:22 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000251 | |
| 0x361b5c…f121f8 | Mint | 37,463,992 | 2 days agoSat, 15 Aug 2026 22:12:13 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000249 | |
| 0xd7e429…6c88f4 | Mint | 37,463,949 | 2 days agoSat, 15 Aug 2026 22:12:08 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000253 | |
| 0x5f9733…147ead | Mint | 37,463,910 | 2 days agoSat, 15 Aug 2026 22:12:05 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000253 | |
| 0x15146f…37a5f0 | Mint | 37,463,868 | 2 days agoSat, 15 Aug 2026 22:12:00 UTC | 0x2485…6815 | IN | ProjectNFT | $0.000 ETH | 0.00000300 | |
| 0x98f3c9…9d776e | Mint | 37,463,833 | 2 days agoSat, 15 Aug 2026 22:11:57 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000249 | |
| 0xab8f06…e844dd | Mint | 37,463,784 | 2 days agoSat, 15 Aug 2026 22:11:52 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000250 | |
| 0x5750f4…18fd54 | Mint | 37,463,704 | 2 days agoSat, 15 Aug 2026 22:11:44 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000250 | |
| 0xf4de07…dd3532 | Mint | 37,463,654 | 2 days agoSat, 15 Aug 2026 22:11:39 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000250 | |
| 0x9c5143…b6720b | Mint | 37,463,602 | 2 days agoSat, 15 Aug 2026 22:11:34 UTC | 0xe6f2…25bb | IN | ProjectNFT | $0.000 ETH | 0.00000300 | |
| 0x8e98ef…053da6 | Mint | 37,463,530 | 2 days agoSat, 15 Aug 2026 22:11:26 UTC | 0x2b5b…9da3 | IN | ProjectNFT | $0.000 ETH | 0.00000300 | |
| 0x6613ac…8454bd | Mint | 37,463,524 | 2 days agoSat, 15 Aug 2026 22:11:26 UTC | 0xdb2f…3520 | IN | ProjectNFT | $0.000 ETH | 0.00000298 | |
| 0x392baf…cd20a5 | Mint | 37,463,375 | 2 days agoSat, 15 Aug 2026 22:11:11 UTC | 0x628e…4f11 | IN | ProjectNFT | $0.000 ETH | 0.00000401 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 37,285,245 | 2 days agoSat, 15 Aug 2026 17:13:34 UTC | 0x3ef39d…618ed8 | DELEGATECALL | Mint | 0xe7c6…fdf1 | IN | 0xb2ff…6bfd | 0.00001 ETH |
| 37,168,772 | 2 days agoSat, 15 Aug 2026 13:59:00 UTC | 0x0ebabf…40a3c8 | DELEGATECALL | Mint | 0xe7c6…fdf1 | IN | 0xb2ff…6bfd | 0.00001 ETH |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||