@etherisc/gif-contracts
Version:
This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.
1,337 lines • 219 kB
JSON
{
"abi": [
{
"inputs": [],
"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": [],
"name": "INITIAL_SUPPLY",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "NAME",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SYMBOL",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"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",
"92": "contracts/test/TestCoin.sol"
},
"ast": {
"absolutePath": "contracts/test/TestCoin.sol",
"exportedSymbols": {
"Context": [
24074
],
"ERC20": [
21536
],
"IERC20": [
18510
],
"IERC20Metadata": [
27166
],
"TestCoin": [
15321
],
"TestCoinX": [
15349
]
},
"id": 15350,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 15292,
"literals": [
"solidity",
"0.8",
".2"
],
"nodeType": "PragmaDirective",
"src": "39:22:92"
},
{
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/ERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"id": 15293,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 15350,
"sourceUnit": 21537,
"src": "63:55:92",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 15294,
"name": "ERC20",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21536,
"src": "141:5:92"
},
"id": 15295,
"nodeType": "InheritanceSpecifier",
"src": "141:5:92"
}
],
"contractDependencies": [
18510,
21536,
24074,
27166
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 15321,
"linearizedBaseContracts": [
15321,
21536,
27166,
18510,
24074
],
"name": "TestCoin",
"nameLocation": "129:8:92",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"functionSelector": "a3f4df7e",
"id": 15298,
"mutability": "constant",
"name": "NAME",
"nameLocation": "177:4:92",
"nodeType": "VariableDeclaration",
"scope": 15321,
"src": "154:42:92",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 15296,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "154:6:92",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"hexValue": "546573742044756d6d79",
"id": 15297,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "184:12:92",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d92c7e80c7e0511acb00e5cc9dfd1dfa061ae58fd11b1e7b920c4ff279ba2149",
"typeString": "literal_string \"Test Dummy\""
},
"value": "Test Dummy"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "f76f8d78",
"id": 15301,
"mutability": "constant",
"name": "SYMBOL",
"nameLocation": "225:6:92",
"nodeType": "VariableDeclaration",
"scope": 15321,
"src": "202:37:92",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 15299,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "202:6:92",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"hexValue": "544459",
"id": 15300,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "234:5:92",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_004af10049653c704ac6f1b2bc023dd9f0dfb627aec0912ea505bfdd2845eef3",
"typeString": "literal_string \"TDY\""
},
"value": "TDY"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "2ff2e9dc",
"id": 15306,
"mutability": "constant",
"name": "INITIAL_SUPPLY",
"nameLocation": "270:14:92",
"nodeType": "VariableDeclaration",
"scope": 15321,
"src": "246:47:92",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15302,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "246:7:92",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000000000_by_1",
"typeString": "int_const 1000000000000000000000000"
},
"id": 15305,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3130",
"id": 15303,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "287:2:92",
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"hexValue": "3234",
"id": 15304,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "291:2:92",
"typeDescriptions": {
"typeIdentifier": "t_rational_24_by_1",
"typeString": "int_const 24"
},
"value": "24"
},
"src": "287:6:92",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000000000_by_1",
"typeString": "int_const 1000000000000000000000000"
}
},
"visibility": "public"
},
{
"body": {
"id": 15319,
"nodeType": "Block",
"src": "346:86:92",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 15314,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 24064,
"src": "375:10:92",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 15315,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "375:12:92",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 15316,
"name": "INITIAL_SUPPLY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15306,
"src": "401:14:92",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 15313,
"name": "_mint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21353,
"src": "356:5:92",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 15317,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "356:69:92",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 15318,
"nodeType": "ExpressionStatement",
"src": "356:69:92"
}
]
},
"id": 15320,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"id": 15309,
"name": "NAME",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15298,
"src": "328:4:92",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 15310,
"name": "SYMBOL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15301,
"src": "334:6:92",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"id": 15311,
"modifierName": {
"id": 15308,
"name": "ERC20",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21536,
"src": "322:5:92"
},
"nodeType": "ModifierInvocation",
"src": "322:19:92"
}
],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15307,
"nodeType": "ParameterList",
"parameters": [],
"src": "311:2:92"
},
"returnParameters": {
"id": 15312,
"nodeType": "ParameterList",
"parameters": [],
"src": "346:0:92"
},
"scope": 15321,
"src": "300:132:92",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 15350,
"src": "120:314:92"
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 15322,
"name": "ERC20",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21536,
"src": "458:5:92"
},
"id": 15323,
"nodeType": "InheritanceSpecifier",
"src": "458:5:92"
}
],
"contractDependencies": [
18510,
21536,
24074,
27166
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 15349,
"linearizedBaseContracts": [
15349,
21536,
27166,
18510,
24074
],
"name": "TestCoinX",
"nameLocation": "445:9:92",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"functionSelector": "a3f4df7e",
"id": 15326,
"mutability": "constant",
"name": "NAME",
"nameLocation": "494:4:92",
"nodeType": "VariableDeclaration",
"scope": 15349,
"src": "471:44:92",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 15324,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "471:6:92",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"hexValue": "546573742044756d6d792058",
"id": 15325,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "501:14:92",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a30ac64b7d6e6ff167c2e60e6a29fb2c9ee94154569a03703430822e25699e9b",
"typeString": "literal_string \"Test Dummy X\""
},
"value": "Test Dummy X"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "f76f8d78",
"id": 15329,
"mutability": "constant",
"name": "SYMBOL",
"nameLocation": "544:6:92",
"nodeType": "VariableDeclaration",
"scope": 15349,
"src": "521:37:92",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 15327,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "521:6:92",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"hexValue": "544458",
"id": 15328,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "553:5:92",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_511eea2d30970d4c48faad7052d30e893c13eff5d8ac0180bdf8d28babd3c979",
"typeString": "literal_string \"TDX\""
},
"value": "TDX"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "2ff2e9dc",
"id": 15334,
"mutability": "constant",
"name": "INITIAL_SUPPLY",
"nameLocation": "589:14:92",
"nodeType": "VariableDeclaration",
"scope": 15349,
"src": "565:47:92",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15330,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "565:7:92",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"commonType": {
"typeIdentifier": "t_rational_1000000000000000000000000_by_1",
"typeString": "int_const 1000000000000000000000000"
},
"id": 15333,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3130",
"id": 15331,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "606:2:92",
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"hexValue": "3234",
"id": 15332,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "610:2:92",
"typeDescriptions": {
"typeIdentifier": "t_rational_24_by_1",
"typeString": "int_const 24"
},
"value": "24"
},
"src": "606:6:92",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000000000_by_1",
"typeString": "int_const 1000000000000000000000000"
}
},
"visibility": "public"
},
{
"body": {
"id": 15347,
"nodeType": "Block",
"src": "665:86:92",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 15342,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 24064,
"src": "694:10:92",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 15343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "694:12:92",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 15344,
"name": "INITIAL_SUPPLY",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15334,
"src": "720:14:92",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 15341,
"name": "_mint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21353,
"src": "675:5:92",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 15345,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "675:69:92",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 15346,
"nodeType": "ExpressionStatement",
"src": "675:69:92"
}
]
},
"id": 15348,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"id": 15337,
"name": "NAME",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15326,
"src": "647:4:92",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 15338,
"name": "SYMBOL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15329,
"src": "653:6:92",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"id": 15339,
"modifierName": {
"id": 15336,
"name": "ERC20",
"nodeType": "IdentifierPath",
"referencedDeclaration": 21536,
"src": "641:5:92"
},
"nodeType": "ModifierInvocation",
"src": "641:19:92"
}
],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15335,
"nodeType": "ParameterList",
"parameters": [],
"src": "630:2:92"
},
"returnParameters": {
"id": 15340,
"nodeType": "ParameterList",
"parameters": [],
"src": "665:0:92"
},
"scope": 15349,
"src": "619:132:92",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 15350,
"src": "436:317:92"
}
],
"src": "39:715:92"
},
"bytecode": "60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b815250604051806040016040528060038152602001620a888b60eb1b81525081600390805190602001906200006b9291906200019b565b508051620000819060049060208401906200019b565b505050620000a962000098620000af60201b60201c565b69d3c21bcecceda1000000620000b3565b620002a3565b3390565b6001600160a01b0382166200010e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000122919062000241565b90915550506001600160a01b038216600090815260208190526040812080548392906200015190849062000241565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a99062000266565b90600052602060002090601f016020900481019282620001cd576000855562000218565b82601f10620001e857805160ff191683800117855562000218565b8280016001018555821562000218579182015b8281111562000218578251825591602001919060010190620001fb565b50620002269291506200022a565b5090565b5b808211156200022657600081556001016200022b565b600082198211156200026157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027b57607f821691505b602082108114156200029d57634e487b7160e01b600052602260045260246000fd5b50919050565b61092280620002b36000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212205e12688ce83dc27b64a40d0e140cde2a5a5ee00c5b3d088486aff589b944a3c864736f6c63430008020033",
"bytecodeSha1": "e9e6a83b8abf523a74b9266a61e6005354b5ea61",
"compiler": {
"evm_version": "istanbul",
"optimizer": {
"enabled": true,
"runs": 200
},
"version": "0.8.2+commit.661d1103"
},
"contractName": "TestCoinX",
"coverageMap": {
"branches": {
"12": {
"ERC20._approve": {
"30": [
10241,
10260,
true
],
"31": [
10319,
10340,
true
]
},
"ERC20._spendAllowance": {
"32": [
10957,
10994,
false
],
"33": [
11018,
11044,
true
]
},
"ERC20._transfer": {
"34": [
7601,
7619,
true
],
"35": [
7679,
7695,
true
],
"36": [
7850,
7871,
true
]
},
"ERC20.decreaseAllowance": {
"29": [
6811,
6846,
true
]
}
},
"13": {},
"14": {},
"22": {},
"92": {}
},
"statements": {
"12": {
"ERC20._approve": {
"16": [
10233,
10301
],
"17": [
10311,
10379
],
"18": [
10390,
10426
],
"19": [
10436,
10473
]
},
"ERC20._spendAllowance": {
"20": [
11010,
11078
],
"21": [
11120,
11171
]
},
"ERC20._transfer": {
"22": [
7593,
7661
],
"23": [
7671,
7735
],
"24": [
7842,
7914
],
"25": [
7948,
7986
],
"26": [
8006,
8029
],
"27": [
8040,
8071
],
"28": [
8082,
8119
]
},
"ERC20.allowance": {
"15": [
4084,
4118
]
},
"ERC20.approve": {
"4": [
4570,
4602
],
"5": [
4612,
4623
]
},
"ERC20.balanceOf": {
"10": [
3501,
3526
]
},
"ERC20.decimals": {
"1": [
3168,
3177
]
},
"ERC20.decreaseAllowance": {
"12": [
6803,
6888
],
"13": [
6922,
6982
]
},
"ERC20.increaseAllowance": {
"9": [
6015,
6079
]
},
"ERC20.name": {
"2": [
2235,
2247
]
},
"ERC20.symbol": {
"11": [
2448,
2462
]
},
"ERC20.totalSupply": {
"0": [
3324,
3343
]
},
"ERC20.transfer": {
"14": [
3862,
3890
]
},
"ERC20.transferFrom": {
"6": [
5375,
5413
],
"7": [
5423,
5450
],
"8": [
5460,
5471
]
}
},
"13": {},
"14": {},
"22": {
"Context._msgSender": {
"3": [
712,
729
]
}
},
"92": {}
}
},
"dependencies": [
"OpenZeppelin/openzeppelin-contracts@4.7.3/Context",
"OpenZeppelin/openzeppelin-contracts@4.7.3/ERC20",
"OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
"OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20Metadata"
],
"deployedBytecode": "608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212205e12688ce83dc27b64a40d0e140cde2a5a5ee00c5b3d088486aff589b944a3c864736f6c63430008020033",
"deployedSourceMap": "436:317:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:12;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:12;1375:92:103;3244:106:12;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:12;4970:76:103;5192:286:12;;;;;;:::i;:::-;;:::i;565:47:92:-;;606:6;565:47;;3093:91:12;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:12;5148:87:103;5873:234:12;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;471:44:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;471:44:92;;;;;6594:427:12;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;521:37:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;521:37:92;;;;;2156:98:12;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:22;4570:32:12;719:10:22;4586:7:12;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:12;;4433:197;-1:-1:-1;;;4433:197:12:o;5192:286::-;5319:4;719:10:22;5375:38:12;5391:4;719:10:22;5406:6:12;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:12;;5192:286;-1:-1:-1;;;;5192:286:12:o;5873:234::-;5961:4;719:10:22;6015:64:12;719:10:22;6031:7:12;6068:10;6040:25;719:10:22;6031:7:1