UNPKG

@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
{ "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": "60806040523480156200001157600080fd5b506040518060400160405280600a815260200169546573742044756d6d7960b01b8152506040518060400160405280600381526020016254445960e81b81525081600390805190602001906200006992919062000199565b5080516200007f90600490602084019062000199565b505050620000a762000096620000ad60201b60201c565b69d3c21bcecceda1000000620000b1565b620002a1565b3390565b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012091906200023f565b90915550506001600160a01b038216600090815260208190526040812080548392906200014f9084906200023f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a79062000264565b90600052602060002090601f016020900481019282620001cb576000855562000216565b82601f10620001e657805160ff191683800117855562000216565b8280016001018555821562000216579182015b8281111562000216578251825591602001919060010190620001f9565b506200022492915062000228565b5090565b5b8082111562000224576000815560010162000229565b600082198211156200025f57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027957607f821691505b602082108114156200029b57634e487b7160e01b600052602260045260246000fd5b50919050565b61092080620002b16000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122028b4a6ac1bf8359950d95561233648940f59f36ccadad5b0cf0e0158da49949464736f6c63430008020033", "bytecodeSha1": "ee7c840207398804b56837c21bc223a84f70f585", "compiler": { "evm_version": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "version": "0.8.2+commit.661d1103" }, "contractName": "TestCoin", "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": "608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122028b4a6ac1bf8359950d95561233648940f59f36ccadad5b0cf0e0158da49949464736f6c63430008020033", "deployedSourceMap": "120:314: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;246:47:92:-;;287:6;246: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;154:42:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;154:42:92;;;;;6594:427:12;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;202:37:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;202: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:12;6040:9;:25: