|
|
@ -18,6 +18,656 @@ ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'svg', 'mp4', 'webp'}
|
|
|
|
MAX_CONTENT_LENGTH = 32 * 1024 * 1024
|
|
|
|
MAX_CONTENT_LENGTH = 32 * 1024 * 1024
|
|
|
|
TEMPLATES_AUTO_RELOAD = getenv('TEMPLATES_AUTO_RELOAD', True)
|
|
|
|
TEMPLATES_AUTO_RELOAD = getenv('TEMPLATES_AUTO_RELOAD', True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Contract
|
|
|
|
|
|
|
|
CONTRACT_ADDRESS = '0xBAb68B24068D21Fa862908818054c7e4d921db5A' # rinkeby ETH
|
|
|
|
|
|
|
|
CONTRACT_ABI = [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "constructor"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"anonymous": False,
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"indexed": True,
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "owner",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"indexed": True,
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "approved",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"indexed": True,
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"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": True,
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "previousOwner",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"indexed": True,
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "newOwner",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "OwnershipTransferred",
|
|
|
|
|
|
|
|
"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": "tokenId",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "Transfer",
|
|
|
|
|
|
|
|
"type": "event"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "to",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"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",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "contractCreator",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "contractVersion",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "creatorTips",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "creatorTokensMinted",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "creatorWowneroAddress",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "getApproved",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "owner",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "operator",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "isApprovedForAll",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "bool",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "bool"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "metadataTokenId",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "name",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "owner",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "ownerOf",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "renounceOwnership",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "function"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "from",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "to",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"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": "tokenId",
|
|
|
|
|
|
|
|
"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": "bytes4",
|
|
|
|
|
|
|
|
"name": "interfaceId",
|
|
|
|
|
|
|
|
"type": "bytes4"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "supportsInterface",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "bool",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "bool"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "symbol",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "tipperTips",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "tokenCreator",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "tokenMetadata",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "tokenTips",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "from",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "to",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "transferFrom",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "function"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "address",
|
|
|
|
|
|
|
|
"name": "newOwner",
|
|
|
|
|
|
|
|
"type": "address"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "transferOwnership",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "function"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "withdraw",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "function"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [],
|
|
|
|
|
|
|
|
"name": "totalSupply",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "wowneroAddress",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "set_wownero_address",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "function"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "metadataIPFSHash",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "mint",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "nonpayable",
|
|
|
|
|
|
|
|
"type": "function"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "tip",
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"stateMutability": "payable",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"payable": True
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"inputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "uint256",
|
|
|
|
|
|
|
|
"name": "tokenId",
|
|
|
|
|
|
|
|
"type": "uint256"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"name": "tokenURI",
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"internalType": "string",
|
|
|
|
|
|
|
|
"name": "",
|
|
|
|
|
|
|
|
"type": "string"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"stateMutability": "view",
|
|
|
|
|
|
|
|
"type": "function",
|
|
|
|
|
|
|
|
"constant": True
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
# Logging
|
|
|
|
# Logging
|
|
|
|
LOGGING_CONFIG = {
|
|
|
|
LOGGING_CONFIG = {
|
|
|
|
'version': 1,
|
|
|
|
'version': 1,
|
|
|
|