{
  "_format": "hh-sol-artifact-1",
  "contractName": "TestAlgebraSwapPay",
  "sourceName": "contracts/test/TestAlgebraSwapPay.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount0Owed",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1Owed",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "algebraMintCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "algebraSwapCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "int24",
          "name": "bottomTick",
          "type": "int24"
        },
        {
          "internalType": "int24",
          "name": "topTick",
          "type": "int24"
        },
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        },
        {
          "internalType": "uint256",
          "name": "pay0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "pay1",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount0Owed",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1Owed",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "resultLiquidity",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "zeroToOne",
          "type": "bool"
        },
        {
          "internalType": "uint160",
          "name": "price",
          "type": "uint160"
        },
        {
          "internalType": "int256",
          "name": "amountSpecified",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "pay0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "pay1",
          "type": "uint256"
        }
      ],
      "name": "swap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "zeroToOne",
          "type": "bool"
        },
        {
          "internalType": "uint160",
          "name": "price",
          "type": "uint160"
        },
        {
          "internalType": "int256",
          "name": "amountSpecified",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "pay0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "pay1",
          "type": "uint256"
        }
      ],
      "name": "swapSupportingFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506109a3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80633dd657c5116100505780633dd657c514610170578063a8fe8ac6146101ec578063f13cdf901461023e57600080fd5b80632c8958f61461006c5780633d22f1d8146100ea575b600080fd5b6100e86004803603606081101561008257600080fd5b8135916020810135918101906060810160408201356401000000008111156100a957600080fd5b8201836020820111156100bb57600080fd5b803590602001918460018302840111640100000000831117156100dd57600080fd5b509092509050610290565b005b610152600480360360e081101561010057600080fd5b506001600160a01b0381358116916020810135909116906040810135600290810b91606081013590910b906fffffffffffffffffffffffffffffffff6080820135169060a08101359060c00135610474565b60408051938452602084019290925282820152519081900360600190f35b6100e86004803603606081101561018657600080fd5b8135916020810135918101906060810160408201356401000000008111156101ad57600080fd5b8201836020820111156101bf57600080fd5b803590602001918460018302840111640100000000831117156101e157600080fd5b5090925090506105f8565b6100e8600480360360e081101561020257600080fd5b506001600160a01b0381358116916020810135821691604082013515159160608101359091169060808101359060a08101359060c0013561073f565b6100e8600480360360e081101561025457600080fd5b506001600160a01b0381358116916020810135821691604082013515159160608101359091169060808101359060a08101359060c0013561087e565b6000806000848460608110156102a557600080fd5b506001600160a01b03813516935060208101359250604001359050811561039857336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d602081101561031a57600080fd5b5051604080516323b872dd60e01b81526001600160a01b03868116600483015233602483015260448201869052915191909216916323b872dd91606480830192602092919082900301816000875af115801561037a573d6000803e3d6000fd5b505050506040513d602081101561039057600080fd5b5061046b9050565b801561046b57336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103dc573d6000803e3d6000fd5b505050506040513d60208110156103f257600080fd5b5051604080516323b872dd60e01b81526001600160a01b03868116600483015233602483015260448201859052915191909216916323b872dd91606480830192602092919082900301816000875af1158015610452573d6000803e3d6000fd5b505050506040513d602081101561046857600080fd5b50505b50505050505050565b6000806000896001600160a01b031663aafe29c0338b8b8b8b338c8c60405160200180846001600160a01b0316815260200183815260200182815260200193505050506040516020818303038152906040526040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b031681526020018560020b81526020018460020b8152602001836fffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561055a578181015183820152602001610542565b50505050905090810190601f1680156105875780820380516001836020036101000a031916815260200191505b509750505050505050506060604051808303816000875af11580156105b0573d6000803e3d6000fd5b505050506040513d60608110156105c657600080fd5b5080516020820151604090920151909c919b506fffffffffffffffffffffffffffffffff169950975050505050505050565b60008060008484606081101561060d57600080fd5b506001600160a01b0381351693506020810135925060400135905086156106fb57336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066c573d6000803e3d6000fd5b505050506040513d602081101561068257600080fd5b5051604080516323b872dd60e01b81526001600160a01b03868116600483015233602483015260448201869052915191909216916323b872dd91606480830192602092919082900301816000875af11580156106e2573d6000803e3d6000fd5b505050506040513d60208110156106f857600080fd5b50505b851561046b57336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103dc573d6000803e3d6000fd5b866001600160a01b0316639e4e0227338888878933898960405160200180846001600160a01b0316815260200183815260200182815260200193505050506040516020818303038152906040526040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b031681526020018515158152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108135781810151838201526020016107fb565b50505050905090810190601f1680156108405780820380516001836020036101000a031916815260200191505b5097505050505050505060408051808303816000875af1158015610868573d6000803e3d6000fd5b505050506040513d604081101561046857600080fd5b866001600160a01b031663128acb088787868833888860405160200180846001600160a01b0316815260200183815260200182815260200193505050506040516020818303038152906040526040518663ffffffff1660e01b815260040180866001600160a01b031681526020018515158152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561094257818101518382015260200161092a565b50505050905090810190601f16801561096f5780820380516001836020036101000a031916815260200191505b50965050505050505060408051808303816000875af1158015610868573d6000803e3d6000fdfea164736f6c6343000814000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c80633dd657c5116100505780633dd657c514610170578063a8fe8ac6146101ec578063f13cdf901461023e57600080fd5b80632c8958f61461006c5780633d22f1d8146100ea575b600080fd5b6100e86004803603606081101561008257600080fd5b8135916020810135918101906060810160408201356401000000008111156100a957600080fd5b8201836020820111156100bb57600080fd5b803590602001918460018302840111640100000000831117156100dd57600080fd5b509092509050610290565b005b610152600480360360e081101561010057600080fd5b506001600160a01b0381358116916020810135909116906040810135600290810b91606081013590910b906fffffffffffffffffffffffffffffffff6080820135169060a08101359060c00135610474565b60408051938452602084019290925282820152519081900360600190f35b6100e86004803603606081101561018657600080fd5b8135916020810135918101906060810160408201356401000000008111156101ad57600080fd5b8201836020820111156101bf57600080fd5b803590602001918460018302840111640100000000831117156101e157600080fd5b5090925090506105f8565b6100e8600480360360e081101561020257600080fd5b506001600160a01b0381358116916020810135821691604082013515159160608101359091169060808101359060a08101359060c0013561073f565b6100e8600480360360e081101561025457600080fd5b506001600160a01b0381358116916020810135821691604082013515159160608101359091169060808101359060a08101359060c0013561087e565b6000806000848460608110156102a557600080fd5b506001600160a01b03813516935060208101359250604001359050811561039857336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d602081101561031a57600080fd5b5051604080516323b872dd60e01b81526001600160a01b03868116600483015233602483015260448201869052915191909216916323b872dd91606480830192602092919082900301816000875af115801561037a573d6000803e3d6000fd5b505050506040513d602081101561039057600080fd5b5061046b9050565b801561046b57336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103dc573d6000803e3d6000fd5b505050506040513d60208110156103f257600080fd5b5051604080516323b872dd60e01b81526001600160a01b03868116600483015233602483015260448201859052915191909216916323b872dd91606480830192602092919082900301816000875af1158015610452573d6000803e3d6000fd5b505050506040513d602081101561046857600080fd5b50505b50505050505050565b6000806000896001600160a01b031663aafe29c0338b8b8b8b338c8c60405160200180846001600160a01b0316815260200183815260200182815260200193505050506040516020818303038152906040526040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b031681526020018560020b81526020018460020b8152602001836fffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561055a578181015183820152602001610542565b50505050905090810190601f1680156105875780820380516001836020036101000a031916815260200191505b509750505050505050506060604051808303816000875af11580156105b0573d6000803e3d6000fd5b505050506040513d60608110156105c657600080fd5b5080516020820151604090920151909c919b506fffffffffffffffffffffffffffffffff169950975050505050505050565b60008060008484606081101561060d57600080fd5b506001600160a01b0381351693506020810135925060400135905086156106fb57336001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066c573d6000803e3d6000fd5b505050506040513d602081101561068257600080fd5b5051604080516323b872dd60e01b81526001600160a01b03868116600483015233602483015260448201869052915191909216916323b872dd91606480830192602092919082900301816000875af11580156106e2573d6000803e3d6000fd5b505050506040513d60208110156106f857600080fd5b50505b851561046b57336001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103dc573d6000803e3d6000fd5b866001600160a01b0316639e4e0227338888878933898960405160200180846001600160a01b0316815260200183815260200182815260200193505050506040516020818303038152906040526040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b031681526020018515158152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108135781810151838201526020016107fb565b50505050905090810190601f1680156108405780820380516001836020036101000a031916815260200191505b5097505050505050505060408051808303816000875af1158015610868573d6000803e3d6000fd5b505050506040513d604081101561046857600080fd5b866001600160a01b031663128acb088787868833888860405160200180846001600160a01b0316815260200183815260200182815260200193505050506040516020818303038152906040526040518663ffffffff1660e01b815260040180866001600160a01b031681526020018515158152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561094257818101518382015260200161092a565b50505050905090810190601f16801561096f5780820380516001836020036101000a031916815260200191505b50965050505050505060408051808303816000875af1158015610868573d6000803e3d6000fdfea164736f6c6343000814000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
