0 txs
0 calls
constructor
constructor(address _uniV3Router)
functions
composeSwapPath
purefunction composeSwapPath(tuple[] swapRoute) pure returns (bytes swapPath)
getSwapPath
viewfunction getSwapPath(address inputToken, address outputToken) view returns (bytes swapRoute)
owner
viewfunction owner() view returns (address)
tokenSwapPaths
viewfunction tokenSwapPaths(address, address) view returns (bytes)
uniV3Router
viewfunction uniV3Router() view returns (address)
removePathOverride
nonpayablefunction removePathOverride(address inputToken, address outputToken)
renounceOwnership
nonpayablefunction renounceOwnership()
swap
nonpayablefunction swap(address tokenIn, uint256 amountIn, address tokenOut, uint256 minAmountOut, bytes) returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upsertPathOverride
nonpayablefunction upsertPathOverride(address inputToken, address outputToken, tuple[] swapRoute)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
EmptyPath
error EmptyPath()
EmptyTokenIn
error EmptyTokenIn()
EmptyTokenOut
error EmptyTokenOut()
InvalidPathSegment
error InvalidPathSegment(address from, address to)
creation bytecode
0x608060405234801561001057600080fd5b5060405161130538038061130583398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b611219806100ec6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063be9e09d611610066578063be9e09d614610133578063c60147bc14610146578063edc23bf514610159578063f2fde38b1461016c578063ffda52fa1461017f57600080fd5b806313b3c58b146100a35780635fafa589146100cc578063715018a6146100f757806384422d71146101015780638da5cb5b14610122575b600080fd5b6100b66100b1366004610dc7565b610192565b6040516100c39190610e52565b60405180910390f35b6001546100df906001600160a01b031681565b6040516001600160a01b0390911681526020016100c3565b6100ff610237565b005b61011461010f366004610e82565b61024b565b6040519081526020016100c3565b6000546001600160a01b03166100df565b6100b6610141366004610dc7565b610425565b6100b6610154366004610fb4565b6104df565b6100ff610167366004610dc7565b6106d1565b6100ff61017a366004610ff6565b61070d565b6100ff61018d366004611011565b610786565b6002602090815260009283526040808420909152908252902080546101b690611072565b80601f01602080910402602001604051908101604052809291908181526020018280546101e290611072565b801561022f5780601f106102045761010080835404028352916020019161022f565b820191906000526020600020905b81548152906001019060200180831161021257829003601f168201915b505050505081565b61023f610844565b610249600061089e565b565b60006102626001600160a01b0387163330886108ee565b60015461027c906001600160a01b0388811691168761095f565b6102b76040518060a001604052806060815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b3360208083019190915260608201879052608082018590526001600160a01b038881166000908152600283526040808220928916825291909252902080546102fe90611072565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90611072565b80156103775780601f1061034c57610100808354040283529160200191610377565b820191906000526020600020905b81548152906001019060200180831161035a57829003601f168201915b5050509183525050600019604080830191909152600154905163c04b8d5960e01b81526001600160a01b039091169063c04b8d59906103ba9084906004016110ad565b6020604051808303816000875af11580156103d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fd9190611105565b60015490925061041b906001600160a01b038981169116600061095f565b5095945050505050565b6001600160a01b03808316600090815260026020908152604080832093851683529290522080546060919061045990611072565b80601f016020809104026020016040519081016040528092919081815260200182805461048590611072565b80156104d25780601f106104a7576101008083540402835291602001916104d2565b820191906000526020600020905b8154815290600101906020018083116104b557829003601f168201915b5050505050905092915050565b6060828260008181106104f4576104f461111e565b61050a9260206060909202019081019150610ff6565b604051602001610532919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815291905290508160005b818110156106c957828585838181106105635761056361111e565b905060600201604001602081019061057b9190611134565b86868481811061058d5761058d61111e565b90506060020160200160208101906105a59190610ff6565b6040516020016105b793929190611159565b60408051601f19818403018152919052925080156106c1578484600183038181106105e4576105e461111e565b90506060020160200160208101906105fc9190610ff6565b6001600160a01b03168585838181106106175761061761111e565b61062d9260206060909202019081019150610ff6565b6001600160a01b0316146106c15784848281811061064d5761064d61111e565b6106639260206060909202019081019150610ff6565b8585600184038181106106785761067861111e565b90506060020160200160208101906106909190610ff6565b60405163ae900b0f60e01b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b600101610548565b505092915050565b6106d9610844565b6001600160a01b038083166000908152600260209081526040808320938516835292905290812061070991610cd8565b5050565b610715610844565b6001600160a01b03811661077a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b8565b6107838161089e565b50565b61078e610844565b6001600160a01b0384166107b557604051631459b64f60e11b815260040160405180910390fd5b6001600160a01b0383166107dc5760405163eeefb2c960e01b815260040160405180910390fd5b806107fa576040516320a2d33d60e01b815260040160405180910390fd5b61080482826104df565b6001600160a01b0380861660009081526002602090815260408083209388168352928152919020825161083d9391929190910190610d12565b5050505050565b6000546001600160a01b031633146102495760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526109599085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610a79565b50505050565b8015806109d95750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611105565b155b610a445760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016106b8565b6040516001600160a01b038316602482015260448101829052610a7490849063095ea7b360e01b90606401610922565b505050565b6000610ace826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b4b9092919063ffffffff16565b805190915015610a745780806020019051810190610aec91906111a5565b610a745760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106b8565b6060610b5a8484600085610b62565b949350505050565b606082471015610bc35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106b8565b600080866001600160a01b03168587604051610bdf91906111c7565b60006040518083038185875af1925050503d8060008114610c1c576040519150601f19603f3d011682016040523d82523d6000602084013e610c21565b606091505b5091509150610c3287838387610c3d565b979650505050505050565b60608315610ca9578251610ca2576001600160a01b0385163b610ca25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106b8565b5081610b5a565b610b5a8383815115610cbe5781518083602001fd5b8060405162461bcd60e51b81526004016106b89190610e52565b508054610ce490611072565b6000825580601f10610cf4575050565b601f0160209004906000526020600020908101906107839190610d96565b828054610d1e90611072565b90600052602060002090601f016020900481019282610d405760008555610d86565b82601f10610d5957805160ff1916838001178555610d86565b82800160010185558215610d86579182015b82811115610d86578251825591602001919060010190610d6b565b50610d92929150610d96565b5090565b5b80821115610d925760008155600101610d97565b80356001600160a01b0381168114610dc257600080fd5b919050565b60008060408385031215610dda57600080fd5b610de383610dab565b9150610df160208401610dab565b90509250929050565b60005b83811015610e15578181015183820152602001610dfd565b838111156109595750506000910152565b60008151808452610e3e816020860160208601610dfa565b601f01601f19169290920160200192915050565b602081526000610e656020830184610e26565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a08688031215610e9a57600080fd5b610ea386610dab565b945060208601359350610eb860408701610dab565b925060608601359150608086013567ffffffffffffffff80821115610edc57600080fd5b818801915088601f830112610ef057600080fd5b813581811115610f0257610f02610e6c565b604051601f8201601f19908116603f01168101908382118183101715610f2a57610f2a610e6c565b816040528281528b6020848701011115610f4357600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b60008083601f840112610f7a57600080fd5b50813567ffffffffffffffff811115610f9257600080fd5b602083019150836020606083028501011115610fad57600080fd5b9250929050565b60008060208385031215610fc757600080fd5b823567ffffffffffffffff811115610fde57600080fd5b610fea85828601610f68565b90969095509350505050565b60006020828403121561100857600080fd5b610e6582610dab565b6000806000806060858703121561102757600080fd5b61103085610dab565b935061103e60208601610dab565b9250604085013567ffffffffffffffff81111561105a57600080fd5b61106687828801610f68565b95989497509550505050565b600181811c9082168061108657607f821691505b602082108114156110a757634e487b7160e01b600052602260045260246000fd5b50919050565b602081526000825160a060208401526110c960c0840182610e26565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b60006020828403121561111757600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561114657600080fd5b813562ffffff81168114610e6557600080fd5b6000845161116b818460208901610dfa565b60e89490941b6001600160e81b0319169190930190815260609190911b6bffffffffffffffffffffffff1916600382015260170192915050565b6000602082840312156111b757600080fd5b81518015158114610e6557600080fd5b600082516111d9818460208701610dfa565b919091019291505056fea26469706673582212201682933ef5b6370b7aae77b5685d1b62b7bf3d28f5b73ca2388aa3ce77f7df0964736f6c634300080a0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564