{
  "_format": "hh-sol-artifact-1",
  "contractName": "MockToken",
  "sourceName": "contracts/test/MockToken.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": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "faucet",
      "outputs": [],
      "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": "0x60a060405234801561001057600080fd5b50604051610edc380380610edc83398101604081905261002f91610197565b8282600361003d8382610300565b50600461004a8282610300565b50505060ff16608052506103c39050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156100965761009661005b565b6040525050565b60006100a860405190565b90506100b48282610071565b919050565b60006001600160401b038211156100d2576100d261005b565b601f19601f83011660200192915050565b60005b838110156100fe5781810151838201526020016100e6565b50506000910152565b600061011a610115846100b9565b61009d565b90508281526020810184848401111561013557610135600080fd5b6101408482856100e3565b509392505050565b600082601f83011261015c5761015c600080fd5b815161016c848260208601610107565b949350505050565b60ff8116811461018357600080fd5b50565b805161019181610174565b92915050565b6000806000606084860312156101af576101af600080fd5b83516001600160401b038111156101c8576101c8600080fd5b6101d486828701610148565b93505060208401516001600160401b038111156101f3576101f3600080fd5b6101ff86828701610148565b925050604061021086828701610186565b9150509250925092565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061024457607f821691505b6020821081036102565761025661021a565b50919050565b60006101916102688381565b90565b6102748361025c565b815460001960089490940293841b1916921b91909117905550565b600061029c81848461026b565b505050565b818110156102bc576102b460008261028f565b6001016102a1565b5050565b601f82111561029c576000818152602090206020601f850104810160208510156102e75750805b6102f96020601f8601048301826102a1565b5050505050565b81516001600160401b038111156103195761031961005b565b6103238254610230565b61032e8282856102c0565b6020601f831160018114610362576000841561034a5750858201515b600019600886021c19811660028602178655506103bb565b600085815260208120601f198616915b828110156103925788850151825560209485019460019092019101610372565b868310156103ae5784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b608051610afe6103de600039600061011d0152610afe6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635791589711610071578063579158971461015c57806370a082311461017157806395d89b411461019a578063a457c2d7146101a2578063a9059cbb146101b5578063dd62ed3e146101c857600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100f757806323b872dd14610108578063313ce5671461011b5780633950935114610149575b600080fd5b6100c16101db565b6040516100ce9190610642565b60405180910390f35b6100ea6100e536600461069b565b61026d565b6040516100ce91906106e2565b6002545b6040516100ce91906106f6565b6100ea610116366004610704565b610287565b7f00000000000000000000000000000000000000000000000000000000000000006040516100ce919061075d565b6100ea61015736600461069b565b6102ab565b61016f61016a36600461076b565b6102cd565b005b6100fb61017f366004610794565b6001600160a01b031660009081526020819052604090205490565b6100c16102da565b6100ea6101b036600461069b565b6102e9565b6100ea6101c336600461069b565b61032f565b6100fb6101d63660046107b5565b61033d565b6060600380546101ea906107fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610216906107fe565b80156102635780601f1061023857610100808354040283529160200191610263565b820191906000526020600020905b81548152906001019060200180831161024657829003601f168201915b5050505050905090565b60003361027b818585610368565b60019150505b92915050565b60003361029585828561041c565b6102a0858585610466565b506001949350505050565b60003361027b8185856102be838361033d565b6102c89190610840565b610368565b6102d73382610556565b50565b6060600480546101ea906107fe565b600033816102f7828661033d565b9050838110156103225760405162461bcd60e51b815260040161031990610898565b60405180910390fd5b6102a08286868403610368565b60003361027b818585610466565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661038e5760405162461bcd60e51b8152600401610319906108e9565b6001600160a01b0382166103b45760405162461bcd60e51b815260040161031990610938565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040f9085906106f6565b60405180910390a3505050565b6000610428848461033d565b9050600019811461046057818110156104535760405162461bcd60e51b81526004016103199061097f565b6104608484848403610368565b50505050565b6001600160a01b03831661048c5760405162461bcd60e51b8152600401610319906109d1565b6001600160a01b0382166104b25760405162461bcd60e51b815260040161031990610a21565b6001600160a01b038316600090815260208190526040902054818110156104eb5760405162461bcd60e51b815260040161031990610a74565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105499086906106f6565b60405180910390a3610460565b6001600160a01b03821661057c5760405162461bcd60e51b815260040161031990610ab8565b806002600082825461058e9190610840565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105e09085906106f6565b60405180910390a35050565b60005b838110156106075781810151838201526020016105ef565b50506000910152565b600061061a825190565b8084526020840193506106318185602086016105ec565b601f01601f19169290920192915050565b602080825281016106538184610610565b9392505050565b60006001600160a01b038216610281565b6106748161065a565b81146102d757600080fd5b80356102818161066b565b80610674565b80356102818161068a565b600080604083850312156106b1576106b1600080fd5b60006106bd858561067f565b92505060206106ce85828601610690565b9150509250929050565b8015155b82525050565b6020810161028182846106d8565b806106dc565b6020810161028182846106f0565b60008060006060848603121561071c5761071c600080fd5b6000610728868661067f565b93505060206107398682870161067f565b925050604061074a86828701610690565b9150509250925092565b60ff81166106dc565b602081016102818284610754565b60006020828403121561078057610780600080fd5b600061078c8484610690565b949350505050565b6000602082840312156107a9576107a9600080fd5b600061078c848461067f565b600080604083850312156107cb576107cb600080fd5b60006107d7858561067f565b92505060206106ce8582860161067f565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061081257607f821691505b602082108103610824576108246107e8565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102815761028161082a565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161028181610853565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610891565b60208082528101610281816108a8565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610891565b60208082528101610281816108f9565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161028181610948565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610891565b602080825281016102818161098f565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610891565b60208082528101610281816109e1565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610891565b6020808252810161028181610a31565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610978565b6020808252810161028181610a8456fea2646970667358221220cd93abaf5b1062a1c17d8473a852bd4617a837016e3e5f38eebd97d8e82be60864736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80635791589711610071578063579158971461015c57806370a082311461017157806395d89b411461019a578063a457c2d7146101a2578063a9059cbb146101b5578063dd62ed3e146101c857600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100f757806323b872dd14610108578063313ce5671461011b5780633950935114610149575b600080fd5b6100c16101db565b6040516100ce9190610642565b60405180910390f35b6100ea6100e536600461069b565b61026d565b6040516100ce91906106e2565b6002545b6040516100ce91906106f6565b6100ea610116366004610704565b610287565b7f00000000000000000000000000000000000000000000000000000000000000006040516100ce919061075d565b6100ea61015736600461069b565b6102ab565b61016f61016a36600461076b565b6102cd565b005b6100fb61017f366004610794565b6001600160a01b031660009081526020819052604090205490565b6100c16102da565b6100ea6101b036600461069b565b6102e9565b6100ea6101c336600461069b565b61032f565b6100fb6101d63660046107b5565b61033d565b6060600380546101ea906107fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610216906107fe565b80156102635780601f1061023857610100808354040283529160200191610263565b820191906000526020600020905b81548152906001019060200180831161024657829003601f168201915b5050505050905090565b60003361027b818585610368565b60019150505b92915050565b60003361029585828561041c565b6102a0858585610466565b506001949350505050565b60003361027b8185856102be838361033d565b6102c89190610840565b610368565b6102d73382610556565b50565b6060600480546101ea906107fe565b600033816102f7828661033d565b9050838110156103225760405162461bcd60e51b815260040161031990610898565b60405180910390fd5b6102a08286868403610368565b60003361027b818585610466565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661038e5760405162461bcd60e51b8152600401610319906108e9565b6001600160a01b0382166103b45760405162461bcd60e51b815260040161031990610938565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040f9085906106f6565b60405180910390a3505050565b6000610428848461033d565b9050600019811461046057818110156104535760405162461bcd60e51b81526004016103199061097f565b6104608484848403610368565b50505050565b6001600160a01b03831661048c5760405162461bcd60e51b8152600401610319906109d1565b6001600160a01b0382166104b25760405162461bcd60e51b815260040161031990610a21565b6001600160a01b038316600090815260208190526040902054818110156104eb5760405162461bcd60e51b815260040161031990610a74565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105499086906106f6565b60405180910390a3610460565b6001600160a01b03821661057c5760405162461bcd60e51b815260040161031990610ab8565b806002600082825461058e9190610840565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105e09085906106f6565b60405180910390a35050565b60005b838110156106075781810151838201526020016105ef565b50506000910152565b600061061a825190565b8084526020840193506106318185602086016105ec565b601f01601f19169290920192915050565b602080825281016106538184610610565b9392505050565b60006001600160a01b038216610281565b6106748161065a565b81146102d757600080fd5b80356102818161066b565b80610674565b80356102818161068a565b600080604083850312156106b1576106b1600080fd5b60006106bd858561067f565b92505060206106ce85828601610690565b9150509250929050565b8015155b82525050565b6020810161028182846106d8565b806106dc565b6020810161028182846106f0565b60008060006060848603121561071c5761071c600080fd5b6000610728868661067f565b93505060206107398682870161067f565b925050604061074a86828701610690565b9150509250925092565b60ff81166106dc565b602081016102818284610754565b60006020828403121561078057610780600080fd5b600061078c8484610690565b949350505050565b6000602082840312156107a9576107a9600080fd5b600061078c848461067f565b600080604083850312156107cb576107cb600080fd5b60006107d7858561067f565b92505060206106ce8582860161067f565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061081257607f821691505b602082108103610824576108246107e8565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102815761028161082a565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161028181610853565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610891565b60208082528101610281816108a8565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610891565b60208082528101610281816108f9565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161028181610948565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610891565b602080825281016102818161098f565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610891565b60208082528101610281816109e1565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610891565b6020808252810161028181610a31565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610978565b6020808252810161028181610a8456fea2646970667358221220cd93abaf5b1062a1c17d8473a852bd4617a837016e3e5f38eebd97d8e82be60864736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
