{
  "_format": "hh-sol-artifact-1",
  "contractName": "MockERC20",
  "sourceName": "contracts/test/oracles/MockERC20.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbol",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "decimals",
          "type": "uint8"
        }
      ],
      "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": "0x608060405234801561000f575f80fd5b50604051610f69380380610f6983398101604081905261002e91610237565b8282600361003c838261038b565b506004610049828261038b565b505050610072338260ff16600a610060919061056d565b61006d90620186a061057a565b61007a565b5050506105f3565b6001600160a01b0382166100a95760405162461bcd60e51b81526004016100a090610599565b60405180910390fd5b8060025f8282546100ba91906105d4565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061010b9085906105e7565b60405180910390a35b5050565b505050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156101565761015661011d565b6040525050565b5f61016760405190565b90506101738282610131565b919050565b5f6001600160401b038211156101905761019061011d565b601f19601f83011660200192915050565b8281835e505f910152565b5f6101be6101b984610178565b61015d565b9050828152602081018484840111156101d8576101d85f80fd5b6101e38482856101a1565b509392505050565b5f82601f8301126101fd576101fd5f80fd5b815161020d8482602086016101ac565b949350505050565b60ff81168114610223575f80fd5b50565b805161023181610215565b92915050565b5f805f6060848603121561024c5761024c5f80fd5b83516001600160401b03811115610264576102645f80fd5b610270868287016101eb565b93505060208401516001600160401b0381111561028e5761028e5f80fd5b61029a868287016101eb565b92505060406102ab86828701610226565b9150509250925092565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806102dd57607f821691505b6020821081036102ef576102ef6102b5565b50919050565b5f6102316103008381565b90565b61030c836102f5565b81545f1960089490940293841b1916921b91909117905550565b5f610118818484610303565b81811015610114576103445f82610326565b600101610332565b601f821115610118575f818152602090206020601f850104810160208510156103725750805b6103846020601f860104830182610332565b5050505050565b81516001600160401b038111156103a4576103a461011d565b6103ae82546102c9565b6103b982828561034c565b6020601f8311600181146103eb575f84156103d45750858201515b5f19600886021c1981166002860217865550610442565b5f85815260208120601f198616915b8281101561041a57888501518255602094850194600190920191016103fa565b8683101561043557848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b634e487b7160e01b5f52601160045260245ffd5b80825b600185111561049d5780860481111561047c5761047c61044a565b600185161561048a57908102905b80026104968560011c90565b9450610461565b94509492505050565b5f826104b457506001610566565b816104c057505f610566565b81600181146104d657600281146104e05761050d565b6001915050610566565b60ff8411156104f1576104f161044a565b8360020a9150848211156105075761050761044a565b50610566565b5060208310610133831016604e8410600b8410161715610540575081810a8381111561053b5761053b61044a565b610566565b61054d848484600161045e565b925090508184048111156105635761056361044a565b81025b9392505050565b5f6105665f1984846104a6565b8181028082158382048514176105925761059261044a565b5092915050565b6020808252810161023181601f81527f45524332303a206d696e7420746f20746865207a65726f206164647265737300602082015260400190565b808201808211156102315761023161044a565b81815260208101610231565b610969806106005f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea264697066735822122076cc94c5d816cad720d86bbf003c01761f0eb80b36246b47c4cca119453ae2a464736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea264697066735822122076cc94c5d816cad720d86bbf003c01761f0eb80b36246b47c4cca119453ae2a464736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
