UNPKG

@etherisc/terraguard-poc-contracts

Version:

Etherisc's smart contracts for the terraguard poc

1,155 lines 208 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": "DECIMALS", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "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": "pure", "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": { "1": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/ERC20.sol", "2": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol", "3": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/extensions/IERC20Metadata.sol", "36": "contracts/token/Usdc.sol", "5": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Context.sol" }, "ast": { "absolutePath": "contracts/token/Usdc.sol", "exportedSymbols": { "Context": [ 6682 ], "ERC20": [ 4616 ], "IERC20": [ 4694 ], "IERC20Metadata": [ 3983 ], "Usdc": [ 2149 ] }, "id": 2150, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 2108, "literals": [ "solidity", "^", "0.8", ".2" ], "nodeType": "PragmaDirective", "src": "39:23:36" }, { "absolutePath": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2109, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2150, "sourceUnit": 4617, "src": "64:55:36", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 2110, "name": "ERC20", "nodeType": "IdentifierPath", "referencedDeclaration": 4616, "src": "138:5:36" }, "id": 2111, "nodeType": "InheritanceSpecifier", "src": "138:5:36" } ], "contractDependencies": [ 3983, 4616, 4694, 6682 ], "contractKind": "contract", "fullyImplemented": true, "id": 2149, "linearizedBaseContracts": [ 2149, 4616, 3983, 4694, 6682 ], "name": "Usdc", "nameLocation": "130:4:36", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "functionSelector": "a3f4df7e", "id": 2114, "mutability": "constant", "name": "NAME", "nameLocation": "271:4:36", "nodeType": "VariableDeclaration", "scope": 2149, "src": "248:48:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2112, "name": "string", "nodeType": "ElementaryTypeName", "src": "248:6:36", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "hexValue": "55534420436f696e202d2044554d4d59", "id": 2113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "278:18:36", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f1f77fb2c2c60421f2302e24a7e4cd9881e813fbb52a287a66078d21b2506554", "typeString": "literal_string \"USD Coin - DUMMY\"" }, "value": "USD Coin - DUMMY" }, "visibility": "public" }, { "constant": true, "functionSelector": "f76f8d78", "id": 2117, "mutability": "constant", "name": "SYMBOL", "nameLocation": "325:6:36", "nodeType": "VariableDeclaration", "scope": 2149, "src": "302:38:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2115, "name": "string", "nodeType": "ElementaryTypeName", "src": "302:6:36", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "hexValue": "55534443", "id": 2116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "334:6:36", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" }, "value": "USDC" }, "visibility": "public" }, { "constant": true, "functionSelector": "2e0f2625", "id": 2120, "mutability": "constant", "name": "DECIMALS", "nameLocation": "368:8:36", "nodeType": "VariableDeclaration", "scope": 2149, "src": "346:34:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 2118, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "346:5:36", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": { "hexValue": "36", "id": 2119, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "379:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, "visibility": "public" }, { "constant": true, "functionSelector": "2ff2e9dc", "id": 2125, "mutability": "constant", "name": "INITIAL_SUPPLY", "nameLocation": "411:14:36", "nodeType": "VariableDeclaration", "scope": 2149, "src": "387:47:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2121, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "387:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "commonType": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000" }, "id": 2124, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", "id": 2122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "428:2:36", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "3234", "id": 2123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "432:2:36", "typeDescriptions": { "typeIdentifier": "t_rational_24_by_1", "typeString": "int_const 24" }, "value": "24" }, "src": "428:6:36", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000" } }, "visibility": "public" }, { "body": { "id": 2138, "nodeType": "Block", "src": "487:86:36", "statements": [ { "expression": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 2133, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6672, "src": "516:10:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 2134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "516:12:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 2135, "name": "INITIAL_SUPPLY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2125, "src": "542:14:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 2132, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4433, "src": "497:5:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 2136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "497:69:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2137, "nodeType": "ExpressionStatement", "src": "497:69:36" } ] }, "id": 2139, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "id": 2128, "name": "NAME", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2114, "src": "469:4:36", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 2129, "name": "SYMBOL", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2117, "src": "475:6:36", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "id": 2130, "modifierName": { "id": 2127, "name": "ERC20", "nodeType": "IdentifierPath", "referencedDeclaration": 4616, "src": "463:5:36" }, "nodeType": "ModifierInvocation", "src": "463:19:36" } ], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 2126, "nodeType": "ParameterList", "parameters": [], "src": "452:2:36" }, "returnParameters": { "id": 2131, "nodeType": "ParameterList", "parameters": [], "src": "487:0:36" }, "scope": 2149, "src": "441:132:36", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ 4104 ], "body": { "id": 2147, "nodeType": "Block", "src": "635:32:36", "statements": [ { "expression": { "id": 2145, "name": "DECIMALS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2120, "src": "652:8:36", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "functionReturnParameters": 2144, "id": 2146, "nodeType": "Return", "src": "645:15:36" } ] }, "functionSelector": "313ce567", "id": 2148, "implemented": true, "kind": "function", "modifiers": [], "name": "decimals", "nameLocation": "588:8:36", "nodeType": "FunctionDefinition", "overrides": { "id": 2141, "nodeType": "OverrideSpecifier", "overrides": [], "src": "611:8:36" }, "parameters": { "id": 2140, "nodeType": "ParameterList", "parameters": [], "src": "596:2:36" }, "returnParameters": { "id": 2144, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2143, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2148, "src": "628:5:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 2142, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "628:5:36", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" } ], "src": "627:7:36" }, "scope": 2149, "src": "579:88:36", "stateMutability": "pure", "virtual": false, "visibility": "public" } ], "scope": 2150, "src": "121:548:36" } ], "src": "39:631:36" }, "bytecode": "60806040523480156200001157600080fd5b50604080518082018252601081526f55534420436f696e202d2044554d4d5960801b6020808301918252835180850190945260048452635553444360e01b908401528151919291620000669160039162000174565b5080516200007c90600490602084019062000174565b505050620000a462000093620000aa60201b60201c565b69d3c21bcecceda1000000620000ae565b6200027c565b3390565b6001600160a01b038216620001095760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200011d91906200021a565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b82805462000182906200023f565b90600052602060002090601f016020900481019282620001a65760008555620001f1565b82601f10620001c157805160ff1916838001178555620001f1565b82800160010185558215620001f1579182015b82811115620001f1578251825591602001919060010190620001d4565b50620001ff92915062000203565b5090565b5b80821115620001ff576000815560010162000204565b600082198211156200023a57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200025457607f821691505b602082108114156200027657634e487b7160e01b600052602260045260246000fd5b50919050565b61091a806200028c6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d7146101ef578063a9059cbb14610202578063dd62ed3e14610215578063f76f8d7814610228576100f5565b8063395093511461019257806370a08231146101a557806395d89b41146101b8578063a3f4df7e146101c0576100f5565b806323b872dd116100d357806323b872dd1461014d5780632e0f2625146101605780632ff2e9dc1461017a578063313ce5671461018b576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261024b565b60405161010f9190610832565b60405180910390f35b61012b610126366004610809565b6102dd565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b3660046107ce565b6102f5565b610168600681565b60405160ff909116815260200161010f565b61013f69d3c21bcecceda100000081565b6006610168565b61012b6101a0366004610809565b610319565b61013f6101b336600461077b565b61033b565b61010261035a565b6101026040518060400160405280601081526020016f55534420436f696e202d2044554d4d5960801b81525081565b61012b6101fd366004610809565b610369565b61012b610210366004610809565b6103e9565b61013f61022336600461079c565b6103f7565b610102604051806040016040528060048152602001635553444360e01b81525081565b60606003805461025a906108a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610286906108a9565b80156102d35780601f106102a8576101008083540402835291602001916102d3565b820191906000526020600020905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b6000336102eb818585610422565b5060019392505050565b600033610303858285610546565b61030e8585856105c0565b506001949350505050565b6000336102eb81858561032c83836103f7565b6103369190610885565b610422565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461025a906108a9565b6000338161037782866103f7565b9050838110156103dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61030e8286868403610422565b6000336102eb8185856105c0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d3565b6001600160a01b0382166104e55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061055284846103f7565b905060001981146105ba57818110156105ad5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103d3565b6105ba8484848403610422565b50505050565b6001600160a01b0383166106245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d3565b6001600160a01b0382166106865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103d3565b6001600160a01b038316600090815260208190526040902054818110156106fe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103d3565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105ba565b80356001600160a01b038116811461035557600080fd5b60006020828403121561078c578081fd5b61079582610764565b9392505050565b600080604083850312156107ae578081fd5b6107b783610764565b91506107c560208401610764565b90509250929050565b6000806000606084860312156107e2578081fd5b6107eb84610764565b92506107f960208501610764565b9150604084013590509250925092565b6000806040838503121561081b578182fd5b61082483610764565b946020939093013593505050565b6000602080835283518082850152825b8181101561085e57858101830151858201604001528201610842565b8181111561086f5783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108a457634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108bd57607f821691505b602082108114156108de57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220e2280e432eca18309a581c0d007a9ce41cd58b1bda93578c3d857933e845768c64736f6c63430008020033", "bytecodeSha1": "e17e668f595d36dd9e1b05f7f4823f1213401730", "compiler": { "evm_version": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "version": "0.8.2+commit.661d1103" }, "contractName": "Usdc", "coverageMap": { "branches": { "1": { "ERC20._approve": { "29": [ 10635, 10654, true ], "30": [ 10713, 10734, true ] }, "ERC20._spendAllowance": { "31": [ 11351, 11388, false ], "32": [ 11412, 11438, true ] }, "ERC20._transfer": { "33": [ 7599, 7617, true ], "34": [ 7677, 7693, true ], "35": [ 7848, 7869, true ] }, "ERC20.decreaseAllowance": { "28": [ 6809, 6844, true ] } }, "2": {}, "3": {}, "36": {}, "5": {} }, "statements": { "1": { "ERC20._approve": { "15": [ 10627, 10695 ], "16": [ 10705, 10773 ], "17": [ 10784, 10820 ], "18": [ 10830, 10867 ] }, "ERC20._spendAllowance": { "19": [ 11404, 11472 ], "20": [ 11514, 11565 ] }, "ERC20._transfer": { "21": [ 7591, 7659 ], "22": [ 7669, 7733 ], "23": [ 7840, 7912 ], "24": [ 7946, 7984 ], "25": [ 8161, 8184 ], "26": [ 8205, 8236 ], "27": [ 8247, 8284 ] }, "ERC20.allowance": { "14": [ 4082, 4116 ] }, "ERC20.approve": { "3": [ 4568, 4600 ], "4": [ 4610, 4621 ] }, "ERC20.balanceOf": { "9": [ 3499, 3524 ] }, "ERC20.decreaseAllowance": { "11": [ 6801, 6886 ], "12": [ 6920, 6980 ] }, "ERC20.increaseAllowance": { "8": [ 6013, 6077 ] }, "ERC20.name": { "1": [ 2233, 2245 ] }, "ERC20.symbol": { "10": [ 2446, 2460 ] }, "ERC20.totalSupply": { "0": [ 3322, 3341 ] }, "ERC20.transfer": { "13": [ 3860, 3888 ] }, "ERC20.transferFrom": { "5": [ 5373, 5411 ], "6": [ 5421, 5448 ], "7": [ 5458, 5469 ] } }, "2": {}, "3": {}, "36": {}, "5": { "Context._msgSender": { "2": [ 712, 729 ] } } } }, "dependencies": [ "OpenZeppelin/openzeppelin-contracts@4.8.2/Context", "OpenZeppelin/openzeppelin-contracts@4.8.2/ERC20", "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC20", "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC20Metadata" ], "deployedBytecode": "608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d7146101ef578063a9059cbb14610202578063dd62ed3e14610215578063f76f8d7814610228576100f5565b8063395093511461019257806370a08231146101a557806395d89b41146101b8578063a3f4df7e146101c0576100f5565b806323b872dd116100d357806323b872dd1461014d5780632e0f2625146101605780632ff2e9dc1461017a578063313ce5671461018b576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261024b565b60405161010f9190610832565b60405180910390f35b61012b610126366004610809565b6102dd565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b3660046107ce565b6102f5565b610168600681565b60405160ff909116815260200161010f565b61013f69d3c21bcecceda100000081565b6006610168565b61012b6101a0366004610809565b610319565b61013f6101b336600461077b565b61033b565b61010261035a565b6101026040518060400160405280601081526020016f55534420436f696e202d2044554d4d5960801b81525081565b61012b6101fd366004610809565b610369565b61012b610210366004610809565b6103e9565b61013f61022336600461079c565b6103f7565b610102604051806040016040528060048152602001635553444360e01b81525081565b60606003805461025a906108a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610286906108a9565b80156102d35780601f106102a8576101008083540402835291602001916102d3565b820191906000526020600020905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b6000336102eb818585610422565b5060019392505050565b600033610303858285610546565b61030e8585856105c0565b506001949350505050565b6000336102eb81858561032c83836103f7565b6103369190610885565b610422565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461025a906108a9565b6000338161037782866103f7565b9050838110156103dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61030e8286868403610422565b6000336102eb8185856105c0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d3565b6001600160a01b0382166104e55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061055284846103f7565b905060001981146105ba57818110156105ad5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103d3565b6105ba8484848403610422565b50505050565b6001600160a01b0383166106245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d3565b6001600160a01b0382166106865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103d3565b6001600160a01b038316600090815260208190526040902054818110156106fe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103d3565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105ba565b80356001600160a01b038116811461035557600080fd5b60006020828403121561078c578081fd5b61079582610764565b9392505050565b600080604083850312156107ae578081fd5b6107b783610764565b91506107c560208401610764565b90509250929050565b6000806000606084860312156107e2578081fd5b6107eb84610764565b92506107f960208501610764565b9150604084013590509250925092565b6000806040838503121561081b578182fd5b61082483610764565b946020939093013593505050565b6000602080835283518082850152825b8181101561085e57858101830151858201604001528201610842565b8181111561086f5783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108a457634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108bd57607f821691505b602082108114156108de57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220e2280e432eca18309a581c0d007a9ce41cd58b1bda93578c3d857933e845768c64736f6c63430008020033", "deployedSourceMap": "121:548:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:37;;1438:22;1420:41;;1408:2;1393:18;4431:197:1;1375:92:37;3242:106:1;3329:12;;3242:106;;;5015:25:37;;;5003:2;4988:18;3242:106:1;4970:76:37;5190:286:1;;;;;;:::i;:::-;;:::i;346:34:36:-;;379:1;346:34;;;;;5223:4:37;5211:17;;;5193:36;;5181:2;5166:18;346:34:36;5148:87:37;387:47:36;;428:6;387:47;;579:88;379:1;579:88;;5871:234:1;;;;;;:::i;:::-;;:::i;3406:125::-;;;;;;:::i;:::-;;:::i;2365:102::-;;;:::i;248:48:36:-;;;;;;;;;;;;;;;-1:-1:-1;;;248:48:36;;;;;6592:427:1;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;302:38:36:-;;;;;;;;;;;;;;;-1:-1:-1;;;302:38:36;;;;;2154:98:1;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:5;4568:32:1;719:10:5;4584:7:1;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:1;;4431:197;-1:-1:-1;;;4431:197:1:o;5190:286::-;5317:4;719:10:5;5373:38:1;5389:4;719:10:5;5404:6:1;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:1;;5190:286;-1:-1:-1;;;;5190:286:1:o;5871:234::-;5959:4;719:10:5;6013:64:1;719:10:5;6029:7:1;6066:10;6038:25;719:10:5;6029:7:1;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;3406:125::-;-1:-1:-1;;;;;3506:18:1;;3480:7;3506:18;;;;;;;;;;;3406:125;;;;:::o;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:5;6685:4:1;6766:25;719:10:5;6783:7:1;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:1;;4665:2:37;6801:85:1;;;4647:21:37;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:37;;;4787:35;4839:19;;6801:85:1;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:5;3860:28:1;719:10:5;3877:2:1;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:1;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:1;;10627:68;;;;-1:-1:-1;;;10627:68:1;;4260:2:37;10627:68:1;;;4242:21:37;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:37;;;4382:34;4433:19;;10627:68:1;4232:226:37;10627:68:1;-1:-1:-1;;;;;10713:21:1;;10705:68;;;;-1:-1:-1;;;10705:68:1;;2686:2:37;10705:68:1;;;2668:21:37;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:37;;;2808:32;2857:19;;10705:68:1;2658:224:37;10705:68:1;-1:-1:-1;;;;;10784:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;5015:25:37;;;10835:32:1;;4988:18:37;10835:32:1;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:1;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:1;;3089:2:37;11404:68:1;;;3071:21:37;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11404:68:1;3061:179:37;11404:68:1;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11155:441;;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:1;;7591:68;;;;-1:-1:-1;;;7591:68:1;;3854:2:37;7591:68:1;;;3836:21:37;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:37;;;3976:35;4028:19;;7591:68:1;3826:227:37;7591:68:1;-1:-1:-1;;;;;7677:16:1;;7669:64;;;;-1:-1:-1;;;7669:64:1;;2282:2:37;7669:64:1;;;2264:21:37;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:37;;;2404:33;2454:19;;7669:64:1;2254:225:37;7669:64:1;-1:-1:-1;;;;;7815:15:1;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:1;;3447:2:37;7840:72:1;;;3429:21:37;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:37;;;3569:36;3622:19;;7840:72:1;3419:228:37;7840:72:1;-1:-1:-1;;;;;7946:15:1;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;5015:25:37;;;8161:13:1;;8210:26;;4988:18:37;8210:26:1;;;;;;;8247:37;12180:121;14:173:37;82:20;;-1:-1:-1;;;;;131:31:37;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:37:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:37:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:37;2038:15;-1:-1:-1;;2034:29:37;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:37:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:37;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:37;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o", "language": "Solidity", "natspec": { "kind": "dev", "methods": { "allowance(address,address)": { "details": "See {IERC20-allowance}." }, "approve(address,uint256)": { "details": "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address." }, "balanceOf(address)": { "details": "See {IERC20-balanceOf}." }, "decimals()": { "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}." }, "decreaseAllowance(address,uint256)": { "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." }, "increaseAllowance(address,uint256)": { "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address." }, "name()": { "details": "Returns the name of the token." }, "symbol()": { "details": "Returns the symbol of the token, usually a shorter version of the name." }, "totalSupply()": { "details": "See {IERC20-totalSupply}." }, "transfer(address,uint256)": { "details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`." }, "transferFrom(address,address,uint256)": { "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`." } }, "version": 1 }, "offset": [ 121, 669 ], "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x228 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x39509351 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1C0 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x2E0F2625 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18B JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0x24B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x832 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x809 JUMP JUMPDEST PUSH2 0x2DD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MS