2021-02-11 16:19:51 -08:00
{
"fileName" : "ERC20.sol" ,
"contractName" : "ERC20" ,
"source" : "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\nimport \"../../GSN/Context.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\nimport \"../../utils/Address.sol\" ; \ n \ n / * * \ n * @ d e v 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 . \ n * \ n * 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 \ n * 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 } . \ n * 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 P r e s e t M i n t e r P a u s e r } . \ n * \ n * 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 \ n * h t t p s : //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 using Address for address;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n /**\n * @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n * a default value of 18.\n *\n * To select a different value for {decimals}, use {_setupDecimals}.\n *\n * All three of these values are immutable: they can only be set once during\n * construction.\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n _decimals = 18;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n * called.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view returns (uint8) {\n return _decimals;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view override 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 virtual override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowanc
"sourcePath" : "contracts/token/ERC20/ERC20.sol" ,
"sourceMap" : "1345:9446:84:-:0;;;2013:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:4;2085:5;:12;;;;;;;;;;;;:::i;:::-;;2117:6;2107:7;:16;;;;;;;;;;;;:::i;:::-;;2145:2;2133:9;;:14;;;;;;;;;;;;;;;;;;2013:141;;1345:9446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" ,
"deployedSourceMap" : "1345:9446:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4255:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3262:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4881:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3121:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5593:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3418:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2413:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6295:266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3738:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3968:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2219:81;2256:13;2288:5;2281:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:81;:::o;4255:166::-;4338:4;4354:39;4363:12;:10;:12::i;:::-;4377:7;4386:6;4354:8;:39::i;:::-;4410:4;4403:11;;4255:166;;;;:::o;3262:98::-;3315:7;3341:12;;3334:19;;3262:98;:::o;4881:317::-;4987:4;5003:36;5013:6;5021:9;5032:6;5003:9;:36::i;:::-;5049:121;5058:6;5066:12;:10;:12::i;:::-;5080:89;5118:6;5080:89;;;;;;;;;;;;;;;;;:11;:19;5092:6;5080:19;;;;;;;;;;;;;;;:33;5100:12;:10;:12::i;:::-;5080:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5049:8;:121::i;:::-;5187:4;5180:11;;4881:317;;;;;:::o;3121:81::-;3162:5;3186:9;;;;;;;;;;;3179:16;;3121:81;:::o;5593:215::-;5681:4;5697:83;5706:12;:10;:12::i;:::-;5720:7;5729:50;5768:10;5729:11;:25;5741:12;:10;:12::i;:::-;5729:25;;;;;;;;;;;;;;;:34;5755:7;5729:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5697:8;:83::i;:::-;5797:4;5790:11;;5593:215;;;;:::o;3418:117::-;3484:7;3510:9;:18;3520:7;3510:18;;;;;;;;;;;;;;;;3503:25;;3418:117;;;:::o;2413:85::-;2452:13;2484:7;2477:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2413:85;:::o;6295:266::-;6388:4;6404:129;6413:12;:10;:12::i;:::-;6427:7;6436:96;6475:15;6436:96;;;;;;;;;;;;;;;;;:11;:25;6448:12;:10;:12::i;:::-;6436:25;;;;;;;;;;;;;;;:34;6462:7;6436:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6404:8;:129::i;:::-;6550:4;6543:11;;6295:266;;;;:::o;3738:172::-;3824:4;3840:42;3850:12;:10;:12::i;:::-;3864:9;3875:6;3840:9;:42::i;:::-;3899:4;3892:11;;3738:172;;;;:::o;3968:149::-;4057:7;4083:11;:18;4095:5;4083:18;;;;;;;;;;;;;;;:27;4102:7;4083:27;;;;;;;;;;;;;;;;4076:34;;3968:149;;;;:::o;590:104:0:-;643:15;677:10;670:17;;590:104;:::o;9359:340:84:-;9477:1;9460:19;;:5;:19;;;;9452:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9557:1;9538:21;;:7;:21;;;;9530:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9639:6;9609:11;:18;9621:5;9609:18;;;;;;;;;;;;;;;:27;9628:7;9609:27;;;;;;;;;;;;;;;:36;;;;9676:7;9660:32;;9669:5;9660:32;;;9685:6;9660:32;;;;;;;;;;;;;;;;;;9359:340;;;:::o;7035:530::-;7158:1;7140:20;;:6;:20;;;;7132:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7241:1;7220:23;;:9;:23;;;;7212:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7294:47;7315:6;7323:9;7334:6;7294:20;:47::i;:::-;7372:71;7394:6;7372:71;;;;;;;;;;;;;;;;;:9;:17;7382:6;7372:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7352:9;:17;7362:6;7352:17;;;;;;;;;;;;;;;:91;;;;7476:32;7501:6;7476:9;:20;7486:9;7476:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7453:9;:20;7463:9;7453:20;;;;;;;;;;;;;;;:55;;;;7540:9;7523:35;;7532:6;7523:35;;;7551:6;7523:35;;;;;;;;;;;;;;;;;;7035:530;;;:::o;1746:187:17:-;1832:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:9;1906:1;1902;:5;1890:17;;1925:1;1918:8;;;1746:187;;;;;:::o;874:176::-;932:7;951:9;967:1;963;:5;951:17;;991:1;986;:6;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1;1035:8;;;874:176;;;;:::o;10697:92:84:-;;;;:::o" ,
"abi" : [
{
"inputs" : [
{
"internalType" : "string" ,
"name" : "name" ,
"type" : "string"
} ,
{
"internalType" : "string" ,
"name" : "symbol" ,
"type" : "string"
}
] ,
"stateMutability" : "nonpayable" ,
"type" : "constructor"
} ,
{
"anonymous" : false ,
"inputs" : [
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "owner" ,
"type" : "address"
} ,
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"indexed" : false ,
"internalType" : "uint256" ,
"name" : "value" ,
"type" : "uint256"
}
] ,
"name" : "Approval" ,
"type" : "event"
} ,
{
"anonymous" : false ,
"inputs" : [
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "from" ,
"type" : "address"
} ,
{
"indexed" : true ,
"internalType" : "address" ,
"name" : "to" ,
"type" : "address"
} ,
{
"indexed" : false ,
"internalType" : "uint256" ,
"name" : "value" ,
"type" : "uint256"
}
] ,
"name" : "Transfer" ,
"type" : "event"
} ,
{
"inputs" : [
{
"internalType" : "address" ,
"name" : "owner" ,
"type" : "address"
} ,
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
}
] ,
"name" : "allowance" ,
"outputs" : [
{
"internalType" : "uint256" ,
"name" : "" ,
"type" : "uint256"
}
] ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "amount" ,
"type" : "uint256"
}
] ,
"name" : "approve" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"inputs" : [
{
"internalType" : "address" ,
"name" : "account" ,
"type" : "address"
}
] ,
"name" : "balanceOf" ,
"outputs" : [
{
"internalType" : "uint256" ,
"name" : "" ,
"type" : "uint256"
}
] ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [ ] ,
"name" : "decimals" ,
"outputs" : [
{
"internalType" : "uint8" ,
"name" : "" ,
"type" : "uint8"
}
] ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "subtractedValue" ,
"type" : "uint256"
}
] ,
"name" : "decreaseAllowance" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"inputs" : [
{
"internalType" : "address" ,
"name" : "spender" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "addedValue" ,
"type" : "uint256"
}
] ,
"name" : "increaseAllowance" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"inputs" : [ ] ,
"name" : "name" ,
"outputs" : [
{
"internalType" : "string" ,
"name" : "" ,
"type" : "string"
}
] ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [ ] ,
"name" : "symbol" ,
"outputs" : [
{
"internalType" : "string" ,
"name" : "" ,
"type" : "string"
}
] ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [ ] ,
"name" : "totalSupply" ,
"outputs" : [
{
"internalType" : "uint256" ,
"name" : "" ,
"type" : "uint256"
}
] ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [
{
"internalType" : "address" ,
"name" : "recipient" ,
"type" : "address"
} ,
{
"internalType" : "uint256" ,
"name" : "amount" ,
"type" : "uint256"
}
] ,
"name" : "transfer" ,
"outputs" : [
{
"internalType" : "bool" ,
"name" : "" ,
"type" : "bool"
}
] ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"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"
}
] ,
"stateMutability" : "nonpayable" ,
"type" : "function"
}
] ,
"ast" : {
"absolutePath" : "contracts/token/ERC20/ERC20.sol" ,
"exportedSymbols" : {
2021-03-09 15:29:21 -08:00
"ERC20" : [ 9194 ]
2021-02-11 16:19:51 -08:00
} ,
"id" : 9195 ,
"license" : "MIT" ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 8689 ,
2021-03-09 15:29:21 -08:00
"literals" : [ "solidity" , "^" , "0.6" , ".0" ] ,
2021-02-11 16:19:51 -08:00
"nodeType" : "PragmaDirective" ,
"src" : "33:23:84"
} ,
{
"absolutePath" : "contracts/GSN/Context.sol" ,
"file" : "../../GSN/Context.sol" ,
"id" : 8690 ,
"nodeType" : "ImportDirective" ,
"scope" : 9195 ,
"sourceUnit" : 23 ,
"src" : "58:31:84" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "contracts/token/ERC20/IERC20.sol" ,
"file" : "./IERC20.sol" ,
"id" : 8691 ,
"nodeType" : "ImportDirective" ,
"scope" : 9195 ,
"sourceUnit" : 9774 ,
"src" : "90:22:84" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "contracts/math/SafeMath.sol" ,
"file" : "../../math/SafeMath.sol" ,
"id" : 8692 ,
"nodeType" : "ImportDirective" ,
"scope" : 9195 ,
"sourceUnit" : 2422 ,
"src" : "113:33:84" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "contracts/utils/Address.sol" ,
"file" : "../../utils/Address.sol" ,
"id" : 8693 ,
"nodeType" : "ImportDirective" ,
"scope" : 9195 ,
"sourceUnit" : 12815 ,
"src" : "147:33:84" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"abstract" : false ,
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 8695 ,
"name" : "Context" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 22 ,
"src" : "1363:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Context_$22" ,
"typeString" : "contract Context"
}
} ,
"id" : 8696 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "1363:7:84"
} ,
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
"id" : 8697 ,
"name" : "IERC20" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 9773 ,
"src" : "1372:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_IERC20_$9773" ,
"typeString" : "contract IERC20"
}
} ,
"id" : 8698 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "1372:6:84"
}
] ,
2021-03-09 15:29:21 -08:00
"contractDependencies" : [ 22 , 9773 ] ,
2021-02-11 16:19:51 -08:00
"contractKind" : "contract" ,
"documentation" : {
"id" : 8694 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "182:1162:84" ,
"text" : " @dev Implementation of the {IERC20} interface.\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 {ERC20PresetMinterPauser}.\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 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 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 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}."
} ,
"fullyImplemented" : true ,
"id" : 9194 ,
2021-03-09 15:29:21 -08:00
"linearizedBaseContracts" : [ 9194 , 9773 , 22 ] ,
2021-02-11 16:19:51 -08:00
"name" : "ERC20" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"id" : 8701 ,
"libraryName" : {
"contractScope" : null ,
"id" : 8699 ,
"name" : "SafeMath" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 2421 ,
"src" : "1391:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SafeMath_$2421" ,
"typeString" : "library SafeMath"
}
} ,
"nodeType" : "UsingForDirective" ,
"src" : "1385:27:84" ,
"typeName" : {
"id" : 8700 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1404:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
} ,
{
"id" : 8704 ,
"libraryName" : {
"contractScope" : null ,
"id" : 8702 ,
"name" : "Address" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 12814 ,
"src" : "1423:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Address_$12814" ,
"typeString" : "library Address"
}
} ,
"nodeType" : "UsingForDirective" ,
"src" : "1417:26:84" ,
"typeName" : {
"id" : 8703 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1435:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
} ,
{
"constant" : false ,
"id" : 8708 ,
"mutability" : "mutable" ,
"name" : "_balances" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9194 ,
"src" : "1449:46:84" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"typeName" : {
"id" : 8707 ,
"keyType" : {
"id" : 8705 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1458:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1449:28:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"valueType" : {
"id" : 8706 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1469:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
"id" : 8714 ,
"mutability" : "mutable" ,
"name" : "_allowances" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9194 ,
"src" : "1502:69:84" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
} ,
"typeName" : {
"id" : 8713 ,
"keyType" : {
"id" : 8709 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1511:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1502:49:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
} ,
"valueType" : {
"id" : 8712 ,
"keyType" : {
"id" : 8710 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1531:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "1522:28:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
} ,
"valueType" : {
"id" : 8711 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1542:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
"id" : 8716 ,
"mutability" : "mutable" ,
"name" : "_totalSupply" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9194 ,
"src" : "1578:28:84" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8715 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1578:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
"id" : 8718 ,
"mutability" : "mutable" ,
"name" : "_name" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9194 ,
"src" : "1613:20:84" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 8717 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1613:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
"id" : 8720 ,
"mutability" : "mutable" ,
"name" : "_symbol" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9194 ,
"src" : "1639:22:84" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 8719 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1639:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"constant" : false ,
"id" : 8722 ,
"mutability" : "mutable" ,
"name" : "_decimals" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9194 ,
"src" : "1667:23:84" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 8721 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1667:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "private"
} ,
{
"body" : {
"id" : 8742 ,
"nodeType" : "Block" ,
"src" : "2075:79:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 8732 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 8730 ,
"name" : "_name" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8718 ,
"src" : "2085:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 8731 ,
"name" : "name" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8725 ,
"src" : "2093:4:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory_ptr" ,
"typeString" : "string memory"
}
} ,
"src" : "2085:12:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string storage ref"
}
} ,
"id" : 8733 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2085:12:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 8736 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 8734 ,
"name" : "_symbol" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8720 ,
"src" : "2107:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 8735 ,
"name" : "symbol" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8727 ,
"src" : "2117:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory_ptr" ,
"typeString" : "string memory"
}
} ,
"src" : "2107:16:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string storage ref"
}
} ,
"id" : 8737 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2107:16:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 8740 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 8738 ,
"name" : "_decimals" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8722 ,
"src" : "2133:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "3138" ,
"id" : 8739 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2145:2:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_18_by_1" ,
"typeString" : "int_const 18"
} ,
"value" : "18"
} ,
"src" : "2133:14:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"id" : 8741 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2133:14:84"
}
]
} ,
"documentation" : {
"id" : 8723 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "1697:311:84" ,
"text" : " @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction."
} ,
"id" : 8743 ,
"implemented" : true ,
"kind" : "constructor" ,
"modifiers" : [ ] ,
"name" : "" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8728 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8725 ,
"mutability" : "mutable" ,
"name" : "name" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8743 ,
"src" : "2026:18:84" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory_ptr" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 8724 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2026:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8727 ,
"mutability" : "mutable" ,
"name" : "symbol" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8743 ,
"src" : "2046:20:84" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory_ptr" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 8726 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2046:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2025:42:84"
} ,
"returnParameters" : {
"id" : 8729 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2075:0:84"
} ,
"scope" : 9194 ,
"src" : "2013:141:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : false ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 8751 ,
"nodeType" : "Block" ,
"src" : "2271:29:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 8749 ,
"name" : "_name" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8718 ,
"src" : "2288:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string storage ref"
}
} ,
"functionReturnParameters" : 8748 ,
"id" : 8750 ,
"nodeType" : "Return" ,
"src" : "2281:12:84"
}
]
} ,
"documentation" : {
"id" : 8744 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "2160:54:84" ,
"text" : " @dev Returns the name of the token."
} ,
"functionSelector" : "06fdde03" ,
"id" : 8752 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "name" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8745 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2232:2:84"
} ,
"returnParameters" : {
"id" : 8748 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8747 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8752 ,
"src" : "2256:13:84" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory_ptr" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 8746 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2256:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2255:15:84"
} ,
"scope" : 9194 ,
"src" : "2219:81:84" ,
"stateMutability" : "view" ,
"virtual" : false ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 8760 ,
"nodeType" : "Block" ,
"src" : "2467:31:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 8758 ,
"name" : "_symbol" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8720 ,
"src" : "2484:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage" ,
"typeString" : "string storage ref"
}
} ,
"functionReturnParameters" : 8757 ,
"id" : 8759 ,
"nodeType" : "Return" ,
"src" : "2477:14:84"
}
]
} ,
"documentation" : {
"id" : 8753 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "2306:102:84" ,
"text" : " @dev Returns the symbol of the token, usually a shorter version of the\n name."
} ,
"functionSelector" : "95d89b41" ,
"id" : 8761 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "symbol" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8754 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2428:2:84"
} ,
"returnParameters" : {
"id" : 8757 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8756 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8761 ,
"src" : "2452:13:84" ,
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory_ptr" ,
"typeString" : "string"
} ,
"typeName" : {
"id" : 8755 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2452:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2451:15:84"
} ,
"scope" : 9194 ,
"src" : "2413:85:84" ,
"stateMutability" : "view" ,
"virtual" : false ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 8769 ,
"nodeType" : "Block" ,
"src" : "3169:33:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 8767 ,
"name" : "_decimals" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8722 ,
"src" : "3186:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"functionReturnParameters" : 8766 ,
"id" : 8768 ,
"nodeType" : "Return" ,
"src" : "3179:16:84"
}
]
} ,
"documentation" : {
"id" : 8762 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "2504:612:84" ,
"text" : " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
} ,
"functionSelector" : "313ce567" ,
"id" : 8770 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "decimals" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8763 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "3138:2:84"
} ,
"returnParameters" : {
"id" : 8766 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8765 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8770 ,
"src" : "3162:5:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 8764 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3162:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3161:7:84"
} ,
"scope" : 9194 ,
"src" : "3121:81:84" ,
"stateMutability" : "view" ,
"virtual" : false ,
"visibility" : "public"
} ,
{
2021-03-09 15:29:21 -08:00
"baseFunctions" : [ 9704 ] ,
2021-02-11 16:19:51 -08:00
"body" : {
"id" : 8779 ,
"nodeType" : "Block" ,
"src" : "3324:36:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 8777 ,
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8716 ,
"src" : "3341:12:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 8776 ,
"id" : 8778 ,
"nodeType" : "Return" ,
"src" : "3334:19:84"
}
]
} ,
"documentation" : {
"id" : 8771 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "3208:49:84" ,
"text" : " @dev See {IERC20-totalSupply}."
} ,
"functionSelector" : "18160ddd" ,
"id" : 8780 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "totalSupply" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : {
"id" : 8773 ,
"nodeType" : "OverrideSpecifier" ,
"overrides" : [ ] ,
"src" : "3297:8:84"
} ,
"parameters" : {
"id" : 8772 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "3282:2:84"
} ,
"returnParameters" : {
"id" : 8776 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8775 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8780 ,
"src" : "3315:7:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8774 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3315:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3314:9:84"
} ,
"scope" : 9194 ,
"src" : "3262:98:84" ,
"stateMutability" : "view" ,
"virtual" : false ,
"visibility" : "public"
} ,
{
2021-03-09 15:29:21 -08:00
"baseFunctions" : [ 9712 ] ,
2021-02-11 16:19:51 -08:00
"body" : {
"id" : 8793 ,
"nodeType" : "Block" ,
"src" : "3493:42:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8789 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "3510:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8791 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8790 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8783 ,
"src" : "3520:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3510:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 8788 ,
"id" : 8792 ,
"nodeType" : "Return" ,
"src" : "3503:25:84"
}
]
} ,
"documentation" : {
"id" : 8781 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "3366:47:84" ,
"text" : " @dev See {IERC20-balanceOf}."
} ,
"functionSelector" : "70a08231" ,
"id" : 8794 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "balanceOf" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : {
"id" : 8785 ,
"nodeType" : "OverrideSpecifier" ,
"overrides" : [ ] ,
"src" : "3466:8:84"
} ,
"parameters" : {
"id" : 8784 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8783 ,
"mutability" : "mutable" ,
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8794 ,
"src" : "3437:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8782 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3437:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3436:17:84"
} ,
"returnParameters" : {
"id" : 8788 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8787 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8794 ,
"src" : "3484:7:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8786 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3484:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3483:9:84"
} ,
"scope" : 9194 ,
"src" : "3418:117:84" ,
"stateMutability" : "view" ,
"virtual" : false ,
"visibility" : "public"
} ,
{
2021-03-09 15:29:21 -08:00
"baseFunctions" : [ 9722 ] ,
2021-02-11 16:19:51 -08:00
"body" : {
"id" : 8814 ,
"nodeType" : "Block" ,
"src" : "3830:80:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8806 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "3850:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8807 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3850:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 8808 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8797 ,
"src" : "3864:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 8809 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8799 ,
"src" : "3875:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8805 ,
"name" : "_transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9015 ,
"src" : "3840:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8810 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3840:42:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8811 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3840:42:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 8812 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3899:4:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 8804 ,
"id" : 8813 ,
"nodeType" : "Return" ,
"src" : "3892:11:84"
}
]
} ,
"documentation" : {
"id" : 8795 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "3541:192:84" ,
"text" : " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
} ,
"functionSelector" : "a9059cbb" ,
"id" : 8815 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "transfer" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : {
"id" : 8801 ,
"nodeType" : "OverrideSpecifier" ,
"overrides" : [ ] ,
"src" : "3806:8:84"
} ,
"parameters" : {
"id" : 8800 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8797 ,
"mutability" : "mutable" ,
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8815 ,
"src" : "3756:17:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8796 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3756:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8799 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8815 ,
"src" : "3775:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8798 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3775:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3755:35:84"
} ,
"returnParameters" : {
"id" : 8804 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8803 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8815 ,
"src" : "3824:4:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 8802 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3824:4:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3823:6:84"
} ,
"scope" : 9194 ,
"src" : "3738:172:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "public"
} ,
{
2021-03-09 15:29:21 -08:00
"baseFunctions" : [ 9732 ] ,
2021-02-11 16:19:51 -08:00
"body" : {
"id" : 8832 ,
"nodeType" : "Block" ,
"src" : "4066:51:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8826 ,
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8714 ,
"src" : "4083:11:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
"id" : 8828 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8827 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8818 ,
"src" : "4095:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4083:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8830 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8829 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8820 ,
"src" : "4102:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4083:27:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"functionReturnParameters" : 8825 ,
"id" : 8831 ,
"nodeType" : "Return" ,
"src" : "4076:34:84"
}
]
} ,
"documentation" : {
"id" : 8816 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "3916:47:84" ,
"text" : " @dev See {IERC20-allowance}."
} ,
"functionSelector" : "dd62ed3e" ,
"id" : 8833 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "allowance" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : {
"id" : 8822 ,
"nodeType" : "OverrideSpecifier" ,
"overrides" : [ ] ,
"src" : "4039:8:84"
} ,
"parameters" : {
"id" : 8821 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8818 ,
"mutability" : "mutable" ,
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8833 ,
"src" : "3987:13:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8817 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3987:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8820 ,
"mutability" : "mutable" ,
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8833 ,
"src" : "4002:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8819 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4002:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3986:32:84"
} ,
"returnParameters" : {
"id" : 8825 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8824 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8833 ,
"src" : "4057:7:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8823 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4057:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4056:9:84"
} ,
"scope" : 9194 ,
"src" : "3968:149:84" ,
"stateMutability" : "view" ,
"virtual" : true ,
"visibility" : "public"
} ,
{
2021-03-09 15:29:21 -08:00
"baseFunctions" : [ 9742 ] ,
2021-02-11 16:19:51 -08:00
"body" : {
"id" : 8853 ,
"nodeType" : "Block" ,
"src" : "4344:77:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8845 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "4363:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8846 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4363:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 8847 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8836 ,
"src" : "4377:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 8848 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8838 ,
"src" : "4386:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8844 ,
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9171 ,
"src" : "4354:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8849 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4354:39:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8850 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4354:39:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 8851 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4410:4:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 8843 ,
"id" : 8852 ,
"nodeType" : "Return" ,
"src" : "4403:11:84"
}
]
} ,
"documentation" : {
"id" : 8834 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "4123:127:84" ,
"text" : " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
} ,
"functionSelector" : "095ea7b3" ,
"id" : 8854 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "approve" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : {
"id" : 8840 ,
"nodeType" : "OverrideSpecifier" ,
"overrides" : [ ] ,
"src" : "4320:8:84"
} ,
"parameters" : {
"id" : 8839 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8836 ,
"mutability" : "mutable" ,
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8854 ,
"src" : "4272:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8835 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4272:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8838 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8854 ,
"src" : "4289:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8837 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4289:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4271:33:84"
} ,
"returnParameters" : {
"id" : 8843 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8842 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8854 ,
"src" : "4338:4:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 8841 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4338:4:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4337:6:84"
} ,
"scope" : 9194 ,
"src" : "4255:166:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "public"
} ,
{
2021-03-09 15:29:21 -08:00
"baseFunctions" : [ 9754 ] ,
2021-02-11 16:19:51 -08:00
"body" : {
"id" : 8891 ,
"nodeType" : "Block" ,
"src" : "4993:205:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8868 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8857 ,
"src" : "5013:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 8869 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8859 ,
"src" : "5021:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 8870 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8861 ,
"src" : "5032:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8867 ,
"name" : "_transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9015 ,
"src" : "5003:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8871 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5003:36:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8872 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5003:36:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8874 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8857 ,
"src" : "5058:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8875 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "5066:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8876 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5066:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8884 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8861 ,
"src" : "5118:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365" ,
"id" : 8885 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5126:42:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds allowance\""
} ,
"value" : "ERC20: transfer amount exceeds allowance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds allowance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8877 ,
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8714 ,
"src" : "5080:11:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
"id" : 8879 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8878 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8857 ,
"src" : "5092:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5080:19:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8882 ,
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8880 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "5100:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8881 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5100:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5080:33:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 8883 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2299 ,
"src" : "5080:37:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
"id" : 8886 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5080:89:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8873 ,
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9171 ,
"src" : "5049:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8887 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5049:121:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8888 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5049:121:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 8889 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5187:4:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 8866 ,
"id" : 8890 ,
"nodeType" : "Return" ,
"src" : "5180:11:84"
}
]
} ,
"documentation" : {
"id" : 8855 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "4427:449:84" ,
"text" : " @dev See {IERC20-transferFrom}.\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 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`."
} ,
"functionSelector" : "23b872dd" ,
"id" : 8892 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "transferFrom" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : {
"id" : 8863 ,
"nodeType" : "OverrideSpecifier" ,
"overrides" : [ ] ,
"src" : "4969:8:84"
} ,
"parameters" : {
"id" : 8862 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8857 ,
"mutability" : "mutable" ,
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8892 ,
"src" : "4903:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8856 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4903:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8859 ,
"mutability" : "mutable" ,
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8892 ,
"src" : "4919:17:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8858 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4919:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8861 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8892 ,
"src" : "4938:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8860 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4938:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4902:51:84"
} ,
"returnParameters" : {
"id" : 8866 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8865 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8892 ,
"src" : "4987:4:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 8864 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4987:4:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4986:6:84"
} ,
"scope" : 9194 ,
"src" : "4881:317:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 8919 ,
"nodeType" : "Block" ,
"src" : "5687:121:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8903 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "5706:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8904 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5706:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 8905 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8895 ,
"src" : "5720:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8913 ,
"name" : "addedValue" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8897 ,
"src" : "5768:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8906 ,
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8714 ,
"src" : "5729:11:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
"id" : 8909 ,
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8907 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "5741:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8908 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5741:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5729:25:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8911 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8910 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8895 ,
"src" : "5755:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "5729:34:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 8912 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2254 ,
"src" : "5729:38:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
"id" : 8914 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5729:50:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8902 ,
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9171 ,
"src" : "5697:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8915 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5697:83:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8916 ,
"nodeType" : "ExpressionStatement" ,
"src" : "5697:83:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 8917 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "5797:4:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 8901 ,
"id" : 8918 ,
"nodeType" : "Return" ,
"src" : "5790:11:84"
}
]
} ,
"documentation" : {
"id" : 8893 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "5204:384:84" ,
"text" : " @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\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
} ,
"functionSelector" : "39509351" ,
"id" : 8920 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "increaseAllowance" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8898 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8895 ,
"mutability" : "mutable" ,
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8920 ,
"src" : "5620:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8894 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5620:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8897 ,
"mutability" : "mutable" ,
"name" : "addedValue" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8920 ,
"src" : "5637:18:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8896 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5637:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5619:37:84"
} ,
"returnParameters" : {
"id" : 8901 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8900 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8920 ,
"src" : "5681:4:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 8899 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5681:4:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5680:6:84"
} ,
"scope" : 9194 ,
"src" : "5593:215:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 8948 ,
"nodeType" : "Block" ,
"src" : "6394:167:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8931 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "6413:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8932 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6413:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 8933 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8923 ,
"src" : "6427:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8941 ,
"name" : "subtractedValue" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8925 ,
"src" : "6475:15:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f" ,
"id" : 8942 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6492:39:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8" ,
"typeString" : "literal_string \"ERC20: decreased allowance below zero\""
} ,
"value" : "ERC20: decreased allowance below zero"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8" ,
"typeString" : "literal_string \"ERC20: decreased allowance below zero\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8934 ,
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8714 ,
"src" : "6436:11:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
"id" : 8937 ,
"indexExpression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
"id" : 8935 ,
"name" : "_msgSender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 10 ,
"src" : "6448:10:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$__$returns$_t_address_payable_$" ,
"typeString" : "function () view returns (address payable)"
}
} ,
"id" : 8936 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6448:12:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "6436:25:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8939 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8938 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8923 ,
"src" : "6462:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "6436:34:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 8940 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2299 ,
"src" : "6436:38:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
"id" : 8943 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6436:96:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8930 ,
"name" : "_approve" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9171 ,
"src" : "6404:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8944 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "6404:129:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8945 ,
"nodeType" : "ExpressionStatement" ,
"src" : "6404:129:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 8946 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "6550:4:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 8929 ,
"id" : 8947 ,
"nodeType" : "Return" ,
"src" : "6543:11:84"
}
]
} ,
"documentation" : {
"id" : 8921 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "5814:476:84" ,
"text" : " @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\n problems 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`."
} ,
"functionSelector" : "a457c2d7" ,
"id" : 8949 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "decreaseAllowance" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8926 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8923 ,
"mutability" : "mutable" ,
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8949 ,
"src" : "6322:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8922 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6322:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8925 ,
"mutability" : "mutable" ,
"name" : "subtractedValue" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8949 ,
"src" : "6339:23:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8924 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6339:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "6321:42:84"
} ,
"returnParameters" : {
"id" : 8929 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8928 ,
"mutability" : "mutable" ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 8949 ,
"src" : "6388:4:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 8927 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "6388:4:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "6387:6:84"
} ,
"scope" : 9194 ,
"src" : "6295:266:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 9014 ,
"nodeType" : "Block" ,
"src" : "7122:443:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 8965 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 8960 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8952 ,
"src" : "7140:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 8963 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7158:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 8962 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7150:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 8961 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7150:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 8964 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7150:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7140:20:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373" ,
"id" : 8966 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7162:39:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea" ,
"typeString" : "literal_string \"ERC20: transfer from the zero address\""
} ,
"value" : "ERC20: transfer from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea" ,
"typeString" : "literal_string \"ERC20: transfer from the zero address\""
}
] ,
"id" : 8959 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
2021-03-09 15:29:21 -08:00
"overloadedDeclarations" : [ -18 , -18 ] ,
2021-02-11 16:19:51 -08:00
"referencedDeclaration" : -18 ,
"src" : "7132:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 8967 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7132:70:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8968 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7132:70:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 8975 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 8970 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8954 ,
"src" : "7220:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 8973 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7241:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 8972 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7233:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 8971 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7233:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 8974 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7233:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7220:23:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373" ,
"id" : 8976 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7245:37:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f" ,
"typeString" : "literal_string \"ERC20: transfer to the zero address\""
} ,
"value" : "ERC20: transfer to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f" ,
"typeString" : "literal_string \"ERC20: transfer to the zero address\""
}
] ,
"id" : 8969 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
2021-03-09 15:29:21 -08:00
"overloadedDeclarations" : [ -18 , -18 ] ,
2021-02-11 16:19:51 -08:00
"referencedDeclaration" : -18 ,
"src" : "7212:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 8977 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7212:71:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8978 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7212:71:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8980 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8952 ,
"src" : "7315:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 8981 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8954 ,
"src" : "7323:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 8982 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8956 ,
"src" : "7334:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 8979 ,
"name" : "_beforeTokenTransfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9193 ,
"src" : "7294:20:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 8983 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7294:47:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 8984 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7294:47:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 8995 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8985 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "7352:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8987 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8986 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8952 ,
"src" : "7362:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "7352:17:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 8992 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8956 ,
"src" : "7394:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365" ,
"id" : 8993 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7402:40:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds balance\""
} ,
"value" : "ERC20: transfer amount exceeds balance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6" ,
"typeString" : "literal_string \"ERC20: transfer amount exceeds balance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8988 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "7372:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8990 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8989 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8952 ,
"src" : "7382:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7372:17:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 8991 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2299 ,
"src" : "7372:21:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
"id" : 8994 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7372:71:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "7352:91:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 8996 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7352:91:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 9006 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 8997 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "7453:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 8999 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 8998 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8954 ,
"src" : "7463:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "7453:20:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9004 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8956 ,
"src" : "7501:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 9000 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "7476:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 9002 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9001 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8954 ,
"src" : "7486:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "7476:20:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9003 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2254 ,
"src" : "7476:24:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
"id" : 9005 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7476:32:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "7453:55:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9007 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7453:55:84"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9009 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8952 ,
"src" : "7532:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 9010 ,
"name" : "recipient" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8954 ,
"src" : "7540:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 9011 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8956 ,
"src" : "7551:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 9008 ,
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9763 ,
"src" : "7523:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 9012 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7523:35:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9013 ,
"nodeType" : "EmitStatement" ,
"src" : "7518:40:84"
}
]
} ,
"documentation" : {
"id" : 8950 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "6567:463:84" ,
"text" : " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
} ,
"id" : 9015 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_transfer" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 8957 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 8952 ,
"mutability" : "mutable" ,
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9015 ,
"src" : "7054:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8951 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7054:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8954 ,
"mutability" : "mutable" ,
"name" : "recipient" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9015 ,
"src" : "7070:17:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 8953 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7070:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 8956 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9015 ,
"src" : "7089:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 8955 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7089:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "7053:51:84"
} ,
"returnParameters" : {
"id" : 8958 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "7122:0:84"
} ,
"scope" : 9194 ,
"src" : "7035:530:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 9069 ,
"nodeType" : "Block" ,
"src" : "7900:305:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 9029 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 9024 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9018 ,
"src" : "7918:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9027 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7937:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9026 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "7929:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9025 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7929:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9028 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7929:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "7918:21:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206d696e7420746f20746865207a65726f2061646472657373" ,
"id" : 9030 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "7941:33:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e" ,
"typeString" : "literal_string \"ERC20: mint to the zero address\""
} ,
"value" : "ERC20: mint to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e" ,
"typeString" : "literal_string \"ERC20: mint to the zero address\""
}
] ,
"id" : 9023 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
2021-03-09 15:29:21 -08:00
"overloadedDeclarations" : [ -18 , -18 ] ,
2021-02-11 16:19:51 -08:00
"referencedDeclaration" : -18 ,
"src" : "7910:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 9031 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7910:65:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9032 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7910:65:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9036 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8015:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9035 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "8007:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9034 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8007:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9037 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8007:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 9038 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9018 ,
"src" : "8019:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 9039 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9020 ,
"src" : "8028:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 9033 ,
"name" : "_beforeTokenTransfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9193 ,
"src" : "7986:20:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 9040 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "7986:49:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9041 ,
"nodeType" : "ExpressionStatement" ,
"src" : "7986:49:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 9047 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 9042 ,
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8716 ,
"src" : "8046:12:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9045 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9020 ,
"src" : "8078:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 9043 ,
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8716 ,
"src" : "8061:12:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9044 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2254 ,
"src" : "8061:16:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
"id" : 9046 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8061:24:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "8046:39:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9048 ,
"nodeType" : "ExpressionStatement" ,
"src" : "8046:39:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 9058 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 9049 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "8095:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 9051 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9050 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9018 ,
"src" : "8105:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "8095:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9056 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9020 ,
"src" : "8139:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 9052 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "8116:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 9054 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9053 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9018 ,
"src" : "8126:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "8116:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9055 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "add" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2254 ,
"src" : "8116:22:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
"id" : 9057 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8116:30:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "8095:51:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9059 ,
"nodeType" : "ExpressionStatement" ,
"src" : "8095:51:84"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9063 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8178:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9062 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "8170:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9061 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8170:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9064 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8170:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 9065 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9018 ,
"src" : "8182:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 9066 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9020 ,
"src" : "8191:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 9060 ,
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9763 ,
"src" : "8161:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 9067 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8161:37:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9068 ,
"nodeType" : "EmitStatement" ,
"src" : "8156:42:84"
}
]
} ,
"documentation" : {
"id" : 9016 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "7571:259:84" ,
"text" : "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address."
} ,
"id" : 9070 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_mint" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 9021 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 9018 ,
"mutability" : "mutable" ,
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9070 ,
"src" : "7850:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 9017 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7850:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 9020 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9070 ,
"src" : "7867:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 9019 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "7867:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "7849:33:84"
} ,
"returnParameters" : {
"id" : 9022 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "7900:0:84"
} ,
"scope" : 9194 ,
"src" : "7835:370:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 9125 ,
"nodeType" : "Block" ,
"src" : "8589:345:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 9084 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 9079 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9073 ,
"src" : "8607:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9082 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8626:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9081 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "8618:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9080 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8618:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9083 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8618:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "8607:21:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373" ,
"id" : 9085 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8630:35:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f" ,
"typeString" : "literal_string \"ERC20: burn from the zero address\""
} ,
"value" : "ERC20: burn from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f" ,
"typeString" : "literal_string \"ERC20: burn from the zero address\""
}
] ,
"id" : 9078 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
2021-03-09 15:29:21 -08:00
"overloadedDeclarations" : [ -18 , -18 ] ,
2021-02-11 16:19:51 -08:00
"referencedDeclaration" : -18 ,
"src" : "8599:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 9086 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8599:67:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9087 ,
"nodeType" : "ExpressionStatement" ,
"src" : "8599:67:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9089 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9073 ,
"src" : "8698:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9092 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8715:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9091 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "8707:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9090 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8707:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9093 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8707:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 9094 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9075 ,
"src" : "8719:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 9088 ,
"name" : "_beforeTokenTransfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9193 ,
"src" : "8677:20:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 9095 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8677:49:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9096 ,
"nodeType" : "ExpressionStatement" ,
"src" : "8677:49:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 9107 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 9097 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "8737:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 9099 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9098 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9073 ,
"src" : "8747:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "8737:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9104 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9075 ,
"src" : "8781:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365" ,
"id" : 9105 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8789:36:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds balance\""
} ,
"value" : "ERC20: burn amount exceeds balance"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
{
"typeIdentifier" : "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd" ,
"typeString" : "literal_string \"ERC20: burn amount exceeds balance\""
}
] ,
"expression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 9100 ,
"name" : "_balances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8708 ,
"src" : "8758:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 9102 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9101 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9073 ,
"src" : "8768:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "8758:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9103 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2299 ,
"src" : "8758:22:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256,string memory) pure returns (uint256)"
}
} ,
"id" : 9106 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8758:68:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "8737:89:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9108 ,
"nodeType" : "ExpressionStatement" ,
"src" : "8737:89:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 9114 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 9109 ,
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8716 ,
"src" : "8836:12:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9112 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9075 ,
"src" : "8868:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"expression" : {
"argumentTypes" : null ,
"id" : 9110 ,
"name" : "_totalSupply" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8716 ,
"src" : "8851:12:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9111 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sub" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 2271 ,
"src" : "8851:16:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$" ,
"typeString" : "function (uint256,uint256) pure returns (uint256)"
}
} ,
"id" : 9113 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8851:24:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "8836:39:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9115 ,
"nodeType" : "ExpressionStatement" ,
"src" : "8836:39:84"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9117 ,
"name" : "account" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9073 ,
"src" : "8899:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9120 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "8916:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9119 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "8908:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9118 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8908:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9121 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8908:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
{
"argumentTypes" : null ,
"id" : 9122 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9075 ,
"src" : "8920:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 9116 ,
"name" : "Transfer" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9763 ,
"src" : "8890:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 9123 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "8890:37:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9124 ,
"nodeType" : "EmitStatement" ,
"src" : "8885:42:84"
}
]
} ,
"documentation" : {
"id" : 9071 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "8211:308:84" ,
"text" : " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
} ,
"id" : 9126 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_burn" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 9076 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 9073 ,
"mutability" : "mutable" ,
"name" : "account" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9126 ,
"src" : "8539:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 9072 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8539:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 9075 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9126 ,
"src" : "8556:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 9074 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "8556:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "8538:33:84"
} ,
"returnParameters" : {
"id" : 9077 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "8589:0:84"
} ,
"scope" : 9194 ,
"src" : "8524:410:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 9170 ,
"nodeType" : "Block" ,
"src" : "9442:257:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 9142 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 9137 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9129 ,
"src" : "9460:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9140 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "9477:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9139 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "9469:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9138 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "9469:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9141 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "9469:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "9460:19:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373" ,
"id" : 9143 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "9481:38:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208" ,
"typeString" : "literal_string \"ERC20: approve from the zero address\""
} ,
"value" : "ERC20: approve from the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208" ,
"typeString" : "literal_string \"ERC20: approve from the zero address\""
}
] ,
"id" : 9136 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
2021-03-09 15:29:21 -08:00
"overloadedDeclarations" : [ -18 , -18 ] ,
2021-02-11 16:19:51 -08:00
"referencedDeclaration" : -18 ,
"src" : "9452:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 9144 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "9452:68:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9145 ,
"nodeType" : "ExpressionStatement" ,
"src" : "9452:68:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 9152 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 9147 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9131 ,
"src" : "9538:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 9150 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "9557:1:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
}
] ,
"id" : 9149 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "9549:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : {
"id" : 9148 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "9549:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : null ,
"typeString" : null
}
}
} ,
"id" : 9151 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "9549:10:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_address_payable" ,
"typeString" : "address payable"
}
} ,
"src" : "9538:21:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "45524332303a20617070726f766520746f20746865207a65726f2061646472657373" ,
"id" : 9153 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "9561:36:84" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029" ,
"typeString" : "literal_string \"ERC20: approve to the zero address\""
} ,
"value" : "ERC20: approve to the zero address"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029" ,
"typeString" : "literal_string \"ERC20: approve to the zero address\""
}
] ,
"id" : 9146 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
2021-03-09 15:29:21 -08:00
"overloadedDeclarations" : [ -18 , -18 ] ,
2021-02-11 16:19:51 -08:00
"referencedDeclaration" : -18 ,
"src" : "9530:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
"id" : 9154 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "9530:68:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9155 ,
"nodeType" : "ExpressionStatement" ,
"src" : "9530:68:84"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 9162 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 9156 ,
"name" : "_allowances" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8714 ,
"src" : "9609:11:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$" ,
"typeString" : "mapping(address => mapping(address => uint256))"
}
} ,
"id" : 9159 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9157 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9129 ,
"src" : "9621:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "9609:18:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_uint256_$" ,
"typeString" : "mapping(address => uint256)"
}
} ,
"id" : 9160 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 9158 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9131 ,
"src" : "9628:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "9609:27:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 9161 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9133 ,
"src" : "9639:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "9609:36:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 9163 ,
"nodeType" : "ExpressionStatement" ,
"src" : "9609:36:84"
} ,
{
"eventCall" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 9165 ,
"name" : "owner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9129 ,
"src" : "9669:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 9166 ,
"name" : "spender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9131 ,
"src" : "9676:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"id" : 9167 ,
"name" : "amount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9133 ,
"src" : "9685:6:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
] ,
"id" : 9164 ,
"name" : "Approval" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9772 ,
"src" : "9660:8:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$" ,
"typeString" : "function (address,address,uint256)"
}
} ,
"id" : 9168 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "9660:32:84" ,
"tryCall" : false ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 9169 ,
"nodeType" : "EmitStatement" ,
"src" : "9655:37:84"
}
]
} ,
"documentation" : {
"id" : 9127 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "8940:414:84" ,
"text" : " @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\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
} ,
"id" : 9171 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_approve" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 9134 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 9129 ,
"mutability" : "mutable" ,
"name" : "owner" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9171 ,
"src" : "9377:13:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 9128 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "9377:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 9131 ,
"mutability" : "mutable" ,
"name" : "spender" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9171 ,
"src" : "9392:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 9130 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "9392:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 9133 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9171 ,
"src" : "9409:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 9132 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "9409:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "9376:48:84"
} ,
"returnParameters" : {
"id" : 9135 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "9442:0:84"
} ,
"scope" : 9194 ,
"src" : "9359:340:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 9181 ,
"nodeType" : "Block" ,
"src" : "10072:38:84" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 9179 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 9177 ,
"name" : "_decimals" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 8722 ,
"src" : "10082:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 9178 ,
"name" : "decimals_" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 9174 ,
"src" : "10094:9:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "10082:21:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"id" : 9180 ,
"nodeType" : "ExpressionStatement" ,
"src" : "10082:21:84"
}
]
} ,
"documentation" : {
"id" : 9172 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "9705:312:84" ,
"text" : " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
} ,
"id" : 9182 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_setupDecimals" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 9175 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 9174 ,
"mutability" : "mutable" ,
"name" : "decimals_" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9182 ,
"src" : "10046:15:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 9173 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "10046:5:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "10045:17:84"
} ,
"returnParameters" : {
"id" : 9176 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "10072:0:84"
} ,
"scope" : 9194 ,
"src" : "10022:88:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : false ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 9192 ,
"nodeType" : "Block" ,
"src" : "10786:3:84" ,
"statements" : [ ]
} ,
"documentation" : {
"id" : 9183 ,
"nodeType" : "StructuredDocumentation" ,
"src" : "10116:576:84" ,
"text" : " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."
} ,
"id" : 9193 ,
"implemented" : true ,
"kind" : "function" ,
"modifiers" : [ ] ,
"name" : "_beforeTokenTransfer" ,
"nodeType" : "FunctionDefinition" ,
"overrides" : null ,
"parameters" : {
"id" : 9190 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 9185 ,
"mutability" : "mutable" ,
"name" : "from" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9193 ,
"src" : "10727:12:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 9184 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "10727:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 9187 ,
"mutability" : "mutable" ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9193 ,
"src" : "10741:10:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 9186 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "10741:7:84" ,
"stateMutability" : "nonpayable" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 9189 ,
"mutability" : "mutable" ,
"name" : "amount" ,
"nodeType" : "VariableDeclaration" ,
"overrides" : null ,
"scope" : 9193 ,
"src" : "10753:14:84" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 9188 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "10753:7:84" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "10726:42:84"
} ,
"returnParameters" : {
"id" : 9191 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "10786:0:84"
} ,
"scope" : 9194 ,
"src" : "10697:92:84" ,
"stateMutability" : "nonpayable" ,
"virtual" : true ,
"visibility" : "internal"
}
] ,
"scope" : 9195 ,
"src" : "1345:9446:84"
}
] ,
"src" : "33:10759:84"
} ,
"bytecode" : " 0 x 60806040523480156200001157600080 f d 5 b 50604051620013 b b 380380620013 b b 833981810160405260408110156200003757600080 f d 5 b 81019080805160405193929190846401000000008211156200005857600080 f d 5 b 838201915060208201858111156200006 f 57600080 f d 5 b 82518660018202830111640100000000821117156200008 d 57600080 f d 5 b 8083526020830192505050908051906020019080838360005 b 83811015620000 c 3578082015181840152602081019050620000 a 6565 b 50505050905090810190601 f 168015620000 f 15780820380516001836020036101000 a 0 31916815260200191505 b 50604052602001805160405193929190846401000000008211156200011557600080 f d 5 b 838201915060208201858111156200012 c 57600080 f d 5 b 82518660018202830111640100000000821117156200014 a 57600080 f d 5 b 8083526020830192505050908051906020019080838360005 b 838110156200018057808201518184015260208101905062000163565 b 50505050905090810190601 f 168015620001 a e 5780820380516001836020036101000 a 0 31916815260200191505 b 506040525050508160039080519060200190620001 c d 9291906200020 b 565 b 508060049080519060200190620001e69291906200020 b 565 b 506012600560006101000 a 81548160 f f 0 21916908360 f f 1602179055505050620002 b a 565 b 828054600181600116156101000203166002900490600052602060002090601 f 0 16020900481019282601 f 106200024e57805160 f f 19168380011785556200027 f 565 b 828001600101855582156200027 f 579182015 b 828111156200027e57825182559160200191906001019062000261565 b 5 b 5090506200028e919062000292565 b 5090565 b 620002 b 791905 b 80821115620002 b 357600081600090555060010162000299565 b 5090565 b 90565 b 6110 f 180620002 c a 6000396000 f 3 f e 608060405234801561001057600080 f d 5 b 50600436106100 a 95760003560e01 c 80633950935111610071578063395093511461025 f 57806370 a 0 8231146102 c 557806395 d 89 b 411461031 d 578063 a 457 c 2 d 7146103 a 0 578063 a 9059 c b b 14610406578063 d d 62 e d 3e1461046 c 576100 a 9565 b 806306 f d d e 0 3146100 a e 578063095 e a 7 b 31461013157806318160 d d d 1461019757806323 b 872 d d 146101 b 5578063313 c e 5671461023 b 575 b 600080 f d 5 b 6100 b 66104e4565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156100 f 65780820151818401526020810190506100 d b 565 b 50505050905090810190601 f 1680156101235780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 61017 d 6004803603604081101561014757600080 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 16906020019092919080359060200190929190505050610586565 b 604051808215151515815260200191505060405180910390 f 35 b 61019 f 6105 a 4565 b 6040518082815260200191505060405180910390 f 35 b 610221600480360360608110156101 c 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 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 169060200190929190803590602001909291905050506105 a e 565 b 604051808215151515815260200191505060405180910390 f 35 b 610243610687565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 6102 a b 6004803603604081101561027557600080 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 1690602001909291908035906020019092919050505061069e565 b 604051808215151515815260200191505060405180910390 f 35 b 610307600480360360208110156102 d 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 169060200190929190505050610751565 b 6040518082815260200191505060405180910390 f 35 b 610325610799565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561036557808201518184015260208101905061034 a 565 b 50505050905090810190601 f 1680156103925780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 6103 e c 600480360360408110156103 b 657600080 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 1690602001909291908035906020019092919050505061083 b 565 b 604051808215151515815260200191505060405180910390 f 35 b 6104526004803603604081101561041 c 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 16906020019092919080359060200190929190505050610908565 b 604051808215151515815260200191505060405180910390 f 35 b 6104 c e 6004803603604081101561048257600080 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 169060200190929190505050610926565 b 6040518082815260200191505060405180910390 f 35 b 606060038054600181600116156101000203166002900480601 f 0 1602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660
"deployedBytecode" : " 0 x 608060405234801561001057600080 f d 5 b 50600436106100 a 95760003560e01 c 80633950935111610071578063395093511461025 f 57806370 a 0 8231146102 c 557806395 d 89 b 411461031 d 578063 a 457 c 2 d 7146103 a 0 578063 a 9059 c b b 14610406578063 d d 62 e d 3e1461046 c 576100 a 9565 b 806306 f d d e 0 3146100 a e 578063095 e a 7 b 31461013157806318160 d d d 1461019757806323 b 872 d d 146101 b 5578063313 c e 5671461023 b 575 b 600080 f d 5 b 6100 b 66104e4565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156100 f 65780820151818401526020810190506100 d b 565 b 50505050905090810190601 f 1680156101235780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 61017 d 6004803603604081101561014757600080 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 16906020019092919080359060200190929190505050610586565 b 604051808215151515815260200191505060405180910390 f 35 b 61019 f 6105 a 4565 b 6040518082815260200191505060405180910390 f 35 b 610221600480360360608110156101 c 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 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 169060200190929190803590602001909291905050506105 a e 565 b 604051808215151515815260200191505060405180910390 f 35 b 610243610687565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 6102 a b 6004803603604081101561027557600080 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 1690602001909291908035906020019092919050505061069e565 b 604051808215151515815260200191505060405180910390 f 35 b 610307600480360360208110156102 d 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 169060200190929190505050610751565 b 6040518082815260200191505060405180910390 f 35 b 610325610799565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561036557808201518184015260208101905061034 a 565 b 50505050905090810190601 f 1680156103925780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 6103 e c 600480360360408110156103 b 657600080 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 1690602001909291908035906020019092919050505061083 b 565 b 604051808215151515815260200191505060405180910390 f 35 b 6104526004803603604081101561041 c 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 16906020019092919080359060200190929190505050610908565 b 604051808215151515815260200191505060405180910390 f 35 b 6104 c e 6004803603604081101561048257600080 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 169060200190929190505050610926565 b 6040518082815260200191505060405180910390 f 35 b 606060038054600181600116156101000203166002900480601 f 0 1602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057 c 5780601 f 106105515761010080835404028352916020019161057 c 565 b 820191906000526020600020905 b 81548152906001019060200180831161055 f 57829003601 f 168201915 b 5050505050905090565 b 600061059 a 6105936109 a d 565 b 84846109 b 5565 b 6001905092915050565 b 6000600254905090565 b 60006105 b b 848484610 b a c 565 b 61067 c 846105 c 76109 a d 565 b 6106778560405180606001604052806028815260200161102660289139600160008 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 168152602001908152602001600020600061062 d 6109 a d 565 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 16815260200190815260200160002054610e6 d 9092919063 f f f f f f f f 16565 b 6109 b 5565 b 600190509392505050565 b 6000600560009054906101000 a 900460 f f 16905090565 b 60006107476106 a b 6109 a d 565 b 8461074285600160006106 b c 6109 a d 565 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 f 2 d 90919063 f f f f f f f f 16565 b 6109 b 5565 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 606060048054600181600116156101000203166002900480601 f 0 160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601 f 1061080657
"compiler" : {
"name" : "solc" ,
"version" : "0.6.10+commit.00c0fcaf.Emscripten.clang" ,
"optimizer" : {
"enabled" : false ,
"runs" : 200
} ,
"evmVersion" : "petersburg"
}
}