11382 lines
500 KiB
JSON
11382 lines
500 KiB
JSON
|
{
|
||
|
"contractName": "ERC20",
|
||
|
"abi": [
|
||
|
{
|
||
|
"anonymous": false,
|
||
|
"inputs": [
|
||
|
{
|
||
|
"indexed": true,
|
||
|
"internalType": "address",
|
||
|
"name": "owner",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"indexed": true,
|
||
|
"internalType": "address",
|
||
|
"name": "spender",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"indexed": false,
|
||
|
"internalType": "uint256",
|
||
|
"name": "value",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"name": "Approval",
|
||
|
"type": "event"
|
||
|
},
|
||
|
{
|
||
|
"anonymous": false,
|
||
|
"inputs": [
|
||
|
{
|
||
|
"indexed": true,
|
||
|
"internalType": "address",
|
||
|
"name": "from",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"indexed": true,
|
||
|
"internalType": "address",
|
||
|
"name": "to",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"indexed": false,
|
||
|
"internalType": "uint256",
|
||
|
"name": "value",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"name": "Transfer",
|
||
|
"type": "event"
|
||
|
},
|
||
|
{
|
||
|
"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"
|
||
|
}
|
||
|
],
|
||
|
"metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"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\":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\":\"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\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict w
|
||
|
"bytecode": "0x6080604052610e3a806100136000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146101fd578063a457c2d714610255578063a9059cbb146102bb578063dd62ed3e1461032157610088565b8063095ea7b31461008d57806318160ddd146100f357806323b872dd146101115780633950935114610197575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610399565b604051808215151515815260200191505060405180910390f35b6100fb6103b7565b6040518082815260200191505060405180910390f35b61017d6004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c1565b604051808215151515815260200191505060405180910390f35b6101e3600480360360408110156101ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061049a565b604051808215151515815260200191505060405180910390f35b61023f6004803603602081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054d565b6040518082815260200191505060405180910390f35b6102a16004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610595565b604051808215151515815260200191505060405180910390f35b610307600480360360408110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610662565b604051808215151515815260200191505060405180910390f35b6103836004803603604081101561033757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610680565b6040518082815260200191505060405180910390f35b60006103ad6103a6610707565b848461070f565b6001905092915050565b6000600254905090565b60006103ce848484610906565b61048f846103da610707565b61048a85604051806060016040528060288152602001610d7060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610440610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b600190509392505050565b60006105436104a7610707565b8461053e85600160006104b8610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b61070f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106586105a2610707565b8461065385604051806060016040528060258152602001610de160259139600160006105cc610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b6001905092915050565b600061067661066f610707565b8484610906565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610795576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610dbd6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561081b576040517f08c379a00000000000000000000000000000000000
|
||
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146101fd578063a457c2d714610255578063a9059cbb146102bb578063dd62ed3e1461032157610088565b8063095ea7b31461008d57806318160ddd146100f357806323b872dd146101115780633950935114610197575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610399565b604051808215151515815260200191505060405180910390f35b6100fb6103b7565b6040518082815260200191505060405180910390f35b61017d6004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c1565b604051808215151515815260200191505060405180910390f35b6101e3600480360360408110156101ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061049a565b604051808215151515815260200191505060405180910390f35b61023f6004803603602081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054d565b6040518082815260200191505060405180910390f35b6102a16004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610595565b604051808215151515815260200191505060405180910390f35b610307600480360360408110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610662565b604051808215151515815260200191505060405180910390f35b6103836004803603604081101561033757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610680565b6040518082815260200191505060405180910390f35b60006103ad6103a6610707565b848461070f565b6001905092915050565b6000600254905090565b60006103ce848484610906565b61048f846103da610707565b61048a85604051806060016040528060288152602001610d7060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610440610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b600190509392505050565b60006105436104a7610707565b8461053e85600160006104b8610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b61070f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106586105a2610707565b8461065385604051806060016040528060258152602001610de160259139600160006105cc610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b6001905092915050565b600061067661066f610707565b8484610906565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610795576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610dbd6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561081b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004
|
||
|
"sourceMap": "1268:6824:4:-;;;;;;;;;",
|
||
|
"deployedSourceMap": "1268:6824:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:6824:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2500:149:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3107:300:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3802:207;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3802:207:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1706:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1706:108:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4496:258;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4496:258:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2017:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2017:155:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2230:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2230:132:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2500:149;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;2638:4;2631:11;;2500:149;;;;:::o;1559:89::-;1603:7;1629:12;;1622:19;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;:11;:19;3301:6;3289:19;;;;;;;;;;;;;;;:33;3309:12;:10;:12::i;:::-;3289:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3258:8;:121::i;:::-;3396:4;3389:11;;3107:300;;;;;:::o;3802:207::-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;3930:25;;;;;;;;;;;;;;;:34;3956:7;3930:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3898:8;:83::i;:::-;3998:4;3991:11;;3802:207;;;;:::o;1706:108::-;1763:7;1789:9;:18;1799:7;1789:18;;;;;;;;;;;;;;;;1782:25;;1706:108;;;:::o;4496:258::-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;4629:25;;;;;;;;;;;;;;;:34;4655:7;4629:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4597:8;:129::i;:::-;4743:4;4736:11;;4496:258;;;;:::o;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;:::-;2161:4;2154:11;;2017:155;;;;:::o;2230:132::-;2302:7;2328:11;:18;2340:5;2328:18;;;;;;;;;;;;;;;:27;2347:7;2328:27;;;;;;;;;;;;;;;;2321:34;;2230:132;;;;:::o;788:96:2:-;833:15;867:10;860:17;;788:96;:::o;7351:332:4:-;7461:1;7444:19;;:5;:19;;;;7436:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7541:1;7522:21;;:7;:21;;;;7514:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7623:6;7593:11;:18;7605:5;7593:18;;;;;;;;;;;;;;;:27;7612:7;7593:27;;;;;;;;;;;;;;;:36;;;;7660:7;7644:32;;7653:5;7644:32;;;7669:6;7644:32;;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;5343:1;5325:20;;:6;:20;;;;5317:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5426:1;5405:23;;:9;:23;;;;5397:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;:9;:17;5509:6;5499:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5479:9;:17;5489:6;5479:17;;;;;;;;;;;;;;;:91;;;;5603:32;5628:6;5603:9;:20;5613:9;5603:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5580:9;:20;5590:9;5580:20;;;;;;;;;;;;;;;:55;;;;5667:9;5650:35;;5659:6;5650:35;;;5678:6;5650:35;;;;;;;;;;;;;;;;;;5228:464;;;:::o;1732:187:3:-;1818:7;1850:1;1845;:6;;1853:12;1837:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1837:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:9;1892:1;1888;:5;1876:17;;1911:1;1904:8;;;1732:187;;;;;:::o;834:176::-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o",
|
||
|
"source": "pragma solidity ^0.5.0;\n\nimport \"../../GSN/Context.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20Mintable}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin guidelines: functions revert instead\n * of returning `false` on failure. This behavior is nonetheless conventional\n * and does not conflict with the expectations of ERC20 applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\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(_msgSender(), 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(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for `sender`'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][sp
|
||
|
"sourcePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
|
||
|
"ast": {
|
||
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
|
||
|
"exportedSymbols": {
|
||
|
"ERC20": [
|
||
|
973
|
||
|
]
|
||
|
},
|
||
|
"id": 974,
|
||
|
"nodeType": "SourceUnit",
|
||
|
"nodes": [
|
||
|
{
|
||
|
"id": 570,
|
||
|
"literals": [
|
||
|
"solidity",
|
||
|
"^",
|
||
|
"0.5",
|
||
|
".0"
|
||
|
],
|
||
|
"nodeType": "PragmaDirective",
|
||
|
"src": "0:23:4"
|
||
|
},
|
||
|
{
|
||
|
"absolutePath": "@openzeppelin/contracts/GSN/Context.sol",
|
||
|
"file": "../../GSN/Context.sol",
|
||
|
"id": 571,
|
||
|
"nodeType": "ImportDirective",
|
||
|
"scope": 974,
|
||
|
"sourceUnit": 382,
|
||
|
"src": "25:31:4",
|
||
|
"symbolAliases": [],
|
||
|
"unitAlias": ""
|
||
|
},
|
||
|
{
|
||
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
||
|
"file": "./IERC20.sol",
|
||
|
"id": 572,
|
||
|
"nodeType": "ImportDirective",
|
||
|
"scope": 974,
|
||
|
"sourceUnit": 1043,
|
||
|
"src": "57:22:4",
|
||
|
"symbolAliases": [],
|
||
|
"unitAlias": ""
|
||
|
},
|
||
|
{
|
||
|
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
|
||
|
"file": "../../math/SafeMath.sol",
|
||
|
"id": 573,
|
||
|
"nodeType": "ImportDirective",
|
||
|
"scope": 974,
|
||
|
"sourceUnit": 569,
|
||
|
"src": "80:33:4",
|
||
|
"symbolAliases": [],
|
||
|
"unitAlias": ""
|
||
|
},
|
||
|
{
|
||
|
"baseContracts": [
|
||
|
{
|
||
|
"arguments": null,
|
||
|
"baseName": {
|
||
|
"contractScope": null,
|
||
|
"id": 574,
|
||
|
"name": "Context",
|
||
|
"nodeType": "UserDefinedTypeName",
|
||
|
"referencedDeclaration": 381,
|
||
|
"src": "1286:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_contract$_Context_$381",
|
||
|
"typeString": "contract Context"
|
||
|
}
|
||
|
},
|
||
|
"id": 575,
|
||
|
"nodeType": "InheritanceSpecifier",
|
||
|
"src": "1286:7:4"
|
||
|
},
|
||
|
{
|
||
|
"arguments": null,
|
||
|
"baseName": {
|
||
|
"contractScope": null,
|
||
|
"id": 576,
|
||
|
"name": "IERC20",
|
||
|
"nodeType": "UserDefinedTypeName",
|
||
|
"referencedDeclaration": 1042,
|
||
|
"src": "1295:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_contract$_IERC20_$1042",
|
||
|
"typeString": "contract IERC20"
|
||
|
}
|
||
|
},
|
||
|
"id": 577,
|
||
|
"nodeType": "InheritanceSpecifier",
|
||
|
"src": "1295:6:4"
|
||
|
}
|
||
|
],
|
||
|
"contractDependencies": [
|
||
|
381,
|
||
|
1042
|
||
|
],
|
||
|
"contractKind": "contract",
|
||
|
"documentation": "@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}.",
|
||
|
"fullyImplemented": true,
|
||
|
"id": 973,
|
||
|
"linearizedBaseContracts": [
|
||
|
973,
|
||
|
1042,
|
||
|
381
|
||
|
],
|
||
|
"name": "ERC20",
|
||
|
"nodeType": "ContractDefinition",
|
||
|
"nodes": [
|
||
|
{
|
||
|
"id": 580,
|
||
|
"libraryName": {
|
||
|
"contractScope": null,
|
||
|
"id": 578,
|
||
|
"name": "SafeMath",
|
||
|
"nodeType": "UserDefinedTypeName",
|
||
|
"referencedDeclaration": 568,
|
||
|
"src": "1314:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_contract$_SafeMath_$568",
|
||
|
"typeString": "library SafeMath"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "UsingForDirective",
|
||
|
"src": "1308:27:4",
|
||
|
"typeName": {
|
||
|
"id": 579,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1327:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 584,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 973,
|
||
|
"src": "1341:46:4",
|
||
|
"stateVariable": true,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 583,
|
||
|
"keyType": {
|
||
|
"id": 581,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1350:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Mapping",
|
||
|
"src": "1341:28:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
},
|
||
|
"valueType": {
|
||
|
"id": 582,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1361:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "private"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 590,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 973,
|
||
|
"src": "1394:69:4",
|
||
|
"stateVariable": true,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 589,
|
||
|
"keyType": {
|
||
|
"id": 585,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1403:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Mapping",
|
||
|
"src": "1394:49:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
},
|
||
|
"valueType": {
|
||
|
"id": 588,
|
||
|
"keyType": {
|
||
|
"id": 586,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1423:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Mapping",
|
||
|
"src": "1414:28:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
},
|
||
|
"valueType": {
|
||
|
"id": 587,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1434:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "private"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 592,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 973,
|
||
|
"src": "1470:28:4",
|
||
|
"stateVariable": true,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 591,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1470:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "private"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 599,
|
||
|
"nodeType": "Block",
|
||
|
"src": "1612:36:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 597,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "1629:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"functionReturnParameters": 596,
|
||
|
"id": 598,
|
||
|
"nodeType": "Return",
|
||
|
"src": "1622:19:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-totalSupply}.",
|
||
|
"id": 600,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "totalSupply",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 593,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "1579:2:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 596,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 595,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 600,
|
||
|
"src": "1603:7:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 594,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1603:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "1602:9:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "1559:89:4",
|
||
|
"stateMutability": "view",
|
||
|
"superFunction": 980,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 611,
|
||
|
"nodeType": "Block",
|
||
|
"src": "1772:42:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 607,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "1789:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 609,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 608,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 602,
|
||
|
"src": "1799:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "1789:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"functionReturnParameters": 606,
|
||
|
"id": 610,
|
||
|
"nodeType": "Return",
|
||
|
"src": "1782:25:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-balanceOf}.",
|
||
|
"id": 612,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "balanceOf",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 603,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 602,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 612,
|
||
|
"src": "1725:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 601,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1725:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "1724:17:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 606,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 605,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 612,
|
||
|
"src": "1763:7:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 604,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1763:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "1762:9:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "1706:108:4",
|
||
|
"stateMutability": "view",
|
||
|
"superFunction": 987,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 630,
|
||
|
"nodeType": "Block",
|
||
|
"src": "2092:80:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 622,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "2112:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 623,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2112:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 624,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 614,
|
||
|
"src": "2126:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 625,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 616,
|
||
|
"src": "2137:6:4",
|
||
|
"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": 621,
|
||
|
"name": "_transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 814,
|
||
|
"src": "2102:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 626,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2102:42:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 627,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "2102:42:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 628,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "2161:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 620,
|
||
|
"id": 629,
|
||
|
"nodeType": "Return",
|
||
|
"src": "2154:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 631,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "transfer",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 617,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 614,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 631,
|
||
|
"src": "2035:17:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 613,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2035:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 616,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 631,
|
||
|
"src": "2054:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 615,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2054:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2034:35:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 620,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 619,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 631,
|
||
|
"src": "2086:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 618,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2086:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2085:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "2017:155:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": 996,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 646,
|
||
|
"nodeType": "Block",
|
||
|
"src": "2311:51:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 640,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "2328:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 642,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 641,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 633,
|
||
|
"src": "2340:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "2328:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 644,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 643,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 635,
|
||
|
"src": "2347:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "2328:27:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"functionReturnParameters": 639,
|
||
|
"id": 645,
|
||
|
"nodeType": "Return",
|
||
|
"src": "2321:34:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-allowance}.",
|
||
|
"id": 647,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "allowance",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 636,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 633,
|
||
|
"name": "owner",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 647,
|
||
|
"src": "2249:13:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 632,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2249:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 635,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 647,
|
||
|
"src": "2264:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 634,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2264:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2248:32:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 639,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 638,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 647,
|
||
|
"src": "2302:7:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 637,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2302:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2301:9:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "2230:132:4",
|
||
|
"stateMutability": "view",
|
||
|
"superFunction": 1005,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 665,
|
||
|
"nodeType": "Block",
|
||
|
"src": "2572:77:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 657,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "2591:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 658,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2591:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 659,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 649,
|
||
|
"src": "2605:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 660,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 651,
|
||
|
"src": "2614:6:4",
|
||
|
"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": 656,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "2582:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 661,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2582:39:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 662,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "2582:39:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 663,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "2638:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 655,
|
||
|
"id": 664,
|
||
|
"nodeType": "Return",
|
||
|
"src": "2631:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.",
|
||
|
"id": 666,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "approve",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 652,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 649,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 666,
|
||
|
"src": "2517:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 648,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2517:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 651,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 666,
|
||
|
"src": "2534:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 650,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2534:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2516:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 655,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 654,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 666,
|
||
|
"src": "2566:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 653,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2566:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2565:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "2500:149:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": 1014,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 701,
|
||
|
"nodeType": "Block",
|
||
|
"src": "3202:205:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 678,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 668,
|
||
|
"src": "3222:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 679,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 670,
|
||
|
"src": "3230:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 680,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 672,
|
||
|
"src": "3241:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 677,
|
||
|
"name": "_transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 814,
|
||
|
"src": "3212:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 681,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3212:36:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 682,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "3212:36:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 684,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 668,
|
||
|
"src": "3267:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 685,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3275:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 686,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3275:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 694,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 672,
|
||
|
"src": "3327:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
|
||
|
"id": 695,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "3335:42:4",
|
||
|
"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": 687,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "3289:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 689,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 688,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 668,
|
||
|
"src": "3301:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3289:19:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 692,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 690,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3309:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 691,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3309:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3289:33:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 693,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "3289:37:4",
|
||
|
"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": 696,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3289:89:4",
|
||
|
"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": 683,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "3258:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 697,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3258:121:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 698,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "3258:121:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 699,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "3396:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 676,
|
||
|
"id": 700,
|
||
|
"nodeType": "Return",
|
||
|
"src": "3389:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 702,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "transferFrom",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 673,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 668,
|
||
|
"name": "sender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3129:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 667,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3129:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 670,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3145:17:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 669,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3145:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 672,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3164:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 671,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3164:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3128:51:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 676,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 675,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3196:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 674,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3196:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3195:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "3107:300:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": 1025,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 728,
|
||
|
"nodeType": "Block",
|
||
|
"src": "3888:121:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 712,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3907:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 713,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3907:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 714,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 704,
|
||
|
"src": "3921:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 722,
|
||
|
"name": "addedValue",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 706,
|
||
|
"src": "3969:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 715,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "3930:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 718,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 716,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3942:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 717,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3942:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3930:25:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 720,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 719,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 704,
|
||
|
"src": "3956:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3930:34:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 721,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "3930:38:4",
|
||
|
"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": 723,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3930:50:4",
|
||
|
"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": 711,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "3898:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 724,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3898:83:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 725,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "3898:83:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 726,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "3998:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 710,
|
||
|
"id": 727,
|
||
|
"nodeType": "Return",
|
||
|
"src": "3991:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 729,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "increaseAllowance",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 707,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 704,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 729,
|
||
|
"src": "3829:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 703,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3829:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 706,
|
||
|
"name": "addedValue",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 729,
|
||
|
"src": "3846:18:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 705,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3846:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3828:37:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 710,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 709,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 729,
|
||
|
"src": "3882:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 708,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3882:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3881:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "3802:207:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 756,
|
||
|
"nodeType": "Block",
|
||
|
"src": "4587:167:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 739,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "4606:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 740,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4606:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 741,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 731,
|
||
|
"src": "4620:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 749,
|
||
|
"name": "subtractedValue",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 733,
|
||
|
"src": "4668:15:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
|
||
|
"id": 750,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "4685:39:4",
|
||
|
"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": 742,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "4629:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 745,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 743,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "4641:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 744,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4641:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "4629:25:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 747,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 746,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 731,
|
||
|
"src": "4655:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "4629:34:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 748,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "4629:38:4",
|
||
|
"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": 751,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4629:96:4",
|
||
|
"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": 738,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "4597:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 752,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4597:129:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 753,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "4597:129:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 754,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "4743:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 737,
|
||
|
"id": 755,
|
||
|
"nodeType": "Return",
|
||
|
"src": "4736:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 757,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "decreaseAllowance",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 734,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 731,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 757,
|
||
|
"src": "4523:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 730,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "4523:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 733,
|
||
|
"name": "subtractedValue",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 757,
|
||
|
"src": "4540:23:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 732,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "4540:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "4522:42:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 737,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 736,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 757,
|
||
|
"src": "4581:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 735,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "4581:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "4580:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "4496:258:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 813,
|
||
|
"nodeType": "Block",
|
||
|
"src": "5307:385:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 771,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 767,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5325:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 769,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5343:1:4",
|
||
|
"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": 768,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "5335:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 770,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5335:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "5325:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
|
||
|
"id": 772,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5347:39:4",
|
||
|
"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": 766,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "5317:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 773,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5317:70:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 774,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5317:70:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 780,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 776,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5405:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 778,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5426:1:4",
|
||
|
"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": 777,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "5418:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 779,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5418:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "5405:23:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
|
||
|
"id": 781,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5430:37:4",
|
||
|
"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": 775,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "5397:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 782,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5397:71:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 783,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5397:71:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 794,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 784,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5479:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 786,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 785,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5489:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5479:17:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 791,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 763,
|
||
|
"src": "5521:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
|
||
|
"id": 792,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5529:40:4",
|
||
|
"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": 787,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5499:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 789,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 788,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5509:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5499:17:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 790,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "5499:21:4",
|
||
|
"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": 793,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5499:71:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "5479:91:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 795,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5479:91:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 805,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 796,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5580:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 798,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 797,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5590:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5580:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 803,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 763,
|
||
|
"src": "5628:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 799,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5603:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 801,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 800,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5613:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5603:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 802,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "5603:24:4",
|
||
|
"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": 804,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5603:32:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "5580:55:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 806,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5580:55:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 808,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5659:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 809,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5667:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 810,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 763,
|
||
|
"src": "5678:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 807,
|
||
|
"name": "Transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1033,
|
||
|
"src": "5650:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 811,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5650:35:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 812,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "5645:40:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 814,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_transfer",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 764,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 759,
|
||
|
"name": "sender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 814,
|
||
|
"src": "5247:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 758,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5247:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 761,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 814,
|
||
|
"src": "5263:17:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 760,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5263:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 763,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 814,
|
||
|
"src": "5282:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 762,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5282:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "5246:51:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 765,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "5307:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "5228:464:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 856,
|
||
|
"nodeType": "Block",
|
||
|
"src": "6019:245:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 826,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 822,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6037:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 824,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6056:1:4",
|
||
|
"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": 823,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6048:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 825,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6048:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "6037:21:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
|
||
|
"id": 827,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6060:33:4",
|
||
|
"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": 821,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "6029:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 828,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6029:65:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 829,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6029:65:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 835,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 830,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6105:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 833,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 818,
|
||
|
"src": "6137:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 831,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6120:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 832,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "6120:16:4",
|
||
|
"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": 834,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6120:24:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6105:39:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 836,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6105:39:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 846,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 837,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6154:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 839,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 838,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6164:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6154:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 844,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 818,
|
||
|
"src": "6198:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 840,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6175:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 842,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 841,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6185:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6175:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 843,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "6175:22:4",
|
||
|
"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": 845,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6175:30:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6154:51:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 847,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6154:51:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 850,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6237:1:4",
|
||
|
"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": 849,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6229:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 851,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6229:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 852,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6241:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 853,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 818,
|
||
|
"src": "6250:6:4",
|
||
|
"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": 848,
|
||
|
"name": "Transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1033,
|
||
|
"src": "6220:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 854,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6220:37:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 855,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "6215:42:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 857,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_mint",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 819,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 816,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 857,
|
||
|
"src": "5977:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 815,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5977:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 818,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 857,
|
||
|
"src": "5994:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 817,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5994:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "5976:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 820,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "6019:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "5962:302:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 900,
|
||
|
"nodeType": "Block",
|
||
|
"src": "6641:285:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 869,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 865,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6659:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 867,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6678:1:4",
|
||
|
"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": 866,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6670:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 868,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6670:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "6659:21:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
|
||
|
"id": 870,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6682:35:4",
|
||
|
"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": 864,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "6651:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 871,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6651:67:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 872,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6651:67:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 883,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 873,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6729:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 875,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 874,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6739:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6729:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 880,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 861,
|
||
|
"src": "6773:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
|
||
|
"id": 881,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6781:36:4",
|
||
|
"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": 876,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6750:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 878,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 877,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6760:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6750:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 879,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "6750:22:4",
|
||
|
"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": 882,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6750:68:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6729:89:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 884,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6729:89:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 890,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 885,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6828:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 888,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 861,
|
||
|
"src": "6860:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 886,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6843:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 887,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 424,
|
||
|
"src": "6843:16:4",
|
||
|
"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": 889,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6843:24:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6828:39:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 891,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6828:39:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 893,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6891:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 895,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6908:1:4",
|
||
|
"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": 894,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6900:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 896,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6900:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 897,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 861,
|
||
|
"src": "6912:6:4",
|
||
|
"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": 892,
|
||
|
"name": "Transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1033,
|
||
|
"src": "6882:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 898,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6882:37:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 899,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "6877:42:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 901,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_burn",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 862,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 859,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 901,
|
||
|
"src": "6599:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 858,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "6599:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 861,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 901,
|
||
|
"src": "6616:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 860,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "6616:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "6598:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 863,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "6641:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "6584:342:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 942,
|
||
|
"nodeType": "Block",
|
||
|
"src": "7426:257:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 915,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 911,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 903,
|
||
|
"src": "7444:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 913,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7461:1:4",
|
||
|
"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": 912,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "7453:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 914,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7453:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "7444:19:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
|
||
|
"id": 916,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7465:38:4",
|
||
|
"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": 910,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "7436:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 917,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7436:68:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 918,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7436:68:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 924,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 920,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 905,
|
||
|
"src": "7522:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 922,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7541:1:4",
|
||
|
"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": 921,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "7533:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 923,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7533:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "7522:21:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
|
||
|
"id": 925,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7545:36:4",
|
||
|
"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": 919,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "7514:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 926,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7514:68:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 927,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7514:68:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 934,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 928,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "7593:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 931,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 929,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 903,
|
||
|
"src": "7605:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7593:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 932,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 930,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 905,
|
||
|
"src": "7612:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7593:27:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 933,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 907,
|
||
|
"src": "7623:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "7593:36:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 935,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7593:36:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 937,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 903,
|
||
|
"src": "7653:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 938,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 905,
|
||
|
"src": "7660:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 939,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 907,
|
||
|
"src": "7669:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 936,
|
||
|
"name": "Approval",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1041,
|
||
|
"src": "7644:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 940,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7644:32:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 941,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "7639:37:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 943,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_approve",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 908,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 903,
|
||
|
"name": "owner",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 943,
|
||
|
"src": "7369:13:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 902,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7369:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 905,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 943,
|
||
|
"src": "7384:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 904,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7384:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 907,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 943,
|
||
|
"src": "7401:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 906,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7401:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "7368:48:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 909,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "7426:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "7351:332:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 971,
|
||
|
"nodeType": "Block",
|
||
|
"src": "7922:168:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 951,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 945,
|
||
|
"src": "7938:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 952,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 947,
|
||
|
"src": "7947:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 950,
|
||
|
"name": "_burn",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 901,
|
||
|
"src": "7932:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 953,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7932:22:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 954,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7932:22:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 956,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 945,
|
||
|
"src": "7973:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 957,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "7982:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 958,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7982:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 966,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 947,
|
||
|
"src": "8035:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365",
|
||
|
"id": 967,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "8043:38:4",
|
||
|
"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": 959,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "7996:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 961,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 960,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 945,
|
||
|
"src": "8008:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7996:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 964,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 962,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "8017:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 963,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "8017:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7996:34:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 965,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "7996:38:4",
|
||
|
"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": 968,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7996:86:4",
|
||
|
"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": 955,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "7964:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 969,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7964:119:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 970,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7964:119:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.",
|
||
|
"id": 972,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_burnFrom",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 948,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 945,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 972,
|
||
|
"src": "7880:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 944,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7880:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 947,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 972,
|
||
|
"src": "7897:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 946,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7897:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "7879:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 949,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "7922:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "7861:229:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"scope": 974,
|
||
|
"src": "1268:6824:4"
|
||
|
}
|
||
|
],
|
||
|
"src": "0:8093:4"
|
||
|
},
|
||
|
"legacyAST": {
|
||
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
|
||
|
"exportedSymbols": {
|
||
|
"ERC20": [
|
||
|
973
|
||
|
]
|
||
|
},
|
||
|
"id": 974,
|
||
|
"nodeType": "SourceUnit",
|
||
|
"nodes": [
|
||
|
{
|
||
|
"id": 570,
|
||
|
"literals": [
|
||
|
"solidity",
|
||
|
"^",
|
||
|
"0.5",
|
||
|
".0"
|
||
|
],
|
||
|
"nodeType": "PragmaDirective",
|
||
|
"src": "0:23:4"
|
||
|
},
|
||
|
{
|
||
|
"absolutePath": "@openzeppelin/contracts/GSN/Context.sol",
|
||
|
"file": "../../GSN/Context.sol",
|
||
|
"id": 571,
|
||
|
"nodeType": "ImportDirective",
|
||
|
"scope": 974,
|
||
|
"sourceUnit": 382,
|
||
|
"src": "25:31:4",
|
||
|
"symbolAliases": [],
|
||
|
"unitAlias": ""
|
||
|
},
|
||
|
{
|
||
|
"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
||
|
"file": "./IERC20.sol",
|
||
|
"id": 572,
|
||
|
"nodeType": "ImportDirective",
|
||
|
"scope": 974,
|
||
|
"sourceUnit": 1043,
|
||
|
"src": "57:22:4",
|
||
|
"symbolAliases": [],
|
||
|
"unitAlias": ""
|
||
|
},
|
||
|
{
|
||
|
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
|
||
|
"file": "../../math/SafeMath.sol",
|
||
|
"id": 573,
|
||
|
"nodeType": "ImportDirective",
|
||
|
"scope": 974,
|
||
|
"sourceUnit": 569,
|
||
|
"src": "80:33:4",
|
||
|
"symbolAliases": [],
|
||
|
"unitAlias": ""
|
||
|
},
|
||
|
{
|
||
|
"baseContracts": [
|
||
|
{
|
||
|
"arguments": null,
|
||
|
"baseName": {
|
||
|
"contractScope": null,
|
||
|
"id": 574,
|
||
|
"name": "Context",
|
||
|
"nodeType": "UserDefinedTypeName",
|
||
|
"referencedDeclaration": 381,
|
||
|
"src": "1286:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_contract$_Context_$381",
|
||
|
"typeString": "contract Context"
|
||
|
}
|
||
|
},
|
||
|
"id": 575,
|
||
|
"nodeType": "InheritanceSpecifier",
|
||
|
"src": "1286:7:4"
|
||
|
},
|
||
|
{
|
||
|
"arguments": null,
|
||
|
"baseName": {
|
||
|
"contractScope": null,
|
||
|
"id": 576,
|
||
|
"name": "IERC20",
|
||
|
"nodeType": "UserDefinedTypeName",
|
||
|
"referencedDeclaration": 1042,
|
||
|
"src": "1295:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_contract$_IERC20_$1042",
|
||
|
"typeString": "contract IERC20"
|
||
|
}
|
||
|
},
|
||
|
"id": 577,
|
||
|
"nodeType": "InheritanceSpecifier",
|
||
|
"src": "1295:6:4"
|
||
|
}
|
||
|
],
|
||
|
"contractDependencies": [
|
||
|
381,
|
||
|
1042
|
||
|
],
|
||
|
"contractKind": "contract",
|
||
|
"documentation": "@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}.",
|
||
|
"fullyImplemented": true,
|
||
|
"id": 973,
|
||
|
"linearizedBaseContracts": [
|
||
|
973,
|
||
|
1042,
|
||
|
381
|
||
|
],
|
||
|
"name": "ERC20",
|
||
|
"nodeType": "ContractDefinition",
|
||
|
"nodes": [
|
||
|
{
|
||
|
"id": 580,
|
||
|
"libraryName": {
|
||
|
"contractScope": null,
|
||
|
"id": 578,
|
||
|
"name": "SafeMath",
|
||
|
"nodeType": "UserDefinedTypeName",
|
||
|
"referencedDeclaration": 568,
|
||
|
"src": "1314:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_contract$_SafeMath_$568",
|
||
|
"typeString": "library SafeMath"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "UsingForDirective",
|
||
|
"src": "1308:27:4",
|
||
|
"typeName": {
|
||
|
"id": 579,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1327:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 584,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 973,
|
||
|
"src": "1341:46:4",
|
||
|
"stateVariable": true,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 583,
|
||
|
"keyType": {
|
||
|
"id": 581,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1350:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Mapping",
|
||
|
"src": "1341:28:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
},
|
||
|
"valueType": {
|
||
|
"id": 582,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1361:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "private"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 590,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 973,
|
||
|
"src": "1394:69:4",
|
||
|
"stateVariable": true,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 589,
|
||
|
"keyType": {
|
||
|
"id": 585,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1403:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Mapping",
|
||
|
"src": "1394:49:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
},
|
||
|
"valueType": {
|
||
|
"id": 588,
|
||
|
"keyType": {
|
||
|
"id": 586,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1423:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Mapping",
|
||
|
"src": "1414:28:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
},
|
||
|
"valueType": {
|
||
|
"id": 587,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1434:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "private"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 592,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 973,
|
||
|
"src": "1470:28:4",
|
||
|
"stateVariable": true,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 591,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1470:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "private"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 599,
|
||
|
"nodeType": "Block",
|
||
|
"src": "1612:36:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 597,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "1629:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"functionReturnParameters": 596,
|
||
|
"id": 598,
|
||
|
"nodeType": "Return",
|
||
|
"src": "1622:19:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-totalSupply}.",
|
||
|
"id": 600,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "totalSupply",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 593,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "1579:2:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 596,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 595,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 600,
|
||
|
"src": "1603:7:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 594,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1603:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "1602:9:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "1559:89:4",
|
||
|
"stateMutability": "view",
|
||
|
"superFunction": 980,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 611,
|
||
|
"nodeType": "Block",
|
||
|
"src": "1772:42:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 607,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "1789:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 609,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 608,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 602,
|
||
|
"src": "1799:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "1789:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"functionReturnParameters": 606,
|
||
|
"id": 610,
|
||
|
"nodeType": "Return",
|
||
|
"src": "1782:25:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-balanceOf}.",
|
||
|
"id": 612,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "balanceOf",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 603,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 602,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 612,
|
||
|
"src": "1725:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 601,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1725:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "1724:17:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 606,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 605,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 612,
|
||
|
"src": "1763:7:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 604,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "1763:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "1762:9:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "1706:108:4",
|
||
|
"stateMutability": "view",
|
||
|
"superFunction": 987,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 630,
|
||
|
"nodeType": "Block",
|
||
|
"src": "2092:80:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 622,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "2112:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 623,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2112:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 624,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 614,
|
||
|
"src": "2126:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 625,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 616,
|
||
|
"src": "2137:6:4",
|
||
|
"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": 621,
|
||
|
"name": "_transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 814,
|
||
|
"src": "2102:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 626,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2102:42:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 627,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "2102:42:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 628,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "2161:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 620,
|
||
|
"id": 629,
|
||
|
"nodeType": "Return",
|
||
|
"src": "2154:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 631,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "transfer",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 617,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 614,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 631,
|
||
|
"src": "2035:17:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 613,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2035:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 616,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 631,
|
||
|
"src": "2054:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 615,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2054:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2034:35:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 620,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 619,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 631,
|
||
|
"src": "2086:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 618,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2086:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2085:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "2017:155:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": 996,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 646,
|
||
|
"nodeType": "Block",
|
||
|
"src": "2311:51:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 640,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "2328:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 642,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 641,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 633,
|
||
|
"src": "2340:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "2328:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 644,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 643,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 635,
|
||
|
"src": "2347:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "2328:27:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"functionReturnParameters": 639,
|
||
|
"id": 645,
|
||
|
"nodeType": "Return",
|
||
|
"src": "2321:34:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-allowance}.",
|
||
|
"id": 647,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "allowance",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 636,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 633,
|
||
|
"name": "owner",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 647,
|
||
|
"src": "2249:13:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 632,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2249:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 635,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 647,
|
||
|
"src": "2264:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 634,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2264:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2248:32:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 639,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 638,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 647,
|
||
|
"src": "2302:7:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 637,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2302:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2301:9:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "2230:132:4",
|
||
|
"stateMutability": "view",
|
||
|
"superFunction": 1005,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 665,
|
||
|
"nodeType": "Block",
|
||
|
"src": "2572:77:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 657,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "2591:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 658,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2591:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 659,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 649,
|
||
|
"src": "2605:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 660,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 651,
|
||
|
"src": "2614:6:4",
|
||
|
"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": 656,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "2582:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 661,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "2582:39:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 662,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "2582:39:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 663,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "2638:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 655,
|
||
|
"id": 664,
|
||
|
"nodeType": "Return",
|
||
|
"src": "2631:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.",
|
||
|
"id": 666,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "approve",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 652,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 649,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 666,
|
||
|
"src": "2517:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 648,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2517:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 651,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 666,
|
||
|
"src": "2534:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 650,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2534:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2516:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 655,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 654,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 666,
|
||
|
"src": "2566:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 653,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "2566:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "2565:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "2500:149:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": 1014,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 701,
|
||
|
"nodeType": "Block",
|
||
|
"src": "3202:205:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 678,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 668,
|
||
|
"src": "3222:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 679,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 670,
|
||
|
"src": "3230:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 680,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 672,
|
||
|
"src": "3241:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 677,
|
||
|
"name": "_transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 814,
|
||
|
"src": "3212:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 681,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3212:36:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 682,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "3212:36:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 684,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 668,
|
||
|
"src": "3267:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 685,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3275:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 686,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3275:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 694,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 672,
|
||
|
"src": "3327:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
|
||
|
"id": 695,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "3335:42:4",
|
||
|
"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": 687,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "3289:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 689,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 688,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 668,
|
||
|
"src": "3301:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3289:19:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 692,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 690,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3309:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 691,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3309:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3289:33:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 693,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "3289:37:4",
|
||
|
"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": 696,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3289:89:4",
|
||
|
"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": 683,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "3258:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 697,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3258:121:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 698,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "3258:121:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 699,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "3396:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 676,
|
||
|
"id": 700,
|
||
|
"nodeType": "Return",
|
||
|
"src": "3389:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 702,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "transferFrom",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 673,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 668,
|
||
|
"name": "sender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3129:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 667,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3129:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 670,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3145:17:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 669,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3145:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 672,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3164:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 671,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3164:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3128:51:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 676,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 675,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 702,
|
||
|
"src": "3196:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 674,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3196:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3195:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "3107:300:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": 1025,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 728,
|
||
|
"nodeType": "Block",
|
||
|
"src": "3888:121:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 712,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3907:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 713,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3907:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 714,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 704,
|
||
|
"src": "3921:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 722,
|
||
|
"name": "addedValue",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 706,
|
||
|
"src": "3969:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 715,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "3930:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 718,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 716,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "3942:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 717,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3942:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3930:25:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 720,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 719,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 704,
|
||
|
"src": "3956:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "3930:34:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 721,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "3930:38:4",
|
||
|
"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": 723,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3930:50:4",
|
||
|
"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": 711,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "3898:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 724,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "3898:83:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 725,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "3898:83:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 726,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "3998:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 710,
|
||
|
"id": 727,
|
||
|
"nodeType": "Return",
|
||
|
"src": "3991:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 729,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "increaseAllowance",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 707,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 704,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 729,
|
||
|
"src": "3829:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 703,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3829:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 706,
|
||
|
"name": "addedValue",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 729,
|
||
|
"src": "3846:18:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 705,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3846:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3828:37:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 710,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 709,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 729,
|
||
|
"src": "3882:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 708,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "3882:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "3881:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "3802:207:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 756,
|
||
|
"nodeType": "Block",
|
||
|
"src": "4587:167:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 739,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "4606:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 740,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4606:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 741,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 731,
|
||
|
"src": "4620:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 749,
|
||
|
"name": "subtractedValue",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 733,
|
||
|
"src": "4668:15:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
|
||
|
"id": 750,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "4685:39:4",
|
||
|
"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": 742,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "4629:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 745,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 743,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "4641:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 744,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4641:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "4629:25:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 747,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 746,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 731,
|
||
|
"src": "4655:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "4629:34:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 748,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "4629:38:4",
|
||
|
"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": 751,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4629:96:4",
|
||
|
"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": 738,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "4597:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 752,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "4597:129:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 753,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "4597:129:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "74727565",
|
||
|
"id": 754,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "bool",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "4743:4:4",
|
||
|
"subdenomination": null,
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"value": "true"
|
||
|
},
|
||
|
"functionReturnParameters": 737,
|
||
|
"id": 755,
|
||
|
"nodeType": "Return",
|
||
|
"src": "4736:11:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 757,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "decreaseAllowance",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 734,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 731,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 757,
|
||
|
"src": "4523:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 730,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "4523:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 733,
|
||
|
"name": "subtractedValue",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 757,
|
||
|
"src": "4540:23:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 732,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "4540:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "4522:42:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 737,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 736,
|
||
|
"name": "",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 757,
|
||
|
"src": "4581:4:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 735,
|
||
|
"name": "bool",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "4581:4:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "4580:6:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "4496:258:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "public"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 813,
|
||
|
"nodeType": "Block",
|
||
|
"src": "5307:385:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 771,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 767,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5325:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 769,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5343:1:4",
|
||
|
"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": 768,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "5335:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 770,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5335:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "5325:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
|
||
|
"id": 772,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5347:39:4",
|
||
|
"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": 766,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "5317:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 773,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5317:70:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 774,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5317:70:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 780,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 776,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5405:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 778,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5426:1:4",
|
||
|
"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": 777,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "5418:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 779,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5418:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "5405:23:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
|
||
|
"id": 781,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5430:37:4",
|
||
|
"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": 775,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "5397:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 782,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5397:71:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 783,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5397:71:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 794,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 784,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5479:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 786,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 785,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5489:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5479:17:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 791,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 763,
|
||
|
"src": "5521:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
|
||
|
"id": 792,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "5529:40:4",
|
||
|
"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": 787,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5499:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 789,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 788,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5509:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5499:17:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 790,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "5499:21:4",
|
||
|
"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": 793,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5499:71:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "5479:91:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 795,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5479:91:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 805,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 796,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5580:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 798,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 797,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5590:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5580:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 803,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 763,
|
||
|
"src": "5628:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 799,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "5603:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 801,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 800,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5613:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "5603:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 802,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "5603:24:4",
|
||
|
"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": 804,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5603:32:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "5580:55:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 806,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "5580:55:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 808,
|
||
|
"name": "sender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 759,
|
||
|
"src": "5659:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 809,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 761,
|
||
|
"src": "5667:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 810,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 763,
|
||
|
"src": "5678:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 807,
|
||
|
"name": "Transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1033,
|
||
|
"src": "5650:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 811,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "5650:35:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 812,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "5645:40:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 814,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_transfer",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 764,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 759,
|
||
|
"name": "sender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 814,
|
||
|
"src": "5247:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 758,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5247:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 761,
|
||
|
"name": "recipient",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 814,
|
||
|
"src": "5263:17:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 760,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5263:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 763,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 814,
|
||
|
"src": "5282:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 762,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5282:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "5246:51:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 765,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "5307:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "5228:464:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 856,
|
||
|
"nodeType": "Block",
|
||
|
"src": "6019:245:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 826,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 822,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6037:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 824,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6056:1:4",
|
||
|
"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": 823,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6048:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 825,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6048:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "6037:21:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
|
||
|
"id": 827,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6060:33:4",
|
||
|
"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": 821,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "6029:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 828,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6029:65:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 829,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6029:65:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 835,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 830,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6105:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 833,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 818,
|
||
|
"src": "6137:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 831,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6120:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 832,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "6120:16:4",
|
||
|
"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": 834,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6120:24:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6105:39:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 836,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6105:39:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 846,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 837,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6154:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 839,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 838,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6164:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6154:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 844,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 818,
|
||
|
"src": "6198:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 840,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6175:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 842,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 841,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6185:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6175:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 843,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "add",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 408,
|
||
|
"src": "6175:22:4",
|
||
|
"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": 845,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6175:30:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6154:51:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 847,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6154:51:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 850,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6237:1:4",
|
||
|
"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": 849,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6229:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 851,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6229:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 852,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 816,
|
||
|
"src": "6241:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 853,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 818,
|
||
|
"src": "6250:6:4",
|
||
|
"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": 848,
|
||
|
"name": "Transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1033,
|
||
|
"src": "6220:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 854,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6220:37:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 855,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "6215:42:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 857,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_mint",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 819,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 816,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 857,
|
||
|
"src": "5977:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 815,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5977:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 818,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 857,
|
||
|
"src": "5994:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 817,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "5994:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "5976:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 820,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "6019:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "5962:302:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 900,
|
||
|
"nodeType": "Block",
|
||
|
"src": "6641:285:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 869,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 865,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6659:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 867,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6678:1:4",
|
||
|
"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": 866,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6670:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 868,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6670:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "6659:21:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
|
||
|
"id": 870,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6682:35:4",
|
||
|
"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": 864,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "6651:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 871,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6651:67:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 872,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6651:67:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 883,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 873,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6729:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 875,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 874,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6739:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6729:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 880,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 861,
|
||
|
"src": "6773:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
|
||
|
"id": 881,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6781:36:4",
|
||
|
"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": 876,
|
||
|
"name": "_balances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 584,
|
||
|
"src": "6750:9:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 878,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 877,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6760:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "6750:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 879,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "6750:22:4",
|
||
|
"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": 882,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6750:68:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6729:89:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 884,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6729:89:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 890,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 885,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6828:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 888,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 861,
|
||
|
"src": "6860:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 886,
|
||
|
"name": "_totalSupply",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 592,
|
||
|
"src": "6843:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 887,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 424,
|
||
|
"src": "6843:16:4",
|
||
|
"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": 889,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6843:24:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "6828:39:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 891,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "6828:39:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 893,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 859,
|
||
|
"src": "6891:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 895,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "6908:1:4",
|
||
|
"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": 894,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "6900:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 896,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6900:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 897,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 861,
|
||
|
"src": "6912:6:4",
|
||
|
"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": 892,
|
||
|
"name": "Transfer",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1033,
|
||
|
"src": "6882:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 898,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "6882:37:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 899,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "6877:42:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 901,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_burn",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 862,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 859,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 901,
|
||
|
"src": "6599:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 858,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "6599:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 861,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 901,
|
||
|
"src": "6616:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 860,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "6616:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "6598:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 863,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "6641:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "6584:342:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 942,
|
||
|
"nodeType": "Block",
|
||
|
"src": "7426:257:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 915,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 911,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 903,
|
||
|
"src": "7444:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 913,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7461:1:4",
|
||
|
"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": 912,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "7453:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 914,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7453:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "7444:19:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
|
||
|
"id": 916,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7465:38:4",
|
||
|
"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": 910,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "7436:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 917,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7436:68:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 918,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7436:68:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"commonType": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"id": 924,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 920,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 905,
|
||
|
"src": "7522:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "BinaryOperation",
|
||
|
"operator": "!=",
|
||
|
"rightExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "30",
|
||
|
"id": 922,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "number",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7541:1:4",
|
||
|
"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": 921,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "ElementaryTypeNameExpression",
|
||
|
"src": "7533:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_type$_t_address_$",
|
||
|
"typeString": "type(address)"
|
||
|
},
|
||
|
"typeName": "address"
|
||
|
},
|
||
|
"id": 923,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "typeConversion",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7533:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"src": "7522:21:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_bool",
|
||
|
"typeString": "bool"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
|
||
|
"id": 925,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "7545:36:4",
|
||
|
"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": 919,
|
||
|
"name": "require",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [
|
||
|
1060,
|
||
|
1061
|
||
|
],
|
||
|
"referencedDeclaration": 1061,
|
||
|
"src": "7514:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
||
|
"typeString": "function (bool,string memory) pure"
|
||
|
}
|
||
|
},
|
||
|
"id": 926,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7514:68:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 927,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7514:68:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 934,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"leftHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"baseExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 928,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "7593:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 931,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 929,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 903,
|
||
|
"src": "7605:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7593:18:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 932,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 930,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 905,
|
||
|
"src": "7612:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": true,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7593:27:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"nodeType": "Assignment",
|
||
|
"operator": "=",
|
||
|
"rightHandSide": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 933,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 907,
|
||
|
"src": "7623:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"src": "7593:36:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 935,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7593:36:4"
|
||
|
},
|
||
|
{
|
||
|
"eventCall": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 937,
|
||
|
"name": "owner",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 903,
|
||
|
"src": "7653:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 938,
|
||
|
"name": "spender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 905,
|
||
|
"src": "7660:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 939,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 907,
|
||
|
"src": "7669:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 936,
|
||
|
"name": "Approval",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 1041,
|
||
|
"src": "7644:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 940,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7644:32:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 941,
|
||
|
"nodeType": "EmitStatement",
|
||
|
"src": "7639:37:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"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": 943,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_approve",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 908,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 903,
|
||
|
"name": "owner",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 943,
|
||
|
"src": "7369:13:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 902,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7369:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 905,
|
||
|
"name": "spender",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 943,
|
||
|
"src": "7384:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 904,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7384:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 907,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 943,
|
||
|
"src": "7401:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 906,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7401:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "7368:48:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 909,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "7426:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "7351:332:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"body": {
|
||
|
"id": 971,
|
||
|
"nodeType": "Block",
|
||
|
"src": "7922:168:4",
|
||
|
"statements": [
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 951,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 945,
|
||
|
"src": "7938:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 952,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 947,
|
||
|
"src": "7947:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"expression": {
|
||
|
"argumentTypes": [
|
||
|
{
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
{
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"id": 950,
|
||
|
"name": "_burn",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 901,
|
||
|
"src": "7932:5:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 953,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7932:22:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 954,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7932:22:4"
|
||
|
},
|
||
|
{
|
||
|
"expression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 956,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 945,
|
||
|
"src": "7973:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 957,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "7982:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 958,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7982:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"id": 966,
|
||
|
"name": "amount",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 947,
|
||
|
"src": "8035:6:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"argumentTypes": null,
|
||
|
"hexValue": "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365",
|
||
|
"id": 967,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": true,
|
||
|
"kind": "string",
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "Literal",
|
||
|
"src": "8043:38:4",
|
||
|
"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": 959,
|
||
|
"name": "_allowances",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 590,
|
||
|
"src": "7996:11:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
|
||
|
"typeString": "mapping(address => mapping(address => uint256))"
|
||
|
}
|
||
|
},
|
||
|
"id": 961,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"id": 960,
|
||
|
"name": "account",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 945,
|
||
|
"src": "8008:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7996:20:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
|
||
|
"typeString": "mapping(address => uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 964,
|
||
|
"indexExpression": {
|
||
|
"argumentTypes": null,
|
||
|
"arguments": [],
|
||
|
"expression": {
|
||
|
"argumentTypes": [],
|
||
|
"id": 962,
|
||
|
"name": "_msgSender",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 369,
|
||
|
"src": "8017:10:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
|
||
|
"typeString": "function () view returns (address payable)"
|
||
|
}
|
||
|
},
|
||
|
"id": 963,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "8017:12:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address_payable",
|
||
|
"typeString": "address payable"
|
||
|
}
|
||
|
},
|
||
|
"isConstant": false,
|
||
|
"isLValue": true,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"nodeType": "IndexAccess",
|
||
|
"src": "7996:34:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"id": 965,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"lValueRequested": false,
|
||
|
"memberName": "sub",
|
||
|
"nodeType": "MemberAccess",
|
||
|
"referencedDeclaration": 451,
|
||
|
"src": "7996:38:4",
|
||
|
"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": 968,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7996:86:4",
|
||
|
"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": 955,
|
||
|
"name": "_approve",
|
||
|
"nodeType": "Identifier",
|
||
|
"overloadedDeclarations": [],
|
||
|
"referencedDeclaration": 943,
|
||
|
"src": "7964:8:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
|
||
|
"typeString": "function (address,address,uint256)"
|
||
|
}
|
||
|
},
|
||
|
"id": 969,
|
||
|
"isConstant": false,
|
||
|
"isLValue": false,
|
||
|
"isPure": false,
|
||
|
"kind": "functionCall",
|
||
|
"lValueRequested": false,
|
||
|
"names": [],
|
||
|
"nodeType": "FunctionCall",
|
||
|
"src": "7964:119:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_tuple$__$",
|
||
|
"typeString": "tuple()"
|
||
|
}
|
||
|
},
|
||
|
"id": 970,
|
||
|
"nodeType": "ExpressionStatement",
|
||
|
"src": "7964:119:4"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"documentation": "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.",
|
||
|
"id": 972,
|
||
|
"implemented": true,
|
||
|
"kind": "function",
|
||
|
"modifiers": [],
|
||
|
"name": "_burnFrom",
|
||
|
"nodeType": "FunctionDefinition",
|
||
|
"parameters": {
|
||
|
"id": 948,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 945,
|
||
|
"name": "account",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 972,
|
||
|
"src": "7880:15:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 944,
|
||
|
"name": "address",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7880:7:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_address",
|
||
|
"typeString": "address"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
},
|
||
|
{
|
||
|
"constant": false,
|
||
|
"id": 947,
|
||
|
"name": "amount",
|
||
|
"nodeType": "VariableDeclaration",
|
||
|
"scope": 972,
|
||
|
"src": "7897:14:4",
|
||
|
"stateVariable": false,
|
||
|
"storageLocation": "default",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
},
|
||
|
"typeName": {
|
||
|
"id": 946,
|
||
|
"name": "uint256",
|
||
|
"nodeType": "ElementaryTypeName",
|
||
|
"src": "7897:7:4",
|
||
|
"typeDescriptions": {
|
||
|
"typeIdentifier": "t_uint256",
|
||
|
"typeString": "uint256"
|
||
|
}
|
||
|
},
|
||
|
"value": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"src": "7879:33:4"
|
||
|
},
|
||
|
"returnParameters": {
|
||
|
"id": 949,
|
||
|
"nodeType": "ParameterList",
|
||
|
"parameters": [],
|
||
|
"src": "7922:0:4"
|
||
|
},
|
||
|
"scope": 973,
|
||
|
"src": "7861:229:4",
|
||
|
"stateMutability": "nonpayable",
|
||
|
"superFunction": null,
|
||
|
"visibility": "internal"
|
||
|
}
|
||
|
],
|
||
|
"scope": 974,
|
||
|
"src": "1268:6824:4"
|
||
|
}
|
||
|
],
|
||
|
"src": "0:8093:4"
|
||
|
},
|
||
|
"compiler": {
|
||
|
"name": "solc",
|
||
|
"version": "0.5.12+commit.7709ece9.Emscripten.clang"
|
||
|
},
|
||
|
"networks": {},
|
||
|
"schemaVersion": "3.0.19",
|
||
|
"updatedAt": "2019-12-29T01:52:30.756Z",
|
||
|
"devdoc": {
|
||
|
"details": "Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. * Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.",
|
||
|
"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}."
|
||
|
},
|
||
|
"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."
|
||
|
},
|
||
|
"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": {}
|
||
|
}
|
||
|
}
|