mirror of https://github.com/certusone/oyster.git
19869 lines
887 KiB
JSON
19869 lines
887 KiB
JSON
{
|
|
"contractName": "WrappedAsset",
|
|
"abi": [
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "Approval",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "Transfer",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "assetAddress",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "assetChain",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "bridge",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "initialized",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "_assetChain",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "_assetAddress",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "decimals",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "initialize",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "mint",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "burn",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "name",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "symbol",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "decimals",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "totalSupply",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "balanceOf",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transfer",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "allowance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "approve",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transferFrom",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "addedValue",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "increaseAllowance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "subtractedValue",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "decreaseAllowance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetChain\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_assetChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_assetAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol\":\"WrappedAsset\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0x1aca747b823c4d8492ae379cfd9495e8ff19726302d943da56b2bb71aebecc73\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://716c755b41c76deb60297664878f07e0972867918fde13c20c196263d3daa554\",\"dweb:/ipfs/QmbrxvDYfcgSjBBnDdXyZJcwd8pYyyrQhYqY5h6DaxWKcy\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x9486045e189facd2e868ece35249872598ef03f1087fb6fa4d1161842daa2287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77c3a04ef8453788b14b1ebbc24dd3f0a18ceb2615cd156aac949a611e552af8\",\"dweb:/ipfs/QmcmqWGguRM3iLuF57tcyrN3F6EA63kzeNkDfQuteBnurr\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}",
|
|
"bytecode": "0x60806040526012600760006101000a81548160ff021916908360ff16021790555034801561002c57600080fd5b50611e998061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806340c10f19116100a2578063a457c2d711610071578063a457c2d7146104ff578063a7a2d3fb14610563578063a9059cbb146105ab578063dd62ed3e1461060f578063e78cea921461068757610116565b806340c10f191461038857806370a08231146103d657806395d89b411461042e5780639dc29fac146104b157610116565b806318160ddd116100e957806318160ddd146102435780631ba46cfd1461026157806323b872dd1461027f578063313ce56714610303578063395093511461032457610116565b8063026b05391461011b57806306fdde031461013c578063095ea7b3146101bf578063158ef93e14610223575b600080fd5b6101236106bb565b604051808260ff16815260200191505060405180910390f35b6101446106cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610184578082015181840152602081019050610169565b50505050905090810190601f1680156101b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020b600480360360408110156101d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610800565b60405180821515815260200191505060405180910390f35b61022b61081e565b60405180821515815260200191505060405180910390f35b61024b610831565b6040518082815260200191505060405180910390f35b61026961083b565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610841565b60405180821515815260200191505060405180910390f35b61030b61091a565b604051808260ff16815260200191505060405180910390f35b6103706004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610931565b60405180821515815260200191505060405180910390f35b6103d46004803603604081101561039e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e4565b005b610418600480360360208110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b610436610ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047657808201518184015260208101905061045b565b50505050905090810190601f1680156104a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fd600480360360408110156104c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b83565b005b61054b6004803603604081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b60405180821515815260200191505060405180910390f35b6105a96004803603606081101561057957600080fd5b81019080803560ff16906020019092919080359060200190929190803560ff169060200190929190505050610d04565b005b6105f7600480360360408110156105c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e70565b60405180821515815260200191505060405180910390f35b6106716004803603604081101561062557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8e565b6040518082815260200191505060405180910390f35b61068f610f15565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900460ff1681565b60606106e760008054906101000a900460ff1660ff16610f3b565b6106ef61107f565b60405160200180807f576f726d686f6c652057726170706564202d200000000000000000000000000081525060130183805190602001908083835b6020831061074d578051825260208201915060208101905060208303925061072a565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b602083106107c657805182526020820191506020810190506020830392506107a3565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905090565b600061081461080d611243565b848461124b565b6001905092915050565b600260009054906101000a900460ff1681565b6000600554905090565b60015481565b600061084e848484611442565b61090f8461085a611243565b61090a85604051806060016040528060288152602001611d6360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c0611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109da61093e611243565b846109d5856004600061094f611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b61124b565b6001905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611e1a6025913960400191505060405180910390fd5b610a94828261183e565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b795780601f10610b4e57610100808354040283529160200191610b79565b820191906000526020600020905b815481529060010190602001808311610b5c57829003601f168201915b5050505050905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dd16025913960400191505060405180910390fd5b610c3382826119fb565b5050565b6000610cfa610c44611243565b84610cf585604051806060016040528060258152602001611e3f6025913960046000610c6e611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b6001905092915050565b600260009054906101000a900460ff1615610d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f616c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b826000806101000a81548160ff021916908360ff1602179055508160018190555033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260006101000a81548160ff0219169083151502179055506040518060400160405280600381526020017f575754000000000000000000000000000000000000000000000000000000000081525060069080519060200190610e4f929190611c38565b5080600760006101000a81548160ff021916908360ff160217905550505050565b6000610e84610e7d611243565b8484611442565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000821415610f83576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061107a565b600082905060005b60008214610fad578080600101915050600a8281610fa557fe5b049150610f8b565b60608167ffffffffffffffff81118015610fc657600080fd5b506040519080825280601f01601f191660200182016040528015610ff95781602001600182028036833780820191505090505b50905060006001830390505b6000861461107257600a868161101757fe5b0660300160f81b8282806001900393508151811061103157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868161106a57fe5b049550611005565b819450505050505b919050565b6060806040518060400160405280601081526020017f30313233343536373839616263646566000000000000000000000000000000008152509050600060015490506060600260200260020160ff1667ffffffffffffffff811180156110e457600080fd5b506040519080825280601f01601f1916602001820160405280156111175781602001600182028036833780820191505090505b50905060005b602060ff168110156112395783600484836020811061113857fe5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061117057fe5b602001015160f81c60f81b82600283028151811061118a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083600f60f81b8483602081106111cb57fe5b1a60f81b1660f81c60ff16815181106111e057fe5b602001015160f81c60f81b8260028302600101815181106111fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061111d565b5080935050505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611df66024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d1b6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dac6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561154e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611cd66023913960400191505060405180910390fd5b6115ba81604051806060016040528060268152602001611d3d60269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061164f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561176e578082015181840152602081019050611753565b50505050905090810190601f16801561179b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6118f6816005546117b690919063ffffffff16565b60058190555061194e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d8b6021913960400191505060405180910390fd5b611aed81604051806060016040528060228152602001611cf960229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4581600554611bb590919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600082821115611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611c7957805160ff1916838001178555611ca7565b82800160010185558215611ca7579182015b82811115611ca6578251825591602001919060010190611c8b565b5b509050611cb49190611cb8565b5090565b5b80821115611cd1576000816000905550600101611cb9565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573736275726e2063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736d696e742063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3a2ff5f0503f2258e143f986f075a1cf9f8ce968a2954f3953e79c45d383ede64736f6c634300060c0033",
|
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806340c10f19116100a2578063a457c2d711610071578063a457c2d7146104ff578063a7a2d3fb14610563578063a9059cbb146105ab578063dd62ed3e1461060f578063e78cea921461068757610116565b806340c10f191461038857806370a08231146103d657806395d89b411461042e5780639dc29fac146104b157610116565b806318160ddd116100e957806318160ddd146102435780631ba46cfd1461026157806323b872dd1461027f578063313ce56714610303578063395093511461032457610116565b8063026b05391461011b57806306fdde031461013c578063095ea7b3146101bf578063158ef93e14610223575b600080fd5b6101236106bb565b604051808260ff16815260200191505060405180910390f35b6101446106cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610184578082015181840152602081019050610169565b50505050905090810190601f1680156101b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020b600480360360408110156101d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610800565b60405180821515815260200191505060405180910390f35b61022b61081e565b60405180821515815260200191505060405180910390f35b61024b610831565b6040518082815260200191505060405180910390f35b61026961083b565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610841565b60405180821515815260200191505060405180910390f35b61030b61091a565b604051808260ff16815260200191505060405180910390f35b6103706004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610931565b60405180821515815260200191505060405180910390f35b6103d46004803603604081101561039e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e4565b005b610418600480360360208110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b610436610ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047657808201518184015260208101905061045b565b50505050905090810190601f1680156104a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fd600480360360408110156104c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b83565b005b61054b6004803603604081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b60405180821515815260200191505060405180910390f35b6105a96004803603606081101561057957600080fd5b81019080803560ff16906020019092919080359060200190929190803560ff169060200190929190505050610d04565b005b6105f7600480360360408110156105c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e70565b60405180821515815260200191505060405180910390f35b6106716004803603604081101561062557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8e565b6040518082815260200191505060405180910390f35b61068f610f15565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900460ff1681565b60606106e760008054906101000a900460ff1660ff16610f3b565b6106ef61107f565b60405160200180807f576f726d686f6c652057726170706564202d200000000000000000000000000081525060130183805190602001908083835b6020831061074d578051825260208201915060208101905060208303925061072a565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b602083106107c657805182526020820191506020810190506020830392506107a3565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905090565b600061081461080d611243565b848461124b565b6001905092915050565b600260009054906101000a900460ff1681565b6000600554905090565b60015481565b600061084e848484611442565b61090f8461085a611243565b61090a85604051806060016040528060288152602001611d6360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c0611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109da61093e611243565b846109d5856004600061094f611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b61124b565b6001905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611e1a6025913960400191505060405180910390fd5b610a94828261183e565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b795780601f10610b4e57610100808354040283529160200191610b79565b820191906000526020600020905b815481529060010190602001808311610b5c57829003601f168201915b5050505050905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dd16025913960400191505060405180910390fd5b610c3382826119fb565b5050565b6000610cfa610c44611243565b84610cf585604051806060016040528060258152602001611e3f6025913960046000610c6e611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b6001905092915050565b600260009054906101000a900460ff1615610d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f616c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b826000806101000a81548160ff021916908360ff1602179055508160018190555033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260006101000a81548160ff0219169083151502179055506040518060400160405280600381526020017f575754000000000000000000000000000000000000000000000000000000000081525060069080519060200190610e4f929190611c38565b5080600760006101000a81548160ff021916908360ff160217905550505050565b6000610e84610e7d611243565b8484611442565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000821415610f83576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061107a565b600082905060005b60008214610fad578080600101915050600a8281610fa557fe5b049150610f8b565b60608167ffffffffffffffff81118015610fc657600080fd5b506040519080825280601f01601f191660200182016040528015610ff95781602001600182028036833780820191505090505b50905060006001830390505b6000861461107257600a868161101757fe5b0660300160f81b8282806001900393508151811061103157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868161106a57fe5b049550611005565b819450505050505b919050565b6060806040518060400160405280601081526020017f30313233343536373839616263646566000000000000000000000000000000008152509050600060015490506060600260200260020160ff1667ffffffffffffffff811180156110e457600080fd5b506040519080825280601f01601f1916602001820160405280156111175781602001600182028036833780820191505090505b50905060005b602060ff168110156112395783600484836020811061113857fe5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061117057fe5b602001015160f81c60f81b82600283028151811061118a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083600f60f81b8483602081106111cb57fe5b1a60f81b1660f81c60ff16815181106111e057fe5b602001015160f81c60f81b8260028302600101815181106111fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061111d565b5080935050505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611df66024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d1b6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dac6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561154e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611cd66023913960400191505060405180910390fd5b6115ba81604051806060016040528060268152602001611d3d60269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061164f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561176e578082015181840152602081019050611753565b50505050905090810190601f16801561179b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6118f6816005546117b690919063ffffffff16565b60058190555061194e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d8b6021913960400191505060405180910390fd5b611aed81604051806060016040528060228152602001611cf960229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4581600554611bb590919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600082821115611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611c7957805160ff1916838001178555611ca7565b82800160010185558215611ca7579182015b82811115611ca6578251825591602001919060010190611c8b565b5b509050611cb49190611cb8565b5090565b5b80821115611cd1576000816000905550600101611cb9565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573736275726e2063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736d696e742063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3a2ff5f0503f2258e143f986f075a1cf9f8ce968a2954f3953e79c45d383ede64736f6c634300060c0033",
|
|
"immutableReferences": {},
|
|
"sourceMap": "304:10137:2:-:0;;;1622:2;1596:28;;;;;;;;;;;;;;;;;;;;304:10137;;;;;;;;;;;;;;;;",
|
|
"deployedSourceMap": "304:10137:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;351:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1690:176;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4826:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;413:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3849:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;380:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5444:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3708:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6148:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;835:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4005:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3000:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1017:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6842:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;470:359;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4325:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4547:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;442:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;351:23;;;;;;;;;;;;:::o;1690:176::-;1727:13;1806:24;1819:10;;;;;;;;;;1806:24;;:12;:24::i;:::-;1837:20;:18;:20::i;:::-;1766:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1752:107;;1690:176;:::o;4826:158::-;4901:4;4917:39;4926:12;:10;:12::i;:::-;4940:7;4949:6;4917:8;:39::i;:::-;4973:4;4966:11;;4826:158;;;;:::o;413:23::-;;;;;;;;;;;;;:::o;3849:98::-;3902:7;3928:12;;3921:19;;3849:98;:::o;380:27::-;;;;:::o;5444:309::-;5542:4;5558:36;5568:6;5576:9;5587:6;5558:9;:36::i;:::-;5604:121;5613:6;5621:12;:10;:12::i;:::-;5635:89;5673:6;5635:89;;;;;;;;;;;;;;;;;:11;:19;5647:6;5635:19;;;;;;;;;;;;;;;:33;5655:12;:10;:12::i;:::-;5635:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5604:8;:121::i;:::-;5742:4;5735:11;;5444:309;;;;;:::o;3708:81::-;3749:5;3773:9;;;;;;;;;;;3766:16;;3708:81;:::o;6148:207::-;6228:4;6244:83;6253:12;:10;:12::i;:::-;6267:7;6276:50;6315:10;6276:11;:25;6288:12;:10;:12::i;:::-;6276:25;;;;;;;;;;;;;;;:34;6302:7;6276:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6244:8;:83::i;:::-;6344:4;6337:11;;6148:207;;;;:::o;835:176::-;923:6;;;;;;;;;;;909:20;;:10;:20;;;901:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:22;988:7;997:6;982:5;:22::i;:::-;835:176;;:::o;4005:117::-;4071:7;4097:9;:18;4107:7;4097:18;;;;;;;;;;;;;;;;4090:25;;4005:117;;;:::o;3000:85::-;3039:13;3071:7;3064:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3000:85;:::o;1017:176::-;1105:6;;;;;;;;;;;1091:20;;:10;:20;;;1083:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1164:22;1170:7;1179:6;1164:5;:22::i;:::-;1017:176;;:::o;6842:258::-;6927:4;6943:129;6952:12;:10;:12::i;:::-;6966:7;6975:96;7014:15;6975:96;;;;;;;;;;;;;;;;;:11;:25;6987:12;:10;:12::i;:::-;6975:25;;;;;;;;;;;;;;;:34;7001:7;6975:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6943:8;:129::i;:::-;7089:4;7082:11;;6842:258;;;;:::o;470:359::-;574:11;;;;;;;;;;;573:12;565:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:11;647:10;;:24;;;;;;;;;;;;;;;;;;696:13;681:12;:28;;;;728:10;719:6;;:19;;;;;;;;;;;;;;;;;;762:4;748:11;;:18;;;;;;;;;;;;;;;;;;777:15;;;;;;;;;;;;;;;;;:7;:15;;;;;;;;;;;;:::i;:::-;;814:8;802:9;;:20;;;;;;;;;;;;;;;;;;470:359;;;:::o;4325:164::-;4403:4;4419:42;4429:12;:10;:12::i;:::-;4443:9;4454:6;4419:9;:42::i;:::-;4478:4;4471:11;;4325:164;;;;:::o;4547:141::-;4628:7;4654:11;:18;4666:5;4654:18;;;;;;;;;;;;;;;:27;4673:7;4654:27;;;;;;;;;;;;;;;;4647:34;;4547:141;;;;:::o;442:21::-;;;;;;;;;;;;;:::o;1922:469::-;1976:27;2025:1;2019:2;:7;2015:48;;;2042:10;;;;;;;;;;;;;;;;;;;;;2015:48;2072:6;2081:2;2072:11;;2093:8;2111:66;2123:1;2118;:6;2111:66;;2140:5;;;;;;;2164:2;2159:7;;;;;;;;;2111:66;;;2186:17;2216:3;2206:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2186:34;;2230:6;2245:1;2239:3;:7;2230:16;;2256:100;2269:1;2263:2;:7;2256:100;;2319:2;2314;:7;;;;;;2309:2;:12;2298:25;;2286:4;2291:3;;;;;;;2286:9;;;;;;;;;;;:37;;;;;;;;;;;2343:2;2337:8;;;;;;;;;2256:100;;;2379:4;2365:19;;;;;;1922:469;;;;:::o;2447:440::-;2499:13;2524:21;:42;;;;;;;;;;;;;;;;;;;2576:12;2591;;2576:27;;2614:16;2661:1;2647:11;:15;2643:1;:19;2633:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2614:49;;2678:6;2673:180;2694:11;2690:15;;:1;:15;2673:180;;;2739:8;2770:1;2759:4;2764:1;2759:7;;;;;;;;;;:12;;;;;2753:19;;2748:25;;2739:35;;;;;;;;;;;;;;;;2726:3;2734:1;2730;:5;2726:10;;;;;;;;;;;:48;;;;;;;;;;;2805:8;2835:4;2825:14;;:4;2830:1;2825:7;;;;;;;;;;:14;2819:21;;2814:27;;2805:37;;;;;;;;;;;;;;;;2788:3;2800:1;2796;:5;2792:1;:9;2788:14;;;;;;;;;;;:54;;;;;;;;;;;2707:3;;;;;;;2673:180;;;;2876:3;2862:18;;;;;2447:440;:::o;598:104:9:-;651:15;685:10;678:17;;598:104;:::o;9696:332:2:-;9806:1;9789:19;;:5;:19;;;;9781:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9886:1;9867:21;;:7;:21;;;;9859:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9968:6;9938:11;:18;9950:5;9938:18;;;;;;;;;;;;;;;:27;9957:7;9938:27;;;;;;;;;;;;;;;:36;;;;10005:7;9989:32;;9998:5;9989:32;;;10014:6;9989:32;;;;;;;;;;;;;;;;;;9696:332;;;:::o;7574:464::-;7689:1;7671:20;;:6;:20;;;;7663:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7772:1;7751:23;;:9;:23;;;;7743:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7845;7867:6;7845:71;;;;;;;;;;;;;;;;;:9;:17;7855:6;7845:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7825:9;:17;7835:6;7825:17;;;;;;;;;;;;;;;:91;;;;7949:32;7974:6;7949:9;:20;7959:9;7949:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7926:9;:20;7936:9;7926:20;;;;;;;;;;;;;;;:55;;;;8013:9;7996:35;;8005:6;7996:35;;;8024:6;7996:35;;;;;;;;;;;;;;;;;;7574:464;;;:::o;5432:163:4:-;5518:7;5550:1;5545;:6;;5553:12;5537:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5587:1;5583;:5;5576:12;;5432:163;;;;;:::o;2690:175::-;2748:7;2767:9;2783:1;2779;:5;2767:17;;2807:1;2802;:6;;2794:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2857:1;2850:8;;;2690:175;;;;:::o;8308:302:2:-;8402:1;8383:21;;:7;:21;;;;8375:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8466:24;8483:6;8466:12;;:16;;:24;;;;:::i;:::-;8451:12;:39;;;;8521:30;8544:6;8521:9;:18;8531:7;8521:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8500:9;:18;8510:7;8500:18;;;;;;;;;;;;;;;:51;;;;8587:7;8566:37;;8583:1;8566:37;;;8596:6;8566:37;;;;;;;;;;;;;;;;;;8308:302;;:::o;8929:342::-;9023:1;9004:21;;:7;:21;;;;8996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9095:68;9118:6;9095:68;;;;;;;;;;;;;;;;;:9;:18;9105:7;9095:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;9074:9;:18;9084:7;9074:18;;;;;;;;;;;;;;;:89;;;;9188:24;9205:6;9188:12;;:16;;:24;;;;:::i;:::-;9173:12;:39;;;;9253:1;9227:37;;9236:7;9227:37;;;9257:6;9227:37;;;;;;;;;;;;;;;;;;8929:342;;:::o;3136:155:4:-;3194:7;3226:1;3221;:6;;3213:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3283:1;3279;:5;3272:12;;3136:155;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o",
|
|
"source": "// contracts/WrappedAsset.sol\n// SPDX-License-Identifier: Apache 2\npragma solidity ^0.6.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/Address.sol\";\nimport \"@openzeppelin/contracts/GSN/Context.sol\";\n\ncontract WrappedAsset is IERC20, Context {\n uint8 public assetChain;\n bytes32 public assetAddress;\n bool public initialized;\n address public bridge;\n\n function initialize(uint8 _assetChain, bytes32 _assetAddress, uint8 decimals) public {\n require(!initialized, \"already initialized\");\n // Set local fields\n assetChain = _assetChain;\n assetAddress = _assetAddress;\n bridge = msg.sender;\n initialized = true;\n\n _symbol = \"WWT\";\n _decimals = decimals;\n }\n\n function mint(address account, uint256 amount) external {\n require(msg.sender == bridge, \"mint can only be called by the bridge\");\n\n _mint(account, amount);\n }\n\n function burn(address account, uint256 amount) external {\n require(msg.sender == bridge, \"burn can only be called by the bridge\");\n\n _burn(account, amount);\n }\n\n // Taken from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol\n // Licensed under MIT\n\n using SafeMath for uint256;\n using Address for address;\n\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _symbol;\n uint8 private _decimals = 18;\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view returns (string memory) {\n return string(abi.encodePacked(\"Wormhole Wrapped - \", uintToString(assetChain), \"-\", assetAddressString()));\n }\n\n // https://ethereum.stackexchange.com/a/40977\n function uintToString(uint _i) internal pure returns (string memory _uintAsString) {\n if (_i == 0) {\n return \"0\";\n }\n uint j = _i;\n uint len;\n while (j != 0) {\n len++;\n j /= 10;\n }\n bytes memory bstr = new bytes(len);\n uint k = len - 1;\n while (_i != 0) {\n bstr[k--] = byte(uint8(48 + _i % 10));\n _i /= 10;\n }\n return string(bstr);\n }\n\n // https://ethereum.stackexchange.com/a/58341\n function assetAddressString() private view returns (string memory) {\n bytes memory alphabet = \"0123456789abcdef\";\n bytes32 data = assetAddress;\n\n bytes memory str = new bytes(2 + data.length * 2);\n for (uint i = 0; i < data.length; i++) {\n str[i * 2] = alphabet[uint(uint8(data[i] >> 4))];\n str[1 + i * 2] = alphabet[uint(uint8(data[i] & 0x0f))];\n }\n return string(str);\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n * called.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view returns (uint8) {\n return _decimals;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public override returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for ``sender``'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\"));\n return true;\n }\n\n /**\n * @dev Moves tokens `amount` from `sender` to `recipient`.\n *\n * This is internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(address sender, address recipient, uint256 amount) internal {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\n _balances[recipient] = _balances[recipient].add(amount);\n emit Transfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements\n *\n * - `to` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\n _totalSupply = _totalSupply.sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n *\n * This is internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(address owner, address spender, uint256 amount) internal {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Sets {decimals} to a value other than the default one of 18.\n *\n * WARNING: This function should only be called from the constructor. Most\n * applications that interact with token contracts will not expect\n * {decimals} to ever change, and may work incorrectly if it does.\n */\n function _setupDecimals(uint8 decimals_) internal {\n _decimals = decimals_;\n }\n}\n",
|
|
"sourcePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
|
|
"ast": {
|
|
"absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
|
|
"exportedSymbols": {
|
|
"WrappedAsset": [2147]
|
|
},
|
|
"id": 2148,
|
|
"license": "Apache 2",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 1433,
|
|
"literals": ["solidity", "^", "0.6", ".0"],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "67:23:2"
|
|
},
|
|
{
|
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
|
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
|
"id": 1434,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 2148,
|
|
"sourceUnit": 3087,
|
|
"src": "92:56:2",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
|
|
"file": "@openzeppelin/contracts/math/SafeMath.sol",
|
|
"id": 1435,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 2148,
|
|
"sourceUnit": 2506,
|
|
"src": "149:51:2",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
|
|
"file": "@openzeppelin/contracts/utils/Address.sol",
|
|
"id": 1436,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 2148,
|
|
"sourceUnit": 3596,
|
|
"src": "201:51:2",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "@openzeppelin/contracts/GSN/Context.sol",
|
|
"file": "@openzeppelin/contracts/GSN/Context.sol",
|
|
"id": 1437,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 2148,
|
|
"sourceUnit": 2151,
|
|
"src": "253:49:2",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 1438,
|
|
"name": "IERC20",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3086,
|
|
"src": "329:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IERC20_$3086",
|
|
"typeString": "contract IERC20"
|
|
}
|
|
},
|
|
"id": 1439,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "329:6:2"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 1440,
|
|
"name": "Context",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3618,
|
|
"src": "337:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Context_$3618",
|
|
"typeString": "contract Context"
|
|
}
|
|
},
|
|
"id": 1441,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "337:7:2"
|
|
}
|
|
],
|
|
"contractDependencies": [3086, 3618],
|
|
"contractKind": "contract",
|
|
"documentation": null,
|
|
"fullyImplemented": true,
|
|
"id": 2147,
|
|
"linearizedBaseContracts": [2147, 3618, 3086],
|
|
"name": "WrappedAsset",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "026b0539",
|
|
"id": 1443,
|
|
"mutability": "mutable",
|
|
"name": "assetChain",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "351:23:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"typeName": {
|
|
"id": 1442,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "351:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "1ba46cfd",
|
|
"id": 1445,
|
|
"mutability": "mutable",
|
|
"name": "assetAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "380:27:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 1444,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "380:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "158ef93e",
|
|
"id": 1447,
|
|
"mutability": "mutable",
|
|
"name": "initialized",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "413:23:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1446,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "413:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "e78cea92",
|
|
"id": 1449,
|
|
"mutability": "mutable",
|
|
"name": "bridge",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "442:21:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1448,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "442:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1489,
|
|
"nodeType": "Block",
|
|
"src": "555:274:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1460,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"src": "573:12:2",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1459,
|
|
"name": "initialized",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1447,
|
|
"src": "574:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "616c726561647920696e697469616c697a6564",
|
|
"id": 1461,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "587:21:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc",
|
|
"typeString": "literal_string \"already initialized\""
|
|
},
|
|
"value": "already initialized"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc",
|
|
"typeString": "literal_string \"already initialized\""
|
|
}
|
|
],
|
|
"id": 1458,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "565:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1462,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "565:44:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1463,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "565:44:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1466,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1464,
|
|
"name": "assetChain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1443,
|
|
"src": "647:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1465,
|
|
"name": "_assetChain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1451,
|
|
"src": "660:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"src": "647:24:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"id": 1467,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "647:24:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1470,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1468,
|
|
"name": "assetAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "681:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1469,
|
|
"name": "_assetAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1453,
|
|
"src": "696:13:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"src": "681:28:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 1471,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "681:28:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1475,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1472,
|
|
"name": "bridge",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1449,
|
|
"src": "719:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1473,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "728:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1474,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "728:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "719:19:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 1476,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "719:19:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1479,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1477,
|
|
"name": "initialized",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1447,
|
|
"src": "748:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1478,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "762:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"src": "748:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1480,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "748:18:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1483,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1481,
|
|
"name": "_symbol",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "777:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "575754",
|
|
"id": 1482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "787:5:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_0d2d5a94d86195c9aab1dc351352ba0539c6da454bc9b63f5012e79c7d2d46e2",
|
|
"typeString": "literal_string \"WWT\""
|
|
},
|
|
"value": "WWT"
|
|
},
|
|
"src": "777:15:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"id": 1484,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "777:15:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1487,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1485,
|
|
"name": "_decimals",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1555,
|
|
"src": "802:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1486,
|
|
"name": "decimals",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1455,
|
|
"src": "814:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"src": "802:20:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"id": 1488,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "802:20:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"functionSelector": "a7a2d3fb",
|
|
"id": 1490,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "initialize",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1456,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1451,
|
|
"mutability": "mutable",
|
|
"name": "_assetChain",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1490,
|
|
"src": "490:17:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"typeName": {
|
|
"id": 1450,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "490:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1453,
|
|
"mutability": "mutable",
|
|
"name": "_assetAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1490,
|
|
"src": "509:21:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 1452,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "509:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1455,
|
|
"mutability": "mutable",
|
|
"name": "decimals",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1490,
|
|
"src": "532:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"typeName": {
|
|
"id": 1454,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "532:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "489:58:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1457,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "555:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "470:359:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1510,
|
|
"nodeType": "Block",
|
|
"src": "891:120:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1501,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1498,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "909:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1499,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "909:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1500,
|
|
"name": "bridge",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1449,
|
|
"src": "923:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "909:20:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "6d696e742063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
|
|
"id": 1502,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "931:39:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e7702acf154d2f82cc8c1dd52813f94b0a08ea733aaf89d0cac26f6b55722c5a",
|
|
"typeString": "literal_string \"mint can only be called by the bridge\""
|
|
},
|
|
"value": "mint can only be called by the bridge"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e7702acf154d2f82cc8c1dd52813f94b0a08ea733aaf89d0cac26f6b55722c5a",
|
|
"typeString": "literal_string \"mint can only be called by the bridge\""
|
|
}
|
|
],
|
|
"id": 1497,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "901:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1503,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "901:70:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1504,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "901:70:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1506,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1492,
|
|
"src": "988:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1507,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1494,
|
|
"src": "997:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1505,
|
|
"name": "_mint",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2043,
|
|
"src": "982:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,uint256)"
|
|
}
|
|
},
|
|
"id": 1508,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "982:22:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1509,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "982:22:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"functionSelector": "40c10f19",
|
|
"id": 1511,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "mint",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1495,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1492,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "849:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1491,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "849:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1494,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"src": "866:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1493,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "866:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "848:33:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1496,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "891:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "835:176:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1531,
|
|
"nodeType": "Block",
|
|
"src": "1073:120:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1522,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1519,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -15,
|
|
"src": "1091:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 1520,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1091:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1521,
|
|
"name": "bridge",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1449,
|
|
"src": "1105:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "1091:20:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "6275726e2063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
|
|
"id": 1523,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1113:39:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_c31242aa9df4d29364b074986b1202ec8729deca727157a31be5e2473387893b",
|
|
"typeString": "literal_string \"burn can only be called by the bridge\""
|
|
},
|
|
"value": "burn can only be called by the bridge"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_c31242aa9df4d29364b074986b1202ec8729deca727157a31be5e2473387893b",
|
|
"typeString": "literal_string \"burn can only be called by the bridge\""
|
|
}
|
|
],
|
|
"id": 1518,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "1083:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1524,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1083:70:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1525,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1083:70:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1527,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1513,
|
|
"src": "1170:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1528,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1515,
|
|
"src": "1179:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1526,
|
|
"name": "_burn",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2090,
|
|
"src": "1164:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,uint256)"
|
|
}
|
|
},
|
|
"id": 1529,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1164:22:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1530,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "1164:22:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"functionSelector": "9dc29fac",
|
|
"id": 1532,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "burn",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1516,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1513,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1532,
|
|
"src": "1031:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1512,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1031:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1515,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1532,
|
|
"src": "1048:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1514,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1048:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1030:33:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1517,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1073:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "1017:176:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
{
|
|
"id": 1535,
|
|
"libraryName": {
|
|
"contractScope": null,
|
|
"id": 1533,
|
|
"name": "SafeMath",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 2505,
|
|
"src": "1349:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_SafeMath_$2505",
|
|
"typeString": "library SafeMath"
|
|
}
|
|
},
|
|
"nodeType": "UsingForDirective",
|
|
"src": "1343:27:2",
|
|
"typeName": {
|
|
"id": 1534,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1362:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 1538,
|
|
"libraryName": {
|
|
"contractScope": null,
|
|
"id": 1536,
|
|
"name": "Address",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 3595,
|
|
"src": "1381:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Address_$3595",
|
|
"typeString": "library Address"
|
|
}
|
|
},
|
|
"nodeType": "UsingForDirective",
|
|
"src": "1375:26:2",
|
|
"typeName": {
|
|
"id": 1537,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1393:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1542,
|
|
"mutability": "mutable",
|
|
"name": "_balances",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "1407:45:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1541,
|
|
"keyType": {
|
|
"id": 1539,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1415:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "1407:27:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
},
|
|
"valueType": {
|
|
"id": 1540,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1426:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1548,
|
|
"mutability": "mutable",
|
|
"name": "_allowances",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "1459:67:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
},
|
|
"typeName": {
|
|
"id": 1547,
|
|
"keyType": {
|
|
"id": 1543,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1467:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "1459:47:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
},
|
|
"valueType": {
|
|
"id": 1546,
|
|
"keyType": {
|
|
"id": 1544,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1486:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "1478:27:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
},
|
|
"valueType": {
|
|
"id": 1545,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1497:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1550,
|
|
"mutability": "mutable",
|
|
"name": "_totalSupply",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "1533:28:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1549,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1533:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1552,
|
|
"mutability": "mutable",
|
|
"name": "_symbol",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "1568:22:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1551,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1568:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1555,
|
|
"mutability": "mutable",
|
|
"name": "_decimals",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"src": "1596:28:2",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"typeName": {
|
|
"id": 1553,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1596:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"value": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3138",
|
|
"id": 1554,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1622:2:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_18_by_1",
|
|
"typeString": "int_const 18"
|
|
},
|
|
"value": "18"
|
|
},
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1575,
|
|
"nodeType": "Block",
|
|
"src": "1742:124:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "576f726d686f6c652057726170706564202d20",
|
|
"id": 1565,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1783:21:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_5cf7e3c6b428de30b95e99bd5727c04cd18c12b66cf3176e2f95b4ceb77530a8",
|
|
"typeString": "literal_string \"Wormhole Wrapped - \""
|
|
},
|
|
"value": "Wormhole Wrapped - "
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1567,
|
|
"name": "assetChain",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1443,
|
|
"src": "1819:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"id": 1566,
|
|
"name": "uintToString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1654,
|
|
"src": "1806:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (string memory)"
|
|
}
|
|
},
|
|
"id": 1568,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1806:24:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "2d",
|
|
"id": 1569,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "1832:3:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
|
|
"typeString": "literal_string \"-\""
|
|
},
|
|
"value": "-"
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1570,
|
|
"name": "assetAddressString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1740,
|
|
"src": "1837:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
|
|
"typeString": "function () view returns (string memory)"
|
|
}
|
|
},
|
|
"id": 1571,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1837:20:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5cf7e3c6b428de30b95e99bd5727c04cd18c12b66cf3176e2f95b4ceb77530a8",
|
|
"typeString": "literal_string \"Wormhole Wrapped - \""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
|
|
"typeString": "literal_string \"-\""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1563,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "1766:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 1564,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "encodePacked",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1766:16:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function () pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 1572,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1766:92:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 1562,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "1759:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
|
|
"typeString": "type(string storage pointer)"
|
|
},
|
|
"typeName": {
|
|
"id": 1561,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1759:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1573,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1759:100:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1560,
|
|
"id": 1574,
|
|
"nodeType": "Return",
|
|
"src": "1752:107:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1556,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1631:54:2",
|
|
"text": " @dev Returns the name of the token."
|
|
},
|
|
"functionSelector": "06fdde03",
|
|
"id": 1576,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "name",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1557,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1703:2:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1560,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1559,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1576,
|
|
"src": "1727:13:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1558,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1727:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1726:15:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "1690:176:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1653,
|
|
"nodeType": "Block",
|
|
"src": "2005:386:2",
|
|
"statements": [
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1585,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1583,
|
|
"name": "_i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1578,
|
|
"src": "2019:2:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1584,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2025:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2019:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 1589,
|
|
"nodeType": "IfStatement",
|
|
"src": "2015:48:2",
|
|
"trueBody": {
|
|
"id": 1588,
|
|
"nodeType": "Block",
|
|
"src": "2028:35:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1586,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2049:3:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
|
|
"typeString": "literal_string \"0\""
|
|
},
|
|
"value": "0"
|
|
},
|
|
"functionReturnParameters": 1582,
|
|
"id": 1587,
|
|
"nodeType": "Return",
|
|
"src": "2042:10:2"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"assignments": [1591],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1591,
|
|
"mutability": "mutable",
|
|
"name": "j",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"src": "2072:6:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1590,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2072:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1593,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"id": 1592,
|
|
"name": "_i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1578,
|
|
"src": "2081:2:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2072:11:2"
|
|
},
|
|
{
|
|
"assignments": [1595],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1595,
|
|
"mutability": "mutable",
|
|
"name": "len",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"src": "2093:8:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1594,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2093:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1596,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2093:8:2"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1607,
|
|
"nodeType": "Block",
|
|
"src": "2126:51:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1601,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "2140:5:2",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1600,
|
|
"name": "len",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1595,
|
|
"src": "2140:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1602,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2140:5:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1605,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1603,
|
|
"name": "j",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1591,
|
|
"src": "2159:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "/=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3130",
|
|
"id": 1604,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2164:2:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_10_by_1",
|
|
"typeString": "int_const 10"
|
|
},
|
|
"value": "10"
|
|
},
|
|
"src": "2159:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1606,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2159:7:2"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1599,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1597,
|
|
"name": "j",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1591,
|
|
"src": "2118:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1598,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2123:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2118:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1608,
|
|
"nodeType": "WhileStatement",
|
|
"src": "2111:66:2"
|
|
},
|
|
{
|
|
"assignments": [1610],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1610,
|
|
"mutability": "mutable",
|
|
"name": "bstr",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"src": "2186:17:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1609,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2186:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1615,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1613,
|
|
"name": "len",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1595,
|
|
"src": "2216:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1612,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "2206:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (bytes memory)"
|
|
},
|
|
"typeName": {
|
|
"id": 1611,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2210:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
}
|
|
},
|
|
"id": 1614,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2206:14:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2186:34:2"
|
|
},
|
|
{
|
|
"assignments": [1617],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1617,
|
|
"mutability": "mutable",
|
|
"name": "k",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"src": "2230:6:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1616,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2230:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1621,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1620,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1618,
|
|
"name": "len",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1595,
|
|
"src": "2239:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1619,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2245:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "2239:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2230:16:2"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1646,
|
|
"nodeType": "Block",
|
|
"src": "2272:84:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1640,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1625,
|
|
"name": "bstr",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1610,
|
|
"src": "2286:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1628,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1627,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "--",
|
|
"prefix": false,
|
|
"src": "2291:3:2",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1626,
|
|
"name": "k",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1617,
|
|
"src": "2291:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2286:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1637,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3438",
|
|
"id": 1633,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2309:2:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_48_by_1",
|
|
"typeString": "int_const 48"
|
|
},
|
|
"value": "48"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1636,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1634,
|
|
"name": "_i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1578,
|
|
"src": "2314:2:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "%",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3130",
|
|
"id": 1635,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2319:2:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_10_by_1",
|
|
"typeString": "int_const 10"
|
|
},
|
|
"value": "10"
|
|
},
|
|
"src": "2314:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2309:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1632,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2303:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint8_$",
|
|
"typeString": "type(uint8)"
|
|
},
|
|
"typeName": {
|
|
"id": 1631,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2303:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1638,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2303:19:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"id": 1630,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2298:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_bytes1_$",
|
|
"typeString": "type(bytes1)"
|
|
},
|
|
"typeName": {
|
|
"id": 1629,
|
|
"name": "byte",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2298:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1639,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2298:25:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"src": "2286:37:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"id": 1641,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2286:37:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1644,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 1642,
|
|
"name": "_i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1578,
|
|
"src": "2337:2:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "/=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3130",
|
|
"id": 1643,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2343:2:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_10_by_1",
|
|
"typeString": "int_const 10"
|
|
},
|
|
"value": "10"
|
|
},
|
|
"src": "2337:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1645,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2337:8:2"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1624,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1622,
|
|
"name": "_i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1578,
|
|
"src": "2263:2:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1623,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2269:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2263:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1647,
|
|
"nodeType": "WhileStatement",
|
|
"src": "2256:100:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1650,
|
|
"name": "bstr",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1610,
|
|
"src": "2379:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 1649,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2372:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
|
|
"typeString": "type(string storage pointer)"
|
|
},
|
|
"typeName": {
|
|
"id": 1648,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2372:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1651,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2372:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1582,
|
|
"id": 1652,
|
|
"nodeType": "Return",
|
|
"src": "2365:19:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1654,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "uintToString",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1579,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1578,
|
|
"mutability": "mutable",
|
|
"name": "_i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1654,
|
|
"src": "1944:7:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1577,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1944:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1943:9:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1582,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1581,
|
|
"mutability": "mutable",
|
|
"name": "_uintAsString",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1654,
|
|
"src": "1976:27:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1580,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1976:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1975:29:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "1922:469:2",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1739,
|
|
"nodeType": "Block",
|
|
"src": "2514:373:2",
|
|
"statements": [
|
|
{
|
|
"assignments": [1660],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1660,
|
|
"mutability": "mutable",
|
|
"name": "alphabet",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1739,
|
|
"src": "2524:21:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1659,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2524:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1662,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30313233343536373839616263646566",
|
|
"id": 1661,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2548:18:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f",
|
|
"typeString": "literal_string \"0123456789abcdef\""
|
|
},
|
|
"value": "0123456789abcdef"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2524:42:2"
|
|
},
|
|
{
|
|
"assignments": [1664],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1664,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1739,
|
|
"src": "2576:12:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 1663,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2576:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1666,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"id": 1665,
|
|
"name": "assetAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1445,
|
|
"src": "2591:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2576:27:2"
|
|
},
|
|
{
|
|
"assignments": [1668],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1668,
|
|
"mutability": "mutable",
|
|
"name": "str",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1739,
|
|
"src": "2614:16:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 1667,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2614:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1678,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"id": 1676,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1671,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2643:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"id": 1675,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1672,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1664,
|
|
"src": "2647:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 1673,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2647:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "*",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1674,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2661:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "2647:15:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"src": "2643:19:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"id": 1670,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "2633:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (bytes memory)"
|
|
},
|
|
"typeName": {
|
|
"id": 1669,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2637:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
}
|
|
},
|
|
"id": 1677,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2633:30:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2614:49:2"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1732,
|
|
"nodeType": "Block",
|
|
"src": "2712:141:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1708,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1690,
|
|
"name": "str",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1668,
|
|
"src": "2726:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1694,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1693,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1691,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2730:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "*",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1692,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2734:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "2730:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2726:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1695,
|
|
"name": "alphabet",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1660,
|
|
"src": "2739:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1707,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
},
|
|
"id": 1704,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1700,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1664,
|
|
"src": "2759:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 1702,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1701,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2764:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2759:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">>",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "34",
|
|
"id": 1703,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2770:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_4_by_1",
|
|
"typeString": "int_const 4"
|
|
},
|
|
"value": "4"
|
|
},
|
|
"src": "2759:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
],
|
|
"id": 1699,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2753:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint8_$",
|
|
"typeString": "type(uint8)"
|
|
},
|
|
"typeName": {
|
|
"id": 1698,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2753:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1705,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2753:19:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"id": 1697,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2748:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1696,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2748:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1706,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2748:25:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2739:35:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"src": "2726:48:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"id": 1709,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2726:48:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1730,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1710,
|
|
"name": "str",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1668,
|
|
"src": "2788:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1716,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1715,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 1711,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2792:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "+",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1714,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1712,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2796:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "*",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "32",
|
|
"id": 1713,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2800:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_2_by_1",
|
|
"typeString": "int_const 2"
|
|
},
|
|
"value": "2"
|
|
},
|
|
"src": "2796:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2792:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2788:14:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1717,
|
|
"name": "alphabet",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1660,
|
|
"src": "2805:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 1729,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
},
|
|
"id": 1726,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1722,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1664,
|
|
"src": "2825:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 1724,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1723,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2830:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2825:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "&",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30783066",
|
|
"id": 1725,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2835:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_15_by_1",
|
|
"typeString": "int_const 15"
|
|
},
|
|
"value": "0x0f"
|
|
},
|
|
"src": "2825:14:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
],
|
|
"id": 1721,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2819:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint8_$",
|
|
"typeString": "type(uint8)"
|
|
},
|
|
"typeName": {
|
|
"id": 1720,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2819:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1727,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2819:21:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"id": 1719,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2814:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_uint256_$",
|
|
"typeString": "type(uint256)"
|
|
},
|
|
"typeName": {
|
|
"id": 1718,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2814:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1728,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2814:27:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2805:37:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"src": "2788:54:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"id": 1731,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2788:54:2"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 1686,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1683,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2690:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1684,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1664,
|
|
"src": "2694:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 1685,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2694:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"src": "2690:15:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 1733,
|
|
"initializationExpression": {
|
|
"assignments": [1680],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 1680,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1733,
|
|
"src": "2678:6:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1679,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2678:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 1682,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1681,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2687:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2678:10:2"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1688,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "2707:3:2",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1687,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1680,
|
|
"src": "2707:1:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1689,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2707:3:2"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "2673:180:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1736,
|
|
"name": "str",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1668,
|
|
"src": "2876:3:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 1735,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2869:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
|
|
"typeString": "type(string storage pointer)"
|
|
},
|
|
"typeName": {
|
|
"id": 1734,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2869:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1737,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2869:11:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1658,
|
|
"id": 1738,
|
|
"nodeType": "Return",
|
|
"src": "2862:18:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": null,
|
|
"id": 1740,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "assetAddressString",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1655,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "2474:2:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1658,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1657,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"src": "2499:13:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1656,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2499:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2498:15:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "2447:440:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1748,
|
|
"nodeType": "Block",
|
|
"src": "3054:31:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1746,
|
|
"name": "_symbol",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1552,
|
|
"src": "3071:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1745,
|
|
"id": 1747,
|
|
"nodeType": "Return",
|
|
"src": "3064:14:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1741,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "2893:102:2",
|
|
"text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
|
|
},
|
|
"functionSelector": "95d89b41",
|
|
"id": 1749,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "symbol",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1742,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3015:2:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1745,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1744,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1749,
|
|
"src": "3039:13:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 1743,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3039:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3038:15:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "3000:85:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1757,
|
|
"nodeType": "Block",
|
|
"src": "3756:33:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1755,
|
|
"name": "_decimals",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1555,
|
|
"src": "3773:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1754,
|
|
"id": 1756,
|
|
"nodeType": "Return",
|
|
"src": "3766:16:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1750,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3091:612:2",
|
|
"text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
|
|
},
|
|
"functionSelector": "313ce567",
|
|
"id": 1758,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "decimals",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1751,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3725:2:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1754,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1753,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1758,
|
|
"src": "3749:5:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"typeName": {
|
|
"id": 1752,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3749:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3748:7:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "3708:81:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [3017],
|
|
"body": {
|
|
"id": 1767,
|
|
"nodeType": "Block",
|
|
"src": "3911:36:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1765,
|
|
"name": "_totalSupply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1550,
|
|
"src": "3928:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1764,
|
|
"id": 1766,
|
|
"nodeType": "Return",
|
|
"src": "3921:19:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1759,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3795:49:2",
|
|
"text": " @dev See {IERC20-totalSupply}."
|
|
},
|
|
"functionSelector": "18160ddd",
|
|
"id": 1768,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "totalSupply",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 1761,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "3884:8:2"
|
|
},
|
|
"parameters": {
|
|
"id": 1760,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3869:2:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1764,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1763,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1768,
|
|
"src": "3902:7:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1762,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3902:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3901:9:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "3849:98:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [3025],
|
|
"body": {
|
|
"id": 1781,
|
|
"nodeType": "Block",
|
|
"src": "4080:42:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1777,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "4097:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1779,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1778,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1771,
|
|
"src": "4107:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4097:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1776,
|
|
"id": 1780,
|
|
"nodeType": "Return",
|
|
"src": "4090:25:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1769,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3953:47:2",
|
|
"text": " @dev See {IERC20-balanceOf}."
|
|
},
|
|
"functionSelector": "70a08231",
|
|
"id": 1782,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "balanceOf",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 1773,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "4053:8:2"
|
|
},
|
|
"parameters": {
|
|
"id": 1772,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1771,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1782,
|
|
"src": "4024:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1770,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4024:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4023:17:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1776,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1775,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1782,
|
|
"src": "4071:7:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1774,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4071:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4070:9:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "4005:117:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [3035],
|
|
"body": {
|
|
"id": 1802,
|
|
"nodeType": "Block",
|
|
"src": "4409:80:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1794,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "4429:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1795,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4429:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1796,
|
|
"name": "recipient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1785,
|
|
"src": "4443:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1797,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1787,
|
|
"src": "4454:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1793,
|
|
"name": "_transfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1997,
|
|
"src": "4419:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1798,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4419:42:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1799,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4419:42:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1800,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4478:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1792,
|
|
"id": 1801,
|
|
"nodeType": "Return",
|
|
"src": "4471:11:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1783,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4128:192:2",
|
|
"text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
|
|
},
|
|
"functionSelector": "a9059cbb",
|
|
"id": 1803,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "transfer",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 1789,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "4385:8:2"
|
|
},
|
|
"parameters": {
|
|
"id": 1788,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1785,
|
|
"mutability": "mutable",
|
|
"name": "recipient",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1803,
|
|
"src": "4343:17:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1784,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4343:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1787,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1803,
|
|
"src": "4362:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1786,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4362:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4342:35:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1792,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1791,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1803,
|
|
"src": "4403:4:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1790,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4403:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4402:6:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "4325:164:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [3045],
|
|
"body": {
|
|
"id": 1820,
|
|
"nodeType": "Block",
|
|
"src": "4637:51:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1814,
|
|
"name": "_allowances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1548,
|
|
"src": "4654:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
}
|
|
},
|
|
"id": 1816,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1815,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1806,
|
|
"src": "4666:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4654:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1818,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1817,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1808,
|
|
"src": "4673:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4654:27:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 1813,
|
|
"id": 1819,
|
|
"nodeType": "Return",
|
|
"src": "4647:34:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1804,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4495:47:2",
|
|
"text": " @dev See {IERC20-allowance}."
|
|
},
|
|
"functionSelector": "dd62ed3e",
|
|
"id": 1821,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "allowance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 1810,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "4610:8:2"
|
|
},
|
|
"parameters": {
|
|
"id": 1809,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1806,
|
|
"mutability": "mutable",
|
|
"name": "owner",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1821,
|
|
"src": "4566:13:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1805,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4566:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1808,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1821,
|
|
"src": "4581:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1807,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4581:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4565:32:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1813,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1812,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1821,
|
|
"src": "4628:7:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1811,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4628:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4627:9:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "4547:141:2",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [3055],
|
|
"body": {
|
|
"id": 1841,
|
|
"nodeType": "Block",
|
|
"src": "4907:77:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1833,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "4926:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1834,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4926:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1835,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1824,
|
|
"src": "4940:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1836,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1826,
|
|
"src": "4949:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1832,
|
|
"name": "_approve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2135,
|
|
"src": "4917:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1837,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4917:39:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1838,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4917:39:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1839,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4973:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1831,
|
|
"id": 1840,
|
|
"nodeType": "Return",
|
|
"src": "4966:11:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1822,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4694:127:2",
|
|
"text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
|
|
},
|
|
"functionSelector": "095ea7b3",
|
|
"id": 1842,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "approve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 1828,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "4883:8:2"
|
|
},
|
|
"parameters": {
|
|
"id": 1827,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1824,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1842,
|
|
"src": "4843:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1823,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4843:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1826,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1842,
|
|
"src": "4860:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1825,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4860:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4842:33:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1831,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1830,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1842,
|
|
"src": "4901:4:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1829,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4901:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4900:6:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "4826:158:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [3067],
|
|
"body": {
|
|
"id": 1879,
|
|
"nodeType": "Block",
|
|
"src": "5548:205:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1856,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1845,
|
|
"src": "5568:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1857,
|
|
"name": "recipient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1847,
|
|
"src": "5576:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1858,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1849,
|
|
"src": "5587:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1855,
|
|
"name": "_transfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1997,
|
|
"src": "5558:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1859,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5558:36:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1860,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5558:36:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1862,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1845,
|
|
"src": "5613:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1863,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "5621:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1864,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5621:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1872,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1849,
|
|
"src": "5673:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
|
|
"id": 1873,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5681:42:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
|
|
"typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
|
|
},
|
|
"value": "ERC20: transfer amount exceeds allowance"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
|
|
"typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1865,
|
|
"name": "_allowances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1548,
|
|
"src": "5635:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
}
|
|
},
|
|
"id": 1867,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1866,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1845,
|
|
"src": "5647:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "5635:19:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1870,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1868,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "5655:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1869,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5655:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "5635:33:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1871,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2456,
|
|
"src": "5635:37:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1874,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5635:89:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1861,
|
|
"name": "_approve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2135,
|
|
"src": "5604:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1875,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5604:121:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1876,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5604:121:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1877,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5742:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1854,
|
|
"id": 1878,
|
|
"nodeType": "Return",
|
|
"src": "5735:11:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1843,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4990:449:2",
|
|
"text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20};\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."
|
|
},
|
|
"functionSelector": "23b872dd",
|
|
"id": 1880,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "transferFrom",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 1851,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "5524:8:2"
|
|
},
|
|
"parameters": {
|
|
"id": 1850,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1845,
|
|
"mutability": "mutable",
|
|
"name": "sender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"src": "5466:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1844,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5466:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1847,
|
|
"mutability": "mutable",
|
|
"name": "recipient",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"src": "5482:17:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1846,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5482:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1849,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"src": "5501:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1848,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5501:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5465:51:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1854,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1853,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"src": "5542:4:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1852,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5542:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5541:6:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "5444:309:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1907,
|
|
"nodeType": "Block",
|
|
"src": "6234:121:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1891,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "6253:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1892,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6253:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1893,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1883,
|
|
"src": "6267:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1901,
|
|
"name": "addedValue",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1885,
|
|
"src": "6315:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1894,
|
|
"name": "_allowances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1548,
|
|
"src": "6276:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
}
|
|
},
|
|
"id": 1897,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1895,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "6288:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1896,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6288:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6276:25:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1899,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1898,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1883,
|
|
"src": "6302:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6276:34:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1900,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "add",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2332,
|
|
"src": "6276:38:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1902,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6276:50:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1890,
|
|
"name": "_approve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2135,
|
|
"src": "6244:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1903,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6244:83:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1904,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6244:83:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1905,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "6344:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1889,
|
|
"id": 1906,
|
|
"nodeType": "Return",
|
|
"src": "6337:11:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1881,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5759:384:2",
|
|
"text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
|
|
},
|
|
"functionSelector": "39509351",
|
|
"id": 1908,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "increaseAllowance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1886,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1883,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1908,
|
|
"src": "6175:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1882,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6175:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1885,
|
|
"mutability": "mutable",
|
|
"name": "addedValue",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1908,
|
|
"src": "6192:18:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1884,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6192:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6174:37:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1889,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1888,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1908,
|
|
"src": "6228:4:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1887,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6228:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6227:6:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "6148:207:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1936,
|
|
"nodeType": "Block",
|
|
"src": "6933:167:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1919,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "6952:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1920,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6952:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1921,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1911,
|
|
"src": "6966:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1929,
|
|
"name": "subtractedValue",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1913,
|
|
"src": "7014:15:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
|
|
"id": 1930,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7031:39:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
|
|
"typeString": "literal_string \"ERC20: decreased allowance below zero\""
|
|
},
|
|
"value": "ERC20: decreased allowance below zero"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
|
|
"typeString": "literal_string \"ERC20: decreased allowance below zero\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1922,
|
|
"name": "_allowances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1548,
|
|
"src": "6975:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
}
|
|
},
|
|
"id": 1925,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 1923,
|
|
"name": "_msgSender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3606,
|
|
"src": "6987:10:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
|
"typeString": "function () view returns (address payable)"
|
|
}
|
|
},
|
|
"id": 1924,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6987:12:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6975:25:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1927,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1926,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1911,
|
|
"src": "7001:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "6975:34:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1928,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2456,
|
|
"src": "6975:38:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1931,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6975:96:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1918,
|
|
"name": "_approve",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2135,
|
|
"src": "6943:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1932,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "6943:129:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1933,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "6943:129:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "74727565",
|
|
"id": 1934,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "bool",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7089:4:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"value": "true"
|
|
},
|
|
"functionReturnParameters": 1917,
|
|
"id": 1935,
|
|
"nodeType": "Return",
|
|
"src": "7082:11:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1909,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "6361:476:2",
|
|
"text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."
|
|
},
|
|
"functionSelector": "a457c2d7",
|
|
"id": 1937,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "decreaseAllowance",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1914,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1911,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1937,
|
|
"src": "6869:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1910,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6869:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1913,
|
|
"mutability": "mutable",
|
|
"name": "subtractedValue",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1937,
|
|
"src": "6886:23:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1912,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6886:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6868:42:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1917,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1916,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1937,
|
|
"src": "6927:4:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 1915,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "6927:4:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "6926:6:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "6842:258:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 1996,
|
|
"nodeType": "Block",
|
|
"src": "7653:385:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1953,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1948,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1940,
|
|
"src": "7671:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1951,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7689:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1950,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "7681:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1949,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7681:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1952,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7681:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "7671:20:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
|
|
"id": 1954,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7693:39:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
|
|
"typeString": "literal_string \"ERC20: transfer from the zero address\""
|
|
},
|
|
"value": "ERC20: transfer from the zero address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
|
|
"typeString": "literal_string \"ERC20: transfer from the zero address\""
|
|
}
|
|
],
|
|
"id": 1947,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "7663:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1955,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7663:70:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1956,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7663:70:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 1963,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1958,
|
|
"name": "recipient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1942,
|
|
"src": "7751:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 1961,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7772:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 1960,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "7764:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 1959,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7764:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 1962,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7764:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "7751:23:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
|
|
"id": 1964,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7776:37:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
|
|
"typeString": "literal_string \"ERC20: transfer to the zero address\""
|
|
},
|
|
"value": "ERC20: transfer to the zero address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
|
|
"typeString": "literal_string \"ERC20: transfer to the zero address\""
|
|
}
|
|
],
|
|
"id": 1957,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "7743:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 1965,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7743:71:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1966,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7743:71:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1977,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1967,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "7825:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1969,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1968,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1940,
|
|
"src": "7835:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7825:17:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1974,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1944,
|
|
"src": "7867:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
|
|
"id": 1975,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "7875:40:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
|
|
"typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
|
|
},
|
|
"value": "ERC20: transfer amount exceeds balance"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
|
|
"typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1970,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "7845:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1972,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1971,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1940,
|
|
"src": "7855:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7845:17:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1973,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2456,
|
|
"src": "7845:21:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1976,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7845:71:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7825:91:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1978,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7825:91:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 1988,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1979,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "7926:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1981,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1980,
|
|
"name": "recipient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1942,
|
|
"src": "7936:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7926:20:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1986,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1944,
|
|
"src": "7974:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1982,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "7949:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 1984,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 1983,
|
|
"name": "recipient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1942,
|
|
"src": "7959:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "7949:20:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1985,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "add",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2332,
|
|
"src": "7949:24:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 1987,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7949:32:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "7926:55:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 1989,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "7926:55:2"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1991,
|
|
"name": "sender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1940,
|
|
"src": "8005:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1992,
|
|
"name": "recipient",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1942,
|
|
"src": "8013:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 1993,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1944,
|
|
"src": "8024:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 1990,
|
|
"name": "Transfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3076,
|
|
"src": "7996:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 1994,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "7996:35:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 1995,
|
|
"nodeType": "EmitStatement",
|
|
"src": "7991:40:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1938,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "7106:463:2",
|
|
"text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
|
|
},
|
|
"id": 1997,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_transfer",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 1945,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 1940,
|
|
"mutability": "mutable",
|
|
"name": "sender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1997,
|
|
"src": "7593:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1939,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7593:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1942,
|
|
"mutability": "mutable",
|
|
"name": "recipient",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1997,
|
|
"src": "7609:17:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1941,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7609:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 1944,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 1997,
|
|
"src": "7628:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 1943,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "7628:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "7592:51:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 1946,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "7653:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "7574:464:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 2042,
|
|
"nodeType": "Block",
|
|
"src": "8365:245:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 2011,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2006,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2000,
|
|
"src": "8383:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 2009,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "8402:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 2008,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "8394:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 2007,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8394:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 2010,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8394:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "8383:21:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
|
|
"id": 2012,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "8406:33:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
|
|
"typeString": "literal_string \"ERC20: mint to the zero address\""
|
|
},
|
|
"value": "ERC20: mint to the zero address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
|
|
"typeString": "literal_string \"ERC20: mint to the zero address\""
|
|
}
|
|
],
|
|
"id": 2005,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "8375:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 2013,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8375:65:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2014,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8375:65:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2020,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 2015,
|
|
"name": "_totalSupply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1550,
|
|
"src": "8451:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2018,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2002,
|
|
"src": "8483:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2016,
|
|
"name": "_totalSupply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1550,
|
|
"src": "8466:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2017,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "add",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2332,
|
|
"src": "8466:16:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 2019,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8466:24:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8451:39:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2021,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8451:39:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2031,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2022,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "8500:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 2024,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2023,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2000,
|
|
"src": "8510:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "8500:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2029,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2002,
|
|
"src": "8544:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2025,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "8521:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 2027,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2026,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2000,
|
|
"src": "8531:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "8521:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2028,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "add",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2332,
|
|
"src": "8521:22:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 2030,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8521:30:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "8500:51:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2032,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8500:51:2"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 2036,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "8583:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 2035,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "8575:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 2034,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8575:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 2037,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8575:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2038,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2000,
|
|
"src": "8587:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2039,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2002,
|
|
"src": "8596:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 2033,
|
|
"name": "Transfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3076,
|
|
"src": "8566:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 2040,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8566:37:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2041,
|
|
"nodeType": "EmitStatement",
|
|
"src": "8561:42:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 1998,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8044:259:2",
|
|
"text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address."
|
|
},
|
|
"id": 2043,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_mint",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 2003,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 2000,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2043,
|
|
"src": "8323:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 1999,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8323:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 2002,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2043,
|
|
"src": "8340:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 2001,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8340:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8322:33:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 2004,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "8365:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "8308:302:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 2089,
|
|
"nodeType": "Block",
|
|
"src": "8986:285:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 2057,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2052,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2046,
|
|
"src": "9004:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 2055,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9023:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 2054,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "9015:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 2053,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9015:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 2056,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9015:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "9004:21:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
|
|
"id": 2058,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9027:35:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
|
|
"typeString": "literal_string \"ERC20: burn from the zero address\""
|
|
},
|
|
"value": "ERC20: burn from the zero address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
|
|
"typeString": "literal_string \"ERC20: burn from the zero address\""
|
|
}
|
|
],
|
|
"id": 2051,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "8996:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 2059,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "8996:67:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2060,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "8996:67:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2071,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2061,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "9074:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 2063,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2062,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2046,
|
|
"src": "9084:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "9074:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2068,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2048,
|
|
"src": "9118:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
|
|
"id": 2069,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9126:36:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
|
|
"typeString": "literal_string \"ERC20: burn amount exceeds balance\""
|
|
},
|
|
"value": "ERC20: burn amount exceeds balance"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
|
|
"typeString": "literal_string \"ERC20: burn amount exceeds balance\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2064,
|
|
"name": "_balances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1542,
|
|
"src": "9095:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 2066,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2065,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2046,
|
|
"src": "9105:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "9095:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2067,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2456,
|
|
"src": "9095:22:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 2070,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9095:68:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "9074:89:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2072,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9074:89:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2078,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 2073,
|
|
"name": "_totalSupply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1550,
|
|
"src": "9173:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2076,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2048,
|
|
"src": "9205:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2074,
|
|
"name": "_totalSupply",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1550,
|
|
"src": "9188:12:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2075,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "sub",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 2354,
|
|
"src": "9188:16:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
|
|
"typeString": "function (uint256,uint256) pure returns (uint256)"
|
|
}
|
|
},
|
|
"id": 2077,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9188:24:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "9173:39:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2079,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9173:39:2"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2081,
|
|
"name": "account",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2046,
|
|
"src": "9236:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 2084,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9253:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 2083,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "9245:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 2082,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9245:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 2085,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9245:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2086,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2048,
|
|
"src": "9257:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 2080,
|
|
"name": "Transfer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3076,
|
|
"src": "9227:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 2087,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9227:37:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2088,
|
|
"nodeType": "EmitStatement",
|
|
"src": "9222:42:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 2044,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "8616:308:2",
|
|
"text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
|
|
},
|
|
"id": 2090,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_burn",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 2049,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 2046,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2090,
|
|
"src": "8944:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 2045,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8944:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 2048,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2090,
|
|
"src": "8961:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 2047,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "8961:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "8943:33:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 2050,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "8986:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "8929:342:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 2134,
|
|
"nodeType": "Block",
|
|
"src": "9771:257:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 2106,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2101,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2093,
|
|
"src": "9789:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 2104,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9806:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 2103,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "9798:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 2102,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9798:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 2105,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9798:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "9789:19:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
|
|
"id": 2107,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9810:38:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
|
|
"typeString": "literal_string \"ERC20: approve from the zero address\""
|
|
},
|
|
"value": "ERC20: approve from the zero address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
|
|
"typeString": "literal_string \"ERC20: approve from the zero address\""
|
|
}
|
|
],
|
|
"id": 2100,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "9781:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 2108,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9781:68:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2109,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9781:68:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 2116,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2111,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2095,
|
|
"src": "9867:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 2114,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9886:1:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"id": 2113,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "9878:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 2112,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9878:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 2115,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9878:10:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "9867:21:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
|
|
"id": 2117,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "9890:36:2",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
|
|
"typeString": "literal_string \"ERC20: approve to the zero address\""
|
|
},
|
|
"value": "ERC20: approve to the zero address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
|
|
"typeString": "literal_string \"ERC20: approve to the zero address\""
|
|
}
|
|
],
|
|
"id": 2110,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"src": "9859:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 2118,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9859:68:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2119,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9859:68:2"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2126,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2120,
|
|
"name": "_allowances",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1548,
|
|
"src": "9938:11:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
|
"typeString": "mapping(address => mapping(address => uint256))"
|
|
}
|
|
},
|
|
"id": 2123,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2121,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2093,
|
|
"src": "9950:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "9938:18:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
|
"typeString": "mapping(address => uint256)"
|
|
}
|
|
},
|
|
"id": 2124,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 2122,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2095,
|
|
"src": "9957:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "9938:27:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 2125,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2097,
|
|
"src": "9968:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "9938:36:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 2127,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "9938:36:2"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2129,
|
|
"name": "owner",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2093,
|
|
"src": "9998:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2130,
|
|
"name": "spender",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2095,
|
|
"src": "10005:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 2131,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2097,
|
|
"src": "10014:6:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 2128,
|
|
"name": "Approval",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 3085,
|
|
"src": "9989:8:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,address,uint256)"
|
|
}
|
|
},
|
|
"id": 2132,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "9989:32:2",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 2133,
|
|
"nodeType": "EmitStatement",
|
|
"src": "9984:37:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 2091,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "9277:414:2",
|
|
"text": " @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n This is internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
|
|
},
|
|
"id": 2135,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_approve",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 2098,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 2093,
|
|
"mutability": "mutable",
|
|
"name": "owner",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2135,
|
|
"src": "9714:13:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 2092,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9714:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 2095,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2135,
|
|
"src": "9729:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 2094,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9729:7:2",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 2097,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2135,
|
|
"src": "9746:14:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 2096,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "9746:7:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "9713:48:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 2099,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "9771:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "9696:332:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 2145,
|
|
"nodeType": "Block",
|
|
"src": "10401:38:2",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 2143,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 2141,
|
|
"name": "_decimals",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 1555,
|
|
"src": "10411:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 2142,
|
|
"name": "decimals_",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2138,
|
|
"src": "10423:9:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"src": "10411:21:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"id": 2144,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "10411:21:2"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 2136,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "10034:312:2",
|
|
"text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
|
|
},
|
|
"id": 2146,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_setupDecimals",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 2139,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 2138,
|
|
"mutability": "mutable",
|
|
"name": "decimals_",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 2146,
|
|
"src": "10375:15:2",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"typeName": {
|
|
"id": 2137,
|
|
"name": "uint8",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "10375:5:2",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "10374:17:2"
|
|
},
|
|
"returnParameters": {
|
|
"id": 2140,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "10401:0:2"
|
|
},
|
|
"scope": 2147,
|
|
"src": "10351:88:2",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"scope": 2148,
|
|
"src": "304:10137:2"
|
|
}
|
|
],
|
|
"src": "67:10375:2"
|
|
},
|
|
"legacyAST": {
|
|
"attributes": {
|
|
"absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
|
|
"exportedSymbols": {
|
|
"WrappedAsset": [2147]
|
|
},
|
|
"license": "Apache 2"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"literals": ["solidity", "^", "0.6", ".0"]
|
|
},
|
|
"id": 1433,
|
|
"name": "PragmaDirective",
|
|
"src": "67:23:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"SourceUnit": 3087,
|
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
|
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
|
"scope": 2148,
|
|
"symbolAliases": [null],
|
|
"unitAlias": ""
|
|
},
|
|
"id": 1434,
|
|
"name": "ImportDirective",
|
|
"src": "92:56:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"SourceUnit": 2506,
|
|
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
|
|
"file": "@openzeppelin/contracts/math/SafeMath.sol",
|
|
"scope": 2148,
|
|
"symbolAliases": [null],
|
|
"unitAlias": ""
|
|
},
|
|
"id": 1435,
|
|
"name": "ImportDirective",
|
|
"src": "149:51:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"SourceUnit": 3596,
|
|
"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
|
|
"file": "@openzeppelin/contracts/utils/Address.sol",
|
|
"scope": 2148,
|
|
"symbolAliases": [null],
|
|
"unitAlias": ""
|
|
},
|
|
"id": 1436,
|
|
"name": "ImportDirective",
|
|
"src": "201:51:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"SourceUnit": 2151,
|
|
"absolutePath": "@openzeppelin/contracts/GSN/Context.sol",
|
|
"file": "@openzeppelin/contracts/GSN/Context.sol",
|
|
"scope": 2148,
|
|
"symbolAliases": [null],
|
|
"unitAlias": ""
|
|
},
|
|
"id": 1437,
|
|
"name": "ImportDirective",
|
|
"src": "253:49:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"abstract": false,
|
|
"contractDependencies": [3086, 3618],
|
|
"contractKind": "contract",
|
|
"documentation": null,
|
|
"fullyImplemented": true,
|
|
"linearizedBaseContracts": [2147, 3618, 3086],
|
|
"name": "WrappedAsset",
|
|
"scope": 2148
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"arguments": null
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"contractScope": null,
|
|
"name": "IERC20",
|
|
"referencedDeclaration": 3086,
|
|
"type": "contract IERC20"
|
|
},
|
|
"id": 1438,
|
|
"name": "UserDefinedTypeName",
|
|
"src": "329:6:2"
|
|
}
|
|
],
|
|
"id": 1439,
|
|
"name": "InheritanceSpecifier",
|
|
"src": "329:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"arguments": null
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"contractScope": null,
|
|
"name": "Context",
|
|
"referencedDeclaration": 3618,
|
|
"type": "contract Context"
|
|
},
|
|
"id": 1440,
|
|
"name": "UserDefinedTypeName",
|
|
"src": "337:7:2"
|
|
}
|
|
],
|
|
"id": 1441,
|
|
"name": "InheritanceSpecifier",
|
|
"src": "337:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"functionSelector": "026b0539",
|
|
"mutability": "mutable",
|
|
"name": "assetChain",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "uint8",
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": "uint8"
|
|
},
|
|
"id": 1442,
|
|
"name": "ElementaryTypeName",
|
|
"src": "351:5:2"
|
|
}
|
|
],
|
|
"id": 1443,
|
|
"name": "VariableDeclaration",
|
|
"src": "351:23:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"functionSelector": "1ba46cfd",
|
|
"mutability": "mutable",
|
|
"name": "assetAddress",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "bytes32",
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes32",
|
|
"type": "bytes32"
|
|
},
|
|
"id": 1444,
|
|
"name": "ElementaryTypeName",
|
|
"src": "380:7:2"
|
|
}
|
|
],
|
|
"id": 1445,
|
|
"name": "VariableDeclaration",
|
|
"src": "380:27:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"functionSelector": "158ef93e",
|
|
"mutability": "mutable",
|
|
"name": "initialized",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "bool",
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bool",
|
|
"type": "bool"
|
|
},
|
|
"id": 1446,
|
|
"name": "ElementaryTypeName",
|
|
"src": "413:4:2"
|
|
}
|
|
],
|
|
"id": 1447,
|
|
"name": "VariableDeclaration",
|
|
"src": "413:23:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"functionSelector": "e78cea92",
|
|
"mutability": "mutable",
|
|
"name": "bridge",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1448,
|
|
"name": "ElementaryTypeName",
|
|
"src": "442:7:2"
|
|
}
|
|
],
|
|
"id": 1449,
|
|
"name": "VariableDeclaration",
|
|
"src": "442:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"documentation": null,
|
|
"functionSelector": "a7a2d3fb",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "initialize",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_assetChain",
|
|
"overrides": null,
|
|
"scope": 1490,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint8",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": "uint8"
|
|
},
|
|
"id": 1450,
|
|
"name": "ElementaryTypeName",
|
|
"src": "490:5:2"
|
|
}
|
|
],
|
|
"id": 1451,
|
|
"name": "VariableDeclaration",
|
|
"src": "490:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_assetAddress",
|
|
"overrides": null,
|
|
"scope": 1490,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bytes32",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes32",
|
|
"type": "bytes32"
|
|
},
|
|
"id": 1452,
|
|
"name": "ElementaryTypeName",
|
|
"src": "509:7:2"
|
|
}
|
|
],
|
|
"id": 1453,
|
|
"name": "VariableDeclaration",
|
|
"src": "509:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "decimals",
|
|
"overrides": null,
|
|
"scope": 1490,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint8",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": "uint8"
|
|
},
|
|
"id": 1454,
|
|
"name": "ElementaryTypeName",
|
|
"src": "532:5:2"
|
|
}
|
|
],
|
|
"id": 1455,
|
|
"name": "VariableDeclaration",
|
|
"src": "532:14:2"
|
|
}
|
|
],
|
|
"id": 1456,
|
|
"name": "ParameterList",
|
|
"src": "489:58:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1457,
|
|
"name": "ParameterList",
|
|
"src": "555:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc",
|
|
"typeString": "literal_string \"already initialized\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 1458,
|
|
"name": "Identifier",
|
|
"src": "565:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!",
|
|
"prefix": true,
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1447,
|
|
"type": "bool",
|
|
"value": "initialized"
|
|
},
|
|
"id": 1459,
|
|
"name": "Identifier",
|
|
"src": "574:11:2"
|
|
}
|
|
],
|
|
"id": 1460,
|
|
"name": "UnaryOperation",
|
|
"src": "573:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "616c726561647920696e697469616c697a6564",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"already initialized\"",
|
|
"value": "already initialized"
|
|
},
|
|
"id": 1461,
|
|
"name": "Literal",
|
|
"src": "587:21:2"
|
|
}
|
|
],
|
|
"id": 1462,
|
|
"name": "FunctionCall",
|
|
"src": "565:44:2"
|
|
}
|
|
],
|
|
"id": 1463,
|
|
"name": "ExpressionStatement",
|
|
"src": "565:44:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1443,
|
|
"type": "uint8",
|
|
"value": "assetChain"
|
|
},
|
|
"id": 1464,
|
|
"name": "Identifier",
|
|
"src": "647:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1451,
|
|
"type": "uint8",
|
|
"value": "_assetChain"
|
|
},
|
|
"id": 1465,
|
|
"name": "Identifier",
|
|
"src": "660:11:2"
|
|
}
|
|
],
|
|
"id": 1466,
|
|
"name": "Assignment",
|
|
"src": "647:24:2"
|
|
}
|
|
],
|
|
"id": 1467,
|
|
"name": "ExpressionStatement",
|
|
"src": "647:24:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "bytes32"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1445,
|
|
"type": "bytes32",
|
|
"value": "assetAddress"
|
|
},
|
|
"id": 1468,
|
|
"name": "Identifier",
|
|
"src": "681:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1453,
|
|
"type": "bytes32",
|
|
"value": "_assetAddress"
|
|
},
|
|
"id": 1469,
|
|
"name": "Identifier",
|
|
"src": "696:13:2"
|
|
}
|
|
],
|
|
"id": 1470,
|
|
"name": "Assignment",
|
|
"src": "681:28:2"
|
|
}
|
|
],
|
|
"id": 1471,
|
|
"name": "ExpressionStatement",
|
|
"src": "681:28:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "address"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1449,
|
|
"type": "address",
|
|
"value": "bridge"
|
|
},
|
|
"id": 1472,
|
|
"name": "Identifier",
|
|
"src": "719:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sender",
|
|
"referencedDeclaration": null,
|
|
"type": "address payable"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": -15,
|
|
"type": "msg",
|
|
"value": "msg"
|
|
},
|
|
"id": 1473,
|
|
"name": "Identifier",
|
|
"src": "728:3:2"
|
|
}
|
|
],
|
|
"id": 1474,
|
|
"name": "MemberAccess",
|
|
"src": "728:10:2"
|
|
}
|
|
],
|
|
"id": 1475,
|
|
"name": "Assignment",
|
|
"src": "719:19:2"
|
|
}
|
|
],
|
|
"id": 1476,
|
|
"name": "ExpressionStatement",
|
|
"src": "719:19:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1447,
|
|
"type": "bool",
|
|
"value": "initialized"
|
|
},
|
|
"id": 1477,
|
|
"name": "Identifier",
|
|
"src": "748:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "74727565",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "bool",
|
|
"type": "bool",
|
|
"value": "true"
|
|
},
|
|
"id": 1478,
|
|
"name": "Literal",
|
|
"src": "762:4:2"
|
|
}
|
|
],
|
|
"id": 1479,
|
|
"name": "Assignment",
|
|
"src": "748:18:2"
|
|
}
|
|
],
|
|
"id": 1480,
|
|
"name": "ExpressionStatement",
|
|
"src": "748:18:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "string storage ref"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1552,
|
|
"type": "string storage ref",
|
|
"value": "_symbol"
|
|
},
|
|
"id": 1481,
|
|
"name": "Identifier",
|
|
"src": "777:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "575754",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"WWT\"",
|
|
"value": "WWT"
|
|
},
|
|
"id": 1482,
|
|
"name": "Literal",
|
|
"src": "787:5:2"
|
|
}
|
|
],
|
|
"id": 1483,
|
|
"name": "Assignment",
|
|
"src": "777:15:2"
|
|
}
|
|
],
|
|
"id": 1484,
|
|
"name": "ExpressionStatement",
|
|
"src": "777:15:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1555,
|
|
"type": "uint8",
|
|
"value": "_decimals"
|
|
},
|
|
"id": 1485,
|
|
"name": "Identifier",
|
|
"src": "802:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1455,
|
|
"type": "uint8",
|
|
"value": "decimals"
|
|
},
|
|
"id": 1486,
|
|
"name": "Identifier",
|
|
"src": "814:8:2"
|
|
}
|
|
],
|
|
"id": 1487,
|
|
"name": "Assignment",
|
|
"src": "802:20:2"
|
|
}
|
|
],
|
|
"id": 1488,
|
|
"name": "ExpressionStatement",
|
|
"src": "802:20:2"
|
|
}
|
|
],
|
|
"id": 1489,
|
|
"name": "Block",
|
|
"src": "555:274:2"
|
|
}
|
|
],
|
|
"id": 1490,
|
|
"name": "FunctionDefinition",
|
|
"src": "470:359:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"documentation": null,
|
|
"functionSelector": "40c10f19",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "mint",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1491,
|
|
"name": "ElementaryTypeName",
|
|
"src": "849:7:2"
|
|
}
|
|
],
|
|
"id": 1492,
|
|
"name": "VariableDeclaration",
|
|
"src": "849:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 1511,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1493,
|
|
"name": "ElementaryTypeName",
|
|
"src": "866:7:2"
|
|
}
|
|
],
|
|
"id": 1494,
|
|
"name": "VariableDeclaration",
|
|
"src": "866:14:2"
|
|
}
|
|
],
|
|
"id": 1495,
|
|
"name": "ParameterList",
|
|
"src": "848:33:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1496,
|
|
"name": "ParameterList",
|
|
"src": "891:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e7702acf154d2f82cc8c1dd52813f94b0a08ea733aaf89d0cac26f6b55722c5a",
|
|
"typeString": "literal_string \"mint can only be called by the bridge\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 1497,
|
|
"name": "Identifier",
|
|
"src": "901:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "==",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sender",
|
|
"referencedDeclaration": null,
|
|
"type": "address payable"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": -15,
|
|
"type": "msg",
|
|
"value": "msg"
|
|
},
|
|
"id": 1498,
|
|
"name": "Identifier",
|
|
"src": "909:3:2"
|
|
}
|
|
],
|
|
"id": 1499,
|
|
"name": "MemberAccess",
|
|
"src": "909:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1449,
|
|
"type": "address",
|
|
"value": "bridge"
|
|
},
|
|
"id": 1500,
|
|
"name": "Identifier",
|
|
"src": "923:6:2"
|
|
}
|
|
],
|
|
"id": 1501,
|
|
"name": "BinaryOperation",
|
|
"src": "909:20:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "6d696e742063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"mint can only be called by the bridge\"",
|
|
"value": "mint can only be called by the bridge"
|
|
},
|
|
"id": 1502,
|
|
"name": "Literal",
|
|
"src": "931:39:2"
|
|
}
|
|
],
|
|
"id": 1503,
|
|
"name": "FunctionCall",
|
|
"src": "901:70:2"
|
|
}
|
|
],
|
|
"id": 1504,
|
|
"name": "ExpressionStatement",
|
|
"src": "901:70:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2043,
|
|
"type": "function (address,uint256)",
|
|
"value": "_mint"
|
|
},
|
|
"id": 1505,
|
|
"name": "Identifier",
|
|
"src": "982:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1492,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 1506,
|
|
"name": "Identifier",
|
|
"src": "988:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1494,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1507,
|
|
"name": "Identifier",
|
|
"src": "997:6:2"
|
|
}
|
|
],
|
|
"id": 1508,
|
|
"name": "FunctionCall",
|
|
"src": "982:22:2"
|
|
}
|
|
],
|
|
"id": 1509,
|
|
"name": "ExpressionStatement",
|
|
"src": "982:22:2"
|
|
}
|
|
],
|
|
"id": 1510,
|
|
"name": "Block",
|
|
"src": "891:120:2"
|
|
}
|
|
],
|
|
"id": 1511,
|
|
"name": "FunctionDefinition",
|
|
"src": "835:176:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"documentation": null,
|
|
"functionSelector": "9dc29fac",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "burn",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"overrides": null,
|
|
"scope": 1532,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1512,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1031:7:2"
|
|
}
|
|
],
|
|
"id": 1513,
|
|
"name": "VariableDeclaration",
|
|
"src": "1031:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 1532,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1514,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1048:7:2"
|
|
}
|
|
],
|
|
"id": 1515,
|
|
"name": "VariableDeclaration",
|
|
"src": "1048:14:2"
|
|
}
|
|
],
|
|
"id": 1516,
|
|
"name": "ParameterList",
|
|
"src": "1030:33:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1517,
|
|
"name": "ParameterList",
|
|
"src": "1073:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_c31242aa9df4d29364b074986b1202ec8729deca727157a31be5e2473387893b",
|
|
"typeString": "literal_string \"burn can only be called by the bridge\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 1518,
|
|
"name": "Identifier",
|
|
"src": "1083:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "==",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sender",
|
|
"referencedDeclaration": null,
|
|
"type": "address payable"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": -15,
|
|
"type": "msg",
|
|
"value": "msg"
|
|
},
|
|
"id": 1519,
|
|
"name": "Identifier",
|
|
"src": "1091:3:2"
|
|
}
|
|
],
|
|
"id": 1520,
|
|
"name": "MemberAccess",
|
|
"src": "1091:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1449,
|
|
"type": "address",
|
|
"value": "bridge"
|
|
},
|
|
"id": 1521,
|
|
"name": "Identifier",
|
|
"src": "1105:6:2"
|
|
}
|
|
],
|
|
"id": 1522,
|
|
"name": "BinaryOperation",
|
|
"src": "1091:20:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "6275726e2063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"burn can only be called by the bridge\"",
|
|
"value": "burn can only be called by the bridge"
|
|
},
|
|
"id": 1523,
|
|
"name": "Literal",
|
|
"src": "1113:39:2"
|
|
}
|
|
],
|
|
"id": 1524,
|
|
"name": "FunctionCall",
|
|
"src": "1083:70:2"
|
|
}
|
|
],
|
|
"id": 1525,
|
|
"name": "ExpressionStatement",
|
|
"src": "1083:70:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2090,
|
|
"type": "function (address,uint256)",
|
|
"value": "_burn"
|
|
},
|
|
"id": 1526,
|
|
"name": "Identifier",
|
|
"src": "1164:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1513,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 1527,
|
|
"name": "Identifier",
|
|
"src": "1170:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1515,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1528,
|
|
"name": "Identifier",
|
|
"src": "1179:6:2"
|
|
}
|
|
],
|
|
"id": 1529,
|
|
"name": "FunctionCall",
|
|
"src": "1164:22:2"
|
|
}
|
|
],
|
|
"id": 1530,
|
|
"name": "ExpressionStatement",
|
|
"src": "1164:22:2"
|
|
}
|
|
],
|
|
"id": 1531,
|
|
"name": "Block",
|
|
"src": "1073:120:2"
|
|
}
|
|
],
|
|
"id": 1532,
|
|
"name": "FunctionDefinition",
|
|
"src": "1017:176:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"contractScope": null,
|
|
"name": "SafeMath",
|
|
"referencedDeclaration": 2505,
|
|
"type": "library SafeMath"
|
|
},
|
|
"id": 1533,
|
|
"name": "UserDefinedTypeName",
|
|
"src": "1349:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1534,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1362:7:2"
|
|
}
|
|
],
|
|
"id": 1535,
|
|
"name": "UsingForDirective",
|
|
"src": "1343:27:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"contractScope": null,
|
|
"name": "Address",
|
|
"referencedDeclaration": 3595,
|
|
"type": "library Address"
|
|
},
|
|
"id": 1536,
|
|
"name": "UserDefinedTypeName",
|
|
"src": "1381:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1537,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1393:7:2"
|
|
}
|
|
],
|
|
"id": 1538,
|
|
"name": "UsingForDirective",
|
|
"src": "1375:26:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_balances",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "mapping(address => uint256)",
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": "address"
|
|
},
|
|
"id": 1539,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1415:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1540,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1426:7:2"
|
|
}
|
|
],
|
|
"id": 1541,
|
|
"name": "Mapping",
|
|
"src": "1407:27:2"
|
|
}
|
|
],
|
|
"id": 1542,
|
|
"name": "VariableDeclaration",
|
|
"src": "1407:45:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_allowances",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "mapping(address => mapping(address => uint256))",
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"type": "mapping(address => mapping(address => uint256))"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": "address"
|
|
},
|
|
"id": 1543,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1467:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": "address"
|
|
},
|
|
"id": 1544,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1486:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1545,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1497:7:2"
|
|
}
|
|
],
|
|
"id": 1546,
|
|
"name": "Mapping",
|
|
"src": "1478:27:2"
|
|
}
|
|
],
|
|
"id": 1547,
|
|
"name": "Mapping",
|
|
"src": "1459:47:2"
|
|
}
|
|
],
|
|
"id": 1548,
|
|
"name": "VariableDeclaration",
|
|
"src": "1459:67:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_totalSupply",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1549,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1533:7:2"
|
|
}
|
|
],
|
|
"id": 1550,
|
|
"name": "VariableDeclaration",
|
|
"src": "1533:28:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_symbol",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "string",
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": "string"
|
|
},
|
|
"id": 1551,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1568:6:2"
|
|
}
|
|
],
|
|
"id": 1552,
|
|
"name": "VariableDeclaration",
|
|
"src": "1568:22:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_decimals",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"type": "uint8",
|
|
"visibility": "private"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": "uint8"
|
|
},
|
|
"id": 1553,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1596:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "3138",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 18",
|
|
"value": "18"
|
|
},
|
|
"id": 1554,
|
|
"name": "Literal",
|
|
"src": "1622:2:2"
|
|
}
|
|
],
|
|
"id": 1555,
|
|
"name": "VariableDeclaration",
|
|
"src": "1596:28:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionSelector": "06fdde03",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "name",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Returns the name of the token."
|
|
},
|
|
"id": 1556,
|
|
"name": "StructuredDocumentation",
|
|
"src": "1631:54:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1557,
|
|
"name": "ParameterList",
|
|
"src": "1703:2:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1576,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "string",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": "string"
|
|
},
|
|
"id": 1558,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1727:6:2"
|
|
}
|
|
],
|
|
"id": 1559,
|
|
"name": "VariableDeclaration",
|
|
"src": "1727:13:2"
|
|
}
|
|
],
|
|
"id": 1560,
|
|
"name": "ParameterList",
|
|
"src": "1726:15:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1560
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "string memory",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(string storage pointer)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": null
|
|
},
|
|
"id": 1561,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1759:6:2"
|
|
}
|
|
],
|
|
"id": 1562,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "1759:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "bytes memory",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_5cf7e3c6b428de30b95e99bd5727c04cd18c12b66cf3176e2f95b4ceb77530a8",
|
|
"typeString": "literal_string \"Wormhole Wrapped - \""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
|
|
"typeString": "literal_string \"-\""
|
|
},
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"member_name": "encodePacked",
|
|
"referencedDeclaration": null,
|
|
"type": "function () pure returns (bytes memory)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": -1,
|
|
"type": "abi",
|
|
"value": "abi"
|
|
},
|
|
"id": 1563,
|
|
"name": "Identifier",
|
|
"src": "1766:3:2"
|
|
}
|
|
],
|
|
"id": 1564,
|
|
"name": "MemberAccess",
|
|
"src": "1766:16:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "576f726d686f6c652057726170706564202d20",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"Wormhole Wrapped - \"",
|
|
"value": "Wormhole Wrapped - "
|
|
},
|
|
"id": 1565,
|
|
"name": "Literal",
|
|
"src": "1783:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "string memory",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1654,
|
|
"type": "function (uint256) pure returns (string memory)",
|
|
"value": "uintToString"
|
|
},
|
|
"id": 1566,
|
|
"name": "Identifier",
|
|
"src": "1806:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1443,
|
|
"type": "uint8",
|
|
"value": "assetChain"
|
|
},
|
|
"id": 1567,
|
|
"name": "Identifier",
|
|
"src": "1819:10:2"
|
|
}
|
|
],
|
|
"id": 1568,
|
|
"name": "FunctionCall",
|
|
"src": "1806:24:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "2d",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"-\"",
|
|
"value": "-"
|
|
},
|
|
"id": 1569,
|
|
"name": "Literal",
|
|
"src": "1832:3:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "string memory",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1740,
|
|
"type": "function () view returns (string memory)",
|
|
"value": "assetAddressString"
|
|
},
|
|
"id": 1570,
|
|
"name": "Identifier",
|
|
"src": "1837:18:2"
|
|
}
|
|
],
|
|
"id": 1571,
|
|
"name": "FunctionCall",
|
|
"src": "1837:20:2"
|
|
}
|
|
],
|
|
"id": 1572,
|
|
"name": "FunctionCall",
|
|
"src": "1766:92:2"
|
|
}
|
|
],
|
|
"id": 1573,
|
|
"name": "FunctionCall",
|
|
"src": "1759:100:2"
|
|
}
|
|
],
|
|
"id": 1574,
|
|
"name": "Return",
|
|
"src": "1752:107:2"
|
|
}
|
|
],
|
|
"id": 1575,
|
|
"name": "Block",
|
|
"src": "1742:124:2"
|
|
}
|
|
],
|
|
"id": 1576,
|
|
"name": "FunctionDefinition",
|
|
"src": "1690:176:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"documentation": null,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "uintToString",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_i",
|
|
"overrides": null,
|
|
"scope": 1654,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1577,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1944:4:2"
|
|
}
|
|
],
|
|
"id": 1578,
|
|
"name": "VariableDeclaration",
|
|
"src": "1944:7:2"
|
|
}
|
|
],
|
|
"id": 1579,
|
|
"name": "ParameterList",
|
|
"src": "1943:9:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "_uintAsString",
|
|
"overrides": null,
|
|
"scope": 1654,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "string",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": "string"
|
|
},
|
|
"id": 1580,
|
|
"name": "ElementaryTypeName",
|
|
"src": "1976:6:2"
|
|
}
|
|
],
|
|
"id": 1581,
|
|
"name": "VariableDeclaration",
|
|
"src": "1976:27:2"
|
|
}
|
|
],
|
|
"id": 1582,
|
|
"name": "ParameterList",
|
|
"src": "1975:29:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"falseBody": null
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "==",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1578,
|
|
"type": "uint256",
|
|
"value": "_i"
|
|
},
|
|
"id": 1583,
|
|
"name": "Identifier",
|
|
"src": "2019:2:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 1584,
|
|
"name": "Literal",
|
|
"src": "2025:1:2"
|
|
}
|
|
],
|
|
"id": 1585,
|
|
"name": "BinaryOperation",
|
|
"src": "2019:7:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1582
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"0\"",
|
|
"value": "0"
|
|
},
|
|
"id": 1586,
|
|
"name": "Literal",
|
|
"src": "2049:3:2"
|
|
}
|
|
],
|
|
"id": 1587,
|
|
"name": "Return",
|
|
"src": "2042:10:2"
|
|
}
|
|
],
|
|
"id": 1588,
|
|
"name": "Block",
|
|
"src": "2028:35:2"
|
|
}
|
|
],
|
|
"id": 1589,
|
|
"name": "IfStatement",
|
|
"src": "2015:48:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"assignments": [1591]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "j",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1590,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2072:4:2"
|
|
}
|
|
],
|
|
"id": 1591,
|
|
"name": "VariableDeclaration",
|
|
"src": "2072:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1578,
|
|
"type": "uint256",
|
|
"value": "_i"
|
|
},
|
|
"id": 1592,
|
|
"name": "Identifier",
|
|
"src": "2081:2:2"
|
|
}
|
|
],
|
|
"id": 1593,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2072:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"assignments": [1595],
|
|
"initialValue": null
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "len",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1594,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2093:4:2"
|
|
}
|
|
],
|
|
"id": 1595,
|
|
"name": "VariableDeclaration",
|
|
"src": "2093:8:2"
|
|
}
|
|
],
|
|
"id": 1596,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2093:8:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1591,
|
|
"type": "uint256",
|
|
"value": "j"
|
|
},
|
|
"id": 1597,
|
|
"name": "Identifier",
|
|
"src": "2118:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 1598,
|
|
"name": "Literal",
|
|
"src": "2123:1:2"
|
|
}
|
|
],
|
|
"id": 1599,
|
|
"name": "BinaryOperation",
|
|
"src": "2118:6:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1595,
|
|
"type": "uint256",
|
|
"value": "len"
|
|
},
|
|
"id": 1600,
|
|
"name": "Identifier",
|
|
"src": "2140:3:2"
|
|
}
|
|
],
|
|
"id": 1601,
|
|
"name": "UnaryOperation",
|
|
"src": "2140:5:2"
|
|
}
|
|
],
|
|
"id": 1602,
|
|
"name": "ExpressionStatement",
|
|
"src": "2140:5:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "/=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1591,
|
|
"type": "uint256",
|
|
"value": "j"
|
|
},
|
|
"id": 1603,
|
|
"name": "Identifier",
|
|
"src": "2159:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "3130",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 10",
|
|
"value": "10"
|
|
},
|
|
"id": 1604,
|
|
"name": "Literal",
|
|
"src": "2164:2:2"
|
|
}
|
|
],
|
|
"id": 1605,
|
|
"name": "Assignment",
|
|
"src": "2159:7:2"
|
|
}
|
|
],
|
|
"id": 1606,
|
|
"name": "ExpressionStatement",
|
|
"src": "2159:7:2"
|
|
}
|
|
],
|
|
"id": 1607,
|
|
"name": "Block",
|
|
"src": "2126:51:2"
|
|
}
|
|
],
|
|
"id": 1608,
|
|
"name": "WhileStatement",
|
|
"src": "2111:66:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"assignments": [1610]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "bstr",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "bytes",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes",
|
|
"type": "bytes"
|
|
},
|
|
"id": 1609,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2186:5:2"
|
|
}
|
|
],
|
|
"id": 1610,
|
|
"name": "VariableDeclaration",
|
|
"src": "2186:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "bytes memory",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "function (uint256) pure returns (bytes memory)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes",
|
|
"type": "bytes"
|
|
},
|
|
"id": 1611,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2210:5:2"
|
|
}
|
|
],
|
|
"id": 1612,
|
|
"name": "NewExpression",
|
|
"src": "2206:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1595,
|
|
"type": "uint256",
|
|
"value": "len"
|
|
},
|
|
"id": 1613,
|
|
"name": "Identifier",
|
|
"src": "2216:3:2"
|
|
}
|
|
],
|
|
"id": 1614,
|
|
"name": "FunctionCall",
|
|
"src": "2206:14:2"
|
|
}
|
|
],
|
|
"id": 1615,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2186:34:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"assignments": [1617]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "k",
|
|
"overrides": null,
|
|
"scope": 1653,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1616,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2230:4:2"
|
|
}
|
|
],
|
|
"id": 1617,
|
|
"name": "VariableDeclaration",
|
|
"src": "2230:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "-",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1595,
|
|
"type": "uint256",
|
|
"value": "len"
|
|
},
|
|
"id": 1618,
|
|
"name": "Identifier",
|
|
"src": "2239:3:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "31",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 1",
|
|
"value": "1"
|
|
},
|
|
"id": 1619,
|
|
"name": "Literal",
|
|
"src": "2245:1:2"
|
|
}
|
|
],
|
|
"id": 1620,
|
|
"name": "BinaryOperation",
|
|
"src": "2239:7:2"
|
|
}
|
|
],
|
|
"id": 1621,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2230:16:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1578,
|
|
"type": "uint256",
|
|
"value": "_i"
|
|
},
|
|
"id": 1622,
|
|
"name": "Identifier",
|
|
"src": "2263:2:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 1623,
|
|
"name": "Literal",
|
|
"src": "2269:1:2"
|
|
}
|
|
],
|
|
"id": 1624,
|
|
"name": "BinaryOperation",
|
|
"src": "2263:7:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1610,
|
|
"type": "bytes memory",
|
|
"value": "bstr"
|
|
},
|
|
"id": 1625,
|
|
"name": "Identifier",
|
|
"src": "2286:4:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "--",
|
|
"prefix": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1617,
|
|
"type": "uint256",
|
|
"value": "k"
|
|
},
|
|
"id": 1626,
|
|
"name": "Identifier",
|
|
"src": "2291:1:2"
|
|
}
|
|
],
|
|
"id": 1627,
|
|
"name": "UnaryOperation",
|
|
"src": "2291:3:2"
|
|
}
|
|
],
|
|
"id": 1628,
|
|
"name": "IndexAccess",
|
|
"src": "2286:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "bytes1",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(bytes1)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "byte",
|
|
"type": null
|
|
},
|
|
"id": 1629,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2298:4:2"
|
|
}
|
|
],
|
|
"id": 1630,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2298:4:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint8",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(uint8)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": null
|
|
},
|
|
"id": 1631,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2303:5:2"
|
|
}
|
|
],
|
|
"id": 1632,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2303:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "+",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "3438",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 48",
|
|
"value": "48"
|
|
},
|
|
"id": 1633,
|
|
"name": "Literal",
|
|
"src": "2309:2:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "%",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 1578,
|
|
"type": "uint256",
|
|
"value": "_i"
|
|
},
|
|
"id": 1634,
|
|
"name": "Identifier",
|
|
"src": "2314:2:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "3130",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 10",
|
|
"value": "10"
|
|
},
|
|
"id": 1635,
|
|
"name": "Literal",
|
|
"src": "2319:2:2"
|
|
}
|
|
],
|
|
"id": 1636,
|
|
"name": "BinaryOperation",
|
|
"src": "2314:7:2"
|
|
}
|
|
],
|
|
"id": 1637,
|
|
"name": "BinaryOperation",
|
|
"src": "2309:12:2"
|
|
}
|
|
],
|
|
"id": 1638,
|
|
"name": "FunctionCall",
|
|
"src": "2303:19:2"
|
|
}
|
|
],
|
|
"id": 1639,
|
|
"name": "FunctionCall",
|
|
"src": "2298:25:2"
|
|
}
|
|
],
|
|
"id": 1640,
|
|
"name": "Assignment",
|
|
"src": "2286:37:2"
|
|
}
|
|
],
|
|
"id": 1641,
|
|
"name": "ExpressionStatement",
|
|
"src": "2286:37:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "/=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1578,
|
|
"type": "uint256",
|
|
"value": "_i"
|
|
},
|
|
"id": 1642,
|
|
"name": "Identifier",
|
|
"src": "2337:2:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "3130",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 10",
|
|
"value": "10"
|
|
},
|
|
"id": 1643,
|
|
"name": "Literal",
|
|
"src": "2343:2:2"
|
|
}
|
|
],
|
|
"id": 1644,
|
|
"name": "Assignment",
|
|
"src": "2337:8:2"
|
|
}
|
|
],
|
|
"id": 1645,
|
|
"name": "ExpressionStatement",
|
|
"src": "2337:8:2"
|
|
}
|
|
],
|
|
"id": 1646,
|
|
"name": "Block",
|
|
"src": "2272:84:2"
|
|
}
|
|
],
|
|
"id": 1647,
|
|
"name": "WhileStatement",
|
|
"src": "2256:100:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1582
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "string memory",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(string storage pointer)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": null
|
|
},
|
|
"id": 1648,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2372:6:2"
|
|
}
|
|
],
|
|
"id": 1649,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2372:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1610,
|
|
"type": "bytes memory",
|
|
"value": "bstr"
|
|
},
|
|
"id": 1650,
|
|
"name": "Identifier",
|
|
"src": "2379:4:2"
|
|
}
|
|
],
|
|
"id": 1651,
|
|
"name": "FunctionCall",
|
|
"src": "2372:12:2"
|
|
}
|
|
],
|
|
"id": 1652,
|
|
"name": "Return",
|
|
"src": "2365:19:2"
|
|
}
|
|
],
|
|
"id": 1653,
|
|
"name": "Block",
|
|
"src": "2005:386:2"
|
|
}
|
|
],
|
|
"id": 1654,
|
|
"name": "FunctionDefinition",
|
|
"src": "1922:469:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"documentation": null,
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "assetAddressString",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1655,
|
|
"name": "ParameterList",
|
|
"src": "2474:2:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1740,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "string",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": "string"
|
|
},
|
|
"id": 1656,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2499:6:2"
|
|
}
|
|
],
|
|
"id": 1657,
|
|
"name": "VariableDeclaration",
|
|
"src": "2499:13:2"
|
|
}
|
|
],
|
|
"id": 1658,
|
|
"name": "ParameterList",
|
|
"src": "2498:15:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"assignments": [1660]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "alphabet",
|
|
"overrides": null,
|
|
"scope": 1739,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "bytes",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes",
|
|
"type": "bytes"
|
|
},
|
|
"id": 1659,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2524:5:2"
|
|
}
|
|
],
|
|
"id": 1660,
|
|
"name": "VariableDeclaration",
|
|
"src": "2524:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30313233343536373839616263646566",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"0123456789abcdef\"",
|
|
"value": "0123456789abcdef"
|
|
},
|
|
"id": 1661,
|
|
"name": "Literal",
|
|
"src": "2548:18:2"
|
|
}
|
|
],
|
|
"id": 1662,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2524:42:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"assignments": [1664]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"overrides": null,
|
|
"scope": 1739,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bytes32",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes32",
|
|
"type": "bytes32"
|
|
},
|
|
"id": 1663,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2576:7:2"
|
|
}
|
|
],
|
|
"id": 1664,
|
|
"name": "VariableDeclaration",
|
|
"src": "2576:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1445,
|
|
"type": "bytes32",
|
|
"value": "assetAddress"
|
|
},
|
|
"id": 1665,
|
|
"name": "Identifier",
|
|
"src": "2591:12:2"
|
|
}
|
|
],
|
|
"id": 1666,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2576:27:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"assignments": [1668]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "str",
|
|
"overrides": null,
|
|
"scope": 1739,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "bytes",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes",
|
|
"type": "bytes"
|
|
},
|
|
"id": 1667,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2614:5:2"
|
|
}
|
|
],
|
|
"id": 1668,
|
|
"name": "VariableDeclaration",
|
|
"src": "2614:16:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "bytes memory",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "function (uint256) pure returns (bytes memory)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bytes",
|
|
"type": "bytes"
|
|
},
|
|
"id": 1669,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2637:5:2"
|
|
}
|
|
],
|
|
"id": 1670,
|
|
"name": "NewExpression",
|
|
"src": "2633:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "+",
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "32",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 2",
|
|
"value": "2"
|
|
},
|
|
"id": 1671,
|
|
"name": "Literal",
|
|
"src": "2643:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "*",
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "length",
|
|
"referencedDeclaration": null,
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1664,
|
|
"type": "bytes32",
|
|
"value": "data"
|
|
},
|
|
"id": 1672,
|
|
"name": "Identifier",
|
|
"src": "2647:4:2"
|
|
}
|
|
],
|
|
"id": 1673,
|
|
"name": "MemberAccess",
|
|
"src": "2647:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "32",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 2",
|
|
"value": "2"
|
|
},
|
|
"id": 1674,
|
|
"name": "Literal",
|
|
"src": "2661:1:2"
|
|
}
|
|
],
|
|
"id": 1675,
|
|
"name": "BinaryOperation",
|
|
"src": "2647:15:2"
|
|
}
|
|
],
|
|
"id": 1676,
|
|
"name": "BinaryOperation",
|
|
"src": "2643:19:2"
|
|
}
|
|
],
|
|
"id": 1677,
|
|
"name": "FunctionCall",
|
|
"src": "2633:30:2"
|
|
}
|
|
],
|
|
"id": 1678,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2614:49:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"assignments": [1680]
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"overrides": null,
|
|
"scope": 1733,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1679,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2678:4:2"
|
|
}
|
|
],
|
|
"id": 1680,
|
|
"name": "VariableDeclaration",
|
|
"src": "2678:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 1681,
|
|
"name": "Literal",
|
|
"src": "2687:1:2"
|
|
}
|
|
],
|
|
"id": 1682,
|
|
"name": "VariableDeclarationStatement",
|
|
"src": "2678:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "<",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1680,
|
|
"type": "uint256",
|
|
"value": "i"
|
|
},
|
|
"id": 1683,
|
|
"name": "Identifier",
|
|
"src": "2690:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "length",
|
|
"referencedDeclaration": null,
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1664,
|
|
"type": "bytes32",
|
|
"value": "data"
|
|
},
|
|
"id": 1684,
|
|
"name": "Identifier",
|
|
"src": "2694:4:2"
|
|
}
|
|
],
|
|
"id": 1685,
|
|
"name": "MemberAccess",
|
|
"src": "2694:11:2"
|
|
}
|
|
],
|
|
"id": 1686,
|
|
"name": "BinaryOperation",
|
|
"src": "2690:15:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1680,
|
|
"type": "uint256",
|
|
"value": "i"
|
|
},
|
|
"id": 1687,
|
|
"name": "Identifier",
|
|
"src": "2707:1:2"
|
|
}
|
|
],
|
|
"id": 1688,
|
|
"name": "UnaryOperation",
|
|
"src": "2707:3:2"
|
|
}
|
|
],
|
|
"id": 1689,
|
|
"name": "ExpressionStatement",
|
|
"src": "2707:3:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1668,
|
|
"type": "bytes memory",
|
|
"value": "str"
|
|
},
|
|
"id": 1690,
|
|
"name": "Identifier",
|
|
"src": "2726:3:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "*",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1680,
|
|
"type": "uint256",
|
|
"value": "i"
|
|
},
|
|
"id": 1691,
|
|
"name": "Identifier",
|
|
"src": "2730:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "32",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 2",
|
|
"value": "2"
|
|
},
|
|
"id": 1692,
|
|
"name": "Literal",
|
|
"src": "2734:1:2"
|
|
}
|
|
],
|
|
"id": 1693,
|
|
"name": "BinaryOperation",
|
|
"src": "2730:5:2"
|
|
}
|
|
],
|
|
"id": 1694,
|
|
"name": "IndexAccess",
|
|
"src": "2726:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1660,
|
|
"type": "bytes memory",
|
|
"value": "alphabet"
|
|
},
|
|
"id": 1695,
|
|
"name": "Identifier",
|
|
"src": "2739:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": null
|
|
},
|
|
"id": 1696,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2748:4:2"
|
|
}
|
|
],
|
|
"id": 1697,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2748:4:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint8",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(uint8)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": null
|
|
},
|
|
"id": 1698,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2753:5:2"
|
|
}
|
|
],
|
|
"id": 1699,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2753:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": ">>",
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 1664,
|
|
"type": "bytes32",
|
|
"value": "data"
|
|
},
|
|
"id": 1700,
|
|
"name": "Identifier",
|
|
"src": "2759:4:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 1680,
|
|
"type": "uint256",
|
|
"value": "i"
|
|
},
|
|
"id": 1701,
|
|
"name": "Identifier",
|
|
"src": "2764:1:2"
|
|
}
|
|
],
|
|
"id": 1702,
|
|
"name": "IndexAccess",
|
|
"src": "2759:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "34",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 4",
|
|
"value": "4"
|
|
},
|
|
"id": 1703,
|
|
"name": "Literal",
|
|
"src": "2770:1:2"
|
|
}
|
|
],
|
|
"id": 1704,
|
|
"name": "BinaryOperation",
|
|
"src": "2759:12:2"
|
|
}
|
|
],
|
|
"id": 1705,
|
|
"name": "FunctionCall",
|
|
"src": "2753:19:2"
|
|
}
|
|
],
|
|
"id": 1706,
|
|
"name": "FunctionCall",
|
|
"src": "2748:25:2"
|
|
}
|
|
],
|
|
"id": 1707,
|
|
"name": "IndexAccess",
|
|
"src": "2739:35:2"
|
|
}
|
|
],
|
|
"id": 1708,
|
|
"name": "Assignment",
|
|
"src": "2726:48:2"
|
|
}
|
|
],
|
|
"id": 1709,
|
|
"name": "ExpressionStatement",
|
|
"src": "2726:48:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1668,
|
|
"type": "bytes memory",
|
|
"value": "str"
|
|
},
|
|
"id": 1710,
|
|
"name": "Identifier",
|
|
"src": "2788:3:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "+",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "31",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 1",
|
|
"value": "1"
|
|
},
|
|
"id": 1711,
|
|
"name": "Literal",
|
|
"src": "2792:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "*",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 1680,
|
|
"type": "uint256",
|
|
"value": "i"
|
|
},
|
|
"id": 1712,
|
|
"name": "Identifier",
|
|
"src": "2796:1:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "32",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 2",
|
|
"value": "2"
|
|
},
|
|
"id": 1713,
|
|
"name": "Literal",
|
|
"src": "2800:1:2"
|
|
}
|
|
],
|
|
"id": 1714,
|
|
"name": "BinaryOperation",
|
|
"src": "2796:5:2"
|
|
}
|
|
],
|
|
"id": 1715,
|
|
"name": "BinaryOperation",
|
|
"src": "2792:9:2"
|
|
}
|
|
],
|
|
"id": 1716,
|
|
"name": "IndexAccess",
|
|
"src": "2788:14:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1660,
|
|
"type": "bytes memory",
|
|
"value": "alphabet"
|
|
},
|
|
"id": 1717,
|
|
"name": "Identifier",
|
|
"src": "2805:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint",
|
|
"type": null
|
|
},
|
|
"id": 1718,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2814:4:2"
|
|
}
|
|
],
|
|
"id": 1719,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2814:4:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint8",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(uint8)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": null
|
|
},
|
|
"id": 1720,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2819:5:2"
|
|
}
|
|
],
|
|
"id": 1721,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2819:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "&",
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "bytes1"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 1664,
|
|
"type": "bytes32",
|
|
"value": "data"
|
|
},
|
|
"id": 1722,
|
|
"name": "Identifier",
|
|
"src": "2825:4:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 1680,
|
|
"type": "uint256",
|
|
"value": "i"
|
|
},
|
|
"id": 1723,
|
|
"name": "Identifier",
|
|
"src": "2830:1:2"
|
|
}
|
|
],
|
|
"id": 1724,
|
|
"name": "IndexAccess",
|
|
"src": "2825:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30783066",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 15",
|
|
"value": "0x0f"
|
|
},
|
|
"id": 1725,
|
|
"name": "Literal",
|
|
"src": "2835:4:2"
|
|
}
|
|
],
|
|
"id": 1726,
|
|
"name": "BinaryOperation",
|
|
"src": "2825:14:2"
|
|
}
|
|
],
|
|
"id": 1727,
|
|
"name": "FunctionCall",
|
|
"src": "2819:21:2"
|
|
}
|
|
],
|
|
"id": 1728,
|
|
"name": "FunctionCall",
|
|
"src": "2814:27:2"
|
|
}
|
|
],
|
|
"id": 1729,
|
|
"name": "IndexAccess",
|
|
"src": "2805:37:2"
|
|
}
|
|
],
|
|
"id": 1730,
|
|
"name": "Assignment",
|
|
"src": "2788:54:2"
|
|
}
|
|
],
|
|
"id": 1731,
|
|
"name": "ExpressionStatement",
|
|
"src": "2788:54:2"
|
|
}
|
|
],
|
|
"id": 1732,
|
|
"name": "Block",
|
|
"src": "2712:141:2"
|
|
}
|
|
],
|
|
"id": 1733,
|
|
"name": "ForStatement",
|
|
"src": "2673:180:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1658
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "string memory",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(string storage pointer)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": null
|
|
},
|
|
"id": 1734,
|
|
"name": "ElementaryTypeName",
|
|
"src": "2869:6:2"
|
|
}
|
|
],
|
|
"id": 1735,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "2869:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1668,
|
|
"type": "bytes memory",
|
|
"value": "str"
|
|
},
|
|
"id": 1736,
|
|
"name": "Identifier",
|
|
"src": "2876:3:2"
|
|
}
|
|
],
|
|
"id": 1737,
|
|
"name": "FunctionCall",
|
|
"src": "2869:11:2"
|
|
}
|
|
],
|
|
"id": 1738,
|
|
"name": "Return",
|
|
"src": "2862:18:2"
|
|
}
|
|
],
|
|
"id": 1739,
|
|
"name": "Block",
|
|
"src": "2514:373:2"
|
|
}
|
|
],
|
|
"id": 1740,
|
|
"name": "FunctionDefinition",
|
|
"src": "2447:440:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionSelector": "95d89b41",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "symbol",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
|
|
},
|
|
"id": 1741,
|
|
"name": "StructuredDocumentation",
|
|
"src": "2893:102:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1742,
|
|
"name": "ParameterList",
|
|
"src": "3015:2:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1749,
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"type": "string",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "string",
|
|
"type": "string"
|
|
},
|
|
"id": 1743,
|
|
"name": "ElementaryTypeName",
|
|
"src": "3039:6:2"
|
|
}
|
|
],
|
|
"id": 1744,
|
|
"name": "VariableDeclaration",
|
|
"src": "3039:13:2"
|
|
}
|
|
],
|
|
"id": 1745,
|
|
"name": "ParameterList",
|
|
"src": "3038:15:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1745
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1552,
|
|
"type": "string storage ref",
|
|
"value": "_symbol"
|
|
},
|
|
"id": 1746,
|
|
"name": "Identifier",
|
|
"src": "3071:7:2"
|
|
}
|
|
],
|
|
"id": 1747,
|
|
"name": "Return",
|
|
"src": "3064:14:2"
|
|
}
|
|
],
|
|
"id": 1748,
|
|
"name": "Block",
|
|
"src": "3054:31:2"
|
|
}
|
|
],
|
|
"id": 1749,
|
|
"name": "FunctionDefinition",
|
|
"src": "3000:85:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionSelector": "313ce567",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "decimals",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
|
|
},
|
|
"id": 1750,
|
|
"name": "StructuredDocumentation",
|
|
"src": "3091:612:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1751,
|
|
"name": "ParameterList",
|
|
"src": "3725:2:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1758,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint8",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": "uint8"
|
|
},
|
|
"id": 1752,
|
|
"name": "ElementaryTypeName",
|
|
"src": "3749:5:2"
|
|
}
|
|
],
|
|
"id": 1753,
|
|
"name": "VariableDeclaration",
|
|
"src": "3749:5:2"
|
|
}
|
|
],
|
|
"id": 1754,
|
|
"name": "ParameterList",
|
|
"src": "3748:7:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1754
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1555,
|
|
"type": "uint8",
|
|
"value": "_decimals"
|
|
},
|
|
"id": 1755,
|
|
"name": "Identifier",
|
|
"src": "3773:9:2"
|
|
}
|
|
],
|
|
"id": 1756,
|
|
"name": "Return",
|
|
"src": "3766:16:2"
|
|
}
|
|
],
|
|
"id": 1757,
|
|
"name": "Block",
|
|
"src": "3756:33:2"
|
|
}
|
|
],
|
|
"id": 1758,
|
|
"name": "FunctionDefinition",
|
|
"src": "3708:81:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"baseFunctions": [3017],
|
|
"functionSelector": "18160ddd",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "totalSupply",
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev See {IERC20-totalSupply}."
|
|
},
|
|
"id": 1759,
|
|
"name": "StructuredDocumentation",
|
|
"src": "3795:49:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"overrides": [null]
|
|
},
|
|
"id": 1761,
|
|
"name": "OverrideSpecifier",
|
|
"src": "3884:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1760,
|
|
"name": "ParameterList",
|
|
"src": "3869:2:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1768,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1762,
|
|
"name": "ElementaryTypeName",
|
|
"src": "3902:7:2"
|
|
}
|
|
],
|
|
"id": 1763,
|
|
"name": "VariableDeclaration",
|
|
"src": "3902:7:2"
|
|
}
|
|
],
|
|
"id": 1764,
|
|
"name": "ParameterList",
|
|
"src": "3901:9:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1764
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1550,
|
|
"type": "uint256",
|
|
"value": "_totalSupply"
|
|
},
|
|
"id": 1765,
|
|
"name": "Identifier",
|
|
"src": "3928:12:2"
|
|
}
|
|
],
|
|
"id": 1766,
|
|
"name": "Return",
|
|
"src": "3921:19:2"
|
|
}
|
|
],
|
|
"id": 1767,
|
|
"name": "Block",
|
|
"src": "3911:36:2"
|
|
}
|
|
],
|
|
"id": 1768,
|
|
"name": "FunctionDefinition",
|
|
"src": "3849:98:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"baseFunctions": [3025],
|
|
"functionSelector": "70a08231",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "balanceOf",
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev See {IERC20-balanceOf}."
|
|
},
|
|
"id": 1769,
|
|
"name": "StructuredDocumentation",
|
|
"src": "3953:47:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"overrides": [null]
|
|
},
|
|
"id": 1773,
|
|
"name": "OverrideSpecifier",
|
|
"src": "4053:8:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"overrides": null,
|
|
"scope": 1782,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1770,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4024:7:2"
|
|
}
|
|
],
|
|
"id": 1771,
|
|
"name": "VariableDeclaration",
|
|
"src": "4024:15:2"
|
|
}
|
|
],
|
|
"id": 1772,
|
|
"name": "ParameterList",
|
|
"src": "4023:17:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1782,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1774,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4071:7:2"
|
|
}
|
|
],
|
|
"id": 1775,
|
|
"name": "VariableDeclaration",
|
|
"src": "4071:7:2"
|
|
}
|
|
],
|
|
"id": 1776,
|
|
"name": "ParameterList",
|
|
"src": "4070:9:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1776
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 1777,
|
|
"name": "Identifier",
|
|
"src": "4097:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1771,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 1778,
|
|
"name": "Identifier",
|
|
"src": "4107:7:2"
|
|
}
|
|
],
|
|
"id": 1779,
|
|
"name": "IndexAccess",
|
|
"src": "4097:18:2"
|
|
}
|
|
],
|
|
"id": 1780,
|
|
"name": "Return",
|
|
"src": "4090:25:2"
|
|
}
|
|
],
|
|
"id": 1781,
|
|
"name": "Block",
|
|
"src": "4080:42:2"
|
|
}
|
|
],
|
|
"id": 1782,
|
|
"name": "FunctionDefinition",
|
|
"src": "4005:117:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"baseFunctions": [3035],
|
|
"functionSelector": "a9059cbb",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "transfer",
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
|
|
},
|
|
"id": 1783,
|
|
"name": "StructuredDocumentation",
|
|
"src": "4128:192:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"overrides": [null]
|
|
},
|
|
"id": 1789,
|
|
"name": "OverrideSpecifier",
|
|
"src": "4385:8:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "recipient",
|
|
"overrides": null,
|
|
"scope": 1803,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1784,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4343:7:2"
|
|
}
|
|
],
|
|
"id": 1785,
|
|
"name": "VariableDeclaration",
|
|
"src": "4343:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 1803,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1786,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4362:7:2"
|
|
}
|
|
],
|
|
"id": 1787,
|
|
"name": "VariableDeclaration",
|
|
"src": "4362:14:2"
|
|
}
|
|
],
|
|
"id": 1788,
|
|
"name": "ParameterList",
|
|
"src": "4342:35:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1803,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bool",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bool",
|
|
"type": "bool"
|
|
},
|
|
"id": 1790,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4403:4:2"
|
|
}
|
|
],
|
|
"id": 1791,
|
|
"name": "VariableDeclaration",
|
|
"src": "4403:4:2"
|
|
}
|
|
],
|
|
"id": 1792,
|
|
"name": "ParameterList",
|
|
"src": "4402:6:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1997,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "_transfer"
|
|
},
|
|
"id": 1793,
|
|
"name": "Identifier",
|
|
"src": "4419:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1794,
|
|
"name": "Identifier",
|
|
"src": "4429:10:2"
|
|
}
|
|
],
|
|
"id": 1795,
|
|
"name": "FunctionCall",
|
|
"src": "4429:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1785,
|
|
"type": "address",
|
|
"value": "recipient"
|
|
},
|
|
"id": 1796,
|
|
"name": "Identifier",
|
|
"src": "4443:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1787,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1797,
|
|
"name": "Identifier",
|
|
"src": "4454:6:2"
|
|
}
|
|
],
|
|
"id": 1798,
|
|
"name": "FunctionCall",
|
|
"src": "4419:42:2"
|
|
}
|
|
],
|
|
"id": 1799,
|
|
"name": "ExpressionStatement",
|
|
"src": "4419:42:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1792
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "74727565",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "bool",
|
|
"type": "bool",
|
|
"value": "true"
|
|
},
|
|
"id": 1800,
|
|
"name": "Literal",
|
|
"src": "4478:4:2"
|
|
}
|
|
],
|
|
"id": 1801,
|
|
"name": "Return",
|
|
"src": "4471:11:2"
|
|
}
|
|
],
|
|
"id": 1802,
|
|
"name": "Block",
|
|
"src": "4409:80:2"
|
|
}
|
|
],
|
|
"id": 1803,
|
|
"name": "FunctionDefinition",
|
|
"src": "4325:164:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"baseFunctions": [3045],
|
|
"functionSelector": "dd62ed3e",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "allowance",
|
|
"scope": 2147,
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev See {IERC20-allowance}."
|
|
},
|
|
"id": 1804,
|
|
"name": "StructuredDocumentation",
|
|
"src": "4495:47:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"overrides": [null]
|
|
},
|
|
"id": 1810,
|
|
"name": "OverrideSpecifier",
|
|
"src": "4610:8:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "owner",
|
|
"overrides": null,
|
|
"scope": 1821,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1805,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4566:7:2"
|
|
}
|
|
],
|
|
"id": 1806,
|
|
"name": "VariableDeclaration",
|
|
"src": "4566:13:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"overrides": null,
|
|
"scope": 1821,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1807,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4581:7:2"
|
|
}
|
|
],
|
|
"id": 1808,
|
|
"name": "VariableDeclaration",
|
|
"src": "4581:15:2"
|
|
}
|
|
],
|
|
"id": 1809,
|
|
"name": "ParameterList",
|
|
"src": "4565:32:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1821,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1811,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4628:7:2"
|
|
}
|
|
],
|
|
"id": 1812,
|
|
"name": "VariableDeclaration",
|
|
"src": "4628:7:2"
|
|
}
|
|
],
|
|
"id": 1813,
|
|
"name": "ParameterList",
|
|
"src": "4627:9:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1813
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1548,
|
|
"type": "mapping(address => mapping(address => uint256))",
|
|
"value": "_allowances"
|
|
},
|
|
"id": 1814,
|
|
"name": "Identifier",
|
|
"src": "4654:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1806,
|
|
"type": "address",
|
|
"value": "owner"
|
|
},
|
|
"id": 1815,
|
|
"name": "Identifier",
|
|
"src": "4666:5:2"
|
|
}
|
|
],
|
|
"id": 1816,
|
|
"name": "IndexAccess",
|
|
"src": "4654:18:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1808,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 1817,
|
|
"name": "Identifier",
|
|
"src": "4673:7:2"
|
|
}
|
|
],
|
|
"id": 1818,
|
|
"name": "IndexAccess",
|
|
"src": "4654:27:2"
|
|
}
|
|
],
|
|
"id": 1819,
|
|
"name": "Return",
|
|
"src": "4647:34:2"
|
|
}
|
|
],
|
|
"id": 1820,
|
|
"name": "Block",
|
|
"src": "4637:51:2"
|
|
}
|
|
],
|
|
"id": 1821,
|
|
"name": "FunctionDefinition",
|
|
"src": "4547:141:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"baseFunctions": [3055],
|
|
"functionSelector": "095ea7b3",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "approve",
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
|
|
},
|
|
"id": 1822,
|
|
"name": "StructuredDocumentation",
|
|
"src": "4694:127:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"overrides": [null]
|
|
},
|
|
"id": 1828,
|
|
"name": "OverrideSpecifier",
|
|
"src": "4883:8:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"overrides": null,
|
|
"scope": 1842,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1823,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4843:7:2"
|
|
}
|
|
],
|
|
"id": 1824,
|
|
"name": "VariableDeclaration",
|
|
"src": "4843:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 1842,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1825,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4860:7:2"
|
|
}
|
|
],
|
|
"id": 1826,
|
|
"name": "VariableDeclaration",
|
|
"src": "4860:14:2"
|
|
}
|
|
],
|
|
"id": 1827,
|
|
"name": "ParameterList",
|
|
"src": "4842:33:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1842,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bool",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bool",
|
|
"type": "bool"
|
|
},
|
|
"id": 1829,
|
|
"name": "ElementaryTypeName",
|
|
"src": "4901:4:2"
|
|
}
|
|
],
|
|
"id": 1830,
|
|
"name": "VariableDeclaration",
|
|
"src": "4901:4:2"
|
|
}
|
|
],
|
|
"id": 1831,
|
|
"name": "ParameterList",
|
|
"src": "4900:6:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2135,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "_approve"
|
|
},
|
|
"id": 1832,
|
|
"name": "Identifier",
|
|
"src": "4917:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1833,
|
|
"name": "Identifier",
|
|
"src": "4926:10:2"
|
|
}
|
|
],
|
|
"id": 1834,
|
|
"name": "FunctionCall",
|
|
"src": "4926:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1824,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 1835,
|
|
"name": "Identifier",
|
|
"src": "4940:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1826,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1836,
|
|
"name": "Identifier",
|
|
"src": "4949:6:2"
|
|
}
|
|
],
|
|
"id": 1837,
|
|
"name": "FunctionCall",
|
|
"src": "4917:39:2"
|
|
}
|
|
],
|
|
"id": 1838,
|
|
"name": "ExpressionStatement",
|
|
"src": "4917:39:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1831
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "74727565",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "bool",
|
|
"type": "bool",
|
|
"value": "true"
|
|
},
|
|
"id": 1839,
|
|
"name": "Literal",
|
|
"src": "4973:4:2"
|
|
}
|
|
],
|
|
"id": 1840,
|
|
"name": "Return",
|
|
"src": "4966:11:2"
|
|
}
|
|
],
|
|
"id": 1841,
|
|
"name": "Block",
|
|
"src": "4907:77:2"
|
|
}
|
|
],
|
|
"id": 1842,
|
|
"name": "FunctionDefinition",
|
|
"src": "4826:158:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"baseFunctions": [3067],
|
|
"functionSelector": "23b872dd",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "transferFrom",
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20};\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."
|
|
},
|
|
"id": 1843,
|
|
"name": "StructuredDocumentation",
|
|
"src": "4990:449:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"overrides": [null]
|
|
},
|
|
"id": 1851,
|
|
"name": "OverrideSpecifier",
|
|
"src": "5524:8:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "sender",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1844,
|
|
"name": "ElementaryTypeName",
|
|
"src": "5466:7:2"
|
|
}
|
|
],
|
|
"id": 1845,
|
|
"name": "VariableDeclaration",
|
|
"src": "5466:14:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "recipient",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1846,
|
|
"name": "ElementaryTypeName",
|
|
"src": "5482:7:2"
|
|
}
|
|
],
|
|
"id": 1847,
|
|
"name": "VariableDeclaration",
|
|
"src": "5482:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1848,
|
|
"name": "ElementaryTypeName",
|
|
"src": "5501:7:2"
|
|
}
|
|
],
|
|
"id": 1849,
|
|
"name": "VariableDeclaration",
|
|
"src": "5501:14:2"
|
|
}
|
|
],
|
|
"id": 1850,
|
|
"name": "ParameterList",
|
|
"src": "5465:51:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1880,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bool",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bool",
|
|
"type": "bool"
|
|
},
|
|
"id": 1852,
|
|
"name": "ElementaryTypeName",
|
|
"src": "5542:4:2"
|
|
}
|
|
],
|
|
"id": 1853,
|
|
"name": "VariableDeclaration",
|
|
"src": "5542:4:2"
|
|
}
|
|
],
|
|
"id": 1854,
|
|
"name": "ParameterList",
|
|
"src": "5541:6:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1997,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "_transfer"
|
|
},
|
|
"id": 1855,
|
|
"name": "Identifier",
|
|
"src": "5558:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1845,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1856,
|
|
"name": "Identifier",
|
|
"src": "5568:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1847,
|
|
"type": "address",
|
|
"value": "recipient"
|
|
},
|
|
"id": 1857,
|
|
"name": "Identifier",
|
|
"src": "5576:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1849,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1858,
|
|
"name": "Identifier",
|
|
"src": "5587:6:2"
|
|
}
|
|
],
|
|
"id": 1859,
|
|
"name": "FunctionCall",
|
|
"src": "5558:36:2"
|
|
}
|
|
],
|
|
"id": 1860,
|
|
"name": "ExpressionStatement",
|
|
"src": "5558:36:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2135,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "_approve"
|
|
},
|
|
"id": 1861,
|
|
"name": "Identifier",
|
|
"src": "5604:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1845,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1862,
|
|
"name": "Identifier",
|
|
"src": "5613:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1863,
|
|
"name": "Identifier",
|
|
"src": "5621:10:2"
|
|
}
|
|
],
|
|
"id": 1864,
|
|
"name": "FunctionCall",
|
|
"src": "5621:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
|
|
"typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sub",
|
|
"referencedDeclaration": 2456,
|
|
"type": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1548,
|
|
"type": "mapping(address => mapping(address => uint256))",
|
|
"value": "_allowances"
|
|
},
|
|
"id": 1865,
|
|
"name": "Identifier",
|
|
"src": "5635:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1845,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1866,
|
|
"name": "Identifier",
|
|
"src": "5647:6:2"
|
|
}
|
|
],
|
|
"id": 1867,
|
|
"name": "IndexAccess",
|
|
"src": "5635:19:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1868,
|
|
"name": "Identifier",
|
|
"src": "5655:10:2"
|
|
}
|
|
],
|
|
"id": 1869,
|
|
"name": "FunctionCall",
|
|
"src": "5655:12:2"
|
|
}
|
|
],
|
|
"id": 1870,
|
|
"name": "IndexAccess",
|
|
"src": "5635:33:2"
|
|
}
|
|
],
|
|
"id": 1871,
|
|
"name": "MemberAccess",
|
|
"src": "5635:37:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1849,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1872,
|
|
"name": "Identifier",
|
|
"src": "5673:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: transfer amount exceeds allowance\"",
|
|
"value": "ERC20: transfer amount exceeds allowance"
|
|
},
|
|
"id": 1873,
|
|
"name": "Literal",
|
|
"src": "5681:42:2"
|
|
}
|
|
],
|
|
"id": 1874,
|
|
"name": "FunctionCall",
|
|
"src": "5635:89:2"
|
|
}
|
|
],
|
|
"id": 1875,
|
|
"name": "FunctionCall",
|
|
"src": "5604:121:2"
|
|
}
|
|
],
|
|
"id": 1876,
|
|
"name": "ExpressionStatement",
|
|
"src": "5604:121:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1854
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "74727565",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "bool",
|
|
"type": "bool",
|
|
"value": "true"
|
|
},
|
|
"id": 1877,
|
|
"name": "Literal",
|
|
"src": "5742:4:2"
|
|
}
|
|
],
|
|
"id": 1878,
|
|
"name": "Return",
|
|
"src": "5735:11:2"
|
|
}
|
|
],
|
|
"id": 1879,
|
|
"name": "Block",
|
|
"src": "5548:205:2"
|
|
}
|
|
],
|
|
"id": 1880,
|
|
"name": "FunctionDefinition",
|
|
"src": "5444:309:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionSelector": "39509351",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "increaseAllowance",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
|
|
},
|
|
"id": 1881,
|
|
"name": "StructuredDocumentation",
|
|
"src": "5759:384:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"overrides": null,
|
|
"scope": 1908,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1882,
|
|
"name": "ElementaryTypeName",
|
|
"src": "6175:7:2"
|
|
}
|
|
],
|
|
"id": 1883,
|
|
"name": "VariableDeclaration",
|
|
"src": "6175:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "addedValue",
|
|
"overrides": null,
|
|
"scope": 1908,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1884,
|
|
"name": "ElementaryTypeName",
|
|
"src": "6192:7:2"
|
|
}
|
|
],
|
|
"id": 1885,
|
|
"name": "VariableDeclaration",
|
|
"src": "6192:18:2"
|
|
}
|
|
],
|
|
"id": 1886,
|
|
"name": "ParameterList",
|
|
"src": "6174:37:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1908,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bool",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bool",
|
|
"type": "bool"
|
|
},
|
|
"id": 1887,
|
|
"name": "ElementaryTypeName",
|
|
"src": "6228:4:2"
|
|
}
|
|
],
|
|
"id": 1888,
|
|
"name": "VariableDeclaration",
|
|
"src": "6228:4:2"
|
|
}
|
|
],
|
|
"id": 1889,
|
|
"name": "ParameterList",
|
|
"src": "6227:6:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2135,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "_approve"
|
|
},
|
|
"id": 1890,
|
|
"name": "Identifier",
|
|
"src": "6244:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1891,
|
|
"name": "Identifier",
|
|
"src": "6253:10:2"
|
|
}
|
|
],
|
|
"id": 1892,
|
|
"name": "FunctionCall",
|
|
"src": "6253:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1883,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 1893,
|
|
"name": "Identifier",
|
|
"src": "6267:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "add",
|
|
"referencedDeclaration": 2332,
|
|
"type": "function (uint256,uint256) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1548,
|
|
"type": "mapping(address => mapping(address => uint256))",
|
|
"value": "_allowances"
|
|
},
|
|
"id": 1894,
|
|
"name": "Identifier",
|
|
"src": "6276:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1895,
|
|
"name": "Identifier",
|
|
"src": "6288:10:2"
|
|
}
|
|
],
|
|
"id": 1896,
|
|
"name": "FunctionCall",
|
|
"src": "6288:12:2"
|
|
}
|
|
],
|
|
"id": 1897,
|
|
"name": "IndexAccess",
|
|
"src": "6276:25:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1883,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 1898,
|
|
"name": "Identifier",
|
|
"src": "6302:7:2"
|
|
}
|
|
],
|
|
"id": 1899,
|
|
"name": "IndexAccess",
|
|
"src": "6276:34:2"
|
|
}
|
|
],
|
|
"id": 1900,
|
|
"name": "MemberAccess",
|
|
"src": "6276:38:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1885,
|
|
"type": "uint256",
|
|
"value": "addedValue"
|
|
},
|
|
"id": 1901,
|
|
"name": "Identifier",
|
|
"src": "6315:10:2"
|
|
}
|
|
],
|
|
"id": 1902,
|
|
"name": "FunctionCall",
|
|
"src": "6276:50:2"
|
|
}
|
|
],
|
|
"id": 1903,
|
|
"name": "FunctionCall",
|
|
"src": "6244:83:2"
|
|
}
|
|
],
|
|
"id": 1904,
|
|
"name": "ExpressionStatement",
|
|
"src": "6244:83:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1889
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "74727565",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "bool",
|
|
"type": "bool",
|
|
"value": "true"
|
|
},
|
|
"id": 1905,
|
|
"name": "Literal",
|
|
"src": "6344:4:2"
|
|
}
|
|
],
|
|
"id": 1906,
|
|
"name": "Return",
|
|
"src": "6337:11:2"
|
|
}
|
|
],
|
|
"id": 1907,
|
|
"name": "Block",
|
|
"src": "6234:121:2"
|
|
}
|
|
],
|
|
"id": 1908,
|
|
"name": "FunctionDefinition",
|
|
"src": "6148:207:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionSelector": "a457c2d7",
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "decreaseAllowance",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."
|
|
},
|
|
"id": 1909,
|
|
"name": "StructuredDocumentation",
|
|
"src": "6361:476:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"overrides": null,
|
|
"scope": 1937,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1910,
|
|
"name": "ElementaryTypeName",
|
|
"src": "6869:7:2"
|
|
}
|
|
],
|
|
"id": 1911,
|
|
"name": "VariableDeclaration",
|
|
"src": "6869:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "subtractedValue",
|
|
"overrides": null,
|
|
"scope": 1937,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1912,
|
|
"name": "ElementaryTypeName",
|
|
"src": "6886:7:2"
|
|
}
|
|
],
|
|
"id": 1913,
|
|
"name": "VariableDeclaration",
|
|
"src": "6886:23:2"
|
|
}
|
|
],
|
|
"id": 1914,
|
|
"name": "ParameterList",
|
|
"src": "6868:42:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"overrides": null,
|
|
"scope": 1937,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "bool",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "bool",
|
|
"type": "bool"
|
|
},
|
|
"id": 1915,
|
|
"name": "ElementaryTypeName",
|
|
"src": "6927:4:2"
|
|
}
|
|
],
|
|
"id": 1916,
|
|
"name": "VariableDeclaration",
|
|
"src": "6927:4:2"
|
|
}
|
|
],
|
|
"id": 1917,
|
|
"name": "ParameterList",
|
|
"src": "6926:6:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2135,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "_approve"
|
|
},
|
|
"id": 1918,
|
|
"name": "Identifier",
|
|
"src": "6943:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1919,
|
|
"name": "Identifier",
|
|
"src": "6952:10:2"
|
|
}
|
|
],
|
|
"id": 1920,
|
|
"name": "FunctionCall",
|
|
"src": "6952:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1911,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 1921,
|
|
"name": "Identifier",
|
|
"src": "6966:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
|
|
"typeString": "literal_string \"ERC20: decreased allowance below zero\""
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sub",
|
|
"referencedDeclaration": 2456,
|
|
"type": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1548,
|
|
"type": "mapping(address => mapping(address => uint256))",
|
|
"value": "_allowances"
|
|
},
|
|
"id": 1922,
|
|
"name": "Identifier",
|
|
"src": "6975:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"arguments": [null],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [null],
|
|
"overloadedDeclarations": [
|
|
null
|
|
],
|
|
"referencedDeclaration": 3606,
|
|
"type": "function () view returns (address payable)",
|
|
"value": "_msgSender"
|
|
},
|
|
"id": 1923,
|
|
"name": "Identifier",
|
|
"src": "6987:10:2"
|
|
}
|
|
],
|
|
"id": 1924,
|
|
"name": "FunctionCall",
|
|
"src": "6987:12:2"
|
|
}
|
|
],
|
|
"id": 1925,
|
|
"name": "IndexAccess",
|
|
"src": "6975:25:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1911,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 1926,
|
|
"name": "Identifier",
|
|
"src": "7001:7:2"
|
|
}
|
|
],
|
|
"id": 1927,
|
|
"name": "IndexAccess",
|
|
"src": "6975:34:2"
|
|
}
|
|
],
|
|
"id": 1928,
|
|
"name": "MemberAccess",
|
|
"src": "6975:38:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1913,
|
|
"type": "uint256",
|
|
"value": "subtractedValue"
|
|
},
|
|
"id": 1929,
|
|
"name": "Identifier",
|
|
"src": "7014:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: decreased allowance below zero\"",
|
|
"value": "ERC20: decreased allowance below zero"
|
|
},
|
|
"id": 1930,
|
|
"name": "Literal",
|
|
"src": "7031:39:2"
|
|
}
|
|
],
|
|
"id": 1931,
|
|
"name": "FunctionCall",
|
|
"src": "6975:96:2"
|
|
}
|
|
],
|
|
"id": 1932,
|
|
"name": "FunctionCall",
|
|
"src": "6943:129:2"
|
|
}
|
|
],
|
|
"id": 1933,
|
|
"name": "ExpressionStatement",
|
|
"src": "6943:129:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"functionReturnParameters": 1917
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "74727565",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "bool",
|
|
"type": "bool",
|
|
"value": "true"
|
|
},
|
|
"id": 1934,
|
|
"name": "Literal",
|
|
"src": "7089:4:2"
|
|
}
|
|
],
|
|
"id": 1935,
|
|
"name": "Return",
|
|
"src": "7082:11:2"
|
|
}
|
|
],
|
|
"id": 1936,
|
|
"name": "Block",
|
|
"src": "6933:167:2"
|
|
}
|
|
],
|
|
"id": 1937,
|
|
"name": "FunctionDefinition",
|
|
"src": "6842:258:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "_transfer",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
|
|
},
|
|
"id": 1938,
|
|
"name": "StructuredDocumentation",
|
|
"src": "7106:463:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "sender",
|
|
"overrides": null,
|
|
"scope": 1997,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1939,
|
|
"name": "ElementaryTypeName",
|
|
"src": "7593:7:2"
|
|
}
|
|
],
|
|
"id": 1940,
|
|
"name": "VariableDeclaration",
|
|
"src": "7593:14:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "recipient",
|
|
"overrides": null,
|
|
"scope": 1997,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1941,
|
|
"name": "ElementaryTypeName",
|
|
"src": "7609:7:2"
|
|
}
|
|
],
|
|
"id": 1942,
|
|
"name": "VariableDeclaration",
|
|
"src": "7609:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 1997,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 1943,
|
|
"name": "ElementaryTypeName",
|
|
"src": "7628:7:2"
|
|
}
|
|
],
|
|
"id": 1944,
|
|
"name": "VariableDeclaration",
|
|
"src": "7628:14:2"
|
|
}
|
|
],
|
|
"id": 1945,
|
|
"name": "ParameterList",
|
|
"src": "7592:51:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 1946,
|
|
"name": "ParameterList",
|
|
"src": "7653:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
|
|
"typeString": "literal_string \"ERC20: transfer from the zero address\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 1947,
|
|
"name": "Identifier",
|
|
"src": "7663:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1940,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1948,
|
|
"name": "Identifier",
|
|
"src": "7671:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 1949,
|
|
"name": "ElementaryTypeName",
|
|
"src": "7681:7:2"
|
|
}
|
|
],
|
|
"id": 1950,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "7681:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 1951,
|
|
"name": "Literal",
|
|
"src": "7689:1:2"
|
|
}
|
|
],
|
|
"id": 1952,
|
|
"name": "FunctionCall",
|
|
"src": "7681:10:2"
|
|
}
|
|
],
|
|
"id": 1953,
|
|
"name": "BinaryOperation",
|
|
"src": "7671:20:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: transfer from the zero address\"",
|
|
"value": "ERC20: transfer from the zero address"
|
|
},
|
|
"id": 1954,
|
|
"name": "Literal",
|
|
"src": "7693:39:2"
|
|
}
|
|
],
|
|
"id": 1955,
|
|
"name": "FunctionCall",
|
|
"src": "7663:70:2"
|
|
}
|
|
],
|
|
"id": 1956,
|
|
"name": "ExpressionStatement",
|
|
"src": "7663:70:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
|
|
"typeString": "literal_string \"ERC20: transfer to the zero address\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 1957,
|
|
"name": "Identifier",
|
|
"src": "7743:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1942,
|
|
"type": "address",
|
|
"value": "recipient"
|
|
},
|
|
"id": 1958,
|
|
"name": "Identifier",
|
|
"src": "7751:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 1959,
|
|
"name": "ElementaryTypeName",
|
|
"src": "7764:7:2"
|
|
}
|
|
],
|
|
"id": 1960,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "7764:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 1961,
|
|
"name": "Literal",
|
|
"src": "7772:1:2"
|
|
}
|
|
],
|
|
"id": 1962,
|
|
"name": "FunctionCall",
|
|
"src": "7764:10:2"
|
|
}
|
|
],
|
|
"id": 1963,
|
|
"name": "BinaryOperation",
|
|
"src": "7751:23:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: transfer to the zero address\"",
|
|
"value": "ERC20: transfer to the zero address"
|
|
},
|
|
"id": 1964,
|
|
"name": "Literal",
|
|
"src": "7776:37:2"
|
|
}
|
|
],
|
|
"id": 1965,
|
|
"name": "FunctionCall",
|
|
"src": "7743:71:2"
|
|
}
|
|
],
|
|
"id": 1966,
|
|
"name": "ExpressionStatement",
|
|
"src": "7743:71:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 1967,
|
|
"name": "Identifier",
|
|
"src": "7825:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1940,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1968,
|
|
"name": "Identifier",
|
|
"src": "7835:6:2"
|
|
}
|
|
],
|
|
"id": 1969,
|
|
"name": "IndexAccess",
|
|
"src": "7825:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
|
|
"typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sub",
|
|
"referencedDeclaration": 2456,
|
|
"type": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 1970,
|
|
"name": "Identifier",
|
|
"src": "7845:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1940,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1971,
|
|
"name": "Identifier",
|
|
"src": "7855:6:2"
|
|
}
|
|
],
|
|
"id": 1972,
|
|
"name": "IndexAccess",
|
|
"src": "7845:17:2"
|
|
}
|
|
],
|
|
"id": 1973,
|
|
"name": "MemberAccess",
|
|
"src": "7845:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1944,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1974,
|
|
"name": "Identifier",
|
|
"src": "7867:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: transfer amount exceeds balance\"",
|
|
"value": "ERC20: transfer amount exceeds balance"
|
|
},
|
|
"id": 1975,
|
|
"name": "Literal",
|
|
"src": "7875:40:2"
|
|
}
|
|
],
|
|
"id": 1976,
|
|
"name": "FunctionCall",
|
|
"src": "7845:71:2"
|
|
}
|
|
],
|
|
"id": 1977,
|
|
"name": "Assignment",
|
|
"src": "7825:91:2"
|
|
}
|
|
],
|
|
"id": 1978,
|
|
"name": "ExpressionStatement",
|
|
"src": "7825:91:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 1979,
|
|
"name": "Identifier",
|
|
"src": "7926:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1942,
|
|
"type": "address",
|
|
"value": "recipient"
|
|
},
|
|
"id": 1980,
|
|
"name": "Identifier",
|
|
"src": "7936:9:2"
|
|
}
|
|
],
|
|
"id": 1981,
|
|
"name": "IndexAccess",
|
|
"src": "7926:20:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "add",
|
|
"referencedDeclaration": 2332,
|
|
"type": "function (uint256,uint256) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 1982,
|
|
"name": "Identifier",
|
|
"src": "7949:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1942,
|
|
"type": "address",
|
|
"value": "recipient"
|
|
},
|
|
"id": 1983,
|
|
"name": "Identifier",
|
|
"src": "7959:9:2"
|
|
}
|
|
],
|
|
"id": 1984,
|
|
"name": "IndexAccess",
|
|
"src": "7949:20:2"
|
|
}
|
|
],
|
|
"id": 1985,
|
|
"name": "MemberAccess",
|
|
"src": "7949:24:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1944,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1986,
|
|
"name": "Identifier",
|
|
"src": "7974:6:2"
|
|
}
|
|
],
|
|
"id": 1987,
|
|
"name": "FunctionCall",
|
|
"src": "7949:32:2"
|
|
}
|
|
],
|
|
"id": 1988,
|
|
"name": "Assignment",
|
|
"src": "7926:55:2"
|
|
}
|
|
],
|
|
"id": 1989,
|
|
"name": "ExpressionStatement",
|
|
"src": "7926:55:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3076,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "Transfer"
|
|
},
|
|
"id": 1990,
|
|
"name": "Identifier",
|
|
"src": "7996:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1940,
|
|
"type": "address",
|
|
"value": "sender"
|
|
},
|
|
"id": 1991,
|
|
"name": "Identifier",
|
|
"src": "8005:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1942,
|
|
"type": "address",
|
|
"value": "recipient"
|
|
},
|
|
"id": 1992,
|
|
"name": "Identifier",
|
|
"src": "8013:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1944,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 1993,
|
|
"name": "Identifier",
|
|
"src": "8024:6:2"
|
|
}
|
|
],
|
|
"id": 1994,
|
|
"name": "FunctionCall",
|
|
"src": "7996:35:2"
|
|
}
|
|
],
|
|
"id": 1995,
|
|
"name": "EmitStatement",
|
|
"src": "7991:40:2"
|
|
}
|
|
],
|
|
"id": 1996,
|
|
"name": "Block",
|
|
"src": "7653:385:2"
|
|
}
|
|
],
|
|
"id": 1997,
|
|
"name": "FunctionDefinition",
|
|
"src": "7574:464:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "_mint",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address."
|
|
},
|
|
"id": 1998,
|
|
"name": "StructuredDocumentation",
|
|
"src": "8044:259:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"overrides": null,
|
|
"scope": 2043,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 1999,
|
|
"name": "ElementaryTypeName",
|
|
"src": "8323:7:2"
|
|
}
|
|
],
|
|
"id": 2000,
|
|
"name": "VariableDeclaration",
|
|
"src": "8323:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 2043,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 2001,
|
|
"name": "ElementaryTypeName",
|
|
"src": "8340:7:2"
|
|
}
|
|
],
|
|
"id": 2002,
|
|
"name": "VariableDeclaration",
|
|
"src": "8340:14:2"
|
|
}
|
|
],
|
|
"id": 2003,
|
|
"name": "ParameterList",
|
|
"src": "8322:33:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 2004,
|
|
"name": "ParameterList",
|
|
"src": "8365:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
|
|
"typeString": "literal_string \"ERC20: mint to the zero address\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 2005,
|
|
"name": "Identifier",
|
|
"src": "8375:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2000,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2006,
|
|
"name": "Identifier",
|
|
"src": "8383:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 2007,
|
|
"name": "ElementaryTypeName",
|
|
"src": "8394:7:2"
|
|
}
|
|
],
|
|
"id": 2008,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "8394:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 2009,
|
|
"name": "Literal",
|
|
"src": "8402:1:2"
|
|
}
|
|
],
|
|
"id": 2010,
|
|
"name": "FunctionCall",
|
|
"src": "8394:10:2"
|
|
}
|
|
],
|
|
"id": 2011,
|
|
"name": "BinaryOperation",
|
|
"src": "8383:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: mint to the zero address\"",
|
|
"value": "ERC20: mint to the zero address"
|
|
},
|
|
"id": 2012,
|
|
"name": "Literal",
|
|
"src": "8406:33:2"
|
|
}
|
|
],
|
|
"id": 2013,
|
|
"name": "FunctionCall",
|
|
"src": "8375:65:2"
|
|
}
|
|
],
|
|
"id": 2014,
|
|
"name": "ExpressionStatement",
|
|
"src": "8375:65:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1550,
|
|
"type": "uint256",
|
|
"value": "_totalSupply"
|
|
},
|
|
"id": 2015,
|
|
"name": "Identifier",
|
|
"src": "8451:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "add",
|
|
"referencedDeclaration": 2332,
|
|
"type": "function (uint256,uint256) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1550,
|
|
"type": "uint256",
|
|
"value": "_totalSupply"
|
|
},
|
|
"id": 2016,
|
|
"name": "Identifier",
|
|
"src": "8466:12:2"
|
|
}
|
|
],
|
|
"id": 2017,
|
|
"name": "MemberAccess",
|
|
"src": "8466:16:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2002,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2018,
|
|
"name": "Identifier",
|
|
"src": "8483:6:2"
|
|
}
|
|
],
|
|
"id": 2019,
|
|
"name": "FunctionCall",
|
|
"src": "8466:24:2"
|
|
}
|
|
],
|
|
"id": 2020,
|
|
"name": "Assignment",
|
|
"src": "8451:39:2"
|
|
}
|
|
],
|
|
"id": 2021,
|
|
"name": "ExpressionStatement",
|
|
"src": "8451:39:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 2022,
|
|
"name": "Identifier",
|
|
"src": "8500:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2000,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2023,
|
|
"name": "Identifier",
|
|
"src": "8510:7:2"
|
|
}
|
|
],
|
|
"id": 2024,
|
|
"name": "IndexAccess",
|
|
"src": "8500:18:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "add",
|
|
"referencedDeclaration": 2332,
|
|
"type": "function (uint256,uint256) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 2025,
|
|
"name": "Identifier",
|
|
"src": "8521:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2000,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2026,
|
|
"name": "Identifier",
|
|
"src": "8531:7:2"
|
|
}
|
|
],
|
|
"id": 2027,
|
|
"name": "IndexAccess",
|
|
"src": "8521:18:2"
|
|
}
|
|
],
|
|
"id": 2028,
|
|
"name": "MemberAccess",
|
|
"src": "8521:22:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2002,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2029,
|
|
"name": "Identifier",
|
|
"src": "8544:6:2"
|
|
}
|
|
],
|
|
"id": 2030,
|
|
"name": "FunctionCall",
|
|
"src": "8521:30:2"
|
|
}
|
|
],
|
|
"id": 2031,
|
|
"name": "Assignment",
|
|
"src": "8500:51:2"
|
|
}
|
|
],
|
|
"id": 2032,
|
|
"name": "ExpressionStatement",
|
|
"src": "8500:51:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3076,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "Transfer"
|
|
},
|
|
"id": 2033,
|
|
"name": "Identifier",
|
|
"src": "8566:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 2034,
|
|
"name": "ElementaryTypeName",
|
|
"src": "8575:7:2"
|
|
}
|
|
],
|
|
"id": 2035,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "8575:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 2036,
|
|
"name": "Literal",
|
|
"src": "8583:1:2"
|
|
}
|
|
],
|
|
"id": 2037,
|
|
"name": "FunctionCall",
|
|
"src": "8575:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2000,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2038,
|
|
"name": "Identifier",
|
|
"src": "8587:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2002,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2039,
|
|
"name": "Identifier",
|
|
"src": "8596:6:2"
|
|
}
|
|
],
|
|
"id": 2040,
|
|
"name": "FunctionCall",
|
|
"src": "8566:37:2"
|
|
}
|
|
],
|
|
"id": 2041,
|
|
"name": "EmitStatement",
|
|
"src": "8561:42:2"
|
|
}
|
|
],
|
|
"id": 2042,
|
|
"name": "Block",
|
|
"src": "8365:245:2"
|
|
}
|
|
],
|
|
"id": 2043,
|
|
"name": "FunctionDefinition",
|
|
"src": "8308:302:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "_burn",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
|
|
},
|
|
"id": 2044,
|
|
"name": "StructuredDocumentation",
|
|
"src": "8616:308:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "account",
|
|
"overrides": null,
|
|
"scope": 2090,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 2045,
|
|
"name": "ElementaryTypeName",
|
|
"src": "8944:7:2"
|
|
}
|
|
],
|
|
"id": 2046,
|
|
"name": "VariableDeclaration",
|
|
"src": "8944:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 2090,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 2047,
|
|
"name": "ElementaryTypeName",
|
|
"src": "8961:7:2"
|
|
}
|
|
],
|
|
"id": 2048,
|
|
"name": "VariableDeclaration",
|
|
"src": "8961:14:2"
|
|
}
|
|
],
|
|
"id": 2049,
|
|
"name": "ParameterList",
|
|
"src": "8943:33:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 2050,
|
|
"name": "ParameterList",
|
|
"src": "8986:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
|
|
"typeString": "literal_string \"ERC20: burn from the zero address\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 2051,
|
|
"name": "Identifier",
|
|
"src": "8996:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2046,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2052,
|
|
"name": "Identifier",
|
|
"src": "9004:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 2053,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9015:7:2"
|
|
}
|
|
],
|
|
"id": 2054,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "9015:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 2055,
|
|
"name": "Literal",
|
|
"src": "9023:1:2"
|
|
}
|
|
],
|
|
"id": 2056,
|
|
"name": "FunctionCall",
|
|
"src": "9015:10:2"
|
|
}
|
|
],
|
|
"id": 2057,
|
|
"name": "BinaryOperation",
|
|
"src": "9004:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: burn from the zero address\"",
|
|
"value": "ERC20: burn from the zero address"
|
|
},
|
|
"id": 2058,
|
|
"name": "Literal",
|
|
"src": "9027:35:2"
|
|
}
|
|
],
|
|
"id": 2059,
|
|
"name": "FunctionCall",
|
|
"src": "8996:67:2"
|
|
}
|
|
],
|
|
"id": 2060,
|
|
"name": "ExpressionStatement",
|
|
"src": "8996:67:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 2061,
|
|
"name": "Identifier",
|
|
"src": "9074:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2046,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2062,
|
|
"name": "Identifier",
|
|
"src": "9084:7:2"
|
|
}
|
|
],
|
|
"id": 2063,
|
|
"name": "IndexAccess",
|
|
"src": "9074:18:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
|
|
"typeString": "literal_string \"ERC20: burn amount exceeds balance\""
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sub",
|
|
"referencedDeclaration": 2456,
|
|
"type": "function (uint256,uint256,string memory) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1542,
|
|
"type": "mapping(address => uint256)",
|
|
"value": "_balances"
|
|
},
|
|
"id": 2064,
|
|
"name": "Identifier",
|
|
"src": "9095:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2046,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2065,
|
|
"name": "Identifier",
|
|
"src": "9105:7:2"
|
|
}
|
|
],
|
|
"id": 2066,
|
|
"name": "IndexAccess",
|
|
"src": "9095:18:2"
|
|
}
|
|
],
|
|
"id": 2067,
|
|
"name": "MemberAccess",
|
|
"src": "9095:22:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2048,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2068,
|
|
"name": "Identifier",
|
|
"src": "9118:6:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: burn amount exceeds balance\"",
|
|
"value": "ERC20: burn amount exceeds balance"
|
|
},
|
|
"id": 2069,
|
|
"name": "Literal",
|
|
"src": "9126:36:2"
|
|
}
|
|
],
|
|
"id": 2070,
|
|
"name": "FunctionCall",
|
|
"src": "9095:68:2"
|
|
}
|
|
],
|
|
"id": 2071,
|
|
"name": "Assignment",
|
|
"src": "9074:89:2"
|
|
}
|
|
],
|
|
"id": 2072,
|
|
"name": "ExpressionStatement",
|
|
"src": "9074:89:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1550,
|
|
"type": "uint256",
|
|
"value": "_totalSupply"
|
|
},
|
|
"id": 2073,
|
|
"name": "Identifier",
|
|
"src": "9173:12:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "uint256",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"member_name": "sub",
|
|
"referencedDeclaration": 2354,
|
|
"type": "function (uint256,uint256) pure returns (uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1550,
|
|
"type": "uint256",
|
|
"value": "_totalSupply"
|
|
},
|
|
"id": 2074,
|
|
"name": "Identifier",
|
|
"src": "9188:12:2"
|
|
}
|
|
],
|
|
"id": 2075,
|
|
"name": "MemberAccess",
|
|
"src": "9188:16:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2048,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2076,
|
|
"name": "Identifier",
|
|
"src": "9205:6:2"
|
|
}
|
|
],
|
|
"id": 2077,
|
|
"name": "FunctionCall",
|
|
"src": "9188:24:2"
|
|
}
|
|
],
|
|
"id": 2078,
|
|
"name": "Assignment",
|
|
"src": "9173:39:2"
|
|
}
|
|
],
|
|
"id": 2079,
|
|
"name": "ExpressionStatement",
|
|
"src": "9173:39:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3076,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "Transfer"
|
|
},
|
|
"id": 2080,
|
|
"name": "Identifier",
|
|
"src": "9227:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2046,
|
|
"type": "address",
|
|
"value": "account"
|
|
},
|
|
"id": 2081,
|
|
"name": "Identifier",
|
|
"src": "9236:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 2082,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9245:7:2"
|
|
}
|
|
],
|
|
"id": 2083,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "9245:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 2084,
|
|
"name": "Literal",
|
|
"src": "9253:1:2"
|
|
}
|
|
],
|
|
"id": 2085,
|
|
"name": "FunctionCall",
|
|
"src": "9245:10:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2048,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2086,
|
|
"name": "Identifier",
|
|
"src": "9257:6:2"
|
|
}
|
|
],
|
|
"id": 2087,
|
|
"name": "FunctionCall",
|
|
"src": "9227:37:2"
|
|
}
|
|
],
|
|
"id": 2088,
|
|
"name": "EmitStatement",
|
|
"src": "9222:42:2"
|
|
}
|
|
],
|
|
"id": 2089,
|
|
"name": "Block",
|
|
"src": "8986:285:2"
|
|
}
|
|
],
|
|
"id": 2090,
|
|
"name": "FunctionDefinition",
|
|
"src": "8929:342:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "_approve",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n This is internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
|
|
},
|
|
"id": 2091,
|
|
"name": "StructuredDocumentation",
|
|
"src": "9277:414:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "owner",
|
|
"overrides": null,
|
|
"scope": 2135,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 2092,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9714:7:2"
|
|
}
|
|
],
|
|
"id": 2093,
|
|
"name": "VariableDeclaration",
|
|
"src": "9714:13:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"overrides": null,
|
|
"scope": 2135,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "address",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"stateMutability": "nonpayable",
|
|
"type": "address"
|
|
},
|
|
"id": 2094,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9729:7:2"
|
|
}
|
|
],
|
|
"id": 2095,
|
|
"name": "VariableDeclaration",
|
|
"src": "9729:15:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"overrides": null,
|
|
"scope": 2135,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint256",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint256",
|
|
"type": "uint256"
|
|
},
|
|
"id": 2096,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9746:7:2"
|
|
}
|
|
],
|
|
"id": 2097,
|
|
"name": "VariableDeclaration",
|
|
"src": "9746:14:2"
|
|
}
|
|
],
|
|
"id": 2098,
|
|
"name": "ParameterList",
|
|
"src": "9713:48:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 2099,
|
|
"name": "ParameterList",
|
|
"src": "9771:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
|
|
"typeString": "literal_string \"ERC20: approve from the zero address\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 2100,
|
|
"name": "Identifier",
|
|
"src": "9781:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2093,
|
|
"type": "address",
|
|
"value": "owner"
|
|
},
|
|
"id": 2101,
|
|
"name": "Identifier",
|
|
"src": "9789:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 2102,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9798:7:2"
|
|
}
|
|
],
|
|
"id": 2103,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "9798:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 2104,
|
|
"name": "Literal",
|
|
"src": "9806:1:2"
|
|
}
|
|
],
|
|
"id": 2105,
|
|
"name": "FunctionCall",
|
|
"src": "9798:10:2"
|
|
}
|
|
],
|
|
"id": 2106,
|
|
"name": "BinaryOperation",
|
|
"src": "9789:19:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: approve from the zero address\"",
|
|
"value": "ERC20: approve from the zero address"
|
|
},
|
|
"id": 2107,
|
|
"name": "Literal",
|
|
"src": "9810:38:2"
|
|
}
|
|
],
|
|
"id": 2108,
|
|
"name": "FunctionCall",
|
|
"src": "9781:68:2"
|
|
}
|
|
],
|
|
"id": 2109,
|
|
"name": "ExpressionStatement",
|
|
"src": "9781:68:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
|
|
"typeString": "literal_string \"ERC20: approve to the zero address\""
|
|
}
|
|
],
|
|
"overloadedDeclarations": [-18, -18],
|
|
"referencedDeclaration": -18,
|
|
"type": "function (bool,string memory) pure",
|
|
"value": "require"
|
|
},
|
|
"id": 2110,
|
|
"name": "Identifier",
|
|
"src": "9859:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "!=",
|
|
"type": "bool"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2095,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 2111,
|
|
"name": "Identifier",
|
|
"src": "9867:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "address payable",
|
|
"type_conversion": true
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
}
|
|
],
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"type": "type(address)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "address",
|
|
"type": null
|
|
},
|
|
"id": 2112,
|
|
"name": "ElementaryTypeName",
|
|
"src": "9878:7:2"
|
|
}
|
|
],
|
|
"id": 2113,
|
|
"name": "ElementaryTypeNameExpression",
|
|
"src": "9878:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "30",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "number",
|
|
"type": "int_const 0",
|
|
"value": "0"
|
|
},
|
|
"id": 2114,
|
|
"name": "Literal",
|
|
"src": "9886:1:2"
|
|
}
|
|
],
|
|
"id": 2115,
|
|
"name": "FunctionCall",
|
|
"src": "9878:10:2"
|
|
}
|
|
],
|
|
"id": 2116,
|
|
"name": "BinaryOperation",
|
|
"src": "9867:21:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"hexvalue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"subdenomination": null,
|
|
"token": "string",
|
|
"type": "literal_string \"ERC20: approve to the zero address\"",
|
|
"value": "ERC20: approve to the zero address"
|
|
},
|
|
"id": 2117,
|
|
"name": "Literal",
|
|
"src": "9890:36:2"
|
|
}
|
|
],
|
|
"id": 2118,
|
|
"name": "FunctionCall",
|
|
"src": "9859:68:2"
|
|
}
|
|
],
|
|
"id": 2119,
|
|
"name": "ExpressionStatement",
|
|
"src": "9859:68:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"type": "uint256"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"type": "mapping(address => uint256)"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1548,
|
|
"type": "mapping(address => mapping(address => uint256))",
|
|
"value": "_allowances"
|
|
},
|
|
"id": 2120,
|
|
"name": "Identifier",
|
|
"src": "9938:11:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2093,
|
|
"type": "address",
|
|
"value": "owner"
|
|
},
|
|
"id": 2121,
|
|
"name": "Identifier",
|
|
"src": "9950:5:2"
|
|
}
|
|
],
|
|
"id": 2123,
|
|
"name": "IndexAccess",
|
|
"src": "9938:18:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2095,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 2122,
|
|
"name": "Identifier",
|
|
"src": "9957:7:2"
|
|
}
|
|
],
|
|
"id": 2124,
|
|
"name": "IndexAccess",
|
|
"src": "9938:27:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2097,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2125,
|
|
"name": "Identifier",
|
|
"src": "9968:6:2"
|
|
}
|
|
],
|
|
"id": 2126,
|
|
"name": "Assignment",
|
|
"src": "9938:36:2"
|
|
}
|
|
],
|
|
"id": 2127,
|
|
"name": "ExpressionStatement",
|
|
"src": "9938:36:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"isStructConstructorCall": false,
|
|
"lValueRequested": false,
|
|
"names": [null],
|
|
"tryCall": false,
|
|
"type": "tuple()",
|
|
"type_conversion": false
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 3085,
|
|
"type": "function (address,address,uint256)",
|
|
"value": "Approval"
|
|
},
|
|
"id": 2128,
|
|
"name": "Identifier",
|
|
"src": "9989:8:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2093,
|
|
"type": "address",
|
|
"value": "owner"
|
|
},
|
|
"id": 2129,
|
|
"name": "Identifier",
|
|
"src": "9998:5:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2095,
|
|
"type": "address",
|
|
"value": "spender"
|
|
},
|
|
"id": 2130,
|
|
"name": "Identifier",
|
|
"src": "10005:7:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2097,
|
|
"type": "uint256",
|
|
"value": "amount"
|
|
},
|
|
"id": 2131,
|
|
"name": "Identifier",
|
|
"src": "10014:6:2"
|
|
}
|
|
],
|
|
"id": 2132,
|
|
"name": "FunctionCall",
|
|
"src": "9989:32:2"
|
|
}
|
|
],
|
|
"id": 2133,
|
|
"name": "EmitStatement",
|
|
"src": "9984:37:2"
|
|
}
|
|
],
|
|
"id": 2134,
|
|
"name": "Block",
|
|
"src": "9771:257:2"
|
|
}
|
|
],
|
|
"id": 2135,
|
|
"name": "FunctionDefinition",
|
|
"src": "9696:332:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"implemented": true,
|
|
"isConstructor": false,
|
|
"kind": "function",
|
|
"modifiers": [null],
|
|
"name": "_setupDecimals",
|
|
"overrides": null,
|
|
"scope": 2147,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
|
|
},
|
|
"id": 2136,
|
|
"name": "StructuredDocumentation",
|
|
"src": "10034:312:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"constant": false,
|
|
"mutability": "mutable",
|
|
"name": "decimals_",
|
|
"overrides": null,
|
|
"scope": 2146,
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"type": "uint8",
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"name": "uint8",
|
|
"type": "uint8"
|
|
},
|
|
"id": 2137,
|
|
"name": "ElementaryTypeName",
|
|
"src": "10375:5:2"
|
|
}
|
|
],
|
|
"id": 2138,
|
|
"name": "VariableDeclaration",
|
|
"src": "10375:15:2"
|
|
}
|
|
],
|
|
"id": 2139,
|
|
"name": "ParameterList",
|
|
"src": "10374:17:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"parameters": [null]
|
|
},
|
|
"children": [],
|
|
"id": 2140,
|
|
"name": "ParameterList",
|
|
"src": "10401:0:2"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"operator": "=",
|
|
"type": "uint8"
|
|
},
|
|
"children": [
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 1555,
|
|
"type": "uint8",
|
|
"value": "_decimals"
|
|
},
|
|
"id": 2141,
|
|
"name": "Identifier",
|
|
"src": "10411:9:2"
|
|
},
|
|
{
|
|
"attributes": {
|
|
"argumentTypes": null,
|
|
"overloadedDeclarations": [null],
|
|
"referencedDeclaration": 2138,
|
|
"type": "uint8",
|
|
"value": "decimals_"
|
|
},
|
|
"id": 2142,
|
|
"name": "Identifier",
|
|
"src": "10423:9:2"
|
|
}
|
|
],
|
|
"id": 2143,
|
|
"name": "Assignment",
|
|
"src": "10411:21:2"
|
|
}
|
|
],
|
|
"id": 2144,
|
|
"name": "ExpressionStatement",
|
|
"src": "10411:21:2"
|
|
}
|
|
],
|
|
"id": 2145,
|
|
"name": "Block",
|
|
"src": "10401:38:2"
|
|
}
|
|
],
|
|
"id": 2146,
|
|
"name": "FunctionDefinition",
|
|
"src": "10351:88:2"
|
|
}
|
|
],
|
|
"id": 2147,
|
|
"name": "ContractDefinition",
|
|
"src": "304:10137:2"
|
|
}
|
|
],
|
|
"id": 2148,
|
|
"name": "SourceUnit",
|
|
"src": "67:10375:2"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.6.12+commit.27d51765.Emscripten.clang"
|
|
},
|
|
"networks": {},
|
|
"schemaVersion": "3.3.4",
|
|
"updatedAt": "2021-04-12T21:53:29.906Z",
|
|
"devdoc": {
|
|
"kind": "dev",
|
|
"methods": {
|
|
"allowance(address,address)": {
|
|
"details": "See {IERC20-allowance}."
|
|
},
|
|
"approve(address,uint256)": {
|
|
"details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."
|
|
},
|
|
"balanceOf(address)": {
|
|
"details": "See {IERC20-balanceOf}."
|
|
},
|
|
"decimals()": {
|
|
"details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
|
|
},
|
|
"decreaseAllowance(address,uint256)": {
|
|
"details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
|
|
},
|
|
"increaseAllowance(address,uint256)": {
|
|
"details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
|
|
},
|
|
"name()": {
|
|
"details": "Returns the name of the token."
|
|
},
|
|
"symbol()": {
|
|
"details": "Returns the symbol of the token, usually a shorter version of the name."
|
|
},
|
|
"totalSupply()": {
|
|
"details": "See {IERC20-totalSupply}."
|
|
},
|
|
"transfer(address,uint256)": {
|
|
"details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
|
|
},
|
|
"transferFrom(address,address,uint256)": {
|
|
"details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
|
|
}
|
|
},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
}
|