{ "contractName": "BToken", "abi": [ { "constant": true, "inputs": [], "name": "MAX_TOTAL_WEIGHT", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "BPOW_PRECISION", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MIN_WEIGHT", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MIN_FEE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MIN_BALANCE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "INIT_POOL_SUPPLY", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MAX_OUT_RATIO", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MAX_BOUND_TOKENS", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MIN_BOUND_TOKENS", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MIN_BPOW_BASE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MAX_FEE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MAX_BPOW_BASE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "BONE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "EXIT_FEE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MAX_WEIGHT", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MAX_IN_RATIO", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "spender", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "src", "type": "address" }, { "name": "dst", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "whom", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "dst", "type": "address" }, { "name": "amt", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "dst", "type": "address" }, { "name": "amt", "type": "uint256" } ], "name": "increaseApproval", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "dst", "type": "address" }, { "name": "amt", "type": "uint256" } ], "name": "decreaseApproval", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "dst", "type": "address" }, { "name": "amt", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "src", "type": "address" }, { "name": "dst", "type": "address" }, { "name": "amt", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_TOTAL_WEIGHT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"BPOW_PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_WEIGHT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"src\",\"type\":\"address\"},{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"whom\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_FEE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BALANCE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INIT_POOL_SUPPLY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OUT_RATIO\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_BOUND_TOKENS\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BOUND_TOKENS\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BPOW_BASE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_BPOW_BASE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"BONE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EXIT_FEE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"src\",\"type\":\"address\"},{\"name\":\"dst\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_WEIGHT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_IN_RATIO\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BToken.sol\":\"BToken\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BConst.sol\":{\"keccak256\":\"0x21675a0793e0be762a27e09ed3b0bd86e035c73ac3078dd841c38804445d5f5a\",\"urls\":[\"bzzr://47016ef4a80276f320b28a058fc92e7d9d93433bb5e4aa934668383cbefad77e\"]},\"/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BNum.sol\":{\"keccak256\":\"0xc4e5c934d6b04c1fad116ea81c2fa65eaa2700e4e48bcc5045c8c96f55e729c8\",\"urls\":[\"bzzr://a3946b7fd2095ca3c7c4bb3daf3078cc48e20b0e107f113e10fb0c6ebaa77e74\"]},\"/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BToken.sol\":{\"keccak256\":\"0xad046b7ad912f72a90330abb3abddc3aa711077c0021d6a9d0dba2c99534e51b\",\"urls\":[\"bzzr://159aed1b631f2af168fd17235b6827859cb5d6cb7e95abeff3cc3d8079710f41\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzzr://cf2d583b8dce38d0617fdcd65f2fd9f126fe17b7f683b5a515ea9d2762d8b062\"]}},\"version\":1}", "bytecode": "0x60c0604052601360808190527f42616c616e63657220506f6f6c20546f6b656e0000000000000000000000000060a090815261003e91600391906100a3565b506040805180820190915260038082527f42505400000000000000000000000000000000000000000000000000000000006020909201918252610083916004916100a3565b506005805460ff1916601217905534801561009d57600080fd5b5061013e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e457805160ff1916838001178555610111565b82800160010185558215610111579182015b828111156101115782518255916020019190600101906100f6565b5061011d929150610121565b5090565b61013b91905b8082111561011d5760008155600101610127565b90565b610bc88061014d6000396000f3fe608060405234801561001057600080fd5b50600436106101c6576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b4111610116578063bc694ea2116100b4578063d73dd6231161008e578063d73dd623146103e4578063dd62ed3e14610410578063e4a28a5214610288578063ec0930211461043e576101c6565b8063bc694ea2146103d4578063c36596a6146102b2578063c6580d12146103dc576101c6565b8063b0e0d136116100f0578063b0e0d136146103b4578063b7b800a4146103bc578063ba019dab146103c4578063bc063e1a146103cc576101c6565b806395d89b4114610378578063992e2a9214610380578063a9059cbb14610388576101c6565b806323b872dd1161018357806370a082311161015d57806370a082311461033a57806376c7a3c714610360578063867378c5146103685780639381cd2b14610370576101c6565b806323b872dd146102ba578063313ce567146102f0578063661884631461030e576101c6565b806306fdde03146101cb578063095ea7b31461024857806309a3bbe41461028857806318160ddd146102a2578063189d00ca146102aa578063218b5382146102b2575b600080fd5b6101d3610446565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020d5781810151838201526020016101f5565b50505050905090810190601f16801561023a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102746004803603604081101561025e57600080fd5b50600160a060020a0381351690602001356104dc565b604080519115158252519081900360200190f35b610290610530565b60408051918252519081900360200190f35b61029061053d565b610290610543565b610290610557565b610274600480360360608110156102d057600080fd5b50600160a060020a03813581169160208101359091169060400135610563565b6102f86106c8565b6040805160ff9092168252519081900360200190f35b6102746004803603604081101561032457600080fd5b50600160a060020a0381351690602001356106d1565b6102906004803603602081101561035057600080fd5b5035600160a060020a03166107a9565b6102906107c4565b6102906107d6565b6102906107ea565b6101d36107f7565b610290610858565b6102746004803603604081101561039e57600080fd5b50600160a060020a038135169060200135610864565b61029061087a565b61029061087f565b610290610884565b610290610889565b610290610899565b6102906108a5565b610274600480360360408110156103fa57600080fd5b50600160a060020a0381351690602001356108aa565b6102906004803603604081101561042657600080fd5b50600160a060020a038135811691602001351661092b565b610290610956565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b820191906000526020600020905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b336000818152600160209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020610b7d833981519152928290030190a350600192915050565b6802b5e3af16b188000081565b60025490565b6402540be400670de0b6b3a76400005b0481565b670de0b6b3a764000081565b600033600160a060020a038516148061059f5750600160a060020a03841660009081526001602090815260408083203384529091529020548211155b6105f3576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f42544f4b454e5f4241445f43414c4c45520000000000000000000000604482015290519081900360640190fd5b6105fe848484610966565b33600160a060020a0385161480159061063c5750600160a060020a038416600090815260016020908152604080832033845290915290205460001914155b156106be57600160a060020a038416600090815260016020908152604080832033845290915290205461066f9083610a82565b600160a060020a0385811660009081526001602090815260408083203380855290835292819020859055805194855251928716939192600080516020610b7d8339815191529281900390910190a35b5060019392505050565b60055460ff1690565b336000908152600160209081526040808320600160a060020a03861684529091528120548083111561072657336000908152600160209081526040808320600160a060020a0388168452909152812055610755565b6107308184610a82565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020610b7d833981519152929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b620f4240670de0b6b3a7640000610553565b64e8d4a51000670de0b6b3a7640000610553565b68056bc75e2d6310000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b6704a03ce68d21555681565b6000610871338484610966565b50600192915050565b600881565b600281565b600181565b600a670de0b6b3a7640000610553565b671bc16d674ec7ffff81565b600081565b336000908152600160209081526040808320600160a060020a03861684529091528120546108d89083610af3565b336000818152600160209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020610b7d833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6002670de0b6b3a7640000610553565b600160a060020a0383166000908152602081905260409020548111156109d6576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e53554646494349454e545f42414c000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152602081905260409020546109f99082610a82565b600160a060020a038085166000908152602081905260408082209390935590841681522054610a289082610af3565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000806000610a918585610b57565b915091508015610aeb576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f5355425f554e444552464c4f57000000000000000000000000000000604482015290519081900360640190fd5b509392505050565b600082820183811015610b50576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4144445f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600080828410610b6d5750508082036000610b75565b505081810360015b925092905056fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820118805bb64d4c864b5a76fa6ca987b24e407431ab691f2998760e51f5551899a0029", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c6576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b4111610116578063bc694ea2116100b4578063d73dd6231161008e578063d73dd623146103e4578063dd62ed3e14610410578063e4a28a5214610288578063ec0930211461043e576101c6565b8063bc694ea2146103d4578063c36596a6146102b2578063c6580d12146103dc576101c6565b8063b0e0d136116100f0578063b0e0d136146103b4578063b7b800a4146103bc578063ba019dab146103c4578063bc063e1a146103cc576101c6565b806395d89b4114610378578063992e2a9214610380578063a9059cbb14610388576101c6565b806323b872dd1161018357806370a082311161015d57806370a082311461033a57806376c7a3c714610360578063867378c5146103685780639381cd2b14610370576101c6565b806323b872dd146102ba578063313ce567146102f0578063661884631461030e576101c6565b806306fdde03146101cb578063095ea7b31461024857806309a3bbe41461028857806318160ddd146102a2578063189d00ca146102aa578063218b5382146102b2575b600080fd5b6101d3610446565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020d5781810151838201526020016101f5565b50505050905090810190601f16801561023a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102746004803603604081101561025e57600080fd5b50600160a060020a0381351690602001356104dc565b604080519115158252519081900360200190f35b610290610530565b60408051918252519081900360200190f35b61029061053d565b610290610543565b610290610557565b610274600480360360608110156102d057600080fd5b50600160a060020a03813581169160208101359091169060400135610563565b6102f86106c8565b6040805160ff9092168252519081900360200190f35b6102746004803603604081101561032457600080fd5b50600160a060020a0381351690602001356106d1565b6102906004803603602081101561035057600080fd5b5035600160a060020a03166107a9565b6102906107c4565b6102906107d6565b6102906107ea565b6101d36107f7565b610290610858565b6102746004803603604081101561039e57600080fd5b50600160a060020a038135169060200135610864565b61029061087a565b61029061087f565b610290610884565b610290610889565b610290610899565b6102906108a5565b610274600480360360408110156103fa57600080fd5b50600160a060020a0381351690602001356108aa565b6102906004803603604081101561042657600080fd5b50600160a060020a038135811691602001351661092b565b610290610956565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b820191906000526020600020905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b336000818152600160209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020610b7d833981519152928290030190a350600192915050565b6802b5e3af16b188000081565b60025490565b6402540be400670de0b6b3a76400005b0481565b670de0b6b3a764000081565b600033600160a060020a038516148061059f5750600160a060020a03841660009081526001602090815260408083203384529091529020548211155b6105f3576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f42544f4b454e5f4241445f43414c4c45520000000000000000000000604482015290519081900360640190fd5b6105fe848484610966565b33600160a060020a0385161480159061063c5750600160a060020a038416600090815260016020908152604080832033845290915290205460001914155b156106be57600160a060020a038416600090815260016020908152604080832033845290915290205461066f9083610a82565b600160a060020a0385811660009081526001602090815260408083203380855290835292819020859055805194855251928716939192600080516020610b7d8339815191529281900390910190a35b5060019392505050565b60055460ff1690565b336000908152600160209081526040808320600160a060020a03861684529091528120548083111561072657336000908152600160209081526040808320600160a060020a0388168452909152812055610755565b6107308184610a82565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020610b7d833981519152929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b620f4240670de0b6b3a7640000610553565b64e8d4a51000670de0b6b3a7640000610553565b68056bc75e2d6310000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b6704a03ce68d21555681565b6000610871338484610966565b50600192915050565b600881565b600281565b600181565b600a670de0b6b3a7640000610553565b671bc16d674ec7ffff81565b600081565b336000908152600160209081526040808320600160a060020a03861684529091528120546108d89083610af3565b336000818152600160209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020610b7d833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6002670de0b6b3a7640000610553565b600160a060020a0383166000908152602081905260409020548111156109d6576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e53554646494349454e545f42414c000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152602081905260409020546109f99082610a82565b600160a060020a038085166000908152602081905260408082209390935590841681522054610a289082610af3565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000806000610a918585610b57565b915091508015610aeb576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f5355425f554e444552464c4f57000000000000000000000000000000604482015290519081900360640190fd5b509392505050565b600082820183811015610b50576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f4144445f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600080828410610b6d5750508082036000610b75565b505081810360015b925092905056fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820118805bb64d4c864b5a76fa6ca987b24e407431ab691f2998760e51f5551899a0029", "sourceMap": "2857:49:7:-;2812:2299;2857:49;;2812:2299;2857:49;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2912:33:7;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2951:30:7;;;-1:-1:-1;;2951:30:7;2979:2;2951:30;;;2812:2299;5:2:-1;;;;30:1;27;20:12;5:2;2812:2299:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2812:2299:7;;;-1:-1:-1;2812:2299:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "2812:2299:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2812:2299:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2988:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2988:81:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3574:180;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3574:180:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1111:50:2;;;:::i;:::-;;;;;;;;;;;;;;;;3482:86:7;;;:::i;1403:54:2:-;;;:::i;1004:45::-;;;:::i;4544:565:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4544:565:7;;;;;;;;;;;;;;;;;:::i;3166:80::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4014:388;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4014:388:7;;;;;;;;:::i;3376:100::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3376:100:7;-1:-1:-1;;;;;3376:100:7;;:::i;840:53:2:-;;;:::i;1167:54::-;;;:::i;1228:51::-;;;:::i;3075:85:7:-;;;:::i;1519:59:2:-;;;:::i;4408:130:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4408:130:7;;;;;;;;:::i;791:42:2:-;;;:::i;743:::-;;;:::i;1286:46::-;;;:::i;899:50::-;;;:::i;1338:59::-;;;:::i;955:42::-;;;:::i;3760:248:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3760:248:7;;;;;;;;:::i;3252:118::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3252:118:7;;;;;;;;;;:::i;1464:49:2:-;;;:::i;2988:81:7:-;3057:5;3050:12;;;;;;;;-1:-1:-1;;3050:12:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3025:13;;3050:12;;3057:5;;3050:12;;3057:5;3050:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2988:81;:::o;3574:180::-;3659:10;3632:4;3648:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3648:27:7;;;;;;;;;;;:33;;;3696:30;;;;;;;3632:4;;3648:27;;3659:10;;-1:-1:-1;;;;;;;;;;;3696:30:7;;;;;;;-1:-1:-1;3743:4:7;3574:180;;;;:::o;1111:50:2:-;1152:9;1111:50;:::o;3482:86:7:-;3549:12;;3482:86;:::o;1403:54:2:-;1451:6;730;1444:13;;1403:54;:::o;1004:45::-;730:6;1004:45;:::o;4544:565:7:-;4662:4;4704:10;-1:-1:-1;;;;;4704:17:7;;;;:55;;-1:-1:-1;;;;;;4732:15:7;;;;;;:10;:15;;;;;;;;4748:10;4732:27;;;;;;;;4725:34;;;4704:55;4683:124;;;;;-1:-1:-1;;;;;4683:124:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;4817:20;4823:3;4828;4833;4817:5;:20::i;:::-;4851:10;-1:-1:-1;;;;;4851:17:7;;;;;;:63;;-1:-1:-1;;;;;;4872:15:7;;;;;;:10;:15;;;;;;;;4888:10;4872:27;;;;;;;;-1:-1:-1;;4872:42:7;;4851:63;4847:235;;;-1:-1:-1;;;;;4965:15:7;;;;;;:10;:15;;;;;;;;4981:10;4965:27;;;;;;;;4960:38;;4994:3;4960:4;:38::i;:::-;-1:-1:-1;;;;;4930:15:7;;;;;;;:10;:15;;;;;;;;4946:10;4930:27;;;;;;;;;;:68;;;5017:54;;;;;;;;;;4946:10;;-1:-1:-1;;;;;;;;;;;5017:54:7;;;;;;;;;4847:235;-1:-1:-1;5098:4:7;4544:565;;;;;:::o;3166:80::-;3230:9;;;;3166:80;:::o;4014:388::-;4124:10;4081:4;4113:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4113:27:7;;;;;;;;;;4154:14;;;4150:156;;;4195:10;4214:1;4184:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4184:27:7;;;;;;;;;:31;4150:156;;;4276:19;4281:8;4291:3;4276:4;:19::i;:::-;4257:10;4246:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4246:27:7;;;;;;;;;:49;4150:156;4329:10;4346:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4320:54:7;;4346:27;;;;;;;;;;;4320:54;;;;;;;;;4329:10;-1:-1:-1;;;;;;;;;;;4320:54:7;;;;;;;;;;-1:-1:-1;4391:4:7;;4014:388;-1:-1:-1;;;4014:388:7:o;3376:100::-;-1:-1:-1;;;;;3455:14:7;3432:4;3455:14;;;;;;;;;;;;3376:100::o;840:53:2:-;888:5;730:6;881:12;;1167:54;1215:6;730;1208:13;;1228:51;1269:10;1228:51;:::o;3075:85:7:-;3146:7;3139:14;;;;;;;;-1:-1:-1;;3139:14:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3114:13;;3139:14;;3146:7;;3139:14;;3146:7;3139:14;;;;;;;;;;;;;;;;;;;;;;;;1519:59:2;1560:18;1519:59;:::o;4408:130:7:-;4467:4;4483:27;4489:10;4501:3;4506;4483:5;:27::i;:::-;-1:-1:-1;4527:4:7;4408:130;;;;:::o;791:42:2:-;832:1;791:42;:::o;743:::-;784:1;743:42;:::o;1286:46::-;1327:5;1286:46;:::o;899:50::-;947:2;730:6;940:9;;1338:59;1379:18;1338:59;:::o;955:42::-;996:1;955:42;:::o;3760:248:7:-;3889:10;3827:4;3878:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3878:27:7;;;;;;;;;;3873:38;;3907:3;3873:4;:38::i;:::-;3854:10;3843:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3843:27:7;;;;;;;;;;;;:68;;;3926:54;;;;;;3843:27;;-1:-1:-1;;;;;;;;;;;3926:54:7;;;;;;;;;;-1:-1:-1;3997:4:7;3760:248;;;;:::o;3252:118::-;-1:-1:-1;;;;;3343:15:7;;;3320:4;3343:15;;;:10;:15;;;;;;;;:20;;;;;;;;;;;;;3252:118::o;1464:49:2:-;1512:1;730:6;1505:8;;2340:268:7;-1:-1:-1;;;;;2418:13:7;;:8;:13;;;;;;;;;;;:20;-1:-1:-1;2418:20:7;2410:53;;;;;-1:-1:-1;;;;;2410:53:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2494:13:7;;:8;:13;;;;;;;;;;;2489:24;;2509:3;2489:4;:24::i;:::-;-1:-1:-1;;;;;2473:13:7;;;:8;:13;;;;;;;;;;;:40;;;;2544:13;;;;;;;2539:24;;2559:3;2539:4;:24::i;:::-;-1:-1:-1;;;;;2523:13:7;;;:8;:13;;;;;;;;;;;;:40;;;;2578:23;;;;;;;2523:13;;2578:23;;;;;;;;;;;;;2340:268;;;:::o;1128:195:5:-;1197:4;1218:6;1226:9;1239:14;1248:1;1251;1239:8;:14::i;:::-;1217:36;;;;1272:4;1271:5;1263:35;;;;;-1:-1:-1;;;;;1263:35:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1315:1:5;1128:195;-1:-1:-1;;;1128:195:5:o;949:173::-;1018:4;1047:5;;;1070:6;;;;1062:35;;;;;-1:-1:-1;;;;;1062:35:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:1;949:173;-1:-1:-1;;;949:173:5:o;1329:214::-;1402:4;1408;1437:1;1432;:6;1428:109;;-1:-1:-1;;1462:5:5;;;1469;1454:21;;1428:109;-1:-1:-1;;1514:5:5;;;1521:4;1428:109;1329:214;;;;;:::o", "source": "// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity 0.5.7;\n\nimport './BNum.sol';\nimport 'openzeppelin-solidity/contracts/token/ERC20/IERC20.sol';\n\n// Highly opinionated token implementation\n\n// interface IERC20 {\n// event Approval(address indexed src, address indexed dst, uint amt);\n// event Transfer(address indexed src, address indexed dst, uint amt);\n\n// function totalSupply() external view returns (uint);\n// function balanceOf(address whom) external view returns (uint);\n// function allowance(address src, address dst) external view returns (uint);\n\n// function approve(address dst, uint amt) external returns (bool);\n// function transfer(address dst, uint amt) external returns (bool);\n// function transferFrom(\n// address src, address dst, uint amt\n// ) external returns (bool);\n// }\n\ncontract BTokenBase is BNum {\n\n mapping(address => uint) internal _balance;\n mapping(address => mapping(address=>uint)) internal _allowance;\n uint internal _totalSupply;\n\n event Approval(address indexed src, address indexed dst, uint amt);\n event Transfer(address indexed src, address indexed dst, uint amt);\n\n function _mint(uint amt) internal {\n _balance[address(this)] = badd(_balance[address(this)], amt);\n _totalSupply = badd(_totalSupply, amt);\n emit Transfer(address(0), address(this), amt);\n }\n\n function _burn(uint amt) internal {\n require(\n _balance[address(this)] >= amt, \n 'ERR_INSUFFICIENT_BAL'\n );\n _balance[address(this)] = bsub(_balance[address(this)], amt);\n _totalSupply = bsub(_totalSupply, amt);\n emit Transfer(address(this), address(0), amt);\n }\n\n function _move(address src, address dst, uint amt) internal {\n require(_balance[src] >= amt, 'ERR_INSUFFICIENT_BAL');\n _balance[src] = bsub(_balance[src], amt);\n _balance[dst] = badd(_balance[dst], amt);\n emit Transfer(src, dst, amt);\n }\n\n function _push(address to, uint amt) internal {\n _move(address(this), to, amt);\n }\n\n function _pull(address from, uint amt) internal {\n _move(from, address(this), amt);\n }\n}\n\ncontract BToken is BTokenBase, IERC20 {\n\n string private _name = 'Balancer Pool Token';\n string private _symbol = 'BPT';\n uint8 private _decimals = 18;\n\n function name() public view returns (string memory) {\n return _name;\n }\n\n function symbol() public view returns (string memory) {\n return _symbol;\n }\n\n function decimals() public view returns(uint8) {\n return _decimals;\n }\n\n function allowance(address src, address dst) external view returns (uint) {\n return _allowance[src][dst];\n }\n\n function balanceOf(address whom) external view returns (uint) {\n return _balance[whom];\n }\n\n function totalSupply() public view returns (uint) {\n return _totalSupply;\n }\n\n function approve(address dst, uint amt) external returns (bool) {\n _allowance[msg.sender][dst] = amt;\n emit Approval(msg.sender, dst, amt);\n return true;\n }\n\n function increaseApproval(address dst, uint amt) external returns (bool) {\n _allowance[msg.sender][dst] = badd(_allowance[msg.sender][dst], amt);\n emit Approval(msg.sender, dst, _allowance[msg.sender][dst]);\n return true;\n }\n\n function decreaseApproval(address dst, uint amt) external returns (bool) {\n uint oldValue = _allowance[msg.sender][dst];\n if (amt > oldValue) {\n _allowance[msg.sender][dst] = 0;\n } else {\n _allowance[msg.sender][dst] = bsub(oldValue, amt);\n }\n emit Approval(msg.sender, dst, _allowance[msg.sender][dst]);\n return true;\n }\n\n function transfer(address dst, uint amt) external returns (bool) {\n _move(msg.sender, dst, amt);\n return true;\n }\n\n function transferFrom(\n address src, \n address dst, \n uint amt\n ) \n external \n returns (bool) \n {\n require(\n msg.sender == src || amt <= _allowance[src][msg.sender], \n 'ERR_BTOKEN_BAD_CALLER'\n );\n _move(src, dst, amt);\n if (msg.sender != src && _allowance[src][msg.sender] != uint256(-1)) {\n _allowance[src][msg.sender] = bsub(_allowance[src][msg.sender], amt);\n emit Approval(msg.sender, dst, _allowance[src][msg.sender]);\n }\n return true;\n }\n}\n", "sourcePath": "/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BToken.sol", "ast": { "absolutePath": "/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BToken.sol", "exportedSymbols": { "BToken": [4285], "BTokenBase": [3979] }, "id": 4286, "nodeType": "SourceUnit", "nodes": [ { "id": 3780, "literals": ["solidity", "0.5", ".7"], "nodeType": "PragmaDirective", "src": "643:22:7" }, { "absolutePath": "/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BNum.sol", "file": "./BNum.sol", "id": 3781, "nodeType": "ImportDirective", "scope": 4286, "sourceUnit": 1423, "src": "667:20:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "id": 3782, "nodeType": "ImportDirective", "scope": 4286, "sourceUnit": 6538, "src": "688:64:7", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3783, "name": "BNum", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1422, "src": "1468:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BNum_$1422", "typeString": "contract BNum" } }, "id": 3784, "nodeType": "InheritanceSpecifier", "src": "1468:4:7" } ], "contractDependencies": [280, 1422], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3979, "linearizedBaseContracts": [3979, 1422, 280], "name": "BTokenBase", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 3788, "name": "_balance", "nodeType": "VariableDeclaration", "scope": 3979, "src": "1480:60:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 3787, "keyType": { "id": 3785, "name": "address", "nodeType": "ElementaryTypeName", "src": "1488:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1480:24:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3786, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1499:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3794, "name": "_allowance", "nodeType": "VariableDeclaration", "scope": 3979, "src": "1546:62:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 3793, "keyType": { "id": 3789, "name": "address", "nodeType": "ElementaryTypeName", "src": "1554:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1546:42:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 3792, "keyType": { "id": 3790, "name": "address", "nodeType": "ElementaryTypeName", "src": "1573:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1565:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3791, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1582:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3796, "name": "_totalSupply", "nodeType": "VariableDeclaration", "scope": 3979, "src": "1614:26:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3795, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1614:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "anonymous": false, "documentation": null, "id": 3804, "name": "Approval", "nodeType": "EventDefinition", "parameters": { "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3798, "indexed": true, "name": "src", "nodeType": "VariableDeclaration", "scope": 3804, "src": "1662:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3797, "name": "address", "nodeType": "ElementaryTypeName", "src": "1662:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3800, "indexed": true, "name": "dst", "nodeType": "VariableDeclaration", "scope": 3804, "src": "1683:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3799, "name": "address", "nodeType": "ElementaryTypeName", "src": "1683:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3802, "indexed": false, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3804, "src": "1704:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3801, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1704:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1661:52:7" }, "src": "1647:67:7" }, { "anonymous": false, "documentation": null, "id": 3812, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { "id": 3811, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3806, "indexed": true, "name": "src", "nodeType": "VariableDeclaration", "scope": 3812, "src": "1734:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3805, "name": "address", "nodeType": "ElementaryTypeName", "src": "1734:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3808, "indexed": true, "name": "dst", "nodeType": "VariableDeclaration", "scope": 3812, "src": "1755:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3807, "name": "address", "nodeType": "ElementaryTypeName", "src": "1755:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3810, "indexed": false, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3812, "src": "1776:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3809, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1776:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1733:52:7" }, "src": "1719:67:7" }, { "body": { "id": 3849, "nodeType": "Block", "src": "1826:180:7", "statements": [ { "expression": { "argumentTypes": null, "id": 3830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3817, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "1836:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3821, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3819, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "1853:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3818, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1845:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3820, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1845:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1836:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3823, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "1867:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3827, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3825, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "1884:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1876:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3826, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1876:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1867:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3828, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3814, "src": "1892:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3822, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "1862:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3829, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1862:34:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1836:60:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3831, "nodeType": "ExpressionStatement", "src": "1836:60:7" }, { "expression": { "argumentTypes": null, "id": 3837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3832, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "1906:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3834, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "1926:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3835, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3814, "src": "1940:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3833, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "1921:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1921:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1906:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3838, "nodeType": "ExpressionStatement", "src": "1906:38:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1976:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 3840, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1968:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1968:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3844, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "1988:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3843, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1980:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3845, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1980:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3846, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3814, "src": "1995:3:7", "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": 3839, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "1959:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3847, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1959:40:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3848, "nodeType": "EmitStatement", "src": "1954:45:7" } ] }, "documentation": null, "id": 3850, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { "id": 3815, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3814, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3850, "src": "1807:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3813, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1807:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1806:10:7" }, "returnParameters": { "id": 3816, "nodeType": "ParameterList", "parameters": [], "src": "1826:0:7" }, "scope": 3979, "src": "1792:214:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3898, "nodeType": "Block", "src": "2046:288:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3856, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2077:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3860, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3858, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2094:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3857, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2086:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2086:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2077:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3861, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2104:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2077:30:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f494e53554646494349454e545f42414c", "id": 3863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2122:22:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" }, "value": "ERR_INSUFFICIENT_BAL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" } ], "id": 3855, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [6555, 6556], "referencedDeclaration": 6556, "src": "2056:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2056:98:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3865, "nodeType": "ExpressionStatement", "src": "2056:98:7" }, { "expression": { "argumentTypes": null, "id": 3879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3866, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2164:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3870, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3868, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2181:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2173:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3869, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2173:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2164:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3872, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2195:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3876, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3874, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2212:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3873, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2204:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3875, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2204:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2195:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3877, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2220:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3871, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "2190:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3878, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2190:34:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2164:60:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3880, "nodeType": "ExpressionStatement", "src": "2164:60:7" }, { "expression": { "argumentTypes": null, "id": 3886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3881, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "2234:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3883, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "2254:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3884, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2268:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3882, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "2249:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3885, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2249:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2234:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3887, "nodeType": "ExpressionStatement", "src": "2234:38:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3890, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2304:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3889, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2296:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3891, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2296:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3893, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2319:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 3892, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2311:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3894, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2311:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 3895, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2323:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3888, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "2287:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3896, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2287:40:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3897, "nodeType": "EmitStatement", "src": "2282:45:7" } ] }, "documentation": null, "id": 3899, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { "id": 3853, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3852, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3899, "src": "2027:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3851, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2027:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2026:10:7" }, "returnParameters": { "id": 3854, "nodeType": "ParameterList", "parameters": [], "src": "2046:0:7" }, "scope": 3979, "src": "2012:322:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3945, "nodeType": "Block", "src": "2400:208:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3909, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2418:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3911, "indexExpression": { "argumentTypes": null, "id": 3910, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2427:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2418:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3912, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2435:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2418:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f494e53554646494349454e545f42414c", "id": 3914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2440:22:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" }, "value": "ERR_INSUFFICIENT_BAL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" } ], "id": 3908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [6555, 6556], "referencedDeclaration": 6556, "src": "2410:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2410:53:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3916, "nodeType": "ExpressionStatement", "src": "2410:53:7" }, { "expression": { "argumentTypes": null, "id": 3926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3917, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2473:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3919, "indexExpression": { "argumentTypes": null, "id": 3918, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2482:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2473:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3921, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2494:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3923, "indexExpression": { "argumentTypes": null, "id": 3922, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2503:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2494:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3924, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2509:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3920, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "2489:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3925, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2489:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2473:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3927, "nodeType": "ExpressionStatement", "src": "2473:40:7" }, { "expression": { "argumentTypes": null, "id": 3937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3928, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2523:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3930, "indexExpression": { "argumentTypes": null, "id": 3929, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3903, "src": "2532:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2523:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3932, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2544:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3934, "indexExpression": { "argumentTypes": null, "id": 3933, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3903, "src": "2553:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2544:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3935, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2559:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3931, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "2539:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3936, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2539:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2523:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3938, "nodeType": "ExpressionStatement", "src": "2523:40:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3940, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2587:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3941, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3903, "src": "2592:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3942, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2597:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3939, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "2578:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2578:23:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3944, "nodeType": "EmitStatement", "src": "2573:28:7" } ] }, "documentation": null, "id": 3946, "implemented": true, "kind": "function", "modifiers": [], "name": "_move", "nodeType": "FunctionDefinition", "parameters": { "id": 3906, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3901, "name": "src", "nodeType": "VariableDeclaration", "scope": 3946, "src": "2355:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3900, "name": "address", "nodeType": "ElementaryTypeName", "src": "2355:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3903, "name": "dst", "nodeType": "VariableDeclaration", "scope": 3946, "src": "2368:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3902, "name": "address", "nodeType": "ElementaryTypeName", "src": "2368:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3905, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3946, "src": "2381:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3904, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2381:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2354:36:7" }, "returnParameters": { "id": 3907, "nodeType": "ParameterList", "parameters": [], "src": "2400:0:7" }, "scope": 3979, "src": "2340:268:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3961, "nodeType": "Block", "src": "2660:46:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3955, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2684:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3954, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2676:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2676:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3957, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3948, "src": "2691:2:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3958, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3950, "src": "2695:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3953, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "2670:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2670:29:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3960, "nodeType": "ExpressionStatement", "src": "2670:29:7" } ] }, "documentation": null, "id": 3962, "implemented": true, "kind": "function", "modifiers": [], "name": "_push", "nodeType": "FunctionDefinition", "parameters": { "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3948, "name": "to", "nodeType": "VariableDeclaration", "scope": 3962, "src": "2629:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", "src": "2629:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3950, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3962, "src": "2641:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2641:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2628:22:7" }, "returnParameters": { "id": 3952, "nodeType": "ParameterList", "parameters": [], "src": "2660:0:7" }, "scope": 3979, "src": "2614:92:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3977, "nodeType": "Block", "src": "2760:48:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3970, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3964, "src": "2776:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3972, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2790:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3971, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2782:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2782:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3974, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3966, "src": "2797:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3969, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "2770:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2770:31:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3976, "nodeType": "ExpressionStatement", "src": "2770:31:7" } ] }, "documentation": null, "id": 3978, "implemented": true, "kind": "function", "modifiers": [], "name": "_pull", "nodeType": "FunctionDefinition", "parameters": { "id": 3967, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3964, "name": "from", "nodeType": "VariableDeclaration", "scope": 3978, "src": "2727:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3963, "name": "address", "nodeType": "ElementaryTypeName", "src": "2727:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3966, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3978, "src": "2741:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3965, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2741:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2726:24:7" }, "returnParameters": { "id": 3968, "nodeType": "ParameterList", "parameters": [], "src": "2760:0:7" }, "scope": 3979, "src": "2712:96:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 4286, "src": "1445:1365:7" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3980, "name": "BTokenBase", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3979, "src": "2831:10:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } }, "id": 3981, "nodeType": "InheritanceSpecifier", "src": "2831:10:7" }, { "arguments": null, "baseName": { "contractScope": null, "id": 3982, "name": "IERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 6537, "src": "2843:6:7", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6537", "typeString": "contract IERC20" } }, "id": 3983, "nodeType": "InheritanceSpecifier", "src": "2843:6:7" } ], "contractDependencies": [280, 1422, 3979, 6537], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4285, "linearizedBaseContracts": [4285, 6537, 3979, 1422, 280], "name": "BToken", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 3986, "name": "_name", "nodeType": "VariableDeclaration", "scope": 4285, "src": "2857:49:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3984, "name": "string", "nodeType": "ElementaryTypeName", "src": "2857:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "42616c616e63657220506f6f6c20546f6b656e", "id": 3985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2885:21:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_86726d210cafef5a97cd8551cc3cd59ead4ad6b4a08f1b0e2ca14d5024839298", "typeString": "literal_string \"Balancer Pool Token\"" }, "value": "Balancer Pool Token" }, "visibility": "private" }, { "constant": false, "id": 3989, "name": "_symbol", "nodeType": "VariableDeclaration", "scope": 4285, "src": "2912:33:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3987, "name": "string", "nodeType": "ElementaryTypeName", "src": "2912:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "425054", "id": 3988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2940:5:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c4469c3871c2223d094ce996c22463935f1f3c0f4a0177add993c1ee46e9606", "typeString": "literal_string \"BPT\"" }, "value": "BPT" }, "visibility": "private" }, { "constant": false, "id": 3992, "name": "_decimals", "nodeType": "VariableDeclaration", "scope": 4285, "src": "2951:30:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 3990, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2951:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": { "argumentTypes": null, "hexValue": "3138", "id": 3991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2979:2:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "visibility": "private" }, { "body": { "id": 3999, "nodeType": "Block", "src": "3040:29:7", "statements": [ { "expression": { "argumentTypes": null, "id": 3997, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3986, "src": "3057:5:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 3996, "id": 3998, "nodeType": "Return", "src": "3050:12:7" } ] }, "documentation": null, "id": 4000, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nodeType": "FunctionDefinition", "parameters": { "id": 3993, "nodeType": "ParameterList", "parameters": [], "src": "3001:2:7" }, "returnParameters": { "id": 3996, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3995, "name": "", "nodeType": "VariableDeclaration", "scope": 4000, "src": "3025:13:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3994, "name": "string", "nodeType": "ElementaryTypeName", "src": "3025:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "3024:15:7" }, "scope": 4285, "src": "2988:81:7", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 4007, "nodeType": "Block", "src": "3129:31:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4005, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3989, "src": "3146:7:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 4004, "id": 4006, "nodeType": "Return", "src": "3139:14:7" } ] }, "documentation": null, "id": 4008, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { "id": 4001, "nodeType": "ParameterList", "parameters": [], "src": "3090:2:7" }, "returnParameters": { "id": 4004, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4003, "name": "", "nodeType": "VariableDeclaration", "scope": 4008, "src": "3114:13:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4002, "name": "string", "nodeType": "ElementaryTypeName", "src": "3114:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "3113:15:7" }, "scope": 4285, "src": "3075:85:7", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 4015, "nodeType": "Block", "src": "3213:33:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4013, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3992, "src": "3230:9:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "functionReturnParameters": 4012, "id": 4014, "nodeType": "Return", "src": "3223:16:7" } ] }, "documentation": null, "id": 4016, "implemented": true, "kind": "function", "modifiers": [], "name": "decimals", "nodeType": "FunctionDefinition", "parameters": { "id": 4009, "nodeType": "ParameterList", "parameters": [], "src": "3183:2:7" }, "returnParameters": { "id": 4012, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4011, "name": "", "nodeType": "VariableDeclaration", "scope": 4016, "src": "3206:5:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 4010, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3206:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "3205:7:7" }, "scope": 4285, "src": "3166:80:7", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 4031, "nodeType": "Block", "src": "3326:44:7", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4025, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3343:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4027, "indexExpression": { "argumentTypes": null, "id": 4026, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4018, "src": "3354:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3343:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4029, "indexExpression": { "argumentTypes": null, "id": 4028, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4020, "src": "3359:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3343:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 4024, "id": 4030, "nodeType": "Return", "src": "3336:27:7" } ] }, "documentation": null, "id": 4032, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 4021, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4018, "name": "src", "nodeType": "VariableDeclaration", "scope": 4032, "src": "3271:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4017, "name": "address", "nodeType": "ElementaryTypeName", "src": "3271:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4020, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4032, "src": "3284:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4019, "name": "address", "nodeType": "ElementaryTypeName", "src": "3284:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3270:26:7" }, "returnParameters": { "id": 4024, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4023, "name": "", "nodeType": "VariableDeclaration", "scope": 4032, "src": "3320:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4022, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3320:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3319:6:7" }, "scope": 4285, "src": "3252:118:7", "stateMutability": "view", "superFunction": 6500, "visibility": "external" }, { "body": { "id": 4043, "nodeType": "Block", "src": "3438:38:7", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4039, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "3455:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4041, "indexExpression": { "argumentTypes": null, "id": 4040, "name": "whom", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4034, "src": "3464:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3455:14:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 4038, "id": 4042, "nodeType": "Return", "src": "3448:21:7" } ] }, "documentation": null, "id": 4044, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 4035, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4034, "name": "whom", "nodeType": "VariableDeclaration", "scope": 4044, "src": "3395:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4033, "name": "address", "nodeType": "ElementaryTypeName", "src": "3395:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3394:14:7" }, "returnParameters": { "id": 4038, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4037, "name": "", "nodeType": "VariableDeclaration", "scope": 4044, "src": "3432:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4036, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3432:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3431:6:7" }, "scope": 4285, "src": "3376:100:7", "stateMutability": "view", "superFunction": 6482, "visibility": "external" }, { "body": { "id": 4051, "nodeType": "Block", "src": "3532:36:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4049, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "3549:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 4048, "id": 4050, "nodeType": "Return", "src": "3542:19:7" } ] }, "documentation": null, "id": 4052, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 4045, "nodeType": "ParameterList", "parameters": [], "src": "3502:2:7" }, "returnParameters": { "id": 4048, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4047, "name": "", "nodeType": "VariableDeclaration", "scope": 4052, "src": "3526:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4046, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3526:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3525:6:7" }, "scope": 4285, "src": "3482:86:7", "stateMutability": "view", "superFunction": 6475, "visibility": "public" }, { "body": { "id": 4079, "nodeType": "Block", "src": "3638:116:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4061, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3648:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4065, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4062, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3659:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3659:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3648:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4066, "indexExpression": { "argumentTypes": null, "id": 4064, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4054, "src": "3671:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3648:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4067, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4056, "src": "3678:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3648:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4069, "nodeType": "ExpressionStatement", "src": "3648:33:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4071, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3705:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3705:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4073, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4054, "src": "3717:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4074, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4056, "src": "3722:3:7", "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": 4070, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "3696:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4075, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3696:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4076, "nodeType": "EmitStatement", "src": "3691:35:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3743:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4060, "id": 4078, "nodeType": "Return", "src": "3736:11:7" } ] }, "documentation": null, "id": 4080, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 4057, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4054, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4080, "src": "3591:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4053, "name": "address", "nodeType": "ElementaryTypeName", "src": "3591:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4056, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4080, "src": "3604:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4055, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3604:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3590:23:7" }, "returnParameters": { "id": 4060, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4059, "name": "", "nodeType": "VariableDeclaration", "scope": 4080, "src": "3632:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4058, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3632:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "3631:6:7" }, "scope": 4285, "src": "3574:180:7", "stateMutability": "nonpayable", "superFunction": 6509, "visibility": "external" }, { "body": { "id": 4120, "nodeType": "Block", "src": "3833:175:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4089, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3843:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4093, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4090, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3854:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3854:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3843:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4094, "indexExpression": { "argumentTypes": null, "id": 4092, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3866:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3843:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4096, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3878:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4099, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4097, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3889:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3889:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3878:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4101, "indexExpression": { "argumentTypes": null, "id": 4100, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3901:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3878:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 4102, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4084, "src": "3907:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4095, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "3873:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 4103, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3873:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3843:68:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4105, "nodeType": "ExpressionStatement", "src": "3843:68:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4107, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3935:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3935:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4109, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3947:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4110, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3952:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4113, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4111, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3963:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3963:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3952:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4115, "indexExpression": { "argumentTypes": null, "id": 4114, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3975:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3952:27:7", "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": 4106, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "3926:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4116, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3926:54:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4117, "nodeType": "EmitStatement", "src": "3921:59:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3997:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4088, "id": 4119, "nodeType": "Return", "src": "3990:11:7" } ] }, "documentation": null, "id": 4121, "implemented": true, "kind": "function", "modifiers": [], "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 4085, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4082, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4121, "src": "3786:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4081, "name": "address", "nodeType": "ElementaryTypeName", "src": "3786:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4084, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4121, "src": "3799:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4083, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3799:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3785:23:7" }, "returnParameters": { "id": 4088, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4087, "name": "", "nodeType": "VariableDeclaration", "scope": 4121, "src": "3827:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4086, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3827:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "3826:6:7" }, "scope": 4285, "src": "3760:248:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { "id": 4180, "nodeType": "Block", "src": "4087:315:7", "statements": [ { "assignments": [4131], "declarations": [ { "constant": false, "id": 4131, "name": "oldValue", "nodeType": "VariableDeclaration", "scope": 4180, "src": "4097:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4130, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4097:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 4138, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4132, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4113:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4135, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4133, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4124:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4124:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4113:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4137, "indexExpression": { "argumentTypes": null, "id": 4136, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4136:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4113:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4097:43:7" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4139, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "4154:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 4140, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4131, "src": "4160:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4154:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 4164, "nodeType": "Block", "src": "4232:74:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4152, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4246:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4156, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4153, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4257:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4257:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4246:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4157, "indexExpression": { "argumentTypes": null, "id": 4155, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4269:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4246:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4159, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4131, "src": "4281:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 4160, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "4291:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4158, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "4276:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 4161, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4276:19:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4246:49:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4163, "nodeType": "ExpressionStatement", "src": "4246:49:7" } ] }, "id": 4165, "nodeType": "IfStatement", "src": "4150:156:7", "trueBody": { "id": 4151, "nodeType": "Block", "src": "4170:56:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4149, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4142, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4184:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4146, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4143, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4195:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4195:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4184:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4147, "indexExpression": { "argumentTypes": null, "id": 4145, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4207:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4184:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 4148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4214:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "4184:31:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4150, "nodeType": "ExpressionStatement", "src": "4184:31:7" } ] } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4167, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4329:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4329:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4169, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4341:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4170, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4346:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4173, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4171, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4357:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4357:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4346:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4175, "indexExpression": { "argumentTypes": null, "id": 4174, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4369:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4346:27:7", "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": 4166, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "4320:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4320:54:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4177, "nodeType": "EmitStatement", "src": "4315:59:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4178, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4391:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4129, "id": 4179, "nodeType": "Return", "src": "4384:11:7" } ] }, "documentation": null, "id": 4181, "implemented": true, "kind": "function", "modifiers": [], "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 4126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4123, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4181, "src": "4040:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4122, "name": "address", "nodeType": "ElementaryTypeName", "src": "4040:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4125, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4181, "src": "4053:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4124, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4053:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4039:23:7" }, "returnParameters": { "id": 4129, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4128, "name": "", "nodeType": "VariableDeclaration", "scope": 4181, "src": "4081:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4127, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4081:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4080:6:7" }, "scope": 4285, "src": "4014:388:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { "id": 4199, "nodeType": "Block", "src": "4473:65:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4191, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4489:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4489:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4193, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4183, "src": "4501:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4194, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4185, "src": "4506:3:7", "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": 4190, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "4483:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4195, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4483:27:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4196, "nodeType": "ExpressionStatement", "src": "4483:27:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4527:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4189, "id": 4198, "nodeType": "Return", "src": "4520:11:7" } ] }, "documentation": null, "id": 4200, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 4186, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4183, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4200, "src": "4426:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4182, "name": "address", "nodeType": "ElementaryTypeName", "src": "4426:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4185, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4200, "src": "4439:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4184, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4439:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4425:23:7" }, "returnParameters": { "id": 4189, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4188, "name": "", "nodeType": "VariableDeclaration", "scope": 4200, "src": "4467:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4187, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4467:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4466:6:7" }, "scope": 4285, "src": "4408:130:7", "stateMutability": "nonpayable", "superFunction": 6491, "visibility": "external" }, { "body": { "id": 4283, "nodeType": "Block", "src": "4673:436:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 4224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 4215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4212, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4704:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4704:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 4214, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4718:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4704:17:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4216, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4206, "src": "4725:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4217, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4732:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4219, "indexExpression": { "argumentTypes": null, "id": 4218, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4743:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4732:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4222, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4220, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4748:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4748:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4732:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4725:34:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4704:55:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f42544f4b454e5f4241445f43414c4c4552", "id": 4225, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4774:23:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7c78c5c07128d4fb2c83ecfae573652cc351a44f64cf0f454240bdf4749e318c", "typeString": "literal_string \"ERR_BTOKEN_BAD_CALLER\"" }, "value": "ERR_BTOKEN_BAD_CALLER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7c78c5c07128d4fb2c83ecfae573652cc351a44f64cf0f454240bdf4749e318c", "typeString": "literal_string \"ERR_BTOKEN_BAD_CALLER\"" } ], "id": 4211, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [6555, 6556], "referencedDeclaration": 6556, "src": "4683:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 4226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4683:124:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4227, "nodeType": "ExpressionStatement", "src": "4683:124:7" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4229, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4823:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4230, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4204, "src": "4828:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4231, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4206, "src": "4833:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4228, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "4817:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4817:20:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4233, "nodeType": "ExpressionStatement", "src": "4817:20:7" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 4249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 4237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4234, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4851:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4851:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 4236, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4865:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4851:17:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4248, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4238, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4872:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4240, "indexExpression": { "argumentTypes": null, "id": 4239, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4883:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4872:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4243, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4241, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4888:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4888:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4872:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "4911:2:7", "subExpression": { "argumentTypes": null, "hexValue": "31", "id": 4245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4912:1:7", "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": 4244, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4903:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, "id": 4247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4903:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4872:42:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4851:63:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4280, "nodeType": "IfStatement", "src": "4847:235:7", "trueBody": { "id": 4279, "nodeType": "Block", "src": "4916:166:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4250, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4930:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4254, "indexExpression": { "argumentTypes": null, "id": 4251, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4941:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4930:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4255, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4252, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4946:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4946:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4930:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4257, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4965:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4259, "indexExpression": { "argumentTypes": null, "id": 4258, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4976:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4965:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4262, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4260, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4981:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4981:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4965:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 4263, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4206, "src": "4994:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4256, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "4960:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 4264, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4960:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4930:68:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4266, "nodeType": "ExpressionStatement", "src": "4930:68:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4268, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "5026:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5026:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4270, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4204, "src": "5038:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4271, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "5043:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4273, "indexExpression": { "argumentTypes": null, "id": 4272, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "5054:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5043:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4276, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4274, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "5059:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5059:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5043:27:7", "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": 4267, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "5017:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4277, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5017:54:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4278, "nodeType": "EmitStatement", "src": "5012:59:7" } ] } }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5098:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4210, "id": 4282, "nodeType": "Return", "src": "5091:11:7" } ] }, "documentation": null, "id": 4284, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 4207, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4202, "name": "src", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4575:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4201, "name": "address", "nodeType": "ElementaryTypeName", "src": "4575:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4204, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4597:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4203, "name": "address", "nodeType": "ElementaryTypeName", "src": "4597:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4206, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4619:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4205, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4619:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4565:68:7" }, "returnParameters": { "id": 4210, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4209, "name": "", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4662:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4208, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4662:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4661:6:7" }, "scope": 4285, "src": "4544:565:7", "stateMutability": "nonpayable", "superFunction": 6520, "visibility": "external" } ], "scope": 4286, "src": "2812:2299:7" } ], "src": "643:4469:7" }, "legacyAST": { "absolutePath": "/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BToken.sol", "exportedSymbols": { "BToken": [4285], "BTokenBase": [3979] }, "id": 4286, "nodeType": "SourceUnit", "nodes": [ { "id": 3780, "literals": ["solidity", "0.5", ".7"], "nodeType": "PragmaDirective", "src": "643:22:7" }, { "absolutePath": "/home/travis/build/oceanprotocol/ocean-contracts/contracts/balancer/BNum.sol", "file": "./BNum.sol", "id": 3781, "nodeType": "ImportDirective", "scope": 4286, "sourceUnit": 1423, "src": "667:20:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "id": 3782, "nodeType": "ImportDirective", "scope": 4286, "sourceUnit": 6538, "src": "688:64:7", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3783, "name": "BNum", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1422, "src": "1468:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BNum_$1422", "typeString": "contract BNum" } }, "id": 3784, "nodeType": "InheritanceSpecifier", "src": "1468:4:7" } ], "contractDependencies": [280, 1422], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3979, "linearizedBaseContracts": [3979, 1422, 280], "name": "BTokenBase", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 3788, "name": "_balance", "nodeType": "VariableDeclaration", "scope": 3979, "src": "1480:60:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 3787, "keyType": { "id": 3785, "name": "address", "nodeType": "ElementaryTypeName", "src": "1488:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1480:24:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3786, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1499:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3794, "name": "_allowance", "nodeType": "VariableDeclaration", "scope": 3979, "src": "1546:62:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 3793, "keyType": { "id": 3789, "name": "address", "nodeType": "ElementaryTypeName", "src": "1554:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1546:42:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 3792, "keyType": { "id": 3790, "name": "address", "nodeType": "ElementaryTypeName", "src": "1573:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1565:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3791, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1582:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3796, "name": "_totalSupply", "nodeType": "VariableDeclaration", "scope": 3979, "src": "1614:26:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3795, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1614:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "anonymous": false, "documentation": null, "id": 3804, "name": "Approval", "nodeType": "EventDefinition", "parameters": { "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3798, "indexed": true, "name": "src", "nodeType": "VariableDeclaration", "scope": 3804, "src": "1662:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3797, "name": "address", "nodeType": "ElementaryTypeName", "src": "1662:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3800, "indexed": true, "name": "dst", "nodeType": "VariableDeclaration", "scope": 3804, "src": "1683:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3799, "name": "address", "nodeType": "ElementaryTypeName", "src": "1683:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3802, "indexed": false, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3804, "src": "1704:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3801, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1704:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1661:52:7" }, "src": "1647:67:7" }, { "anonymous": false, "documentation": null, "id": 3812, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { "id": 3811, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3806, "indexed": true, "name": "src", "nodeType": "VariableDeclaration", "scope": 3812, "src": "1734:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3805, "name": "address", "nodeType": "ElementaryTypeName", "src": "1734:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3808, "indexed": true, "name": "dst", "nodeType": "VariableDeclaration", "scope": 3812, "src": "1755:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3807, "name": "address", "nodeType": "ElementaryTypeName", "src": "1755:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3810, "indexed": false, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3812, "src": "1776:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3809, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1776:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1733:52:7" }, "src": "1719:67:7" }, { "body": { "id": 3849, "nodeType": "Block", "src": "1826:180:7", "statements": [ { "expression": { "argumentTypes": null, "id": 3830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3817, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "1836:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3821, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3819, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "1853:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3818, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1845:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3820, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1845:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1836:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3823, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "1867:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3827, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3825, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "1884:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1876:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3826, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1876:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1867:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3828, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3814, "src": "1892:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3822, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "1862:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3829, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1862:34:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1836:60:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3831, "nodeType": "ExpressionStatement", "src": "1836:60:7" }, { "expression": { "argumentTypes": null, "id": 3837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3832, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "1906:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3834, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "1926:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3835, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3814, "src": "1940:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3833, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "1921:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1921:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1906:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3838, "nodeType": "ExpressionStatement", "src": "1906:38:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1976:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 3840, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1968:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1968:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3844, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "1988:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3843, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1980:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3845, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1980:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3846, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3814, "src": "1995:3:7", "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": 3839, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "1959:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3847, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1959:40:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3848, "nodeType": "EmitStatement", "src": "1954:45:7" } ] }, "documentation": null, "id": 3850, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { "id": 3815, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3814, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3850, "src": "1807:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3813, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1807:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1806:10:7" }, "returnParameters": { "id": 3816, "nodeType": "ParameterList", "parameters": [], "src": "1826:0:7" }, "scope": 3979, "src": "1792:214:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3898, "nodeType": "Block", "src": "2046:288:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3856, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2077:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3860, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3858, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2094:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3857, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2086:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2086:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2077:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3861, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2104:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2077:30:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f494e53554646494349454e545f42414c", "id": 3863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2122:22:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" }, "value": "ERR_INSUFFICIENT_BAL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" } ], "id": 3855, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [6555, 6556], "referencedDeclaration": 6556, "src": "2056:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2056:98:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3865, "nodeType": "ExpressionStatement", "src": "2056:98:7" }, { "expression": { "argumentTypes": null, "id": 3879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3866, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2164:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3870, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3868, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2181:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2173:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3869, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2173:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2164:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3872, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2195:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3876, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3874, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2212:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3873, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2204:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3875, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2204:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2195:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3877, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2220:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3871, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "2190:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3878, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2190:34:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2164:60:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3880, "nodeType": "ExpressionStatement", "src": "2164:60:7" }, { "expression": { "argumentTypes": null, "id": 3886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3881, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "2234:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3883, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "2254:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3884, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2268:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3882, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "2249:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3885, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2249:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2234:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3887, "nodeType": "ExpressionStatement", "src": "2234:38:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3890, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2304:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3889, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2296:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3891, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2296:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3893, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2319:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 3892, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2311:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3894, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2311:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 3895, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "2323:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3888, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "2287:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3896, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2287:40:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3897, "nodeType": "EmitStatement", "src": "2282:45:7" } ] }, "documentation": null, "id": 3899, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { "id": 3853, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3852, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3899, "src": "2027:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3851, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2027:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2026:10:7" }, "returnParameters": { "id": 3854, "nodeType": "ParameterList", "parameters": [], "src": "2046:0:7" }, "scope": 3979, "src": "2012:322:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3945, "nodeType": "Block", "src": "2400:208:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3909, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2418:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3911, "indexExpression": { "argumentTypes": null, "id": 3910, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2427:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2418:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3912, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2435:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2418:20:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f494e53554646494349454e545f42414c", "id": 3914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2440:22:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" }, "value": "ERR_INSUFFICIENT_BAL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_6d886dfa4c52985ff7e07248f8343de807c72a722ad596b432ce38fd268e3469", "typeString": "literal_string \"ERR_INSUFFICIENT_BAL\"" } ], "id": 3908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [6555, 6556], "referencedDeclaration": 6556, "src": "2410:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2410:53:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3916, "nodeType": "ExpressionStatement", "src": "2410:53:7" }, { "expression": { "argumentTypes": null, "id": 3926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3917, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2473:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3919, "indexExpression": { "argumentTypes": null, "id": 3918, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2482:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2473:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3921, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2494:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3923, "indexExpression": { "argumentTypes": null, "id": 3922, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2503:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2494:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3924, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2509:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3920, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "2489:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3925, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2489:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2473:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3927, "nodeType": "ExpressionStatement", "src": "2473:40:7" }, { "expression": { "argumentTypes": null, "id": 3937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3928, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2523:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3930, "indexExpression": { "argumentTypes": null, "id": 3929, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3903, "src": "2532:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2523:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3932, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "2544:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3934, "indexExpression": { "argumentTypes": null, "id": 3933, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3903, "src": "2553:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2544:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3935, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2559:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3931, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "2539:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 3936, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2539:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2523:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3938, "nodeType": "ExpressionStatement", "src": "2523:40:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3940, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3901, "src": "2587:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3941, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3903, "src": "2592:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3942, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3905, "src": "2597:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3939, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "2578:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2578:23:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3944, "nodeType": "EmitStatement", "src": "2573:28:7" } ] }, "documentation": null, "id": 3946, "implemented": true, "kind": "function", "modifiers": [], "name": "_move", "nodeType": "FunctionDefinition", "parameters": { "id": 3906, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3901, "name": "src", "nodeType": "VariableDeclaration", "scope": 3946, "src": "2355:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3900, "name": "address", "nodeType": "ElementaryTypeName", "src": "2355:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3903, "name": "dst", "nodeType": "VariableDeclaration", "scope": 3946, "src": "2368:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3902, "name": "address", "nodeType": "ElementaryTypeName", "src": "2368:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3905, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3946, "src": "2381:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3904, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2381:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2354:36:7" }, "returnParameters": { "id": 3907, "nodeType": "ParameterList", "parameters": [], "src": "2400:0:7" }, "scope": 3979, "src": "2340:268:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3961, "nodeType": "Block", "src": "2660:46:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3955, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2684:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3954, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2676:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2676:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3957, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3948, "src": "2691:2:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3958, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3950, "src": "2695:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3953, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "2670:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2670:29:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3960, "nodeType": "ExpressionStatement", "src": "2670:29:7" } ] }, "documentation": null, "id": 3962, "implemented": true, "kind": "function", "modifiers": [], "name": "_push", "nodeType": "FunctionDefinition", "parameters": { "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3948, "name": "to", "nodeType": "VariableDeclaration", "scope": 3962, "src": "2629:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", "src": "2629:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3950, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3962, "src": "2641:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2641:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2628:22:7" }, "returnParameters": { "id": 3952, "nodeType": "ParameterList", "parameters": [], "src": "2660:0:7" }, "scope": 3979, "src": "2614:92:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3977, "nodeType": "Block", "src": "2760:48:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3970, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3964, "src": "2776:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3972, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6580, "src": "2790:4:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } ], "id": 3971, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2782:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2782:13:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3974, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3966, "src": "2797:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3969, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "2770:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2770:31:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3976, "nodeType": "ExpressionStatement", "src": "2770:31:7" } ] }, "documentation": null, "id": 3978, "implemented": true, "kind": "function", "modifiers": [], "name": "_pull", "nodeType": "FunctionDefinition", "parameters": { "id": 3967, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3964, "name": "from", "nodeType": "VariableDeclaration", "scope": 3978, "src": "2727:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3963, "name": "address", "nodeType": "ElementaryTypeName", "src": "2727:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3966, "name": "amt", "nodeType": "VariableDeclaration", "scope": 3978, "src": "2741:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3965, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2741:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2726:24:7" }, "returnParameters": { "id": 3968, "nodeType": "ParameterList", "parameters": [], "src": "2760:0:7" }, "scope": 3979, "src": "2712:96:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 4286, "src": "1445:1365:7" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3980, "name": "BTokenBase", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3979, "src": "2831:10:7", "typeDescriptions": { "typeIdentifier": "t_contract$_BTokenBase_$3979", "typeString": "contract BTokenBase" } }, "id": 3981, "nodeType": "InheritanceSpecifier", "src": "2831:10:7" }, { "arguments": null, "baseName": { "contractScope": null, "id": 3982, "name": "IERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 6537, "src": "2843:6:7", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6537", "typeString": "contract IERC20" } }, "id": 3983, "nodeType": "InheritanceSpecifier", "src": "2843:6:7" } ], "contractDependencies": [280, 1422, 3979, 6537], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4285, "linearizedBaseContracts": [4285, 6537, 3979, 1422, 280], "name": "BToken", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 3986, "name": "_name", "nodeType": "VariableDeclaration", "scope": 4285, "src": "2857:49:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3984, "name": "string", "nodeType": "ElementaryTypeName", "src": "2857:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "42616c616e63657220506f6f6c20546f6b656e", "id": 3985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2885:21:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_86726d210cafef5a97cd8551cc3cd59ead4ad6b4a08f1b0e2ca14d5024839298", "typeString": "literal_string \"Balancer Pool Token\"" }, "value": "Balancer Pool Token" }, "visibility": "private" }, { "constant": false, "id": 3989, "name": "_symbol", "nodeType": "VariableDeclaration", "scope": 4285, "src": "2912:33:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3987, "name": "string", "nodeType": "ElementaryTypeName", "src": "2912:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "425054", "id": 3988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2940:5:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c4469c3871c2223d094ce996c22463935f1f3c0f4a0177add993c1ee46e9606", "typeString": "literal_string \"BPT\"" }, "value": "BPT" }, "visibility": "private" }, { "constant": false, "id": 3992, "name": "_decimals", "nodeType": "VariableDeclaration", "scope": 4285, "src": "2951:30:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 3990, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2951:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": { "argumentTypes": null, "hexValue": "3138", "id": 3991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2979:2:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "visibility": "private" }, { "body": { "id": 3999, "nodeType": "Block", "src": "3040:29:7", "statements": [ { "expression": { "argumentTypes": null, "id": 3997, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3986, "src": "3057:5:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 3996, "id": 3998, "nodeType": "Return", "src": "3050:12:7" } ] }, "documentation": null, "id": 4000, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nodeType": "FunctionDefinition", "parameters": { "id": 3993, "nodeType": "ParameterList", "parameters": [], "src": "3001:2:7" }, "returnParameters": { "id": 3996, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3995, "name": "", "nodeType": "VariableDeclaration", "scope": 4000, "src": "3025:13:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3994, "name": "string", "nodeType": "ElementaryTypeName", "src": "3025:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "3024:15:7" }, "scope": 4285, "src": "2988:81:7", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 4007, "nodeType": "Block", "src": "3129:31:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4005, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3989, "src": "3146:7:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 4004, "id": 4006, "nodeType": "Return", "src": "3139:14:7" } ] }, "documentation": null, "id": 4008, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { "id": 4001, "nodeType": "ParameterList", "parameters": [], "src": "3090:2:7" }, "returnParameters": { "id": 4004, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4003, "name": "", "nodeType": "VariableDeclaration", "scope": 4008, "src": "3114:13:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4002, "name": "string", "nodeType": "ElementaryTypeName", "src": "3114:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "3113:15:7" }, "scope": 4285, "src": "3075:85:7", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 4015, "nodeType": "Block", "src": "3213:33:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4013, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3992, "src": "3230:9:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "functionReturnParameters": 4012, "id": 4014, "nodeType": "Return", "src": "3223:16:7" } ] }, "documentation": null, "id": 4016, "implemented": true, "kind": "function", "modifiers": [], "name": "decimals", "nodeType": "FunctionDefinition", "parameters": { "id": 4009, "nodeType": "ParameterList", "parameters": [], "src": "3183:2:7" }, "returnParameters": { "id": 4012, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4011, "name": "", "nodeType": "VariableDeclaration", "scope": 4016, "src": "3206:5:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 4010, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3206:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], "src": "3205:7:7" }, "scope": 4285, "src": "3166:80:7", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 4031, "nodeType": "Block", "src": "3326:44:7", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4025, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3343:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4027, "indexExpression": { "argumentTypes": null, "id": 4026, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4018, "src": "3354:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3343:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4029, "indexExpression": { "argumentTypes": null, "id": 4028, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4020, "src": "3359:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3343:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 4024, "id": 4030, "nodeType": "Return", "src": "3336:27:7" } ] }, "documentation": null, "id": 4032, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 4021, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4018, "name": "src", "nodeType": "VariableDeclaration", "scope": 4032, "src": "3271:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4017, "name": "address", "nodeType": "ElementaryTypeName", "src": "3271:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4020, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4032, "src": "3284:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4019, "name": "address", "nodeType": "ElementaryTypeName", "src": "3284:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3270:26:7" }, "returnParameters": { "id": 4024, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4023, "name": "", "nodeType": "VariableDeclaration", "scope": 4032, "src": "3320:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4022, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3320:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3319:6:7" }, "scope": 4285, "src": "3252:118:7", "stateMutability": "view", "superFunction": 6500, "visibility": "external" }, { "body": { "id": 4043, "nodeType": "Block", "src": "3438:38:7", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4039, "name": "_balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3788, "src": "3455:8:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4041, "indexExpression": { "argumentTypes": null, "id": 4040, "name": "whom", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4034, "src": "3464:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3455:14:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 4038, "id": 4042, "nodeType": "Return", "src": "3448:21:7" } ] }, "documentation": null, "id": 4044, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 4035, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4034, "name": "whom", "nodeType": "VariableDeclaration", "scope": 4044, "src": "3395:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4033, "name": "address", "nodeType": "ElementaryTypeName", "src": "3395:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3394:14:7" }, "returnParameters": { "id": 4038, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4037, "name": "", "nodeType": "VariableDeclaration", "scope": 4044, "src": "3432:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4036, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3432:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3431:6:7" }, "scope": 4285, "src": "3376:100:7", "stateMutability": "view", "superFunction": 6482, "visibility": "external" }, { "body": { "id": 4051, "nodeType": "Block", "src": "3532:36:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4049, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "3549:12:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 4048, "id": 4050, "nodeType": "Return", "src": "3542:19:7" } ] }, "documentation": null, "id": 4052, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 4045, "nodeType": "ParameterList", "parameters": [], "src": "3502:2:7" }, "returnParameters": { "id": 4048, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4047, "name": "", "nodeType": "VariableDeclaration", "scope": 4052, "src": "3526:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4046, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3526:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3525:6:7" }, "scope": 4285, "src": "3482:86:7", "stateMutability": "view", "superFunction": 6475, "visibility": "public" }, { "body": { "id": 4079, "nodeType": "Block", "src": "3638:116:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4061, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3648:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4065, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4062, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3659:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3659:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3648:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4066, "indexExpression": { "argumentTypes": null, "id": 4064, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4054, "src": "3671:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3648:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4067, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4056, "src": "3678:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3648:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4069, "nodeType": "ExpressionStatement", "src": "3648:33:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4071, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3705:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3705:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4073, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4054, "src": "3717:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4074, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4056, "src": "3722:3:7", "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": 4070, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "3696:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4075, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3696:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4076, "nodeType": "EmitStatement", "src": "3691:35:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3743:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4060, "id": 4078, "nodeType": "Return", "src": "3736:11:7" } ] }, "documentation": null, "id": 4080, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 4057, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4054, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4080, "src": "3591:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4053, "name": "address", "nodeType": "ElementaryTypeName", "src": "3591:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4056, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4080, "src": "3604:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4055, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3604:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3590:23:7" }, "returnParameters": { "id": 4060, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4059, "name": "", "nodeType": "VariableDeclaration", "scope": 4080, "src": "3632:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4058, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3632:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "3631:6:7" }, "scope": 4285, "src": "3574:180:7", "stateMutability": "nonpayable", "superFunction": 6509, "visibility": "external" }, { "body": { "id": 4120, "nodeType": "Block", "src": "3833:175:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4089, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3843:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4093, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4090, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3854:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3854:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3843:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4094, "indexExpression": { "argumentTypes": null, "id": 4092, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3866:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3843:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4096, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3878:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4099, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4097, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3889:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3889:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3878:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4101, "indexExpression": { "argumentTypes": null, "id": 4100, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3901:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3878:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 4102, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4084, "src": "3907:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4095, "name": "badd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1001, "src": "3873:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 4103, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3873:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3843:68:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4105, "nodeType": "ExpressionStatement", "src": "3843:68:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4107, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3935:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3935:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4109, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3947:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4110, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3952:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4113, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4111, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "3963:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3963:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3952:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4115, "indexExpression": { "argumentTypes": null, "id": 4114, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4082, "src": "3975:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3952:27:7", "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": 4106, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "3926:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4116, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3926:54:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4117, "nodeType": "EmitStatement", "src": "3921:59:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3997:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4088, "id": 4119, "nodeType": "Return", "src": "3990:11:7" } ] }, "documentation": null, "id": 4121, "implemented": true, "kind": "function", "modifiers": [], "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 4085, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4082, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4121, "src": "3786:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4081, "name": "address", "nodeType": "ElementaryTypeName", "src": "3786:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4084, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4121, "src": "3799:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4083, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3799:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3785:23:7" }, "returnParameters": { "id": 4088, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4087, "name": "", "nodeType": "VariableDeclaration", "scope": 4121, "src": "3827:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4086, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3827:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "3826:6:7" }, "scope": 4285, "src": "3760:248:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { "id": 4180, "nodeType": "Block", "src": "4087:315:7", "statements": [ { "assignments": [4131], "declarations": [ { "constant": false, "id": 4131, "name": "oldValue", "nodeType": "VariableDeclaration", "scope": 4180, "src": "4097:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4130, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4097:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 4138, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4132, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4113:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4135, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4133, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4124:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4124:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4113:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4137, "indexExpression": { "argumentTypes": null, "id": 4136, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4136:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4113:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4097:43:7" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4139, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "4154:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 4140, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4131, "src": "4160:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4154:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 4164, "nodeType": "Block", "src": "4232:74:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4152, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4246:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4156, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4153, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4257:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4257:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4246:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4157, "indexExpression": { "argumentTypes": null, "id": 4155, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4269:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4246:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4159, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4131, "src": "4281:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 4160, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "4291:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4158, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "4276:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 4161, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4276:19:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4246:49:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4163, "nodeType": "ExpressionStatement", "src": "4246:49:7" } ] }, "id": 4165, "nodeType": "IfStatement", "src": "4150:156:7", "trueBody": { "id": 4151, "nodeType": "Block", "src": "4170:56:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4149, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4142, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4184:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4146, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4143, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4195:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4195:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4184:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4147, "indexExpression": { "argumentTypes": null, "id": 4145, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4207:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4184:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 4148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4214:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "4184:31:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4150, "nodeType": "ExpressionStatement", "src": "4184:31:7" } ] } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4167, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4329:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4329:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4169, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4341:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4170, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4346:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4173, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4171, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4357:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4357:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4346:22:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4175, "indexExpression": { "argumentTypes": null, "id": 4174, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "4369:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4346:27:7", "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": 4166, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "4320:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4320:54:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4177, "nodeType": "EmitStatement", "src": "4315:59:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4178, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4391:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4129, "id": 4179, "nodeType": "Return", "src": "4384:11:7" } ] }, "documentation": null, "id": 4181, "implemented": true, "kind": "function", "modifiers": [], "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 4126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4123, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4181, "src": "4040:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4122, "name": "address", "nodeType": "ElementaryTypeName", "src": "4040:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4125, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4181, "src": "4053:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4124, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4053:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4039:23:7" }, "returnParameters": { "id": 4129, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4128, "name": "", "nodeType": "VariableDeclaration", "scope": 4181, "src": "4081:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4127, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4081:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4080:6:7" }, "scope": 4285, "src": "4014:388:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { "id": 4199, "nodeType": "Block", "src": "4473:65:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4191, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4489:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4489:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4193, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4183, "src": "4501:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4194, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4185, "src": "4506:3:7", "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": 4190, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "4483:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4195, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4483:27:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4196, "nodeType": "ExpressionStatement", "src": "4483:27:7" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4527:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4189, "id": 4198, "nodeType": "Return", "src": "4520:11:7" } ] }, "documentation": null, "id": 4200, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 4186, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4183, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4200, "src": "4426:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4182, "name": "address", "nodeType": "ElementaryTypeName", "src": "4426:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4185, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4200, "src": "4439:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4184, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4439:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4425:23:7" }, "returnParameters": { "id": 4189, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4188, "name": "", "nodeType": "VariableDeclaration", "scope": 4200, "src": "4467:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4187, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4467:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4466:6:7" }, "scope": 4285, "src": "4408:130:7", "stateMutability": "nonpayable", "superFunction": 6491, "visibility": "external" }, { "body": { "id": 4283, "nodeType": "Block", "src": "4673:436:7", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 4224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 4215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4212, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4704:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4704:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 4214, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4718:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4704:17:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4216, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4206, "src": "4725:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4217, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4732:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4219, "indexExpression": { "argumentTypes": null, "id": 4218, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4743:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4732:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4222, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4220, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4748:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4748:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4732:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4725:34:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4704:55:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f42544f4b454e5f4241445f43414c4c4552", "id": 4225, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4774:23:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7c78c5c07128d4fb2c83ecfae573652cc351a44f64cf0f454240bdf4749e318c", "typeString": "literal_string \"ERR_BTOKEN_BAD_CALLER\"" }, "value": "ERR_BTOKEN_BAD_CALLER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7c78c5c07128d4fb2c83ecfae573652cc351a44f64cf0f454240bdf4749e318c", "typeString": "literal_string \"ERR_BTOKEN_BAD_CALLER\"" } ], "id": 4211, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [6555, 6556], "referencedDeclaration": 6556, "src": "4683:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 4226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4683:124:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4227, "nodeType": "ExpressionStatement", "src": "4683:124:7" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4229, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4823:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4230, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4204, "src": "4828:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4231, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4206, "src": "4833:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4228, "name": "_move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3946, "src": "4817:5:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4817:20:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4233, "nodeType": "ExpressionStatement", "src": "4817:20:7" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 4249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 4237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4234, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4851:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4851:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 4236, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4865:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4851:17:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4248, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4238, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4872:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4240, "indexExpression": { "argumentTypes": null, "id": 4239, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4883:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4872:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4243, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4241, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4888:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4888:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4872:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "4911:2:7", "subExpression": { "argumentTypes": null, "hexValue": "31", "id": 4245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4912:1:7", "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": 4244, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4903:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, "id": 4247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4903:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4872:42:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4851:63:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4280, "nodeType": "IfStatement", "src": "4847:235:7", "trueBody": { "id": 4279, "nodeType": "Block", "src": "4916:166:7", "statements": [ { "expression": { "argumentTypes": null, "id": 4265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4250, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4930:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4254, "indexExpression": { "argumentTypes": null, "id": 4251, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4941:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4930:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4255, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4252, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4946:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4946:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4930:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4257, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "4965:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4259, "indexExpression": { "argumentTypes": null, "id": 4258, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "4976:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4965:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4262, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4260, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "4981:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4981:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4965:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 4263, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4206, "src": "4994:3:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 4256, "name": "bsub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1028, "src": "4960:4:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 4264, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4960:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4930:68:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4266, "nodeType": "ExpressionStatement", "src": "4930:68:7" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4268, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "5026:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5026:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 4270, "name": "dst", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4204, "src": "5038:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4271, "name": "_allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "5043:10:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 4273, "indexExpression": { "argumentTypes": null, "id": 4272, "name": "src", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4202, "src": "5054:3:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5043:15:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 4276, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4274, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6552, "src": "5059:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5059:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5043:27:7", "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": 4267, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [6536], "referencedDeclaration": 6536, "src": "5017:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 4277, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5017:54:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4278, "nodeType": "EmitStatement", "src": "5012:59:7" } ] } }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 4281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5098:4:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 4210, "id": 4282, "nodeType": "Return", "src": "5091:11:7" } ] }, "documentation": null, "id": 4284, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 4207, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4202, "name": "src", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4575:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4201, "name": "address", "nodeType": "ElementaryTypeName", "src": "4575:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4204, "name": "dst", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4597:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4203, "name": "address", "nodeType": "ElementaryTypeName", "src": "4597:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4206, "name": "amt", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4619:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4205, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4619:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4565:68:7" }, "returnParameters": { "id": 4210, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4209, "name": "", "nodeType": "VariableDeclaration", "scope": 4284, "src": "4662:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4208, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4662:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4661:6:7" }, "scope": 4285, "src": "4544:565:7", "stateMutability": "nonpayable", "superFunction": 6520, "visibility": "external" } ], "scope": 4286, "src": "2812:2299:7" } ], "src": "643:4469:7" }, "compiler": { "name": "solc", "version": "0.5.7+commit.6da8b019.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.2.4", "updatedAt": "2020-10-22T12:03:05.101Z", "devdoc": { "methods": {} }, "userdoc": { "methods": {} } }