@ensuro/swaplibrary
Version:
Solidity Library that implements swap using different plaforms with a homogeneneous interface
27 lines (25 loc) • 16.7 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 CurveRoutesTesterMock$Type {
readonly _format: "hh3-artifact-1";
readonly contractName: "CurveRoutesTesterMock";
readonly sourceName: "contracts/mocks/CurveRoutesTesterMock.sol";
readonly abi: [{"inputs":[],"name":"AtLeastOneRoute","type":"error"},{"inputs":[],"name":"CurveRouterCantBeZero","type":"error"},{"inputs":[],"name":"InvalidLength","type":"error"},{"inputs":[{"components":[{"internalType":"address[11]","name":"route","type":"address[11]"},{"internalType":"uint256[5][5]","name":"swapParams","type":"uint256[5][5]"},{"internalType":"address[5]","name":"pools","type":"address[5]"}],"internalType":"struct CurveRoutes.CurveRoute","name":"route","type":"tuple"}],"name":"InvalidRoute","type":"error"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"}],"name":"RouteNotFound","type":"error"},{"inputs":[{"internalType":"uint8","name":"nSwaps","type":"uint8"}],"name":"TooManySwaps","type":"error"},{"inputs":[{"internalType":"bytes","name":"curveRoutes","type":"bytes"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"}],"name":"findRoute","outputs":[{"internalType":"contract ICurveRouter","name":"router","type":"address"},{"components":[{"internalType":"address[11]","name":"route","type":"address[11]"},{"internalType":"uint256[5][5]","name":"swapParams","type":"uint256[5][5]"},{"internalType":"address[5]","name":"pools","type":"address[5]"}],"internalType":"struct CurveRoutes.CurveRoute","name":"route","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"curveRoutes","type":"bytes"},{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"readRoute","outputs":[{"internalType":"uint8","name":"nSwaps","type":"uint8"},{"components":[{"internalType":"address[11]","name":"route","type":"address[11]"},{"internalType":"uint256[5][5]","name":"swapParams","type":"uint256[5][5]"},{"internalType":"address[5]","name":"pools","type":"address[5]"}],"internalType":"struct CurveRoutes.CurveRoute","name":"route","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"nSwaps","type":"uint8"}],"name":"routeSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"curveRoutes","type":"bytes"}],"name":"validate","outputs":[],"stateMutability":"pure","type":"function"}];
readonly bytecode: "0x6080604052348015600e575f5ffd5b50610d068061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80634eb942591461004e578063588f4ff4146100785780637ea71c9b14610099578063c16e50ef146100ba575b5f5ffd5b61006161005c366004610a38565b6100cf565b60405161006f929190610b5a565b60405180910390f35b61008b610086366004610b7f565b6100f0565b60405161006f929190610bc1565b6100ac6100a7366004610bd9565b61010e565b60405190815260200161006f565b6100cd6100c8366004610bf9565b61011e565b005b5f6100d86108e2565b6100e385858561012a565b915091505b935093915050565b5f6100f96108e2565b610103848461026d565b915091509250929050565b5f61011882610568565b92915050565b610127816105c5565b50565b5f6101336108e2565b61013d855f610803565b91505f61015561014e601483610c47565b8790610867565b90505f6001610165601483610c47565b61016f9190610c47565b90505f5b8260ff1681101561023b575f6101898984610867565b90506001600160a01b0388166101aa6101a3600186610c47565b8b90610803565b6001600160a01b031614801561020157506001600160a01b0387166101f66101d660ff84166014610c5a565b6101e1906002610c5a565b6101ec600187610c47565b6101a39190610c47565b6001600160a01b0316145b1561021d57610210898461026d565b95506100e8945050505050565b61022681610568565b6102309084610c47565b925050600101610173565b50604051638c9aec7b60e01b81526001600160a01b038088166004830152861660248201526044015b60405180910390fd5b5f6102766108e2565b6102808484610867565b915060058260ff1611156102ac57604051635b030b5960e11b815260ff83166004820152602401610264565b5f5b6102b7836108c2565b811015610316576102e86102cc601483610c5a565b6102d7600187610c47565b6102e19190610c47565b8690610803565b825182600b81106102fb576102fb610c71565b6001600160a01b0390921660209290920201526001016102ae565b506014610322836108c2565b61032c9190610c5a565b610337906001610c47565b6103419084610c47565b92505f5b8260ff168110156104e45761037a61035e600183610c5a565b610369906005610c5a565b6103739086610c47565b8690610867565b60ff168260200151826005811061039357610393610c71565b6020020151526103c76103a7600183610c5a565b6103b2906005610c5a565b6103bc9086610c47565b610373906001610c47565b60ff16826020015182600581106103e0576103e0610c71565b60200201516001602002015261041a6103fa600183610c5a565b610405906005610c5a565b61040f9086610c47565b610373906002610c47565b60ff168260200151826005811061043357610433610c71565b60200201516040015261046a61044a600183610c5a565b610455906005610c5a565b61045f9086610c47565b610373906003610c47565b60ff168260200151826005811061048357610483610c71565b6020020151606001526104ba61049a600183610c5a565b6104a5906005610c5a565b6104af9086610c47565b610373906004610c47565b60ff16826020015182600581106104d3576104d3610c71565b602002015160800152600101610345565b506104f3600160ff8416610c5a565b6104fe906005610c5a565b6105089084610c47565b92505f5b8260ff168110156105605761052f610525601483610c5a565b6102e19086610c47565b8260400151826005811061054557610545610c71565b6001600160a01b03909216602092909202015260010161050c565b509250929050565b5f610577601460ff8416610c5a565b6001610584846005610c85565b60ff166105919190610c5a565b601461059c856108c2565b6105a69190610c5a565b6105b1906001610c47565b6105bb9190610c47565b6101189190610c47565b5f6105d08282610803565b90506001600160a01b0381166105f95760405163e368363760e01b815260040160405180910390fd5b5f61060f610608601483610c47565b8490610867565b90508060ff165f03610634576040516301ec987f60e31b815260040160405180910390fd5b5f6001610642601483610c47565b61064c9190610c47565b90505f5b8260ff168110156107db575f5f610667878561026d565b915091505f5b8260ff1681101561070e5781515f90610687836002610c5a565b600b811061069757610697610c71565b60200201516001600160a01b031614806106e6575081515f906106bb836002610c5a565b6106c6906001610c47565b600b81106106d6576106d6610c71565b60200201516001600160a01b0316145b156107065781604051635875b11160e01b81526004016102649190610ca8565b60010161066d565b5080515f9061071e846002610c85565b60ff16600b811061073157610731610c71565b60200201516001600160a01b03160361075f5780604051635875b11160e01b81526004016102649190610ca8565b60058260ff161415801561079c575080515f9061077b846108c2565b600b811061078b5761078b610c71565b60200201516001600160a01b031614155b156107bc5780604051635875b11160e01b81526004016102649190610ca8565b6107c582610568565b6107cf9085610c47565b93505050600101610650565b50808451146107fd5760405163251f56a160e21b815260040160405180910390fd5b50505050565b5f61080f826014610c47565b835110156108575760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610264565b500160200151600160601b900490565b5f610873826001610c47565b835110156108b95760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606401610264565b50016001015190565b5f6108ce826002610c85565b6108d9906001610cb7565b60ff1692915050565b60405180606001604052806108f5610914565b8152602001610902610933565b815260200161090f610960565b905290565b604051806101600160405280600b906020820280368337509192915050565b6040518060a001604052806005905b61094a610960565b8152602001906001900390816109425790505090565b6040518060a001604052806005906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109a1575f5ffd5b813567ffffffffffffffff8111156109bb576109bb61097e565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109ea576109ea61097e565b604052818152838201602001851015610a01575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356001600160a01b0381168114610a33575f5ffd5b919050565b5f5f5f60608486031215610a4a575f5ffd5b833567ffffffffffffffff811115610a60575f5ffd5b610a6c86828701610992565b935050610a7b60208501610a1d565b9150610a8960408501610a1d565b90509250925092565b805f5b60058110156107fd5781516001600160a01b0316845260209384019390910190600101610a95565b8051825f5b600b811015610aea5782516001600160a01b0316825260209283019290910190600101610ac2565b505050602081015161016083015f5b6005811015610b3f578251825f5b6005811015610b26578251825260209283019290910190600101610b07565b5050506020929092019160a09190910190600101610af9565b5050506040810151610b55610480840182610a92565b505050565b6001600160a01b03831681526105408101610b786020830184610abd565b9392505050565b5f5f60408385031215610b90575f5ffd5b823567ffffffffffffffff811115610ba6575f5ffd5b610bb285828601610992565b95602094909401359450505050565b60ff831681526105408101610b786020830184610abd565b5f60208284031215610be9575f5ffd5b813560ff81168114610b78575f5ffd5b5f60208284031215610c09575f5ffd5b813567ffffffffffffffff811115610c1f575f5ffd5b610c2b84828501610992565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561011857610118610c33565b808202811582820484141761011857610118610c33565b634e487b7160e01b5f52603260045260245ffd5b60ff8181168382160290811690818114610ca157610ca1610c33565b5092915050565b61052081016101188284610abd565b60ff818116838216019081111561011857610118610c3356fea2646970667358221220e083537ebf03219a8e938c92688b6ee69707088077ceed18e2970368054efa6164736f6c63430008230033";
readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80634eb942591461004e578063588f4ff4146100785780637ea71c9b14610099578063c16e50ef146100ba575b5f5ffd5b61006161005c366004610a38565b6100cf565b60405161006f929190610b5a565b60405180910390f35b61008b610086366004610b7f565b6100f0565b60405161006f929190610bc1565b6100ac6100a7366004610bd9565b61010e565b60405190815260200161006f565b6100cd6100c8366004610bf9565b61011e565b005b5f6100d86108e2565b6100e385858561012a565b915091505b935093915050565b5f6100f96108e2565b610103848461026d565b915091509250929050565b5f61011882610568565b92915050565b610127816105c5565b50565b5f6101336108e2565b61013d855f610803565b91505f61015561014e601483610c47565b8790610867565b90505f6001610165601483610c47565b61016f9190610c47565b90505f5b8260ff1681101561023b575f6101898984610867565b90506001600160a01b0388166101aa6101a3600186610c47565b8b90610803565b6001600160a01b031614801561020157506001600160a01b0387166101f66101d660ff84166014610c5a565b6101e1906002610c5a565b6101ec600187610c47565b6101a39190610c47565b6001600160a01b0316145b1561021d57610210898461026d565b95506100e8945050505050565b61022681610568565b6102309084610c47565b925050600101610173565b50604051638c9aec7b60e01b81526001600160a01b038088166004830152861660248201526044015b60405180910390fd5b5f6102766108e2565b6102808484610867565b915060058260ff1611156102ac57604051635b030b5960e11b815260ff83166004820152602401610264565b5f5b6102b7836108c2565b811015610316576102e86102cc601483610c5a565b6102d7600187610c47565b6102e19190610c47565b8690610803565b825182600b81106102fb576102fb610c71565b6001600160a01b0390921660209290920201526001016102ae565b506014610322836108c2565b61032c9190610c5a565b610337906001610c47565b6103419084610c47565b92505f5b8260ff168110156104e45761037a61035e600183610c5a565b610369906005610c5a565b6103739086610c47565b8690610867565b60ff168260200151826005811061039357610393610c71565b6020020151526103c76103a7600183610c5a565b6103b2906005610c5a565b6103bc9086610c47565b610373906001610c47565b60ff16826020015182600581106103e0576103e0610c71565b60200201516001602002015261041a6103fa600183610c5a565b610405906005610c5a565b61040f9086610c47565b610373906002610c47565b60ff168260200151826005811061043357610433610c71565b60200201516040015261046a61044a600183610c5a565b610455906005610c5a565b61045f9086610c47565b610373906003610c47565b60ff168260200151826005811061048357610483610c71565b6020020151606001526104ba61049a600183610c5a565b6104a5906005610c5a565b6104af9086610c47565b610373906004610c47565b60ff16826020015182600581106104d3576104d3610c71565b602002015160800152600101610345565b506104f3600160ff8416610c5a565b6104fe906005610c5a565b6105089084610c47565b92505f5b8260ff168110156105605761052f610525601483610c5a565b6102e19086610c47565b8260400151826005811061054557610545610c71565b6001600160a01b03909216602092909202015260010161050c565b509250929050565b5f610577601460ff8416610c5a565b6001610584846005610c85565b60ff166105919190610c5a565b601461059c856108c2565b6105a69190610c5a565b6105b1906001610c47565b6105bb9190610c47565b6101189190610c47565b5f6105d08282610803565b90506001600160a01b0381166105f95760405163e368363760e01b815260040160405180910390fd5b5f61060f610608601483610c47565b8490610867565b90508060ff165f03610634576040516301ec987f60e31b815260040160405180910390fd5b5f6001610642601483610c47565b61064c9190610c47565b90505f5b8260ff168110156107db575f5f610667878561026d565b915091505f5b8260ff1681101561070e5781515f90610687836002610c5a565b600b811061069757610697610c71565b60200201516001600160a01b031614806106e6575081515f906106bb836002610c5a565b6106c6906001610c47565b600b81106106d6576106d6610c71565b60200201516001600160a01b0316145b156107065781604051635875b11160e01b81526004016102649190610ca8565b60010161066d565b5080515f9061071e846002610c85565b60ff16600b811061073157610731610c71565b60200201516001600160a01b03160361075f5780604051635875b11160e01b81526004016102649190610ca8565b60058260ff161415801561079c575080515f9061077b846108c2565b600b811061078b5761078b610c71565b60200201516001600160a01b031614155b156107bc5780604051635875b11160e01b81526004016102649190610ca8565b6107c582610568565b6107cf9085610c47565b93505050600101610650565b50808451146107fd5760405163251f56a160e21b815260040160405180910390fd5b50505050565b5f61080f826014610c47565b835110156108575760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610264565b500160200151600160601b900490565b5f610873826001610c47565b835110156108b95760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606401610264565b50016001015190565b5f6108ce826002610c85565b6108d9906001610cb7565b60ff1692915050565b60405180606001604052806108f5610914565b8152602001610902610933565b815260200161090f610960565b905290565b604051806101600160405280600b906020820280368337509192915050565b6040518060a001604052806005905b61094a610960565b8152602001906001900390816109425790505090565b6040518060a001604052806005906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109a1575f5ffd5b813567ffffffffffffffff8111156109bb576109bb61097e565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109ea576109ea61097e565b604052818152838201602001851015610a01575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356001600160a01b0381168114610a33575f5ffd5b919050565b5f5f5f60608486031215610a4a575f5ffd5b833567ffffffffffffffff811115610a60575f5ffd5b610a6c86828701610992565b935050610a7b60208501610a1d565b9150610a8960408501610a1d565b90509250925092565b805f5b60058110156107fd5781516001600160a01b0316845260209384019390910190600101610a95565b8051825f5b600b811015610aea5782516001600160a01b0316825260209283019290910190600101610ac2565b505050602081015161016083015f5b6005811015610b3f578251825f5b6005811015610b26578251825260209283019290910190600101610b07565b5050506020929092019160a09190910190600101610af9565b5050506040810151610b55610480840182610a92565b505050565b6001600160a01b03831681526105408101610b786020830184610abd565b9392505050565b5f5f60408385031215610b90575f5ffd5b823567ffffffffffffffff811115610ba6575f5ffd5b610bb285828601610992565b95602094909401359450505050565b60ff831681526105408101610b786020830184610abd565b5f60208284031215610be9575f5ffd5b813560ff81168114610b78575f5ffd5b5f60208284031215610c09575f5ffd5b813567ffffffffffffffff811115610c1f575f5ffd5b610c2b84828501610992565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561011857610118610c33565b808202811582820484141761011857610118610c33565b634e487b7160e01b5f52603260045260245ffd5b60ff8181168382160290811690818114610ca157610ca1610c33565b5092915050565b61052081016101188284610abd565b60ff818116838216019081111561011857610118610c3356fea2646970667358221220e083537ebf03219a8e938c92688b6ee69707088077ceed18e2970368054efa6164736f6c63430008230033";
readonly linkReferences: {};
readonly deployedLinkReferences: {};
readonly immutableReferences: {};
readonly inputSourceName: "project/contracts/mocks/CurveRoutesTesterMock.sol";
readonly buildInfoId: "solc-0_8_35-3c6720e352a8805a57f3d5d8111ba91dcd52bec9";
};
import "hardhat/types/artifacts";
declare module "hardhat/types/artifacts" {
interface ArtifactMap {
["CurveRoutesTesterMock"]: CurveRoutesTesterMock$Type;
["contracts/mocks/CurveRoutesTesterMock.sol:CurveRoutesTesterMock"]: CurveRoutesTesterMock$Type;
}
}