{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20Adapter",
  "sourceName": "contracts/adapters/ERC20Adapter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "name": "AmountOrIDInvalid",
      "type": "error"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "wallet",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "bytes4",
              "name": "kind",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "internalType": "struct Party",
          "name": "party",
          "type": "tuple"
        }
      ],
      "name": "hasAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "wallet",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "bytes4",
              "name": "kind",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "internalType": "struct Party",
          "name": "party",
          "type": "tuple"
        }
      ],
      "name": "hasBalance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "wallet",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "bytes4",
              "name": "kind",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "internalType": "struct Party",
          "name": "party",
          "type": "tuple"
        }
      ],
      "name": "hasValidParams",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "interfaceId",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506108a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100aa578063a64d0cd4146100bf578063d1190df91461011757600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a3660046106e9565b61012a565b60405190151581526020015b60405180910390f35b61007f6100a23660046106e9565b606001351590565b6100bd6100b836600461072a565b610205565b005b6100e67f36372b070000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f6101253660046106e9565b61029b565b600060808201356101416040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e6101696020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201523360248201526044015b602060405180830381865afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906107a3565b101592915050565b8115610272576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f696400000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61029473ffffffffffffffffffffffffffffffffffffffff821686868661032b565b5050505050565b600060808201356102b26040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff166370a082316102da6020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016101bc565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103c09085906103c6565b50505050565b6000610428826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104da9092919063ffffffff16565b905080516000148061044957508080602001905181019061044991906107bc565b6104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610269565b505050565b60606104e984846000856104f1565b949350505050565b606082471015610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610269565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105ac9190610802565b60006040518083038185875af1925050503d80600081146105e9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ee565b606091505b50915091506105ff8783838761060a565b979650505050505050565b606083156106a05782516000036106995773ffffffffffffffffffffffffffffffffffffffff85163b610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610269565b50816104e9565b6104e983838151156106b55781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610269919061081e565b600060a082840312156106fb57600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b919050565b600080600080600060a0868803121561074257600080fd5b61074b86610701565b945061075960208701610701565b9350604086013592506060860135915061077560808701610701565b90509295509295909350565b60006020828403121561079357600080fd5b61079c82610701565b9392505050565b6000602082840312156107b557600080fd5b5051919050565b6000602082840312156107ce57600080fd5b8151801515811461079c57600080fd5b60005b838110156107f95781810151838201526020016107e1565b50506000910152565b600082516108148184602087016107de565b9190910192915050565b602081526000825180602084015261083d8160408501602087016107de565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122098824c7b4dca421a6b4528a0a00cade84e24f0241b0feb7f5cbf478d9b8657a364736f6c63430008170033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100aa578063a64d0cd4146100bf578063d1190df91461011757600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a3660046106e9565b61012a565b60405190151581526020015b60405180910390f35b61007f6100a23660046106e9565b606001351590565b6100bd6100b836600461072a565b610205565b005b6100e67f36372b070000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f6101253660046106e9565b61029b565b600060808201356101416040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e6101696020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201523360248201526044015b602060405180830381865afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906107a3565b101592915050565b8115610272576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f696400000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61029473ffffffffffffffffffffffffffffffffffffffff821686868661032b565b5050505050565b600060808201356102b26040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff166370a082316102da6020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016101bc565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103c09085906103c6565b50505050565b6000610428826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104da9092919063ffffffff16565b905080516000148061044957508080602001905181019061044991906107bc565b6104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610269565b505050565b60606104e984846000856104f1565b949350505050565b606082471015610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610269565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105ac9190610802565b60006040518083038185875af1925050503d80600081146105e9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ee565b606091505b50915091506105ff8783838761060a565b979650505050505050565b606083156106a05782516000036106995773ffffffffffffffffffffffffffffffffffffffff85163b610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610269565b50816104e9565b6104e983838151156106b55781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610269919061081e565b600060a082840312156106fb57600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b919050565b600080600080600060a0868803121561074257600080fd5b61074b86610701565b945061075960208701610701565b9350604086013592506060860135915061077560808701610701565b90509295509295909350565b60006020828403121561079357600080fd5b61079c82610701565b9392505050565b6000602082840312156107b557600080fd5b5051919050565b6000602082840312156107ce57600080fd5b8151801515811461079c57600080fd5b60005b838110156107f95781810151838201526020016107e1565b50506000910152565b600082516108148184602087016107de565b9190910192915050565b602081526000825180602084015261083d8160408501602087016107de565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122098824c7b4dca421a6b4528a0a00cade84e24f0241b0feb7f5cbf478d9b8657a364736f6c63430008170033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
