UNPKG

@etherisc/gif-contracts

Version:

This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.

1,488 lines (1,487 loc) 496 kB
{ "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "12": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol", "13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol", "14": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/extensions/IERC20Metadata.sol", "22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol" }, "ast": { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "Context": [ 24074 ], "ERC20": [ 21536 ], "IERC20": [ 18510 ], "IERC20Metadata": [ 27166 ] }, "id": 21537, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 20952, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "105:23:12" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", "id": 20953, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21537, "sourceUnit": 18511, "src": "130:22:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/extensions/IERC20Metadata.sol", "file": "./extensions/IERC20Metadata.sol", "id": 20954, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21537, "sourceUnit": 27167, "src": "153:41:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol", "file": "../../utils/Context.sol", "id": 20955, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 21537, "sourceUnit": 24075, "src": "195:33:12", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 20957, "name": "Context", "nodeType": "IdentifierPath", "referencedDeclaration": 24074, "src": "1421:7:12" }, "id": 20958, "nodeType": "InheritanceSpecifier", "src": "1421:7:12" }, { "baseName": { "id": 20959, "name": "IERC20", "nodeType": "IdentifierPath", "referencedDeclaration": 18510, "src": "1430:6:12" }, "id": 20960, "nodeType": "InheritanceSpecifier", "src": "1430:6:12" }, { "baseName": { "id": 20961, "name": "IERC20Metadata", "nodeType": "IdentifierPath", "referencedDeclaration": 27166, "src": "1438:14:12" }, "id": 20962, "nodeType": "InheritanceSpecifier", "src": "1438:14:12" } ], "contractDependencies": [ 18510, 24074, 27166 ], "contractKind": "contract", "documentation": { "id": 20956, "nodeType": "StructuredDocumentation", "src": "230:1172:12", "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 Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n 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": 21536, "linearizedBaseContracts": [ 21536, 27166, 18510, 24074 ], "name": "ERC20", "nameLocation": "1412:5:12", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 20966, "mutability": "mutable", "name": "_balances", "nameLocation": "1495:9:12", "nodeType": "VariableDeclaration", "scope": 21536, "src": "1459:45:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 20965, "keyType": { "id": 20963, "name": "address", "nodeType": "ElementaryTypeName", "src": "1467:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1459:27:12", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 20964, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1478:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "private" }, { "constant": false, "id": 20972, "mutability": "mutable", "name": "_allowances", "nameLocation": "1567:11:12", "nodeType": "VariableDeclaration", "scope": 21536, "src": "1511:67:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 20971, "keyType": { "id": 20967, "name": "address", "nodeType": "ElementaryTypeName", "src": "1519:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1511:47:12", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 20970, "keyType": { "id": 20968, "name": "address", "nodeType": "ElementaryTypeName", "src": "1538:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1530:27:12", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 20969, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1549:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "visibility": "private" }, { "constant": false, "id": 20974, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "1601:12:12", "nodeType": "VariableDeclaration", "scope": 21536, "src": "1585:28:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 20973, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1585:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "private" }, { "constant": false, "id": 20976, "mutability": "mutable", "name": "_name", "nameLocation": "1635:5:12", "nodeType": "VariableDeclaration", "scope": 21536, "src": "1620:20:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 20975, "name": "string", "nodeType": "ElementaryTypeName", "src": "1620:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "constant": false, "id": 20978, "mutability": "mutable", "name": "_symbol", "nameLocation": "1661:7:12", "nodeType": "VariableDeclaration", "scope": 21536, "src": "1646:22:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 20977, "name": "string", "nodeType": "ElementaryTypeName", "src": "1646:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "body": { "id": 20994, "nodeType": "Block", "src": "2034:57:12", "statements": [ { "expression": { "id": 20988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 20986, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20976, "src": "2044:5:12", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 20987, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20981, "src": "2052:5:12", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2044:13:12", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 20989, "nodeType": "ExpressionStatement", "src": "2044:13:12" }, { "expression": { "id": 20992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 20990, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20978, "src": "2067:7:12", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 20991, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20983, "src": "2077:7:12", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2067:17:12", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 20993, "nodeType": "ExpressionStatement", "src": "2067:17:12" } ] }, "documentation": { "id": 20979, "nodeType": "StructuredDocumentation", "src": "1675:298:12", "text": " @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction." }, "id": 20995, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 20984, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20981, "mutability": "mutable", "name": "name_", "nameLocation": "2004:5:12", "nodeType": "VariableDeclaration", "scope": 20995, "src": "1990:19:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 20980, "name": "string", "nodeType": "ElementaryTypeName", "src": "1990:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 20983, "mutability": "mutable", "name": "symbol_", "nameLocation": "2025:7:12", "nodeType": "VariableDeclaration", "scope": 20995, "src": "2011:21:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 20982, "name": "string", "nodeType": "ElementaryTypeName", "src": "2011:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1989:44:12" }, "returnParameters": { "id": 20985, "nodeType": "ParameterList", "parameters": [], "src": "2034:0:12" }, "scope": 21536, "src": "1978:113:12", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ 27153 ], "body": { "id": 21004, "nodeType": "Block", "src": "2225:29:12", "statements": [ { "expression": { "id": 21002, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20976, "src": "2242:5:12", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 21001, "id": 21003, "nodeType": "Return", "src": "2235:12:12" } ] }, "documentation": { "id": 20996, "nodeType": "StructuredDocumentation", "src": "2097:54:12", "text": " @dev Returns the name of the token." }, "functionSelector": "06fdde03", "id": 21005, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "2165:4:12", "nodeType": "FunctionDefinition", "overrides": { "id": 20998, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2192:8:12" }, "parameters": { "id": 20997, "nodeType": "ParameterList", "parameters": [], "src": "2169:2:12" }, "returnParameters": { "id": 21001, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21000, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 21005, "src": "2210:13:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 20999, "name": "string", "nodeType": "ElementaryTypeName", "src": "2210:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2209:15:12" }, "scope": 21536, "src": "2156:98:12", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 27159 ], "body": { "id": 21014, "nodeType": "Block", "src": "2438:31:12", "statements": [ { "expression": { "id": 21012, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20978, "src": "2455:7:12", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 21011, "id": 21013, "nodeType": "Return", "src": "2448:14:12" } ] }, "documentation": { "id": 21006, "nodeType": "StructuredDocumentation", "src": "2260:102:12", "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." }, "functionSelector": "95d89b41", "id": 21015, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "2376:6:12", "nodeType": "FunctionDefinition", "overrides": { "id": 21008, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2405:8:12" }, "parameters": { "id": 21007, "nodeType": "ParameterList", "parameters": [], "src": "2382:2:12" }, "returnParameters": { "id": 21011, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21010, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 21015, "src": "2423:13:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 21009, "name": "string", "nodeType": "ElementaryTypeName", "src": "2423:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2422:15:12" }, "scope": 21536, "src": "2367:102:12", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 27165 ], "body": { "id": 21024, "nodeType": "Block", "src": "3158:26:12", "statements": [ { "expression": { "hexValue": "3138", "id": 21022, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3175:2:12", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "functionReturnParameters": 21021, "id": 21023, "nodeType": "Return", "src": "3168:9:12" } ] }, "documentation": { "id": 21016, "nodeType": "StructuredDocumentation", "src": "2475:613:12", "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 this function is\n overridden;\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": 21025, "implemented": true, "kind": "function", "modifiers": [], "name": "decimals", "nameLocation": "3102:8:12", "nodeType": "FunctionDefinition", "overrides": { "id": 21018, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3133:8:12" }, "parameters": { "id": 21017, "nodeType": "ParameterList", "parameters": [], "src": "3110:2:12" }, "returnParameters": { "id": 21021, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21020, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 21025, "src": "3151:5:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 21019, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3151:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" } ], "src": "3150:7:12" }, "scope": 21536, "src": "3093:91:12", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 18459 ], "body": { "id": 21034, "nodeType": "Block", "src": "3314:36:12", "statements": [ { "expression": { "id": 21032, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20974, "src": "3331:12:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 21031, "id": 21033, "nodeType": "Return", "src": "3324:19:12" } ] }, "documentation": { "id": 21026, "nodeType": "StructuredDocumentation", "src": "3190:49:12", "text": " @dev See {IERC20-totalSupply}." }, "functionSelector": "18160ddd", "id": 21035, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nameLocation": "3253:11:12", "nodeType": "FunctionDefinition", "overrides": { "id": 21028, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3287:8:12" }, "parameters": { "id": 21027, "nodeType": "ParameterList", "parameters": [], "src": "3264:2:12" }, "returnParameters": { "id": 21031, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21030, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 21035, "src": "3305:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21029, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3305:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3304:9:12" }, "scope": 21536, "src": "3244:106:12", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 18467 ], "body": { "id": 21048, "nodeType": "Block", "src": "3491:42:12", "statements": [ { "expression": { "baseExpression": { "id": 21044, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20966, "src": "3508:9:12", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 21046, "indexExpression": { "id": 21045, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21038, "src": "3518:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3508:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 21043, "id": 21047, "nodeType": "Return", "src": "3501:25:12" } ] }, "documentation": { "id": 21036, "nodeType": "StructuredDocumentation", "src": "3356:47:12", "text": " @dev See {IERC20-balanceOf}." }, "functionSelector": "70a08231", "id": 21049, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "3417:9:12", "nodeType": "FunctionDefinition", "overrides": { "id": 21040, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3464:8:12" }, "parameters": { "id": 21039, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21038, "mutability": "mutable", "name": "account", "nameLocation": "3435:7:12", "nodeType": "VariableDeclaration", "scope": 21049, "src": "3427:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21037, "name": "address", "nodeType": "ElementaryTypeName", "src": "3427:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "3426:17:12" }, "returnParameters": { "id": 21043, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21042, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 21049, "src": "3482:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21041, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3482:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3481:9:12" }, "scope": 21536, "src": "3408:125:12", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 18477 ], "body": { "id": 21073, "nodeType": "Block", "src": "3814:104:12", "statements": [ { "assignments": [ 21061 ], "declarations": [ { "constant": false, "id": 21061, "mutability": "mutable", "name": "owner", "nameLocation": "3832:5:12", "nodeType": "VariableDeclaration", "scope": 21073, "src": "3824:13:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21060, "name": "address", "nodeType": "ElementaryTypeName", "src": "3824:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 21064, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "id": 21062, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24064, "src": "3840:10:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 21063, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3840:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "3824:28:12" }, { "expression": { "arguments": [ { "id": 21066, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21061, "src": "3872:5:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 21067, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21052, "src": "3879:2:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 21068, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21054, "src": "3883:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 21065, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21297, "src": "3862:9:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 21069, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3862:28:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()"