{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20",
  "sourceName": "contracts/interchain-token/ERC20.sol",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidAccount",
      "type": "error"
    },
    {
      "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": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "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": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b506105288061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146100f2578063a457c2d714610112578063a9059cbb14610125578063dd62ed3e1461013857600080fd5b8063095ea7b31461008d57806318160ddd146100b557806323b872dd146100cc57806339509351146100df575b600080fd5b6100a061009b3660046103e1565b610163565b60405190151581526020015b60405180910390f35b6100be60025481565b6040519081526020016100ac565b6100a06100da36600461040b565b61017a565b6100a06100ed3660046103e1565b6101d1565b6100be610100366004610448565b60006020819052908152604090205481565b6100a06101203660046103e1565b610208565b6100a06101333660046103e1565b61023f565b6100be61014636600461046a565b600160209081526000928352604080842090915290825290205481565b600061017033848461024c565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146101bb576101bb85336101b686856104cc565b61024c565b6101c68585856102e9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916101709185906101b69086906104df565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916101709185906101b69086906104cc565b60006101703384846102e9565b6001600160a01b038316158061026957506001600160a01b038216155b1561028757604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158061030657506001600160a01b038216155b1561032457604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383166000908152602081905260408120805483929061034c9084906104cc565b90915550506001600160a01b038216600090815260208190526040812080548392906103799084906104df565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102dc91815260200190565b80356001600160a01b03811681146103dc57600080fd5b919050565b600080604083850312156103f457600080fd5b6103fd836103c5565b946020939093013593505050565b60008060006060848603121561042057600080fd5b610429846103c5565b9250610437602085016103c5565b929592945050506040919091013590565b60006020828403121561045a57600080fd5b610463826103c5565b9392505050565b6000806040838503121561047d57600080fd5b610486836103c5565b9150610494602084016103c5565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101745761017461049d565b808201808211156101745761017461049d56fea264697066735822122056ed9256cef87f996f3f8d631c60c7fb487d4caa9e7fc8531bf65f7119b257df64736f6c634300081b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146100f2578063a457c2d714610112578063a9059cbb14610125578063dd62ed3e1461013857600080fd5b8063095ea7b31461008d57806318160ddd146100b557806323b872dd146100cc57806339509351146100df575b600080fd5b6100a061009b3660046103e1565b610163565b60405190151581526020015b60405180910390f35b6100be60025481565b6040519081526020016100ac565b6100a06100da36600461040b565b61017a565b6100a06100ed3660046103e1565b6101d1565b6100be610100366004610448565b60006020819052908152604090205481565b6100a06101203660046103e1565b610208565b6100a06101333660046103e1565b61023f565b6100be61014636600461046a565b600160209081526000928352604080842090915290825290205481565b600061017033848461024c565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146101bb576101bb85336101b686856104cc565b61024c565b6101c68585856102e9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916101709185906101b69086906104df565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916101709185906101b69086906104cc565b60006101703384846102e9565b6001600160a01b038316158061026957506001600160a01b038216155b1561028757604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158061030657506001600160a01b038216155b1561032457604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383166000908152602081905260408120805483929061034c9084906104cc565b90915550506001600160a01b038216600090815260208190526040812080548392906103799084906104df565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102dc91815260200190565b80356001600160a01b03811681146103dc57600080fd5b919050565b600080604083850312156103f457600080fd5b6103fd836103c5565b946020939093013593505050565b60008060006060848603121561042057600080fd5b610429846103c5565b9250610437602085016103c5565b929592945050506040919091013590565b60006020828403121561045a57600080fd5b610463826103c5565b9392505050565b6000806040838503121561047d57600080fd5b610486836103c5565b9150610494602084016103c5565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101745761017461049d565b808201808211156101745761017461049d56fea264697066735822122056ed9256cef87f996f3f8d631c60c7fb487d4caa9e7fc8531bf65f7119b257df64736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
