{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20",
  "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name_",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbol_",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561000f575f80fd5b50604051610ccd380380610ccd83398101604081905261002e91610147565b600361003a8382610298565b5060046100478282610298565b505050610357565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100885761008861004f565b6040525050565b5f61009960405190565b90506100a58282610063565b919050565b5f6001600160401b038211156100c2576100c261004f565b601f19601f83011660200192915050565b8281835e505f910152565b5f6100f06100eb846100aa565b61008f565b90508281526020810184848401111561010a5761010a5f80fd5b6101158482856100d3565b509392505050565b5f82601f83011261012f5761012f5f80fd5b815161013f8482602086016100de565b949350505050565b5f806040838503121561015b5761015b5f80fd5b82516001600160401b03811115610173576101735f80fd5b61017f8582860161011d565b92505060208301516001600160401b0381111561019d5761019d5f80fd5b6101a98582860161011d565b9150509250929050565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806101db57607f821691505b6020821081036101ed576101ed6101b3565b50919050565b5f6102016101fe8381565b90565b92915050565b610210836101f3565b81545f1960089490940293841b1916921b91909117905550565b5f610236818484610207565b505050565b818110156102555761024d5f8261022a565b60010161023b565b5050565b601f821115610236575f818152602090206020601f8501048101602085101561027f5750805b6102916020601f86010483018261023b565b5050505050565b81516001600160401b038111156102b1576102b161004f565b6102bb82546101c7565b6102c6828285610259565b6020601f8311600181146102f8575f84156102e15750858201515b5f19600886021c198116600286021786555061034f565b5f85815260208120601f198616915b828110156103275788850151825560209485019460019092019101610307565b8683101561034257848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b610969806103645f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea26469706673582212202b67c68371b9eedd0aaed137f1f059f11824c24045e1ec694ebc756d346d2e0664736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea26469706673582212202b67c68371b9eedd0aaed137f1f059f11824c24045e1ec694ebc756d346d2e0664736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
