0 txs
0 calls
constructor
constructor(address _routerV2, address _factoryV1, address _factoryV2)
functions
factoryV1
viewfunction factoryV1() view returns (address)
factoryV2
viewfunction factoryV2() view returns (address)
findBestPathFromAmountIn
viewfunction findBestPathFromAmountIn(address[] _route, uint256 _amountIn) view returns (tuple quote)
findBestPathFromAmountOut
viewfunction findBestPathFromAmountOut(address[] _route, uint256 _amountOut) view returns (tuple quote)
routerV2
viewfunction routerV2() view returns (address)
events
No events.
errors
BinHelper__BinStepOverflows
error BinHelper__BinStepOverflows(uint256 bp)
BinHelper__IdOverflows
error BinHelper__IdOverflows()
JoeLibrary__AddressZero
error JoeLibrary__AddressZero()
JoeLibrary__IdenticalAddresses
error JoeLibrary__IdenticalAddresses()
JoeLibrary__InsufficientAmount
error JoeLibrary__InsufficientAmount()
JoeLibrary__InsufficientLiquidity
error JoeLibrary__InsufficientLiquidity()
LBQuoter_InvalidLength
error LBQuoter_InvalidLength()
Math128x128__PowerUnderflow
error Math128x128__PowerUnderflow(uint256 x, int256 y)
Math512Bits__MulDivOverflow
error Math512Bits__MulDivOverflow(uint256 prod1, uint256 denominator)
Math512Bits__MulShiftOverflow
error Math512Bits__MulShiftOverflow(uint256 prod1, uint256 offset)
Math512Bits__OffsetOverflows
error Math512Bits__OffsetOverflows(uint256 offset)
creation bytecode
0x60e06040523480156200001157600080fd5b50604051620025e7380380620025e783398101604081905262000034916200006f565b6001600160a01b0392831660805290821660a0521660c052620000b9565b80516001600160a01b03811681146200006a57600080fd5b919050565b6000806000606084860312156200008557600080fd5b620000908462000052565b9250620000a06020850162000052565b9150620000b06040850162000052565b90509250925092565b60805160a05160c0516124d7620001106000396000818160dc015281816106ea01526112290152600081816071015281816103920152610f3c01526000818160b5015281816108fc015261144d01526124d76000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806368e0d4e11161005057806368e0d4e1146100d75780637000af3f146100fe578063c1b7687b1461011e57600080fd5b80633957f4531461006c578063502f7446146100b0575b600080fd5b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6100937f000000000000000000000000000000000000000000000000000000000000000081565b61011161010c366004611f82565b610131565b6040516100a79190612071565b61011161012c366004611f82565b610cdd565b61016a6040518060c001604052806060815260200160608152602001606081526020016060815260200160608152602001606081525090565b600283101561018c57604051632973c80b60e01b815260040160405180910390fd5b8383808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250938552506101ce91506001905085612136565b90508067ffffffffffffffff8111156101e9576101e961214d565b604051908082528060200260200182016040528015610212578160200160208202803683370190505b5060208301528067ffffffffffffffff8111156102315761023161214d565b60405190808252806020026020018201604052801561025a578160200160208202803683370190505b5060408301528067ffffffffffffffff8111156102795761027961214d565b6040519080825280602002602001820160405280156102a2578160200160208202803683370190505b5060a08301528367ffffffffffffffff8111156102c1576102c161214d565b6040519080825280602002602001820160405280156102ea578160200160208202803683370190505b5060608301528367ffffffffffffffff8111156103095761030961214d565b604051908082528060200260200182016040528015610332578160200160208202803683370190505b508260800181905250828260600151828151811061035257610352612163565b602002602001018181525050828260800151828151811061037557610375612163565b6020908102919091010152805b8015610cd4576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e6a4390587876103c4600186612136565b8181106103d3576103d3612163565b90506020020160208101906103e89190612191565b8888858181106103fa576103fa612163565b905060200201602081019061040f9190612191565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561045a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047e91906121b5565b602084015161048e600184612136565b8151811061049e5761049e612163565b6001600160a01b039092166020928302919091018201528301516000906104c6600184612136565b815181106104d6576104d6612163565b60200260200101516001600160a01b031614158015610512575060008360600151828151811061050857610508612163565b6020026020010151115b156106de576000806105a6856020015160018561052f9190612136565b8151811061053f5761053f612163565b602002602001015189896001876105569190612136565b81811061056557610565612163565b905060200201602081019061057a9190612191565b8a8a8781811061058c5761058c612163565b90506020020160208101906105a19190612191565b6117b1565b915091506000821180156105d65750846060015183815181106105cb576105cb612163565b602002602001015181115b156106db57610603856060015184815181106105f4576105f4612163565b6020026020010151838361187f565b6060860151610613600186612136565b8151811061062357610623612163565b60200260200101818152505061066f8560800151848151811061064857610648612163565b60200260200101516103e861065d91906121d2565b610669836103e56121d2565b8461191b565b61067a9060016121f1565b608086015161068a600186612136565b8151811061069a5761069a612163565b602090810291909101015260a0850151660aa87bee538000906106be600186612136565b815181106106ce576106ce612163565b6020026020010181815250505b50505b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016636622e0d7888861071c600187612136565b81811061072b5761072b612163565b90506020020160208101906107409190612191565b89898681811061075257610752612163565b90506020020160208101906107679190612191565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107da9190810190612278565b90506000815111801561080a575060008460600151838151811061080057610800612163565b6020026020010151115b15610cc15760005b8151811015610cbf5781818151811061082d5761082d612163565b602002602001015160600151610cad57600088888581811061085157610851612163565b90506020020160208101906108669190612191565b6001600160a01b031683838151811061088157610881612163565b6020026020010151602001516001600160a01b031663b7d19fc46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ee91906121b5565b6001600160a01b03161490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635bdd4b7c84848151811061093b5761093b612163565b6020026020010151602001518860600151878151811061095d5761095d612163565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015283151560448201526064016040805180830381865afa9250505080156109d4575060408051601f3d908101601f191682019092526109d191810190612377565b60015b6109dd57610cab565b8115801590610a43575060608801516109f7600188612136565b81518110610a0757610a07612163565b6020026020010151821080610a4357506060880151610a27600188612136565b81518110610a3757610a37612163565b60200260200101516000145b15610ca85760608801518290610a5a600189612136565b81518110610a6a57610a6a612163565b602002602001018181525050848481518110610a8857610a88612163565b6020026020010151602001518860200151600188610aa69190612136565b81518110610ab657610ab6612163565b60200260200101906001600160a01b031690816001600160a01b031681525050848481518110610ae857610ae8612163565b60200260200101516000015161ffff168860400151600188610b0a9190612136565b81518110610b1a57610b1a612163565b6020026020010181815250506000858581518110610b3a57610b3a612163565b6020026020010151602001516001600160a01b0316631b05b83e6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba7919061239b565b9250505081610bff8a608001518981518110610bc557610bc5612163565b6020026020010151838c6040015160018c610be09190612136565b81518110610bf057610bf0612163565b60200260200101518815611981565b610c0991906121f1565b60808a0151610c1960018a612136565b81518110610c2957610c29612163565b60209081029190910101526060890151610c44600189612136565b81518110610c5457610c54612163565b602002602001015182670de0b6b3a7640000610c7091906121d2565b610c7a91906123df565b60a08a0151610c8a60018a612136565b81518110610c9a57610c9a612163565b602002602001018181525050505b50505b505b80610cb781612401565b915050610812565b505b5080610ccc8161241c565b915050610382565b50509392505050565b610d166040518060c001604052806060815260200160608152602001606081526020016060815260200160608152602001606081525090565b6002831015610d3857604051632973c80b60e01b815260040160405180910390fd5b838380806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093855250610d7a91506001905085612136565b90508067ffffffffffffffff811115610d9557610d9561214d565b604051908082528060200260200182016040528015610dbe578160200160208202803683370190505b5060208301528067ffffffffffffffff811115610ddd57610ddd61214d565b604051908082528060200260200182016040528015610e06578160200160208202803683370190505b5060408301528067ffffffffffffffff811115610e2557610e2561214d565b604051908082528060200260200182016040528015610e4e578160200160208202803683370190505b5060a08301528367ffffffffffffffff811115610e6d57610e6d61214d565b604051908082528060200260200182016040528015610e96578160200160208202803683370190505b5060608301528367ffffffffffffffff811115610eb557610eb561214d565b604051908082528060200260200182016040528015610ede578160200160208202803683370190505b508260800181905250828260600151600081518110610eff57610eff612163565b602002602001018181525050828260800151600081518110610f2357610f23612163565b60200260200101818152505060005b81811015610cd4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a43905878784818110610f7b57610f7b612163565b9050602002016020810190610f909190612191565b8888610f9d8660016121f1565b818110610fac57610fac612163565b9050602002016020810190610fc19190612191565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103091906121b5565b8360200151828151811061104657611046612163565b6001600160a01b039092166020928302919091018201528301518051600091908390811061107657611076612163565b60200260200101516001600160a01b0316141580156110b257506000836060015182815181106110a8576110a8612163565b6020026020010151115b156112255760008061111e856020015184815181106110d3576110d3612163565b60200260200101518989868181106110ed576110ed612163565b90506020020160208101906111029190612191565b8a8a61110f8860016121f1565b81811061058c5761058c612163565b915091506000821180156111325750600081115b156112225761115f8560600151848151811061115057611150612163565b602002602001015183836119c7565b606086015161116f8560016121f1565b8151811061117f5761117f612163565b6020026020010181815250506111cb856080015184815181106111a4576111a4612163565b60200260200101516103e56111b991906121d2565b6111c5846103e86121d2565b8361191b565b60808601516111db8560016121f1565b815181106111eb576111eb612163565b602002602001018181525050660aa87bee5380008560a00151848151811061121557611215612163565b6020026020010181815250505b50505b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636622e0d788888581811061126857611268612163565b905060200201602081019061127d9190612191565b898961128a8760016121f1565b81811061129957611299612163565b90506020020160208101906112ae9190612191565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381865afa1580156112f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113219190810190612278565b905060008151118015611351575060008460600151838151811061134757611347612163565b6020026020010151115b1561179e5760005b815181101561179c5781818151811061137457611374612163565b60200260200101516060015161178a57600088886113938660016121f1565b8181106113a2576113a2612163565b90506020020160208101906113b79190612191565b6001600160a01b03168383815181106113d2576113d2612163565b6020026020010151602001516001600160a01b031663b7d19fc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561141b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143f91906121b5565b6001600160a01b03161490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632004b72484848151811061148c5761148c612163565b602002602001015160200151886060015187815181106114ae576114ae612163565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015283151560448201526064016040805180830381865afa925050508015611525575060408051601f3d908101601f1916820190925261152291810190612377565b60015b61152e57611788565b606088015161153e8760016121f1565b8151811061154e5761154e612163565b6020026020010151821115611785576060880151829061156f8860016121f1565b8151811061157f5761157f612163565b60200260200101818152505084848151811061159d5761159d612163565b602002602001015160200151886020015187815181106115bf576115bf612163565b60200260200101906001600160a01b031690816001600160a01b0316815250508484815181106115f1576115f1612163565b60200260200101516000015161ffff168860400151878151811061161757611617612163565b602002602001018181525050600085858151811061163757611637612163565b6020026020010151602001516001600160a01b0316631b05b83e6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a4919061239b565b925050506116f9828a6080015189815181106116c2576116c2612163565b60200260200101516116d49190612136565b828b604001518a815181106116eb576116eb612163565b602002602001015187611981565b60808a01516117098960016121f1565b8151811061171957611719612163565b6020026020010181815250508860600151878151811061173b5761173b612163565b602002602001015182670de0b6b3a764000061175791906121d2565b61176191906123df565b8960a00151888151811061177757611777612163565b602002602001018181525050505b50505b505b8061179481612401565b915050611359565b505b50806117a981612401565b915050610f32565b60008060006117c08585611a5e565b509050600080876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611804573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118289190612451565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b03161461186d578082611870565b81815b90999098509650505050505050565b60008361189f5760405163b229ed3360e01b815260040160405180910390fd5b8215806118aa575081155b156118c8576040516398c59a2960e01b815260040160405180910390fd5b60006118d485856121d2565b6118e0906103e86121d2565b905060006118ee8685612136565b6118fa906103e56121d2565b905061190681836123df565b6119119060016121f1565b9695505050505050565b60008361193b5760405163b229ed3360e01b815260040160405180910390fd5b821580611946575081155b15611964576040516398c59a2960e01b815260040160405180910390fd5b8261196f83866121d2565b61197991906123df565b949350505050565b600081156119a7576119a08560806119998787611aea565b9190611b34565b9050611979565b6119be60806119b68686611aea565b879190611bc5565b95945050505050565b6000836119e75760405163b229ed3360e01b815260040160405180910390fd5b8215806119f2575081155b15611a10576040516398c59a2960e01b815260040160405180910390fd5b6000611a1e856103e56121d2565b90506000611a2c84836121d2565b9050600082611a3d876103e86121d2565b611a4791906121f1565b9050611a5381836123df565b979650505050505050565b600080826001600160a01b0316846001600160a01b03161415611a9457604051630df4665760e21b815260040160405180910390fd5b826001600160a01b0316846001600160a01b031610611ab4578284611ab7565b83835b90925090506001600160a01b038216611ae3576040516304cda58760e51b815260040160405180910390fd5b9250929050565b600062ffffff831115611b105760405163163d8bab60e21b815260040160405180910390fd5b627fffff198301611b2a81611b2485611c08565b90611c4e565b9150505b92915050565b600060ff821115611b6057604051630b72ecf560e41b8152600481018390526024015b60405180910390fd5b600080611b6d8686611eb0565b9150915081600014611b7f5781841c92505b8015610cd4576001841b8110611bb257604051633d90990f60e01b81526004810182905260248101859052604401611b57565b610100939093039290921b019392505050565b600060ff831115611bec57604051630b72ecf560e41b815260048101849052602401611b57565b83831b61010084900385901c611911866001871b868585611ecf565b6000811580611c18575061271082115b15611c39576040516374da1e1160e11b815260048101839052602401611b57565b612710608083901b04600160801b0192915050565b6000808083611c665750600160801b9150611b2e9050565b50826000811215611c78579015906000035b62100000811015611e7157600160801b9250846fffffffffffffffffffffffffffffffff811115611cab57911591600019045b6001821615611cbc5792830260801c925b800260801c6002821615611cd25792830260801c925b800260801c6004821615611ce85792830260801c925b800260801c6008821615611cfe5792830260801c925b800260801c6010821615611d145792830260801c925b800260801c6020821615611d2a5792830260801c925b800260801c6040821615611d405792830260801c925b8002608090811c90821615611d575792830260801c925b800260801c610100821615611d6e5792830260801c925b800260801c610200821615611d855792830260801c925b800260801c610400821615611d9c5792830260801c925b800260801c610800821615611db35792830260801c925b800260801c611000821615611dca5792830260801c925b800260801c612000821615611de15792830260801c925b800260801c614000821615611df85792830260801c925b800260801c618000821615611e0f5792830260801c925b800260801c62010000821615611e275792830260801c925b800260801c62020000821615611e3f5792830260801c925b800260801c62040000821615611e575792830260801c925b800260801c62080000821615611e6f5792830260801c925b505b82611e9957604051630e9c7d6160e31b81526004810186905260248101859052604401611b57565b81611ea457826119be565b6119be836000196123df565b6000806000198385098385029250828110838203039150509250929050565b600081611eed57838381611ee557611ee56123c9565b0490506119be565b838210611f175760405163656b542b60e11b81526004810183905260248101859052604401611b57565b600084868809600186198101871660008190038190049091018683119095039490940294038390049390931760029290940460038102831880820284030280820284030280820284030280820284030280820284030290810290920390910292909202949350505050565b600080600060408486031215611f9757600080fd5b833567ffffffffffffffff80821115611faf57600080fd5b818601915086601f830112611fc357600080fd5b813581811115611fd257600080fd5b8760208260051b8501011115611fe757600080fd5b6020928301989097509590910135949350505050565b600081518084526020808501945080840160005b838110156120365781516001600160a01b031687529582019590820190600101612011565b509495945050505050565b600081518084526020808501945080840160005b8381101561203657815187529582019590820190600101612055565b602081526000825160c0602084015261208d60e0840182611ffd565b90506020840151601f19808584030160408601526120ab8383611ffd565b925060408601519150808584030160608601526120c88383612041565b925060608601519150808584030160808601526120e58383612041565b925060808601519150808584030160a08601526121028383612041565b925060a08601519150808584030160c0860152506119be8282612041565b634e487b7160e01b600052601160045260246000fd5b60008282101561214857612148612120565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461218e57600080fd5b50565b6000602082840312156121a357600080fd5b81356121ae81612179565b9392505050565b6000602082840312156121c757600080fd5b81516121ae81612179565b60008160001904831182151516156121ec576121ec612120565b500290565b6000821982111561220457612204612120565b500190565b6040516080810167ffffffffffffffff8111828210171561222c5761222c61214d565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561225b5761225b61214d565b604052919050565b8051801515811461227357600080fd5b919050565b6000602080838503121561228b57600080fd5b825167ffffffffffffffff808211156122a357600080fd5b818501915085601f8301126122b757600080fd5b8151818111156122c9576122c961214d565b6122d7848260051b01612232565b818152848101925060079190911b8301840190878211156122f757600080fd5b928401925b81841015611a5357608084890312156123155760008081fd5b61231d612209565b845161ffff811681146123305760008081fd5b81528486015161233f81612179565b818701526040612350868201612263565b908201526060612361868201612263565b90820152835260809390930192918401916122fc565b6000806040838503121561238a57600080fd5b505080516020909101519092909150565b6000806000606084860312156123b057600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601260045260246000fd5b6000826123fc57634e487b7160e01b600052601260045260246000fd5b500490565b600060001982141561241557612415612120565b5060010190565b60008161242b5761242b612120565b506000190190565b80516dffffffffffffffffffffffffffff8116811461227357600080fd5b60008060006060848603121561246657600080fd5b61246f84612433565b925061247d60208501612433565b9150604084015163ffffffff8116811461249657600080fd5b80915050925092509256fea2646970667358221220bc307f951541bdfb357cd0a4b3b7fb8030bf65309bde19ba4949c3caca1b506e64736f6c634300080a00330000000000000000000000007bfd7192e76d950832c77bb412aae841049d8d9b000000000000000000000000ae4ec9901c3076d0ddbe76a520f9e90a6227acb70000000000000000000000001886d09c9ade0c5db822d85d21678db67b6c2982