Created
December 3, 2019 12:02
-
-
Save Ramarti/f606bd1b545accd814285bfc1359435f to your computer and use it in GitHub Desktop.
MockStableCoin.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"contractName": "MockStableCoin", | |
"abi": [ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "chainId_", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
}, | |
{ | |
"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" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "DOMAIN_SEPARATOR", | |
"outputs": [ | |
{ | |
"internalType": "bytes32", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "EIP712Name", | |
"outputs": [ | |
{ | |
"internalType": "string", | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "PERMIT_TYPEHASH", | |
"outputs": [ | |
{ | |
"internalType": "bytes32", | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "decimals", | |
"outputs": [ | |
{ | |
"internalType": "uint8", | |
"name": "", | |
"type": "uint8" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "name", | |
"outputs": [ | |
{ | |
"internalType": "string", | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "", | |
"type": "address" | |
} | |
], | |
"name": "nonces", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "symbol", | |
"outputs": [ | |
{ | |
"internalType": "string", | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "version", | |
"outputs": [ | |
{ | |
"internalType": "string", | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "totalSupply", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "account", | |
"type": "address" | |
} | |
], | |
"name": "balanceOf", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "recipient", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amount", | |
"type": "uint256" | |
} | |
], | |
"name": "transfer", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "owner", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "spender", | |
"type": "address" | |
} | |
], | |
"name": "allowance", | |
"outputs": [ | |
{ | |
"internalType": "uint256", | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "spender", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "amount", | |
"type": "uint256" | |
} | |
], | |
"name": "approve", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"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" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "spender", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "addedValue", | |
"type": "uint256" | |
} | |
], | |
"name": "increaseAllowance", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "spender", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "subtractedValue", | |
"type": "uint256" | |
} | |
], | |
"name": "decreaseAllowance", | |
"outputs": [ | |
{ | |
"internalType": "bool", | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "holder", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", | |
"name": "spender", | |
"type": "address" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "nonce", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "uint256", | |
"name": "expiry", | |
"type": "uint256" | |
}, | |
{ | |
"internalType": "bool", | |
"name": "allowed", | |
"type": "bool" | |
}, | |
{ | |
"internalType": "uint8", | |
"name": "v", | |
"type": "uint8" | |
}, | |
{ | |
"internalType": "bytes32", | |
"name": "r", | |
"type": "bytes32" | |
}, | |
{ | |
"internalType": "bytes32", | |
"name": "s", | |
"type": "bytes32" | |
} | |
], | |
"name": "permit", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
} | |
], | |
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EIP712Name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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. * 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`.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/raul/Development/gitrepos/EthicHub/platform-contracts/contracts/test/MockStableCoin.sol\":\"MockStableCoin\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/raul/Development/gitrepos/EthicHub/platform-contracts/contracts/test/MockStableCoin.sol\":{\"keccak256\":\"0x49d7ea0b980cb995a6e7f179824c6fb4561696f24158a7ea4ff2a1f4c3b2e9dd\",\"urls\":[\"bzz-raw://2de9dfe7d3568930875032420e5fa640ac8360251fccfd08c6824b93c43fcc83\",\"dweb:/ipfs/QmfNZ5mxNUvZ5ph9ot42bDutECgow1FfgVNKcZJnekdcBS\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0x4a3a810b7ebe742e897e1fd428b3eeed2196d3acea58eaf9c566ed10d545d2ed\",\"urls\":[\"bzz-raw://28d03f328e19e4099d5013de0649afaeaabac1a614e130767ab1cb4aca9775b6\",\"dweb:/ipfs/Qmb9iW7yNuYehB2NfhRMs9TakqbLVQhBhmGMkaDZ5g1Eb4\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", | |
"bytecode": "0x60806040523480156200001157600080fd5b50604051620012da380380620012da833981810160405260208110156200003757600080fd5b5051604080518082018252600a81527f537461626c65436f696e0000000000000000000000000000000000000000000060208281019182528351808501909452600384527f5354430000000000000000000000000000000000000000000000000000000000908401528151919291601291620000b79160009190620003ba565b508151620000cd906001906020850190620003ba565b506002805460ff191660ff9290921691909117905550620000fd9050306b204fce5e3e250261100000006200021f565b6200011d336a52b7d2dcc80cd2e40000006001600160e01b036200021f16565b604051806052620012888239604080519182900360520182208282018252600a83527f537461626c65436f696e0000000000000000000000000000000000000000000060209384015281518083018352600181527f3100000000000000000000000000000000000000000000000000000000000000908401528151808401919091527f89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c090940190528251920191909120600655506200045f565b6001600160a01b0382166200029557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620002b1816005546200033e60201b62000c821790919060201c565b6005556001600160a01b038216600090815260036020908152604090912054620002e691839062000c826200033e821b17901c565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620003b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003fd57805160ff19168380011785556200042d565b828001600101855582156200042d579182015b828111156200042d57825182559160200191906001019062000410565b506200043b9291506200043f565b5090565b6200045c91905b808211156200043b576000815560010162000446565b90565b610e19806200046f6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806339509351116100a25780638fcbaf0c116100715780638fcbaf0c146102d357806395d89b411461032f578063a457c2d714610337578063a9059cbb14610363578063dd62ed3e1461038f5761010b565b8063395093511461025357806354fd4d501461027f57806370a08231146102875780637ecebe00146102ad5761010b565b80632fff5f0b116100de5780632fff5f0b1461021d57806330adf81f14610225578063313ce5671461022d5780633644e5151461024b5761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103bd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610453565b604080519115158252519081900360200190f35b6101d5610469565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b0381358116916020810135909116906040013561046f565b6101186104de565b6101d5610504565b610235610528565b6040805160ff9092168252519081900360200190f35b6101d5610531565b6101b96004803603604081101561026957600080fd5b506001600160a01b038135169060200135610537565b610118610573565b6101d56004803603602081101561029d57600080fd5b50356001600160a01b0316610590565b6101d5600480360360208110156102c357600080fd5b50356001600160a01b03166105ab565b61032d60048036036101008110156102ea57600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608081013515159060ff60a0820135169060c08101359060e001356105bd565b005b6101186108b4565b6101b96004803603604081101561034d57600080fd5b506001600160a01b038135169060200135610914565b6101b96004803603604081101561037957600080fd5b506001600160a01b038135169060200135610969565b6101d5600480360360408110156103a557600080fd5b506001600160a01b0381358116916020013516610976565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104495780601f1061041e57610100808354040283529160200191610449565b820191906000526020600020905b81548152906001019060200180831161042c57829003601f168201915b5050505050905090565b60006104603384846109a1565b50600192915050565b60055490565b600061047c848484610a8d565b6104d484336104cf85604051806060016040528060288152602001610d4f602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919063ffffffff610beb16565b6109a1565b5060019392505050565b6040518060400160405280600a81526020016929ba30b13632a1b7b4b760b11b81525081565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1690565b60065481565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916104609185906104cf908663ffffffff610c8216565b604051806040016040528060018152602001603160f81b81525081565b6001600160a01b031660009081526003602052604090205490565b60076020526000908152604090205481565b600654604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020808301919091526001600160a01b03808d16838501819052908c166060840152608083018b905260a083018a905288151560c0808501919091528451808503909101815260e08401855280519083012061190160f01b610100850152610102840195909552610122808401959095528351808403909501855261014290920190925282519290910191909120906106bd576040805162461bcd60e51b815260206004820152601560248201527404461692f696e76616c69642d616464726573732d3605c1b604482015290519081900360640190fd5b6040805160008152602080820180845284905260ff8716828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610714573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610778576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b8515806107855750854211155b6107cb576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b6001600160a01b03891660009081526007602052604090208054600181019091558714610833576040805162461bcd60e51b81526020600482015260116024820152704461692f696e76616c69642d6e6f6e636560781b604482015290519081900360640190fd5b600085610841576000610845565b6000195b6001600160a01b03808c166000818152600460209081526040808320948f168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a350505050505050505050565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104495780601f1061041e57610100808354040283529160200191610449565b600061046033846104cf85604051806060016040528060258152602001610dc0602591393360009081526004602090815260408083206001600160a01b038d168452909152902054919063ffffffff610beb16565b6000610460338484610a8d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6001600160a01b0383166109e65760405162461bcd60e51b8152600401808060200182810382526024815260200180610d9c6024913960400191505060405180910390fd5b6001600160a01b038216610a2b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d076022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ad25760405162461bcd60e51b8152600401808060200182810382526025815260200180610d776025913960400191505060405180910390fd5b6001600160a01b038216610b175760405162461bcd60e51b8152600401808060200182810382526023815260200180610ce46023913960400191505060405180910390fd5b610b5a81604051806060016040528060268152602001610d29602691396001600160a01b038616600090815260036020526040902054919063ffffffff610beb16565b6001600160a01b038085166000908152600360205260408082209390935590841681522054610b8f908263ffffffff610c8216565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610c7a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c3f578181015183820152602001610c27565b50505050905090810190601f168015610c6c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610cdc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158200a2057fdfb075286089f8538f8e34d66aa4171867b37fee77a5594de13a1053f64736f6c634300050d0032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", | |
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806339509351116100a25780638fcbaf0c116100715780638fcbaf0c146102d357806395d89b411461032f578063a457c2d714610337578063a9059cbb14610363578063dd62ed3e1461038f5761010b565b8063395093511461025357806354fd4d501461027f57806370a08231146102875780637ecebe00146102ad5761010b565b80632fff5f0b116100de5780632fff5f0b1461021d57806330adf81f14610225578063313ce5671461022d5780633644e5151461024b5761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103bd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610453565b604080519115158252519081900360200190f35b6101d5610469565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b0381358116916020810135909116906040013561046f565b6101186104de565b6101d5610504565b610235610528565b6040805160ff9092168252519081900360200190f35b6101d5610531565b6101b96004803603604081101561026957600080fd5b506001600160a01b038135169060200135610537565b610118610573565b6101d56004803603602081101561029d57600080fd5b50356001600160a01b0316610590565b6101d5600480360360208110156102c357600080fd5b50356001600160a01b03166105ab565b61032d60048036036101008110156102ea57600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608081013515159060ff60a0820135169060c08101359060e001356105bd565b005b6101186108b4565b6101b96004803603604081101561034d57600080fd5b506001600160a01b038135169060200135610914565b6101b96004803603604081101561037957600080fd5b506001600160a01b038135169060200135610969565b6101d5600480360360408110156103a557600080fd5b506001600160a01b0381358116916020013516610976565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104495780601f1061041e57610100808354040283529160200191610449565b820191906000526020600020905b81548152906001019060200180831161042c57829003601f168201915b5050505050905090565b60006104603384846109a1565b50600192915050565b60055490565b600061047c848484610a8d565b6104d484336104cf85604051806060016040528060288152602001610d4f602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919063ffffffff610beb16565b6109a1565b5060019392505050565b6040518060400160405280600a81526020016929ba30b13632a1b7b4b760b11b81525081565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1690565b60065481565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916104609185906104cf908663ffffffff610c8216565b604051806040016040528060018152602001603160f81b81525081565b6001600160a01b031660009081526003602052604090205490565b60076020526000908152604090205481565b600654604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020808301919091526001600160a01b03808d16838501819052908c166060840152608083018b905260a083018a905288151560c0808501919091528451808503909101815260e08401855280519083012061190160f01b610100850152610102840195909552610122808401959095528351808403909501855261014290920190925282519290910191909120906106bd576040805162461bcd60e51b815260206004820152601560248201527404461692f696e76616c69642d616464726573732d3605c1b604482015290519081900360640190fd5b6040805160008152602080820180845284905260ff8716828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610714573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610778576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b8515806107855750854211155b6107cb576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b6001600160a01b03891660009081526007602052604090208054600181019091558714610833576040805162461bcd60e51b81526020600482015260116024820152704461692f696e76616c69642d6e6f6e636560781b604482015290519081900360640190fd5b600085610841576000610845565b6000195b6001600160a01b03808c166000818152600460209081526040808320948f168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a350505050505050505050565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104495780601f1061041e57610100808354040283529160200191610449565b600061046033846104cf85604051806060016040528060258152602001610dc0602591393360009081526004602090815260408083206001600160a01b038d168452909152902054919063ffffffff610beb16565b6000610460338484610a8d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6001600160a01b0383166109e65760405162461bcd60e51b8152600401808060200182810382526024815260200180610d9c6024913960400191505060405180910390fd5b6001600160a01b038216610a2b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610d076022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ad25760405162461bcd60e51b8152600401808060200182810382526025815260200180610d776025913960400191505060405180910390fd5b6001600160a01b038216610b175760405162461bcd60e51b8152600401808060200182810382526023815260200180610ce46023913960400191505060405180910390fd5b610b5a81604051806060016040528060268152602001610d29602691396001600160a01b038616600090815260036020526040902054919063ffffffff610beb16565b6001600160a01b038085166000908152600360205260408082209390935590841681522054610b8f908263ffffffff610c8216565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610c7a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c3f578181015183820152602001610c27565b50505050905090810190601f168015610c6c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610cdc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158200a2057fdfb075286089f8538f8e34d66aa4171867b37fee77a5594de13a1053f64736f6c634300050d0032", | |
"sourceMap": "142:8887:13:-;;;922:550;8:9:-1;5:2;;;30:1;27;20:12;5:2;922:550:13;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;922:550:13;416:163:30;;;;;;;;;;;;922:550:13;416:163:30;;;;;;;;;;;;;;;;;;;;;;504:12;;416:163;;;995:2:13;;504:12:30;;-1:-1:-1;;416:163:30;504:12;:::i;:::-;-1:-1:-1;526:16:30;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:30;:20;;-1:-1:-1;;552:20:30;;;;;;;;;;;;-1:-1:-1;1016:28:13;;-1:-1:-1;1030:4:13;1037:6;1016:5;:28::i;:::-;1084:25;1090:10;1102:6;-1:-1:-1;;;;;1084:5:13;:25;:::i;:::-;1209:95;;;;;;;;;;;;;;;;;;1338:10;;;;;;;;;;;;;;1384:7;;;;;;;;;;;;;;;1181:283;;;;;;;;;1322:28;1181:283;;;;1368:25;1181:283;;;;;;;;;;;1445:4;1181:283;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1181:283:13;;;;;;1171:294;;;;;;;;1152:16;:313;-1:-1:-1;142:8887:13;;5912:302;-1:-1:-1;;;;;5987:21:13;;5979:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6070:24;6087:6;6070:12;;:16;;;;;;:24;;;;:::i;:::-;6055:12;:39;-1:-1:-1;;;;;6125:18:13;;;;;;:9;:18;;;;;;;;;:30;;6148:6;;6125:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;6104:18:13;;;;;;:9;:18;;;;;;;;:51;;;;6170:37;;;;;;;6104:18;;;;6170:37;;;;;;;;;;5912:302;;:::o;834:176:28:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:28:o;142:8887:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;142:8887:13;;;-1:-1:-1;142:8887:13;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", | |
"deployedSourceMap": "142:8887:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;142:8887:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;644:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2464:147:13;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2464:147:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1525:89;;;:::i;:::-;;;;;;;;;;;;;;;;3069:296;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3069:296:13;;;;;;;;;;;;;;;;;:::i;519:49::-;;;:::i;718:108::-;;;:::i;1472:81:30:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;414:31:13;;;:::i;3760:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3760:203:13;;;;;;;;:::i;832:38::-;;;:::i;1672:108::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1672:108:13;-1:-1:-1;;;;;1672:108:13;;:::i;876:39::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;876:39:13;-1:-1:-1;;;;;876:39:13;;:::i;8023:1004::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;8023:1004:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;838:85:30;;;:::i;4450:254:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4450:254:13;;;;;;;;:::i;1983:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1983:153:13;;;;;;;;:::i;2194:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2194:132:13;;;;;;;;;;:::i;644:81:30:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2464:147:13:-;2530:4;2546:37;2555:10;2567:7;2576:6;2546:8;:37::i;:::-;-1:-1:-1;2600:4:13;2464:147;;;;:::o;1525:89::-;1595:12;;1525:89;:::o;3069:296::-;3158:4;3174:36;3184:6;3192:9;3203:6;3174:9;:36::i;:::-;3220:117;3229:6;3237:10;3249:87;3285:6;3249:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3249:19:13;;;;;;:11;:19;;;;;;;;3269:10;3249:31;;;;;;;;;:87;;:35;:87;:::i;:::-;3220:8;:117::i;:::-;-1:-1:-1;3354:4:13;3069:296;;;;;:::o;519:49::-;;;;;;;;;;;;;;-1:-1:-1;;;519:49:13;;;;:::o;718:108::-;760:66;718:108;:::o;1472:81:30:-;1537:9;;;;1472:81;:::o;414:31:13:-;;;;:::o;3760:203::-;3865:10;3840:4;3886:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3886:32:13;;;;;;;;;;3840:4;;3856:79;;3877:7;;3886:48;;3923:10;3886:48;:36;:48;:::i;832:38::-;;;;;;;;;;;;;;-1:-1:-1;;;832:38:13;;;;:::o;1672:108::-;-1:-1:-1;;;;;1755:18:13;1729:7;1755:18;;;:9;:18;;;;;;;1672:108::o;876:39::-;;;;;;;;;;;;;:::o;8023:1004::-;8288:16;;8332:268;;;760:66;8332:268;;;;;;;;-1:-1:-1;;;;;8332:268:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8332:268:13;;;;;8322:279;;;;;;-1:-1:-1;;;8226:385:13;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8226:385:13;;;;;;;8216:396;;;;;;;;;;;8623:54;;;;;-1:-1:-1;;;8623:54:13;;;;;;;;;;;;-1:-1:-1;;;8623:54:13;;;;;;;;;;;;;;;8705:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8705:26:13;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8705:26:13;;;;;;;;-1:-1:-1;;;;;8695:36:13;:6;-1:-1:-1;;;;;8695:36:13;;8687:67;;;;;-1:-1:-1;;;8687:67:13;;;;;;;;;;;;-1:-1:-1;;;8687:67:13;;;;;;;;;;;;;;;8772:11;;;:28;;;8794:6;8787:3;:13;;8772:28;8764:59;;;;;-1:-1:-1;;;8764:59:13;;;;;;;;;;;;-1:-1:-1;;;8764:59:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;8850:14:13;;;;;;:6;:14;;;;;:16;;;;;;;;8841:25;;8833:55;;;;;-1:-1:-1;;;8833:55:13;;;;;;;;;;;;-1:-1:-1;;;8833:55:13;;;;;;;;;;;;;;;8898:8;8909:7;:22;;8930:1;8909:22;;;-1:-1:-1;;8909:22:13;-1:-1:-1;;;;;8941:19:13;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:34;;;8990:30;;;;;;;8898:33;;-1:-1:-1;8941:28:13;;:19;;8990:30;;;;;;;;;8023:1004;;;;;;;;;;:::o;838:85:30:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;4450:254:13;4535:4;4551:125;4560:10;4572:7;4581:94;4618:15;4581:94;;;;;;;;;;;;;;;;;4593:10;4581:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4581:32:13;;;;;;;;;;;:94;;:36;:94;:::i;1983:153::-;2052:4;2068:40;2078:10;2090:9;2101:6;2068:9;:40::i;2194:132::-;-1:-1:-1;;;;;2292:18:13;;;2266:7;2292:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2194:132::o;7286:332::-;-1:-1:-1;;;;;7379:19:13;;7371:68;;;;-1:-1:-1;;;7371:68:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7457:21:13;;7449:68;;;;-1:-1:-1;;;7449:68:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7528:18:13;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7579:32;;;;;;;;;;;;;;;;;7286:332;;;:::o;5178:464::-;-1:-1:-1;;;;;5275:20:13;;5267:70;;;;-1:-1:-1;;;5267:70:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5355:23:13;;5347:71;;;;-1:-1:-1;;;5347:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5449;5471:6;5449:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5449:17:13;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;5429:17:13;;;;;;;:9;:17;;;;;;:91;;;;5553:20;;;;;;;:32;;5578:6;5553:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5530:20:13;;;;;;;:9;:20;;;;;;;;;:55;;;;5600:35;;;;;;;5530:20;;5600:35;;;;;;;;;;;;;5178:464;;;:::o;1732:187:28:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1837:29:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:28;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:28:o", | |
"source": "pragma solidity 0.5.13;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\ncontract MockStableCoin is ERC20Detailed {\n using SafeMath for uint256;\n mapping (address => uint256) private _balances;\n mapping (address => mapping (address => uint256)) private _allowances;\n uint256 private _totalSupply;\n\n // --- EIP712 niceties ---\n bytes32 public DOMAIN_SEPARATOR;\n //For compatibility with DAI codebase, OZ name does not compile\n string public constant EIP712Name = 'StableCoin';\n // bytes32 public constant PERMIT_TYPEHASH = keccak256(\"Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\");\n bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;\n string public constant version = \"1\";\n mapping (address => uint) public nonces;\n\n constructor(uint256 chainId_)\n ERC20Detailed('StableCoin', 'STC', 18) public {\n _mint(address(this), 10**28); // 10.000.000.000 StableCoins\n _mint(msg.sender, 10**26); // 1.000.000.000.000 StableCoins\n DOMAIN_SEPARATOR = keccak256(abi.encode(\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(EIP712Name)),\n keccak256(bytes(version)),\n chainId_,\n address(this)\n ));\n }\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view 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 returns (bool) {\n _transfer(msg.sender, recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view 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 returns (bool) {\n _approve(msg.sender, 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 returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, msg.sender, _allowances[sender][msg.sender].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(msg.sender, spender, _allowances[msg.sender][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(msg.sender, spender, _allowances[msg.sender][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 Destroys `amount` tokens from `account`.`amount` is then deducted\n * from the caller's allowance.\n *\n * See {_burn} and {_approve}.\n */\n function _burnFrom(address account, uint256 amount) internal {\n _burn(account, amount);\n _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount, \"ERC20: burn amount exceeds allowance\"));\n }\n\n\n function permit(address holder, address spender, uint256 nonce, uint256 expiry,\n bool allowed, uint8 v, bytes32 r, bytes32 s) external\n {\n bytes32 digest = keccak256(abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(abi.encode(PERMIT_TYPEHASH,\n holder,\n spender,\n nonce,\n expiry,\n allowed))\n ));\n\n require(holder != address(0), \"Dai/invalid-address-0\");\n require(holder == ecrecover(digest, v, r, s), \"Dai/invalid-permit\");\n require(expiry == 0 || now <= expiry, \"Dai/permit-expired\");\n require(nonce == nonces[holder]++, \"Dai/invalid-nonce\");\n uint wad = allowed ? uint(-1) : 0;\n _allowances[holder][spender] = wad;\n emit Approval(holder, spender, wad);\n }\n}", | |
"sourcePath": "/Users/raul/Development/gitrepos/EthicHub/platform-contracts/contracts/test/MockStableCoin.sol", | |
"ast": { | |
"absolutePath": "/Users/raul/Development/gitrepos/EthicHub/platform-contracts/contracts/test/MockStableCoin.sol", | |
"exportedSymbols": { | |
"MockStableCoin": [ | |
4446 | |
] | |
}, | |
"id": 4447, | |
"nodeType": "SourceUnit", | |
"nodes": [ | |
{ | |
"id": 3871, | |
"literals": [ | |
"solidity", | |
"0.5", | |
".13" | |
], | |
"nodeType": "PragmaDirective", | |
"src": "0:23:13" | |
}, | |
{ | |
"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol", | |
"file": "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol", | |
"id": 3872, | |
"nodeType": "ImportDirective", | |
"scope": 4447, | |
"sourceUnit": 6825, | |
"src": "25:63:13", | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", | |
"file": "@openzeppelin/contracts/math/SafeMath.sol", | |
"id": 3873, | |
"nodeType": "ImportDirective", | |
"scope": 4447, | |
"sourceUnit": 6653, | |
"src": "89:51:13", | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"baseContracts": [ | |
{ | |
"arguments": null, | |
"baseName": { | |
"contractScope": null, | |
"id": 3874, | |
"name": "ERC20Detailed", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 6824, | |
"src": "169:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_ERC20Detailed_$6824", | |
"typeString": "contract ERC20Detailed" | |
} | |
}, | |
"id": 3875, | |
"nodeType": "InheritanceSpecifier", | |
"src": "169:13:13" | |
} | |
], | |
"contractDependencies": [ | |
6824, | |
6893 | |
], | |
"contractKind": "contract", | |
"documentation": null, | |
"fullyImplemented": true, | |
"id": 4446, | |
"linearizedBaseContracts": [ | |
4446, | |
6824, | |
6893 | |
], | |
"name": "MockStableCoin", | |
"nodeType": "ContractDefinition", | |
"nodes": [ | |
{ | |
"id": 3878, | |
"libraryName": { | |
"contractScope": null, | |
"id": 3876, | |
"name": "SafeMath", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 6652, | |
"src": "195:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_SafeMath_$6652", | |
"typeString": "library SafeMath" | |
} | |
}, | |
"nodeType": "UsingForDirective", | |
"src": "189:27:13", | |
"typeName": { | |
"id": 3877, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "208:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
{ | |
"constant": false, | |
"id": 3882, | |
"name": "_balances", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "221:46:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"typeName": { | |
"id": 3881, | |
"keyType": { | |
"id": 3879, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "230:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "221:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueType": { | |
"id": 3880, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "241:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 3888, | |
"name": "_allowances", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "273:69:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
}, | |
"typeName": { | |
"id": 3887, | |
"keyType": { | |
"id": 3883, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "282:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "273:49:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
}, | |
"valueType": { | |
"id": 3886, | |
"keyType": { | |
"id": 3884, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "302:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "293:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueType": { | |
"id": 3885, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "313:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 3890, | |
"name": "_totalSupply", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "348:28:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3889, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "348:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 3892, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "414:31:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 3891, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "414:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "public" | |
}, | |
{ | |
"constant": true, | |
"id": 3895, | |
"name": "EIP712Name", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "519:49:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string" | |
}, | |
"typeName": { | |
"id": 3893, | |
"name": "string", | |
"nodeType": "ElementaryTypeName", | |
"src": "519:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_storage_ptr", | |
"typeString": "string" | |
} | |
}, | |
"value": { | |
"argumentTypes": null, | |
"hexValue": "537461626c65436f696e", | |
"id": 3894, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "556:12:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", | |
"typeString": "literal_string \"StableCoin\"" | |
}, | |
"value": "StableCoin" | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"constant": true, | |
"id": 3898, | |
"name": "PERMIT_TYPEHASH", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "718:108:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 3896, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "718:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": { | |
"argumentTypes": null, | |
"hexValue": "307865613261613061316265313161303765643836643735356339333436376634663832333632623435323337316431626139346431373135313233353131616362", | |
"id": 3897, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "760:66:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_105916522785188513640362517802612480037966763957092682311465172263008277174987_by_1", | |
"typeString": "int_const 1059...(70 digits omitted)...4987" | |
}, | |
"value": "0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb" | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"constant": true, | |
"id": 3901, | |
"name": "version", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "832:38:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string" | |
}, | |
"typeName": { | |
"id": 3899, | |
"name": "string", | |
"nodeType": "ElementaryTypeName", | |
"src": "832:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_storage_ptr", | |
"typeString": "string" | |
} | |
}, | |
"value": { | |
"argumentTypes": null, | |
"hexValue": "31", | |
"id": 3900, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "867:3:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", | |
"typeString": "literal_string \"1\"" | |
}, | |
"value": "1" | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"constant": false, | |
"id": 3905, | |
"name": "nonces", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "876:39:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"typeName": { | |
"id": 3904, | |
"keyType": { | |
"id": 3902, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "885:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "876:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueType": { | |
"id": 3903, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "896:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3957, | |
"nodeType": "Block", | |
"src": "1006:466:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3917, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 7045, | |
"src": "1030:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
], | |
"id": 3916, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1022:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 3918, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1022:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1", | |
"typeString": "int_const 10000000000000000000000000000" | |
}, | |
"id": 3921, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"hexValue": "3130", | |
"id": 3919, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1037:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_10_by_1", | |
"typeString": "int_const 10" | |
}, | |
"value": "10" | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "**", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "3238", | |
"id": 3920, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1041:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_28_by_1", | |
"typeString": "int_const 28" | |
}, | |
"value": "28" | |
}, | |
"src": "1037:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1", | |
"typeString": "int_const 10000000000000000000000000000" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1", | |
"typeString": "int_const 10000000000000000000000000000" | |
} | |
], | |
"id": 3915, | |
"name": "_mint", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4223, | |
"src": "1016:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 3922, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1016:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 3923, | |
"nodeType": "ExpressionStatement", | |
"src": "1016:28:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 3925, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "1090:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 3926, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1090:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_rational_100000000000000000000000000_by_1", | |
"typeString": "int_const 100000000000000000000000000" | |
}, | |
"id": 3929, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"hexValue": "3130", | |
"id": 3927, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1102:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_10_by_1", | |
"typeString": "int_const 10" | |
}, | |
"value": "10" | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "**", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "3236", | |
"id": 3928, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1106:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_26_by_1", | |
"typeString": "int_const 26" | |
}, | |
"value": "26" | |
}, | |
"src": "1102:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_100000000000000000000000000_by_1", | |
"typeString": "int_const 100000000000000000000000000" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
}, | |
{ | |
"typeIdentifier": "t_rational_100000000000000000000000000_by_1", | |
"typeString": "int_const 100000000000000000000000000" | |
} | |
], | |
"id": 3924, | |
"name": "_mint", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4223, | |
"src": "1084:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 3930, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1084:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 3931, | |
"nodeType": "ExpressionStatement", | |
"src": "1084:25:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 3955, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 3932, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3892, | |
"src": "1152:16:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", | |
"id": 3937, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1219:84:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", | |
"typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" | |
}, | |
"value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", | |
"typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" | |
} | |
], | |
"id": 3936, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1209:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3938, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1209:95:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3941, | |
"name": "EIP712Name", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3895, | |
"src": "1338:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
], | |
"id": 3940, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1332:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", | |
"typeString": "type(bytes storage pointer)" | |
}, | |
"typeName": "bytes" | |
}, | |
"id": 3942, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1332:17:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 3939, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1322:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3943, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1322:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3946, | |
"name": "version", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3901, | |
"src": "1384:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
], | |
"id": 3945, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1378:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", | |
"typeString": "type(bytes storage pointer)" | |
}, | |
"typeName": "bytes" | |
}, | |
"id": 3947, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1378:14:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 3944, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1368:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3948, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1368:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 3949, | |
"name": "chainId_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3907, | |
"src": "1411:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3951, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 7045, | |
"src": "1445:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
], | |
"id": 3950, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1437:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 3952, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1437:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 3934, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6958, | |
"src": "1181:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 3935, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberName": "encode", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1181:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 3953, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1181:283:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 3933, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1171:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3954, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1171:294:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"src": "1152:313:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"id": 3956, | |
"nodeType": "ExpressionStatement", | |
"src": "1152:313:13" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 3958, | |
"implemented": true, | |
"kind": "constructor", | |
"modifiers": [ | |
{ | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "537461626c65436f696e", | |
"id": 3910, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "974:12:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", | |
"typeString": "literal_string \"StableCoin\"" | |
}, | |
"value": "StableCoin" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "535443", | |
"id": 3911, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "988:5:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_3f42082bbc5d551c10665ffb41d260539d3901690b4a2ef6b8d6d113f8a07414", | |
"typeString": "literal_string \"STC\"" | |
}, | |
"value": "STC" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "3138", | |
"id": 3912, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "995:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_18_by_1", | |
"typeString": "int_const 18" | |
}, | |
"value": "18" | |
} | |
], | |
"id": 3913, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 3909, | |
"name": "ERC20Detailed", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6824, | |
"src": "960:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$6824_$", | |
"typeString": "type(contract ERC20Detailed)" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "960:38:13" | |
} | |
], | |
"name": "", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3908, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3907, | |
"name": "chainId_", | |
"nodeType": "VariableDeclaration", | |
"scope": 3958, | |
"src": "934:16:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3906, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "934:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "933:18:13" | |
}, | |
"returnParameters": { | |
"id": 3914, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1006:0:13" | |
}, | |
"scope": 4446, | |
"src": "922:550:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3965, | |
"nodeType": "Block", | |
"src": "1578:36:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 3963, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "1595:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 3962, | |
"id": 3964, | |
"nodeType": "Return", | |
"src": "1588:19:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-totalSupply}.", | |
"id": 3966, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "totalSupply", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3959, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1545:2:13" | |
}, | |
"returnParameters": { | |
"id": 3962, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3961, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 3966, | |
"src": "1569:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3960, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1569:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1568:9:13" | |
}, | |
"scope": 4446, | |
"src": "1525:89:13", | |
"stateMutability": "view", | |
"superFunction": 6831, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3977, | |
"nodeType": "Block", | |
"src": "1738:42:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 3973, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "1755:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 3975, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 3974, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3968, | |
"src": "1765:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "1755:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 3972, | |
"id": 3976, | |
"nodeType": "Return", | |
"src": "1748:25:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-balanceOf}.", | |
"id": 3978, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "balanceOf", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3969, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3968, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 3978, | |
"src": "1691:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 3967, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1691:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1690:17:13" | |
}, | |
"returnParameters": { | |
"id": 3972, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3971, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 3978, | |
"src": "1729:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3970, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1729:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1728:9:13" | |
}, | |
"scope": 4446, | |
"src": "1672:108:13", | |
"stateMutability": "view", | |
"superFunction": 6838, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3996, | |
"nodeType": "Block", | |
"src": "2058:78:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 3988, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "2078:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 3989, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "2078:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 3990, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3980, | |
"src": "2090:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 3991, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3982, | |
"src": "2101:6:13", | |
"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": 3987, | |
"name": "_transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4180, | |
"src": "2068:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 3992, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2068:40:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 3993, | |
"nodeType": "ExpressionStatement", | |
"src": "2068:40:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 3994, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2125:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 3986, | |
"id": 3995, | |
"nodeType": "Return", | |
"src": "2118:11:13" | |
} | |
] | |
}, | |
"documentation": "@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": 3997, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "transfer", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3983, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3980, | |
"name": "recipient", | |
"nodeType": "VariableDeclaration", | |
"scope": 3997, | |
"src": "2001:17:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 3979, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2001:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 3982, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 3997, | |
"src": "2020:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3981, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2020:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2000:35:13" | |
}, | |
"returnParameters": { | |
"id": 3986, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3985, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 3997, | |
"src": "2052:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 3984, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2052:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2051:6:13" | |
}, | |
"scope": 4446, | |
"src": "1983:153:13", | |
"stateMutability": "nonpayable", | |
"superFunction": 6847, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4012, | |
"nodeType": "Block", | |
"src": "2275:51:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4006, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "2292:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4008, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4007, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3999, | |
"src": "2304:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "2292:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4010, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4009, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4001, | |
"src": "2311:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "2292:27:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 4005, | |
"id": 4011, | |
"nodeType": "Return", | |
"src": "2285:34:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-allowance}.", | |
"id": 4013, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "allowance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4002, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3999, | |
"name": "owner", | |
"nodeType": "VariableDeclaration", | |
"scope": 4013, | |
"src": "2213:13:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 3998, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2213:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4001, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4013, | |
"src": "2228:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4000, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2228:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2212:32:13" | |
}, | |
"returnParameters": { | |
"id": 4005, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4004, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4013, | |
"src": "2266:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4003, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2266:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2265:9:13" | |
}, | |
"scope": 4446, | |
"src": "2194:132:13", | |
"stateMutability": "view", | |
"superFunction": 6856, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4031, | |
"nodeType": "Block", | |
"src": "2536:75:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4023, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "2555:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4024, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "2555:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4025, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4015, | |
"src": "2567:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4026, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4017, | |
"src": "2576:6:13", | |
"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": 4022, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "2546:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4027, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2546:37:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4028, | |
"nodeType": "ExpressionStatement", | |
"src": "2546:37:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4029, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2600:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4021, | |
"id": 4030, | |
"nodeType": "Return", | |
"src": "2593:11:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.", | |
"id": 4032, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "approve", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4018, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4015, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4032, | |
"src": "2481:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4014, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2481:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4017, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4032, | |
"src": "2498:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4016, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2498:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2480:33:13" | |
}, | |
"returnParameters": { | |
"id": 4021, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4020, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4032, | |
"src": "2530:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4019, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2530:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2529:6:13" | |
}, | |
"scope": 4446, | |
"src": "2464:147:13", | |
"stateMutability": "nonpayable", | |
"superFunction": 6865, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4067, | |
"nodeType": "Block", | |
"src": "3164:201:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4044, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4034, | |
"src": "3184:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4045, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4036, | |
"src": "3192:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4046, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4038, | |
"src": "3203:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4043, | |
"name": "_transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4180, | |
"src": "3174:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4047, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3174:36:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4048, | |
"nodeType": "ExpressionStatement", | |
"src": "3174:36:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4050, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4034, | |
"src": "3229:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4051, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3237:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4052, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3237:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4060, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4038, | |
"src": "3285:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", | |
"id": 4061, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3293:42:13", | |
"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": 4053, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "3249:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4055, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4054, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4034, | |
"src": "3261:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3249:19:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4058, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4056, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3269:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4057, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3269:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3249:31:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4059, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "3249:35:13", | |
"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": 4062, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3249:87:13", | |
"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": 4049, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "3220:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4063, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3220:117:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4064, | |
"nodeType": "ExpressionStatement", | |
"src": "3220:117:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4065, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3354:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4042, | |
"id": 4066, | |
"nodeType": "Return", | |
"src": "3347:11:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired 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": 4068, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "transferFrom", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4039, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4034, | |
"name": "sender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3091:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4033, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3091:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4036, | |
"name": "recipient", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3107:17:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4035, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3107:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4038, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3126:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4037, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "3126:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3090:51:13" | |
}, | |
"returnParameters": { | |
"id": 4042, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4041, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3158:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4040, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "3158:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3157:6:13" | |
}, | |
"scope": 4446, | |
"src": "3069:296:13", | |
"stateMutability": "nonpayable", | |
"superFunction": 6876, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4094, | |
"nodeType": "Block", | |
"src": "3846:117:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4078, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3865:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4079, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3865:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4080, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4070, | |
"src": "3877:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4088, | |
"name": "addedValue", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4072, | |
"src": "3923:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4081, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "3886:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4084, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4082, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3898:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4083, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3898:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3886:23:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4086, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4085, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4070, | |
"src": "3910:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3886:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4087, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "3886:36:13", | |
"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": 4089, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3886:48:13", | |
"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": 4077, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "3856:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4090, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3856:79:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4091, | |
"nodeType": "ExpressionStatement", | |
"src": "3856:79:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4092, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3952:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4076, | |
"id": 4093, | |
"nodeType": "Return", | |
"src": "3945:11:13" | |
} | |
] | |
}, | |
"documentation": "@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\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.", | |
"id": 4095, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "increaseAllowance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4073, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4070, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4095, | |
"src": "3787:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4069, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3787:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4072, | |
"name": "addedValue", | |
"nodeType": "VariableDeclaration", | |
"scope": 4095, | |
"src": "3804:18:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4071, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "3804:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3786:37:13" | |
}, | |
"returnParameters": { | |
"id": 4076, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4075, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4095, | |
"src": "3840:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4074, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "3840:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3839:6:13" | |
}, | |
"scope": 4446, | |
"src": "3760:203:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4122, | |
"nodeType": "Block", | |
"src": "4541:163:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4105, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "4560:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4106, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "4560:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4107, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4097, | |
"src": "4572:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4115, | |
"name": "subtractedValue", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4099, | |
"src": "4618:15:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", | |
"id": 4116, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4635:39:13", | |
"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": 4108, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "4581:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4111, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4109, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "4593:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4110, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "4593:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4581:23:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4113, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4112, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4097, | |
"src": "4605:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4581:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4114, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "4581:36:13", | |
"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": 4117, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4581:94:13", | |
"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": 4104, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "4551:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4118, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4551:125:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4119, | |
"nodeType": "ExpressionStatement", | |
"src": "4551:125:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4120, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4693:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4103, | |
"id": 4121, | |
"nodeType": "Return", | |
"src": "4686:11:13" | |
} | |
] | |
}, | |
"documentation": "@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\nproblems 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": 4123, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "decreaseAllowance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4100, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4097, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4123, | |
"src": "4477:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4096, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "4477:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4099, | |
"name": "subtractedValue", | |
"nodeType": "VariableDeclaration", | |
"scope": 4123, | |
"src": "4494:23:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4098, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "4494:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4476:42:13" | |
}, | |
"returnParameters": { | |
"id": 4103, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4102, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4123, | |
"src": "4535:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4101, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "4535:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4534:6:13" | |
}, | |
"scope": 4446, | |
"src": "4450:254:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4179, | |
"nodeType": "Block", | |
"src": "5257:385:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4137, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4133, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5275:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4135, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5293:1:13", | |
"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": 4134, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5285:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4136, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5285:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "5275:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", | |
"id": 4138, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5297:39:13", | |
"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": 4132, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "5267:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4139, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5267:70:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4140, | |
"nodeType": "ExpressionStatement", | |
"src": "5267:70:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4146, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4142, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5355:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4144, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5376:1:13", | |
"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": 4143, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5368:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4145, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5368:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "5355:23:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", | |
"id": 4147, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5380:37:13", | |
"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": 4141, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "5347:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4148, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5347:71:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4149, | |
"nodeType": "ExpressionStatement", | |
"src": "5347:71:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4160, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4150, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5429:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4152, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4151, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5439:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "5429:17:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4157, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4129, | |
"src": "5471:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", | |
"id": 4158, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5479:40:13", | |
"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": 4153, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5449:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4155, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4154, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5459:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5449:17:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4156, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "5449:21:13", | |
"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": 4159, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5449:71:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5429:91:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4161, | |
"nodeType": "ExpressionStatement", | |
"src": "5429:91:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4171, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4162, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5530:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4164, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4163, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5540:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "5530:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4169, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4129, | |
"src": "5578:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4165, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5553:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4167, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4166, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5563:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5553:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4168, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "5553:24:13", | |
"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": 4170, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5553:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5530:55:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4172, | |
"nodeType": "ExpressionStatement", | |
"src": "5530:55:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4174, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5609:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4175, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5617:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4176, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4129, | |
"src": "5628:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4173, | |
"name": "Transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6884, | |
"src": "5600:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4177, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5600:35:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4178, | |
"nodeType": "EmitStatement", | |
"src": "5595:40:13" | |
} | |
] | |
}, | |
"documentation": "@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.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": 4180, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_transfer", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4130, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4125, | |
"name": "sender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4180, | |
"src": "5197:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4124, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5197:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4127, | |
"name": "recipient", | |
"nodeType": "VariableDeclaration", | |
"scope": 4180, | |
"src": "5213:17:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4126, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5213:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4129, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4180, | |
"src": "5232:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4128, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5232:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5196:51:13" | |
}, | |
"returnParameters": { | |
"id": 4131, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5257:0:13" | |
}, | |
"scope": 4446, | |
"src": "5178:464:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4222, | |
"nodeType": "Block", | |
"src": "5969:245:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4192, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4188, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "5987:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4190, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6006:1:13", | |
"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": 4189, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5998:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4191, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5998:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "5987:21:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", | |
"id": 4193, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6010:33:13", | |
"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": 4187, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "5979:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4194, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5979:65:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4195, | |
"nodeType": "ExpressionStatement", | |
"src": "5979:65:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4201, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 4196, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6055:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4199, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4184, | |
"src": "6087:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4197, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6070:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4198, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "6070:16:13", | |
"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": 4200, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6070:24:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6055:39:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4202, | |
"nodeType": "ExpressionStatement", | |
"src": "6055:39:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4212, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4203, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6104:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4205, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4204, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "6114:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "6104:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4210, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4184, | |
"src": "6148:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4206, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6125:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4208, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4207, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "6135:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6125:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4209, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "6125:22:13", | |
"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": 4211, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6125:30:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6104:51:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4213, | |
"nodeType": "ExpressionStatement", | |
"src": "6104:51:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4216, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6187:1:13", | |
"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": 4215, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6179:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4217, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6179:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4218, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "6191:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4219, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4184, | |
"src": "6200:6:13", | |
"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": 4214, | |
"name": "Transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6884, | |
"src": "6170:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4220, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6170:37:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4221, | |
"nodeType": "EmitStatement", | |
"src": "6165:42:13" | |
} | |
] | |
}, | |
"documentation": "@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address.", | |
"id": 4223, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_mint", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4185, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4182, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 4223, | |
"src": "5927:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4181, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5927:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4184, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4223, | |
"src": "5944:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4183, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5944:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5926:33:13" | |
}, | |
"returnParameters": { | |
"id": 4186, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5969:0:13" | |
}, | |
"scope": 4446, | |
"src": "5912:302:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4266, | |
"nodeType": "Block", | |
"src": "6590:285:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4235, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4231, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6608:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4233, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6627:1:13", | |
"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": 4232, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6619:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4234, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6619:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "6608:21:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", | |
"id": 4236, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6631:35:13", | |
"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": 4230, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "6600:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4237, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6600:67:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4238, | |
"nodeType": "ExpressionStatement", | |
"src": "6600:67:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4249, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4239, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6678:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4241, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4240, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6688:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "6678:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4246, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4227, | |
"src": "6722:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", | |
"id": 4247, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6730:36:13", | |
"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": 4242, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6699:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4244, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4243, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6709:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6699:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4245, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "6699:22:13", | |
"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": 4248, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6699:68:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6678:89:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4250, | |
"nodeType": "ExpressionStatement", | |
"src": "6678:89:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4256, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 4251, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6777:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4254, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4227, | |
"src": "6809:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4252, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6792:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4253, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6508, | |
"src": "6792:16:13", | |
"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": 4255, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6792:24:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6777:39:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4257, | |
"nodeType": "ExpressionStatement", | |
"src": "6777:39:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4259, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6840:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4261, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6857:1:13", | |
"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": 4260, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6849:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4262, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6849:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4263, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4227, | |
"src": "6861:6:13", | |
"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": 4258, | |
"name": "Transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6884, | |
"src": "6831:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4264, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6831:37:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4265, | |
"nodeType": "EmitStatement", | |
"src": "6826:42:13" | |
} | |
] | |
}, | |
"documentation": "@dev Destroys `amount` tokens from `account`, reducing the\ntotal 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": 4267, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_burn", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4228, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4225, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 4267, | |
"src": "6548:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4224, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6548:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4227, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4267, | |
"src": "6565:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4226, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "6565:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "6547:33:13" | |
}, | |
"returnParameters": { | |
"id": 4229, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "6590:0:13" | |
}, | |
"scope": 4446, | |
"src": "6533:342:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4308, | |
"nodeType": "Block", | |
"src": "7361:257:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4281, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4277, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4269, | |
"src": "7379:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4279, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7396:1:13", | |
"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": 4278, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "7388:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4280, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7388:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "7379:19:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", | |
"id": 4282, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7400:38:13", | |
"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": 4276, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "7371:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4283, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7371:68:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4284, | |
"nodeType": "ExpressionStatement", | |
"src": "7371:68:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4290, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4286, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4271, | |
"src": "7457:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4288, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7476:1:13", | |
"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": 4287, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "7468:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4289, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7468:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "7457:21:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", | |
"id": 4291, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7480:36:13", | |
"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": 4285, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "7449:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4292, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7449:68:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4293, | |
"nodeType": "ExpressionStatement", | |
"src": "7449:68:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4300, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4294, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "7528:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4297, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4295, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4269, | |
"src": "7540:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7528:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4298, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4296, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4271, | |
"src": "7547:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "7528:27:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 4299, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4273, | |
"src": "7558:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7528:36:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4301, | |
"nodeType": "ExpressionStatement", | |
"src": "7528:36:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4303, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4269, | |
"src": "7588:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4304, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4271, | |
"src": "7595:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4305, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4273, | |
"src": "7604:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4302, | |
"name": "Approval", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6892, | |
"src": "7579:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4306, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7579:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4307, | |
"nodeType": "EmitStatement", | |
"src": "7574:37:13" | |
} | |
] | |
}, | |
"documentation": "@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\ne.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": 4309, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_approve", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4274, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4269, | |
"name": "owner", | |
"nodeType": "VariableDeclaration", | |
"scope": 4309, | |
"src": "7304:13:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4268, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7304:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4271, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4309, | |
"src": "7319:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4270, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7319:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4273, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4309, | |
"src": "7336:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4272, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7336:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "7303:48:13" | |
}, | |
"returnParameters": { | |
"id": 4275, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "7361:0:13" | |
}, | |
"scope": 4446, | |
"src": "7286:332:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4337, | |
"nodeType": "Block", | |
"src": "7852:164:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4317, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4311, | |
"src": "7868:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4318, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4313, | |
"src": "7877:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4316, | |
"name": "_burn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4267, | |
"src": "7862:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 4319, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7862:22:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4320, | |
"nodeType": "ExpressionStatement", | |
"src": "7862:22:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4322, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4311, | |
"src": "7903:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4323, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "7912:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4324, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "7912:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4332, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4313, | |
"src": "7961:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365", | |
"id": 4333, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7969:38:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db", | |
"typeString": "literal_string \"ERC20: burn amount exceeds allowance\"" | |
}, | |
"value": "ERC20: burn amount exceeds allowance" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db", | |
"typeString": "literal_string \"ERC20: burn amount exceeds allowance\"" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4325, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "7924:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4327, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4326, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4311, | |
"src": "7936:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7924:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4330, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4328, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "7945:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4329, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "7945:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7924:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4331, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "7924:36:13", | |
"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": 4334, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7924:84:13", | |
"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": 4321, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "7894:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4335, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7894:115:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4336, | |
"nodeType": "ExpressionStatement", | |
"src": "7894:115:13" | |
} | |
] | |
}, | |
"documentation": "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.", | |
"id": 4338, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_burnFrom", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4314, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4311, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 4338, | |
"src": "7810:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4310, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7810:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4313, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4338, | |
"src": "7827:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4312, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7827:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "7809:33:13" | |
}, | |
"returnParameters": { | |
"id": 4315, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "7852:0:13" | |
}, | |
"scope": 4446, | |
"src": "7791:225:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4444, | |
"nodeType": "Block", | |
"src": "8189:838:13", | |
"statements": [ | |
{ | |
"assignments": [ | |
4358 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 4358, | |
"name": "digest", | |
"nodeType": "VariableDeclaration", | |
"scope": 4444, | |
"src": "8199:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 4357, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "8199:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 4377, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "1901", | |
"id": 4362, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8260:10:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", | |
"typeString": "literal_string \"\u0019\u0001\"" | |
}, | |
"value": "\u0019\u0001" | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4363, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3892, | |
"src": "8288:16:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4367, | |
"name": "PERMIT_TYPEHASH", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3898, | |
"src": "8343:15:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4368, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8400:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4369, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4342, | |
"src": "8448:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4370, | |
"name": "nonce", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4344, | |
"src": "8497:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4371, | |
"name": "expiry", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4346, | |
"src": "8544:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4372, | |
"name": "allowed", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4348, | |
"src": "8592:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4365, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6958, | |
"src": "8332:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 4366, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberName": "encode", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8332:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 4373, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8332:268:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 4364, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "8322:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 4374, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8322:279:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", | |
"typeString": "literal_string \"\u0019\u0001\"" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4360, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6958, | |
"src": "8226:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 4361, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberName": "encodePacked", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8226:16:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 4375, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8226:385:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 4359, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "8216:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 4376, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8216:396:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8199:413:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4383, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4379, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8631:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4381, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8649:1:13", | |
"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": 4380, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "8641:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4382, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8641:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "8631:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f696e76616c69642d616464726573732d30", | |
"id": 4384, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8653:23:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_6cade1c7c8c98b461ad80d1311ad396c59d17ffb04ff0f7a511ced53dd9ceec1", | |
"typeString": "literal_string \"Dai/invalid-address-0\"" | |
}, | |
"value": "Dai/invalid-address-0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_6cade1c7c8c98b461ad80d1311ad396c59d17ffb04ff0f7a511ced53dd9ceec1", | |
"typeString": "literal_string \"Dai/invalid-address-0\"" | |
} | |
], | |
"id": 4378, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8623:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4385, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8623:54:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4386, | |
"nodeType": "ExpressionStatement", | |
"src": "8623:54:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4395, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4388, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8695:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4390, | |
"name": "digest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4358, | |
"src": "8715:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4391, | |
"name": "v", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4350, | |
"src": "8723:1:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4392, | |
"name": "r", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4352, | |
"src": "8726:1:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4393, | |
"name": "s", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4354, | |
"src": "8729:1:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
], | |
"id": 4389, | |
"name": "ecrecover", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6963, | |
"src": "8705:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", | |
"typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" | |
} | |
}, | |
"id": 4394, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8705:26:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "8695:36:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f696e76616c69642d7065726d6974", | |
"id": 4396, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8733:20:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_e974ba7acb290ca076887e7ba12e7b1839924d20ca241ab20707d98be809b312", | |
"typeString": "literal_string \"Dai/invalid-permit\"" | |
}, | |
"value": "Dai/invalid-permit" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_e974ba7acb290ca076887e7ba12e7b1839924d20ca241ab20707d98be809b312", | |
"typeString": "literal_string \"Dai/invalid-permit\"" | |
} | |
], | |
"id": 4387, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8687:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4397, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8687:67:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4398, | |
"nodeType": "ExpressionStatement", | |
"src": "8687:67:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"id": 4406, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 4402, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4400, | |
"name": "expiry", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4346, | |
"src": "8772:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4401, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8782:1:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "8772:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "||", | |
"rightExpression": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 4405, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4403, | |
"name": "now", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6973, | |
"src": "8787:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 4404, | |
"name": "expiry", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4346, | |
"src": "8794:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8787:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"src": "8772:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f7065726d69742d65787069726564", | |
"id": 4407, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8802:20:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_22f5fc5d7aaf9b3e6dfc2273ed4394be56ea60a0b5067b49b7f63dc922b30c7a", | |
"typeString": "literal_string \"Dai/permit-expired\"" | |
}, | |
"value": "Dai/permit-expired" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_22f5fc5d7aaf9b3e6dfc2273ed4394be56ea60a0b5067b49b7f63dc922b30c7a", | |
"typeString": "literal_string \"Dai/permit-expired\"" | |
} | |
], | |
"id": 4399, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8764:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4408, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8764:59:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4409, | |
"nodeType": "ExpressionStatement", | |
"src": "8764:59:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 4416, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4411, | |
"name": "nonce", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4344, | |
"src": "8841:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 4415, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "++", | |
"prefix": false, | |
"src": "8850:16:13", | |
"subExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4412, | |
"name": "nonces", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3905, | |
"src": "8850:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4414, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4413, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8857:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "8850:14:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8841:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f696e76616c69642d6e6f6e6365", | |
"id": 4417, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8868:19:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_56fdb16ed5471260b4f6bf21cd668c7795fa94d1be81d33f14e5ceb3647b779b", | |
"typeString": "literal_string \"Dai/invalid-nonce\"" | |
}, | |
"value": "Dai/invalid-nonce" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_56fdb16ed5471260b4f6bf21cd668c7795fa94d1be81d33f14e5ceb3647b779b", | |
"typeString": "literal_string \"Dai/invalid-nonce\"" | |
} | |
], | |
"id": 4410, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8833:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4418, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8833:55:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4419, | |
"nodeType": "ExpressionStatement", | |
"src": "8833:55:13" | |
}, | |
{ | |
"assignments": [ | |
4421 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 4421, | |
"name": "wad", | |
"nodeType": "VariableDeclaration", | |
"scope": 4444, | |
"src": "8898:8:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4420, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8898:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 4429, | |
"initialValue": { | |
"argumentTypes": null, | |
"condition": { | |
"argumentTypes": null, | |
"id": 4422, | |
"name": "allowed", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4348, | |
"src": "8909:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4427, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8930:1:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"id": 4428, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "Conditional", | |
"src": "8909:22:13", | |
"trueExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4425, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "-", | |
"prefix": true, | |
"src": "8924:2:13", | |
"subExpression": { | |
"argumentTypes": null, | |
"hexValue": "31", | |
"id": 4424, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8925:1:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_1_by_1", | |
"typeString": "int_const 1" | |
}, | |
"value": "1" | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_minus_1_by_1", | |
"typeString": "int_const -1" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_minus_1_by_1", | |
"typeString": "int_const -1" | |
} | |
], | |
"id": 4423, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "8919:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_uint256_$", | |
"typeString": "type(uint256)" | |
}, | |
"typeName": "uint" | |
}, | |
"id": 4426, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8919:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8898:33:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4436, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4430, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "8941:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4433, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4431, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8953:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8941:19:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4434, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4432, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4342, | |
"src": "8961:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "8941:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 4435, | |
"name": "wad", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4421, | |
"src": "8972:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8941:34:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4437, | |
"nodeType": "ExpressionStatement", | |
"src": "8941:34:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4439, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8999:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4440, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4342, | |
"src": "9007:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4441, | |
"name": "wad", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4421, | |
"src": "9016:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4438, | |
"name": "Approval", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6892, | |
"src": "8990:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4442, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8990:30:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4443, | |
"nodeType": "EmitStatement", | |
"src": "8985:35:13" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 4445, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "permit", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4355, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4340, | |
"name": "holder", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8039:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4339, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "8039:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4342, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8055:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4341, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "8055:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4344, | |
"name": "nonce", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8072:13:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4343, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "8072:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4346, | |
"name": "expiry", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8087:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4345, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "8087:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4348, | |
"name": "allowed", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8127:12:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4347, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "8127:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4350, | |
"name": "v", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8141:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
}, | |
"typeName": { | |
"id": 4349, | |
"name": "uint8", | |
"nodeType": "ElementaryTypeName", | |
"src": "8141:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4352, | |
"name": "r", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8150:9:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 4351, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "8150:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4354, | |
"name": "s", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8161:9:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 4353, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "8161:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "8038:133:13" | |
}, | |
"returnParameters": { | |
"id": 4356, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "8189:0:13" | |
}, | |
"scope": 4446, | |
"src": "8023:1004:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
} | |
], | |
"scope": 4447, | |
"src": "142:8887:13" | |
} | |
], | |
"src": "0:9029:13" | |
}, | |
"legacyAST": { | |
"absolutePath": "/Users/raul/Development/gitrepos/EthicHub/platform-contracts/contracts/test/MockStableCoin.sol", | |
"exportedSymbols": { | |
"MockStableCoin": [ | |
4446 | |
] | |
}, | |
"id": 4447, | |
"nodeType": "SourceUnit", | |
"nodes": [ | |
{ | |
"id": 3871, | |
"literals": [ | |
"solidity", | |
"0.5", | |
".13" | |
], | |
"nodeType": "PragmaDirective", | |
"src": "0:23:13" | |
}, | |
{ | |
"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol", | |
"file": "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol", | |
"id": 3872, | |
"nodeType": "ImportDirective", | |
"scope": 4447, | |
"sourceUnit": 6825, | |
"src": "25:63:13", | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", | |
"file": "@openzeppelin/contracts/math/SafeMath.sol", | |
"id": 3873, | |
"nodeType": "ImportDirective", | |
"scope": 4447, | |
"sourceUnit": 6653, | |
"src": "89:51:13", | |
"symbolAliases": [], | |
"unitAlias": "" | |
}, | |
{ | |
"baseContracts": [ | |
{ | |
"arguments": null, | |
"baseName": { | |
"contractScope": null, | |
"id": 3874, | |
"name": "ERC20Detailed", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 6824, | |
"src": "169:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_ERC20Detailed_$6824", | |
"typeString": "contract ERC20Detailed" | |
} | |
}, | |
"id": 3875, | |
"nodeType": "InheritanceSpecifier", | |
"src": "169:13:13" | |
} | |
], | |
"contractDependencies": [ | |
6824, | |
6893 | |
], | |
"contractKind": "contract", | |
"documentation": null, | |
"fullyImplemented": true, | |
"id": 4446, | |
"linearizedBaseContracts": [ | |
4446, | |
6824, | |
6893 | |
], | |
"name": "MockStableCoin", | |
"nodeType": "ContractDefinition", | |
"nodes": [ | |
{ | |
"id": 3878, | |
"libraryName": { | |
"contractScope": null, | |
"id": 3876, | |
"name": "SafeMath", | |
"nodeType": "UserDefinedTypeName", | |
"referencedDeclaration": 6652, | |
"src": "195:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_SafeMath_$6652", | |
"typeString": "library SafeMath" | |
} | |
}, | |
"nodeType": "UsingForDirective", | |
"src": "189:27:13", | |
"typeName": { | |
"id": 3877, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "208:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
{ | |
"constant": false, | |
"id": 3882, | |
"name": "_balances", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "221:46:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"typeName": { | |
"id": 3881, | |
"keyType": { | |
"id": 3879, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "230:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "221:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueType": { | |
"id": 3880, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "241:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 3888, | |
"name": "_allowances", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "273:69:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
}, | |
"typeName": { | |
"id": 3887, | |
"keyType": { | |
"id": 3883, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "282:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "273:49:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
}, | |
"valueType": { | |
"id": 3886, | |
"keyType": { | |
"id": 3884, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "302:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "293:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueType": { | |
"id": 3885, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "313:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 3890, | |
"name": "_totalSupply", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "348:28:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3889, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "348:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "private" | |
}, | |
{ | |
"constant": false, | |
"id": 3892, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "414:31:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 3891, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "414:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "public" | |
}, | |
{ | |
"constant": true, | |
"id": 3895, | |
"name": "EIP712Name", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "519:49:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string" | |
}, | |
"typeName": { | |
"id": 3893, | |
"name": "string", | |
"nodeType": "ElementaryTypeName", | |
"src": "519:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_storage_ptr", | |
"typeString": "string" | |
} | |
}, | |
"value": { | |
"argumentTypes": null, | |
"hexValue": "537461626c65436f696e", | |
"id": 3894, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "556:12:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", | |
"typeString": "literal_string \"StableCoin\"" | |
}, | |
"value": "StableCoin" | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"constant": true, | |
"id": 3898, | |
"name": "PERMIT_TYPEHASH", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "718:108:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 3896, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "718:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": { | |
"argumentTypes": null, | |
"hexValue": "307865613261613061316265313161303765643836643735356339333436376634663832333632623435323337316431626139346431373135313233353131616362", | |
"id": 3897, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "760:66:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_105916522785188513640362517802612480037966763957092682311465172263008277174987_by_1", | |
"typeString": "int_const 1059...(70 digits omitted)...4987" | |
}, | |
"value": "0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb" | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"constant": true, | |
"id": 3901, | |
"name": "version", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "832:38:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string" | |
}, | |
"typeName": { | |
"id": 3899, | |
"name": "string", | |
"nodeType": "ElementaryTypeName", | |
"src": "832:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_storage_ptr", | |
"typeString": "string" | |
} | |
}, | |
"value": { | |
"argumentTypes": null, | |
"hexValue": "31", | |
"id": 3900, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "867:3:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", | |
"typeString": "literal_string \"1\"" | |
}, | |
"value": "1" | |
}, | |
"visibility": "public" | |
}, | |
{ | |
"constant": false, | |
"id": 3905, | |
"name": "nonces", | |
"nodeType": "VariableDeclaration", | |
"scope": 4446, | |
"src": "876:39:13", | |
"stateVariable": true, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"typeName": { | |
"id": 3904, | |
"keyType": { | |
"id": 3902, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "885:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "Mapping", | |
"src": "876:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
}, | |
"valueType": { | |
"id": 3903, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "896:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
}, | |
"value": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3957, | |
"nodeType": "Block", | |
"src": "1006:466:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3917, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 7045, | |
"src": "1030:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
], | |
"id": 3916, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1022:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 3918, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1022:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1", | |
"typeString": "int_const 10000000000000000000000000000" | |
}, | |
"id": 3921, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"hexValue": "3130", | |
"id": 3919, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1037:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_10_by_1", | |
"typeString": "int_const 10" | |
}, | |
"value": "10" | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "**", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "3238", | |
"id": 3920, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1041:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_28_by_1", | |
"typeString": "int_const 28" | |
}, | |
"value": "28" | |
}, | |
"src": "1037:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1", | |
"typeString": "int_const 10000000000000000000000000000" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1", | |
"typeString": "int_const 10000000000000000000000000000" | |
} | |
], | |
"id": 3915, | |
"name": "_mint", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4223, | |
"src": "1016:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 3922, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1016:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 3923, | |
"nodeType": "ExpressionStatement", | |
"src": "1016:28:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 3925, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "1090:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 3926, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1090:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_rational_100000000000000000000000000_by_1", | |
"typeString": "int_const 100000000000000000000000000" | |
}, | |
"id": 3929, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"hexValue": "3130", | |
"id": 3927, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1102:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_10_by_1", | |
"typeString": "int_const 10" | |
}, | |
"value": "10" | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "**", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "3236", | |
"id": 3928, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1106:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_26_by_1", | |
"typeString": "int_const 26" | |
}, | |
"value": "26" | |
}, | |
"src": "1102:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_100000000000000000000000000_by_1", | |
"typeString": "int_const 100000000000000000000000000" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
}, | |
{ | |
"typeIdentifier": "t_rational_100000000000000000000000000_by_1", | |
"typeString": "int_const 100000000000000000000000000" | |
} | |
], | |
"id": 3924, | |
"name": "_mint", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4223, | |
"src": "1084:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 3930, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1084:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 3931, | |
"nodeType": "ExpressionStatement", | |
"src": "1084:25:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 3955, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 3932, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3892, | |
"src": "1152:16:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", | |
"id": 3937, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "1219:84:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", | |
"typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" | |
}, | |
"value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", | |
"typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" | |
} | |
], | |
"id": 3936, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1209:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3938, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1209:95:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3941, | |
"name": "EIP712Name", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3895, | |
"src": "1338:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
], | |
"id": 3940, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1332:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", | |
"typeString": "type(bytes storage pointer)" | |
}, | |
"typeName": "bytes" | |
}, | |
"id": 3942, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1332:17:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 3939, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1322:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3943, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1322:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3946, | |
"name": "version", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3901, | |
"src": "1384:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_string_memory", | |
"typeString": "string memory" | |
} | |
], | |
"id": 3945, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1378:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", | |
"typeString": "type(bytes storage pointer)" | |
}, | |
"typeName": "bytes" | |
}, | |
"id": 3947, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1378:14:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 3944, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1368:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3948, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1368:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 3949, | |
"name": "chainId_", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3907, | |
"src": "1411:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 3951, | |
"name": "this", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 7045, | |
"src": "1445:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_contract$_MockStableCoin_$4446", | |
"typeString": "contract MockStableCoin" | |
} | |
], | |
"id": 3950, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "1437:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 3952, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1437:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 3934, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6958, | |
"src": "1181:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 3935, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberName": "encode", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "1181:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 3953, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1181:283:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 3933, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "1171:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 3954, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "1171:294:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"src": "1152:313:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"id": 3956, | |
"nodeType": "ExpressionStatement", | |
"src": "1152:313:13" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 3958, | |
"implemented": true, | |
"kind": "constructor", | |
"modifiers": [ | |
{ | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "537461626c65436f696e", | |
"id": 3910, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "974:12:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", | |
"typeString": "literal_string \"StableCoin\"" | |
}, | |
"value": "StableCoin" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "535443", | |
"id": 3911, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "988:5:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_3f42082bbc5d551c10665ffb41d260539d3901690b4a2ef6b8d6d113f8a07414", | |
"typeString": "literal_string \"STC\"" | |
}, | |
"value": "STC" | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "3138", | |
"id": 3912, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "995:2:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_18_by_1", | |
"typeString": "int_const 18" | |
}, | |
"value": "18" | |
} | |
], | |
"id": 3913, | |
"modifierName": { | |
"argumentTypes": null, | |
"id": 3909, | |
"name": "ERC20Detailed", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6824, | |
"src": "960:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$6824_$", | |
"typeString": "type(contract ERC20Detailed)" | |
} | |
}, | |
"nodeType": "ModifierInvocation", | |
"src": "960:38:13" | |
} | |
], | |
"name": "", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3908, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3907, | |
"name": "chainId_", | |
"nodeType": "VariableDeclaration", | |
"scope": 3958, | |
"src": "934:16:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3906, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "934:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "933:18:13" | |
}, | |
"returnParameters": { | |
"id": 3914, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1006:0:13" | |
}, | |
"scope": 4446, | |
"src": "922:550:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3965, | |
"nodeType": "Block", | |
"src": "1578:36:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 3963, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "1595:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 3962, | |
"id": 3964, | |
"nodeType": "Return", | |
"src": "1588:19:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-totalSupply}.", | |
"id": 3966, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "totalSupply", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3959, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "1545:2:13" | |
}, | |
"returnParameters": { | |
"id": 3962, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3961, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 3966, | |
"src": "1569:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3960, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1569:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1568:9:13" | |
}, | |
"scope": 4446, | |
"src": "1525:89:13", | |
"stateMutability": "view", | |
"superFunction": 6831, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3977, | |
"nodeType": "Block", | |
"src": "1738:42:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 3973, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "1755:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 3975, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 3974, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3968, | |
"src": "1765:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "1755:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 3972, | |
"id": 3976, | |
"nodeType": "Return", | |
"src": "1748:25:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-balanceOf}.", | |
"id": 3978, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "balanceOf", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3969, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3968, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 3978, | |
"src": "1691:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 3967, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "1691:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1690:17:13" | |
}, | |
"returnParameters": { | |
"id": 3972, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3971, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 3978, | |
"src": "1729:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3970, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "1729:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "1728:9:13" | |
}, | |
"scope": 4446, | |
"src": "1672:108:13", | |
"stateMutability": "view", | |
"superFunction": 6838, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 3996, | |
"nodeType": "Block", | |
"src": "2058:78:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 3988, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "2078:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 3989, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "2078:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 3990, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3980, | |
"src": "2090:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 3991, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3982, | |
"src": "2101:6:13", | |
"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": 3987, | |
"name": "_transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4180, | |
"src": "2068:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 3992, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2068:40:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 3993, | |
"nodeType": "ExpressionStatement", | |
"src": "2068:40:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 3994, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2125:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 3986, | |
"id": 3995, | |
"nodeType": "Return", | |
"src": "2118:11:13" | |
} | |
] | |
}, | |
"documentation": "@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": 3997, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "transfer", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 3983, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3980, | |
"name": "recipient", | |
"nodeType": "VariableDeclaration", | |
"scope": 3997, | |
"src": "2001:17:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 3979, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2001:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 3982, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 3997, | |
"src": "2020:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 3981, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2020:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2000:35:13" | |
}, | |
"returnParameters": { | |
"id": 3986, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3985, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 3997, | |
"src": "2052:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 3984, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2052:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2051:6:13" | |
}, | |
"scope": 4446, | |
"src": "1983:153:13", | |
"stateMutability": "nonpayable", | |
"superFunction": 6847, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4012, | |
"nodeType": "Block", | |
"src": "2275:51:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4006, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "2292:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4008, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4007, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3999, | |
"src": "2304:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "2292:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4010, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4009, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4001, | |
"src": "2311:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "2292:27:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"functionReturnParameters": 4005, | |
"id": 4011, | |
"nodeType": "Return", | |
"src": "2285:34:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-allowance}.", | |
"id": 4013, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "allowance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4002, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 3999, | |
"name": "owner", | |
"nodeType": "VariableDeclaration", | |
"scope": 4013, | |
"src": "2213:13:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 3998, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2213:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4001, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4013, | |
"src": "2228:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4000, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2228:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2212:32:13" | |
}, | |
"returnParameters": { | |
"id": 4005, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4004, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4013, | |
"src": "2266:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4003, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2266:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2265:9:13" | |
}, | |
"scope": 4446, | |
"src": "2194:132:13", | |
"stateMutability": "view", | |
"superFunction": 6856, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4031, | |
"nodeType": "Block", | |
"src": "2536:75:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4023, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "2555:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4024, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "2555:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4025, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4015, | |
"src": "2567:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4026, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4017, | |
"src": "2576:6:13", | |
"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": 4022, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "2546:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4027, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "2546:37:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4028, | |
"nodeType": "ExpressionStatement", | |
"src": "2546:37:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4029, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "2600:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4021, | |
"id": 4030, | |
"nodeType": "Return", | |
"src": "2593:11:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.", | |
"id": 4032, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "approve", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4018, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4015, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4032, | |
"src": "2481:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4014, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "2481:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4017, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4032, | |
"src": "2498:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4016, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "2498:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2480:33:13" | |
}, | |
"returnParameters": { | |
"id": 4021, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4020, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4032, | |
"src": "2530:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4019, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "2530:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "2529:6:13" | |
}, | |
"scope": 4446, | |
"src": "2464:147:13", | |
"stateMutability": "nonpayable", | |
"superFunction": 6865, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4067, | |
"nodeType": "Block", | |
"src": "3164:201:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4044, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4034, | |
"src": "3184:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4045, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4036, | |
"src": "3192:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4046, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4038, | |
"src": "3203:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4043, | |
"name": "_transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4180, | |
"src": "3174:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4047, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3174:36:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4048, | |
"nodeType": "ExpressionStatement", | |
"src": "3174:36:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4050, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4034, | |
"src": "3229:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4051, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3237:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4052, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3237:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4060, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4038, | |
"src": "3285:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", | |
"id": 4061, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3293:42:13", | |
"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": 4053, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "3249:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4055, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4054, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4034, | |
"src": "3261:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3249:19:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4058, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4056, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3269:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4057, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3269:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3249:31:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4059, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "3249:35:13", | |
"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": 4062, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3249:87:13", | |
"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": 4049, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "3220:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4063, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3220:117:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4064, | |
"nodeType": "ExpressionStatement", | |
"src": "3220:117:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4065, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3354:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4042, | |
"id": 4066, | |
"nodeType": "Return", | |
"src": "3347:11:13" | |
} | |
] | |
}, | |
"documentation": "@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired 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": 4068, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "transferFrom", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4039, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4034, | |
"name": "sender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3091:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4033, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3091:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4036, | |
"name": "recipient", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3107:17:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4035, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3107:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4038, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3126:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4037, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "3126:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3090:51:13" | |
}, | |
"returnParameters": { | |
"id": 4042, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4041, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4068, | |
"src": "3158:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4040, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "3158:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3157:6:13" | |
}, | |
"scope": 4446, | |
"src": "3069:296:13", | |
"stateMutability": "nonpayable", | |
"superFunction": 6876, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4094, | |
"nodeType": "Block", | |
"src": "3846:117:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4078, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3865:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4079, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3865:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4080, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4070, | |
"src": "3877:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4088, | |
"name": "addedValue", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4072, | |
"src": "3923:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4081, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "3886:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4084, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4082, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "3898:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4083, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "3898:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3886:23:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4086, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4085, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4070, | |
"src": "3910:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "3886:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4087, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "3886:36:13", | |
"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": 4089, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3886:48:13", | |
"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": 4077, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "3856:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4090, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "3856:79:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4091, | |
"nodeType": "ExpressionStatement", | |
"src": "3856:79:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4092, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "3952:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4076, | |
"id": 4093, | |
"nodeType": "Return", | |
"src": "3945:11:13" | |
} | |
] | |
}, | |
"documentation": "@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\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.", | |
"id": 4095, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "increaseAllowance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4073, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4070, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4095, | |
"src": "3787:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4069, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "3787:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4072, | |
"name": "addedValue", | |
"nodeType": "VariableDeclaration", | |
"scope": 4095, | |
"src": "3804:18:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4071, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "3804:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3786:37:13" | |
}, | |
"returnParameters": { | |
"id": 4076, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4075, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4095, | |
"src": "3840:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4074, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "3840:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "3839:6:13" | |
}, | |
"scope": 4446, | |
"src": "3760:203:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4122, | |
"nodeType": "Block", | |
"src": "4541:163:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4105, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "4560:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4106, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "4560:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4107, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4097, | |
"src": "4572:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4115, | |
"name": "subtractedValue", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4099, | |
"src": "4618:15:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", | |
"id": 4116, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4635:39:13", | |
"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": 4108, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "4581:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4111, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4109, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "4593:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4110, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "4593:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4581:23:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4113, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4112, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4097, | |
"src": "4605:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "4581:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4114, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "4581:36:13", | |
"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": 4117, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4581:94:13", | |
"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": 4104, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "4551:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4118, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "4551:125:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4119, | |
"nodeType": "ExpressionStatement", | |
"src": "4551:125:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"hexValue": "74727565", | |
"id": 4120, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "bool", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "4693:4:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"value": "true" | |
}, | |
"functionReturnParameters": 4103, | |
"id": 4121, | |
"nodeType": "Return", | |
"src": "4686:11:13" | |
} | |
] | |
}, | |
"documentation": "@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\nproblems 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": 4123, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "decreaseAllowance", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4100, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4097, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4123, | |
"src": "4477:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4096, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "4477:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4099, | |
"name": "subtractedValue", | |
"nodeType": "VariableDeclaration", | |
"scope": 4123, | |
"src": "4494:23:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4098, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "4494:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4476:42:13" | |
}, | |
"returnParameters": { | |
"id": 4103, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4102, | |
"name": "", | |
"nodeType": "VariableDeclaration", | |
"scope": 4123, | |
"src": "4535:4:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4101, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "4535:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "4534:6:13" | |
}, | |
"scope": 4446, | |
"src": "4450:254:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "public" | |
}, | |
{ | |
"body": { | |
"id": 4179, | |
"nodeType": "Block", | |
"src": "5257:385:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4137, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4133, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5275:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4135, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5293:1:13", | |
"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": 4134, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5285:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4136, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5285:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "5275:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", | |
"id": 4138, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5297:39:13", | |
"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": 4132, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "5267:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4139, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5267:70:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4140, | |
"nodeType": "ExpressionStatement", | |
"src": "5267:70:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4146, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4142, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5355:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4144, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5376:1:13", | |
"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": 4143, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5368:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4145, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5368:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "5355:23:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", | |
"id": 4147, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5380:37:13", | |
"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": 4141, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "5347:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4148, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5347:71:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4149, | |
"nodeType": "ExpressionStatement", | |
"src": "5347:71:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4160, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4150, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5429:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4152, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4151, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5439:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "5429:17:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4157, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4129, | |
"src": "5471:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", | |
"id": 4158, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "5479:40:13", | |
"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": 4153, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5449:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4155, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4154, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5459:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5449:17:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4156, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "5449:21:13", | |
"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": 4159, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5449:71:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5429:91:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4161, | |
"nodeType": "ExpressionStatement", | |
"src": "5429:91:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4171, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4162, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5530:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4164, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4163, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5540:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "5530:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4169, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4129, | |
"src": "5578:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4165, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "5553:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4167, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4166, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5563:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "5553:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4168, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "5553:24:13", | |
"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": 4170, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5553:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "5530:55:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4172, | |
"nodeType": "ExpressionStatement", | |
"src": "5530:55:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4174, | |
"name": "sender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4125, | |
"src": "5609:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4175, | |
"name": "recipient", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4127, | |
"src": "5617:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4176, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4129, | |
"src": "5628:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4173, | |
"name": "Transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6884, | |
"src": "5600:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4177, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5600:35:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4178, | |
"nodeType": "EmitStatement", | |
"src": "5595:40:13" | |
} | |
] | |
}, | |
"documentation": "@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.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": 4180, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_transfer", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4130, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4125, | |
"name": "sender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4180, | |
"src": "5197:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4124, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5197:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4127, | |
"name": "recipient", | |
"nodeType": "VariableDeclaration", | |
"scope": 4180, | |
"src": "5213:17:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4126, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5213:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4129, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4180, | |
"src": "5232:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4128, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5232:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5196:51:13" | |
}, | |
"returnParameters": { | |
"id": 4131, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5257:0:13" | |
}, | |
"scope": 4446, | |
"src": "5178:464:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4222, | |
"nodeType": "Block", | |
"src": "5969:245:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4192, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4188, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "5987:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4190, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6006:1:13", | |
"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": 4189, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "5998:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4191, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5998:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "5987:21:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", | |
"id": 4193, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6010:33:13", | |
"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": 4187, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "5979:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4194, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "5979:65:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4195, | |
"nodeType": "ExpressionStatement", | |
"src": "5979:65:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4201, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 4196, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6055:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4199, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4184, | |
"src": "6087:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4197, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6070:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4198, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "6070:16:13", | |
"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": 4200, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6070:24:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6055:39:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4202, | |
"nodeType": "ExpressionStatement", | |
"src": "6055:39:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4212, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4203, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6104:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4205, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4204, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "6114:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "6104:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4210, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4184, | |
"src": "6148:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4206, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6125:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4208, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4207, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "6135:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6125:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4209, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "add", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6492, | |
"src": "6125:22:13", | |
"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": 4211, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6125:30:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6104:51:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4213, | |
"nodeType": "ExpressionStatement", | |
"src": "6104:51:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4216, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6187:1:13", | |
"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": 4215, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6179:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4217, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6179:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4218, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4182, | |
"src": "6191:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4219, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4184, | |
"src": "6200:6:13", | |
"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": 4214, | |
"name": "Transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6884, | |
"src": "6170:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4220, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6170:37:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4221, | |
"nodeType": "EmitStatement", | |
"src": "6165:42:13" | |
} | |
] | |
}, | |
"documentation": "@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address.", | |
"id": 4223, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_mint", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4185, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4182, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 4223, | |
"src": "5927:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4181, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "5927:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4184, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4223, | |
"src": "5944:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4183, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "5944:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "5926:33:13" | |
}, | |
"returnParameters": { | |
"id": 4186, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "5969:0:13" | |
}, | |
"scope": 4446, | |
"src": "5912:302:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4266, | |
"nodeType": "Block", | |
"src": "6590:285:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4235, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4231, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6608:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4233, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6627:1:13", | |
"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": 4232, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6619:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4234, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6619:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "6608:21:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", | |
"id": 4236, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6631:35:13", | |
"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": 4230, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "6600:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4237, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6600:67:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4238, | |
"nodeType": "ExpressionStatement", | |
"src": "6600:67:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4249, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4239, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6678:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4241, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4240, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6688:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "6678:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4246, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4227, | |
"src": "6722:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", | |
"id": 4247, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6730:36:13", | |
"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": 4242, | |
"name": "_balances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3882, | |
"src": "6699:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4244, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4243, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6709:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "6699:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4245, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "6699:22:13", | |
"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": 4248, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6699:68:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6678:89:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4250, | |
"nodeType": "ExpressionStatement", | |
"src": "6678:89:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4256, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"id": 4251, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6777:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4254, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4227, | |
"src": "6809:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4252, | |
"name": "_totalSupply", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3890, | |
"src": "6792:12:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4253, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6508, | |
"src": "6792:16:13", | |
"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": 4255, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6792:24:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "6777:39:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4257, | |
"nodeType": "ExpressionStatement", | |
"src": "6777:39:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4259, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4225, | |
"src": "6840:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4261, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "6857:1:13", | |
"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": 4260, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "6849:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4262, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6849:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4263, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4227, | |
"src": "6861:6:13", | |
"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": 4258, | |
"name": "Transfer", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6884, | |
"src": "6831:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4264, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "6831:37:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4265, | |
"nodeType": "EmitStatement", | |
"src": "6826:42:13" | |
} | |
] | |
}, | |
"documentation": "@dev Destroys `amount` tokens from `account`, reducing the\ntotal 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": 4267, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_burn", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4228, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4225, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 4267, | |
"src": "6548:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4224, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "6548:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4227, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4267, | |
"src": "6565:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4226, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "6565:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "6547:33:13" | |
}, | |
"returnParameters": { | |
"id": 4229, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "6590:0:13" | |
}, | |
"scope": 4446, | |
"src": "6533:342:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4308, | |
"nodeType": "Block", | |
"src": "7361:257:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4281, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4277, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4269, | |
"src": "7379:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4279, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7396:1:13", | |
"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": 4278, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "7388:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4280, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7388:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "7379:19:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", | |
"id": 4282, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7400:38:13", | |
"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": 4276, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "7371:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4283, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7371:68:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4284, | |
"nodeType": "ExpressionStatement", | |
"src": "7371:68:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4290, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4286, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4271, | |
"src": "7457:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4288, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7476:1:13", | |
"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": 4287, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "7468:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4289, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7468:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "7457:21:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", | |
"id": 4291, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7480:36:13", | |
"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": 4285, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "7449:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4292, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7449:68:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4293, | |
"nodeType": "ExpressionStatement", | |
"src": "7449:68:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4300, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4294, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "7528:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4297, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4295, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4269, | |
"src": "7540:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7528:18:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4298, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4296, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4271, | |
"src": "7547:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "7528:27:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 4299, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4273, | |
"src": "7558:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "7528:36:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4301, | |
"nodeType": "ExpressionStatement", | |
"src": "7528:36:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4303, | |
"name": "owner", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4269, | |
"src": "7588:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4304, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4271, | |
"src": "7595:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4305, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4273, | |
"src": "7604:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4302, | |
"name": "Approval", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6892, | |
"src": "7579:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4306, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7579:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4307, | |
"nodeType": "EmitStatement", | |
"src": "7574:37:13" | |
} | |
] | |
}, | |
"documentation": "@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\ne.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": 4309, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_approve", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4274, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4269, | |
"name": "owner", | |
"nodeType": "VariableDeclaration", | |
"scope": 4309, | |
"src": "7304:13:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4268, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7304:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4271, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4309, | |
"src": "7319:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4270, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7319:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4273, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4309, | |
"src": "7336:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4272, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7336:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "7303:48:13" | |
}, | |
"returnParameters": { | |
"id": 4275, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "7361:0:13" | |
}, | |
"scope": 4446, | |
"src": "7286:332:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4337, | |
"nodeType": "Block", | |
"src": "7852:164:13", | |
"statements": [ | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4317, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4311, | |
"src": "7868:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4318, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4313, | |
"src": "7877:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4316, | |
"name": "_burn", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4267, | |
"src": "7862:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,uint256)" | |
} | |
}, | |
"id": 4319, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7862:22:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4320, | |
"nodeType": "ExpressionStatement", | |
"src": "7862:22:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4322, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4311, | |
"src": "7903:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4323, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "7912:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4324, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "7912:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4332, | |
"name": "amount", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4313, | |
"src": "7961:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365", | |
"id": 4333, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "7969:38:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db", | |
"typeString": "literal_string \"ERC20: burn amount exceeds allowance\"" | |
}, | |
"value": "ERC20: burn amount exceeds allowance" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db", | |
"typeString": "literal_string \"ERC20: burn amount exceeds allowance\"" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4325, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "7924:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4327, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4326, | |
"name": "account", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4311, | |
"src": "7936:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7924:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4330, | |
"indexExpression": { | |
"argumentTypes": null, | |
"expression": { | |
"argumentTypes": null, | |
"id": 4328, | |
"name": "msg", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6971, | |
"src": "7945:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_message", | |
"typeString": "msg" | |
} | |
}, | |
"id": 4329, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sender", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "7945:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "7924:32:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4331, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"memberName": "sub", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": 6535, | |
"src": "7924:36:13", | |
"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": 4334, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7924:84:13", | |
"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": 4321, | |
"name": "_approve", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4309, | |
"src": "7894:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4335, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "7894:115:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4336, | |
"nodeType": "ExpressionStatement", | |
"src": "7894:115:13" | |
} | |
] | |
}, | |
"documentation": "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.", | |
"id": 4338, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "_burnFrom", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4314, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4311, | |
"name": "account", | |
"nodeType": "VariableDeclaration", | |
"scope": 4338, | |
"src": "7810:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4310, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "7810:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4313, | |
"name": "amount", | |
"nodeType": "VariableDeclaration", | |
"scope": 4338, | |
"src": "7827:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4312, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "7827:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "7809:33:13" | |
}, | |
"returnParameters": { | |
"id": 4315, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "7852:0:13" | |
}, | |
"scope": 4446, | |
"src": "7791:225:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "internal" | |
}, | |
{ | |
"body": { | |
"id": 4444, | |
"nodeType": "Block", | |
"src": "8189:838:13", | |
"statements": [ | |
{ | |
"assignments": [ | |
4358 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 4358, | |
"name": "digest", | |
"nodeType": "VariableDeclaration", | |
"scope": 4444, | |
"src": "8199:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 4357, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "8199:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 4377, | |
"initialValue": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "1901", | |
"id": 4362, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8260:10:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", | |
"typeString": "literal_string \"\u0019\u0001\"" | |
}, | |
"value": "\u0019\u0001" | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4363, | |
"name": "DOMAIN_SEPARATOR", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3892, | |
"src": "8288:16:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4367, | |
"name": "PERMIT_TYPEHASH", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3898, | |
"src": "8343:15:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4368, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8400:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4369, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4342, | |
"src": "8448:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4370, | |
"name": "nonce", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4344, | |
"src": "8497:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4371, | |
"name": "expiry", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4346, | |
"src": "8544:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4372, | |
"name": "allowed", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4348, | |
"src": "8592:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4365, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6958, | |
"src": "8332:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 4366, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberName": "encode", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8332:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 4373, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8332:268:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 4364, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "8322:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 4374, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8322:279:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", | |
"typeString": "literal_string \"\u0019\u0001\"" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
], | |
"expression": { | |
"argumentTypes": null, | |
"id": 4360, | |
"name": "abi", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6958, | |
"src": "8226:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_magic_abi", | |
"typeString": "abi" | |
} | |
}, | |
"id": 4361, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"memberName": "encodePacked", | |
"nodeType": "MemberAccess", | |
"referencedDeclaration": null, | |
"src": "8226:16:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", | |
"typeString": "function () pure returns (bytes memory)" | |
} | |
}, | |
"id": 4375, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8226:385:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes_memory_ptr", | |
"typeString": "bytes memory" | |
} | |
], | |
"id": 4359, | |
"name": "keccak256", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6965, | |
"src": "8216:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", | |
"typeString": "function (bytes memory) pure returns (bytes32)" | |
} | |
}, | |
"id": 4376, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8216:396:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8199:413:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4383, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4379, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8631:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "!=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4381, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8649:1:13", | |
"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": 4380, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "8641:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_address_$", | |
"typeString": "type(address)" | |
}, | |
"typeName": "address" | |
}, | |
"id": 4382, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8641:10:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address_payable", | |
"typeString": "address payable" | |
} | |
}, | |
"src": "8631:20:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f696e76616c69642d616464726573732d30", | |
"id": 4384, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8653:23:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_6cade1c7c8c98b461ad80d1311ad396c59d17ffb04ff0f7a511ced53dd9ceec1", | |
"typeString": "literal_string \"Dai/invalid-address-0\"" | |
}, | |
"value": "Dai/invalid-address-0" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_6cade1c7c8c98b461ad80d1311ad396c59d17ffb04ff0f7a511ced53dd9ceec1", | |
"typeString": "literal_string \"Dai/invalid-address-0\"" | |
} | |
], | |
"id": 4378, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8623:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4385, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8623:54:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4386, | |
"nodeType": "ExpressionStatement", | |
"src": "8623:54:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"id": 4395, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4388, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8695:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4390, | |
"name": "digest", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4358, | |
"src": "8715:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4391, | |
"name": "v", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4350, | |
"src": "8723:1:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4392, | |
"name": "r", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4352, | |
"src": "8726:1:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4393, | |
"name": "s", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4354, | |
"src": "8729:1:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
{ | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
], | |
"id": 4389, | |
"name": "ecrecover", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6963, | |
"src": "8705:9:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", | |
"typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" | |
} | |
}, | |
"id": 4394, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8705:26:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"src": "8695:36:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f696e76616c69642d7065726d6974", | |
"id": 4396, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8733:20:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_e974ba7acb290ca076887e7ba12e7b1839924d20ca241ab20707d98be809b312", | |
"typeString": "literal_string \"Dai/invalid-permit\"" | |
}, | |
"value": "Dai/invalid-permit" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_e974ba7acb290ca076887e7ba12e7b1839924d20ca241ab20707d98be809b312", | |
"typeString": "literal_string \"Dai/invalid-permit\"" | |
} | |
], | |
"id": 4387, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8687:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4397, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8687:67:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4398, | |
"nodeType": "ExpressionStatement", | |
"src": "8687:67:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"id": 4406, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 4402, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4400, | |
"name": "expiry", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4346, | |
"src": "8772:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4401, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8782:1:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"src": "8772:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "||", | |
"rightExpression": { | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 4405, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4403, | |
"name": "now", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6973, | |
"src": "8787:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "<=", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 4404, | |
"name": "expiry", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4346, | |
"src": "8794:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8787:13:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"src": "8772:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f7065726d69742d65787069726564", | |
"id": 4407, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8802:20:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_22f5fc5d7aaf9b3e6dfc2273ed4394be56ea60a0b5067b49b7f63dc922b30c7a", | |
"typeString": "literal_string \"Dai/permit-expired\"" | |
}, | |
"value": "Dai/permit-expired" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_22f5fc5d7aaf9b3e6dfc2273ed4394be56ea60a0b5067b49b7f63dc922b30c7a", | |
"typeString": "literal_string \"Dai/permit-expired\"" | |
} | |
], | |
"id": 4399, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8764:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4408, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8764:59:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4409, | |
"nodeType": "ExpressionStatement", | |
"src": "8764:59:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"commonType": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"id": 4416, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftExpression": { | |
"argumentTypes": null, | |
"id": 4411, | |
"name": "nonce", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4344, | |
"src": "8841:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "BinaryOperation", | |
"operator": "==", | |
"rightExpression": { | |
"argumentTypes": null, | |
"id": 4415, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "++", | |
"prefix": false, | |
"src": "8850:16:13", | |
"subExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4412, | |
"name": "nonces", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3905, | |
"src": "8850:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4414, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4413, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8857:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "8850:14:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8841:25:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"hexValue": "4461692f696e76616c69642d6e6f6e6365", | |
"id": 4417, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "string", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8868:19:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_stringliteral_56fdb16ed5471260b4f6bf21cd668c7795fa94d1be81d33f14e5ceb3647b779b", | |
"typeString": "literal_string \"Dai/invalid-nonce\"" | |
}, | |
"value": "Dai/invalid-nonce" | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
{ | |
"typeIdentifier": "t_stringliteral_56fdb16ed5471260b4f6bf21cd668c7795fa94d1be81d33f14e5ceb3647b779b", | |
"typeString": "literal_string \"Dai/invalid-nonce\"" | |
} | |
], | |
"id": 4410, | |
"name": "require", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [ | |
6974, | |
6975 | |
], | |
"referencedDeclaration": 6975, | |
"src": "8833:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", | |
"typeString": "function (bool,string memory) pure" | |
} | |
}, | |
"id": 4418, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8833:55:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4419, | |
"nodeType": "ExpressionStatement", | |
"src": "8833:55:13" | |
}, | |
{ | |
"assignments": [ | |
4421 | |
], | |
"declarations": [ | |
{ | |
"constant": false, | |
"id": 4421, | |
"name": "wad", | |
"nodeType": "VariableDeclaration", | |
"scope": 4444, | |
"src": "8898:8:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4420, | |
"name": "uint", | |
"nodeType": "ElementaryTypeName", | |
"src": "8898:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"id": 4429, | |
"initialValue": { | |
"argumentTypes": null, | |
"condition": { | |
"argumentTypes": null, | |
"id": 4422, | |
"name": "allowed", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4348, | |
"src": "8909:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"falseExpression": { | |
"argumentTypes": null, | |
"hexValue": "30", | |
"id": 4427, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8930:1:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_0_by_1", | |
"typeString": "int_const 0" | |
}, | |
"value": "0" | |
}, | |
"id": 4428, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "Conditional", | |
"src": "8909:22:13", | |
"trueExpression": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4425, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "UnaryOperation", | |
"operator": "-", | |
"prefix": true, | |
"src": "8924:2:13", | |
"subExpression": { | |
"argumentTypes": null, | |
"hexValue": "31", | |
"id": 4424, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "number", | |
"lValueRequested": false, | |
"nodeType": "Literal", | |
"src": "8925:1:13", | |
"subdenomination": null, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_1_by_1", | |
"typeString": "int_const 1" | |
}, | |
"value": "1" | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_rational_minus_1_by_1", | |
"typeString": "int_const -1" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_rational_minus_1_by_1", | |
"typeString": "int_const -1" | |
} | |
], | |
"id": 4423, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"lValueRequested": false, | |
"nodeType": "ElementaryTypeNameExpression", | |
"src": "8919:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_type$_t_uint256_$", | |
"typeString": "type(uint256)" | |
}, | |
"typeName": "uint" | |
}, | |
"id": 4426, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": true, | |
"kind": "typeConversion", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8919:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "VariableDeclarationStatement", | |
"src": "8898:33:13" | |
}, | |
{ | |
"expression": { | |
"argumentTypes": null, | |
"id": 4436, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"lValueRequested": false, | |
"leftHandSide": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"baseExpression": { | |
"argumentTypes": null, | |
"id": 4430, | |
"name": "_allowances", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 3888, | |
"src": "8941:11:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", | |
"typeString": "mapping(address => mapping(address => uint256))" | |
} | |
}, | |
"id": 4433, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4431, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8953:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": false, | |
"nodeType": "IndexAccess", | |
"src": "8941:19:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", | |
"typeString": "mapping(address => uint256)" | |
} | |
}, | |
"id": 4434, | |
"indexExpression": { | |
"argumentTypes": null, | |
"id": 4432, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4342, | |
"src": "8961:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"isConstant": false, | |
"isLValue": true, | |
"isPure": false, | |
"lValueRequested": true, | |
"nodeType": "IndexAccess", | |
"src": "8941:28:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"nodeType": "Assignment", | |
"operator": "=", | |
"rightHandSide": { | |
"argumentTypes": null, | |
"id": 4435, | |
"name": "wad", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4421, | |
"src": "8972:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"src": "8941:34:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"id": 4437, | |
"nodeType": "ExpressionStatement", | |
"src": "8941:34:13" | |
}, | |
{ | |
"eventCall": { | |
"argumentTypes": null, | |
"arguments": [ | |
{ | |
"argumentTypes": null, | |
"id": 4439, | |
"name": "holder", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4340, | |
"src": "8999:6:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4440, | |
"name": "spender", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4342, | |
"src": "9007:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
{ | |
"argumentTypes": null, | |
"id": 4441, | |
"name": "wad", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 4421, | |
"src": "9016:3:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
} | |
], | |
"expression": { | |
"argumentTypes": [ | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
{ | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
], | |
"id": 4438, | |
"name": "Approval", | |
"nodeType": "Identifier", | |
"overloadedDeclarations": [], | |
"referencedDeclaration": 6892, | |
"src": "8990:8:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", | |
"typeString": "function (address,address,uint256)" | |
} | |
}, | |
"id": 4442, | |
"isConstant": false, | |
"isLValue": false, | |
"isPure": false, | |
"kind": "functionCall", | |
"lValueRequested": false, | |
"names": [], | |
"nodeType": "FunctionCall", | |
"src": "8990:30:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_tuple$__$", | |
"typeString": "tuple()" | |
} | |
}, | |
"id": 4443, | |
"nodeType": "EmitStatement", | |
"src": "8985:35:13" | |
} | |
] | |
}, | |
"documentation": null, | |
"id": 4445, | |
"implemented": true, | |
"kind": "function", | |
"modifiers": [], | |
"name": "permit", | |
"nodeType": "FunctionDefinition", | |
"parameters": { | |
"id": 4355, | |
"nodeType": "ParameterList", | |
"parameters": [ | |
{ | |
"constant": false, | |
"id": 4340, | |
"name": "holder", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8039:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4339, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "8039:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4342, | |
"name": "spender", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8055:15:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
}, | |
"typeName": { | |
"id": 4341, | |
"name": "address", | |
"nodeType": "ElementaryTypeName", | |
"src": "8055:7:13", | |
"stateMutability": "nonpayable", | |
"typeDescriptions": { | |
"typeIdentifier": "t_address", | |
"typeString": "address" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4344, | |
"name": "nonce", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8072:13:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4343, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "8072:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4346, | |
"name": "expiry", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8087:14:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
}, | |
"typeName": { | |
"id": 4345, | |
"name": "uint256", | |
"nodeType": "ElementaryTypeName", | |
"src": "8087:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint256", | |
"typeString": "uint256" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4348, | |
"name": "allowed", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8127:12:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
}, | |
"typeName": { | |
"id": 4347, | |
"name": "bool", | |
"nodeType": "ElementaryTypeName", | |
"src": "8127:4:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bool", | |
"typeString": "bool" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4350, | |
"name": "v", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8141:7:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
}, | |
"typeName": { | |
"id": 4349, | |
"name": "uint8", | |
"nodeType": "ElementaryTypeName", | |
"src": "8141:5:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_uint8", | |
"typeString": "uint8" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4352, | |
"name": "r", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8150:9:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 4351, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "8150:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
}, | |
{ | |
"constant": false, | |
"id": 4354, | |
"name": "s", | |
"nodeType": "VariableDeclaration", | |
"scope": 4445, | |
"src": "8161:9:13", | |
"stateVariable": false, | |
"storageLocation": "default", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
}, | |
"typeName": { | |
"id": 4353, | |
"name": "bytes32", | |
"nodeType": "ElementaryTypeName", | |
"src": "8161:7:13", | |
"typeDescriptions": { | |
"typeIdentifier": "t_bytes32", | |
"typeString": "bytes32" | |
} | |
}, | |
"value": null, | |
"visibility": "internal" | |
} | |
], | |
"src": "8038:133:13" | |
}, | |
"returnParameters": { | |
"id": 4356, | |
"nodeType": "ParameterList", | |
"parameters": [], | |
"src": "8189:0:13" | |
}, | |
"scope": 4446, | |
"src": "8023:1004:13", | |
"stateMutability": "nonpayable", | |
"superFunction": null, | |
"visibility": "external" | |
} | |
], | |
"scope": 4447, | |
"src": "142:8887:13" | |
} | |
], | |
"src": "0:9029:13" | |
}, | |
"compiler": { | |
"name": "solc", | |
"version": "0.5.13+commit.5b0b510c.Emscripten.clang" | |
}, | |
"networks": {}, | |
"schemaVersion": "3.0.19", | |
"updatedAt": "2019-12-02T16:42:34.810Z", | |
"devdoc": { | |
"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. * 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`." | |
} | |
} | |
}, | |
"userdoc": { | |
"methods": {} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment