2019-12-29 02:25:08 +00:00
{
"contractName" : "ERC20" ,
"abi" : [
{
"anonymous" : false ,
"inputs" : [
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "owner" ,
"type" : "address"
} ,
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"indexed" : false ,
"internalType" : "uint256" ,
"name" : "value" ,
"type" : "uint256"
}
] ,
"name" : "Approval" ,
"type" : "event"
} ,
{
"anonymous" : false ,
"inputs" : [
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "from" ,
"type" : "address"
} ,
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "to" ,
"type" : "address"
} ,
{
"indexed" : false ,
"internalType" : "uint256" ,
"name" : "value" ,
"type" : "uint256"
}
] ,
"name" : "Transfer" ,
"type" : "event"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "totalSupply" ,
"outputs" : [
{
"internalType" : "uint256" ,
"name" : "" ,
"type" : "uint256"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "account" ,
"type" : "address"
}
] ,
"name" : "balanceOf" ,
"outputs" : [
{
"internalType" : "uint256" ,
"name" : "" ,
"type" : "uint256"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "recipient" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "amount" ,
"type" : "uint256"
}
] ,
"name" : "transfer" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "owner" ,
"type" : "address"
} ,
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
}
] ,
"name" : "allowance" ,
"outputs" : [
{
"internalType" : "uint256" ,
"name" : "" ,
"type" : "uint256"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "amount" ,
"type" : "uint256"
}
] ,
"name" : "approve" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "sender" ,
"type" : "address"
} ,
{
"internalType" : "address" ,
"name" : "recipient" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "amount" ,
"type" : "uint256"
}
] ,
"name" : "transferFrom" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "addedValue" ,
"type" : "uint256"
}
] ,
"name" : "increaseAllowance" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "subtractedValue" ,
"type" : "uint256"
}
] ,
"name" : "decreaseAllowance" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
}
] ,
"metadata" : "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\" I m p l e m e n t a t i o n o f t h e { I E R C 2 0 } i n t e r f a c e . * T h i s i m p l e m e n t a t i o n i s a g n o s t i c t o t h e w a y t o k e n s a r e c r e a t e d . T h i s m e a n s t h a t a s u p p l y m e c h a n i s m h a s t o b e a d d e d i n a d e r i v e d c o n t r a c t u s i n g { _ m i n t } . F o r a g e n e r i c m e c h a n i s m s e e { E R C 2 0 M i n t a b l e } . * T I P : F o r a d e t a i l e d w r i t e u p s e e o u r g u i d e h t t p s : //forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict w
"bytecode" : " 0 x 6080604052610e3 a 806100136000396000 f 3 f e 608060405234801561001057600080 f d 5 b 50600436106100885760003560e01 c 806370 a 0 82311161005 b 57806370 a 0 8231146101 f d 578063 a 457 c 2 d 714610255578063 a 9059 c b b 146102 b b 578063 d d 62 e d 3e1461032157610088565 b 8063095 e a 7 b 31461008 d 57806318160 d d d 146100 f 357806323 b 872 d d 146101115780633950935114610197575 b 600080 f d 5 b 6100 d 9600480360360408110156100 a 357600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610399565 b 604051808215151515815260200191505060405180910390 f 35 b 6100 f b 6103 b 7565 b 6040518082815260200191505060405180910390 f 35 b 61017 d 6004803603606081101561012757600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803590602001909291905050506103 c 1565 b 604051808215151515815260200191505060405180910390 f 35 b 6101e3600480360360408110156101 a d 57600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291908035906020019092919050505061049 a 565 b 604051808215151515815260200191505060405180910390 f 35 b 61023 f 6004803603602081101561021357600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061054 d 565 b 6040518082815260200191505060405180910390 f 35 b 6102 a 16004803603604081101561026 b 57600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610595565 b 604051808215151515815260200191505060405180910390 f 35 b 610307600480360360408110156102 d 157600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610662565 b 604051808215151515815260200191505060405180910390 f 35 b 6103836004803603604081101561033757600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610680565 b 6040518082815260200191505060405180910390 f 35 b 60006103 a d 6103 a 6610707565 b 848461070 f 565 b 6001905092915050565 b 6000600254905090565 b 60006103 c e 848484610906565 b 61048 f 846103 d a 610707565 b 61048 a 85604051806060016040528060288152602001610 d 7060289139600160008 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681526020019081526020016000206000610440610707565 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054610 b b c 9092919063 f f f f f f f f 16565 b 61070 f 565 b 600190509392505050565 b 60006105436104 a 7610707565 b 8461053e85600160006104 b 8610707565 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060008973 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054610 c 7 c 90919063 f f f f f f f f 16565 b 61070 f 565 b 6001905092915050565 b 60008060008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168152602001908152602001600020549050919050565 b 60006106586105 a 2610707565 b 8461065385604051806060016040528060258152602001610 d e 160259139600160006105 c c 610707565 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060008 a 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054610 b b c 9092919063 f f f f f f f f 16565 b 61070 f 565 b 6001905092915050565 b 600061067661066 f 610707565 b 8484610906565 b 6001905092915050565 b 6000600160008473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054905092915050565 b 600033905090565 b 600073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415610795576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8152600401808060200182810382526024815260200180610 d b d 6024913960400191505060405180910390 f d 5 b 600073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16141561081 b 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
"deployedBytecode" : " 0 x 608060405234801561001057600080 f d 5 b 50600436106100885760003560e01 c 806370 a 0 82311161005 b 57806370 a 0 8231146101 f d 578063 a 457 c 2 d 714610255578063 a 9059 c b b 146102 b b 578063 d d 62 e d 3e1461032157610088565 b 8063095 e a 7 b 31461008 d 57806318160 d d d 146100 f 357806323 b 872 d d 146101115780633950935114610197575 b 600080 f d 5 b 6100 d 9600480360360408110156100 a 357600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610399565 b 604051808215151515815260200191505060405180910390 f 35 b 6100 f b 6103 b 7565 b 6040518082815260200191505060405180910390 f 35 b 61017 d 6004803603606081101561012757600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803590602001909291905050506103 c 1565 b 604051808215151515815260200191505060405180910390 f 35 b 6101e3600480360360408110156101 a d 57600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291908035906020019092919050505061049 a 565 b 604051808215151515815260200191505060405180910390 f 35 b 61023 f 6004803603602081101561021357600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061054 d 565 b 6040518082815260200191505060405180910390 f 35 b 6102 a 16004803603604081101561026 b 57600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610595565 b 604051808215151515815260200191505060405180910390 f 35 b 610307600480360360408110156102 d 157600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919080359060200190929190505050610662565 b 604051808215151515815260200191505060405180910390 f 35 b 6103836004803603604081101561033757600080 f d 5 b 81019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610680565 b 6040518082815260200191505060405180910390 f 35 b 60006103 a d 6103 a 6610707565 b 848461070 f 565 b 6001905092915050565 b 6000600254905090565 b 60006103 c e 848484610906565 b 61048 f 846103 d a 610707565 b 61048 a 85604051806060016040528060288152602001610 d 7060289139600160008 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681526020019081526020016000206000610440610707565 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054610 b b c 9092919063 f f f f f f f f 16565 b 61070 f 565 b 600190509392505050565 b 60006105436104 a 7610707565 b 8461053e85600160006104 b 8610707565 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060008973 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054610 c 7 c 90919063 f f f f f f f f 16565 b 61070 f 565 b 6001905092915050565 b 60008060008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168152602001908152602001600020549050919050565 b 60006106586105 a 2610707565 b 8461065385604051806060016040528060258152602001610 d e 160259139600160006105 c c 610707565 b 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060008 a 73 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054610 b b c 9092919063 f f f f f f f f 16565 b 61070 f 565 b 6001905092915050565 b 600061067661066 f 610707565 b 8484610906565 b 6001905092915050565 b 6000600160008473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002060008373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200190815260200160002054905092915050565 b 600033905090565 b 600073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168373 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415610795576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8152600401808060200182810382526024815260200180610 d b d 6024913960400191505060405180910390 f d 5 b 600073 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 168273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16141561081 b 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81526004
"sourceMap" : "1268:6824:4:-;;;;;;;;;" ,
"deployedSourceMap" : "1268:6824:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:6824:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2500:149:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3107:300:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3802:207;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3802:207:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1706:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1706:108:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4496:258;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4496:258:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2017:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2017:155:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2230:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2230:132:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2500:149;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;2638:4;2631:11;;2500:149;;;;:::o;1559:89::-;1603:7;1629:12;;1622:19;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;:11;:19;3301:6;3289:19;;;;;;;;;;;;;;;:33;3309:12;:10;:12::i;:::-;3289:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3258:8;:121::i;:::-;3396:4;3389:11;;3107:300;;;;;:::o;3802:207::-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;3930:25;;;;;;;;;;;;;;;:34;3956:7;3930:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3898:8;:83::i;:::-;3998:4;3991:11;;3802:207;;;;:::o;1706:108::-;1763:7;1789:9;:18;1799:7;1789:18;;;;;;;;;;;;;;;;1782:25;;1706:108;;;:::o;4496:258::-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;4629:25;;;;;;;;;;;;;;;:34;4655:7;4629:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4597:8;:129::i;:::-;4743:4;4736:11;;4496:258;;;;:::o;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;:::-;2161:4;2154:11;;2017:155;;;;:::o;2230:132::-;2302:7;2328:11;:18;2340:5;2328:18;;;;;;;;;;;;;;;:27;2347:7;2328:27;;;;;;;;;;;;;;;;2321:34;;2230:132;;;;:::o;788:96:2:-;833:15;867:10;860:17;;788:96;:::o;7351:332:4:-;7461:1;7444:19;;:5;:19;;;;7436:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7541:1;7522:21;;:7;:21;;;;7514:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7623:6;7593:11;:18;7605:5;7593:18;;;;;;;;;;;;;;;:27;7612:7;7593:27;;;;;;;;;;;;;;;:36;;;;7660:7;7644:32;;7653:5;7644:32;;;7669:6;7644:32;;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;5343:1;5325:20;;:6;:20;;;;5317:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5426:1;5405:23;;:9;:23;;;;5397:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;:9;:17;5509:6;5499:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5479:9;:17;5489:6;5479:17;;;;;;;;;;;;;;;:91;;;;5603:32;5628:6;5603:9;:20;5613:9;5603:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5580:9;:20;5590:9;5580:20;;;;;;;;;;;;;;;:55;;;;5667:9;5650:35;;5659:6;5650:35;;;5678:6;5650:35;;;;;;;;;;;;;;;;;;5228:464;;;:::o;1732:187:3:-;1818:7;1850:1;1845;:6;;1853:12;1837:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1837:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:9;1892:1;1888;:5;1876:17;;1911:1;1904:8;;;1732:187;;;;;:::o;834:176::-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o" ,
"source" : "pragma solidity ^0.5.0;\n\nimport \"../../GSN/Context.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20Mintable}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin guidelines: functions revert instead\n * of returning `false` on failure. This behavior is nonetheless conventional\n * and does not conflict with the expectations of ERC20 applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for `sender`'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\" ) ) ; \ n r e t u r n true ; \ n } \ n \ n / * * \ n * @ d e v A t o m i c a l l y i n c r e a s e s t h e a l l o w a n c e g r a n t e d t o ` s p e n d e r ` b y t h e c a l l e r . \ n * \ n * T h i s i s a n a l t e r n a t i v e t o { a p p r o v e } t h a t c a n b e u s e d a s a m i t i g a t i o n f o r \ n * p r o b l e m s d e s c r i b e d i n { I E R C 2 0 - a p p r o v e } . \ n * \ n * E m i t s a n { A p p r o v a l } e v e n t i n d i c a t i n g t h e u p d a t e d a l l o w a n c e . \ n * \ n * R e q u i r e m e n t s : \ n * \ n * - ` s p e n d e r ` c a n n o t b e t h e z e r o a d d r e s s . \ n * / \ n f u n c t i o n i n c r e a s e A l l o w a n c e ( a d d r e s s s p e n d e r , u i n t 256 a d d e d V a l u e ) p u b l i c r e t u r n s ( b o o l ) { \ n _ a p p r o v e ( _ m s g S e n d e r ( ) , s p e n d e r , _ a l l o w a n c e s [ _ m s g S e n d e r ( ) ] [ s p
"sourcePath" : "@openzeppelin/contracts/token/ERC20/ERC20.sol" ,
"ast" : {
"absolutePath" : "@openzeppelin/contracts/token/ERC20/ERC20.sol" ,
"exportedSymbols" : {
"ERC20" : [
2020-02-18 05:18:07 +00:00
1009
2019-12-29 02:25:08 +00:00
]
} ,
2020-02-18 05:18:07 +00:00
"id" : 1010 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2020-02-18 05:18:07 +00:00
"id" : 606 ,
2019-12-29 02:25:08 +00:00
"literals" : [
"solidity" ,
"^" ,
"0.5" ,
".0"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:4"
} ,
{
"absolutePath" : "@openzeppelin/contracts/GSN/Context.sol" ,
"file" : "../../GSN/Context.sol" ,
2020-02-18 05:18:07 +00:00
"id" : 607 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ImportDirective" ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
"sourceUnit" : 418 ,
2019-12-29 02:25:08 +00:00
"src" : "25:31:4" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "@openzeppelin/contracts/token/ERC20/IERC20.sol" ,
"file" : "./IERC20.sol" ,
2020-02-18 05:18:07 +00:00
"id" : 608 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ImportDirective" ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
"sourceUnit" : 1079 ,
2019-12-29 02:25:08 +00:00
"src" : "57:22:4" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "@openzeppelin/contracts/math/SafeMath.sol" ,
"file" : "../../math/SafeMath.sol" ,
2020-02-18 05:18:07 +00:00
"id" : 609 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ImportDirective" ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
"sourceUnit" : 605 ,
2019-12-29 02:25:08 +00:00
"src" : "80:33:4" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2020-02-18 05:18:07 +00:00
"id" : 610 ,
2019-12-29 02:25:08 +00:00
"name" : "Context" ,
"nodeType" : "UserDefinedTypeName" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 417 ,
2019-12-29 02:25:08 +00:00
"src" : "1286:7:4" ,
"typeDescriptions" : {
2020-02-18 05:18:07 +00:00
"typeIdentifier" : "t_contract$_Context_$417" ,
2019-12-29 02:25:08 +00:00
"typeString" : "contract Context"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 611 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "InheritanceSpecifier" ,
"src" : "1286:7:4"
} ,
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2020-02-18 05:18:07 +00:00
"id" : 612 ,
2019-12-29 02:25:08 +00:00
"name" : "IERC20" ,
"nodeType" : "UserDefinedTypeName" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1078 ,
2019-12-29 02:25:08 +00:00
"src" : "1295:6:4" ,
"typeDescriptions" : {
2020-02-18 05:18:07 +00:00
"typeIdentifier" : "t_contract$_IERC20_$1078" ,
2019-12-29 02:25:08 +00:00
"typeString" : "contract IERC20"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 613 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "InheritanceSpecifier" ,
"src" : "1295:6:4"
}
] ,
"contractDependencies" : [
2020-02-18 05:18:07 +00:00
417 ,
1078
2019-12-29 02:25:08 +00:00
] ,
"contractKind" : "contract" ,
"documentation" : "@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}." ,
"fullyImplemented" : true ,
2020-02-18 05:18:07 +00:00
"id" : 1009 ,
2019-12-29 02:25:08 +00:00
"linearizedBaseContracts" : [
2020-02-18 05:18:07 +00:00
1009 ,
1078 ,
417
2019-12-29 02:25:08 +00:00
] ,
"name" : "ERC20" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
2020-02-18 05:18:07 +00:00
"id" : 616 ,
2019-12-29 02:25:08 +00:00
"libraryName" : {
"contractScope" : null ,
2020-02-18 05:18:07 +00:00
"id" : 614 ,
2019-12-29 02:25:08 +00:00
"name" : "SafeMath" ,
"nodeType" : "UserDefinedTypeName" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 604 ,
2019-12-29 02:25:08 +00:00
"src" : "1314:8:4" ,
"typeDescriptions" : {
2020-02-18 05:18:07 +00:00
"typeIdentifier" : "t_contract$_SafeMath_$604" ,
2019-12-29 02:25:08 +00:00
"typeString" : "library SafeMath"
}
} ,
"nodeType" : "UsingForDirective" ,
"src" : "1308:27:4" ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 615 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1327:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 620 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1341:46:4" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 619 ,
2019-12-29 02:25:08 +00:00
"keyType" : {
2020-02-18 05:18:07 +00:00
"id" : 617 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1350:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1341:28:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"valueType" : {
2020-02-18 05:18:07 +00:00
"id" : 618 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1361:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 626 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1394:69:4" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 625 ,
2019-12-29 02:25:08 +00:00
"keyType" : {
2020-02-18 05:18:07 +00:00
"id" : 621 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1403:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1394:49:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
} ,
"valueType" : {
2020-02-18 05:18:07 +00:00
"id" : 624 ,
2019-12-29 02:25:08 +00:00
"keyType" : {
2020-02-18 05:18:07 +00:00
"id" : 622 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1423:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1414:28:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"valueType" : {
2020-02-18 05:18:07 +00:00
"id" : 623 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1434:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 628 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1470:28:4" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 627 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1470:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 635 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "1612:36:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 633 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "1629:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 632 ,
"id" : 634 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "1622:19:4"
}
]
} ,
"documentation" : "@dev See {IERC20-totalSupply}." ,
2020-02-18 05:18:07 +00:00
"id" : 636 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "totalSupply" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 629 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1579:2:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 632 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 631 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 636 ,
2019-12-29 02:25:08 +00:00
"src" : "1603:7:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 630 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1603:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1602:9:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1559:89:4" ,
"stateMutability" : "view" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1016 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 647 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "1772:42:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 643 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "1789:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 645 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 644 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 638 ,
2019-12-29 02:25:08 +00:00
"src" : "1799:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1789:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 642 ,
"id" : 646 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "1782:25:4"
}
]
} ,
"documentation" : "@dev See {IERC20-balanceOf}." ,
2020-02-18 05:18:07 +00:00
"id" : 648 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "balanceOf" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 639 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 638 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 648 ,
2019-12-29 02:25:08 +00:00
"src" : "1725:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 637 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1725:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1724:17:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 642 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 641 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 648 ,
2019-12-29 02:25:08 +00:00
"src" : "1763:7:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 640 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1763:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1762:9:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1706:108:4" ,
"stateMutability" : "view" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1023 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 666 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "2092:80:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 658 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "2112:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 659 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2112:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 660 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 650 ,
2019-12-29 02:25:08 +00:00
"src" : "2126:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 661 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 652 ,
2019-12-29 02:25:08 +00:00
"src" : "2137:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 657 ,
2019-12-29 02:25:08 +00:00
"name" : "_transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "2102:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 662 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2102:42:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 663 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "2102:42:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 664 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2161:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 656 ,
"id" : 665 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "2154:11:4"
}
]
} ,
"documentation" : "@dev See {IERC20-transfer}.\n * Requirements:\n * - `recipient` cannot be the zero address.\n- the caller must have a balance of at least `amount`." ,
2020-02-18 05:18:07 +00:00
"id" : 667 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "transfer" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 653 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 650 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 667 ,
2019-12-29 02:25:08 +00:00
"src" : "2035:17:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 649 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2035:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 652 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 667 ,
2019-12-29 02:25:08 +00:00
"src" : "2054:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 651 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2054:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2034:35:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 656 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 655 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 667 ,
2019-12-29 02:25:08 +00:00
"src" : "2086:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 654 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2086:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2085:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "2017:155:4" ,
"stateMutability" : "nonpayable" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1032 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 682 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "2311:51:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 676 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "2328:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 678 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 677 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 669 ,
2019-12-29 02:25:08 +00:00
"src" : "2340:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2328:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 680 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 679 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 671 ,
2019-12-29 02:25:08 +00:00
"src" : "2347:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2328:27:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 675 ,
"id" : 681 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "2321:34:4"
}
]
} ,
"documentation" : "@dev See {IERC20-allowance}." ,
2020-02-18 05:18:07 +00:00
"id" : 683 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "allowance" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 672 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 669 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 683 ,
2019-12-29 02:25:08 +00:00
"src" : "2249:13:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 668 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2249:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 671 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 683 ,
2019-12-29 02:25:08 +00:00
"src" : "2264:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 670 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2264:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2248:32:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 675 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 674 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 683 ,
2019-12-29 02:25:08 +00:00
"src" : "2302:7:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 673 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2302:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2301:9:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "2230:132:4" ,
"stateMutability" : "view" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1041 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 701 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "2572:77:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 693 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "2591:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 694 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2591:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 695 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 685 ,
2019-12-29 02:25:08 +00:00
"src" : "2605:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 696 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 687 ,
2019-12-29 02:25:08 +00:00
"src" : "2614:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 692 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "2582:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 697 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2582:39:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 698 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "2582:39:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 699 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2638:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 691 ,
"id" : 700 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "2631:11:4"
}
]
} ,
"documentation" : "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 702 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "approve" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 688 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 685 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 702 ,
2019-12-29 02:25:08 +00:00
"src" : "2517:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 684 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2517:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 687 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 702 ,
2019-12-29 02:25:08 +00:00
"src" : "2534:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 686 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2534:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2516:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 691 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 690 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 702 ,
2019-12-29 02:25:08 +00:00
"src" : "2566:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 689 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2566:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2565:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "2500:149:4" ,
"stateMutability" : "nonpayable" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1050 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 737 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "3202:205:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 714 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 704 ,
2019-12-29 02:25:08 +00:00
"src" : "3222:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 715 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 706 ,
2019-12-29 02:25:08 +00:00
"src" : "3230:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 716 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 708 ,
2019-12-29 02:25:08 +00:00
"src" : "3241:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 713 ,
2019-12-29 02:25:08 +00:00
"name" : "_transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "3212:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 717 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3212:36:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 718 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "3212:36:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 720 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 704 ,
2019-12-29 02:25:08 +00:00
"src" : "3267:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 721 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3275:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 722 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3275:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 730 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 708 ,
2019-12-29 02:25:08 +00:00
"src" : "3327:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 731 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3335:42:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds allowance\""
} ,
"value" : "ERC20: transfer amount exceeds allowance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds allowance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 723 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "3289:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 725 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 724 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 704 ,
2019-12-29 02:25:08 +00:00
"src" : "3301:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3289:19:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 728 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 726 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3309:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 727 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3309:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3289:33:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 729 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "3289:37:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 732 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3289:89:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 719 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "3258:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 733 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3258:121:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 734 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "3258:121:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 735 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3396:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 712 ,
"id" : 736 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "3389:11:4"
}
]
} ,
"documentation" : "@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired by the EIP. See the note at the beginning of {ERC20};\n * Requirements:\n- `sender` and `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.\n- the caller must have allowance for `sender`'s tokens of at least\n`amount`." ,
2020-02-18 05:18:07 +00:00
"id" : 738 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "transferFrom" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 709 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 704 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3129:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 703 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3129:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 706 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3145:17:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 705 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3145:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 708 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3164:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 707 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3164:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3128:51:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 712 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 711 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3196:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 710 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3196:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3195:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "3107:300:4" ,
"stateMutability" : "nonpayable" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1061 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 764 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "3888:121:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 748 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3907:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 749 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3907:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 750 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 740 ,
2019-12-29 02:25:08 +00:00
"src" : "3921:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 758 ,
2019-12-29 02:25:08 +00:00
"name" : "addedValue" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 742 ,
2019-12-29 02:25:08 +00:00
"src" : "3969:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 751 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "3930:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 754 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 752 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3942:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 753 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3942:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3930:25:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 756 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 755 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 740 ,
2019-12-29 02:25:08 +00:00
"src" : "3956:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3930:34:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 757 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "3930:38:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 759 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3930:50:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 747 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "3898:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 760 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3898:83:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 761 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "3898:83:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 762 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3998:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 746 ,
"id" : 763 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "3991:11:4"
}
]
} ,
"documentation" : "@dev Atomically increases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 765 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "increaseAllowance" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 743 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 740 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 765 ,
2019-12-29 02:25:08 +00:00
"src" : "3829:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 739 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3829:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 742 ,
2019-12-29 02:25:08 +00:00
"name" : "addedValue" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 765 ,
2019-12-29 02:25:08 +00:00
"src" : "3846:18:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 741 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3846:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3828:37:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 746 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 745 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 765 ,
2019-12-29 02:25:08 +00:00
"src" : "3882:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 744 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3882:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3881:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "3802:207:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 792 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "4587:167:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 775 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "4606:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 776 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4606:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 777 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 767 ,
2019-12-29 02:25:08 +00:00
"src" : "4620:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 785 ,
2019-12-29 02:25:08 +00:00
"name" : "subtractedValue" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 769 ,
2019-12-29 02:25:08 +00:00
"src" : "4668:15:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f" ,
2020-02-18 05:18:07 +00:00
"id" : 786 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4685:39:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8" ,
"typeString" : "literal_string \"ERC20: decreased allowance below zero\""
} ,
"value" : "ERC20: decreased allowance below zero"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8" ,
"typeString" : "literal_string \"ERC20: decreased allowance below zero\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 778 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "4629:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 781 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 779 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "4641:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 780 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4641:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4629:25:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 783 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 782 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 767 ,
2019-12-29 02:25:08 +00:00
"src" : "4655:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4629:34:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 784 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "4629:38:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 787 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4629:96:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 774 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "4597:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 788 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4597:129:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 789 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "4597:129:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 790 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4743:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 773 ,
"id" : 791 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "4736:11:4"
}
]
} ,
"documentation" : "@dev Atomically decreases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.\n- `spender` must have allowance for the caller of at least\n`subtractedValue`." ,
2020-02-18 05:18:07 +00:00
"id" : 793 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "decreaseAllowance" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 770 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 767 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 793 ,
2019-12-29 02:25:08 +00:00
"src" : "4523:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 766 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4523:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 769 ,
2019-12-29 02:25:08 +00:00
"name" : "subtractedValue" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 793 ,
2019-12-29 02:25:08 +00:00
"src" : "4540:23:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 768 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4540:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4522:42:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 773 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 772 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 793 ,
2019-12-29 02:25:08 +00:00
"src" : "4581:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 771 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4581:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4580:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "4496:258:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 849 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "5307:385:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 807 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 803 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5325:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 805 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5343:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 804 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "5335:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 806 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5335:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "5325:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 808 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5347:39:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea" ,
"typeString" : "literal_string \"ERC20: transfer from the zero address\""
} ,
"value" : "ERC20: transfer from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea" ,
"typeString" : "literal_string \"ERC20: transfer from the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 802 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "5317:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 809 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5317:70:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 810 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5317:70:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 816 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 812 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5405:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 814 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5426:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 813 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "5418:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 815 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5418:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "5405:23:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 817 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5430:37:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f" ,
"typeString" : "literal_string \"ERC20: transfer to the zero address\""
} ,
"value" : "ERC20: transfer to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f" ,
"typeString" : "literal_string \"ERC20: transfer to the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 811 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "5397:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 818 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5397:71:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 819 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5397:71:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 830 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 820 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5479:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 822 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 821 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5489:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "5479:17:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 827 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 799 ,
2019-12-29 02:25:08 +00:00
"src" : "5521:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 828 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5529:40:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds balance\""
} ,
"value" : "ERC20: transfer amount exceeds balance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds balance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 823 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5499:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 825 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 824 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5509:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5499:17:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 826 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "5499:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 829 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5499:71:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "5479:91:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 831 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5479:91:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 841 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 832 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5580:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 834 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 833 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5590:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "5580:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 839 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 799 ,
2019-12-29 02:25:08 +00:00
"src" : "5628:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 835 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5603:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 837 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 836 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5613:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5603:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 838 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "5603:24:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 840 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5603:32:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "5580:55:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 842 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5580:55:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 844 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5659:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 845 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5667:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 846 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 799 ,
2019-12-29 02:25:08 +00:00
"src" : "5678:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 843 ,
2019-12-29 02:25:08 +00:00
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1069 ,
2019-12-29 02:25:08 +00:00
"src" : "5650:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 847 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5650:35:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 848 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "5645:40:4"
}
]
} ,
"documentation" : "@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.g. implement automatic token fees, slashing mechanisms, etc.\n * Emits a {Transfer} event.\n * Requirements:\n * - `sender` cannot be the zero address.\n- `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`." ,
2020-02-18 05:18:07 +00:00
"id" : 850 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_transfer" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 800 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 795 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "5247:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 794 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5247:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 797 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "5263:17:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 796 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5263:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 799 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "5282:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 798 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5282:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5246:51:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 801 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "5307:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "5228:464:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 892 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "6019:245:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 862 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 858 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6037:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 860 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6056:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 859 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6048:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 861 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6048:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "6037:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206d696e7420746f20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 863 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6060:33:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e" ,
"typeString" : "literal_string \"ERC20: mint to the zero address\""
} ,
"value" : "ERC20: mint to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e" ,
"typeString" : "literal_string \"ERC20: mint to the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 857 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "6029:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 864 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6029:65:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 865 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6029:65:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 871 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 866 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6105:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 869 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 854 ,
2019-12-29 02:25:08 +00:00
"src" : "6137:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 867 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6120:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 868 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "6120:16:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 870 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6120:24:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6105:39:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 872 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6105:39:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 882 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 873 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6154:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 875 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 874 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6164:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "6154:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 880 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 854 ,
2019-12-29 02:25:08 +00:00
"src" : "6198:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 876 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6175:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 878 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 877 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6185:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "6175:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 879 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "6175:22:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 881 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6175:30:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6154:51:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 883 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6154:51:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 886 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6237:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 885 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6229:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 887 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6229:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 888 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6241:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 889 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 854 ,
2019-12-29 02:25:08 +00:00
"src" : "6250:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 884 ,
2019-12-29 02:25:08 +00:00
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1069 ,
2019-12-29 02:25:08 +00:00
"src" : "6220:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 890 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6220:37:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 891 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "6215:42:4"
}
]
} ,
"documentation" : "@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 893 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_mint" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 855 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 852 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 893 ,
2019-12-29 02:25:08 +00:00
"src" : "5977:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 851 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5977:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 854 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 893 ,
2019-12-29 02:25:08 +00:00
"src" : "5994:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 853 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5994:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5976:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 856 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "6019:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "5962:302:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 936 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "6641:285:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 905 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 901 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6659:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 903 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6678:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 902 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6670:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 904 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6670:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "6659:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 906 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6682:35:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f" ,
"typeString" : "literal_string \"ERC20: burn from the zero address\""
} ,
"value" : "ERC20: burn from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f" ,
"typeString" : "literal_string \"ERC20: burn from the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 900 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "6651:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 907 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6651:67:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 908 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6651:67:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 919 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 909 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6729:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 911 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 910 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6739:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "6729:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 916 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 897 ,
2019-12-29 02:25:08 +00:00
"src" : "6773:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 917 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6781:36:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds balance\""
} ,
"value" : "ERC20: burn amount exceeds balance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds balance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 912 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6750:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 914 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 913 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6760:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "6750:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 915 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "6750:22:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 918 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6750:68:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6729:89:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 920 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6729:89:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 926 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 921 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6828:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 924 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 897 ,
2019-12-29 02:25:08 +00:00
"src" : "6860:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 922 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6843:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 923 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 460 ,
2019-12-29 02:25:08 +00:00
"src" : "6843:16:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 925 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6843:24:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6828:39:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 927 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6828:39:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 929 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6891:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 931 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6908:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 930 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6900:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 932 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6900:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 933 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 897 ,
2019-12-29 02:25:08 +00:00
"src" : "6912:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 928 ,
2019-12-29 02:25:08 +00:00
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1069 ,
2019-12-29 02:25:08 +00:00
"src" : "6882:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 934 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6882:37:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 935 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "6877:42:4"
}
]
} ,
"documentation" : "@dev Destroys `amount` tokens from `account`, reducing the\ntotal supply.\n * Emits a {Transfer} event with `to` set to the zero address.\n * Requirements\n * - `account` cannot be the zero address.\n- `account` must have at least `amount` tokens." ,
2020-02-18 05:18:07 +00:00
"id" : 937 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_burn" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 898 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 895 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 937 ,
2019-12-29 02:25:08 +00:00
"src" : "6599:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 894 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6599:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 897 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 937 ,
2019-12-29 02:25:08 +00:00
"src" : "6616:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 896 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6616:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "6598:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 899 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "6641:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "6584:342:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 978 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "7426:257:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 951 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 947 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 939 ,
2019-12-29 02:25:08 +00:00
"src" : "7444:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 949 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7461:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 948 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7453:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 950 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7453:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7444:19:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 952 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7465:38:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208" ,
"typeString" : "literal_string \"ERC20: approve from the zero address\""
} ,
"value" : "ERC20: approve from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208" ,
"typeString" : "literal_string \"ERC20: approve from the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 946 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "7436:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 953 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7436:68:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 954 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7436:68:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 960 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 956 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 941 ,
2019-12-29 02:25:08 +00:00
"src" : "7522:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 958 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7541:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 957 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7533:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 959 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7533:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7522:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a20617070726f766520746f20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 961 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7545:36:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029" ,
"typeString" : "literal_string \"ERC20: approve to the zero address\""
} ,
"value" : "ERC20: approve to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029" ,
"typeString" : "literal_string \"ERC20: approve to the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 955 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "7514:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 962 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7514:68:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 963 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7514:68:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 970 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 964 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "7593:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 967 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 965 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 939 ,
2019-12-29 02:25:08 +00:00
"src" : "7605:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7593:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 968 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 966 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 941 ,
2019-12-29 02:25:08 +00:00
"src" : "7612:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "7593:27:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 969 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 943 ,
2019-12-29 02:25:08 +00:00
"src" : "7623:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "7593:36:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 971 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7593:36:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 973 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 939 ,
2019-12-29 02:25:08 +00:00
"src" : "7653:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 974 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 941 ,
2019-12-29 02:25:08 +00:00
"src" : "7660:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 975 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 943 ,
2019-12-29 02:25:08 +00:00
"src" : "7669:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 972 ,
2019-12-29 02:25:08 +00:00
"name" : "Approval" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1077 ,
2019-12-29 02:25:08 +00:00
"src" : "7644:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 976 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7644:32:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 977 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "7639:37:4"
}
]
} ,
"documentation" : "@dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n * This is internal function is equivalent to `approve`, and can be used to\ne.g. set automatic allowances for certain subsystems, etc.\n * Emits an {Approval} event.\n * Requirements:\n * - `owner` cannot be the zero address.\n- `spender` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 979 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_approve" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 944 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 939 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7369:13:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 938 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7369:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 941 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7384:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 940 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7384:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 943 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7401:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 942 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7401:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "7368:48:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 945 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "7426:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "7351:332:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 1007 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "7922:168:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 987 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 981 ,
2019-12-29 02:25:08 +00:00
"src" : "7938:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 988 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 983 ,
2019-12-29 02:25:08 +00:00
"src" : "7947:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 986 ,
2019-12-29 02:25:08 +00:00
"name" : "_burn" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 937 ,
2019-12-29 02:25:08 +00:00
"src" : "7932:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 989 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7932:22:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 990 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7932:22:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 992 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 981 ,
2019-12-29 02:25:08 +00:00
"src" : "7973:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 993 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "7982:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 994 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7982:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 1002 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 983 ,
2019-12-29 02:25:08 +00:00
"src" : "8035:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 1003 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8043:38:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds allowance\""
} ,
"value" : "ERC20: burn amount exceeds allowance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds allowance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 995 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "7996:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 997 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 996 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 981 ,
2019-12-29 02:25:08 +00:00
"src" : "8008:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7996:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1000 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 998 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "8017:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 999 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8017:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7996:34:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1001 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "7996:38:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1004 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7996:86:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 991 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7964:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1005 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7964:119:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1006 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7964:119:4"
}
]
} ,
"documentation" : "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}." ,
2020-02-18 05:18:07 +00:00
"id" : 1008 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_burnFrom" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 984 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 981 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1008 ,
2019-12-29 02:25:08 +00:00
"src" : "7880:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 980 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7880:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 983 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1008 ,
2019-12-29 02:25:08 +00:00
"src" : "7897:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 982 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7897:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "7879:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 985 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "7922:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "7861:229:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
}
] ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
2019-12-29 02:25:08 +00:00
"src" : "1268:6824:4"
}
] ,
"src" : "0:8093:4"
} ,
"legacyAST" : {
"absolutePath" : "@openzeppelin/contracts/token/ERC20/ERC20.sol" ,
"exportedSymbols" : {
"ERC20" : [
2020-02-18 05:18:07 +00:00
1009
2019-12-29 02:25:08 +00:00
]
} ,
2020-02-18 05:18:07 +00:00
"id" : 1010 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2020-02-18 05:18:07 +00:00
"id" : 606 ,
2019-12-29 02:25:08 +00:00
"literals" : [
"solidity" ,
"^" ,
"0.5" ,
".0"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:4"
} ,
{
"absolutePath" : "@openzeppelin/contracts/GSN/Context.sol" ,
"file" : "../../GSN/Context.sol" ,
2020-02-18 05:18:07 +00:00
"id" : 607 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ImportDirective" ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
"sourceUnit" : 418 ,
2019-12-29 02:25:08 +00:00
"src" : "25:31:4" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "@openzeppelin/contracts/token/ERC20/IERC20.sol" ,
"file" : "./IERC20.sol" ,
2020-02-18 05:18:07 +00:00
"id" : 608 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ImportDirective" ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
"sourceUnit" : 1079 ,
2019-12-29 02:25:08 +00:00
"src" : "57:22:4" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "@openzeppelin/contracts/math/SafeMath.sol" ,
"file" : "../../math/SafeMath.sol" ,
2020-02-18 05:18:07 +00:00
"id" : 609 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ImportDirective" ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
"sourceUnit" : 605 ,
2019-12-29 02:25:08 +00:00
"src" : "80:33:4" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2020-02-18 05:18:07 +00:00
"id" : 610 ,
2019-12-29 02:25:08 +00:00
"name" : "Context" ,
"nodeType" : "UserDefinedTypeName" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 417 ,
2019-12-29 02:25:08 +00:00
"src" : "1286:7:4" ,
"typeDescriptions" : {
2020-02-18 05:18:07 +00:00
"typeIdentifier" : "t_contract$_Context_$417" ,
2019-12-29 02:25:08 +00:00
"typeString" : "contract Context"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 611 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "InheritanceSpecifier" ,
"src" : "1286:7:4"
} ,
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2020-02-18 05:18:07 +00:00
"id" : 612 ,
2019-12-29 02:25:08 +00:00
"name" : "IERC20" ,
"nodeType" : "UserDefinedTypeName" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1078 ,
2019-12-29 02:25:08 +00:00
"src" : "1295:6:4" ,
"typeDescriptions" : {
2020-02-18 05:18:07 +00:00
"typeIdentifier" : "t_contract$_IERC20_$1078" ,
2019-12-29 02:25:08 +00:00
"typeString" : "contract IERC20"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 613 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "InheritanceSpecifier" ,
"src" : "1295:6:4"
}
] ,
"contractDependencies" : [
2020-02-18 05:18:07 +00:00
417 ,
1078
2019-12-29 02:25:08 +00:00
] ,
"contractKind" : "contract" ,
"documentation" : "@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}." ,
"fullyImplemented" : true ,
2020-02-18 05:18:07 +00:00
"id" : 1009 ,
2019-12-29 02:25:08 +00:00
"linearizedBaseContracts" : [
2020-02-18 05:18:07 +00:00
1009 ,
1078 ,
417
2019-12-29 02:25:08 +00:00
] ,
"name" : "ERC20" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
2020-02-18 05:18:07 +00:00
"id" : 616 ,
2019-12-29 02:25:08 +00:00
"libraryName" : {
"contractScope" : null ,
2020-02-18 05:18:07 +00:00
"id" : 614 ,
2019-12-29 02:25:08 +00:00
"name" : "SafeMath" ,
"nodeType" : "UserDefinedTypeName" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 604 ,
2019-12-29 02:25:08 +00:00
"src" : "1314:8:4" ,
"typeDescriptions" : {
2020-02-18 05:18:07 +00:00
"typeIdentifier" : "t_contract$_SafeMath_$604" ,
2019-12-29 02:25:08 +00:00
"typeString" : "library SafeMath"
}
} ,
"nodeType" : "UsingForDirective" ,
"src" : "1308:27:4" ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 615 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1327:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 620 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1341:46:4" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 619 ,
2019-12-29 02:25:08 +00:00
"keyType" : {
2020-02-18 05:18:07 +00:00
"id" : 617 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1350:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1341:28:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"valueType" : {
2020-02-18 05:18:07 +00:00
"id" : 618 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1361:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 626 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1394:69:4" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 625 ,
2019-12-29 02:25:08 +00:00
"keyType" : {
2020-02-18 05:18:07 +00:00
"id" : 621 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1403:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1394:49:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
} ,
"valueType" : {
2020-02-18 05:18:07 +00:00
"id" : 624 ,
2019-12-29 02:25:08 +00:00
"keyType" : {
2020-02-18 05:18:07 +00:00
"id" : 622 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1423:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1414:28:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"valueType" : {
2020-02-18 05:18:07 +00:00
"id" : 623 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1434:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 628 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1470:28:4" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 627 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1470:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 635 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "1612:36:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 633 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "1629:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 632 ,
"id" : 634 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "1622:19:4"
}
]
} ,
"documentation" : "@dev See {IERC20-totalSupply}." ,
2020-02-18 05:18:07 +00:00
"id" : 636 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "totalSupply" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 629 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1579:2:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 632 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 631 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 636 ,
2019-12-29 02:25:08 +00:00
"src" : "1603:7:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 630 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1603:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1602:9:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1559:89:4" ,
"stateMutability" : "view" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1016 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 647 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "1772:42:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 643 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "1789:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 645 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 644 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 638 ,
2019-12-29 02:25:08 +00:00
"src" : "1799:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1789:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 642 ,
"id" : 646 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "1782:25:4"
}
]
} ,
"documentation" : "@dev See {IERC20-balanceOf}." ,
2020-02-18 05:18:07 +00:00
"id" : 648 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "balanceOf" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 639 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 638 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 648 ,
2019-12-29 02:25:08 +00:00
"src" : "1725:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 637 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1725:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1724:17:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 642 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 641 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 648 ,
2019-12-29 02:25:08 +00:00
"src" : "1763:7:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 640 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1763:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1762:9:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "1706:108:4" ,
"stateMutability" : "view" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1023 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 666 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "2092:80:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 658 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "2112:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 659 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2112:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 660 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 650 ,
2019-12-29 02:25:08 +00:00
"src" : "2126:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 661 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 652 ,
2019-12-29 02:25:08 +00:00
"src" : "2137:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 657 ,
2019-12-29 02:25:08 +00:00
"name" : "_transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "2102:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 662 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2102:42:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 663 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "2102:42:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 664 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2161:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 656 ,
"id" : 665 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "2154:11:4"
}
]
} ,
"documentation" : "@dev See {IERC20-transfer}.\n * Requirements:\n * - `recipient` cannot be the zero address.\n- the caller must have a balance of at least `amount`." ,
2020-02-18 05:18:07 +00:00
"id" : 667 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "transfer" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 653 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 650 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 667 ,
2019-12-29 02:25:08 +00:00
"src" : "2035:17:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 649 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2035:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 652 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 667 ,
2019-12-29 02:25:08 +00:00
"src" : "2054:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 651 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2054:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2034:35:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 656 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 655 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 667 ,
2019-12-29 02:25:08 +00:00
"src" : "2086:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 654 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2086:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2085:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "2017:155:4" ,
"stateMutability" : "nonpayable" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1032 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 682 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "2311:51:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 676 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "2328:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 678 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 677 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 669 ,
2019-12-29 02:25:08 +00:00
"src" : "2340:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2328:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 680 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 679 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 671 ,
2019-12-29 02:25:08 +00:00
"src" : "2347:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2328:27:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 675 ,
"id" : 681 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "2321:34:4"
}
]
} ,
"documentation" : "@dev See {IERC20-allowance}." ,
2020-02-18 05:18:07 +00:00
"id" : 683 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "allowance" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 672 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 669 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 683 ,
2019-12-29 02:25:08 +00:00
"src" : "2249:13:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 668 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2249:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 671 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 683 ,
2019-12-29 02:25:08 +00:00
"src" : "2264:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 670 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2264:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2248:32:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 675 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 674 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 683 ,
2019-12-29 02:25:08 +00:00
"src" : "2302:7:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 673 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2302:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2301:9:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "2230:132:4" ,
"stateMutability" : "view" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1041 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 701 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "2572:77:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 693 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "2591:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 694 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2591:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 695 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 685 ,
2019-12-29 02:25:08 +00:00
"src" : "2605:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 696 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 687 ,
2019-12-29 02:25:08 +00:00
"src" : "2614:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 692 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "2582:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 697 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2582:39:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 698 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "2582:39:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 699 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2638:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 691 ,
"id" : 700 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "2631:11:4"
}
]
} ,
"documentation" : "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 702 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "approve" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 688 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 685 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 702 ,
2019-12-29 02:25:08 +00:00
"src" : "2517:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 684 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2517:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 687 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 702 ,
2019-12-29 02:25:08 +00:00
"src" : "2534:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 686 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2534:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2516:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 691 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 690 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 702 ,
2019-12-29 02:25:08 +00:00
"src" : "2566:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 689 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2566:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2565:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "2500:149:4" ,
"stateMutability" : "nonpayable" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1050 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 737 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "3202:205:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 714 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 704 ,
2019-12-29 02:25:08 +00:00
"src" : "3222:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 715 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 706 ,
2019-12-29 02:25:08 +00:00
"src" : "3230:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 716 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 708 ,
2019-12-29 02:25:08 +00:00
"src" : "3241:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 713 ,
2019-12-29 02:25:08 +00:00
"name" : "_transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "3212:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 717 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3212:36:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 718 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "3212:36:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 720 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 704 ,
2019-12-29 02:25:08 +00:00
"src" : "3267:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 721 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3275:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 722 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3275:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 730 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 708 ,
2019-12-29 02:25:08 +00:00
"src" : "3327:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 731 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3335:42:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds allowance\""
} ,
"value" : "ERC20: transfer amount exceeds allowance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds allowance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 723 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "3289:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 725 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 724 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 704 ,
2019-12-29 02:25:08 +00:00
"src" : "3301:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3289:19:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 728 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 726 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3309:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 727 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3309:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3289:33:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 729 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "3289:37:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 732 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3289:89:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 719 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "3258:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 733 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3258:121:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 734 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "3258:121:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 735 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3396:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 712 ,
"id" : 736 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "3389:11:4"
}
]
} ,
"documentation" : "@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired by the EIP. See the note at the beginning of {ERC20};\n * Requirements:\n- `sender` and `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.\n- the caller must have allowance for `sender`'s tokens of at least\n`amount`." ,
2020-02-18 05:18:07 +00:00
"id" : 738 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "transferFrom" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 709 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 704 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3129:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 703 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3129:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 706 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3145:17:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 705 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3145:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 708 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3164:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 707 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3164:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3128:51:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 712 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 711 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 738 ,
2019-12-29 02:25:08 +00:00
"src" : "3196:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 710 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3196:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3195:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "3107:300:4" ,
"stateMutability" : "nonpayable" ,
2020-02-18 05:18:07 +00:00
"superFunction" : 1061 ,
2019-12-29 02:25:08 +00:00
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 764 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "3888:121:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 748 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3907:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 749 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3907:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 750 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 740 ,
2019-12-29 02:25:08 +00:00
"src" : "3921:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 758 ,
2019-12-29 02:25:08 +00:00
"name" : "addedValue" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 742 ,
2019-12-29 02:25:08 +00:00
"src" : "3969:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 751 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "3930:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 754 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 752 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "3942:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 753 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3942:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3930:25:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 756 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 755 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 740 ,
2019-12-29 02:25:08 +00:00
"src" : "3956:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3930:34:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 757 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "3930:38:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 759 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3930:50:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 747 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "3898:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 760 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3898:83:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 761 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "3898:83:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 762 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3998:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 746 ,
"id" : 763 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "3991:11:4"
}
]
} ,
"documentation" : "@dev Atomically increases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 765 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "increaseAllowance" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 743 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 740 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 765 ,
2019-12-29 02:25:08 +00:00
"src" : "3829:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 739 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3829:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 742 ,
2019-12-29 02:25:08 +00:00
"name" : "addedValue" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 765 ,
2019-12-29 02:25:08 +00:00
"src" : "3846:18:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 741 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3846:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3828:37:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 746 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 745 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 765 ,
2019-12-29 02:25:08 +00:00
"src" : "3882:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 744 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3882:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3881:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "3802:207:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 792 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "4587:167:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 775 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "4606:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 776 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4606:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 777 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 767 ,
2019-12-29 02:25:08 +00:00
"src" : "4620:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 785 ,
2019-12-29 02:25:08 +00:00
"name" : "subtractedValue" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 769 ,
2019-12-29 02:25:08 +00:00
"src" : "4668:15:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f" ,
2020-02-18 05:18:07 +00:00
"id" : 786 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4685:39:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8" ,
"typeString" : "literal_string \"ERC20: decreased allowance below zero\""
} ,
"value" : "ERC20: decreased allowance below zero"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8" ,
"typeString" : "literal_string \"ERC20: decreased allowance below zero\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 778 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "4629:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 781 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 779 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "4641:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 780 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4641:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4629:25:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 783 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 782 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 767 ,
2019-12-29 02:25:08 +00:00
"src" : "4655:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4629:34:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 784 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "4629:38:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 787 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4629:96:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 774 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "4597:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 788 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4597:129:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 789 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "4597:129:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2020-02-18 05:18:07 +00:00
"id" : 790 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4743:4:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2020-02-18 05:18:07 +00:00
"functionReturnParameters" : 773 ,
"id" : 791 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Return" ,
"src" : "4736:11:4"
}
]
} ,
"documentation" : "@dev Atomically decreases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.\n- `spender` must have allowance for the caller of at least\n`subtractedValue`." ,
2020-02-18 05:18:07 +00:00
"id" : 793 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "decreaseAllowance" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 770 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 767 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 793 ,
2019-12-29 02:25:08 +00:00
"src" : "4523:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 766 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4523:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 769 ,
2019-12-29 02:25:08 +00:00
"name" : "subtractedValue" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 793 ,
2019-12-29 02:25:08 +00:00
"src" : "4540:23:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 768 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4540:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4522:42:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 773 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 772 ,
2019-12-29 02:25:08 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 793 ,
2019-12-29 02:25:08 +00:00
"src" : "4581:4:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 771 ,
2019-12-29 02:25:08 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4581:4:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4580:6:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "4496:258:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 849 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "5307:385:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 807 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 803 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5325:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 805 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5343:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 804 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "5335:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 806 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5335:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "5325:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 808 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5347:39:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea" ,
"typeString" : "literal_string \"ERC20: transfer from the zero address\""
} ,
"value" : "ERC20: transfer from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea" ,
"typeString" : "literal_string \"ERC20: transfer from the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 802 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "5317:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 809 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5317:70:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 810 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5317:70:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 816 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 812 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5405:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 814 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5426:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 813 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "5418:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 815 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5418:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "5405:23:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 817 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5430:37:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f" ,
"typeString" : "literal_string \"ERC20: transfer to the zero address\""
} ,
"value" : "ERC20: transfer to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f" ,
"typeString" : "literal_string \"ERC20: transfer to the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 811 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "5397:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 818 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5397:71:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 819 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5397:71:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 830 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 820 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5479:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 822 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 821 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5489:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "5479:17:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 827 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 799 ,
2019-12-29 02:25:08 +00:00
"src" : "5521:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 828 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5529:40:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds balance\""
} ,
"value" : "ERC20: transfer amount exceeds balance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds balance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 823 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5499:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 825 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 824 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5509:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5499:17:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 826 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "5499:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 829 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5499:71:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "5479:91:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 831 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5479:91:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 841 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 832 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5580:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 834 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 833 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5590:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "5580:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 839 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 799 ,
2019-12-29 02:25:08 +00:00
"src" : "5628:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 835 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "5603:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 837 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 836 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5613:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5603:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 838 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "5603:24:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 840 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5603:32:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "5580:55:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 842 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "5580:55:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 844 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 795 ,
2019-12-29 02:25:08 +00:00
"src" : "5659:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 845 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 797 ,
2019-12-29 02:25:08 +00:00
"src" : "5667:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 846 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 799 ,
2019-12-29 02:25:08 +00:00
"src" : "5678:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 843 ,
2019-12-29 02:25:08 +00:00
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1069 ,
2019-12-29 02:25:08 +00:00
"src" : "5650:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 847 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5650:35:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 848 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "5645:40:4"
}
]
} ,
"documentation" : "@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.g. implement automatic token fees, slashing mechanisms, etc.\n * Emits a {Transfer} event.\n * Requirements:\n * - `sender` cannot be the zero address.\n- `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`." ,
2020-02-18 05:18:07 +00:00
"id" : 850 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_transfer" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 800 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 795 ,
2019-12-29 02:25:08 +00:00
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "5247:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 794 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5247:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 797 ,
2019-12-29 02:25:08 +00:00
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "5263:17:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 796 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5263:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 799 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 850 ,
2019-12-29 02:25:08 +00:00
"src" : "5282:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 798 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5282:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5246:51:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 801 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "5307:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "5228:464:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 892 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "6019:245:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 862 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 858 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6037:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 860 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6056:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 859 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6048:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 861 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6048:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "6037:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206d696e7420746f20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 863 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6060:33:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e" ,
"typeString" : "literal_string \"ERC20: mint to the zero address\""
} ,
"value" : "ERC20: mint to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e" ,
"typeString" : "literal_string \"ERC20: mint to the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 857 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "6029:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 864 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6029:65:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 865 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6029:65:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 871 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 866 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6105:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 869 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 854 ,
2019-12-29 02:25:08 +00:00
"src" : "6137:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 867 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6120:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 868 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "6120:16:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 870 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6120:24:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6105:39:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 872 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6105:39:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 882 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 873 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6154:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 875 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 874 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6164:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "6154:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 880 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 854 ,
2019-12-29 02:25:08 +00:00
"src" : "6198:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 876 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6175:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 878 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 877 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6185:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "6175:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 879 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 444 ,
2019-12-29 02:25:08 +00:00
"src" : "6175:22:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 881 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6175:30:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6154:51:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 883 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6154:51:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 886 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6237:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 885 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6229:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 887 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6229:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 888 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 852 ,
2019-12-29 02:25:08 +00:00
"src" : "6241:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 889 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 854 ,
2019-12-29 02:25:08 +00:00
"src" : "6250:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 884 ,
2019-12-29 02:25:08 +00:00
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1069 ,
2019-12-29 02:25:08 +00:00
"src" : "6220:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 890 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6220:37:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 891 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "6215:42:4"
}
]
} ,
"documentation" : "@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 893 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_mint" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 855 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 852 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 893 ,
2019-12-29 02:25:08 +00:00
"src" : "5977:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 851 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5977:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 854 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 893 ,
2019-12-29 02:25:08 +00:00
"src" : "5994:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 853 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5994:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5976:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 856 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "6019:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "5962:302:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 936 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "6641:285:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 905 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 901 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6659:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 903 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6678:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 902 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6670:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 904 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6670:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "6659:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 906 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6682:35:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f" ,
"typeString" : "literal_string \"ERC20: burn from the zero address\""
} ,
"value" : "ERC20: burn from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f" ,
"typeString" : "literal_string \"ERC20: burn from the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 900 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "6651:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 907 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6651:67:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 908 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6651:67:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 919 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 909 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6729:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 911 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 910 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6739:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "6729:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 916 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 897 ,
2019-12-29 02:25:08 +00:00
"src" : "6773:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 917 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6781:36:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds balance\""
} ,
"value" : "ERC20: burn amount exceeds balance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds balance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 912 ,
2019-12-29 02:25:08 +00:00
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 620 ,
2019-12-29 02:25:08 +00:00
"src" : "6750:9:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 914 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 913 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6760:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "6750:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 915 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "6750:22:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 918 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6750:68:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6729:89:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 920 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6729:89:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 926 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 921 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6828:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 924 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 897 ,
2019-12-29 02:25:08 +00:00
"src" : "6860:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 922 ,
2019-12-29 02:25:08 +00:00
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 628 ,
2019-12-29 02:25:08 +00:00
"src" : "6843:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 923 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 460 ,
2019-12-29 02:25:08 +00:00
"src" : "6843:16:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 925 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6843:24:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "6828:39:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 927 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "6828:39:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 929 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 895 ,
2019-12-29 02:25:08 +00:00
"src" : "6891:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 931 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6908:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 930 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "6900:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 932 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6900:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 933 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 897 ,
2019-12-29 02:25:08 +00:00
"src" : "6912:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 928 ,
2019-12-29 02:25:08 +00:00
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1069 ,
2019-12-29 02:25:08 +00:00
"src" : "6882:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 934 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6882:37:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 935 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "6877:42:4"
}
]
} ,
"documentation" : "@dev Destroys `amount` tokens from `account`, reducing the\ntotal supply.\n * Emits a {Transfer} event with `to` set to the zero address.\n * Requirements\n * - `account` cannot be the zero address.\n- `account` must have at least `amount` tokens." ,
2020-02-18 05:18:07 +00:00
"id" : 937 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_burn" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 898 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 895 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 937 ,
2019-12-29 02:25:08 +00:00
"src" : "6599:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 894 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6599:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 897 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 937 ,
2019-12-29 02:25:08 +00:00
"src" : "6616:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 896 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6616:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "6598:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 899 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "6641:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "6584:342:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 978 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "7426:257:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 951 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 947 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 939 ,
2019-12-29 02:25:08 +00:00
"src" : "7444:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 949 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7461:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 948 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7453:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 950 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7453:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7444:19:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 952 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7465:38:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208" ,
"typeString" : "literal_string \"ERC20: approve from the zero address\""
} ,
"value" : "ERC20: approve from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208" ,
"typeString" : "literal_string \"ERC20: approve from the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 946 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "7436:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 953 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7436:68:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 954 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7436:68:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 960 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 956 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 941 ,
2019-12-29 02:25:08 +00:00
"src" : "7522:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2020-02-18 05:18:07 +00:00
"id" : 958 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7541:1:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 957 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7533:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2020-02-18 05:18:07 +00:00
"id" : 959 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7533:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7522:21:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a20617070726f766520746f20746865207a65726f2061646472657373" ,
2020-02-18 05:18:07 +00:00
"id" : 961 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7545:36:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029" ,
"typeString" : "literal_string \"ERC20: approve to the zero address\""
} ,
"value" : "ERC20: approve to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029" ,
"typeString" : "literal_string \"ERC20: approve to the zero address\""
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 955 ,
2019-12-29 02:25:08 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2020-02-18 05:18:07 +00:00
1096 ,
1097
2019-12-29 02:25:08 +00:00
] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1097 ,
2019-12-29 02:25:08 +00:00
"src" : "7514:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 962 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7514:68:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 963 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7514:68:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 970 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 964 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "7593:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 967 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 965 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 939 ,
2019-12-29 02:25:08 +00:00
"src" : "7605:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7593:18:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 968 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 966 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 941 ,
2019-12-29 02:25:08 +00:00
"src" : "7612:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "7593:27:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 969 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 943 ,
2019-12-29 02:25:08 +00:00
"src" : "7623:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "7593:36:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 971 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7593:36:4"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 973 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 939 ,
2019-12-29 02:25:08 +00:00
"src" : "7653:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 974 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 941 ,
2019-12-29 02:25:08 +00:00
"src" : "7660:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 975 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 943 ,
2019-12-29 02:25:08 +00:00
"src" : "7669:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 972 ,
2019-12-29 02:25:08 +00:00
"name" : "Approval" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 1077 ,
2019-12-29 02:25:08 +00:00
"src" : "7644:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 976 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7644:32:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 977 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "EmitStatement" ,
"src" : "7639:37:4"
}
]
} ,
"documentation" : "@dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n * This is internal function is equivalent to `approve`, and can be used to\ne.g. set automatic allowances for certain subsystems, etc.\n * Emits an {Approval} event.\n * Requirements:\n * - `owner` cannot be the zero address.\n- `spender` cannot be the zero address." ,
2020-02-18 05:18:07 +00:00
"id" : 979 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_approve" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 944 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 939 ,
2019-12-29 02:25:08 +00:00
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7369:13:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 938 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7369:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 941 ,
2019-12-29 02:25:08 +00:00
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7384:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 940 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7384:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 943 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7401:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 942 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7401:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "7368:48:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 945 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "7426:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "7351:332:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
} ,
{
"body" : {
2020-02-18 05:18:07 +00:00
"id" : 1007 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "Block" ,
"src" : "7922:168:4" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 987 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 981 ,
2019-12-29 02:25:08 +00:00
"src" : "7938:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 988 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 983 ,
2019-12-29 02:25:08 +00:00
"src" : "7947:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 986 ,
2019-12-29 02:25:08 +00:00
"name" : "_burn" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 937 ,
2019-12-29 02:25:08 +00:00
"src" : "7932:5:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 989 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7932:22:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 990 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7932:22:4"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 992 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 981 ,
2019-12-29 02:25:08 +00:00
"src" : "7973:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 993 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "7982:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 994 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7982:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 1002 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 983 ,
2019-12-29 02:25:08 +00:00
"src" : "8035:6:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365" ,
2020-02-18 05:18:07 +00:00
"id" : 1003 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8043:38:4" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds allowance\""
} ,
"value" : "ERC20: burn amount exceeds allowance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds allowance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 995 ,
2019-12-29 02:25:08 +00:00
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 626 ,
2019-12-29 02:25:08 +00:00
"src" : "7996:11:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 997 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2020-02-18 05:18:07 +00:00
"id" : 996 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 981 ,
2019-12-29 02:25:08 +00:00
"src" : "8008:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7996:20:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1000 ,
2019-12-29 02:25:08 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2020-02-18 05:18:07 +00:00
"id" : 998 ,
2019-12-29 02:25:08 +00:00
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 405 ,
2019-12-29 02:25:08 +00:00
"src" : "8017:10:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 999 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8017:12:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7996:34:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1001 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 487 ,
2019-12-29 02:25:08 +00:00
"src" : "7996:38:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1004 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7996:86:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
2020-02-18 05:18:07 +00:00
"id" : 991 ,
2019-12-29 02:25:08 +00:00
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2020-02-18 05:18:07 +00:00
"referencedDeclaration" : 979 ,
2019-12-29 02:25:08 +00:00
"src" : "7964:8:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1005 ,
2019-12-29 02:25:08 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7964:119:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2020-02-18 05:18:07 +00:00
"id" : 1006 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ExpressionStatement" ,
"src" : "7964:119:4"
}
]
} ,
"documentation" : "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}." ,
2020-02-18 05:18:07 +00:00
"id" : 1008 ,
2019-12-29 02:25:08 +00:00
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_burnFrom" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2020-02-18 05:18:07 +00:00
"id" : 984 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 981 ,
2019-12-29 02:25:08 +00:00
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1008 ,
2019-12-29 02:25:08 +00:00
"src" : "7880:15:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 980 ,
2019-12-29 02:25:08 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7880:7:4" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2020-02-18 05:18:07 +00:00
"id" : 983 ,
2019-12-29 02:25:08 +00:00
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
2020-02-18 05:18:07 +00:00
"scope" : 1008 ,
2019-12-29 02:25:08 +00:00
"src" : "7897:14:4" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2020-02-18 05:18:07 +00:00
"id" : 982 ,
2019-12-29 02:25:08 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7897:7:4" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "7879:33:4"
} ,
"returnParameters" : {
2020-02-18 05:18:07 +00:00
"id" : 985 ,
2019-12-29 02:25:08 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "7922:0:4"
} ,
2020-02-18 05:18:07 +00:00
"scope" : 1009 ,
2019-12-29 02:25:08 +00:00
"src" : "7861:229:4" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "internal"
}
] ,
2020-02-18 05:18:07 +00:00
"scope" : 1010 ,
2019-12-29 02:25:08 +00:00
"src" : "1268:6824:4"
}
] ,
"src" : "0:8093:4"
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.5.12+commit.7709ece9.Emscripten.clang"
} ,
"networks" : { } ,
"schemaVersion" : "3.0.19" ,
2020-02-18 05:18:07 +00:00
"updatedAt" : "2020-02-18T05:14:13.974Z" ,
2019-12-29 02:25:08 +00:00
"devdoc" : {
"details" : "Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. * Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}." ,
"methods" : {
"allowance(address,address)" : {
"details" : "See {IERC20-allowance}."
} ,
"approve(address,uint256)" : {
"details" : "See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address."
} ,
"balanceOf(address)" : {
"details" : "See {IERC20-balanceOf}."
} ,
"decreaseAllowance(address,uint256)" : {
"details" : "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
} ,
"increaseAllowance(address,uint256)" : {
"details" : "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."
} ,
"totalSupply()" : {
"details" : "See {IERC20-totalSupply}."
} ,
"transfer(address,uint256)" : {
"details" : "See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
} ,
"transferFrom(address,address,uint256)" : {
"details" : "See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."
}
}
} ,
"userdoc" : {
"methods" : { }
}
}