@ensuro/swaplibrary
Version:
Solidity Library that implements swap using different plaforms with a homogeneneous interface
27 lines (25 loc) • 18.9 kB
TypeScript
// This file was autogenerated by Hardhat, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
// biome-ignore format: see above
export interface SwapRouterMock$Type {
readonly _format: "hh3-artifact-1";
readonly contractName: "SwapRouterMock";
readonly sourceName: "contracts/mocks/SwapRouterMock.sol";
readonly abi: [{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AdminCannotBeZero","type":"error"},{"inputs":[],"name":"AmountCannotBeZero","type":"error"},{"inputs":[],"name":"DeadlineInThePast","type":"error"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"name":"InputAmountExceedsSlippage","type":"error"},{"inputs":[{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"NotEnoughBalance","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"}],"name":"OutputAmountLessThanSlippage","type":"error"},{"inputs":[],"name":"RecipientCannotBeZero","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"TokenCannotBeZero","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenIn","type":"address"},{"indexed":false,"internalType":"address","name":"tokenOut","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"PriceUpdated","type":"event"},{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"}],"internalType":"struct ISwapRouter.ExactInputParams","name":"","type":"tuple"}],"name":"exactInput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct ISwapRouter.ExactInputSingleParams","name":"params","type":"tuple"}],"name":"exactInputSingle","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct ISwapRouter.ExactOutputParams","name":"","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct ISwapRouter.ExactOutputSingleParams","name":"params","type":"tuple"}],"name":"exactOutputSingle","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"price_","type":"uint256"}],"name":"setCurrentPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"","type":"int256"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"uniswapV3SwapCallback","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}];
readonly bytecode: "0x6080604052348015600e575f5ffd5b50604051610d1e380380610d1e833981016040819052602b916056565b6001600160a01b038116605157604051636b35b1b760e01b815260040160405180910390fd5b506081565b5f602082840312156065575f5ffd5b81516001600160a01b0381168114607a575f5ffd5b9392505050565b610c908061008e5f395ff3fe60806040526004361061006e575f3560e01c8063db3e21981161004c578063db3e2198146100cb578063f28c0498146100b8578063f3fef3a3146100de578063fa461e33146100fd575f5ffd5b8063414bf389146100725780634562e01514610097578063c04b8d59146100b8575b5f5ffd5b610085610080366004610944565b61011c565b60405190815260200160405180910390f35b3480156100a2575f5ffd5b506100b66100b136600461097a565b6102ef565b005b6100856100c63660046109c4565b6103a9565b6100856100d9366004610944565b6103c3565b3480156100e9575f5ffd5b506100b66100f83660046109fe565b61061b565b348015610108575f5ffd5b506100b6610117366004610a26565b61067a565b5f8061012e6080840160608501610aa2565b6001600160a01b0316036101545760405162e18e7f60e71b815260040160405180910390fd5b428260800135101561017c576040516001623859e760e21b0319815260040160405180910390fd5b5f8260a00135116101a05760405163d11b25af60e01b815260040160405180910390fd5b5f610234670de0b6b3a764000082806101bc6020880188610aa2565b6001600160a01b03166001600160a01b031681526020019081526020015f205f8660200160208101906101ef9190610aa2565b6001600160a01b031681526020808201929092526040015f20549061021f9061021a90880188610aa2565b610693565b61022d9060a0880135610acf565b9190610710565b905061024961021a6040850160208601610aa2565b6102539082610afa565b91508160c08401358082101561028a5760405163296ba6e160e01b8152600481019290925260248201526044015b60405180910390fd5b506102b59050333060a08601356102a46020880188610aa2565b6001600160a01b03169291906107c1565b6102e96102c86080850160608601610aa2565b836102d96040870160208801610aa2565b6001600160a01b031691906107fd565b50919050565b6001600160a01b0383166103165760405163165a825360e21b815260040160405180910390fd5b6001600160a01b03821661033d5760405163165a825360e21b815260040160405180910390fd5b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905581519283528201929092529081018290527fb71c154260e8508e211e2ace194becba2c6d7e727c3ed292fe4787458969cd109060600160405180910390a1505050565b5f60405163d623472560e01b815260040160405180910390fd5b5f806103d56080840160608501610aa2565b6001600160a01b0316036103fb5760405162e18e7f60e71b815260040160405180910390fd5b4282608001351015610423576040516001623859e760e21b0319815260040160405180910390fd5b5f8260a00135116104475760405163d11b25af60e01b815260040160405180910390fd5b5f6104586040840160208501610aa2565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561049c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c09190610b19565b90508060a0840135808210156104f257604051634787a10360e11b815260048101929092526024820152604401610281565b505f905061058881806105086020880188610aa2565b6001600160a01b03166001600160a01b031681526020019081526020015f205f86602001602081019061053b9190610aa2565b6001600160a01b03166001600160a01b031681526020019081526020015f2054670de0b6b3a764000061057a87602001602081019061021a9190610aa2565b61022d9060a0890135610acf565b905061059a61021a6020860186610aa2565b6105a49082610afa565b92508260c0850135808211156105d657604051639a06025d60e01b815260048101929092526024820152604401610281565b506105ec90503330856102a46020890189610aa2565b6106146105ff6080860160608701610aa2565b60a08601356102d96040880160208901610aa2565b5050919050565b6001600160a01b0382166106425760405163165a825360e21b815260040160405180910390fd5b5f81116106625760405163165a825360e21b815260040160405180910390fd5b6106766001600160a01b03831633836107fd565b5050565b60405163d623472560e01b815260040160405180910390fd5b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f49190610b30565b6106ff906012610b50565b61070a90600a610c4c565b92915050565b5f5f5f61071d8686610837565b91509150815f036107415783818161073757610737610ae6565b04925050506107ba565b818411610758576107586003851502601118610853565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150505b9392505050565b6107cf848484846001610864565b6107f757604051635274afe760e01b81526001600160a01b0385166004820152602401610281565b50505050565b61080a83838360016108d1565b61083257604051635274afe760e01b81526001600160a01b0384166004820152602401610281565b505050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166108c05783831516156108b4573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b60405163a9059cbb60e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661092757838315161561091b573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f61010082840312156102e9575f5ffd5b5f6101008284031215610955575f5ffd5b6107ba8383610933565b80356001600160a01b0381168114610975575f5ffd5b919050565b5f5f5f6060848603121561098c575f5ffd5b6109958461095f565b92506109a36020850161095f565b929592945050506040919091013590565b5f60a082840312156102e9575f5ffd5b5f602082840312156109d4575f5ffd5b813567ffffffffffffffff8111156109ea575f5ffd5b6109f6848285016109b4565b949350505050565b5f5f60408385031215610a0f575f5ffd5b610a188361095f565b946020939093013593505050565b5f5f5f5f60608587031215610a39575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115610a5d575f5ffd5b8501601f81018713610a6d575f5ffd5b803567ffffffffffffffff811115610a83575f5ffd5b876020828401011115610a94575f5ffd5b949793965060200194505050565b5f60208284031215610ab2575f5ffd5b6107ba8261095f565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761070a5761070a610abb565b634e487b7160e01b5f52601260045260245ffd5b5f82610b1457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610b29575f5ffd5b5051919050565b5f60208284031215610b40575f5ffd5b815160ff811681146107ba575f5ffd5b60ff828116828216039081111561070a5761070a610abb565b6001815b6001841115610ba457808504811115610b8857610b88610abb565b6001841615610b9657908102905b60019390931c928002610b6d565b935093915050565b5f82610bba5750600161070a565b81610bc657505f61070a565b8160018114610bdc5760028114610be657610c02565b600191505061070a565b60ff841115610bf757610bf7610abb565b50506001821b61070a565b5060208310610133831016604e8410600b8410161715610c25575081810a61070a565b610c315f198484610b69565b805f1904821115610c4457610c44610abb565b029392505050565b5f6107ba60ff841683610bac56fea2646970667358221220f38b54aa2aa0f2a76945359d85af3f3ba28d8b1f13187617cb4fc3bd1da4748b64736f6c63430008230033";
readonly deployedBytecode: "0x60806040526004361061006e575f3560e01c8063db3e21981161004c578063db3e2198146100cb578063f28c0498146100b8578063f3fef3a3146100de578063fa461e33146100fd575f5ffd5b8063414bf389146100725780634562e01514610097578063c04b8d59146100b8575b5f5ffd5b610085610080366004610944565b61011c565b60405190815260200160405180910390f35b3480156100a2575f5ffd5b506100b66100b136600461097a565b6102ef565b005b6100856100c63660046109c4565b6103a9565b6100856100d9366004610944565b6103c3565b3480156100e9575f5ffd5b506100b66100f83660046109fe565b61061b565b348015610108575f5ffd5b506100b6610117366004610a26565b61067a565b5f8061012e6080840160608501610aa2565b6001600160a01b0316036101545760405162e18e7f60e71b815260040160405180910390fd5b428260800135101561017c576040516001623859e760e21b0319815260040160405180910390fd5b5f8260a00135116101a05760405163d11b25af60e01b815260040160405180910390fd5b5f610234670de0b6b3a764000082806101bc6020880188610aa2565b6001600160a01b03166001600160a01b031681526020019081526020015f205f8660200160208101906101ef9190610aa2565b6001600160a01b031681526020808201929092526040015f20549061021f9061021a90880188610aa2565b610693565b61022d9060a0880135610acf565b9190610710565b905061024961021a6040850160208601610aa2565b6102539082610afa565b91508160c08401358082101561028a5760405163296ba6e160e01b8152600481019290925260248201526044015b60405180910390fd5b506102b59050333060a08601356102a46020880188610aa2565b6001600160a01b03169291906107c1565b6102e96102c86080850160608601610aa2565b836102d96040870160208801610aa2565b6001600160a01b031691906107fd565b50919050565b6001600160a01b0383166103165760405163165a825360e21b815260040160405180910390fd5b6001600160a01b03821661033d5760405163165a825360e21b815260040160405180910390fd5b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905581519283528201929092529081018290527fb71c154260e8508e211e2ace194becba2c6d7e727c3ed292fe4787458969cd109060600160405180910390a1505050565b5f60405163d623472560e01b815260040160405180910390fd5b5f806103d56080840160608501610aa2565b6001600160a01b0316036103fb5760405162e18e7f60e71b815260040160405180910390fd5b4282608001351015610423576040516001623859e760e21b0319815260040160405180910390fd5b5f8260a00135116104475760405163d11b25af60e01b815260040160405180910390fd5b5f6104586040840160208501610aa2565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561049c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c09190610b19565b90508060a0840135808210156104f257604051634787a10360e11b815260048101929092526024820152604401610281565b505f905061058881806105086020880188610aa2565b6001600160a01b03166001600160a01b031681526020019081526020015f205f86602001602081019061053b9190610aa2565b6001600160a01b03166001600160a01b031681526020019081526020015f2054670de0b6b3a764000061057a87602001602081019061021a9190610aa2565b61022d9060a0890135610acf565b905061059a61021a6020860186610aa2565b6105a49082610afa565b92508260c0850135808211156105d657604051639a06025d60e01b815260048101929092526024820152604401610281565b506105ec90503330856102a46020890189610aa2565b6106146105ff6080860160608701610aa2565b60a08601356102d96040880160208901610aa2565b5050919050565b6001600160a01b0382166106425760405163165a825360e21b815260040160405180910390fd5b5f81116106625760405163165a825360e21b815260040160405180910390fd5b6106766001600160a01b03831633836107fd565b5050565b60405163d623472560e01b815260040160405180910390fd5b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f49190610b30565b6106ff906012610b50565b61070a90600a610c4c565b92915050565b5f5f5f61071d8686610837565b91509150815f036107415783818161073757610737610ae6565b04925050506107ba565b818411610758576107586003851502601118610853565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150505b9392505050565b6107cf848484846001610864565b6107f757604051635274afe760e01b81526001600160a01b0385166004820152602401610281565b50505050565b61080a83838360016108d1565b61083257604051635274afe760e01b81526001600160a01b0384166004820152602401610281565b505050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166108c05783831516156108b4573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b60405163a9059cbb60e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661092757838315161561091b573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f61010082840312156102e9575f5ffd5b5f6101008284031215610955575f5ffd5b6107ba8383610933565b80356001600160a01b0381168114610975575f5ffd5b919050565b5f5f5f6060848603121561098c575f5ffd5b6109958461095f565b92506109a36020850161095f565b929592945050506040919091013590565b5f60a082840312156102e9575f5ffd5b5f602082840312156109d4575f5ffd5b813567ffffffffffffffff8111156109ea575f5ffd5b6109f6848285016109b4565b949350505050565b5f5f60408385031215610a0f575f5ffd5b610a188361095f565b946020939093013593505050565b5f5f5f5f60608587031215610a39575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115610a5d575f5ffd5b8501601f81018713610a6d575f5ffd5b803567ffffffffffffffff811115610a83575f5ffd5b876020828401011115610a94575f5ffd5b949793965060200194505050565b5f60208284031215610ab2575f5ffd5b6107ba8261095f565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761070a5761070a610abb565b634e487b7160e01b5f52601260045260245ffd5b5f82610b1457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610b29575f5ffd5b5051919050565b5f60208284031215610b40575f5ffd5b815160ff811681146107ba575f5ffd5b60ff828116828216039081111561070a5761070a610abb565b6001815b6001841115610ba457808504811115610b8857610b88610abb565b6001841615610b9657908102905b60019390931c928002610b6d565b935093915050565b5f82610bba5750600161070a565b81610bc657505f61070a565b8160018114610bdc5760028114610be657610c02565b600191505061070a565b60ff841115610bf757610bf7610abb565b50506001821b61070a565b5060208310610133831016604e8410600b8410161715610c25575081810a61070a565b610c315f198484610b69565b805f1904821115610c4457610c44610abb565b029392505050565b5f6107ba60ff841683610bac56fea2646970667358221220f38b54aa2aa0f2a76945359d85af3f3ba28d8b1f13187617cb4fc3bd1da4748b64736f6c63430008230033";
readonly linkReferences: {};
readonly deployedLinkReferences: {};
readonly immutableReferences: {};
readonly inputSourceName: "project/contracts/mocks/SwapRouterMock.sol";
readonly buildInfoId: "solc-0_8_35-3c6720e352a8805a57f3d5d8111ba91dcd52bec9";
};
import "hardhat/types/artifacts";
declare module "hardhat/types/artifacts" {
interface ArtifactMap {
["SwapRouterMock"]: SwapRouterMock$Type;
["contracts/mocks/SwapRouterMock.sol:SwapRouterMock"]: SwapRouterMock$Type;
}
}