Files
dungeons-and-dragons-nft/build/contracts/DungeonsAndDragonsCharacter.json
PatrickAlphaC 9dcfaf5133 updated
2020-12-01 13:58:30 -05:00

13453 lines
651 KiB
JSON

{
"contractName": "DungeonsAndDragonsCharacter",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_VRFCoordinator",
"type": "address"
},
{
"internalType": "address",
"name": "_LinkToken",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_keyhash",
"type": "bytes32"
}
],
"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": [],
"name": "LinkToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [],
"name": "VRFCoordinator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"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": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "characters",
"outputs": [
{
"internalType": "uint256",
"name": "strength",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "dexterity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "constitution",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "intelligence",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "wisdom",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "charisma",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "experience",
"type": "uint256"
},
{
"internalType": "string",
"name": "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": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "randomResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "randomness",
"type": "uint256"
}
],
"name": "rawFulfillRandomness",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_keyHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_fee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_seed",
"type": "uint256"
}
],
"name": "requestRandomness",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"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": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [],
"name": "totalSupply",
"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": [
{
"internalType": "uint256",
"name": "userProvidedSeed",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "requestNewRandomCharacter",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getTokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenURI",
"type": "string"
}
],
"name": "setTokenURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getLevel",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [],
"name": "getNumberOfCharacters",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getCharacterOverView",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getCharacterStats",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
}
],
"metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_VRFCoordinator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_LinkToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_keyhash\",\"type\":\"bytes32\"}],\"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\":[],\"name\":\"LinkToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VRFCoordinator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"characters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dexterity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"constitution\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"wisdom\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"charisma\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getCharacterOverView\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getCharacterStats\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumberOfCharacters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"randomness\",\"type\":\"uint256\"}],\"name\":\"rawFulfillRandomness\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userProvidedSeed\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"requestNewRandomCharacter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_keyHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_seed\",\"type\":\"uint256\"}],\"name\":\"requestRandomness\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenURI\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"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\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"requestRandomness(bytes32,uint256,uint256)\":{\"details\":\"The source of the seed data must be something which the oraclecannot anticipate. See \\\"SECURITY CONSIDERATIONS\\\" above.The fulfillRandomness method receives the output, once it's providedby the Oracle, and verified by the vrfCoordinator.The _keyHash must already be registered with the VRFCoordinator, andthe _fee must exceed the fee specified during registration of the_keyHash.The returned requestId can be used to distinguish responses to *concurrent requests. It is passed as the first argument tofulfillRandomness.\",\"params\":{\"_fee\":\"The amount of LINK to send with the request\",\"_keyHash\":\"ID of public key against which randomness is generated\",\"_seed\":\"Random seed from which output randomness is determined\"},\"returns\":{\"requestId\":\"which will be returned with the response to this request\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. * Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"constructor\":\"Constructor inherits VRFConsumerBase * Network: Rinkeby Chainlink VRF Coordinator address: 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B LINK token address: 0x01BE23585060835E02B77ef475b0Cc51aA1e0709 Key Hash: 0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311\",\"requestRandomness(bytes32,uint256,uint256)\":{\"notice\":\"requestRandomness initiates a request for VRF output given _seed\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/patrick/code/dungeons-and-dragons-nft/contracts/DungeonsAndDragonsCharacter.sol\":\"DungeonsAndDragonsCharacter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/patrick/code/dungeons-and-dragons-nft/contracts/DungeonsAndDragonsCharacter.sol\":{\"keccak256\":\"0x295463ce5af801b223623367581f41220310b6b0065ff6d0977c754f4fdd3cdc\",\"urls\":[\"bzz-raw://e534fef48e2075526ed31b2dcd016b3d6399f01b4e00a29bfe5955bf2fc8c5fb\",\"dweb:/ipfs/Qmf5cb6upFKk7DWRPpkGN18xWuFV74TbUupVFn3b8Lw68B\"]},\"@chainlink/contracts/src/v0.6/VRFConsumerBase.sol\":{\"keccak256\":\"0x183dc62c0b4490931e4c847e9e6a0a1e84d4f2ddfe2ab5cff44c7f1b2c848582\",\"urls\":[\"bzz-raw://d1c3ba3193145f2df8c10395887ee7f2e2ad33418fe8f0e86110e8321e6a70e0\",\"dweb:/ipfs/QmeiwQm3tioeLPUmCpJSWeKUi7LcB8gQgaFX34xwF7fqFW\"]},\"@chainlink/contracts/src/v0.6/VRFRequestIDBase.sol\":{\"keccak256\":\"0x49fd3481ccbfedaedc2072f3338a873009e497a15279c857239c59cbf417ab9a\",\"urls\":[\"bzz-raw://78114391bf17e3fcbaa66b5fe75458d1b0621f5ede7394ce5baaa6042ab922a5\",\"dweb:/ipfs/QmUkrvFsVuXPWjjUtT8SbDkicWcmEn6GsbXkoEsopj3g7y\"]},\"@chainlink/contracts/src/v0.6/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xdbf46b45a4c9f38ba71a0391aed0e7b108854b619f292d907ae537228868bda6\",\"urls\":[\"bzz-raw://3ae40466809630c4731e2e3a697d6885727c577aaf260766c8a2f534ad3f6ee8\",\"dweb:/ipfs/QmTzpN5yP4Y5jvQ1ohfXFrce3sjzUiSChYJgZj9VvhVohG\"]},\"@chainlink/contracts/src/v0.6/vendor/SafeMath.sol\":{\"keccak256\":\"0x95dbe2dd5ab8682b99bc3d7d297b621d4237442da160f78d3323ee5c4a06ded3\",\"urls\":[\"bzz-raw://d753308ff4eb43fba6f9ede371a33f707c5818350770dcb078a7d78ac8251361\",\"dweb:/ipfs/Qme64eYKWoTQiP3WhqGHoMqrENNZ9L8SdBLQ2hx5SmzUda\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xfc398838759c3248bdca40f7bc060e789c8d715df22f9eee7494bcafe14fa1b8\",\"urls\":[\"bzz-raw://ca2e28a5681be0558b2de6a24c107299925f8bd9e3244e9a70b033d6eab782c8\",\"dweb:/ipfs/QmX5kRT4Gwq4GQYfEdxVsE7PALpGfQEuQJhsfpCap9inKm\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xaf936da92f3a9a4f98b237323b5eb1d813fb86c4d07a184beba7027cf0509ba3\",\"urls\":[\"bzz-raw://aaa210e132e06975eb9f20060db6ba7dee78f6fce691a1c2489525584de521c0\",\"dweb:/ipfs/QmRwzi4nUW3UWBwhY5ik2xW3JZo9NMLN5UyGi1xPpMQYrh\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x3636662804cd8f474536b2875a9038a4c3fb91879f1bbff48af5c3f140fcd2f0\",\"urls\":[\"bzz-raw://9fab8521263fa581544000cb57335a3f2e6bcdfbb5579d3ceaa5acf741c67c4f\",\"dweb:/ipfs/QmZfXnMom7JSNtfyie5yGPN1SUC4SmHbz4ScVBH88URmA7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xe7f984cedc00a138dc27f263c73c32ba9a4b2fd23b6c34ac46f46c074b943538\",\"urls\":[\"bzz-raw://0f4acda12f076fe7584921241ddbb5b460ca7cad6cb8a42252ac7f2a9f539127\",\"dweb:/ipfs/QmQmfhkEv9GrhdWe67QtXnU19AMuoEmy31QnHPkucdYLjZ\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x321ee37ef4925020aa818a03ec7fe48e057561f65ab009a84f6c20c86026ade7\",\"urls\":[\"bzz-raw://01f9d74a17a56024984251b97e428e24c9d3abffbae5bd290f0ec263c82e9694\",\"dweb:/ipfs/QmRryCuuXu2ukrDmatB8TqdEhPLiK6NBRt41RiPUaX1qKy\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf5fa8cbdffa5ef8be49b246b5628facc30b71707e78a45d80d93b64eff3fe390\",\"urls\":[\"bzz-raw://774e78a9ff32792cc95db4d2ceaf3a7965bb7f0bea5e6cb7cff182b450d44b37\",\"dweb:/ipfs/QmRRMC4uj7eAcLW7chynA3sNEYULMFazdLwQHKHQPyzAbA\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xb2a11b236f073662f5a196995863f51c11d006bf7c3de158b316dfa1506c4b79\",\"urls\":[\"bzz-raw://8651649cf0b9efa18c3b01c030276fa320d41adbdc286833417e7f36e357b2f3\",\"dweb:/ipfs/QmafhM2Nd1aP43QVB1eRRZaqRXQKswNfQcWi8U8xjrxCfN\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x79484115dbfa737054f73e041009a02eeb434dd81be5d684bf4255ad3b5ab558\",\"urls\":[\"bzz-raw://12c119699463450c2544f5b9d8709b5e9e9164c62948a79c3ec53423a051d969\",\"dweb:/ipfs/QmPJduzSAaekq447QeFqAp3E7dc8CnNk5ajofckJ4ahA7Q\"]}},\"version\":1}",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200492a3803806200492a833981810160405260608110156200003757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505082826040518060400160405280601b81526020017f44756e67656f6e73416e64447261676f6e7343686172616374657200000000008152506040518060400160405280600381526020017f4426440000000000000000000000000000000000000000000000000000000000815250620000e26301ffc9a760e01b6200033460201b60201c565b8160069080519060200190620000fa92919062000445565b5080600790805190602001906200011392919062000445565b506200012c6380ac58cd60e01b6200033460201b60201c565b62000144635b5e139f60e01b6200033460201b60201c565b6200015c63780e9d6360e01b6200033460201b60201c565b505081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506000620001f46200043d60201b60201c565b905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e8190555067016345785d8a0000600f81905550505050620004f4565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620003d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200048857805160ff1916838001178555620004b9565b82800160010185558215620004b9579182015b82811115620004b85782518255916020019190600101906200049b565b5b509050620004c89190620004cc565b5090565b620004f191905b80821115620004ed576000816000905550600101620004d3565b5090565b90565b61442680620005046000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806362d36dec1161011a57806394985ddd116100ad578063b88d4fde1161007c578063b88d4fde14610d8e578063c87b56dd14610e93578063dc6cfe1014610f3a578063e985e9c514610f90578063f2fde38b1461100c57610206565b806394985ddd14610c4157806395d89b4114610c795780639e317f1214610cfc578063a22cb46514610d3e57610206565b806370a08231116100e957806370a0823114610b53578063715018a614610bab57806386481d4014610bb55780638da5cb5b14610bf757610206565b806362d36dec146109d85780636352211e146109f65780636c0360eb14610a645780636fe0c04614610ae757610206565b80632f745c591161019d57806342842e0e1161016c57806342842e0e1461074a5780634810bc59146107b85780634f6ccce7146108905780634f8e2fdf146108d25780634f95b5f01461091c57610206565b80632f745c59146105d957806333b608631461063b5780633bb3a24d1461068557806342619f661461072c57610206565b8063095ea7b3116101d9578063095ea7b31461043a578063162094c41461048857806318160ddd1461054d57806323b872dd1461056b57610206565b806301ffc9a71461020b57806306396dbe1461027057806306fdde0314610349578063081812fc146103cc575b600080fd5b6102566004803603602081101561022157600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611050565b604051808215151515815260200191505060405180910390f35b6103336004803603604081101561028657600080fd5b8101908080359060200190929190803590602001906401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110b7565b6040518082815260200191505060405180910390f35b610351611284565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610391578082015181840152602081019050610376565b50505050905090810190601f1680156103be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f8600480360360208110156103e257600080fd5b8101908080359060200190929190505050611326565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104866004803603604081101561045057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c1565b005b61054b6004803603604081101561049e57600080fd5b8101908080359060200190929190803590602001906401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611505565b005b610555611579565b6040518082815260200191505060405180910390f35b6105d76004803603606081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061158a565b005b610625600480360360408110156105ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611600565b6040518082815260200191505060405180910390f35b61064361165b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b16004803603602081101561069b57600080fd5b8101908080359060200190929190505050611681565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f15780820151818401526020810190506106d6565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610734611693565b6040518082815260200191505060405180910390f35b6107b66004803603606081101561076057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611699565b005b6107e4600480360360208110156107ce57600080fd5b81019080803590602001909291905050506116b9565b6040518089815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561084e578082015181840152602081019050610833565b50505050905090810190601f16801561087b5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6108bc600480360360208110156108a657600080fd5b81019080803590602001909291905050506117a6565b6040518082815260200191505060405180910390f35b6108da6117c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109486004803603602081101561093257600080fd5b81019080803590602001909291905050506117ef565b6040518080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b8381101561099a57808201518184015260208101905061097f565b50505050905090810190601f1680156109c75780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6109e06119a6565b6040518082815260200191505060405180910390f35b610a2260048036036020811015610a0c57600080fd5b81019080803590602001909291905050506119b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a6c6119ea565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aac578082015181840152602081019050610a91565b50505050905090810190601f168015610ad95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b1360048036036020811015610afd57600080fd5b8101908080359060200190929190505050611a8c565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b610b9560048036036020811015610b6957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b89565b6040518082815260200191505060405180910390f35b610bb3611c5e565b005b610be160048036036020811015610bcb57600080fd5b8101908080359060200190929190505050611de9565b6040518082815260200191505060405180910390f35b610bff611e19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c7760048036036040811015610c5757600080fd5b810190808035906020019092919080359060200190929190505050611e43565b005b610c81611f14565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cc1578082015181840152602081019050610ca6565b50505050905090810190601f168015610cee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610d2860048036036020811015610d1257600080fd5b8101908080359060200190929190505050611fb6565b6040518082815260200191505060405180910390f35b610d8c60048036036040811015610d5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fce565b005b610e9160048036036080811015610da457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610e0b57600080fd5b820183602082011115610e1d57600080fd5b80359060200191846001830284011164010000000083111715610e3f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612186565b005b610ebf60048036036020811015610ea957600080fd5b81019080803590602001909291905050506121fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610eff578082015181840152602081019050610ee4565b50505050905090810190601f168015610f2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f7a60048036036060811015610f5057600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506124e7565b6040518082815260200191505060405180910390f35b610ff260048036036040811015610fa657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126f9565b604051808215151515815260200191505060405180910390f35b61104e6004803603602081101561102257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061278d565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600f54600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561115b57600080fd5b505afa15801561116f573d6000803e3d6000fd5b505050506040513d602081101561118557600080fd5b810190808051906020019092919050505010156111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806141eb602b913960400191505060405180910390fd5b60006111fe600e54600f54866124e7565b9050826014600083815260200190815260200160002090805190602001906112279291906140a7565b50336015600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508091505092915050565b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131c5780601f106112f15761010080835404028352916020019161131c565b820191906000526020600020905b8154815290600101906020018083116112ff57829003601f168201915b5050505050905090565b60006113318261299d565b611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142ef602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006113cc826119b3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061439f6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166114726129ba565b73ffffffffffffffffffffffffffffffffffffffff1614806114a157506114a08161149b6129ba565b6126f9565b5b6114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142426038913960400191505060405180910390fd5b61150083836129c2565b505050565b6115166115106129ba565b83612a7b565b61156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143c06031913960400191505060405180910390fd5b6115758282612b6f565b5050565b60006115856002612bf9565b905090565b61159b6115956129ba565b82612a7b565b6115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143c06031913960400191505060405180910390fd5b6115fb838383612c0e565b505050565b600061165382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612e5190919063ffffffff16565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061168c826121fe565b9050919050565b60105481565b6116b483838360405180602001604052806000815250612186565b505050565b601381815481106116c657fe5b9060005260206000209060080201600091509050806000015490806001015490806002015490806003015490806004015490806005015490806006015490806007018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561179c5780601f106117715761010080835404028352916020019161179c565b820191906000526020600020905b81548152906001019060200180831161177f57829003601f168201915b5050505050905088565b6000806117bd836002612e6b90919063ffffffff16565b50905080915050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008060006013858154811061180357fe5b90600052602060002090600802016007016013868154811061182157fe5b9060005260206000209060080201600501546013878154811061184057fe5b9060005260206000209060080201600401546013888154811061185f57fe5b9060005260206000209060080201600301546013898154811061187e57fe5b90600052602060002090600802016002015460138a8154811061189d57fe5b90600052602060002090600802016001015460138b815481106118bc57fe5b90600052602060002090600802016000015401010101016118dc87611de9565b601388815481106118e957fe5b906000526020600020906008020160060154838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119905780601f1061196557610100808354040283529160200191611990565b820191906000526020600020905b81548152906001019060200180831161197357829003601f168201915b5050505050935093509350935093509193509193565b6000601380549050905090565b60006119e3826040518060600160405280602981526020016142a4602991396002612e9a9092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b5050505050905090565b600080600080600080600060138881548110611aa457fe5b90600052602060002090600802016000015460138981548110611ac357fe5b90600052602060002090600802016001015460138a81548110611ae257fe5b90600052602060002090600802016002015460138b81548110611b0157fe5b90600052602060002090600802016003015460138c81548110611b2057fe5b90600052602060002090600802016004015460138d81548110611b3f57fe5b90600052602060002090600802016005015460138e81548110611b5e57fe5b9060005260206000209060080201600601549650965096509650965096509650919395979092949650565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061427a602a913960400191505060405180910390fd5b611c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612eb9565b9050919050565b611c666129ba565b73ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611e1260138381548110611dfb57fe5b906000526020600020906008020160060154612ece565b9050919050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b611f108282612f13565b5050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fac5780601f10611f8157610100808354040283529160200191611fac565b820191906000526020600020905b815481529060010190602001808311611f8f57829003601f168201915b5050505050905090565b600c6020528060005260406000206000915090505481565b611fd66129ba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612077576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600560006120846129ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166121316129ba565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6121976121916129ba565b83612a7b565b6121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143c06031913960400191505060405180910390fd5b6121f884848484613184565b50505050565b60606122098261299d565b61225e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614370602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123075780601f106122dc57610100808354040283529160200191612307565b820191906000526020600020905b8154815290600101906020018083116122ea57829003601f168201915b5050505050905060006009805460018160011615610100020316600290049050141561233657809150506124e2565b60008151111561240f5760098160405160200180838054600181600116156101000203166002900480156123a15780601f1061237f5761010080835404028352918201916123a1565b820191906000526020600020905b81548152906001019060200180831161238d575b505082805190602001908083835b602083106123d257805182526020820191506020810190506020830392506123af565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150506124e2565b600961241a846131f6565b60405160200180838054600181600116156101000203166002900480156124785780601f10612456576101008083540402835291820191612478565b820191906000526020600020905b815481529060010190602001808311612464575b505082805190602001908083835b602083106124a95780518252602082019150602081019050602083039250612486565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea0600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685878660405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125fa5780820151818401526020810190506125df565b50505050905090810190601f1680156126275780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561264857600080fd5b505af115801561265c573d6000803e3d6000fd5b505050506040513d602081101561267257600080fd5b81019080805190602001909291905050505060006126a5858430600c60008a81526020019081526020016000205461333d565b90506126ce6001600c6000888152602001908152602001600020546133b790919063ffffffff16565b600c6000878152602001908152602001600020819055506126ef858261343f565b9150509392505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6127956129ba565b73ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806141a16026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129b382600261347890919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612a35836119b3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612a868261299d565b612adb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614216602c913960400191505060405180910390fd5b6000612ae6836119b3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612b5557508373ffffffffffffffffffffffffffffffffffffffff16612b3d84611326565b73ffffffffffffffffffffffffffffffffffffffff16145b80612b665750612b6581856126f9565b5b91505092915050565b612b788261299d565b612bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061431b602c913960400191505060405180910390fd5b80600860008481526020019081526020016000209080519060200190612bf49291906140a7565b505050565b6000612c0782600001613492565b9050919050565b8273ffffffffffffffffffffffffffffffffffffffff16612c2e826119b3565b73ffffffffffffffffffffffffffffffffffffffff1614612c9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806143476029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141c76024913960400191505060405180910390fd5b612d2b8383836134a3565b612d366000826129c2565b612d8781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134a890919063ffffffff16565b50612dd981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134c290919063ffffffff16565b50612df0818360026134dc9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612e608360000183613511565b60001c905092915050565b600080600080612e7e8660000186613594565b915091508160001c8160001c8090509350935050509250929050565b6000612ead846000018460001b8461362d565b60001c90509392505050565b6000612ec782600001613723565b9050919050565b60008060026001840181612ede57fe5b0490508291505b81811015612f0d57809150600281828581612efc57fe5b040181612f0557fe5b049050612ee5565b50919050565b60006013805490509050600060648381612f2957fe5b069050600060646127108581612f3b57fe5b0681612f4357fe5b0490506000612710620f42408681612f5757fe5b0681612f5f57fe5b0490506000620f42406305f5e1008781612f7557fe5b0681612f7d57fe5b04905060006305f5e1006402540be4008881612f9557fe5b0681612f9d57fe5b04905060006402540be40064e8d4a510008981612fb657fe5b0681612fbe57fe5b04905060008090506013604051806101000160405280898152602001888152602001878152602001868152602001858152602001848152602001838152602001601460008e81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130a55780601f1061307a576101008083540402835291602001916130a5565b820191906000526020600020905b81548152906001019060200180831161308857829003601f168201915b50505050508152509080600181540180825580915050600190039060005260206000209060080201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070190805190602001906131389291906140a7565b505050613178601560008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689613734565b50505050505050505050565b61318f848484612c0e565b61319b84848484613752565b6131f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061416f6032913960400191505060405180910390fd5b50505050565b6060600082141561323e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613338565b600082905060005b60008214613268578080600101915050600a828161326057fe5b049150613246565b60608167ffffffffffffffff8111801561328157600080fd5b506040519080825280601f01601f1916602001820160405280156132b45781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461333057600a84816132d557fe5b0660300160f81b828280600190039350815181106132ef57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161332857fe5b0493506132c3565b819450505050505b919050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b600080828401905083811015613435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905092915050565b600061348a836000018360001b613997565b905092915050565b600081600001805490509050919050565b505050565b60006134ba836000018360001b6139ba565b905092915050565b60006134d4836000018360001b613aa2565b905092915050565b6000613508846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b613b12565b90509392505050565b600081836000018054905011613572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061414d6022913960400191505060405180910390fd5b82600001828154811061358157fe5b9060005260206000200154905092915050565b600080828460000180549050116135f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806142cd6022913960400191505060405180910390fd5b600084600001848154811061360757fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600080846001016000858152602001908152602001600020549050600081141583906136f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156136b957808201518184015260208101905061369e565b50505050905090810190601f1680156136e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061370757fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b61374e828260405180602001604052806000815250613bee565b5050565b60006137738473ffffffffffffffffffffffffffffffffffffffff16613c5f565b613780576001905061398f565b606061391663150b7a0260e01b6137956129ba565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561384557808201518184015260208101905061382a565b50505050905090810190601f1680156138725780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180606001604052806032815260200161416f603291398773ffffffffffffffffffffffffffffffffffffffff16613c729092919063ffffffff16565b9050600081806020019051602081101561392f57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114613a965760006001820390506000600186600001805490500390506000866000018281548110613a0557fe5b9060005260206000200154905080876000018481548110613a2257fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480613a5a57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050613a9c565b60009150505b92915050565b6000613aae8383613c8a565b613b07578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050613b0c565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415613bb957846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050613be7565b82856000016001830381548110613bcc57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b613bf88383613cad565b613c056000848484613752565b613c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061416f6032913960400191505060405180910390fd5b505050565b600080823b905060008111915050919050565b6060613c818484600085613ea1565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b613d598161299d565b15613dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b613dd8600083836134a3565b613e2981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134c290919063ffffffff16565b50613e40818360026134dc9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6060613eac85613c5f565b613f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613f6e5780518252602082019150602081019050602083039250613f4b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613fd0576040519150601f19603f3d011682016040523d82523d6000602084013e613fd5565b606091505b50915091508115613fea57809250505061409f565b600081511115613ffd5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614064578082015181840152602081019050614049565b50505050905090810190601f1680156140915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106140e857805160ff1916838001178555614116565b82800160010185558215614116579182015b828111156141155782518255916020019190600101906140fa565b5b5090506141239190614127565b5090565b61414991905b8082111561414557600081600090555060010161412d565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e74726163742077697468206661756365744552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a264697066735822122065b9a1d6ed63beeacd6d393175774e470f84597a2f191d3c05814d486984261d64736f6c63430006060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c806362d36dec1161011a57806394985ddd116100ad578063b88d4fde1161007c578063b88d4fde14610d8e578063c87b56dd14610e93578063dc6cfe1014610f3a578063e985e9c514610f90578063f2fde38b1461100c57610206565b806394985ddd14610c4157806395d89b4114610c795780639e317f1214610cfc578063a22cb46514610d3e57610206565b806370a08231116100e957806370a0823114610b53578063715018a614610bab57806386481d4014610bb55780638da5cb5b14610bf757610206565b806362d36dec146109d85780636352211e146109f65780636c0360eb14610a645780636fe0c04614610ae757610206565b80632f745c591161019d57806342842e0e1161016c57806342842e0e1461074a5780634810bc59146107b85780634f6ccce7146108905780634f8e2fdf146108d25780634f95b5f01461091c57610206565b80632f745c59146105d957806333b608631461063b5780633bb3a24d1461068557806342619f661461072c57610206565b8063095ea7b3116101d9578063095ea7b31461043a578063162094c41461048857806318160ddd1461054d57806323b872dd1461056b57610206565b806301ffc9a71461020b57806306396dbe1461027057806306fdde0314610349578063081812fc146103cc575b600080fd5b6102566004803603602081101561022157600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611050565b604051808215151515815260200191505060405180910390f35b6103336004803603604081101561028657600080fd5b8101908080359060200190929190803590602001906401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110b7565b6040518082815260200191505060405180910390f35b610351611284565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610391578082015181840152602081019050610376565b50505050905090810190601f1680156103be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f8600480360360208110156103e257600080fd5b8101908080359060200190929190505050611326565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104866004803603604081101561045057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c1565b005b61054b6004803603604081101561049e57600080fd5b8101908080359060200190929190803590602001906401000000008111156104c557600080fd5b8201836020820111156104d757600080fd5b803590602001918460018302840111640100000000831117156104f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611505565b005b610555611579565b6040518082815260200191505060405180910390f35b6105d76004803603606081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061158a565b005b610625600480360360408110156105ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611600565b6040518082815260200191505060405180910390f35b61064361165b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b16004803603602081101561069b57600080fd5b8101908080359060200190929190505050611681565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f15780820151818401526020810190506106d6565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610734611693565b6040518082815260200191505060405180910390f35b6107b66004803603606081101561076057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611699565b005b6107e4600480360360208110156107ce57600080fd5b81019080803590602001909291905050506116b9565b6040518089815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561084e578082015181840152602081019050610833565b50505050905090810190601f16801561087b5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6108bc600480360360208110156108a657600080fd5b81019080803590602001909291905050506117a6565b6040518082815260200191505060405180910390f35b6108da6117c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109486004803603602081101561093257600080fd5b81019080803590602001909291905050506117ef565b6040518080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b8381101561099a57808201518184015260208101905061097f565b50505050905090810190601f1680156109c75780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6109e06119a6565b6040518082815260200191505060405180910390f35b610a2260048036036020811015610a0c57600080fd5b81019080803590602001909291905050506119b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a6c6119ea565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aac578082015181840152602081019050610a91565b50505050905090810190601f168015610ad95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b1360048036036020811015610afd57600080fd5b8101908080359060200190929190505050611a8c565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b610b9560048036036020811015610b6957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b89565b6040518082815260200191505060405180910390f35b610bb3611c5e565b005b610be160048036036020811015610bcb57600080fd5b8101908080359060200190929190505050611de9565b6040518082815260200191505060405180910390f35b610bff611e19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c7760048036036040811015610c5757600080fd5b810190808035906020019092919080359060200190929190505050611e43565b005b610c81611f14565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cc1578082015181840152602081019050610ca6565b50505050905090810190601f168015610cee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610d2860048036036020811015610d1257600080fd5b8101908080359060200190929190505050611fb6565b6040518082815260200191505060405180910390f35b610d8c60048036036040811015610d5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fce565b005b610e9160048036036080811015610da457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610e0b57600080fd5b820183602082011115610e1d57600080fd5b80359060200191846001830284011164010000000083111715610e3f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612186565b005b610ebf60048036036020811015610ea957600080fd5b81019080803590602001909291905050506121fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610eff578082015181840152602081019050610ee4565b50505050905090810190601f168015610f2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f7a60048036036060811015610f5057600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506124e7565b6040518082815260200191505060405180910390f35b610ff260048036036040811015610fa657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126f9565b604051808215151515815260200191505060405180910390f35b61104e6004803603602081101561102257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061278d565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600f54600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561115b57600080fd5b505afa15801561116f573d6000803e3d6000fd5b505050506040513d602081101561118557600080fd5b810190808051906020019092919050505010156111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806141eb602b913960400191505060405180910390fd5b60006111fe600e54600f54866124e7565b9050826014600083815260200190815260200160002090805190602001906112279291906140a7565b50336015600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508091505092915050565b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131c5780601f106112f15761010080835404028352916020019161131c565b820191906000526020600020905b8154815290600101906020018083116112ff57829003601f168201915b5050505050905090565b60006113318261299d565b611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142ef602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006113cc826119b3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061439f6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166114726129ba565b73ffffffffffffffffffffffffffffffffffffffff1614806114a157506114a08161149b6129ba565b6126f9565b5b6114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142426038913960400191505060405180910390fd5b61150083836129c2565b505050565b6115166115106129ba565b83612a7b565b61156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143c06031913960400191505060405180910390fd5b6115758282612b6f565b5050565b60006115856002612bf9565b905090565b61159b6115956129ba565b82612a7b565b6115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143c06031913960400191505060405180910390fd5b6115fb838383612c0e565b505050565b600061165382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612e5190919063ffffffff16565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061168c826121fe565b9050919050565b60105481565b6116b483838360405180602001604052806000815250612186565b505050565b601381815481106116c657fe5b9060005260206000209060080201600091509050806000015490806001015490806002015490806003015490806004015490806005015490806006015490806007018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561179c5780601f106117715761010080835404028352916020019161179c565b820191906000526020600020905b81548152906001019060200180831161177f57829003601f168201915b5050505050905088565b6000806117bd836002612e6b90919063ffffffff16565b50905080915050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008060006013858154811061180357fe5b90600052602060002090600802016007016013868154811061182157fe5b9060005260206000209060080201600501546013878154811061184057fe5b9060005260206000209060080201600401546013888154811061185f57fe5b9060005260206000209060080201600301546013898154811061187e57fe5b90600052602060002090600802016002015460138a8154811061189d57fe5b90600052602060002090600802016001015460138b815481106118bc57fe5b90600052602060002090600802016000015401010101016118dc87611de9565b601388815481106118e957fe5b906000526020600020906008020160060154838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119905780601f1061196557610100808354040283529160200191611990565b820191906000526020600020905b81548152906001019060200180831161197357829003601f168201915b5050505050935093509350935093509193509193565b6000601380549050905090565b60006119e3826040518060600160405280602981526020016142a4602991396002612e9a9092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b5050505050905090565b600080600080600080600060138881548110611aa457fe5b90600052602060002090600802016000015460138981548110611ac357fe5b90600052602060002090600802016001015460138a81548110611ae257fe5b90600052602060002090600802016002015460138b81548110611b0157fe5b90600052602060002090600802016003015460138c81548110611b2057fe5b90600052602060002090600802016004015460138d81548110611b3f57fe5b90600052602060002090600802016005015460138e81548110611b5e57fe5b9060005260206000209060080201600601549650965096509650965096509650919395979092949650565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061427a602a913960400191505060405180910390fd5b611c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612eb9565b9050919050565b611c666129ba565b73ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611e1260138381548110611dfb57fe5b906000526020600020906008020160060154612ece565b9050919050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b611f108282612f13565b5050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fac5780601f10611f8157610100808354040283529160200191611fac565b820191906000526020600020905b815481529060010190602001808311611f8f57829003601f168201915b5050505050905090565b600c6020528060005260406000206000915090505481565b611fd66129ba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612077576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600560006120846129ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166121316129ba565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6121976121916129ba565b83612a7b565b6121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806143c06031913960400191505060405180910390fd5b6121f884848484613184565b50505050565b60606122098261299d565b61225e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614370602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123075780601f106122dc57610100808354040283529160200191612307565b820191906000526020600020905b8154815290600101906020018083116122ea57829003601f168201915b5050505050905060006009805460018160011615610100020316600290049050141561233657809150506124e2565b60008151111561240f5760098160405160200180838054600181600116156101000203166002900480156123a15780601f1061237f5761010080835404028352918201916123a1565b820191906000526020600020905b81548152906001019060200180831161238d575b505082805190602001908083835b602083106123d257805182526020820191506020810190506020830392506123af565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150506124e2565b600961241a846131f6565b60405160200180838054600181600116156101000203166002900480156124785780601f10612456576101008083540402835291820191612478565b820191906000526020600020905b815481529060010190602001808311612464575b505082805190602001908083835b602083106124a95780518252602082019150602081019050602083039250612486565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150505b919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea0600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685878660405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125fa5780820151818401526020810190506125df565b50505050905090810190601f1680156126275780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561264857600080fd5b505af115801561265c573d6000803e3d6000fd5b505050506040513d602081101561267257600080fd5b81019080805190602001909291905050505060006126a5858430600c60008a81526020019081526020016000205461333d565b90506126ce6001600c6000888152602001908152602001600020546133b790919063ffffffff16565b600c6000878152602001908152602001600020819055506126ef858261343f565b9150509392505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6127956129ba565b73ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806141a16026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129b382600261347890919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612a35836119b3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612a868261299d565b612adb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614216602c913960400191505060405180910390fd5b6000612ae6836119b3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612b5557508373ffffffffffffffffffffffffffffffffffffffff16612b3d84611326565b73ffffffffffffffffffffffffffffffffffffffff16145b80612b665750612b6581856126f9565b5b91505092915050565b612b788261299d565b612bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061431b602c913960400191505060405180910390fd5b80600860008481526020019081526020016000209080519060200190612bf49291906140a7565b505050565b6000612c0782600001613492565b9050919050565b8273ffffffffffffffffffffffffffffffffffffffff16612c2e826119b3565b73ffffffffffffffffffffffffffffffffffffffff1614612c9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806143476029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806141c76024913960400191505060405180910390fd5b612d2b8383836134a3565b612d366000826129c2565b612d8781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134a890919063ffffffff16565b50612dd981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134c290919063ffffffff16565b50612df0818360026134dc9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612e608360000183613511565b60001c905092915050565b600080600080612e7e8660000186613594565b915091508160001c8160001c8090509350935050509250929050565b6000612ead846000018460001b8461362d565b60001c90509392505050565b6000612ec782600001613723565b9050919050565b60008060026001840181612ede57fe5b0490508291505b81811015612f0d57809150600281828581612efc57fe5b040181612f0557fe5b049050612ee5565b50919050565b60006013805490509050600060648381612f2957fe5b069050600060646127108581612f3b57fe5b0681612f4357fe5b0490506000612710620f42408681612f5757fe5b0681612f5f57fe5b0490506000620f42406305f5e1008781612f7557fe5b0681612f7d57fe5b04905060006305f5e1006402540be4008881612f9557fe5b0681612f9d57fe5b04905060006402540be40064e8d4a510008981612fb657fe5b0681612fbe57fe5b04905060008090506013604051806101000160405280898152602001888152602001878152602001868152602001858152602001848152602001838152602001601460008e81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130a55780601f1061307a576101008083540402835291602001916130a5565b820191906000526020600020905b81548152906001019060200180831161308857829003601f168201915b50505050508152509080600181540180825580915050600190039060005260206000209060080201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070190805190602001906131389291906140a7565b505050613178601560008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689613734565b50505050505050505050565b61318f848484612c0e565b61319b84848484613752565b6131f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061416f6032913960400191505060405180910390fd5b50505050565b6060600082141561323e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613338565b600082905060005b60008214613268578080600101915050600a828161326057fe5b049150613246565b60608167ffffffffffffffff8111801561328157600080fd5b506040519080825280601f01601f1916602001820160405280156132b45781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461333057600a84816132d557fe5b0660300160f81b828280600190039350815181106132ef57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161332857fe5b0493506132c3565b819450505050505b919050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b600080828401905083811015613435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905092915050565b600061348a836000018360001b613997565b905092915050565b600081600001805490509050919050565b505050565b60006134ba836000018360001b6139ba565b905092915050565b60006134d4836000018360001b613aa2565b905092915050565b6000613508846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b613b12565b90509392505050565b600081836000018054905011613572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061414d6022913960400191505060405180910390fd5b82600001828154811061358157fe5b9060005260206000200154905092915050565b600080828460000180549050116135f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806142cd6022913960400191505060405180910390fd5b600084600001848154811061360757fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600080846001016000858152602001908152602001600020549050600081141583906136f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156136b957808201518184015260208101905061369e565b50505050905090810190601f1680156136e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061370757fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b61374e828260405180602001604052806000815250613bee565b5050565b60006137738473ffffffffffffffffffffffffffffffffffffffff16613c5f565b613780576001905061398f565b606061391663150b7a0260e01b6137956129ba565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561384557808201518184015260208101905061382a565b50505050905090810190601f1680156138725780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180606001604052806032815260200161416f603291398773ffffffffffffffffffffffffffffffffffffffff16613c729092919063ffffffff16565b9050600081806020019051602081101561392f57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114613a965760006001820390506000600186600001805490500390506000866000018281548110613a0557fe5b9060005260206000200154905080876000018481548110613a2257fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480613a5a57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050613a9c565b60009150505b92915050565b6000613aae8383613c8a565b613b07578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050613b0c565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415613bb957846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050613be7565b82856000016001830381548110613bcc57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b613bf88383613cad565b613c056000848484613752565b613c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061416f6032913960400191505060405180910390fd5b505050565b600080823b905060008111915050919050565b6060613c818484600085613ea1565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b613d598161299d565b15613dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b613dd8600083836134a3565b613e2981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134c290919063ffffffff16565b50613e40818360026134dc9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6060613eac85613c5f565b613f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613f6e5780518252602082019150602081019050602083039250613f4b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613fd0576040519150601f19603f3d011682016040523d82523d6000602084013e613fd5565b606091505b50915091508115613fea57809250505061409f565b600081511115613ffd5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614064578082015181840152602081019050614049565b50505050905090810190601f1680156140915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106140e857805160ff1916838001178555614116565b82800160010185558215614116579182015b828111156141155782518255916020019190600101906140fa565b5b5090506141239190614127565b5090565b61414991905b8082111561414557600081600090555060010161412d565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e74726163742077697468206661756365744552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a264697066735822122065b9a1d6ed63beeacd6d393175774e470f84597a2f191d3c05814d486984261d64736f6c63430006060033",
"immutableReferences": {},
"sourceMap": "326:4974:0:-:0;;;1520:352;5:9:-1;2:2;;;27:1;24;17:12;2:2;1520:352:0;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1520:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:15;1651:10;3567:365:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;751:40:8;418:10;770:20;;751:18;;;:40;;:::i;:::-;3647:4:11;3639:5;:12;;;;;;;;;;;;:::i;:::-;;3671:6;3661:7;:16;;;;;;;;;;;;:::i;:::-;;3765:40;2732:10;3784:20;;3765:18;;;:40;;:::i;:::-;3815:49;3064:10;3834:29;;3815:18;;;:49;;:::i;:::-;3874:51;3437:10;3893:31;;3874:18;;;:51;;:::i;:::-;3567:365;;6891:15:2;6874:14;;:32;;;;;;;;;;;;;;;;;;6938:5;6912:4;;:32;;;;;;;;;;;;;;;;;;6809:140;;865:17:7;885:12;:10;;;:12;;:::i;:::-;865:32;;916:9;907:6;;:18;;;;;;;;;;;;;;;;;;973:9;940:43;;969:1;940:43;;;;;;;;;;;;831:159;1750:15:0::2;1733:14;;:32;;;;;;;;;;;;;;;;;;1787:10;1775:9;;:22;;;;;;;;;;;;;;;;;;1817:8;1807:7;:18;;;;1841:12;1835:3;:18;;;;1520:352:::0;;;326:4974;;1482:198:8;1580:10;1565:25;;:11;:25;;;;;1557:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1669:4;1633:20;:33;1654:11;1633:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1482:198;:::o;590:104:6:-;643:15;677:10;670:17;;590:104;:::o;326:4974:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
"deployedSourceMap": "326:4974:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;326:4974:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;948:140:8;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;948:140:8;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1878:475:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1878:475:0;;;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;1878:475:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1878:475:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1878:475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1878:475:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4488:90:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4488:90:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7095:209;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7095:209:11;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6653:381;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6653:381:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2480:266:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2480:266:0;;;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;2480:266:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2480:266:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2480:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2480:266:0;;;;;;;;;;;;;;;:::i;:::-;;6163:200:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7943:300;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7943:300:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5940:152;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5940:152:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;557:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2359:115;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2359:115:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2359:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;524:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8309:149:11;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8309:149:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;984:29:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;984:29:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;984:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6435:161:11;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6435:161:11;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;651:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3952:547;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3952:547:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3952:547:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3841:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4259:167:11;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4259:167:11;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5774:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5774:87:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4505:587:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4505:587:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3991:211:11;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3991:211:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1689:145:7;;;:::i;:::-;;3710:125:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3710:125:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1066:77:7;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7144:207:2;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7144:207:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4642:94:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4642:94:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6738:67:2;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6738:67:2;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7371:290:11;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7371:290:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8524:282;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;8524:282:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;8524:282:11;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;8524:282:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8524:282:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8524:282:11;;;;;;;;;;;;;;;:::i;:::-;;4802:740;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4802:740:11;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4802:740:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5871:656:2;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5871:656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7727:154:11;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7727:154:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1983:240:7;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1983:240:7;;;;;;;;;;;;;;;;;;;:::i;:::-;;948:140:8;1025:4;1048:20;:33;1069:11;1048:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:40;;948:140;;;:::o;1878:475:0:-;1997:7;2070:3;;2037:4;;;;;;;;;;;:14;;;2060:4;2037:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2037:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2037:29:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2037:29:0;;;;;;;;;;;;;;;;:36;;2016:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:17;2172:49;2190:7;;2199:3;;2204:16;2172:17;:49::i;:::-;2152:69;;2267:4;2231:22;:33;2254:9;2231:33;;;;;;;;;;;:40;;;;;;;;;;;;:::i;:::-;;2310:10;2281:15;:26;2297:9;2281:26;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2337:9;2330:16;;;1878:475;;;;:::o;4488:90:11:-;4534:13;4566:5;4559:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4488:90;:::o;7095:209::-;7163:7;7190:16;7198:7;7190;:16::i;:::-;7182:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7273:15;:24;7289:7;7273:24;;;;;;;;;;;;;;;;;;;;;7266:31;;7095:209;;;:::o;6653:381::-;6733:13;6749:16;6757:7;6749;:16::i;:::-;6733:32;;6789:5;6783:11;;:2;:11;;;;6775:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6867:5;6851:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;6876:37;6893:5;6900:12;:10;:12::i;:::-;6876:16;:37::i;:::-;6851:62;6843:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7006:21;7015:2;7019:7;7006:8;:21::i;:::-;6653:381;;;:::o;2480:266:0:-;2581:41;2600:12;:10;:12::i;:::-;2614:7;2581:18;:41::i;:::-;2560:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:32;2720:7;2729:9;2707:12;:32::i;:::-;2480:266;;:::o;6163:200:11:-;6216:7;6335:21;:12;:19;:21::i;:::-;6328:28;;6163:200;:::o;7943:300::-;8102:41;8121:12;:10;:12::i;:::-;8135:7;8102:18;:41::i;:::-;8094:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8208:28;8218:4;8224:2;8228:7;8208:9;:28::i;:::-;7943:300;;;:::o;5940:152::-;6029:7;6055:30;6079:5;6055:13;:20;6069:5;6055:20;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;6048:37;;5940:152;;;;:::o;557:29:0:-;;;;;;;;;;;;;:::o;2359:115::-;2418:13;2450:17;2459:7;2450:8;:17::i;:::-;2443:24;;2359:115;;;:::o;524:27::-;;;;:::o;8309:149:11:-;8412:39;8429:4;8435:2;8439:7;8412:39;;;;;;;;;;;;:16;:39::i;:::-;8309:149;;;:::o;984:29:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6435:161:11:-;6502:7;6522:15;6543:22;6559:5;6543:12;:15;;:22;;;;:::i;:::-;6521:44;;;6582:7;6575:14;;;6435:161;;;:::o;651:24:0:-;;;;;;;;;;;;;:::o;3952:547::-;4057:13;4084:7;4105;4126;4179:10;4190:7;4179:19;;;;;;;;;;;;;;;;;;:24;;4379:10;4390:7;4379:19;;;;;;;;;;;;;;;;;;:28;;;4350:10;4361:7;4350:19;;;;;;;;;;;;;;;;;;:26;;;4315:10;4326:7;4315:19;;;;;;;;;;;;;;;;;;:32;;;4280:10;4291:7;4280:19;;;;;;;;;;;;;;;;;;:32;;;4248:10;4259:7;4248:19;;;;;;;;;;;;;;;;;;:29;;;4217:10;4228:7;4217:19;;;;;;;;;;;;;;;;;;:28;;;:60;:95;:130;:159;:190;4421:17;4430:7;4421:8;:17::i;:::-;4452:10;4463:7;4452:19;;;;;;;;;;;;;;;;;;:30;;;4158:334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3952:547;;;;;:::o;3841:105::-;3895:7;3921:10;:17;;;;3914:24;;3841:105;:::o;4259:167:11:-;4323:7;4349:70;4366:7;4349:70;;;;;;;;;;;;;;;;;:12;:16;;:70;;;;;:::i;:::-;4342:77;;4259:167;;;:::o;5774:87::-;5814:13;5846:8;5839:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5774:87;:::o;4505:587:0:-;4607:7;4628;4649;4670;4691;4712;4733;4786:10;4797:7;4786:19;;;;;;;;;;;;;;;;;;:28;;;4828:10;4839:7;4828:19;;;;;;;;;;;;;;;;;;:29;;;4871:10;4882:7;4871:19;;;;;;;;;;;;;;;;;;:32;;;4917:10;4928:7;4917:19;;;;;;;;;;;;;;;;;;:32;;;4963:10;4974:7;4963:19;;;;;;;;;;;;;;;;;;:26;;;5003:10;5014:7;5003:19;;;;;;;;;;;;;;;;;;:28;;;5045:10;5056:7;5045:19;;;;;;;;;;;;;;;;;;:30;;;4765:320;;;;;;;;;;;;;;4505:587;;;;;;;;;:::o;3991:211:11:-;4055:7;4099:1;4082:19;;:5;:19;;;;4074:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:29;:13;:20;4180:5;4166:20;;;;;;;;;;;;;;;:27;:29::i;:::-;4159:36;;3991:211;;;:::o;1689:145:7:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1:::1;1758:40;;1779:6;;;;;;;;;;;1758:40;;;;;;;;;;;;1825:1;1808:6;;:19;;;;;;;;;;;;;;;;;;1689:145::o:0;3710:125:0:-;3766:7;3792:36;3797:10;3808:7;3797:19;;;;;;;;;;;;;;;;;;:30;;;3792:4;:36::i;:::-;3785:43;;3710:125;;;:::o;1066:77:7:-;1104:7;1130:6;;;;;;;;;;;1123:13;;1066:77;:::o;7144:207:2:-;7250:14;;;;;;;;;;;7236:28;;:10;:28;;;7228:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7306:40;7324:9;7335:10;7306:17;:40::i;:::-;7144:207;;:::o;4642:94:11:-;4690:13;4722:7;4715:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4642:94;:::o;6738:67:2:-;;;;;;;;;;;;;;;;;:::o;7371:290:11:-;7485:12;:10;:12::i;:::-;7473:24;;:8;:24;;;;7465:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7583:8;7538:18;:32;7557:12;:10;:12::i;:::-;7538:32;;;;;;;;;;;;;;;:42;7571:8;7538:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;7635:8;7606:48;;7621:12;:10;:12::i;:::-;7606:48;;;7645:8;7606:48;;;;;;;;;;;;;;;;;;;;;;7371:290;;:::o;8524:282::-;8655:41;8674:12;:10;:12::i;:::-;8688:7;8655:18;:41::i;:::-;8647:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8760:39;8774:4;8780:2;8784:7;8793:5;8760:13;:39::i;:::-;8524:282;;;;:::o;4802:740::-;4867:13;4900:16;4908:7;4900;:16::i;:::-;4892:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4979:23;5005:10;:19;5016:7;5005:19;;;;;;;;;;;4979:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5123:1;5103:8;5097:22;;;;;;;;;;;;;;;;:27;5093:74;;;5147:9;5140:16;;;;;5093:74;5295:1;5275:9;5269:23;:27;5265:110;;;5343:8;5353:9;5326:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5326:37:11;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5326:37:11;;;5312:52;;;;;5265:110;5505:8;5515:18;:7;:16;:18::i;:::-;5488:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5488:46:11;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5488:46:11;;;5474:61;;;4802:740;;;;:::o;5871:656:2:-;5965:17;5992:4;;;;;;;;;;;:20;;;6013:14;;;;;;;;;;;6029:4;6046:8;6056:5;6035:27;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6035:27:2;;;5992:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5992:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5992:71:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5992:71:2;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5992:71:2;;;;;;;;;;;;;;;;;6138:15;6157:66;6174:8;6184:5;6199:4;6206:6;:16;6213:8;6206:16;;;;;;;;;;;;6157;:66::i;:::-;6138:85;;6453:23;6474:1;6453:6;:16;6460:8;6453:16;;;;;;;;;;;;:20;;:23;;;;:::i;:::-;6434:6;:16;6441:8;6434:16;;;;;;;;;;;:42;;;;6490:32;6504:8;6514:7;6490:13;:32::i;:::-;6483:39;;;5871:656;;;;;:::o;7727:154:11:-;7816:4;7839:18;:25;7858:5;7839:25;;;;;;;;;;;;;;;:35;7865:8;7839:35;;;;;;;;;;;;;;;;;;;;;;;;;7832:42;;7727:154;;;;:::o;1983:240:7:-;1280:12;:10;:12::i;:::-;1270:22;;:6;;;;;;;;;;;:22;;;1262:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:1:::1;2071:22;;:8;:22;;;;2063:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:8;2151:38;;2172:6;;;;;;;;;;;2151:38;;;;;;;;;;;;2208:8;2199:6;;:17;;;;;;;;;;;;;;;;;;1983:240:::0;:::o;10240:117:11:-;10297:4;10320:30;10342:7;10320:12;:21;;:30;;;;:::i;:::-;10313:37;;10240:117;;;:::o;590:104:6:-;643:15;677:10;670:17;;590:104;:::o;15896:155:11:-;15988:2;15961:15;:24;15977:7;15961:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16036:7;16032:2;16005:39;;16014:16;16022:7;16014;:16::i;:::-;16005:39;;;;;;;;;;;;15896:155;;:::o;10515:329::-;10600:4;10624:16;10632:7;10624;:16::i;:::-;10616:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10699:13;10715:16;10723:7;10715;:16::i;:::-;10699:32;;10760:5;10749:16;;:7;:16;;;:51;;;;10793:7;10769:31;;:20;10781:7;10769:11;:20::i;:::-;:31;;;10749:51;:87;;;;10804:32;10821:5;10828:7;10804:16;:32::i;:::-;10749:87;10741:96;;;10515:329;;;;:::o;14215:212::-;14314:16;14322:7;14314;:16::i;:::-;14306:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14411:9;14389:10;:19;14400:7;14389:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;14215:212;;:::o;7023:121:17:-;7092:7;7118:19;7126:3;:10;;7118:7;:19::i;:::-;7111:26;;7023:121;;;:::o;13509:559:11:-;13626:4;13606:24;;:16;13614:7;13606;:16::i;:::-;:24;;;13598:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13708:1;13694:16;;:2;:16;;;;13686:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13762:39;13783:4;13789:2;13793:7;13762:20;:39::i;:::-;13863:29;13880:1;13884:7;13863:8;:29::i;:::-;13903:35;13930:7;13903:13;:19;13917:4;13903:19;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;;13948:30;13970:7;13948:13;:17;13962:2;13948:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;13989:29;14006:7;14015:2;13989:12;:16;;:29;;;;;:::i;:::-;;14053:7;14049:2;14034:27;;14043:4;14034:27;;;;;;;;;;;;13509:559;;;:::o;7649:135:18:-;7720:7;7754:22;7758:3;:10;;7770:5;7754:3;:22::i;:::-;7746:31;;7739:38;;7649:135;;;;:::o;7472:224:17:-;7552:7;7561;7581:11;7594:13;7611:22;7615:3;:10;;7627:5;7611:3;:22::i;:::-;7580:53;;;;7659:3;7651:12;;7681:5;7673:14;;7643:46;;;;;;;;;7472:224;;;;;:::o;8115:202::-;8222:7;8264:44;8269:3;:10;;8289:3;8281:12;;8295;8264:4;:44::i;:::-;8256:53;;8241:69;;8115:202;;;;;:::o;7205:112:18:-;7265:7;7291:19;7299:3;:10;;7291:7;:19::i;:::-;7284:26;;7205:112;;;:::o;5098:200:0:-;5146:9;5167;5189:1;5184;5180;:5;5179:11;;;;;;5167:23;;5204:1;5200:5;;5215:77;5226:1;5222;:5;5215:77;;;5247:1;5243:5;;5280:1;5275;5271;5267;:5;;;;;;:9;5266:15;;;;;;5262:19;;5215:77;;;5098:200;;;;:::o;2752:952::-;2868:13;2884:10;:17;;;;2868:33;;2911:16;2946:3;2931:12;:18;;;;;;2911:39;;2960:17;3006:3;2997:5;2982:12;:20;;;;;;2981:28;;;;;;2960:51;;3021:20;3072:5;3061:7;3046:12;:22;;;;;;3045:32;;;;;;3021:58;;3089:20;3142:7;3129:9;3114:12;:24;;;;;;3113:36;;;;;;3089:62;;3161:14;3210:9;3195:11;3180:12;:26;;;;;;3179:40;;;;;;3161:60;;3231:16;3284:11;3267:13;3252:12;:28;;;;;;3251:44;;;;;;3231:65;;3306:18;3327:1;3306:22;;3339:10;3368:265;;;;;;;;3395:8;3368:265;;;;3421:9;3368:265;;;;3448:12;3368:265;;;;3478:12;3368:265;;;;3508:6;3368:265;;;;3532:8;3368:265;;;;3558:10;3368:265;;;;3586:22;:33;3609:9;3586:33;;;;;;;;;;;3368:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3339:304;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3339:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3653:44;3663:15;:26;3679:9;3663:26;;;;;;;;;;;;;;;;;;;;;3691:5;3653:9;:44::i;:::-;2752:952;;;;;;;;;;:::o;9668:269:11:-;9781:28;9791:4;9797:2;9801:7;9781:9;:28::i;:::-;9827:48;9850:4;9856:2;9860:7;9869:5;9827:22;:48::i;:::-;9819:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9668:269;;;;:::o;202:723:19:-;258:13;484:1;475:5;:10;471:51;;;501:10;;;;;;;;;;;;;;;;;;;;;471:51;531:12;546:5;531:20;;561:14;585:75;600:1;592:4;:9;585:75;;617:8;;;;;;;647:2;639:10;;;;;;;;;585:75;;;669:19;701:6;691:17;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;691:17:19;;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;124:4;108:14;100:6;87:42;155:4;147:6;143:17;133:27;;0:164;691:17:19;;;;669:39;;718:13;743:1;734:6;:10;718:26;;761:5;754:12;;776:112;791:1;783:4;:9;776:112;;849:2;842:4;:9;;;;;;837:2;:14;826:27;;808:6;815:7;;;;;;;808:15;;;;;;;;;;;:45;;;;;;;;;;;875:2;867:10;;;;;;;;;776:112;;;911:6;897:21;;;;;;202:723;;;;:::o;1095:231:3:-;1225:7;1279:8;1289:9;1300:10;1312:6;1268:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1268:51:3;;;1258:62;;;;;;1250:71;;1242:79;;1095:231;;;;;;:::o;822:162:5:-;880:7;895:9;911:1;907;:5;895:17;;931:1;926;:6;;918:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;978:1;971:8;;;822:162;;;;:::o;1706:171:3:-;1798:7;1847:8;1857:13;1830:41;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1830:41:3;;;1820:52;;;;;;1813:59;;1706:171;;;;:::o;6791:149:17:-;6875:4;6898:35;6908:3;:10;;6928:3;6920:12;;6898:9;:35::i;:::-;6891:42;;6791:149;;;;:::o;4483:108::-;4539:7;4565:3;:12;;:19;;;;4558:26;;4483:108;;;:::o;16647:93:11:-;;;;:::o;6764:135:18:-;6834:4;6857:35;6865:3;:10;;6885:5;6877:14;;6857:7;:35::i;:::-;6850:42;;6764:135;;;;:::o;6467:129::-;6534:4;6557:32;6562:3;:10;;6582:5;6574:14;;6557:4;:32::i;:::-;6550:39;;6467:129;;;;:::o;6239:174:17:-;6328:4;6351:55;6356:3;:10;;6376:3;6368:12;;6398:5;6390:14;;6382:23;;6351:4;:55::i;:::-;6344:62;;6239:174;;;;;:::o;4423:201:18:-;4490:7;4538:5;4517:3;:11;;:18;;;;:26;4509:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:3;:11;;4611:5;4599:18;;;;;;;;;;;;;;;;4592:25;;4423:201;;;;:::o;4934:274:17:-;5001:7;5010;5059:5;5037:3;:12;;:19;;;;:27;5029:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5114:22;5139:3;:12;;5152:5;5139:19;;;;;;;;;;;;;;;;;;5114:44;;5176:5;:10;;;5188:5;:12;;;5168:33;;;;;4934:274;;;;;:::o;5615:315::-;5709:7;5728:16;5747:3;:12;;:17;5760:3;5747:17;;;;;;;;;;;;5728:36;;5794:1;5782:8;:13;;5797:12;5774:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5774:36:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5863:3;:12;;5887:1;5876:8;:12;5863:26;;;;;;;;;;;;;;;;;;:33;;;5856:40;;;5615:315;;;;;:::o;3984:107:18:-;4040:7;4066:3;:11;;:18;;;;4059:25;;3984:107;;;:::o;11175:108:11:-;11250:26;11260:2;11264:7;11250:26;;;;;;;;;;;;:9;:26::i;:::-;11175:108;;:::o;15301:589::-;15421:4;15446:15;:2;:13;;;:15::i;:::-;15441:58;;15484:4;15477:11;;;;15441:58;15508:23;15534:246;15586:45;;;15645:12;:10;:12::i;:::-;15671:4;15689:7;15710:5;15550:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15550:175:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15550:175:11;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;15550:175:11;15534:246;;;;;;;;;;;;;;;;;:2;:15;;;;:246;;;;;:::i;:::-;15508:272;;15790:13;15817:10;15806:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15806:32:11;;;;;;;;;;;;;;;;15790:48;;1068:10;15866:16;;15856:26;;;:6;:26;;;;15848:35;;;;15301:589;;;;;;;:::o;4270:123:17:-;4341:4;4385:1;4364:3;:12;;:17;4377:3;4364:17;;;;;;;;;;;;:22;;4357:29;;4270:123;;;;:::o;2183:1512:18:-;2249:4;2365:18;2386:3;:12;;:19;2399:5;2386:19;;;;;;;;;;;;2365:40;;2434:1;2420:10;:15;2416:1273;;2777:21;2814:1;2801:10;:14;2777:38;;2829:17;2870:1;2849:3;:11;;:18;;;;:22;2829:42;;3111:17;3131:3;:11;;3143:9;3131:22;;;;;;;;;;;;;;;;3111:42;;3274:9;3245:3;:11;;3257:13;3245:26;;;;;;;;;;;;;;;:38;;;;3391:1;3375:13;:17;3349:3;:12;;:23;3362:9;3349:23;;;;;;;;;;;:43;;;;3498:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3590:3;:12;;:19;3603:5;3590:19;;;;;;;;;;;3583:26;;;3631:4;3624:11;;;;;;;;2416:1273;3673:5;3666:12;;;2183:1512;;;;;:::o;1611:404::-;1674:4;1695:21;1705:3;1710:5;1695:9;:21::i;:::-;1690:319;;1732:3;:11;;1749:5;1732:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1732:23:18;;;;;;;;;;;;;;;;;;;1912:3;:11;;:18;;;;1890:3;:12;;:19;1903:5;1890:19;;;;;;;;;;;:40;;;;1951:4;1944:11;;;;1690:319;1993:5;1986:12;;1611:404;;;;;:::o;1828:678:17:-;1904:4;2018:16;2037:3;:12;;:17;2050:3;2037:17;;;;;;;;;;;;2018:36;;2081:1;2069:8;:13;2065:435;;;2135:3;:12;;2153:38;;;;;;;;2170:3;2153:38;;;;2183:5;2153:38;;;2135:57;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2135:57:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:3;:12;;:19;;;;2327:3;:12;;:17;2340:3;2327:17;;;;;;;;;;;:39;;;;2387:4;2380:11;;;;;2065:435;2458:5;2422:3;:12;;2446:1;2435:8;:12;2422:26;;;;;;;;;;;;;;;;;;:33;;:41;;;;2484:5;2477:12;;;1828:678;;;;;;:::o;11504:247:11:-;11599:18;11605:2;11609:7;11599:5;:18::i;:::-;11635:54;11666:1;11670:2;11674:7;11683:5;11635:22;:54::i;:::-;11627:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11504:247;;;:::o;718:413:16:-;778:4;981:12;1090:7;1078:20;1070:28;;1123:1;1116:4;:8;1109:15;;;718:413;;;:::o;3573:194::-;3676:12;3707:53;3730:6;3738:4;3744:1;3747:12;3707:22;:53::i;:::-;3700:60;;3573:194;;;;;:::o;3776:127:18:-;3849:4;3895:1;3872:3;:12;;:19;3885:5;3872:19;;;;;;;;;;;;:24;;3865:31;;3776:127;;;;:::o;12073:393:11:-;12166:1;12152:16;;:2;:16;;;;12144:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12224:16;12232:7;12224;:16::i;:::-;12223:17;12215:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12284:45;12313:1;12317:2;12321:7;12284:20;:45::i;:::-;12340:30;12362:7;12340:13;:17;12354:2;12340:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;12381:29;12398:7;12407:2;12381:12;:16;;:29;;;;;:::i;:::-;;12451:7;12447:2;12426:33;;12443:1;12426:33;;;;;;;;;;;;12073:393;;:::o;4920:958:16:-;5050:12;5082:18;5093:6;5082:10;:18::i;:::-;5074:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5205:12;5219:23;5246:6;:11;;5266:8;5277:4;5246:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5246:36:16;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;5204:78:16;;;;5296:7;5292:580;;;5326:10;5319:17;;;;;;5292:580;5457:1;5437:10;:17;:21;5433:429;;;5695:10;5689:17;5755:15;5742:10;5738:2;5734:19;5727:44;5644:145;5834:12;5827:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5827:20:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:958;;;;;;;:::o;326:4974:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "// contracts/DungeonsAndDragonsCharacter.sol\n// SPDX-License-Identifier: MIT\npragma solidity ^0.6.6;\n\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@chainlink/contracts/src/v0.6/VRFConsumerBase.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\n\ncontract DungeonsAndDragonsCharacter is ERC721, VRFConsumerBase, Ownable {\n using SafeMath for uint256;\n using Strings for string;\n\n bytes32 internal keyHash;\n uint256 internal fee;\n uint256 public randomResult;\n address public VRFCoordinator;\n // rinkeby: 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B\n address public LinkToken;\n // rinkeby: 0x01BE23585060835E02B77ef475b0Cc51aA1e0709a\n\n struct Character {\n uint256 strength;\n uint256 dexterity;\n uint256 constitution;\n uint256 intelligence;\n uint256 wisdom;\n uint256 charisma;\n uint256 experience;\n string name;\n }\n\n Character[] public characters;\n\n mapping(bytes32 => string) requestToCharacterName;\n mapping(bytes32 => address) requestToSender;\n mapping(bytes32 => uint256) requestToTokenId;\n\n /**\n * Constructor inherits VRFConsumerBase\n *\n * Network: Rinkeby\n * Chainlink VRF Coordinator address: 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B\n * LINK token address: 0x01BE23585060835E02B77ef475b0Cc51aA1e0709\n * Key Hash: 0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311\n */\n constructor(address _VRFCoordinator, address _LinkToken, bytes32 _keyhash)\n public\n VRFConsumerBase(_VRFCoordinator, _LinkToken)\n ERC721(\"DungeonsAndDragonsCharacter\", \"D&D\")\n { \n VRFCoordinator = _VRFCoordinator;\n LinkToken = _LinkToken;\n keyHash = _keyhash;\n fee = 0.1 * 10**18; // 0.1 LINK\n }\n\n function requestNewRandomCharacter(\n uint256 userProvidedSeed,\n string memory name\n ) public returns (bytes32) {\n require(\n LINK.balanceOf(address(this)) >= fee,\n \"Not enough LINK - fill contract with faucet\"\n );\n bytes32 requestId = requestRandomness(keyHash, fee, userProvidedSeed);\n requestToCharacterName[requestId] = name;\n requestToSender[requestId] = msg.sender;\n return requestId;\n }\n\n function getTokenURI(uint256 tokenId) public view returns (string memory) {\n return tokenURI(tokenId);\n }\n\n function setTokenURI(uint256 tokenId, string memory _tokenURI) public {\n require(\n _isApprovedOrOwner(_msgSender(), tokenId),\n \"ERC721: transfer caller is not owner nor approved\"\n );\n _setTokenURI(tokenId, _tokenURI);\n }\n\n function fulfillRandomness(bytes32 requestId, uint256 randomNumber)\n internal\n override\n {\n uint256 newId = characters.length;\n uint256 strength = (randomNumber % 100);\n uint256 dexterity = ((randomNumber % 10000) / 100 );\n uint256 constitution = ((randomNumber % 1000000) / 10000 );\n uint256 intelligence = ((randomNumber % 100000000) / 1000000 );\n uint256 wisdom = ((randomNumber % 10000000000) / 100000000 );\n uint256 charisma = ((randomNumber % 1000000000000) / 10000000000);\n uint256 experience = 0;\n\n characters.push(\n Character(\n strength,\n dexterity,\n constitution,\n intelligence,\n wisdom,\n charisma,\n experience,\n requestToCharacterName[requestId]\n )\n );\n _safeMint(requestToSender[requestId], newId);\n }\n\n function getLevel(uint256 tokenId) public view returns (uint256) {\n return sqrt(characters[tokenId].experience);\n }\n\n function getNumberOfCharacters() public view returns (uint256) {\n return characters.length; \n }\n\n function getCharacterOverView(uint256 tokenId)\n public\n view\n returns (\n string memory,\n uint256,\n uint256,\n uint256\n )\n {\n return (\n characters[tokenId].name,\n characters[tokenId].strength + characters[tokenId].dexterity + characters[tokenId].constitution + characters[tokenId].intelligence + characters[tokenId].wisdom + characters[tokenId].charisma,\n getLevel(tokenId),\n characters[tokenId].experience\n );\n }\n\n function getCharacterStats(uint256 tokenId)\n public\n view\n returns (\n uint256,\n uint256,\n uint256,\n uint256,\n uint256,\n uint256,\n uint256\n )\n {\n return (\n characters[tokenId].strength,\n characters[tokenId].dexterity,\n characters[tokenId].constitution,\n characters[tokenId].intelligence,\n characters[tokenId].wisdom,\n characters[tokenId].charisma,\n characters[tokenId].experience\n );\n }\n\n function sqrt(uint256 x) internal view returns (uint256 y) {\n uint256 z = (x + 1) / 2;\n y = x;\n while (z < y) {\n y = z;\n z = (x / z + z) / 2;\n }\n }\n}\n",
"sourcePath": "/Users/patrick/code/dungeons-and-dragons-nft/contracts/DungeonsAndDragonsCharacter.sol",
"ast": {
"absolutePath": "/Users/patrick/code/dungeons-and-dragons-nft/contracts/DungeonsAndDragonsCharacter.sol",
"exportedSymbols": {
"DungeonsAndDragonsCharacter": [
449
]
},
"id": 450,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.6",
".6"
],
"nodeType": "PragmaDirective",
"src": "77:23:0"
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
"file": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 2241,
"src": "102:57:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol",
"file": "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol",
"id": 3,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 630,
"src": "160:59:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
"file": "@openzeppelin/contracts/access/Ownable.sol",
"id": 4,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 1046,
"src": "220:52:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/utils/Strings.sol",
"file": "@openzeppelin/contracts/utils/Strings.sol",
"id": 5,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 3565,
"src": "273:51:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2240,
"src": "366:6:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$2240",
"typeString": "contract ERC721"
}
},
"id": 7,
"nodeType": "InheritanceSpecifier",
"src": "366:6:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8,
"name": "VRFConsumerBase",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 629,
"src": "374:15:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_VRFConsumerBase_$629",
"typeString": "contract VRFConsumerBase"
}
},
"id": 9,
"nodeType": "InheritanceSpecifier",
"src": "374:15:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 10,
"name": "Ownable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1045,
"src": "391:7:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Ownable_$1045",
"typeString": "contract Ownable"
}
},
"id": 11,
"nodeType": "InheritanceSpecifier",
"src": "391:7:0"
}
],
"contractDependencies": [
629,
679,
936,
1045,
1101,
1113,
2240,
2356,
2387,
2414
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 449,
"linearizedBaseContracts": [
449,
1045,
629,
679,
2240,
2387,
2414,
2356,
1101,
1113,
936
],
"name": "DungeonsAndDragonsCharacter",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 14,
"libraryName": {
"contractScope": null,
"id": 12,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1309,
"src": "411:8:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$1309",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "405:27:0",
"typeName": {
"id": 13,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "424:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 17,
"libraryName": {
"contractScope": null,
"id": 15,
"name": "Strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3564,
"src": "443:7:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Strings_$3564",
"typeString": "library Strings"
}
},
"nodeType": "UsingForDirective",
"src": "437:25:0",
"typeName": {
"id": 16,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "455:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
{
"constant": false,
"id": 19,
"mutability": "mutable",
"name": "keyHash",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "468:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "468:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 21,
"mutability": "mutable",
"name": "fee",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "498:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "498:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"functionSelector": "42619f66",
"id": 23,
"mutability": "mutable",
"name": "randomResult",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "524:27:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 22,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "524:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "33b60863",
"id": 25,
"mutability": "mutable",
"name": "VRFCoordinator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "557:29:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 24,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "557:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "4f8e2fdf",
"id": 27,
"mutability": "mutable",
"name": "LinkToken",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "651:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "651:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"canonicalName": "DungeonsAndDragonsCharacter.Character",
"id": 44,
"members": [
{
"constant": false,
"id": 29,
"mutability": "mutable",
"name": "strength",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "769:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 28,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "769:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 31,
"mutability": "mutable",
"name": "dexterity",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "795:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 30,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "795:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 33,
"mutability": "mutable",
"name": "constitution",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "822:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 32,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "822:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 35,
"mutability": "mutable",
"name": "intelligence",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "852:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 34,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "852:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 37,
"mutability": "mutable",
"name": "wisdom",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "882:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 36,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "882:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 39,
"mutability": "mutable",
"name": "charisma",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "906:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 38,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "906:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 41,
"mutability": "mutable",
"name": "experience",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "932:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 40,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "932:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 43,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "960:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 42,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "960:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Character",
"nodeType": "StructDefinition",
"scope": 449,
"src": "742:236:0",
"visibility": "public"
},
{
"constant": false,
"functionSelector": "4810bc59",
"id": 47,
"mutability": "mutable",
"name": "characters",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "984:29:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 45,
"name": "Character",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 44,
"src": "984:9:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character"
}
},
"id": 46,
"length": null,
"nodeType": "ArrayTypeName",
"src": "984:11:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character[]"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 51,
"mutability": "mutable",
"name": "requestToCharacterName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "1020:49:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string)"
},
"typeName": {
"id": 50,
"keyType": {
"id": 48,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1028:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1020:26:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string)"
},
"valueType": {
"id": 49,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1039:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 55,
"mutability": "mutable",
"name": "requestToSender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "1075:43:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"typeName": {
"id": 54,
"keyType": {
"id": 52,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1083:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1075:27:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"valueType": {
"id": 53,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1094:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 59,
"mutability": "mutable",
"name": "requestToTokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "1124:44:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 58,
"keyType": {
"id": 56,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1132:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1124:27:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 57,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1143:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 97,
"nodeType": "Block",
"src": "1720:152:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 79,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 77,
"name": "VRFCoordinator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "1733:14:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 78,
"name": "_VRFCoordinator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62,
"src": "1750:15:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1733:32:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 80,
"nodeType": "ExpressionStatement",
"src": "1733:32:0"
},
{
"expression": {
"argumentTypes": null,
"id": 83,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 81,
"name": "LinkToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "1775:9:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 82,
"name": "_LinkToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64,
"src": "1787:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1775:22:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 84,
"nodeType": "ExpressionStatement",
"src": "1775:22:0"
},
{
"expression": {
"argumentTypes": null,
"id": 87,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 85,
"name": "keyHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 19,
"src": "1807:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 86,
"name": "_keyhash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66,
"src": "1817:8:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1807:18:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 88,
"nodeType": "ExpressionStatement",
"src": "1807:18:0"
},
{
"expression": {
"argumentTypes": null,
"id": 95,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 89,
"name": "fee",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "1835:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_100000000000000000_by_1",
"typeString": "int_const 100000000000000000"
},
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "302e31",
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1841:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_10",
"typeString": "rational_const 1 / 10"
},
"value": "0.1"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3130",
"id": 91,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1847:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3138",
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1851:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"src": "1847:6:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
},
"src": "1841:12:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000000000000_by_1",
"typeString": "int_const 100000000000000000"
}
},
"src": "1835:18:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 96,
"nodeType": "ExpressionStatement",
"src": "1835:18:0"
}
]
},
"documentation": {
"id": 60,
"nodeType": "StructuredDocumentation",
"src": "1175:340:0",
"text": "Constructor inherits VRFConsumerBase\n * Network: Rinkeby\nChainlink VRF Coordinator address: 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B\nLINK token address: 0x01BE23585060835E02B77ef475b0Cc51aA1e0709\nKey Hash: 0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311"
},
"id": 98,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"argumentTypes": null,
"id": 69,
"name": "_VRFCoordinator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62,
"src": "1634:15:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 70,
"name": "_LinkToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64,
"src": "1651:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"id": 71,
"modifierName": {
"argumentTypes": null,
"id": 68,
"name": "VRFConsumerBase",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 629,
"src": "1618:15:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_VRFConsumerBase_$629_$",
"typeString": "type(contract VRFConsumerBase)"
}
},
"nodeType": "ModifierInvocation",
"src": "1618:44:0"
},
{
"arguments": [
{
"argumentTypes": null,
"hexValue": "44756e67656f6e73416e64447261676f6e73436861726163746572",
"id": 73,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1678:29:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1f31016963f0f01f3c737e8ba91d78875f56897800e692e676f1956bc595f75a",
"typeString": "literal_string \"DungeonsAndDragonsCharacter\""
},
"value": "DungeonsAndDragonsCharacter"
},
{
"argumentTypes": null,
"hexValue": "442644",
"id": 74,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1709:5:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5a109b888c8078a5e96078f210109185387c410b7f669587631343c2645210e2",
"typeString": "literal_string \"D&D\""
},
"value": "D&D"
}
],
"id": 75,
"modifierName": {
"argumentTypes": null,
"id": 72,
"name": "ERC721",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2240,
"src": "1671:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC721_$2240_$",
"typeString": "type(contract ERC721)"
}
},
"nodeType": "ModifierInvocation",
"src": "1671:44:0"
}
],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 67,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62,
"mutability": "mutable",
"name": "_VRFCoordinator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 98,
"src": "1532:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 61,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1532:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 64,
"mutability": "mutable",
"name": "_LinkToken",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 98,
"src": "1557:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 63,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1557:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 66,
"mutability": "mutable",
"name": "_keyhash",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 98,
"src": "1577:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 65,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1577:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1531:63:0"
},
"returnParameters": {
"id": 76,
"nodeType": "ParameterList",
"parameters": [],
"src": "1720:0:0"
},
"scope": 449,
"src": "1520:352:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 143,
"nodeType": "Block",
"src": "2006:347:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 112,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "2060:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DungeonsAndDragonsCharacter_$449",
"typeString": "contract DungeonsAndDragonsCharacter"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_DungeonsAndDragonsCharacter_$449",
"typeString": "contract DungeonsAndDragonsCharacter"
}
],
"id": 111,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2052:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 110,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2052:7:0",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2052:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 108,
"name": "LINK",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 583,
"src": "2037:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_LinkTokenInterface_$774",
"typeString": "contract LinkTokenInterface"
}
},
"id": 109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balanceOf",
"nodeType": "MemberAccess",
"referencedDeclaration": 706,
"src": "2037:14:0",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view external returns (uint256)"
}
},
"id": 114,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2037:29:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 115,
"name": "fee",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "2070:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2037:36:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e7472616374207769746820666175636574",
"id": 117,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2087:45:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4bb3a9958b8c6e95beec57f36a0352593367170b4a84072c44b036bee3a36e74",
"typeString": "literal_string \"Not enough LINK - fill contract with faucet\""
},
"value": "Not enough LINK - fill contract with faucet"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_4bb3a9958b8c6e95beec57f36a0352593367170b4a84072c44b036bee3a36e74",
"typeString": "literal_string \"Not enough LINK - fill contract with faucet\""
}
],
"id": 107,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2016:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2016:126:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 119,
"nodeType": "ExpressionStatement",
"src": "2016:126:0"
},
{
"assignments": [
121
],
"declarations": [
{
"constant": false,
"id": 121,
"mutability": "mutable",
"name": "requestId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 143,
"src": "2152:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 120,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2152:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 127,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 123,
"name": "keyHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 19,
"src": "2190:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 124,
"name": "fee",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "2199:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 125,
"name": "userProvidedSeed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "2204:16:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 122,
"name": "requestRandomness",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 581,
"src": "2172:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes32,uint256,uint256) returns (bytes32)"
}
},
"id": 126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2172:49:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2152:69:0"
},
{
"expression": {
"argumentTypes": null,
"id": 132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 128,
"name": "requestToCharacterName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51,
"src": "2231:22:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string storage ref)"
}
},
"id": 130,
"indexExpression": {
"argumentTypes": null,
"id": 129,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 121,
"src": "2254:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2231:33:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 131,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 102,
"src": "2267:4:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2231:40:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 133,
"nodeType": "ExpressionStatement",
"src": "2231:40:0"
},
{
"expression": {
"argumentTypes": null,
"id": 139,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 134,
"name": "requestToSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55,
"src": "2281:15:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 136,
"indexExpression": {
"argumentTypes": null,
"id": 135,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 121,
"src": "2297:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2281:26:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 137,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "2310:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 138,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2310:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "2281:39:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 140,
"nodeType": "ExpressionStatement",
"src": "2281:39:0"
},
{
"expression": {
"argumentTypes": null,
"id": 141,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 121,
"src": "2337:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 106,
"id": 142,
"nodeType": "Return",
"src": "2330:16:0"
}
]
},
"documentation": null,
"functionSelector": "06396dbe",
"id": 144,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "requestNewRandomCharacter",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 103,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 100,
"mutability": "mutable",
"name": "userProvidedSeed",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 144,
"src": "1922:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 99,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1922:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 102,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 144,
"src": "1956:18:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 101,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1956:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1912:68:0"
},
"returnParameters": {
"id": 106,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 105,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 144,
"src": "1997:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 104,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1997:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1996:9:0"
},
"scope": 449,
"src": "1878:475:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 155,
"nodeType": "Block",
"src": "2433:41:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 152,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 146,
"src": "2459:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 151,
"name": "tokenURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "2450:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
"typeString": "function (uint256) view returns (string memory)"
}
},
"id": 153,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2450:17:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 150,
"id": 154,
"nodeType": "Return",
"src": "2443:24:0"
}
]
},
"documentation": null,
"functionSelector": "3bb3a24d",
"id": 156,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getTokenURI",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 147,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 146,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 156,
"src": "2380:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 145,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2380:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2379:17:0"
},
"returnParameters": {
"id": 150,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 149,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 156,
"src": "2418:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 148,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2418:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2417:15:0"
},
"scope": 449,
"src": "2359:115:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 177,
"nodeType": "Block",
"src": "2550:196:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 165,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 924,
"src": "2600:10:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
"typeString": "function () view returns (address payable)"
}
},
"id": 166,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2600:12:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 167,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "2614:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 164,
"name": "_isApprovedOrOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1873,
"src": "2581:18:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 168,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2581:41:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564",
"id": 169,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2636:51:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
"typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
},
"value": "ERC721: transfer caller is not owner nor approved"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
"typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
}
],
"id": 163,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2560:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 170,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2560:137:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 171,
"nodeType": "ExpressionStatement",
"src": "2560:137:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 173,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "2720:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 174,
"name": "_tokenURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 160,
"src": "2729:9:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 172,
"name": "_setTokenURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2137,
"src": "2707:12:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 175,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2707:32:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 176,
"nodeType": "ExpressionStatement",
"src": "2707:32:0"
}
]
},
"documentation": null,
"functionSelector": "162094c4",
"id": 178,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "setTokenURI",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 161,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 158,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 178,
"src": "2501:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 157,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2501:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 160,
"mutability": "mutable",
"name": "_tokenURI",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 178,
"src": "2518:23:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 159,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2518:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2500:42:0"
},
"returnParameters": {
"id": 162,
"nodeType": "ParameterList",
"parameters": [],
"src": "2550:0:0"
},
"scope": 449,
"src": "2480:266:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"baseFunctions": [
526
],
"body": {
"id": 276,
"nodeType": "Block",
"src": "2858:846:0",
"statements": [
{
"assignments": [
187
],
"declarations": [
{
"constant": false,
"id": 187,
"mutability": "mutable",
"name": "newId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "2868:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 186,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2868:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 190,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 188,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "2884:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2884:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2868:33:0"
},
{
"assignments": [
192
],
"declarations": [
{
"constant": false,
"id": 192,
"mutability": "mutable",
"name": "strength",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "2911:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 191,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2911:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 197,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 195,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 193,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "2931:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030",
"id": 194,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2946:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "2931:18:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 196,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2930:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2911:39:0"
},
{
"assignments": [
199
],
"declarations": [
{
"constant": false,
"id": 199,
"mutability": "mutable",
"name": "dexterity",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "2960:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 198,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2960:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 207,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 205,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 202,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 200,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "2982:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030",
"id": 201,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2997:5:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000_by_1",
"typeString": "int_const 10000"
},
"value": "10000"
},
"src": "2982:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 203,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2981:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030",
"id": 204,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3006:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "2981:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 206,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2980:31:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2960:51:0"
},
{
"assignments": [
209
],
"declarations": [
{
"constant": false,
"id": 209,
"mutability": "mutable",
"name": "constitution",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3021:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 208,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3021:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 217,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 215,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 212,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 210,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3046:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303030303030",
"id": 211,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3061:7:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000_by_1",
"typeString": "int_const 1000000"
},
"value": "1000000"
},
"src": "3046:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 213,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3045:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030",
"id": 214,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3072:5:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000_by_1",
"typeString": "int_const 10000"
},
"value": "10000"
},
"src": "3045:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 216,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3044:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3021:58:0"
},
{
"assignments": [
219
],
"declarations": [
{
"constant": false,
"id": 219,
"mutability": "mutable",
"name": "intelligence",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3089:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 218,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3089:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 227,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 225,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 220,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3114:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030303030303030",
"id": 221,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3129:9:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000_by_1",
"typeString": "int_const 100000000"
},
"value": "100000000"
},
"src": "3114:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 223,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3113:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303030303030",
"id": 224,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3142:7:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000_by_1",
"typeString": "int_const 1000000"
},
"value": "1000000"
},
"src": "3113:36:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 226,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3112:39:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3089:62:0"
},
{
"assignments": [
229
],
"declarations": [
{
"constant": false,
"id": 229,
"mutability": "mutable",
"name": "wisdom",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3161:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 228,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3161:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 237,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 232,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 230,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3180:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030303030303030",
"id": 231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3195:11:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000000000_by_1",
"typeString": "int_const 10000000000"
},
"value": "10000000000"
},
"src": "3180:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 233,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3179:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030303030303030",
"id": 234,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3210:9:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000_by_1",
"typeString": "int_const 100000000"
},
"value": "100000000"
},
"src": "3179:40:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 236,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3178:43:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3161:60:0"
},
{
"assignments": [
239
],
"declarations": [
{
"constant": false,
"id": 239,
"mutability": "mutable",
"name": "charisma",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3231:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 238,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3231:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 247,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 245,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 240,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3252:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303030303030303030303030",
"id": 241,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3267:13:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000_by_1",
"typeString": "int_const 1000000000000"
},
"value": "1000000000000"
},
"src": "3252:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 243,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3251:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030303030303030",
"id": 244,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3284:11:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000000000_by_1",
"typeString": "int_const 10000000000"
},
"value": "10000000000"
},
"src": "3251:44:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 246,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3250:46:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3231:65:0"
},
{
"assignments": [
249
],
"declarations": [
{
"constant": false,
"id": 249,
"mutability": "mutable",
"name": "experience",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3306:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 248,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3306:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 251,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 250,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3327:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "3306:22:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 256,
"name": "strength",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 192,
"src": "3395:8:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 257,
"name": "dexterity",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 199,
"src": "3421:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 258,
"name": "constitution",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 209,
"src": "3448:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 259,
"name": "intelligence",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 219,
"src": "3478:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 260,
"name": "wisdom",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 229,
"src": "3508:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 261,
"name": "charisma",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 239,
"src": "3532:8:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 262,
"name": "experience",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 249,
"src": "3558:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 263,
"name": "requestToCharacterName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51,
"src": "3586:22:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string storage ref)"
}
},
"id": 265,
"indexExpression": {
"argumentTypes": null,
"id": 264,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 180,
"src": "3609:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3586:33:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 255,
"name": "Character",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 44,
"src": "3368:9:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Character_$44_storage_ptr_$",
"typeString": "type(struct DungeonsAndDragonsCharacter.Character storage pointer)"
}
},
"id": 266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3368:265:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_memory_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Character_$44_memory_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character memory"
}
],
"expression": {
"argumentTypes": null,
"id": 252,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "3339:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 254,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3339:15:0",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Character_$44_storage_$returns$__$",
"typeString": "function (struct DungeonsAndDragonsCharacter.Character storage ref)"
}
},
"id": 267,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3339:304:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 268,
"nodeType": "ExpressionStatement",
"src": "3339:304:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 270,
"name": "requestToSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55,
"src": "3663:15:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 272,
"indexExpression": {
"argumentTypes": null,
"id": 271,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 180,
"src": "3679:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3663:26:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 273,
"name": "newId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "3691:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 269,
"name": "_safeMint",
"nodeType": "Identifier",
"overloadedDeclarations": [
1888,
1917
],
"referencedDeclaration": 1888,
"src": "3653:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 274,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3653:44:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 275,
"nodeType": "ExpressionStatement",
"src": "3653:44:0"
}
]
},
"documentation": null,
"id": 277,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "fulfillRandomness",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 184,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "2845:8:0"
},
"parameters": {
"id": 183,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 180,
"mutability": "mutable",
"name": "requestId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 277,
"src": "2779:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 179,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2779:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 182,
"mutability": "mutable",
"name": "randomNumber",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 277,
"src": "2798:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 181,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2798:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2778:41:0"
},
"returnParameters": {
"id": 185,
"nodeType": "ParameterList",
"parameters": [],
"src": "2858:0:0"
},
"scope": 449,
"src": "2752:952:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 291,
"nodeType": "Block",
"src": "3775:60:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 285,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "3797:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 287,
"indexExpression": {
"argumentTypes": null,
"id": 286,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 279,
"src": "3808:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3797:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 288,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "experience",
"nodeType": "MemberAccess",
"referencedDeclaration": 41,
"src": "3797:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 284,
"name": "sqrt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 448,
"src": "3792:4:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 289,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3792:36:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 283,
"id": 290,
"nodeType": "Return",
"src": "3785:43:0"
}
]
},
"documentation": null,
"functionSelector": "86481d40",
"id": 292,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLevel",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 280,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 279,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 292,
"src": "3728:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 278,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3728:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3727:17:0"
},
"returnParameters": {
"id": 283,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 282,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 292,
"src": "3766:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 281,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3766:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3765:9:0"
},
"scope": 449,
"src": "3710:125:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 300,
"nodeType": "Block",
"src": "3904:42:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 297,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "3921:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 298,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3921:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 296,
"id": 299,
"nodeType": "Return",
"src": "3914:24:0"
}
]
},
"documentation": null,
"functionSelector": "62d36dec",
"id": 301,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getNumberOfCharacters",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 293,
"nodeType": "ParameterList",
"parameters": [],
"src": "3871:2:0"
},
"returnParameters": {
"id": 296,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 295,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 301,
"src": "3895:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 294,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3895:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3894:9:0"
},
"scope": 449,
"src": "3841:105:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 356,
"nodeType": "Block",
"src": "4148:351:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 314,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4179:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 316,
"indexExpression": {
"argumentTypes": null,
"id": 315,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4190:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4179:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 317,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 43,
"src": "4179:24:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 346,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 336,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 331,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 318,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4217:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 320,
"indexExpression": {
"argumentTypes": null,
"id": 319,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4228:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4217:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 321,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "strength",
"nodeType": "MemberAccess",
"referencedDeclaration": 29,
"src": "4217:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 322,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4248:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 324,
"indexExpression": {
"argumentTypes": null,
"id": 323,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4259:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4248:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 325,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "dexterity",
"nodeType": "MemberAccess",
"referencedDeclaration": 31,
"src": "4248:29:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:60:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 327,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4280:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 329,
"indexExpression": {
"argumentTypes": null,
"id": 328,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4291:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4280:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 330,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "constitution",
"nodeType": "MemberAccess",
"referencedDeclaration": 33,
"src": "4280:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:95:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 332,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4315:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 334,
"indexExpression": {
"argumentTypes": null,
"id": 333,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4326:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4315:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 335,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "intelligence",
"nodeType": "MemberAccess",
"referencedDeclaration": 35,
"src": "4315:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:130:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 337,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4350:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 339,
"indexExpression": {
"argumentTypes": null,
"id": 338,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4361:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4350:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 340,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "wisdom",
"nodeType": "MemberAccess",
"referencedDeclaration": 37,
"src": "4350:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:159:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 342,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4379:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 344,
"indexExpression": {
"argumentTypes": null,
"id": 343,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4390:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4379:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 345,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "charisma",
"nodeType": "MemberAccess",
"referencedDeclaration": 39,
"src": "4379:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:190:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 348,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4430:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 347,
"name": "getLevel",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 292,
"src": "4421:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 349,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4421:17:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 350,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4452:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 352,
"indexExpression": {
"argumentTypes": null,
"id": 351,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4463:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4452:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 353,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "experience",
"nodeType": "MemberAccess",
"referencedDeclaration": 41,
"src": "4452:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 354,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4165:327:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_string_storage_$_t_uint256_$_t_uint256_$_t_uint256_$",
"typeString": "tuple(string storage ref,uint256,uint256,uint256)"
}
},
"functionReturnParameters": 313,
"id": 355,
"nodeType": "Return",
"src": "4158:334:0"
}
]
},
"documentation": null,
"functionSelector": "4f95b5f0",
"id": 357,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCharacterOverView",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 304,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 303,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "3982:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 302,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3982:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3981:17:0"
},
"returnParameters": {
"id": 313,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 306,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4057:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 305,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4057:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 308,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4084:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 307,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4084:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 310,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4105:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 309,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4105:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 312,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4126:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 311,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4126:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4043:100:0"
},
"scope": 449,
"src": "3952:547:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 406,
"nodeType": "Block",
"src": "4755:337:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 376,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4786:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 378,
"indexExpression": {
"argumentTypes": null,
"id": 377,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4797:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4786:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 379,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "strength",
"nodeType": "MemberAccess",
"referencedDeclaration": 29,
"src": "4786:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 380,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4828:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 382,
"indexExpression": {
"argumentTypes": null,
"id": 381,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4839:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4828:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 383,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "dexterity",
"nodeType": "MemberAccess",
"referencedDeclaration": 31,
"src": "4828:29:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 384,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4871:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 386,
"indexExpression": {
"argumentTypes": null,
"id": 385,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4882:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4871:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 387,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "constitution",
"nodeType": "MemberAccess",
"referencedDeclaration": 33,
"src": "4871:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 388,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4917:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 390,
"indexExpression": {
"argumentTypes": null,
"id": 389,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4928:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4917:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 391,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "intelligence",
"nodeType": "MemberAccess",
"referencedDeclaration": 35,
"src": "4917:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 392,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4963:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 394,
"indexExpression": {
"argumentTypes": null,
"id": 393,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4974:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4963:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 395,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "wisdom",
"nodeType": "MemberAccess",
"referencedDeclaration": 37,
"src": "4963:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 396,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "5003:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 398,
"indexExpression": {
"argumentTypes": null,
"id": 397,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "5014:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5003:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 399,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "charisma",
"nodeType": "MemberAccess",
"referencedDeclaration": 39,
"src": "5003:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 400,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "5045:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 402,
"indexExpression": {
"argumentTypes": null,
"id": 401,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "5056:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5045:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 403,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "experience",
"nodeType": "MemberAccess",
"referencedDeclaration": 41,
"src": "5045:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 404,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4772:313:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
"typeString": "tuple(uint256,uint256,uint256,uint256,uint256,uint256,uint256)"
}
},
"functionReturnParameters": 375,
"id": 405,
"nodeType": "Return",
"src": "4765:320:0"
}
]
},
"documentation": null,
"functionSelector": "6fe0c046",
"id": 407,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCharacterStats",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 360,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 359,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4532:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 358,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4532:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4531:17:0"
},
"returnParameters": {
"id": 375,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 362,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4607:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 361,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4607:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 364,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4628:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 363,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4628:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 366,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4649:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 365,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4649:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 368,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4670:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 367,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4670:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 370,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4691:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 369,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4691:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 372,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4712:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 371,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4712:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 374,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4733:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 373,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4733:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4593:157:0"
},
"scope": 449,
"src": "4505:587:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 447,
"nodeType": "Block",
"src": "5157:141:0",
"statements": [
{
"assignments": [
415
],
"declarations": [
{
"constant": false,
"id": 415,
"mutability": "mutable",
"name": "z",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 447,
"src": "5167:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 414,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5167:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 422,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 421,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 418,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 416,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "5180:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 417,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5184:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "5180:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 419,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5179:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "32",
"id": 420,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5189:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "5179:11:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5167:23:0"
},
{
"expression": {
"argumentTypes": null,
"id": 425,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 423,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 412,
"src": "5200:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 424,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "5204:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5200:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 426,
"nodeType": "ExpressionStatement",
"src": "5200:5:0"
},
{
"body": {
"id": 445,
"nodeType": "Block",
"src": "5229:63:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 432,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 430,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 412,
"src": "5243:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 431,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5247:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5243:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 433,
"nodeType": "ExpressionStatement",
"src": "5243:5:0"
},
{
"expression": {
"argumentTypes": null,
"id": 443,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 434,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5262:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 442,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 439,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 437,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 435,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "5267:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 436,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5271:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5267:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 438,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5275:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5267:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 440,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5266:11:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "32",
"id": 441,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5280:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "5266:15:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5262:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 444,
"nodeType": "ExpressionStatement",
"src": "5262:19:0"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 427,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5222:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 428,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 412,
"src": "5226:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5222:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 446,
"nodeType": "WhileStatement",
"src": "5215:77:0"
}
]
},
"documentation": null,
"id": 448,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sqrt",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 409,
"mutability": "mutable",
"name": "x",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 448,
"src": "5112:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 408,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5112:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5111:11:0"
},
"returnParameters": {
"id": 413,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 412,
"mutability": "mutable",
"name": "y",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 448,
"src": "5146:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 411,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5146:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5145:11:0"
},
"scope": 449,
"src": "5098:200:0",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
}
],
"scope": 450,
"src": "326:4974:0"
}
],
"src": "77:5224:0"
},
"legacyAST": {
"absolutePath": "/Users/patrick/code/dungeons-and-dragons-nft/contracts/DungeonsAndDragonsCharacter.sol",
"exportedSymbols": {
"DungeonsAndDragonsCharacter": [
449
]
},
"id": 450,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.6",
".6"
],
"nodeType": "PragmaDirective",
"src": "77:23:0"
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
"file": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 2241,
"src": "102:57:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol",
"file": "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol",
"id": 3,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 630,
"src": "160:59:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
"file": "@openzeppelin/contracts/access/Ownable.sol",
"id": 4,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 1046,
"src": "220:52:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/utils/Strings.sol",
"file": "@openzeppelin/contracts/utils/Strings.sol",
"id": 5,
"nodeType": "ImportDirective",
"scope": 450,
"sourceUnit": 3565,
"src": "273:51:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2240,
"src": "366:6:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$2240",
"typeString": "contract ERC721"
}
},
"id": 7,
"nodeType": "InheritanceSpecifier",
"src": "366:6:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8,
"name": "VRFConsumerBase",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 629,
"src": "374:15:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_VRFConsumerBase_$629",
"typeString": "contract VRFConsumerBase"
}
},
"id": 9,
"nodeType": "InheritanceSpecifier",
"src": "374:15:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 10,
"name": "Ownable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1045,
"src": "391:7:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Ownable_$1045",
"typeString": "contract Ownable"
}
},
"id": 11,
"nodeType": "InheritanceSpecifier",
"src": "391:7:0"
}
],
"contractDependencies": [
629,
679,
936,
1045,
1101,
1113,
2240,
2356,
2387,
2414
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 449,
"linearizedBaseContracts": [
449,
1045,
629,
679,
2240,
2387,
2414,
2356,
1101,
1113,
936
],
"name": "DungeonsAndDragonsCharacter",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 14,
"libraryName": {
"contractScope": null,
"id": 12,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1309,
"src": "411:8:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$1309",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "405:27:0",
"typeName": {
"id": 13,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "424:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 17,
"libraryName": {
"contractScope": null,
"id": 15,
"name": "Strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3564,
"src": "443:7:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Strings_$3564",
"typeString": "library Strings"
}
},
"nodeType": "UsingForDirective",
"src": "437:25:0",
"typeName": {
"id": 16,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "455:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
{
"constant": false,
"id": 19,
"mutability": "mutable",
"name": "keyHash",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "468:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "468:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 21,
"mutability": "mutable",
"name": "fee",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "498:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "498:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"functionSelector": "42619f66",
"id": 23,
"mutability": "mutable",
"name": "randomResult",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "524:27:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 22,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "524:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "33b60863",
"id": 25,
"mutability": "mutable",
"name": "VRFCoordinator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "557:29:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 24,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "557:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "4f8e2fdf",
"id": 27,
"mutability": "mutable",
"name": "LinkToken",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "651:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "651:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"canonicalName": "DungeonsAndDragonsCharacter.Character",
"id": 44,
"members": [
{
"constant": false,
"id": 29,
"mutability": "mutable",
"name": "strength",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "769:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 28,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "769:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 31,
"mutability": "mutable",
"name": "dexterity",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "795:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 30,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "795:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 33,
"mutability": "mutable",
"name": "constitution",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "822:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 32,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "822:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 35,
"mutability": "mutable",
"name": "intelligence",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "852:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 34,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "852:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 37,
"mutability": "mutable",
"name": "wisdom",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "882:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 36,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "882:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 39,
"mutability": "mutable",
"name": "charisma",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "906:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 38,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "906:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 41,
"mutability": "mutable",
"name": "experience",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "932:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 40,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "932:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 43,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 44,
"src": "960:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 42,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "960:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Character",
"nodeType": "StructDefinition",
"scope": 449,
"src": "742:236:0",
"visibility": "public"
},
{
"constant": false,
"functionSelector": "4810bc59",
"id": 47,
"mutability": "mutable",
"name": "characters",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "984:29:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 45,
"name": "Character",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 44,
"src": "984:9:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character"
}
},
"id": 46,
"length": null,
"nodeType": "ArrayTypeName",
"src": "984:11:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character[]"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 51,
"mutability": "mutable",
"name": "requestToCharacterName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "1020:49:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string)"
},
"typeName": {
"id": 50,
"keyType": {
"id": 48,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1028:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1020:26:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string)"
},
"valueType": {
"id": 49,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1039:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 55,
"mutability": "mutable",
"name": "requestToSender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "1075:43:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"typeName": {
"id": 54,
"keyType": {
"id": 52,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1083:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1075:27:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"valueType": {
"id": 53,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1094:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 59,
"mutability": "mutable",
"name": "requestToTokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "1124:44:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 58,
"keyType": {
"id": 56,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1132:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1124:27:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 57,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1143:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 97,
"nodeType": "Block",
"src": "1720:152:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 79,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 77,
"name": "VRFCoordinator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "1733:14:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 78,
"name": "_VRFCoordinator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62,
"src": "1750:15:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1733:32:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 80,
"nodeType": "ExpressionStatement",
"src": "1733:32:0"
},
{
"expression": {
"argumentTypes": null,
"id": 83,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 81,
"name": "LinkToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "1775:9:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 82,
"name": "_LinkToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64,
"src": "1787:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1775:22:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 84,
"nodeType": "ExpressionStatement",
"src": "1775:22:0"
},
{
"expression": {
"argumentTypes": null,
"id": 87,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 85,
"name": "keyHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 19,
"src": "1807:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 86,
"name": "_keyhash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 66,
"src": "1817:8:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1807:18:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 88,
"nodeType": "ExpressionStatement",
"src": "1807:18:0"
},
{
"expression": {
"argumentTypes": null,
"id": 95,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 89,
"name": "fee",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "1835:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_100000000000000000_by_1",
"typeString": "int_const 100000000000000000"
},
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "302e31",
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1841:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_10",
"typeString": "rational_const 1 / 10"
},
"value": "0.1"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3130",
"id": 91,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1847:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3138",
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1851:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"src": "1847:6:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
},
"src": "1841:12:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000000000000_by_1",
"typeString": "int_const 100000000000000000"
}
},
"src": "1835:18:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 96,
"nodeType": "ExpressionStatement",
"src": "1835:18:0"
}
]
},
"documentation": {
"id": 60,
"nodeType": "StructuredDocumentation",
"src": "1175:340:0",
"text": "Constructor inherits VRFConsumerBase\n * Network: Rinkeby\nChainlink VRF Coordinator address: 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B\nLINK token address: 0x01BE23585060835E02B77ef475b0Cc51aA1e0709\nKey Hash: 0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311"
},
"id": 98,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"argumentTypes": null,
"id": 69,
"name": "_VRFCoordinator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62,
"src": "1634:15:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 70,
"name": "_LinkToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 64,
"src": "1651:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"id": 71,
"modifierName": {
"argumentTypes": null,
"id": 68,
"name": "VRFConsumerBase",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 629,
"src": "1618:15:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_VRFConsumerBase_$629_$",
"typeString": "type(contract VRFConsumerBase)"
}
},
"nodeType": "ModifierInvocation",
"src": "1618:44:0"
},
{
"arguments": [
{
"argumentTypes": null,
"hexValue": "44756e67656f6e73416e64447261676f6e73436861726163746572",
"id": 73,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1678:29:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1f31016963f0f01f3c737e8ba91d78875f56897800e692e676f1956bc595f75a",
"typeString": "literal_string \"DungeonsAndDragonsCharacter\""
},
"value": "DungeonsAndDragonsCharacter"
},
{
"argumentTypes": null,
"hexValue": "442644",
"id": 74,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1709:5:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5a109b888c8078a5e96078f210109185387c410b7f669587631343c2645210e2",
"typeString": "literal_string \"D&D\""
},
"value": "D&D"
}
],
"id": 75,
"modifierName": {
"argumentTypes": null,
"id": 72,
"name": "ERC721",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2240,
"src": "1671:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC721_$2240_$",
"typeString": "type(contract ERC721)"
}
},
"nodeType": "ModifierInvocation",
"src": "1671:44:0"
}
],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 67,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62,
"mutability": "mutable",
"name": "_VRFCoordinator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 98,
"src": "1532:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 61,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1532:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 64,
"mutability": "mutable",
"name": "_LinkToken",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 98,
"src": "1557:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 63,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1557:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 66,
"mutability": "mutable",
"name": "_keyhash",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 98,
"src": "1577:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 65,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1577:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1531:63:0"
},
"returnParameters": {
"id": 76,
"nodeType": "ParameterList",
"parameters": [],
"src": "1720:0:0"
},
"scope": 449,
"src": "1520:352:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 143,
"nodeType": "Block",
"src": "2006:347:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 112,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "2060:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DungeonsAndDragonsCharacter_$449",
"typeString": "contract DungeonsAndDragonsCharacter"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_DungeonsAndDragonsCharacter_$449",
"typeString": "contract DungeonsAndDragonsCharacter"
}
],
"id": 111,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2052:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 110,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2052:7:0",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2052:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 108,
"name": "LINK",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 583,
"src": "2037:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_LinkTokenInterface_$774",
"typeString": "contract LinkTokenInterface"
}
},
"id": 109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balanceOf",
"nodeType": "MemberAccess",
"referencedDeclaration": 706,
"src": "2037:14:0",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view external returns (uint256)"
}
},
"id": 114,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2037:29:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 115,
"name": "fee",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "2070:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2037:36:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e7472616374207769746820666175636574",
"id": 117,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2087:45:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4bb3a9958b8c6e95beec57f36a0352593367170b4a84072c44b036bee3a36e74",
"typeString": "literal_string \"Not enough LINK - fill contract with faucet\""
},
"value": "Not enough LINK - fill contract with faucet"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_4bb3a9958b8c6e95beec57f36a0352593367170b4a84072c44b036bee3a36e74",
"typeString": "literal_string \"Not enough LINK - fill contract with faucet\""
}
],
"id": 107,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2016:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2016:126:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 119,
"nodeType": "ExpressionStatement",
"src": "2016:126:0"
},
{
"assignments": [
121
],
"declarations": [
{
"constant": false,
"id": 121,
"mutability": "mutable",
"name": "requestId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 143,
"src": "2152:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 120,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2152:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 127,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 123,
"name": "keyHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 19,
"src": "2190:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 124,
"name": "fee",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "2199:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 125,
"name": "userProvidedSeed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "2204:16:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 122,
"name": "requestRandomness",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 581,
"src": "2172:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes32,uint256,uint256) returns (bytes32)"
}
},
"id": 126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2172:49:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2152:69:0"
},
{
"expression": {
"argumentTypes": null,
"id": 132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 128,
"name": "requestToCharacterName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51,
"src": "2231:22:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string storage ref)"
}
},
"id": 130,
"indexExpression": {
"argumentTypes": null,
"id": 129,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 121,
"src": "2254:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2231:33:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 131,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 102,
"src": "2267:4:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2231:40:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 133,
"nodeType": "ExpressionStatement",
"src": "2231:40:0"
},
{
"expression": {
"argumentTypes": null,
"id": 139,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 134,
"name": "requestToSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55,
"src": "2281:15:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 136,
"indexExpression": {
"argumentTypes": null,
"id": 135,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 121,
"src": "2297:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2281:26:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 137,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "2310:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 138,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2310:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "2281:39:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 140,
"nodeType": "ExpressionStatement",
"src": "2281:39:0"
},
{
"expression": {
"argumentTypes": null,
"id": 141,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 121,
"src": "2337:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 106,
"id": 142,
"nodeType": "Return",
"src": "2330:16:0"
}
]
},
"documentation": null,
"functionSelector": "06396dbe",
"id": 144,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "requestNewRandomCharacter",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 103,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 100,
"mutability": "mutable",
"name": "userProvidedSeed",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 144,
"src": "1922:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 99,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1922:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 102,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 144,
"src": "1956:18:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 101,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1956:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1912:68:0"
},
"returnParameters": {
"id": 106,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 105,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 144,
"src": "1997:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 104,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1997:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1996:9:0"
},
"scope": 449,
"src": "1878:475:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 155,
"nodeType": "Block",
"src": "2433:41:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 152,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 146,
"src": "2459:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 151,
"name": "tokenURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "2450:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
"typeString": "function (uint256) view returns (string memory)"
}
},
"id": 153,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2450:17:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 150,
"id": 154,
"nodeType": "Return",
"src": "2443:24:0"
}
]
},
"documentation": null,
"functionSelector": "3bb3a24d",
"id": 156,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getTokenURI",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 147,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 146,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 156,
"src": "2380:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 145,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2380:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2379:17:0"
},
"returnParameters": {
"id": 150,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 149,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 156,
"src": "2418:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 148,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2418:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2417:15:0"
},
"scope": 449,
"src": "2359:115:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 177,
"nodeType": "Block",
"src": "2550:196:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 165,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 924,
"src": "2600:10:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
"typeString": "function () view returns (address payable)"
}
},
"id": 166,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2600:12:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 167,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "2614:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 164,
"name": "_isApprovedOrOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1873,
"src": "2581:18:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 168,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2581:41:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564",
"id": 169,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2636:51:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
"typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
},
"value": "ERC721: transfer caller is not owner nor approved"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2",
"typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\""
}
],
"id": 163,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2560:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 170,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2560:137:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 171,
"nodeType": "ExpressionStatement",
"src": "2560:137:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 173,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "2720:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 174,
"name": "_tokenURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 160,
"src": "2729:9:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 172,
"name": "_setTokenURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2137,
"src": "2707:12:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 175,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2707:32:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 176,
"nodeType": "ExpressionStatement",
"src": "2707:32:0"
}
]
},
"documentation": null,
"functionSelector": "162094c4",
"id": 178,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "setTokenURI",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 161,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 158,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 178,
"src": "2501:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 157,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2501:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 160,
"mutability": "mutable",
"name": "_tokenURI",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 178,
"src": "2518:23:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 159,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2518:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2500:42:0"
},
"returnParameters": {
"id": 162,
"nodeType": "ParameterList",
"parameters": [],
"src": "2550:0:0"
},
"scope": 449,
"src": "2480:266:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"baseFunctions": [
526
],
"body": {
"id": 276,
"nodeType": "Block",
"src": "2858:846:0",
"statements": [
{
"assignments": [
187
],
"declarations": [
{
"constant": false,
"id": 187,
"mutability": "mutable",
"name": "newId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "2868:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 186,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2868:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 190,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 188,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "2884:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2884:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2868:33:0"
},
{
"assignments": [
192
],
"declarations": [
{
"constant": false,
"id": 192,
"mutability": "mutable",
"name": "strength",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "2911:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 191,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2911:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 197,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 195,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 193,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "2931:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030",
"id": 194,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2946:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "2931:18:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 196,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2930:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2911:39:0"
},
{
"assignments": [
199
],
"declarations": [
{
"constant": false,
"id": 199,
"mutability": "mutable",
"name": "dexterity",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "2960:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 198,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2960:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 207,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 205,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 202,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 200,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "2982:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030",
"id": 201,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2997:5:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000_by_1",
"typeString": "int_const 10000"
},
"value": "10000"
},
"src": "2982:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 203,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2981:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030",
"id": 204,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3006:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "2981:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 206,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2980:31:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2960:51:0"
},
{
"assignments": [
209
],
"declarations": [
{
"constant": false,
"id": 209,
"mutability": "mutable",
"name": "constitution",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3021:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 208,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3021:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 217,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 215,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 212,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 210,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3046:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303030303030",
"id": 211,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3061:7:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000_by_1",
"typeString": "int_const 1000000"
},
"value": "1000000"
},
"src": "3046:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 213,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3045:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030",
"id": 214,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3072:5:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000_by_1",
"typeString": "int_const 10000"
},
"value": "10000"
},
"src": "3045:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 216,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3044:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3021:58:0"
},
{
"assignments": [
219
],
"declarations": [
{
"constant": false,
"id": 219,
"mutability": "mutable",
"name": "intelligence",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3089:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 218,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3089:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 227,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 225,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 220,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3114:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030303030303030",
"id": 221,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3129:9:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000_by_1",
"typeString": "int_const 100000000"
},
"value": "100000000"
},
"src": "3114:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 223,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3113:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303030303030",
"id": 224,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3142:7:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000_by_1",
"typeString": "int_const 1000000"
},
"value": "1000000"
},
"src": "3113:36:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 226,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3112:39:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3089:62:0"
},
{
"assignments": [
229
],
"declarations": [
{
"constant": false,
"id": 229,
"mutability": "mutable",
"name": "wisdom",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3161:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 228,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3161:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 237,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 232,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 230,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3180:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030303030303030",
"id": 231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3195:11:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000000000_by_1",
"typeString": "int_const 10000000000"
},
"value": "10000000000"
},
"src": "3180:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 233,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3179:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030303030303030",
"id": 234,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3210:9:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000_by_1",
"typeString": "int_const 100000000"
},
"value": "100000000"
},
"src": "3179:40:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 236,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3178:43:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3161:60:0"
},
{
"assignments": [
239
],
"declarations": [
{
"constant": false,
"id": 239,
"mutability": "mutable",
"name": "charisma",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3231:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 238,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3231:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 247,
"initialValue": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 245,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 240,
"name": "randomNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "3252:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303030303030303030303030",
"id": 241,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3267:13:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000_by_1",
"typeString": "int_const 1000000000000"
},
"value": "1000000000000"
},
"src": "3252:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 243,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3251:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130303030303030303030",
"id": 244,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3284:11:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000000000_by_1",
"typeString": "int_const 10000000000"
},
"value": "10000000000"
},
"src": "3251:44:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 246,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3250:46:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3231:65:0"
},
{
"assignments": [
249
],
"declarations": [
{
"constant": false,
"id": 249,
"mutability": "mutable",
"name": "experience",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 276,
"src": "3306:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 248,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3306:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 251,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 250,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3327:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "3306:22:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 256,
"name": "strength",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 192,
"src": "3395:8:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 257,
"name": "dexterity",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 199,
"src": "3421:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 258,
"name": "constitution",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 209,
"src": "3448:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 259,
"name": "intelligence",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 219,
"src": "3478:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 260,
"name": "wisdom",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 229,
"src": "3508:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 261,
"name": "charisma",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 239,
"src": "3532:8:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 262,
"name": "experience",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 249,
"src": "3558:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 263,
"name": "requestToCharacterName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51,
"src": "3586:22:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
"typeString": "mapping(bytes32 => string storage ref)"
}
},
"id": 265,
"indexExpression": {
"argumentTypes": null,
"id": 264,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 180,
"src": "3609:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3586:33:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 255,
"name": "Character",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 44,
"src": "3368:9:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Character_$44_storage_ptr_$",
"typeString": "type(struct DungeonsAndDragonsCharacter.Character storage pointer)"
}
},
"id": 266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3368:265:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_memory_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Character_$44_memory_ptr",
"typeString": "struct DungeonsAndDragonsCharacter.Character memory"
}
],
"expression": {
"argumentTypes": null,
"id": 252,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "3339:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 254,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3339:15:0",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Character_$44_storage_$returns$__$",
"typeString": "function (struct DungeonsAndDragonsCharacter.Character storage ref)"
}
},
"id": 267,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3339:304:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 268,
"nodeType": "ExpressionStatement",
"src": "3339:304:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 270,
"name": "requestToSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55,
"src": "3663:15:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
"id": 272,
"indexExpression": {
"argumentTypes": null,
"id": 271,
"name": "requestId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 180,
"src": "3679:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3663:26:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 273,
"name": "newId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "3691:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 269,
"name": "_safeMint",
"nodeType": "Identifier",
"overloadedDeclarations": [
1888,
1917
],
"referencedDeclaration": 1888,
"src": "3653:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 274,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3653:44:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 275,
"nodeType": "ExpressionStatement",
"src": "3653:44:0"
}
]
},
"documentation": null,
"id": 277,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "fulfillRandomness",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 184,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "2845:8:0"
},
"parameters": {
"id": 183,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 180,
"mutability": "mutable",
"name": "requestId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 277,
"src": "2779:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 179,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2779:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 182,
"mutability": "mutable",
"name": "randomNumber",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 277,
"src": "2798:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 181,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2798:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2778:41:0"
},
"returnParameters": {
"id": 185,
"nodeType": "ParameterList",
"parameters": [],
"src": "2858:0:0"
},
"scope": 449,
"src": "2752:952:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 291,
"nodeType": "Block",
"src": "3775:60:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 285,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "3797:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 287,
"indexExpression": {
"argumentTypes": null,
"id": 286,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 279,
"src": "3808:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3797:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 288,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "experience",
"nodeType": "MemberAccess",
"referencedDeclaration": 41,
"src": "3797:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 284,
"name": "sqrt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 448,
"src": "3792:4:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 289,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3792:36:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 283,
"id": 290,
"nodeType": "Return",
"src": "3785:43:0"
}
]
},
"documentation": null,
"functionSelector": "86481d40",
"id": 292,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLevel",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 280,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 279,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 292,
"src": "3728:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 278,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3728:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3727:17:0"
},
"returnParameters": {
"id": 283,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 282,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 292,
"src": "3766:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 281,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3766:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3765:9:0"
},
"scope": 449,
"src": "3710:125:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 300,
"nodeType": "Block",
"src": "3904:42:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 297,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "3921:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 298,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3921:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 296,
"id": 299,
"nodeType": "Return",
"src": "3914:24:0"
}
]
},
"documentation": null,
"functionSelector": "62d36dec",
"id": 301,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getNumberOfCharacters",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 293,
"nodeType": "ParameterList",
"parameters": [],
"src": "3871:2:0"
},
"returnParameters": {
"id": 296,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 295,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 301,
"src": "3895:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 294,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3895:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3894:9:0"
},
"scope": 449,
"src": "3841:105:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 356,
"nodeType": "Block",
"src": "4148:351:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 314,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4179:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 316,
"indexExpression": {
"argumentTypes": null,
"id": 315,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4190:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4179:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 317,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 43,
"src": "4179:24:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 346,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 336,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 331,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 318,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4217:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 320,
"indexExpression": {
"argumentTypes": null,
"id": 319,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4228:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4217:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 321,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "strength",
"nodeType": "MemberAccess",
"referencedDeclaration": 29,
"src": "4217:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 322,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4248:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 324,
"indexExpression": {
"argumentTypes": null,
"id": 323,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4259:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4248:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 325,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "dexterity",
"nodeType": "MemberAccess",
"referencedDeclaration": 31,
"src": "4248:29:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:60:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 327,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4280:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 329,
"indexExpression": {
"argumentTypes": null,
"id": 328,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4291:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4280:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 330,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "constitution",
"nodeType": "MemberAccess",
"referencedDeclaration": 33,
"src": "4280:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:95:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 332,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4315:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 334,
"indexExpression": {
"argumentTypes": null,
"id": 333,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4326:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4315:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 335,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "intelligence",
"nodeType": "MemberAccess",
"referencedDeclaration": 35,
"src": "4315:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:130:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 337,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4350:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 339,
"indexExpression": {
"argumentTypes": null,
"id": 338,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4361:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4350:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 340,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "wisdom",
"nodeType": "MemberAccess",
"referencedDeclaration": 37,
"src": "4350:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:159:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 342,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4379:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 344,
"indexExpression": {
"argumentTypes": null,
"id": 343,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4390:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4379:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 345,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "charisma",
"nodeType": "MemberAccess",
"referencedDeclaration": 39,
"src": "4379:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4217:190:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 348,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4430:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 347,
"name": "getLevel",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 292,
"src": "4421:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 349,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4421:17:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 350,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4452:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 352,
"indexExpression": {
"argumentTypes": null,
"id": 351,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 303,
"src": "4463:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4452:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 353,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "experience",
"nodeType": "MemberAccess",
"referencedDeclaration": 41,
"src": "4452:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 354,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4165:327:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_string_storage_$_t_uint256_$_t_uint256_$_t_uint256_$",
"typeString": "tuple(string storage ref,uint256,uint256,uint256)"
}
},
"functionReturnParameters": 313,
"id": 355,
"nodeType": "Return",
"src": "4158:334:0"
}
]
},
"documentation": null,
"functionSelector": "4f95b5f0",
"id": 357,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCharacterOverView",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 304,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 303,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "3982:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 302,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3982:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3981:17:0"
},
"returnParameters": {
"id": 313,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 306,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4057:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 305,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4057:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 308,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4084:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 307,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4084:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 310,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4105:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 309,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4105:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 312,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 357,
"src": "4126:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 311,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4126:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4043:100:0"
},
"scope": 449,
"src": "3952:547:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 406,
"nodeType": "Block",
"src": "4755:337:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 376,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4786:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 378,
"indexExpression": {
"argumentTypes": null,
"id": 377,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4797:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4786:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 379,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "strength",
"nodeType": "MemberAccess",
"referencedDeclaration": 29,
"src": "4786:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 380,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4828:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 382,
"indexExpression": {
"argumentTypes": null,
"id": 381,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4839:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4828:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 383,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "dexterity",
"nodeType": "MemberAccess",
"referencedDeclaration": 31,
"src": "4828:29:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 384,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4871:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 386,
"indexExpression": {
"argumentTypes": null,
"id": 385,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4882:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4871:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 387,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "constitution",
"nodeType": "MemberAccess",
"referencedDeclaration": 33,
"src": "4871:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 388,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4917:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 390,
"indexExpression": {
"argumentTypes": null,
"id": 389,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4928:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4917:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 391,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "intelligence",
"nodeType": "MemberAccess",
"referencedDeclaration": 35,
"src": "4917:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 392,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "4963:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 394,
"indexExpression": {
"argumentTypes": null,
"id": 393,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "4974:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4963:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 395,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "wisdom",
"nodeType": "MemberAccess",
"referencedDeclaration": 37,
"src": "4963:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 396,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "5003:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 398,
"indexExpression": {
"argumentTypes": null,
"id": 397,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "5014:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5003:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 399,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "charisma",
"nodeType": "MemberAccess",
"referencedDeclaration": 39,
"src": "5003:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 400,
"name": "characters",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "5045:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Character_$44_storage_$dyn_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref[] storage ref"
}
},
"id": 402,
"indexExpression": {
"argumentTypes": null,
"id": 401,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "5056:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5045:19:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Character_$44_storage",
"typeString": "struct DungeonsAndDragonsCharacter.Character storage ref"
}
},
"id": 403,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "experience",
"nodeType": "MemberAccess",
"referencedDeclaration": 41,
"src": "5045:30:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 404,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4772:313:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
"typeString": "tuple(uint256,uint256,uint256,uint256,uint256,uint256,uint256)"
}
},
"functionReturnParameters": 375,
"id": 405,
"nodeType": "Return",
"src": "4765:320:0"
}
]
},
"documentation": null,
"functionSelector": "6fe0c046",
"id": 407,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCharacterStats",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 360,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 359,
"mutability": "mutable",
"name": "tokenId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4532:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 358,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4532:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4531:17:0"
},
"returnParameters": {
"id": 375,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 362,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4607:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 361,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4607:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 364,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4628:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 363,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4628:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 366,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4649:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 365,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4649:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 368,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4670:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 367,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4670:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 370,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4691:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 369,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4691:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 372,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4712:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 371,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4712:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 374,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 407,
"src": "4733:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 373,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4733:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4593:157:0"
},
"scope": 449,
"src": "4505:587:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 447,
"nodeType": "Block",
"src": "5157:141:0",
"statements": [
{
"assignments": [
415
],
"declarations": [
{
"constant": false,
"id": 415,
"mutability": "mutable",
"name": "z",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 447,
"src": "5167:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 414,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5167:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 422,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 421,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 418,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 416,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "5180:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 417,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5184:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "5180:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 419,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5179:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "32",
"id": 420,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5189:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "5179:11:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5167:23:0"
},
{
"expression": {
"argumentTypes": null,
"id": 425,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 423,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 412,
"src": "5200:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 424,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "5204:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5200:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 426,
"nodeType": "ExpressionStatement",
"src": "5200:5:0"
},
{
"body": {
"id": 445,
"nodeType": "Block",
"src": "5229:63:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 432,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 430,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 412,
"src": "5243:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 431,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5247:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5243:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 433,
"nodeType": "ExpressionStatement",
"src": "5243:5:0"
},
{
"expression": {
"argumentTypes": null,
"id": 443,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 434,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5262:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 442,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 439,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 437,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 435,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "5267:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 436,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5271:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5267:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 438,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5275:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5267:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 440,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5266:11:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "32",
"id": 441,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5280:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "5266:15:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5262:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 444,
"nodeType": "ExpressionStatement",
"src": "5262:19:0"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 427,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "5222:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 428,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 412,
"src": "5226:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5222:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 446,
"nodeType": "WhileStatement",
"src": "5215:77:0"
}
]
},
"documentation": null,
"id": 448,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sqrt",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 409,
"mutability": "mutable",
"name": "x",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 448,
"src": "5112:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 408,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5112:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5111:11:0"
},
"returnParameters": {
"id": 413,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 412,
"mutability": "mutable",
"name": "y",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 448,
"src": "5146:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 411,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5146:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5145:11:0"
},
"scope": 449,
"src": "5098:200:0",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
}
],
"scope": 450,
"src": "326:4974:0"
}
],
"src": "77:5224:0"
},
"compiler": {
"name": "solc",
"version": "0.6.6+commit.6c089d02.Emscripten.clang"
},
"networks": {
"4": {
"events": {
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
"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"
},
"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": {
"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"
},
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
"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"
}
},
"links": {},
"address": "0xF6F6555C0797565c8Ba63A15f9545Df4937209E2",
"transactionHash": "0x73614133349e58c7c147436e2831b10d1c36d3aac3cc4c4ae4f191a5dab6f9d8"
},
"42": {
"events": {
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
"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"
},
"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": {
"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"
},
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
"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"
}
},
"links": {},
"address": "0xB7b8517C06736ed4a047daD7C3759445eAf99AC9",
"transactionHash": "0x5645362c533733186de05081debbce51ed836f6fb8f05380a0dcaabdcf79b5eb"
}
},
"schemaVersion": "3.2.5",
"updatedAt": "2020-11-25T23:19:25.044Z",
"networkType": "ethereum",
"devdoc": {
"methods": {
"approve(address,uint256)": {
"details": "See {IERC721-approve}."
},
"balanceOf(address)": {
"details": "See {IERC721-balanceOf}."
},
"baseURI()": {
"details": "Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID."
},
"getApproved(uint256)": {
"details": "See {IERC721-getApproved}."
},
"isApprovedForAll(address,address)": {
"details": "See {IERC721-isApprovedForAll}."
},
"name()": {
"details": "See {IERC721Metadata-name}."
},
"owner()": {
"details": "Returns the address of the current owner."
},
"ownerOf(uint256)": {
"details": "See {IERC721-ownerOf}."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"requestRandomness(bytes32,uint256,uint256)": {
"details": "The source of the seed data must be something which the oraclecannot anticipate. See \"SECURITY CONSIDERATIONS\" above.The fulfillRandomness method receives the output, once it's providedby the Oracle, and verified by the vrfCoordinator.The _keyHash must already be registered with the VRFCoordinator, andthe _fee must exceed the fee specified during registration of the_keyHash.The returned requestId can be used to distinguish responses to *concurrent requests. It is passed as the first argument tofulfillRandomness.",
"params": {
"_fee": "The amount of LINK to send with the request",
"_keyHash": "ID of public key against which randomness is generated",
"_seed": "Random seed from which output randomness is determined"
},
"returns": {
"requestId": "which will be returned with the response to this request"
}
},
"safeTransferFrom(address,address,uint256)": {
"details": "See {IERC721-safeTransferFrom}."
},
"safeTransferFrom(address,address,uint256,bytes)": {
"details": "See {IERC721-safeTransferFrom}."
},
"setApprovalForAll(address,bool)": {
"details": "See {IERC721-setApprovalForAll}."
},
"supportsInterface(bytes4)": {
"details": "See {IERC165-supportsInterface}. * Time complexity O(1), guaranteed to always use less than 30 000 gas."
},
"symbol()": {
"details": "See {IERC721Metadata-symbol}."
},
"tokenByIndex(uint256)": {
"details": "See {IERC721Enumerable-tokenByIndex}."
},
"tokenOfOwnerByIndex(address,uint256)": {
"details": "See {IERC721Enumerable-tokenOfOwnerByIndex}."
},
"tokenURI(uint256)": {
"details": "See {IERC721Metadata-tokenURI}."
},
"totalSupply()": {
"details": "See {IERC721Enumerable-totalSupply}."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC721-transferFrom}."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
}
},
"userdoc": {
"methods": {
"constructor": "Constructor inherits VRFConsumerBase * Network: Rinkeby Chainlink VRF Coordinator address: 0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B LINK token address: 0x01BE23585060835E02B77ef475b0Cc51aA1e0709 Key Hash: 0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311",
"requestRandomness(bytes32,uint256,uint256)": {
"notice": "requestRandomness initiates a request for VRF output given _seed"
}
}
}
}