Files
dodo-contractV2/build-v1/contracts/WETH9.json
2020-11-10 18:38:34 +08:00

6950 lines
282 KiB
JSON

{
"contractName": "WETH9",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "src",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "guy",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "dst",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "src",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "dst",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "src",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "Withdrawal",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "guy",
"type": "address"
},
{
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "dst",
"type": "address"
},
{
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "src",
"type": "address"
},
{
"internalType": "address",
"name": "dst",
"type": "address"
},
{
"internalType": "uint256",
"name": "wad",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol\":\"WETH9\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol\":{\"keccak256\":\"0x72eaab74270627103011243f9c2d1e91ab18e234b08426981ad9da129c76797f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://de33b645dd3cf368de9074ebddbf1a40ce697e6d320a330ca6f7bb5c2bc7d349\",\"dweb:/ipfs/Qmf9QyTZSBExDnqWFHbheZkuc8Uh8efjq5LamhniGqdgtn\"]}},\"version\":1}",
"bytecode": "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6106f5806101246000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461022257806370a082311461024d57806395d89b4114610280578063a9059cbb14610295578063d0e30db0146100af578063dd62ed3e146102ce576100af565b806306fdde03146100b7578063095ea7b31461014157806318160ddd1461018e57806323b872dd146101b55780632e1a7d4d146101f8576100af565b366100af576100ad610309565b005b6100ad610309565b3480156100c357600080fd5b506100cc610358565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101065781810151838201526020016100ee565b50505050905090810190601f1680156101335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014d57600080fd5b5061017a6004803603604081101561016457600080fd5b506001600160a01b0381351690602001356103e6565b604080519115158252519081900360200190f35b34801561019a57600080fd5b506101a361044c565b60408051918252519081900360200190f35b3480156101c157600080fd5b5061017a600480360360608110156101d857600080fd5b506001600160a01b03813581169160208101359091169060400135610450565b34801561020457600080fd5b506100ad6004803603602081101561021b57600080fd5b5035610584565b34801561022e57600080fd5b50610237610619565b6040805160ff9092168252519081900360200190f35b34801561025957600080fd5b506101a36004803603602081101561027057600080fd5b50356001600160a01b0316610622565b34801561028c57600080fd5b506100cc610634565b3480156102a157600080fd5b5061017a600480360360408110156102b857600080fd5b506001600160a01b03813516906020013561068e565b3480156102da57600080fd5b506101a3600480360360408110156102f157600080fd5b506001600160a01b03813581169160200135166106a2565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b820191906000526020600020905b8154815290600101906020018083116103c157829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561047557600080fd5b6001600160a01b03841633148015906104b357506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b15610513576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104e857600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105a057600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105df573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b600061069b338484610450565b9392505050565b60046020908152600092835260408084209091529082529020548156fea2646970667358221220656960ed51ceeb98837f88334f94fa275f8bae235d2c1c5d54e882b8cfc0165964736f6c63430006090033",
"deployedBytecode": "0x6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461022257806370a082311461024d57806395d89b4114610280578063a9059cbb14610295578063d0e30db0146100af578063dd62ed3e146102ce576100af565b806306fdde03146100b7578063095ea7b31461014157806318160ddd1461018e57806323b872dd146101b55780632e1a7d4d146101f8576100af565b366100af576100ad610309565b005b6100ad610309565b3480156100c357600080fd5b506100cc610358565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101065781810151838201526020016100ee565b50505050905090810190601f1680156101335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014d57600080fd5b5061017a6004803603604081101561016457600080fd5b506001600160a01b0381351690602001356103e6565b604080519115158252519081900360200190f35b34801561019a57600080fd5b506101a361044c565b60408051918252519081900360200190f35b3480156101c157600080fd5b5061017a600480360360608110156101d857600080fd5b506001600160a01b03813581169160208101359091169060400135610450565b34801561020457600080fd5b506100ad6004803603602081101561021b57600080fd5b5035610584565b34801561022e57600080fd5b50610237610619565b6040805160ff9092168252519081900360200190f35b34801561025957600080fd5b506101a36004803603602081101561027057600080fd5b50356001600160a01b0316610622565b34801561028c57600080fd5b506100cc610634565b3480156102a157600080fd5b5061017a600480360360408110156102b857600080fd5b506001600160a01b03813516906020013561068e565b3480156102da57600080fd5b506101a3600480360360408110156102f157600080fd5b506001600160a01b03813581169160200135166106a2565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b820191906000526020600020905b8154815290600101906020018083116103c157829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561047557600080fd5b6001600160a01b03841633148015906104b357506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b15610513576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104e857600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105a057600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105df573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b600061069b338484610450565b9392505050565b60046020908152600092835260408084209091529082529020548156fea2646970667358221220656960ed51ceeb98837f88334f94fa275f8bae235d2c1c5d54e882b8cfc0165964736f6c63430006090033",
"immutableReferences": {},
"sourceMap": "124:36:19:-:0;103:1872;124:36;;103:1872;124:36;;;-1:-1:-1;;;124:36:19;;;;;;-1:-1:-1;;124:36:19;;:::i;:::-;-1:-1:-1;166:29:19;;;;;;;;;;;;;-1:-1:-1;;;166:29:19;;;;;;;;;;;;:::i;:::-;-1:-1:-1;201:26:19;;;-1:-1:-1;;201:26:19;225:2;201:26;;;103:1872;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;103:1872:19;;;-1:-1:-1;103:1872:19;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
"deployedSourceMap": "103:1872:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;712:9;:7;:9::i;:::-;103:1872;;653:9;:7;:9::i;124:36::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1186:180;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1186:180:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1082:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1502:471;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1502:471:19;;;;;;;;;;;;;;;;;:::i;870:206::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;870:206:19;;:::i;201:26::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;494:44;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;494:44:19;-1:-1:-1;;;;;494:44:19;;:::i;166:29::-;;;;;;;;;;;;;:::i;1372:124::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1372:124:19;;;;;;;;:::i;544:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;544:64:19;;;;;;;;;;:::i;734:130::-;788:10;778:21;;;;:9;:21;;;;;;;;;:34;;803:9;778:34;;;;;;827:30;;;;;;;;;;;;;;;;;734:130::o;124:36::-;;;;;;;;;;;;;;;-1:-1:-1;;124:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1186:180::-;1271:10;1245:4;1261:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;1261:26:19;;;;;;;;;;;:32;;;1308:30;;;;;;;1245:4;;1261:26;;1271:10;;1308:30;;;;;;;;-1:-1:-1;1355:4:19;1186:180;;;;:::o;1082:98::-;1152:21;1082:98;:::o;1502:471::-;-1:-1:-1;;;;;1633:14:19;;1609:4;1633:14;;;:9;:14;;;;;;:21;-1:-1:-1;1633:21:19;1625:30;;;;;;-1:-1:-1;;;;;1670:17:19;;1677:10;1670:17;;;;:62;;-1:-1:-1;;;;;;1691:14:19;;;;;;:9;:14;;;;;;;;1706:10;1691:26;;;;;;;;-1:-1:-1;;1691:41:19;;1670:62;1666:182;;;-1:-1:-1;;;;;1756:14:19;;;;;;:9;:14;;;;;;;;1771:10;1756:26;;;;;;;;:33;-1:-1:-1;1756:33:19;1748:42;;;;;;-1:-1:-1;;;;;1804:14:19;;;;;;:9;:14;;;;;;;;1819:10;1804:26;;;;;;;:33;;;;;;;1666:182;-1:-1:-1;;;;;1858:14:19;;;;;;;:9;:14;;;;;;;;:21;;;;;;;1889:14;;;;;;;;;;:21;;;;;;1921:23;;;;;;;1889:14;;1921:23;;;;;;;;;;;-1:-1:-1;1962:4:19;1502:471;;;;;:::o;870:206::-;936:10;926:21;;;;:9;:21;;;;;;:28;-1:-1:-1;926:28:19;918:37;;;;;;975:10;965:21;;;;:9;:21;;;;;;:28;;;;;;;1003:24;;;;;;990:3;;1003:24;;965:21;1003:24;990:3;975:10;1003:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1042:27:19;;;;;;;;1053:10;;1042:27;;;;;;;;;;870:206;:::o;201:26::-;;;;;;:::o;494:44::-;;;;;;;;;;;;;:::o;166:29::-;;;;;;;;;;;;;;;-1:-1:-1;;166:29:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1372:124;1432:4;1455:34;1468:10;1480:3;1485;1455:12;:34::i;:::-;1448:41;1372:124;-1:-1:-1;;;1372:124:19:o;544:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\n\n\ncontract WETH9 {\n string public name = \"Wrapped Ether\";\n string public symbol = \"WETH\";\n uint8 public decimals = 18;\n\n event Approval(address indexed src, address indexed guy, uint256 wad);\n event Transfer(address indexed src, address indexed dst, uint256 wad);\n event Deposit(address indexed dst, uint256 wad);\n event Withdrawal(address indexed src, uint256 wad);\n\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n fallback() external payable {\n deposit();\n }\n\n receive() external payable {\n deposit();\n }\n\n function deposit() public payable {\n balanceOf[msg.sender] += msg.value;\n emit Deposit(msg.sender, msg.value);\n }\n\n function withdraw(uint256 wad) public {\n require(balanceOf[msg.sender] >= wad);\n balanceOf[msg.sender] -= wad;\n msg.sender.transfer(wad);\n emit Withdrawal(msg.sender, wad);\n }\n\n function totalSupply() public view returns (uint256) {\n return address(this).balance;\n }\n\n function approve(address guy, uint256 wad) public returns (bool) {\n allowance[msg.sender][guy] = wad;\n emit Approval(msg.sender, guy, wad);\n return true;\n }\n\n function transfer(address dst, uint256 wad) public returns (bool) {\n return transferFrom(msg.sender, dst, wad);\n }\n\n function transferFrom(\n address src,\n address dst,\n uint256 wad\n ) public returns (bool) {\n require(balanceOf[src] >= wad);\n\n if (src != msg.sender && allowance[src][msg.sender] != uint256(-1)) {\n require(allowance[src][msg.sender] >= wad);\n allowance[src][msg.sender] -= wad;\n }\n\n balanceOf[src] -= wad;\n balanceOf[dst] += wad;\n\n Transfer(src, dst, wad);\n\n return true;\n }\n}\n",
"sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol",
"ast": {
"absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol",
"exportedSymbols": {
"WETH9": [
3952
]
},
"id": 3953,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3699,
"literals": [
"solidity",
"0.6",
".9"
],
"nodeType": "PragmaDirective",
"src": "78:22:19"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 3952,
"linearizedBaseContracts": [
3952
],
"name": "WETH9",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "06fdde03",
"id": 3702,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "124:36:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3700,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "124:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "57726170706564204574686572",
"id": 3701,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "145:15:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3",
"typeString": "literal_string \"Wrapped Ether\""
},
"value": "Wrapped Ether"
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "95d89b41",
"id": 3705,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "166:29:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3703,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "166:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "57455448",
"id": 3704,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "189:6:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8",
"typeString": "literal_string \"WETH\""
},
"value": "WETH"
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "313ce567",
"id": 3708,
"mutability": "mutable",
"name": "decimals",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "201:26:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 3706,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "201:5:19",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"argumentTypes": null,
"hexValue": "3138",
"id": 3707,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "225:2:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 3716,
"name": "Approval",
"nodeType": "EventDefinition",
"parameters": {
"id": 3715,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3710,
"indexed": true,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3716,
"src": "249:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3709,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "249:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3712,
"indexed": true,
"mutability": "mutable",
"name": "guy",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3716,
"src": "270:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3711,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "270:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3714,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3716,
"src": "291:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3713,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "291:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "248:55:19"
},
"src": "234:70:19"
},
{
"anonymous": false,
"documentation": null,
"id": 3724,
"name": "Transfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 3723,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3718,
"indexed": true,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3724,
"src": "324:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3717,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "324:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3720,
"indexed": true,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3724,
"src": "345:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3719,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "345:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3722,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3724,
"src": "366:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3721,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "366:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "323:55:19"
},
"src": "309:70:19"
},
{
"anonymous": false,
"documentation": null,
"id": 3730,
"name": "Deposit",
"nodeType": "EventDefinition",
"parameters": {
"id": 3729,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3726,
"indexed": true,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3730,
"src": "398:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3725,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "398:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3728,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3730,
"src": "419:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3727,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "419:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "397:34:19"
},
"src": "384:48:19"
},
{
"anonymous": false,
"documentation": null,
"id": 3736,
"name": "Withdrawal",
"nodeType": "EventDefinition",
"parameters": {
"id": 3735,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3732,
"indexed": true,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3736,
"src": "454:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3731,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "454:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3734,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3736,
"src": "475:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3733,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "475:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "453:34:19"
},
"src": "437:51:19"
},
{
"constant": false,
"functionSelector": "70a08231",
"id": 3740,
"mutability": "mutable",
"name": "balanceOf",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "494:44:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 3739,
"keyType": {
"id": 3737,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "502:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "494:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3738,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "513:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "dd62ed3e",
"id": 3746,
"mutability": "mutable",
"name": "allowance",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "544:64:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"typeName": {
"id": 3745,
"keyType": {
"id": 3741,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "552:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "544:47:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"valueType": {
"id": 3744,
"keyType": {
"id": 3742,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "571:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "563:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3743,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "582:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 3752,
"nodeType": "Block",
"src": "643:26:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3749,
"name": "deposit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3779,
"src": "653:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "653:9:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3751,
"nodeType": "ExpressionStatement",
"src": "653:9:19"
}
]
},
"documentation": null,
"id": 3753,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3747,
"nodeType": "ParameterList",
"parameters": [],
"src": "623:2:19"
},
"returnParameters": {
"id": 3748,
"nodeType": "ParameterList",
"parameters": [],
"src": "643:0:19"
},
"scope": 3952,
"src": "615:54:19",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 3759,
"nodeType": "Block",
"src": "702:26:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3756,
"name": "deposit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3779,
"src": "712:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3757,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "712:9:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3758,
"nodeType": "ExpressionStatement",
"src": "712:9:19"
}
]
},
"documentation": null,
"id": 3760,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3754,
"nodeType": "ParameterList",
"parameters": [],
"src": "682:2:19"
},
"returnParameters": {
"id": 3755,
"nodeType": "ParameterList",
"parameters": [],
"src": "702:0:19"
},
"scope": 3952,
"src": "675:53:19",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 3778,
"nodeType": "Block",
"src": "768:96:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3769,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3763,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "778:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3766,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3764,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "788:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3765,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "788:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "778:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3767,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "803:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "803:9:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "778:34:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3770,
"nodeType": "ExpressionStatement",
"src": "778:34:19"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3772,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "835:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "835:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3774,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "847:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3775,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "847:9:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3771,
"name": "Deposit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3730,
"src": "827:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 3776,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "827:30:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3777,
"nodeType": "EmitStatement",
"src": "822:35:19"
}
]
},
"documentation": null,
"functionSelector": "d0e30db0",
"id": 3779,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3761,
"nodeType": "ParameterList",
"parameters": [],
"src": "750:2:19"
},
"returnParameters": {
"id": 3762,
"nodeType": "ParameterList",
"parameters": [],
"src": "768:0:19"
},
"scope": 3952,
"src": "734:130:19",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3814,
"nodeType": "Block",
"src": "908:168:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3790,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3785,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "926:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3788,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3786,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "936:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "936:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "926:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3789,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "951:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "926:28:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3784,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "918:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3791,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "918:37:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3792,
"nodeType": "ExpressionStatement",
"src": "918:37:19"
},
{
"expression": {
"argumentTypes": null,
"id": 3798,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3793,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "965:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3796,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3794,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "975:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3795,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "975:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "965:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 3797,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "990:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "965:28:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3799,
"nodeType": "ExpressionStatement",
"src": "965:28:19"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3805,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "1023:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3800,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1003:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1003:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 3804,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1003:19:19",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 3806,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1003:24:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3807,
"nodeType": "ExpressionStatement",
"src": "1003:24:19"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3809,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1053:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3810,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1053:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3811,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "1065:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3808,
"name": "Withdrawal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3736,
"src": "1042:10:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 3812,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1042:27:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3813,
"nodeType": "EmitStatement",
"src": "1037:32:19"
}
]
},
"documentation": null,
"functionSelector": "2e1a7d4d",
"id": 3815,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3782,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3781,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3815,
"src": "888:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3780,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "888:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "887:13:19"
},
"returnParameters": {
"id": 3783,
"nodeType": "ParameterList",
"parameters": [],
"src": "908:0:19"
},
"scope": 3952,
"src": "870:206:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3826,
"nodeType": "Block",
"src": "1135:45:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3822,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "1160:4:19",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WETH9_$3952",
"typeString": "contract WETH9"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_WETH9_$3952",
"typeString": "contract WETH9"
}
],
"id": 3821,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1152:7:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3820,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1152:7:19",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3823,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1152:13:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 3824,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1152:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3819,
"id": 3825,
"nodeType": "Return",
"src": "1145:28:19"
}
]
},
"documentation": null,
"functionSelector": "18160ddd",
"id": 3827,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3816,
"nodeType": "ParameterList",
"parameters": [],
"src": "1102:2:19"
},
"returnParameters": {
"id": 3819,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3818,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3827,
"src": "1126:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3817,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1126:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1125:9:19"
},
"scope": 3952,
"src": "1082:98:19",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3854,
"nodeType": "Block",
"src": "1251:115:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3843,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3836,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1261:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3840,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3837,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1271:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3838,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1271:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1261:21:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3841,
"indexExpression": {
"argumentTypes": null,
"id": 3839,
"name": "guy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "1283:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1261:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3842,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3831,
"src": "1290:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1261:32:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3844,
"nodeType": "ExpressionStatement",
"src": "1261:32:19"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3846,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1317:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3847,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1317:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3848,
"name": "guy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "1329:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3849,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3831,
"src": "1334:3:19",
"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": 3845,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3716,
"src": "1308:8:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3850,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1308:30:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3851,
"nodeType": "EmitStatement",
"src": "1303:35:19"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3852,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1355:4:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3835,
"id": 3853,
"nodeType": "Return",
"src": "1348:11:19"
}
]
},
"documentation": null,
"functionSelector": "095ea7b3",
"id": 3855,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3832,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3829,
"mutability": "mutable",
"name": "guy",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3855,
"src": "1203:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3828,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1203:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3831,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3855,
"src": "1216:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3830,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1216:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1202:26:19"
},
"returnParameters": {
"id": 3835,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3834,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3855,
"src": "1245:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3833,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1245:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1244:6:19"
},
"scope": 3952,
"src": "1186:180:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3871,
"nodeType": "Block",
"src": "1438:58:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3865,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1468:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3866,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1468:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3867,
"name": "dst",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3857,
"src": "1480:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3868,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3859,
"src": "1485:3:19",
"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": 3864,
"name": "transferFrom",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3951,
"src": "1455:12:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,address,uint256) returns (bool)"
}
},
"id": 3869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1455:34:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 3863,
"id": 3870,
"nodeType": "Return",
"src": "1448:41:19"
}
]
},
"documentation": null,
"functionSelector": "a9059cbb",
"id": 3872,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3860,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3857,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3872,
"src": "1390:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3856,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1390:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3859,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3872,
"src": "1403:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3858,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1403:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1389:26:19"
},
"returnParameters": {
"id": 3863,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3862,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3872,
"src": "1432:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3861,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1432:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1431:6:19"
},
"scope": 3952,
"src": "1372:124:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3950,
"nodeType": "Block",
"src": "1615:358:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3888,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3884,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "1633:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3886,
"indexExpression": {
"argumentTypes": null,
"id": 3885,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1643:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1633:14:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3887,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1651:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1633:21:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3883,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1625:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1625:30:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3890,
"nodeType": "ExpressionStatement",
"src": "1625:30:19"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 3907,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3894,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3891,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1670:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3892,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1677:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3893,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1677:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "1670:17:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3906,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3895,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1691:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3897,
"indexExpression": {
"argumentTypes": null,
"id": 3896,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1701:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1691:14:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3900,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3898,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1706:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1706:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1691:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3904,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "1729:2:19",
"subExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3903,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1730:1:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_1_by_1",
"typeString": "int_const -1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_minus_1_by_1",
"typeString": "int_const -1"
}
],
"id": 3902,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1721:7:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3901,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1721:7:19",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3905,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1721:11:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1691:41:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1670:62:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3929,
"nodeType": "IfStatement",
"src": "1666:182:19",
"trueBody": {
"id": 3928,
"nodeType": "Block",
"src": "1734:114:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3909,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1756:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3911,
"indexExpression": {
"argumentTypes": null,
"id": 3910,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1766:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1756:14:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3914,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3912,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1771:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3913,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1771:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1756:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3915,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1786:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1756:33:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3908,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1748:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3917,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1748:42:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3918,
"nodeType": "ExpressionStatement",
"src": "1748:42:19"
},
{
"expression": {
"argumentTypes": null,
"id": 3926,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3919,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1804:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3923,
"indexExpression": {
"argumentTypes": null,
"id": 3920,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1814:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1804:14:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3924,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3921,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1819:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3922,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1819:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1804:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 3925,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1834:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1804:33:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3927,
"nodeType": "ExpressionStatement",
"src": "1804:33:19"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3934,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3930,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "1858:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3932,
"indexExpression": {
"argumentTypes": null,
"id": 3931,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1868:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1858:14:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 3933,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1876:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1858:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3935,
"nodeType": "ExpressionStatement",
"src": "1858:21:19"
},
{
"expression": {
"argumentTypes": null,
"id": 3940,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3936,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "1889:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3938,
"indexExpression": {
"argumentTypes": null,
"id": 3937,
"name": "dst",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3876,
"src": "1899:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1889:14:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 3939,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1907:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1889:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3941,
"nodeType": "ExpressionStatement",
"src": "1889:21:19"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3943,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1930:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3944,
"name": "dst",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3876,
"src": "1935:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3945,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1940:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3942,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "1921:8:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1921:23:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3947,
"nodeType": "ExpressionStatement",
"src": "1921:23:19"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3948,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1962:4:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3882,
"id": 3949,
"nodeType": "Return",
"src": "1955:11:19"
}
]
},
"documentation": null,
"functionSelector": "23b872dd",
"id": 3951,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3879,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3874,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1533:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3873,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1533:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3876,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1554:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3875,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1554:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3878,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1575:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3877,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1575:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1523:69:19"
},
"returnParameters": {
"id": 3882,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3881,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1609:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3880,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1609:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1608:6:19"
},
"scope": 3952,
"src": "1502:471:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 3953,
"src": "103:1872:19"
}
],
"src": "78:1898:19"
},
"legacyAST": {
"absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol",
"exportedSymbols": {
"WETH9": [
3952
]
},
"id": 3953,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3699,
"literals": [
"solidity",
"0.6",
".9"
],
"nodeType": "PragmaDirective",
"src": "78:22:19"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 3952,
"linearizedBaseContracts": [
3952
],
"name": "WETH9",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "06fdde03",
"id": 3702,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "124:36:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3700,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "124:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "57726170706564204574686572",
"id": 3701,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "145:15:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3",
"typeString": "literal_string \"Wrapped Ether\""
},
"value": "Wrapped Ether"
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "95d89b41",
"id": 3705,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "166:29:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3703,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "166:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "57455448",
"id": 3704,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "189:6:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8",
"typeString": "literal_string \"WETH\""
},
"value": "WETH"
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "313ce567",
"id": 3708,
"mutability": "mutable",
"name": "decimals",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "201:26:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 3706,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "201:5:19",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"argumentTypes": null,
"hexValue": "3138",
"id": 3707,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "225:2:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 3716,
"name": "Approval",
"nodeType": "EventDefinition",
"parameters": {
"id": 3715,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3710,
"indexed": true,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3716,
"src": "249:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3709,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "249:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3712,
"indexed": true,
"mutability": "mutable",
"name": "guy",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3716,
"src": "270:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3711,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "270:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3714,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3716,
"src": "291:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3713,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "291:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "248:55:19"
},
"src": "234:70:19"
},
{
"anonymous": false,
"documentation": null,
"id": 3724,
"name": "Transfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 3723,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3718,
"indexed": true,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3724,
"src": "324:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3717,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "324:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3720,
"indexed": true,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3724,
"src": "345:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3719,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "345:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3722,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3724,
"src": "366:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3721,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "366:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "323:55:19"
},
"src": "309:70:19"
},
{
"anonymous": false,
"documentation": null,
"id": 3730,
"name": "Deposit",
"nodeType": "EventDefinition",
"parameters": {
"id": 3729,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3726,
"indexed": true,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3730,
"src": "398:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3725,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "398:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3728,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3730,
"src": "419:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3727,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "419:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "397:34:19"
},
"src": "384:48:19"
},
{
"anonymous": false,
"documentation": null,
"id": 3736,
"name": "Withdrawal",
"nodeType": "EventDefinition",
"parameters": {
"id": 3735,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3732,
"indexed": true,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3736,
"src": "454:19:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3731,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "454:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3734,
"indexed": false,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3736,
"src": "475:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3733,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "475:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "453:34:19"
},
"src": "437:51:19"
},
{
"constant": false,
"functionSelector": "70a08231",
"id": 3740,
"mutability": "mutable",
"name": "balanceOf",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "494:44:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 3739,
"keyType": {
"id": 3737,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "502:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "494:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3738,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "513:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "dd62ed3e",
"id": 3746,
"mutability": "mutable",
"name": "allowance",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3952,
"src": "544:64:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"typeName": {
"id": 3745,
"keyType": {
"id": 3741,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "552:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "544:47:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"valueType": {
"id": 3744,
"keyType": {
"id": 3742,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "571:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "563:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3743,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "582:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 3752,
"nodeType": "Block",
"src": "643:26:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3749,
"name": "deposit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3779,
"src": "653:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "653:9:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3751,
"nodeType": "ExpressionStatement",
"src": "653:9:19"
}
]
},
"documentation": null,
"id": 3753,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3747,
"nodeType": "ParameterList",
"parameters": [],
"src": "623:2:19"
},
"returnParameters": {
"id": 3748,
"nodeType": "ParameterList",
"parameters": [],
"src": "643:0:19"
},
"scope": 3952,
"src": "615:54:19",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 3759,
"nodeType": "Block",
"src": "702:26:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3756,
"name": "deposit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3779,
"src": "712:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3757,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "712:9:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3758,
"nodeType": "ExpressionStatement",
"src": "712:9:19"
}
]
},
"documentation": null,
"id": 3760,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3754,
"nodeType": "ParameterList",
"parameters": [],
"src": "682:2:19"
},
"returnParameters": {
"id": 3755,
"nodeType": "ParameterList",
"parameters": [],
"src": "702:0:19"
},
"scope": 3952,
"src": "675:53:19",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 3778,
"nodeType": "Block",
"src": "768:96:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3769,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3763,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "778:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3766,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3764,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "788:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3765,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "788:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "778:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3767,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "803:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "803:9:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "778:34:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3770,
"nodeType": "ExpressionStatement",
"src": "778:34:19"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3772,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "835:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "835:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3774,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "847:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3775,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "847:9:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3771,
"name": "Deposit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3730,
"src": "827:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 3776,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "827:30:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3777,
"nodeType": "EmitStatement",
"src": "822:35:19"
}
]
},
"documentation": null,
"functionSelector": "d0e30db0",
"id": 3779,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3761,
"nodeType": "ParameterList",
"parameters": [],
"src": "750:2:19"
},
"returnParameters": {
"id": 3762,
"nodeType": "ParameterList",
"parameters": [],
"src": "768:0:19"
},
"scope": 3952,
"src": "734:130:19",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3814,
"nodeType": "Block",
"src": "908:168:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3790,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3785,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "926:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3788,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3786,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "936:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "936:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "926:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3789,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "951:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "926:28:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3784,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "918:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3791,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "918:37:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3792,
"nodeType": "ExpressionStatement",
"src": "918:37:19"
},
{
"expression": {
"argumentTypes": null,
"id": 3798,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3793,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "965:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3796,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3794,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "975:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3795,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "975:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "965:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 3797,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "990:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "965:28:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3799,
"nodeType": "ExpressionStatement",
"src": "965:28:19"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3805,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "1023:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3800,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1003:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1003:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 3804,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1003:19:19",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 3806,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1003:24:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3807,
"nodeType": "ExpressionStatement",
"src": "1003:24:19"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3809,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1053:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3810,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1053:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3811,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3781,
"src": "1065:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3808,
"name": "Withdrawal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3736,
"src": "1042:10:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 3812,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1042:27:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3813,
"nodeType": "EmitStatement",
"src": "1037:32:19"
}
]
},
"documentation": null,
"functionSelector": "2e1a7d4d",
"id": 3815,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3782,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3781,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3815,
"src": "888:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3780,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "888:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "887:13:19"
},
"returnParameters": {
"id": 3783,
"nodeType": "ParameterList",
"parameters": [],
"src": "908:0:19"
},
"scope": 3952,
"src": "870:206:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3826,
"nodeType": "Block",
"src": "1135:45:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3822,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "1160:4:19",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WETH9_$3952",
"typeString": "contract WETH9"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_WETH9_$3952",
"typeString": "contract WETH9"
}
],
"id": 3821,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1152:7:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3820,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1152:7:19",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3823,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1152:13:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 3824,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1152:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3819,
"id": 3825,
"nodeType": "Return",
"src": "1145:28:19"
}
]
},
"documentation": null,
"functionSelector": "18160ddd",
"id": 3827,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3816,
"nodeType": "ParameterList",
"parameters": [],
"src": "1102:2:19"
},
"returnParameters": {
"id": 3819,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3818,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3827,
"src": "1126:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3817,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1126:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1125:9:19"
},
"scope": 3952,
"src": "1082:98:19",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3854,
"nodeType": "Block",
"src": "1251:115:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3843,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3836,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1261:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3840,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3837,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1271:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3838,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1271:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1261:21:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3841,
"indexExpression": {
"argumentTypes": null,
"id": 3839,
"name": "guy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "1283:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1261:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3842,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3831,
"src": "1290:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1261:32:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3844,
"nodeType": "ExpressionStatement",
"src": "1261:32:19"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3846,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1317:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3847,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1317:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3848,
"name": "guy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "1329:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3849,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3831,
"src": "1334:3:19",
"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": 3845,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3716,
"src": "1308:8:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3850,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1308:30:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3851,
"nodeType": "EmitStatement",
"src": "1303:35:19"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3852,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1355:4:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3835,
"id": 3853,
"nodeType": "Return",
"src": "1348:11:19"
}
]
},
"documentation": null,
"functionSelector": "095ea7b3",
"id": 3855,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3832,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3829,
"mutability": "mutable",
"name": "guy",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3855,
"src": "1203:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3828,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1203:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3831,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3855,
"src": "1216:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3830,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1216:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1202:26:19"
},
"returnParameters": {
"id": 3835,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3834,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3855,
"src": "1245:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3833,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1245:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1244:6:19"
},
"scope": 3952,
"src": "1186:180:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3871,
"nodeType": "Block",
"src": "1438:58:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3865,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1468:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3866,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1468:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3867,
"name": "dst",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3857,
"src": "1480:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3868,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3859,
"src": "1485:3:19",
"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": 3864,
"name": "transferFrom",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3951,
"src": "1455:12:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,address,uint256) returns (bool)"
}
},
"id": 3869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1455:34:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 3863,
"id": 3870,
"nodeType": "Return",
"src": "1448:41:19"
}
]
},
"documentation": null,
"functionSelector": "a9059cbb",
"id": 3872,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3860,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3857,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3872,
"src": "1390:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3856,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1390:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3859,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3872,
"src": "1403:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3858,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1403:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1389:26:19"
},
"returnParameters": {
"id": 3863,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3862,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3872,
"src": "1432:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3861,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1432:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1431:6:19"
},
"scope": 3952,
"src": "1372:124:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 3950,
"nodeType": "Block",
"src": "1615:358:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3888,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3884,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "1633:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3886,
"indexExpression": {
"argumentTypes": null,
"id": 3885,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1643:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1633:14:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3887,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1651:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1633:21:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3883,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1625:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1625:30:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3890,
"nodeType": "ExpressionStatement",
"src": "1625:30:19"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 3907,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3894,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3891,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1670:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3892,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1677:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3893,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1677:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "1670:17:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3906,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3895,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1691:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3897,
"indexExpression": {
"argumentTypes": null,
"id": 3896,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1701:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1691:14:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3900,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3898,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1706:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1706:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1691:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3904,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "1729:2:19",
"subExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3903,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1730:1:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_1_by_1",
"typeString": "int_const -1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_minus_1_by_1",
"typeString": "int_const -1"
}
],
"id": 3902,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1721:7:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3901,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1721:7:19",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 3905,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1721:11:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1691:41:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1670:62:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3929,
"nodeType": "IfStatement",
"src": "1666:182:19",
"trueBody": {
"id": 3928,
"nodeType": "Block",
"src": "1734:114:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3909,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1756:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3911,
"indexExpression": {
"argumentTypes": null,
"id": 3910,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1766:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1756:14:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3914,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3912,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1771:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3913,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1771:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1756:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3915,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1786:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1756:33:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3908,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1748:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3917,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1748:42:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3918,
"nodeType": "ExpressionStatement",
"src": "1748:42:19"
},
{
"expression": {
"argumentTypes": null,
"id": 3926,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3919,
"name": "allowance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3746,
"src": "1804:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3923,
"indexExpression": {
"argumentTypes": null,
"id": 3920,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1814:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1804:14:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3924,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3921,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1819:3:19",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3922,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1819:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1804:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 3925,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1834:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1804:33:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3927,
"nodeType": "ExpressionStatement",
"src": "1804:33:19"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3934,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3930,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "1858:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3932,
"indexExpression": {
"argumentTypes": null,
"id": 3931,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1868:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1858:14:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 3933,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1876:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1858:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3935,
"nodeType": "ExpressionStatement",
"src": "1858:21:19"
},
{
"expression": {
"argumentTypes": null,
"id": 3940,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3936,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3740,
"src": "1889:9:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3938,
"indexExpression": {
"argumentTypes": null,
"id": 3937,
"name": "dst",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3876,
"src": "1899:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1889:14:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 3939,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1907:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1889:21:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3941,
"nodeType": "ExpressionStatement",
"src": "1889:21:19"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3943,
"name": "src",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3874,
"src": "1930:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3944,
"name": "dst",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3876,
"src": "1935:3:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3945,
"name": "wad",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3878,
"src": "1940:3:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3942,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "1921:8:19",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1921:23:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3947,
"nodeType": "ExpressionStatement",
"src": "1921:23:19"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3948,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1962:4:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3882,
"id": 3949,
"nodeType": "Return",
"src": "1955:11:19"
}
]
},
"documentation": null,
"functionSelector": "23b872dd",
"id": 3951,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 3879,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3874,
"mutability": "mutable",
"name": "src",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1533:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3873,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1533:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3876,
"mutability": "mutable",
"name": "dst",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1554:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3875,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1554:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3878,
"mutability": "mutable",
"name": "wad",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1575:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3877,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1575:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1523:69:19"
},
"returnParameters": {
"id": 3882,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3881,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 3951,
"src": "1609:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3880,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1609:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1608:6:19"
},
"scope": 3952,
"src": "1502:471:19",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 3953,
"src": "103:1872:19"
}
],
"src": "78:1898:19"
},
"compiler": {
"name": "solc",
"version": "0.6.9+commit.3e3065ac.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.2.3",
"updatedAt": "2020-11-06T08:03:35.525Z",
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
}