@uniswap/universal-router-sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/entities/Command.d.ts +7 -0
- package/dist/entities/NFTTrade.d.ts +41 -0
- package/dist/entities/index.d.ts +2 -0
- package/dist/entities/protocols/cryptopunk.d.ts +16 -0
- package/dist/entities/protocols/foundation.d.ts +19 -0
- package/dist/entities/protocols/index.d.ts +9 -0
- package/dist/entities/protocols/looksRare.d.ts +44 -0
- package/dist/entities/protocols/nft20.d.ts +21 -0
- package/dist/entities/protocols/nftx.d.ts +20 -0
- package/dist/entities/protocols/seaport.d.ts +57 -0
- package/dist/entities/protocols/sudoswap.d.ts +27 -0
- package/dist/entities/protocols/uniswap.d.ts +14 -0
- package/dist/entities/protocols/x2y2.d.ts +28 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -0
- package/dist/swapRouter.d.ts +32 -0
- package/dist/universal-router-sdk.cjs.development.js +9262 -0
- package/dist/universal-router-sdk.cjs.development.js.map +1 -0
- package/dist/universal-router-sdk.cjs.production.min.js +2 -0
- package/dist/universal-router-sdk.cjs.production.min.js.map +1 -0
- package/dist/universal-router-sdk.esm.js +9248 -0
- package/dist/universal-router-sdk.esm.js.map +1 -0
- package/dist/utils/constants.d.ts +7 -0
- package/dist/utils/expandTo18Decimals.d.ts +4 -0
- package/dist/utils/getNativeCurrencyValue.d.ts +2 -0
- package/dist/utils/permit2.d.ts +6 -0
- package/dist/utils/routerCommands.d.ts +43 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"universal-router-sdk.cjs.development.js","sources":["../src/utils/routerCommands.ts","../src/utils/constants.ts","../src/entities/protocols/uniswap.ts","../src/utils/permit2.ts","../src/swapRouter.ts","../src/entities/NFTTrade.ts","../src/entities/protocols/cryptopunk.ts","../src/entities/protocols/foundation.ts","../src/entities/protocols/looksRare.ts","../src/entities/protocols/nft20.ts","../src/entities/protocols/nftx.ts","../src/entities/protocols/seaport.ts","../src/entities/protocols/sudoswap.ts","../src/entities/protocols/x2y2.ts"],"sourcesContent":["import { defaultAbiCoder } from 'ethers/lib/utils'\n\n/**\n * CommandTypes\n * @description Flags that modify a command's execution\n * @enum {number}\n */\nexport enum CommandType {\n PERMIT = 0x00,\n TRANSFER = 0x01,\n V3_SWAP_EXACT_IN = 0x02,\n V3_SWAP_EXACT_OUT = 0x03,\n V2_SWAP_EXACT_IN = 0x04,\n V2_SWAP_EXACT_OUT = 0x05,\n SEAPORT = 0x06,\n WRAP_ETH = 0x07,\n UNWRAP_WETH = 0x08,\n SWEEP = 0x09,\n NFTX = 0x0a,\n LOOKS_RARE_721 = 0x0b,\n X2Y2_721 = 0x0c,\n LOOKS_RARE_1155 = 0x0d,\n X2Y2_1155 = 0x0e,\n FOUNDATION = 0x0f,\n PAY_PORTION = 0x10,\n SUDOSWAP = 0x12,\n NFT20 = 0x13,\n OWNER_CHECK_721 = 0x14,\n OWNER_CHECK_1155 = 0x15,\n CRYPTOPUNKS = 0x16,\n PERMIT2_TRANSFER_FROM = 0x17,\n PERMIT2_TRANSFER_FROM_BATCH = 0x18,\n PERMIT2_PERMIT_BATCH = 0x19,\n}\n\nconst PERMIT_STRUCT =\n '((address token,uint160 amount,uint48 expiration,uint48 nonce) details, address spender, uint256 sigDeadline)'\n\nconst PERMIT_BATCH_STRUCT =\n '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details, address spender, uint256 sigDeadline)'\n\nconst ALLOW_REVERT_FLAG = 0x80\n\nconst REVERTABLE_COMMANDS = new Set<CommandType>([\n CommandType.SEAPORT,\n CommandType.NFTX,\n CommandType.LOOKS_RARE_721,\n CommandType.LOOKS_RARE_1155,\n CommandType.X2Y2_721,\n CommandType.X2Y2_1155,\n CommandType.FOUNDATION,\n CommandType.SUDOSWAP,\n CommandType.NFT20,\n])\n\nconst ABI_DEFINITION: { [key in CommandType]: string[] } = {\n [CommandType.PERMIT]: [PERMIT_STRUCT, 'bytes'],\n [CommandType.PERMIT2_PERMIT_BATCH]: [PERMIT_BATCH_STRUCT, 'bytes'],\n [CommandType.PERMIT2_TRANSFER_FROM]: ['address', 'address', 'uint160'],\n [CommandType.PERMIT2_TRANSFER_FROM_BATCH]: ['bytes'],\n [CommandType.TRANSFER]: ['address', 'address', 'uint256'],\n [CommandType.V3_SWAP_EXACT_IN]: ['address', 'uint256', 'uint256', 'bytes', 'bool'],\n [CommandType.V3_SWAP_EXACT_OUT]: ['address', 'uint256', 'uint256', 'bytes', 'bool'],\n [CommandType.V2_SWAP_EXACT_IN]: ['uint256', 'uint256', 'address[]', 'address', 'bool'],\n [CommandType.V2_SWAP_EXACT_OUT]: ['uint256', 'uint256', 'address[]', 'address', 'bool'],\n [CommandType.SEAPORT]: ['uint256', 'bytes'],\n [CommandType.WRAP_ETH]: ['address', 'uint256'],\n [CommandType.UNWRAP_WETH]: ['address', 'uint256'],\n [CommandType.SWEEP]: ['address', 'address', 'uint256'],\n [CommandType.NFTX]: ['uint256', 'bytes'],\n [CommandType.LOOKS_RARE_721]: ['uint256', 'bytes', 'address', 'address', 'uint256'],\n [CommandType.LOOKS_RARE_1155]: ['uint256', 'bytes', 'address', 'address', 'uint256', 'uint256'],\n [CommandType.X2Y2_721]: ['uint256', 'bytes', 'address', 'address', 'uint256'],\n [CommandType.X2Y2_1155]: ['uint256', 'bytes', 'address', 'address', 'uint256', 'uint256'],\n [CommandType.FOUNDATION]: ['uint256', 'bytes', 'address', 'address', 'uint256'],\n [CommandType.PAY_PORTION]: ['address', 'address', 'uint256'],\n [CommandType.SUDOSWAP]: ['uint256', 'bytes'],\n [CommandType.OWNER_CHECK_721]: ['address', 'address', 'uint256'],\n [CommandType.OWNER_CHECK_1155]: ['address', 'address', 'uint256', 'uint256'],\n [CommandType.NFT20]: ['uint256', 'bytes'],\n [CommandType.CRYPTOPUNKS]: ['uint256', 'address', 'uint256'],\n}\n\nexport class RoutePlanner {\n commands: string\n inputs: string[]\n\n constructor() {\n this.commands = '0x'\n this.inputs = []\n }\n\n addCommand(type: CommandType, parameters: any[], allowRevert = false): void {\n let command = createCommand(type, parameters)\n this.inputs.push(command.encodedInput)\n if (allowRevert) {\n if (!REVERTABLE_COMMANDS.has(command.type)) {\n throw new Error(`command type: ${command.type} cannot be allowed to revert`)\n }\n command.type = command.type | ALLOW_REVERT_FLAG\n }\n\n this.commands = this.commands.concat(command.type.toString(16).padStart(2, '0'))\n }\n}\n\nexport type RouterCommand = {\n type: CommandType\n encodedInput: string\n}\n\nexport function createCommand(type: CommandType, parameters: any[]): RouterCommand {\n const encodedInput = defaultAbiCoder.encode(ABI_DEFINITION[type], parameters)\n return { type, encodedInput }\n}\n","import { BigNumber } from 'ethers'\n\nexport const ROUTER_ADDRESS = '0x5393904db506415D941726f3Cf0404Bb167537A0'\nexport const PERMIT2_ADDRESS = '0x6fEe9BeC3B3fc8f9DA5740f0efc6BbE6966cd6A6'\n\nexport const CONTRACT_BALANCE = BigNumber.from(2).pow(255)\nexport const ETH_ADDRESS = '0x0000000000000000000000000000000000000000'\n\nexport const MSG_SENDER = '0x0000000000000000000000000000000000000001'\nexport const ADDRESS_THIS = '0x0000000000000000000000000000000000000002'\n","import JSBI from 'jsbi'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { Trade as V2Trade, Pair } from '@uniswap/v2-sdk'\nimport { Trade as V3Trade, Pool, encodeRouteToPath } from '@uniswap/v3-sdk'\nimport {\n Trade as RouterTrade,\n MixedRouteTrade,\n Protocol,\n IRoute,\n RouteV2,\n RouteV3,\n MixedRouteSDK,\n MixedRoute,\n SwapOptions as RouterSwapOptions,\n getOutputOfPools,\n encodeMixedRouteToPath,\n partitionMixedRouteByProtocol,\n} from '@uniswap/router-sdk'\nimport { Permit2Permit } from '../../utils/permit2'\nimport { Currency, TradeType, CurrencyAmount, Percent } from '@uniswap/sdk-core'\nimport { Command, TradeConfig } from '../Command'\nimport { MSG_SENDER, ADDRESS_THIS, CONTRACT_BALANCE } from '../../utils/constants'\n\n// the existing router permit object doesn't include enough data for permit2\n// so we extend swap options with the permit2 permit\nexport type SwapOptions = Omit<RouterSwapOptions, 'inputTokenPermit'> & {\n inputTokenPermit?: Permit2Permit\n}\n\nconst REFUND_ETH_PRICE_IMPACT_THRESHOLD = new Percent(JSBI.BigInt(50), JSBI.BigInt(100))\n\ninterface Swap<TInput extends Currency, TOutput extends Currency> {\n route: IRoute<TInput, TOutput, Pair | Pool>\n inputAmount: CurrencyAmount<TInput>\n outputAmount: CurrencyAmount<TOutput>\n}\n\n// Wrapper for uniswap router-sdk trade entity to encode swaps for Universal Router\n// also translates trade objects from previous (v2, v3) SDKs\nexport class UniswapTrade implements Command {\n constructor(public trade: RouterTrade<Currency, Currency, TradeType>, public options: SwapOptions) {}\n\n encode(planner: RoutePlanner, _config: TradeConfig): void {\n let payerIsUser = true\n if (this.trade.inputAmount.currency.isNative) {\n // TODO: optimize if only one v2 pool we can directly send this to the pool\n planner.addCommand(CommandType.WRAP_ETH, [\n ADDRESS_THIS,\n this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString(),\n ])\n // since WETH is now owned by the router, the router pays for inputs\n payerIsUser = false\n }\n this.options.recipient = this.options.recipient ?? MSG_SENDER\n\n // flag for whether we want to perform slippage check on aggregate output of multiple routes\n // 1. when there are >2 exact input trades. this is only a heuristic,\n // as it's still more gas-expensive even in this case, but has benefits\n // in that the reversion probability is lower\n const performAggregatedSlippageCheck =\n this.trade.tradeType === TradeType.EXACT_INPUT && this.trade.routes.length > 2\n const outputIsNative = this.trade.outputAmount.currency.isNative\n const inputIsNative = this.trade.inputAmount.currency.isNative\n const routerMustCustody = performAggregatedSlippageCheck || outputIsNative\n\n for (const swap of this.trade.swaps) {\n switch (swap.route.protocol) {\n case Protocol.V2:\n addV2Swap(planner, swap, this.trade.tradeType, this.options, payerIsUser, routerMustCustody)\n break\n case Protocol.V3:\n addV3Swap(planner, swap, this.trade.tradeType, this.options, payerIsUser, routerMustCustody)\n break\n case Protocol.MIXED:\n addMixedSwap(planner, swap, this.trade.tradeType, this.options, payerIsUser, routerMustCustody)\n break\n default:\n throw new Error('UNSUPPORTED_TRADE_PROTOCOL')\n }\n }\n\n if (routerMustCustody) {\n if (outputIsNative) {\n planner.addCommand(CommandType.UNWRAP_WETH, [\n this.options.recipient,\n this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString(),\n ])\n } else {\n planner.addCommand(CommandType.SWEEP, [\n this.trade.outputAmount.currency.wrapped.address,\n this.options.recipient,\n this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString(),\n ])\n }\n }\n\n if (inputIsNative && (this.trade.tradeType === TradeType.EXACT_OUTPUT || riskOfPartialFill(this.trade))) {\n // for exactOutput swaps that take native currency as input\n // we need to send back the change to the user\n planner.addCommand(CommandType.UNWRAP_WETH, [this.options.recipient, 0])\n }\n }\n}\n\n// encode a uniswap v2 swap\nfunction addV2Swap<TInput extends Currency, TOutput extends Currency>(\n planner: RoutePlanner,\n { route, inputAmount, outputAmount }: Swap<TInput, TOutput>,\n tradeType: TradeType,\n options: SwapOptions,\n payerIsUser: boolean,\n routerMustCustody: boolean\n): void {\n const trade = new V2Trade(\n route as RouteV2<TInput, TOutput>,\n tradeType == TradeType.EXACT_INPUT ? inputAmount : outputAmount,\n tradeType\n )\n\n if (tradeType == TradeType.EXACT_INPUT) {\n planner.addCommand(CommandType.V2_SWAP_EXACT_IN, [\n trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),\n trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),\n route.path.map((pool) => pool.address),\n // if native, we have to unwrap so keep in the router for now\n routerMustCustody ? ADDRESS_THIS : options.recipient,\n payerIsUser,\n ])\n } else if (tradeType == TradeType.EXACT_OUTPUT) {\n planner.addCommand(CommandType.V2_SWAP_EXACT_OUT, [\n trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),\n trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),\n route.path.map((pool) => pool.address),\n routerMustCustody ? ADDRESS_THIS : options.recipient,\n payerIsUser,\n ])\n }\n}\n\n// encode a uniswap v3 swap\nfunction addV3Swap<TInput extends Currency, TOutput extends Currency>(\n planner: RoutePlanner,\n { route, inputAmount, outputAmount }: Swap<TInput, TOutput>,\n tradeType: TradeType,\n options: SwapOptions,\n payerIsUser: boolean,\n routerMustCustody: boolean\n): void {\n const trade = V3Trade.createUncheckedTrade({\n route: route as RouteV3<TInput, TOutput>,\n inputAmount,\n outputAmount,\n tradeType,\n })\n\n const path = encodeRouteToPath(route as RouteV3<TInput, TOutput>, trade.tradeType === TradeType.EXACT_OUTPUT)\n if (tradeType == TradeType.EXACT_INPUT) {\n planner.addCommand(CommandType.V3_SWAP_EXACT_IN, [\n routerMustCustody ? ADDRESS_THIS : options.recipient,\n trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),\n trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),\n path,\n payerIsUser,\n ])\n } else if (tradeType == TradeType.EXACT_OUTPUT) {\n planner.addCommand(CommandType.V3_SWAP_EXACT_OUT, [\n routerMustCustody ? ADDRESS_THIS : options.recipient,\n trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),\n trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),\n path,\n payerIsUser,\n ])\n }\n}\n\n// encode a mixed route swap, i.e. including both v2 and v3 pools\nfunction addMixedSwap<TInput extends Currency, TOutput extends Currency>(\n planner: RoutePlanner,\n swap: Swap<TInput, TOutput>,\n tradeType: TradeType,\n options: SwapOptions,\n payerIsUser: boolean,\n routerMustCustody: boolean\n): void {\n const { route, inputAmount, outputAmount } = swap\n const tradeRecipient = routerMustCustody ? ADDRESS_THIS : options.recipient\n\n // single hop, so it can be reduced to plain v2 or v3 swap logic\n if (route.pools.length === 1) {\n if (route.pools[0] instanceof Pool) {\n return addV3Swap(planner, swap, tradeType, options, payerIsUser, routerMustCustody)\n } else if (route.pools[0] instanceof Pair) {\n return addV2Swap(planner, swap, tradeType, options, payerIsUser, routerMustCustody)\n } else {\n throw new Error('Invalid route type')\n }\n }\n\n const trade = MixedRouteTrade.createUncheckedTrade({\n route: route as MixedRoute<TInput, TOutput>,\n inputAmount,\n outputAmount,\n tradeType,\n })\n\n const amountIn = trade.maximumAmountIn(options.slippageTolerance, inputAmount).quotient.toString()\n const amountOut = trade.minimumAmountOut(options.slippageTolerance, outputAmount).quotient.toString()\n\n // logic from\n // https://github.com/Uniswap/router-sdk/blob/d8eed164e6c79519983844ca8b6a3fc24ebcb8f8/src/swapRouter.ts#L276\n const sections = partitionMixedRouteByProtocol(route as MixedRoute<TInput, TOutput>)\n const isLastSectionInRoute = (i: number) => {\n return i === sections.length - 1\n }\n\n let outputToken\n let inputToken = route.input.wrapped\n\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i]\n /// Now, we get output of this section\n outputToken = getOutputOfPools(section, inputToken)\n\n const newRouteOriginal = new MixedRouteSDK(\n [...section],\n section[0].token0.equals(inputToken) ? section[0].token0 : section[0].token1,\n outputToken\n )\n const newRoute = new MixedRoute(newRouteOriginal)\n\n /// Previous output is now input\n inputToken = outputToken\n\n const mixedRouteIsAllV3 = (route: MixedRouteSDK<Currency, Currency>) => {\n return route.pools.every((pool) => pool instanceof Pool)\n }\n\n if (mixedRouteIsAllV3(newRoute)) {\n const path: string = encodeMixedRouteToPath(newRoute)\n\n planner.addCommand(CommandType.V3_SWAP_EXACT_IN, [\n // if not last section: send tokens directly to the first v2 pair of the next section\n // note: because of the partitioning function we can be sure that the next section is v2\n isLastSectionInRoute(i) ? tradeRecipient : (sections[i + 1][0] as Pair).liquidityToken.address,\n i == 0 ? amountIn : CONTRACT_BALANCE, // amountIn\n !isLastSectionInRoute(i) ? 0 : amountOut, // amountOut\n path, // path\n payerIsUser && i === 0, // payerIsUser\n ])\n } else {\n planner.addCommand(CommandType.V2_SWAP_EXACT_IN, [\n i === 0 ? amountIn : CONTRACT_BALANCE, // amountIn\n !isLastSectionInRoute(i) ? 0 : amountOut, // amountOutMin\n newRoute.path.map((pool) => pool.address), // path\n isLastSectionInRoute(i) ? tradeRecipient : ADDRESS_THIS, // recipient\n payerIsUser && i === 0,\n ])\n }\n }\n}\n\n// if price impact is very high, there's a chance of hitting max/min prices resulting in a partial fill of the swap\nfunction riskOfPartialFill(trade: RouterTrade<Currency, Currency, TradeType>): boolean {\n return trade.priceImpact.greaterThan(REFUND_ETH_PRICE_IMPACT_THRESHOLD)\n}\n","import { PermitSingle } from '@uniswap/permit2-sdk'\nimport { CommandType, RoutePlanner } from './routerCommands'\n\nexport interface Permit2Permit extends PermitSingle {\n signature: string\n}\n\nexport function encodePermit(planner: RoutePlanner, permit: Permit2Permit): void {\n planner.addCommand(CommandType.PERMIT, [permit, permit.signature])\n}\n","import invariant from 'tiny-invariant'\nimport { abi } from '@uniswap/narwhal/artifacts/contracts/Router.sol/Router.json'\nimport { Interface } from '@ethersproject/abi'\nimport { BigNumber, BigNumberish } from 'ethers'\nimport { MethodParameters } from '@uniswap/v3-sdk'\nimport { Trade as RouterTrade } from '@uniswap/router-sdk'\nimport { Currency, TradeType, Token } from '@uniswap/sdk-core'\nimport { NFTTrade, SupportedProtocolsData } from './entities/NFTTrade'\nimport { UniswapTrade, SwapOptions } from './entities/protocols/uniswap'\nimport { CommandType, RoutePlanner } from './utils/routerCommands'\nimport { encodePermit } from './utils/permit2'\nimport { ETH_ADDRESS } from './utils/constants'\n\nexport type SwapRouterConfig = {\n sender?: string // address\n deadline?: BigNumberish\n}\n\nexport abstract class SwapRouter {\n public static INTERFACE: Interface = new Interface(abi)\n\n /**\n * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given swap.\n * @param trades to produce call parameters for\n */\n public static swapGenieCallParameters(\n trades: NFTTrade<SupportedProtocolsData>[],\n config: SwapRouterConfig\n ): MethodParameters {\n invariant(!!config.sender, 'SENDER_REQUIRED')\n let planner = new RoutePlanner()\n let totalPrice = BigNumber.from(0)\n\n const allowRevert = trades.length == 1 && trades[0].orders.length == 1 ? false : true\n\n for (const trade of trades) {\n trade.encode(planner, { allowRevert })\n totalPrice = totalPrice.add(trade.getTotalPrice())\n }\n\n planner.addCommand(CommandType.SWEEP, [ETH_ADDRESS, config.sender, 0])\n return SwapRouter.encodePlan(planner, totalPrice, config)\n }\n\n /**\n * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given trade.\n * @param trades to produce call parameters for\n * @param options options for the call parameters\n */\n public static swapERC20CallParameters(\n trades: RouterTrade<Currency, Currency, TradeType>,\n options: SwapOptions\n ): MethodParameters {\n // TODO: use permit if signature included in options\n const planner = new RoutePlanner()\n\n const trade: UniswapTrade = new UniswapTrade(trades, options)\n\n const inputCurrency = trade.trade.inputAmount.currency\n invariant(!(inputCurrency.isNative && !!options.inputTokenPermit), 'NATIVE_INPUT_PERMIT')\n if (options.inputTokenPermit && inputCurrency instanceof Token) {\n encodePermit(planner, options.inputTokenPermit)\n }\n\n const nativeCurrencyValue = inputCurrency.isNative\n ? BigNumber.from(trade.trade.maximumAmountIn(options.slippageTolerance).quotient.toString())\n : BigNumber.from(0)\n\n trade.encode(planner, { allowRevert: false })\n return SwapRouter.encodePlan(planner, nativeCurrencyValue, {\n deadline: options.deadlineOrPreviousBlockhash ? BigNumber.from(options.deadlineOrPreviousBlockhash) : undefined,\n })\n }\n\n /**\n * Encodes a planned route into a method name and parameters for the Router contract.\n * @param planner the planned route\n * @param nativeCurrencyValue the native currency value of the planned route\n * @param config the router config\n */\n private static encodePlan(\n planner: RoutePlanner,\n nativeCurrencyValue: BigNumber,\n config: SwapRouterConfig = {}\n ): MethodParameters {\n const { commands, inputs } = planner\n\n const functionSignature = !!config.deadline ? 'execute(bytes,bytes[],uint256)' : 'execute(bytes,bytes[])'\n const parameters = !!config.deadline ? [commands, inputs, config.deadline] : [commands, inputs]\n const calldata = SwapRouter.INTERFACE.encodeFunctionData(functionSignature, parameters)\n return { calldata, value: nativeCurrencyValue.toString() }\n }\n}\n","import invariant from 'tiny-invariant'\nimport { BigNumberish } from 'ethers'\nimport { SeaportData } from './protocols/seaport'\nimport { FoundationData } from './protocols/foundation'\nimport { NFTXData } from './protocols/nftx'\nimport { NFT20Data } from './protocols/nft20'\nimport { RoutePlanner } from '../utils/routerCommands'\nimport { Command, TradeConfig } from './Command'\nimport { LooksRareData } from './protocols/looksRare'\nimport { SudoswapData } from './protocols/sudoswap'\nimport { CryptopunkData } from './protocols/cryptopunk'\nimport { X2Y2Data } from './protocols/x2y2'\n\nexport type SupportedProtocolsData =\n | SeaportData\n | FoundationData\n | NFTXData\n | LooksRareData\n | X2Y2Data\n | CryptopunkData\n | NFT20Data\n | SudoswapData\n\nexport abstract class NFTTrade<T> implements Command {\n readonly orders: T[]\n readonly market: Market\n\n constructor(market: Market, orders: T[]) {\n invariant(orders.length > 0, 'no buy Items')\n this.market = market\n this.orders = orders\n }\n\n abstract encode(planner: RoutePlanner, config: TradeConfig): void\n\n abstract getBuyItems(): BuyItem[]\n\n abstract getTotalPrice(): BigNumberish\n}\n\nexport type BuyItem = {\n tokenAddress: string\n tokenId: BigNumberish\n tokenType: TokenType\n amount?: BigNumberish // for 1155\n}\n\nexport enum Market {\n Foundation = 'foundation',\n LooksRare = 'looksrare',\n NFT20 = 'nft20',\n NFTX = 'nftx',\n Seaport = 'seaport',\n Sudoswap = 'Sudoswap',\n Cryptopunks = 'cryptopunks',\n X2Y2 = 'x2y2',\n}\n\nexport enum TokenType {\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n Cryptopunk = 'Cryptopunk',\n}\n","import { TradeConfig } from '../Command'\nimport { NFTTrade, Market, TokenType, BuyItem } from '../NFTTrade'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\n\nexport type CryptopunkData = {\n tokenId: BigNumberish\n recipient: string\n value: BigNumberish\n}\n\nexport class CryptopunkTrade extends NFTTrade<CryptopunkData> {\n public static CRYPTOPUNK_ADDRESS: string = '0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb'\n\n constructor(orders: CryptopunkData[]) {\n super(Market.Cryptopunks, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const item of this.orders) {\n planner.addCommand(CommandType.CRYPTOPUNKS, [item.tokenId, item.recipient, item.value], config.allowRevert)\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const item of this.orders) {\n buyItems.push({\n tokenAddress: CryptopunkTrade.CRYPTOPUNK_ADDRESS,\n tokenId: item.tokenId,\n tokenType: TokenType.Cryptopunk,\n })\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const item of this.orders) {\n total = total.add(item.value)\n }\n return total\n }\n}\n","import abi from '../../../abis/Foundation.json'\nimport { Interface } from '@ethersproject/abi'\nimport { BuyItem, Market, NFTTrade, TokenType } from '../NFTTrade'\nimport { TradeConfig } from '../Command'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\n\nexport type FoundationData = {\n recipient: string\n tokenAddress: string\n tokenId: BigNumberish\n price: BigNumberish\n referrer: string // address\n}\n\nexport class FoundationTrade extends NFTTrade<FoundationData> {\n public static INTERFACE: Interface = new Interface(abi)\n\n constructor(orders: FoundationData[]) {\n super(Market.Foundation, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const item of this.orders) {\n const calldata = FoundationTrade.INTERFACE.encodeFunctionData('buyV2', [\n item.tokenAddress,\n item.tokenId,\n item.price,\n item.referrer,\n ])\n planner.addCommand(\n CommandType.FOUNDATION,\n [item.price, calldata, item.recipient, item.tokenAddress, item.tokenId],\n config.allowRevert\n )\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const item of this.orders) {\n buyItems.push({\n tokenAddress: item.tokenAddress,\n tokenId: item.tokenId,\n tokenType: TokenType.ERC721,\n })\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const item of this.orders) {\n total = total.add(item.price)\n }\n return total\n }\n}\n","import invariant from 'tiny-invariant'\nimport abi from '../../../abis/LooksRare.json'\nimport { Interface } from '@ethersproject/abi'\nimport { BuyItem, Market, NFTTrade, TokenType } from '../NFTTrade'\nimport { TradeConfig } from '../Command'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\n\nexport type MakerOrder = {\n collection: string\n tokenId: BigNumberish\n isOrderAsk: true\n signer: string\n strategy: string\n currency: string\n amount: BigNumberish\n price: BigNumberish\n minPercentageToAsk: BigNumberish\n nonce: BigNumberish\n startTime: BigNumberish\n endTime: BigNumberish\n v: BigNumberish\n r: string\n s: string\n params: string\n}\n\nexport type TakerOrder = {\n minPercentageToAsk: BigNumberish\n price: BigNumberish\n taker: string\n tokenId: BigNumberish\n isOrderAsk: boolean\n params: string\n}\n\nexport type LooksRareData = {\n makerOrder: MakerOrder\n takerOrder: TakerOrder\n recipient: string\n tokenType: TokenType\n}\n\nexport class LooksRareTrade extends NFTTrade<LooksRareData> {\n public static INTERFACE: Interface = new Interface(abi)\n\n constructor(orders: LooksRareData[]) {\n super(Market.LooksRare, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const item of this.orders) {\n const calldata = LooksRareTrade.INTERFACE.encodeFunctionData('matchAskWithTakerBidUsingETHAndWETH', [\n item.takerOrder,\n item.makerOrder,\n ])\n\n if (item.tokenType == TokenType.ERC721) {\n invariant(item.makerOrder.amount == 1, 'ERC721 token amount must be 1')\n planner.addCommand(\n CommandType.LOOKS_RARE_721,\n [item.makerOrder.price, calldata, item.recipient, item.makerOrder.collection, item.makerOrder.tokenId],\n config.allowRevert\n )\n } else if (item.tokenType == TokenType.ERC1155) {\n planner.addCommand(\n CommandType.LOOKS_RARE_1155,\n [\n item.makerOrder.price,\n calldata,\n item.recipient,\n item.makerOrder.collection,\n item.makerOrder.tokenId,\n item.makerOrder.amount,\n ],\n config.allowRevert\n )\n }\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const item of this.orders) {\n buyItems.push({\n tokenAddress: item.makerOrder.collection,\n tokenId: item.makerOrder.tokenId,\n tokenType: item.tokenType,\n })\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const item of this.orders) {\n total = total.add(item.makerOrder.price)\n }\n return total\n }\n}\n","import abi from '../../../abis/NFT20.json'\nimport { Interface } from '@ethersproject/abi'\nimport { TradeConfig } from '../Command'\nimport { NFTTrade, Market, TokenType, BuyItem } from '../NFTTrade'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\n\nexport type NFT20Data = {\n tokenAddress: string\n tokenIds: BigNumberish[]\n tokenAmounts: BigNumberish[]\n recipient: string\n fee: BigNumberish\n isV3: boolean\n value: BigNumberish\n}\n\nexport class NFT20Trade extends NFTTrade<NFT20Data> {\n public static INTERFACE: Interface = new Interface(abi)\n\n constructor(orders: NFT20Data[]) {\n super(Market.NFT20, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const order of this.orders) {\n const calldata = NFT20Trade.INTERFACE.encodeFunctionData('ethForNft', [\n order.tokenAddress,\n order.tokenIds,\n order.tokenAmounts,\n order.recipient,\n order.fee,\n order.isV3,\n ])\n planner.addCommand(CommandType.NFT20, [order.value, calldata], config.allowRevert)\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const pool of this.orders) {\n for (const tokenId of pool.tokenIds) {\n buyItems.push({\n tokenAddress: pool.tokenAddress,\n tokenId: tokenId,\n tokenType: TokenType.ERC721,\n })\n }\n }\n\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const item of this.orders) {\n total = total.add(item.value)\n }\n return total\n }\n}\n","import abi from '../../../abis/NFTXZap.json'\nimport { Interface } from '@ethersproject/abi'\nimport { BuyItem, Market, NFTTrade, TokenType } from '../NFTTrade'\nimport { TradeConfig } from '../Command'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\nimport { Ether } from '@uniswap/sdk-core'\n\nexport type NFTXData = {\n recipient: string\n vaultAddress: string\n vaultId: BigNumberish\n tokenAddress: string\n tokenIds: BigNumberish[]\n value: BigNumber\n}\n\nexport class NFTXTrade extends NFTTrade<NFTXData> {\n public static INTERFACE: Interface = new Interface(abi)\n\n constructor(orders: NFTXData[]) {\n super(Market.NFTX, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const order of this.orders) {\n const calldata = NFTXTrade.INTERFACE.encodeFunctionData('buyAndRedeem', [\n order.vaultId,\n order.tokenIds.length,\n order.tokenIds,\n [Ether.onChain(1).wrapped.address, order.vaultAddress],\n order.recipient,\n ])\n planner.addCommand(CommandType.NFTX, [order.value, calldata], config.allowRevert)\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const order of this.orders) {\n for (const tokenId of order.tokenIds) {\n buyItems.push({\n tokenAddress: order.tokenAddress,\n tokenId: tokenId,\n tokenType: TokenType.ERC721,\n })\n }\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const item of this.orders) {\n total = total.add(item.value)\n }\n return total\n }\n}\n","import abi from '../../../abis/Seaport.json'\nimport { BigNumber, BigNumberish } from 'ethers'\nimport { Interface } from '@ethersproject/abi'\nimport { BuyItem, Market, NFTTrade, TokenType } from '../NFTTrade'\nimport { TradeConfig } from '../Command'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\n\nexport type SeaportData = {\n items: Order[]\n recipient: string // address\n}\n\nexport type FulfillmentComponent = {\n orderIndex: BigNumberish\n itemIndex: BigNumberish\n}\n\nexport type OfferItem = {\n itemType: BigNumberish // enum\n token: string // address\n identifierOrCriteria: BigNumberish\n startAmount: BigNumberish\n endAmount: BigNumberish\n}\n\nexport type ConsiderationItem = OfferItem & {\n recipient: string\n}\n\nexport type Order = {\n parameters: OrderParameters\n signature: string\n}\n\ntype OrderParameters = {\n offerer: string // address,\n offer: OfferItem[]\n consideration: ConsiderationItem[]\n orderType: BigNumberish // enum\n startTime: BigNumberish\n endTime: BigNumberish\n zoneHash: string // bytes32\n zone: string // address\n salt: BigNumberish\n conduitKey: string // bytes32,\n totalOriginalConsiderationItems: BigNumberish\n}\n\nexport type AdvancedOrder = Order & {\n numerator: BigNumber // uint120\n denominator: BigNumber // uint120\n extraData: string // bytes\n}\n\nexport class SeaportTrade extends NFTTrade<SeaportData> {\n public static INTERFACE: Interface = new Interface(abi)\n public static OPENSEA_CONDUIT_KEY: string = '0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000'\n\n constructor(orders: SeaportData[]) {\n super(Market.Seaport, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const order of this.orders) {\n let advancedOrders: AdvancedOrder[] = []\n let orderFulfillments: FulfillmentComponent[][] = order.items.map((_, index) => [\n { orderIndex: index, itemIndex: 0 },\n ])\n let considerationFulFillments: FulfillmentComponent[][] = this.getConsiderationFulfillments(order.items)\n\n for (const item of order.items) {\n const { advancedOrder } = this.getAdvancedOrderParams(item)\n advancedOrders.push(advancedOrder)\n }\n\n let calldata: string\n if (advancedOrders.length == 1) {\n calldata = SeaportTrade.INTERFACE.encodeFunctionData('fulfillAdvancedOrder', [\n advancedOrders[0],\n [],\n SeaportTrade.OPENSEA_CONDUIT_KEY,\n order.recipient,\n ])\n } else {\n calldata = SeaportTrade.INTERFACE.encodeFunctionData('fulfillAvailableAdvancedOrders', [\n advancedOrders,\n [],\n orderFulfillments,\n considerationFulFillments,\n SeaportTrade.OPENSEA_CONDUIT_KEY,\n order.recipient,\n 100, // TODO: look into making this a better number\n ])\n }\n planner.addCommand(CommandType.SEAPORT, [this.getTotalPrice().toString(), calldata], config.allowRevert)\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const order of this.orders) {\n for (const item of order.items) {\n for (const offer of item.parameters.offer) {\n buyItems.push({\n tokenAddress: offer.token,\n tokenId: offer.identifierOrCriteria,\n tokenType: TokenType.ERC721,\n })\n }\n }\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumber {\n let totalPrice = BigNumber.from(0)\n for (const order of this.orders) {\n for (const item of order.items) {\n totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration))\n }\n }\n return totalPrice\n }\n\n private getConsiderationFulfillments(protocolDatas: Order[]): FulfillmentComponent[][] {\n let considerationFulfillments: FulfillmentComponent[][] = []\n const considerationRecipients: string[] = []\n\n for (const i in protocolDatas) {\n const protocolData = protocolDatas[i]\n\n for (const j in protocolData.parameters.consideration) {\n const item = protocolData.parameters.consideration[j]\n\n if (considerationRecipients.findIndex((x) => x === item.recipient) === -1) {\n considerationRecipients.push(item.recipient)\n }\n\n const recipientIndex = considerationRecipients.findIndex((x) => x === item.recipient)\n\n if (!considerationFulfillments[recipientIndex]) {\n considerationFulfillments.push([\n {\n orderIndex: i,\n itemIndex: j,\n },\n ])\n } else {\n considerationFulfillments[recipientIndex].push({\n orderIndex: i,\n itemIndex: j,\n })\n }\n }\n }\n return considerationFulfillments\n }\n\n private getAdvancedOrderParams(data: Order): { advancedOrder: AdvancedOrder; value: BigNumber } {\n const advancedOrder = {\n parameters: data.parameters,\n numerator: BigNumber.from('1'),\n denominator: BigNumber.from('1'),\n signature: data.signature,\n extraData: '0x00',\n }\n const value = this.calculateValue(data.parameters.consideration)\n return { advancedOrder, value }\n }\n\n private calculateValue(considerations: ConsiderationItem[]): BigNumber {\n return considerations.reduce(\n (amt: BigNumber, consideration: ConsiderationItem) => amt.add(consideration.startAmount),\n BigNumber.from(0)\n )\n }\n}\n","import abi from '../../../abis/Sudoswap.json'\nimport { Interface } from '@ethersproject/abi'\nimport { BuyItem, Market, NFTTrade, TokenType } from '../NFTTrade'\nimport { TradeConfig } from '../Command'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\n\ntype PairSwap = {\n swapInfo: {\n pair: string // address\n nftIds: BigNumberish[]\n }\n tokenAddress: string // address\n maxCost: BigNumberish\n}\n\nexport type SudoswapData = {\n swaps: PairSwap[]\n nftRecipient: string\n ethRecipient: string\n deadline: BigNumberish\n}\n\nexport class SudoswapTrade extends NFTTrade<SudoswapData> {\n public static INTERFACE: Interface = new Interface(abi)\n\n constructor(orders: SudoswapData[]) {\n super(Market.Sudoswap, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const order of this.orders) {\n const calldata = SudoswapTrade.INTERFACE.encodeFunctionData('robustSwapETHForSpecificNFTs', [\n order.swaps.map((swap) => {\n return { swapInfo: swap.swapInfo, maxCost: swap.maxCost }\n }),\n order.ethRecipient,\n order.nftRecipient,\n order.deadline,\n ])\n const value = order.swaps.reduce((prevVal, swap) => {\n return prevVal.add(swap.maxCost)\n }, BigNumber.from(0))\n planner.addCommand(CommandType.SUDOSWAP, [value, calldata], config.allowRevert)\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const order of this.orders) {\n for (const swap of order.swaps) {\n for (const tokenId of swap.swapInfo.nftIds) {\n buyItems.push({\n tokenAddress: swap.tokenAddress,\n tokenId,\n tokenType: TokenType.ERC721,\n })\n }\n }\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const order of this.orders) {\n for (const swap of order.swaps) {\n total = total.add(swap.maxCost)\n }\n }\n return total\n }\n}\n","import abi from '../../../abis/X2Y2.json'\nimport { Interface } from '@ethersproject/abi'\nimport { BuyItem, Market, NFTTrade, TokenType } from '../NFTTrade'\nimport { TradeConfig } from '../Command'\nimport { RoutePlanner, CommandType } from '../../utils/routerCommands'\nimport { BigNumber, BigNumberish } from 'ethers'\n\ntype X2Y2PartialData = {\n signedInput: string\n recipient: string\n tokenAddress: string\n tokenId: BigNumberish\n price: BigNumberish\n}\n\nexport type X2Y2_721_Data = X2Y2PartialData & {\n tokenType: TokenType.ERC721\n}\n\nexport type X2Y2_1155_Data = X2Y2PartialData & {\n tokenType: TokenType.ERC1155\n tokenAmount: BigNumberish\n}\n\nexport type X2Y2Data = X2Y2_721_Data | X2Y2_1155_Data\n\nexport class X2Y2Trade extends NFTTrade<X2Y2Data> {\n public static INTERFACE: Interface = new Interface(abi)\n\n constructor(orders: X2Y2Data[]) {\n super(Market.X2Y2, orders)\n }\n\n encode(planner: RoutePlanner, config: TradeConfig): void {\n for (const item of this.orders) {\n const functionSelector = X2Y2Trade.INTERFACE.getSighash(X2Y2Trade.INTERFACE.getFunction('run'))\n const calldata = functionSelector + item.signedInput.slice(2)\n\n if (item.tokenType == TokenType.ERC721) {\n planner.addCommand(\n CommandType.X2Y2_721,\n [item.price, calldata, item.recipient, item.tokenAddress, item.tokenId],\n config.allowRevert\n )\n } else if (item.tokenType == TokenType.ERC1155) {\n planner.addCommand(\n CommandType.X2Y2_1155,\n [item.price, calldata, item.recipient, item.tokenAddress, item.tokenId, item.tokenAmount],\n config.allowRevert\n )\n }\n }\n }\n\n getBuyItems(): BuyItem[] {\n let buyItems: BuyItem[] = []\n for (const item of this.orders) {\n buyItems.push({\n tokenAddress: item.tokenAddress,\n tokenId: item.tokenId,\n tokenType: item.tokenType,\n })\n }\n return buyItems\n }\n\n getTotalPrice(): BigNumberish {\n let total = BigNumber.from(0)\n for (const item of this.orders) {\n total = total.add(item.price)\n }\n return total\n }\n}\n"],"names":["CommandType","PERMIT_STRUCT","PERMIT_BATCH_STRUCT","ALLOW_REVERT_FLAG","REVERTABLE_COMMANDS","Set","SEAPORT","NFTX","LOOKS_RARE_721","LOOKS_RARE_1155","X2Y2_721","X2Y2_1155","FOUNDATION","SUDOSWAP","NFT20","ABI_DEFINITION","PERMIT","PERMIT2_PERMIT_BATCH","PERMIT2_TRANSFER_FROM","PERMIT2_TRANSFER_FROM_BATCH","TRANSFER","V3_SWAP_EXACT_IN","V3_SWAP_EXACT_OUT","V2_SWAP_EXACT_IN","V2_SWAP_EXACT_OUT","WRAP_ETH","UNWRAP_WETH","SWEEP","PAY_PORTION","OWNER_CHECK_721","OWNER_CHECK_1155","CRYPTOPUNKS","RoutePlanner","commands","inputs","addCommand","type","parameters","allowRevert","command","createCommand","push","encodedInput","has","Error","concat","toString","padStart","defaultAbiCoder","encode","CONTRACT_BALANCE","BigNumber","from","pow","ETH_ADDRESS","MSG_SENDER","ADDRESS_THIS","REFUND_ETH_PRICE_IMPACT_THRESHOLD","Percent","JSBI","BigInt","UniswapTrade","trade","options","planner","_config","payerIsUser","inputAmount","currency","isNative","maximumAmountIn","slippageTolerance","quotient","recipient","performAggregatedSlippageCheck","tradeType","TradeType","EXACT_INPUT","routes","length","outputIsNative","outputAmount","inputIsNative","routerMustCustody","swaps","swap","route","protocol","Protocol","V2","addV2Swap","V3","addV3Swap","MIXED","addMixedSwap","minimumAmountOut","wrapped","address","EXACT_OUTPUT","riskOfPartialFill","V2Trade","path","map","pool","V3Trade","createUncheckedTrade","encodeRouteToPath","tradeRecipient","pools","Pool","Pair","MixedRouteTrade","amountIn","amountOut","sections","partitionMixedRouteByProtocol","isLastSectionInRoute","i","outputToken","inputToken","input","section","getOutputOfPools","newRouteOriginal","MixedRouteSDK","token0","equals","token1","newRoute","MixedRoute","mixedRouteIsAllV3","every","encodeMixedRouteToPath","liquidityToken","priceImpact","greaterThan","encodePermit","permit","signature","SwapRouter","swapGenieCallParameters","trades","config","sender","invariant","totalPrice","orders","add","getTotalPrice","encodePlan","swapERC20CallParameters","inputCurrency","inputTokenPermit","Token","nativeCurrencyValue","deadline","deadlineOrPreviousBlockhash","undefined","functionSignature","calldata","INTERFACE","encodeFunctionData","value","Interface","abi","NFTTrade","market","Market","TokenType","CryptopunkTrade","Cryptopunks","item","tokenId","getBuyItems","buyItems","tokenAddress","CRYPTOPUNK_ADDRESS","tokenType","Cryptopunk","total","FoundationTrade","Foundation","price","referrer","ERC721","LooksRareTrade","LooksRare","takerOrder","makerOrder","amount","collection","ERC1155","NFT20Trade","order","tokenIds","tokenAmounts","fee","isV3","NFTXTrade","vaultId","Ether","onChain","vaultAddress","SeaportTrade","Seaport","advancedOrders","orderFulfillments","items","_","index","orderIndex","itemIndex","considerationFulFillments","getConsiderationFulfillments","getAdvancedOrderParams","advancedOrder","OPENSEA_CONDUIT_KEY","offer","token","identifierOrCriteria","calculateValue","consideration","protocolDatas","considerationFulfillments","considerationRecipients","protocolData","j","findIndex","x","recipientIndex","data","numerator","denominator","extraData","considerations","reduce","amt","startAmount","SudoswapTrade","Sudoswap","swapInfo","maxCost","ethRecipient","nftRecipient","prevVal","nftIds","X2Y2Trade","X2Y2","functionSelector","getSighash","getFunction","signedInput","slice","tokenAmount"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICoC5CuC,YAAa;EAAA;EAIxB,sBAAYzD,MAAqB;WAC/B,qBAAMqB,cAAM,CAACqC,OAAO,EAAE1D,MAAM,CAAC;;EAC9B;EAAA,OAEDjG,MAAM,GAAN,gBAAOe,OAAqB,EAAE8E,MAAmB;IAC/C,qDAAoB,IAAI,CAACI,MAAM,wCAAE;MAAA,IAAtB+C,KAAK;MACd,IAAIY,cAAc,GAAoB,EAAE;MACxC,IAAIC,iBAAiB,GAA6Bb,KAAK,CAACc,KAAK,CAACzG,GAAG,CAAC,UAAC0G,CAAC,EAAEC,KAAK;QAAA,OAAK,CAC9E;UAAEC,UAAU,EAAED,KAAK;UAAEE,SAAS,EAAE;SAAG,CACpC;QAAC;MACF,IAAIC,yBAAyB,GAA6B,IAAI,CAACC,4BAA4B,CAACpB,KAAK,CAACc,KAAK,CAAC;MAExG,sDAAmBd,KAAK,CAACc,KAAK,2CAAE;QAAA,IAArBpC,IAAI;QACb,4BAA0B,IAAI,CAAC2C,sBAAsB,CAAC3C,IAAI,CAAC;UAAnD4C,aAAa,yBAAbA,aAAa;QACrBV,cAAc,CAACpK,IAAI,CAAC8K,aAAa,CAAC;;MAGpC,IAAIxD,QAAgB;MACpB,IAAI8C,cAAc,CAAC9H,MAAM,IAAI,CAAC,EAAE;QAC9BgF,QAAQ,GAAG4C,YAAY,CAAC3C,SAAS,CAACC,kBAAkB,CAAC,sBAAsB,EAAE,CAC3E4C,cAAc,CAAC,CAAC,CAAC,EACjB,EAAE,EACFF,YAAY,CAACa,mBAAmB,EAChCvB,KAAK,CAACxH,SAAS,CAChB,CAAC;OACH,MAAM;QACLsF,QAAQ,GAAG4C,YAAY,CAAC3C,SAAS,CAACC,kBAAkB,CAAC,gCAAgC,EAAE,CACrF4C,cAAc,EACd,EAAE,EACFC,iBAAiB,EACjBM,yBAAyB,EACzBT,YAAY,CAACa,mBAAmB,EAChCvB,KAAK,CAACxH,SAAS,EACf,GAAG,CACJ,CAAC;;MAEJT,OAAO,CAAC7B,UAAU,CAACnC,WAAW,CAACM,OAAO,EAAE,CAAC,IAAI,CAAC8I,aAAa,EAAE,CAACtG,QAAQ,EAAE,EAAEiH,QAAQ,CAAC,EAAEjB,MAAM,CAACxG,WAAW,CAAC;;GAE3G;EAAA,OAEDuI,WAAW,GAAX;IACE,IAAIC,QAAQ,GAAc,EAAE;IAC5B,sDAAoB,IAAI,CAAC5B,MAAM,2CAAE;MAAA,IAAtB+C,KAAK;MACd,sDAAmBA,KAAK,CAACc,KAAK,2CAAE;QAAA,IAArBpC,IAAI;QACb,sDAAoBA,IAAI,CAACtI,UAAU,CAACoL,KAAK,2CAAE;UAAA,IAAhCA,KAAK;UACd3C,QAAQ,CAACrI,IAAI,CAAC;YACZsI,YAAY,EAAE0C,KAAK,CAACC,KAAK;YACzB9C,OAAO,EAAE6C,KAAK,CAACE,oBAAoB;YACnC1C,SAAS,EAAET,iBAAS,CAACgB;WACtB,CAAC;;;;IAIR,OAAOV,QAAQ;GAChB;EAAA,OAED1B,aAAa,GAAb;IACE,IAAIH,UAAU,GAAG9F,gBAAS,CAACC,IAAI,CAAC,CAAC,CAAC;IAClC,sDAAoB,IAAI,CAAC8F,MAAM,2CAAE;MAAA,IAAtB+C,KAAK;MACd,sDAAmBA,KAAK,CAACc,KAAK,2CAAE;QAAA,IAArBpC,IAAI;QACb1B,UAAU,GAAGA,UAAU,CAACE,GAAG,CAAC,IAAI,CAACyE,cAAc,CAACjD,IAAI,CAACtI,UAAU,CAACwL,aAAa,CAAC,CAAC;;;IAGnF,OAAO5E,UAAU;GAClB;EAAA,OAEOoE,4BAA4B,GAA5B,sCAA6BS,aAAsB;IACzD,IAAIC,yBAAyB,GAA6B,EAAE;IAC5D,IAAMC,uBAAuB,GAAa,EAAE;IAE5C,KAAK,IAAM3G,CAAC,IAAIyG,aAAa,EAAE;MAC7B,IAAMG,YAAY,GAAGH,aAAa,CAACzG,CAAC,CAAC;MAAA,2BAE1B6G,CAAC;QACV,IAAMvD,IAAI,GAAGsD,YAAY,CAAC5L,UAAU,CAACwL,aAAa,CAACK,CAAC,CAAC;QAErD,IAAIF,uBAAuB,CAACG,SAAS,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC,KAAKzD,IAAI,CAAClG,SAAS;UAAC,KAAK,CAAC,CAAC,EAAE;UACzEuJ,uBAAuB,CAACvL,IAAI,CAACkI,IAAI,CAAClG,SAAS,CAAC;;QAG9C,IAAM4J,cAAc,GAAGL,uBAAuB,CAACG,SAAS,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC,KAAKzD,IAAI,CAAClG,SAAS;UAAC;QAErF,IAAI,CAACsJ,yBAAyB,CAACM,cAAc,CAAC,EAAE;UAC9CN,yBAAyB,CAACtL,IAAI,CAAC,CAC7B;YACEyK,UAAU,EAAE7F,CAAC;YACb8F,SAAS,EAAEe;WACZ,CACF,CAAC;SACH,MAAM;UACLH,yBAAyB,CAACM,cAAc,CAAC,CAAC5L,IAAI,CAAC;YAC7CyK,UAAU,EAAE7F,CAAC;YACb8F,SAAS,EAAEe;WACZ,CAAC;;;MApBN,KAAK,IAAMA,CAAC,IAAID,YAAY,CAAC5L,UAAU,CAACwL,aAAa,EAAE;QAAA,MAA5CK,CAAC;;;IAwBd,OAAOH,yBAAyB;GACjC;EAAA,OAEOT,sBAAsB,GAAtB,gCAAuBgB,IAAW;IACxC,IAAMf,aAAa,GAAG;MACpBlL,UAAU,EAAEiM,IAAI,CAACjM,UAAU;MAC3BkM,SAAS,EAAEpL,gBAAS,CAACC,IAAI,CAAC,GAAG,CAAC;MAC9BoL,WAAW,EAAErL,gBAAS,CAACC,IAAI,CAAC,GAAG,CAAC;MAChCsF,SAAS,EAAE4F,IAAI,CAAC5F,SAAS;MACzB+F,SAAS,EAAE;KACZ;IACD,IAAMvE,KAAK,GAAG,IAAI,CAAC0D,cAAc,CAACU,IAAI,CAACjM,UAAU,CAACwL,aAAa,CAAC;IAChE,OAAO;MAAEN,aAAa,EAAbA,aAAa;MAAErD,KAAK,EAALA;KAAO;GAChC;EAAA,OAEO0D,cAAc,GAAd,wBAAec,cAAmC;IACxD,OAAOA,cAAc,CAACC,MAAM,CAC1B,UAACC,GAAc,EAAEf,aAAgC;MAAA,OAAKe,GAAG,CAACzF,GAAG,CAAC0E,aAAa,CAACgB,WAAW,CAAC;OACxF1L,gBAAS,CAACC,IAAI,CAAC,CAAC,CAAC,CAClB;GACF;EAAA;AAAA,EAzH+BiH,QAAqB;AACvCsC,sBAAS,gBAAc,IAAIxC,eAAS,CAACC,KAAG,CAAC;AACzCuC,gCAAmB,GAAW,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICjCrGmC,aAAc;EAAA;EAGzB,uBAAY5F,MAAsB;WAChC,qBAAMqB,cAAM,CAACwE,QAAQ,EAAE7F,MAAM,CAAC;;EAC/B;EAAA,OAEDjG,MAAM,GAAN,gBAAOe,OAAqB,EAAE8E,MAAmB;IAC/C,qDAAoB,IAAI,CAACI,MAAM,wCAAE;MAAA,IAAtB+C,KAAK;MACd,IAAMlC,QAAQ,GAAG+E,aAAa,CAAC9E,SAAS,CAACC,kBAAkB,CAAC,8BAA8B,EAAE,CAC1FgC,KAAK,CAAC7G,KAAK,CAACkB,GAAG,CAAC,UAACjB,IAAI;QACnB,OAAO;UAAE2J,QAAQ,EAAE3J,IAAI,CAAC2J,QAAQ;UAAEC,OAAO,EAAE5J,IAAI,CAAC4J;SAAS;OAC1D,CAAC,EACFhD,KAAK,CAACiD,YAAY,EAClBjD,KAAK,CAACkD,YAAY,EAClBlD,KAAK,CAACtC,QAAQ,CACf,CAAC;MACF,IAAMO,KAAK,GAAG+B,KAAK,CAAC7G,KAAK,CAACuJ,MAAM,CAAC,UAACS,OAAO,EAAE/J,IAAI;QAC7C,OAAO+J,OAAO,CAACjG,GAAG,CAAC9D,IAAI,CAAC4J,OAAO,CAAC;OACjC,EAAE9L,gBAAS,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;MACrBY,OAAO,CAAC7B,UAAU,CAACnC,WAAW,CAACa,QAAQ,EAAE,CAACqJ,KAAK,EAAEH,QAAQ,CAAC,EAAEjB,MAAM,CAACxG,WAAW,CAAC;;GAElF;EAAA,OAEDuI,WAAW,GAAX;IACE,IAAIC,QAAQ,GAAc,EAAE;IAC5B,sDAAoB,IAAI,CAAC5B,MAAM,2CAAE;MAAA,IAAtB+C,KAAK;MACd,sDAAmBA,KAAK,CAAC7G,KAAK,2CAAE;QAAA,IAArBC,IAAI;QACb,sDAAsBA,IAAI,CAAC2J,QAAQ,CAACK,MAAM,2CAAE;UAAA,IAAjCzE,OAAO;UAChBE,QAAQ,CAACrI,IAAI,CAAC;YACZsI,YAAY,EAAE1F,IAAI,CAAC0F,YAAY;YAC/BH,OAAO,EAAPA,OAAO;YACPK,SAAS,EAAET,iBAAS,CAACgB;WACtB,CAAC;;;;IAIR,OAAOV,QAAQ;GAChB;EAAA,OAED1B,aAAa,GAAb;IACE,IAAI+B,KAAK,GAAGhI,gBAAS,CAACC,IAAI,CAAC,CAAC,CAAC;IAC7B,sDAAoB,IAAI,CAAC8F,MAAM,2CAAE;MAAA,IAAtB+C,KAAK;MACd,sDAAmBA,KAAK,CAAC7G,KAAK,2CAAE;QAAA,IAArBC,IAAI;QACb8F,KAAK,GAAGA,KAAK,CAAChC,GAAG,CAAC9D,IAAI,CAAC4J,OAAO,CAAC;;;IAGnC,OAAO9D,KAAK;GACb;EAAA;AAAA,EAhDgCd,QAAsB;AACzCyE,uBAAS,gBAAc,IAAI3E,eAAS,CAACC,KAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICE5CkF,SAAU;EAAA;EAGrB,mBAAYpG,MAAkB;WAC5B,qBAAMqB,cAAM,CAACgF,IAAI,EAAErG,MAAM,CAAC;;EAC3B;EAAA,OAEDjG,MAAM,GAAN,gBAAOe,OAAqB,EAAE8E,MAAmB;IAC/C,qDAAmB,IAAI,CAACI,MAAM,wCAAE;MAAA,IAArByB,IAAI;MACb,IAAM6E,gBAAgB,GAAGF,SAAS,CAACtF,SAAS,CAACyF,UAAU,CAACH,SAAS,CAACtF,SAAS,CAAC0F,WAAW,CAAC,KAAK,CAAC,CAAC;MAC/F,IAAM3F,QAAQ,GAAGyF,gBAAgB,GAAG7E,IAAI,CAACgF,WAAW,CAACC,KAAK,CAAC,CAAC,CAAC;MAE7D,IAAIjF,IAAI,CAACM,SAAS,IAAIT,iBAAS,CAACgB,MAAM,EAAE;QACtCxH,OAAO,CAAC7B,UAAU,CAChBnC,WAAW,CAACU,QAAQ,EACpB,CAACiK,IAAI,CAACW,KAAK,EAAEvB,QAAQ,EAAEY,IAAI,CAAClG,SAAS,EAAEkG,IAAI,CAACI,YAAY,EAAEJ,IAAI,CAACC,OAAO,CAAC,EACvE9B,MAAM,CAACxG,WAAW,CACnB;OACF,MAAM,IAAIqI,IAAI,CAACM,SAAS,IAAIT,iBAAS,CAACuB,OAAO,EAAE;QAC9C/H,OAAO,CAAC7B,UAAU,CAChBnC,WAAW,CAACW,SAAS,EACrB,CAACgK,IAAI,CAACW,KAAK,EAAEvB,QAAQ,EAAEY,IAAI,CAAClG,SAAS,EAAEkG,IAAI,CAACI,YAAY,EAAEJ,IAAI,CAACC,OAAO,EAAED,IAAI,CAACkF,WAAW,CAAC,EACzF/G,MAAM,CAACxG,WAAW,CACnB;;;GAGN;EAAA,OAEDuI,WAAW,GAAX;IACE,IAAIC,QAAQ,GAAc,EAAE;IAC5B,sDAAmB,IAAI,CAAC5B,MAAM,2CAAE;MAAA,IAArByB,IAAI;MACbG,QAAQ,CAACrI,IAAI,CAAC;QACZsI,YAAY,EAAEJ,IAAI,CAACI,YAAY;QAC/BH,OAAO,EAAED,IAAI,CAACC,OAAO;QACrBK,SAAS,EAAEN,IAAI,CAACM;OACjB,CAAC;;IAEJ,OAAOH,QAAQ;GAChB;EAAA,OAED1B,aAAa,GAAb;IACE,IAAI+B,KAAK,GAAGhI,gBAAS,CAACC,IAAI,CAAC,CAAC,CAAC;IAC7B,sDAAmB,IAAI,CAAC8F,MAAM,2CAAE;MAAA,IAArByB,IAAI;MACbQ,KAAK,GAAGA,KAAK,CAAChC,GAAG,CAACwB,IAAI,CAACW,KAAK,CAAC;;IAE/B,OAAOH,KAAK;GACb;EAAA;AAAA,EA9C4Bd,QAAkB;AACjCiF,mBAAS,gBAAc,IAAInF,eAAS,CAACC,KAAG,CAAC;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t,a=e(require("tiny-invariant")),i=require("@uniswap/narwhal/artifacts/contracts/Router.sol/Router.json"),r=require("@ethersproject/abi"),p=require("ethers"),s=require("@uniswap/sdk-core"),y=e(require("jsbi")),u=require("ethers/lib/utils"),d=require("@uniswap/v2-sdk"),o=require("@uniswap/v3-sdk"),m=require("@uniswap/router-sdk");function l(e,n){var t,a;e.prototype=Object.create(n.prototype),e.prototype.constructor=e,t=e,a=n,(Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e})(t,a)}function T(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t<n;t++)a[t]=e[t];return a}function c(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return T(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?T(e,void 0):void 0}}(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}!function(e){e[e.PERMIT=0]="PERMIT",e[e.TRANSFER=1]="TRANSFER",e[e.V3_SWAP_EXACT_IN=2]="V3_SWAP_EXACT_IN",e[e.V3_SWAP_EXACT_OUT=3]="V3_SWAP_EXACT_OUT",e[e.V2_SWAP_EXACT_IN=4]="V2_SWAP_EXACT_IN",e[e.V2_SWAP_EXACT_OUT=5]="V2_SWAP_EXACT_OUT",e[e.SEAPORT=6]="SEAPORT",e[e.WRAP_ETH=7]="WRAP_ETH",e[e.UNWRAP_WETH=8]="UNWRAP_WETH",e[e.SWEEP=9]="SWEEP",e[e.NFTX=10]="NFTX",e[e.LOOKS_RARE_721=11]="LOOKS_RARE_721",e[e.X2Y2_721=12]="X2Y2_721",e[e.LOOKS_RARE_1155=13]="LOOKS_RARE_1155",e[e.X2Y2_1155=14]="X2Y2_1155",e[e.FOUNDATION=15]="FOUNDATION",e[e.PAY_PORTION=16]="PAY_PORTION",e[e.SUDOSWAP=18]="SUDOSWAP",e[e.NFT20=19]="NFT20",e[e.OWNER_CHECK_721=20]="OWNER_CHECK_721",e[e.OWNER_CHECK_1155=21]="OWNER_CHECK_1155",e[e.CRYPTOPUNKS=22]="CRYPTOPUNKS",e[e.PERMIT2_TRANSFER_FROM=23]="PERMIT2_TRANSFER_FROM",e[e.PERMIT2_TRANSFER_FROM_BATCH=24]="PERMIT2_TRANSFER_FROM_BATCH",e[e.PERMIT2_PERMIT_BATCH=25]="PERMIT2_PERMIT_BATCH"}(t||(t={}));var f=new Set([t.SEAPORT,t.NFTX,t.LOOKS_RARE_721,t.LOOKS_RARE_1155,t.X2Y2_721,t.X2Y2_1155,t.FOUNDATION,t.SUDOSWAP,t.NFT20]),b=((n={})[t.PERMIT]=["((address token,uint160 amount,uint48 expiration,uint48 nonce) details, address spender, uint256 sigDeadline)","bytes"],n[t.PERMIT2_PERMIT_BATCH]=["((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details, address spender, uint256 sigDeadline)","bytes"],n[t.PERMIT2_TRANSFER_FROM]=["address","address","uint160"],n[t.PERMIT2_TRANSFER_FROM_BATCH]=["bytes"],n[t.TRANSFER]=["address","address","uint256"],n[t.V3_SWAP_EXACT_IN]=["address","uint256","uint256","bytes","bool"],n[t.V3_SWAP_EXACT_OUT]=["address","uint256","uint256","bytes","bool"],n[t.V2_SWAP_EXACT_IN]=["uint256","uint256","address[]","address","bool"],n[t.V2_SWAP_EXACT_OUT]=["uint256","uint256","address[]","address","bool"],n[t.SEAPORT]=["uint256","bytes"],n[t.WRAP_ETH]=["address","uint256"],n[t.UNWRAP_WETH]=["address","uint256"],n[t.SWEEP]=["address","address","uint256"],n[t.NFTX]=["uint256","bytes"],n[t.LOOKS_RARE_721]=["uint256","bytes","address","address","uint256"],n[t.LOOKS_RARE_1155]=["uint256","bytes","address","address","uint256","uint256"],n[t.X2Y2_721]=["uint256","bytes","address","address","uint256"],n[t.X2Y2_1155]=["uint256","bytes","address","address","uint256","uint256"],n[t.FOUNDATION]=["uint256","bytes","address","address","uint256"],n[t.PAY_PORTION]=["address","address","uint256"],n[t.SUDOSWAP]=["uint256","bytes"],n[t.OWNER_CHECK_721]=["address","address","uint256"],n[t.OWNER_CHECK_1155]=["address","address","uint256","uint256"],n[t.NFT20]=["uint256","bytes"],n[t.CRYPTOPUNKS]=["uint256","address","uint256"],n),v=function(){function e(){this.commands="0x",this.inputs=[]}return e.prototype.addCommand=function(e,n,t){void 0===t&&(t=!1);var a=function(e,n){return{type:e,encodedInput:u.defaultAbiCoder.encode(b[e],n)}}(e,n);if(this.inputs.push(a.encodedInput),t){if(!f.has(a.type))throw new Error("command type: "+a.type+" cannot be allowed to revert");a.type=128|a.type}this.commands=this.commands.concat(a.type.toString(16).padStart(2,"0"))},e}(),I=p.BigNumber.from(2).pow(255),A="0x0000000000000000000000000000000000000002",M=new s.Percent(y.BigInt(50),y.BigInt(100)),S=function(){function e(e,n){this.trade=e,this.options=n}return e.prototype.encode=function(e,n){var a,i=!0;this.trade.inputAmount.currency.isNative&&(e.addCommand(t.WRAP_ETH,[A,this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString()]),i=!1),this.options.recipient=null!=(a=this.options.recipient)?a:"0x0000000000000000000000000000000000000001";for(var r,p=this.trade.outputAmount.currency.isNative,y=this.trade.inputAmount.currency.isNative,u=this.trade.tradeType===s.TradeType.EXACT_INPUT&&this.trade.routes.length>2||p,d=c(this.trade.swaps);!(r=d()).done;){var o=r.value;switch(o.route.protocol){case m.Protocol.V2:R(e,o,this.trade.tradeType,this.options,i,u);break;case m.Protocol.V3:_(e,o,this.trade.tradeType,this.options,i,u);break;case m.Protocol.MIXED:k(e,o,this.trade.tradeType,this.options,i,u);break;default:throw new Error("UNSUPPORTED_TRADE_PROTOCOL")}}u&&(p?e.addCommand(t.UNWRAP_WETH,[this.options.recipient,this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString()]):e.addCommand(t.SWEEP,[this.trade.outputAmount.currency.wrapped.address,this.options.recipient,this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString()])),y&&(this.trade.tradeType===s.TradeType.EXACT_OUTPUT||this.trade.priceImpact.greaterThan(M))&&e.addCommand(t.UNWRAP_WETH,[this.options.recipient,0])},e}();function R(e,n,a,i,r,p){var y=n.route,u=new d.Trade(y,a==s.TradeType.EXACT_INPUT?n.inputAmount:n.outputAmount,a);a==s.TradeType.EXACT_INPUT?e.addCommand(t.V2_SWAP_EXACT_IN,[u.maximumAmountIn(i.slippageTolerance).quotient.toString(),u.minimumAmountOut(i.slippageTolerance).quotient.toString(),y.path.map((function(e){return e.address})),p?A:i.recipient,r]):a==s.TradeType.EXACT_OUTPUT&&e.addCommand(t.V2_SWAP_EXACT_OUT,[u.minimumAmountOut(i.slippageTolerance).quotient.toString(),u.maximumAmountIn(i.slippageTolerance).quotient.toString(),y.path.map((function(e){return e.address})),p?A:i.recipient,r])}function _(e,n,a,i,r,p){var y=n.route,u=o.Trade.createUncheckedTrade({route:y,inputAmount:n.inputAmount,outputAmount:n.outputAmount,tradeType:a}),d=o.encodeRouteToPath(y,u.tradeType===s.TradeType.EXACT_OUTPUT);a==s.TradeType.EXACT_INPUT?e.addCommand(t.V3_SWAP_EXACT_IN,[p?A:i.recipient,u.maximumAmountIn(i.slippageTolerance).quotient.toString(),u.minimumAmountOut(i.slippageTolerance).quotient.toString(),d,r]):a==s.TradeType.EXACT_OUTPUT&&e.addCommand(t.V3_SWAP_EXACT_OUT,[p?A:i.recipient,u.minimumAmountOut(i.slippageTolerance).quotient.toString(),u.maximumAmountIn(i.slippageTolerance).quotient.toString(),d,r])}function k(e,n,a,i,r,p){var s=n.route,y=n.inputAmount,u=n.outputAmount,l=p?A:i.recipient;if(1===s.pools.length){if(s.pools[0]instanceof o.Pool)return _(e,n,a,i,r,p);if(s.pools[0]instanceof d.Pair)return R(e,n,a,i,r,p);throw new Error("Invalid route type")}for(var T,c=m.MixedRouteTrade.createUncheckedTrade({route:s,inputAmount:y,outputAmount:u,tradeType:a}),f=c.maximumAmountIn(i.slippageTolerance,y).quotient.toString(),b=c.minimumAmountOut(i.slippageTolerance,u).quotient.toString(),v=m.partitionMixedRouteByProtocol(s),M=function(e){return e===v.length-1},S=s.input.wrapped,k=0;k<v.length;k++){var O=v[k];T=m.getOutputOfPools(O,S);var C=new m.MixedRouteSDK([].concat(O),O[0].token0.equals(S)?O[0].token0:O[0].token1,T),x=new m.MixedRoute(C);if(S=T,function(e){return e.pools.every((function(e){return e instanceof o.Pool}))}(x)){var F=m.encodeMixedRouteToPath(x);e.addCommand(t.V3_SWAP_EXACT_IN,[M(k)?l:v[k+1][0].liquidityToken.address,0==k?f:I,M(k)?b:0,F,r&&0===k])}else e.addCommand(t.V2_SWAP_EXACT_IN,[0===k?f:I,M(k)?b:0,x.path.map((function(e){return e.address})),M(k)?l:A,r&&0===k])}}var O=function(){function e(){}return e.swapGenieCallParameters=function(n,i){i.sender||a(!1);for(var r,s=new v,y=p.BigNumber.from(0),u=1!=n.length||1!=n[0].orders.length,d=c(n);!(r=d()).done;){var o=r.value;o.encode(s,{allowRevert:u}),y=y.add(o.getTotalPrice())}return s.addCommand(t.SWEEP,["0x0000000000000000000000000000000000000000",i.sender,0]),e.encodePlan(s,y,i)},e.swapERC20CallParameters=function(n,i){var r=new v,y=new S(n,i),u=y.trade.inputAmount.currency;u.isNative&&i.inputTokenPermit&&a(!1),i.inputTokenPermit&&u instanceof s.Token&&function(e,n){e.addCommand(t.PERMIT,[n,n.signature])}(r,i.inputTokenPermit);var d=p.BigNumber.from(u.isNative?y.trade.maximumAmountIn(i.slippageTolerance).quotient.toString():0);return y.encode(r,{allowRevert:!1}),e.encodePlan(r,d,{deadline:i.deadlineOrPreviousBlockhash?p.BigNumber.from(i.deadlineOrPreviousBlockhash):void 0})},e.encodePlan=function(n,t,a){void 0===a&&(a={});var i=n.commands,r=n.inputs;return{calldata:e.INTERFACE.encodeFunctionData(a.deadline?"execute(bytes,bytes[],uint256)":"execute(bytes,bytes[])",a.deadline?[i,r,a.deadline]:[i,r]),value:t.toString()}},e}();O.INTERFACE=new r.Interface(i.abi);var C,x,F=function(e,n){n.length>0||a(!1),this.market=e,this.orders=n};(C=exports.Market||(exports.Market={})).Foundation="foundation",C.LooksRare="looksrare",C.NFT20="nft20",C.NFTX="nftx",C.Seaport="seaport",C.Sudoswap="Sudoswap",C.Cryptopunks="cryptopunks",C.X2Y2="x2y2",(x=exports.TokenType||(exports.TokenType={})).ERC721="ERC721",x.ERC1155="ERC1155",x.Cryptopunk="Cryptopunk";var P=function(e){function n(n){return e.call(this,exports.Market.Cryptopunks,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,n){for(var a,i=c(this.orders);!(a=i()).done;){var r=a.value;e.addCommand(t.CRYPTOPUNKS,[r.tokenId,r.recipient,r.value],n.allowRevert)}},a.getBuyItems=function(){for(var e,t=[],a=c(this.orders);!(e=a()).done;)t.push({tokenAddress:n.CRYPTOPUNK_ADDRESS,tokenId:e.value.tokenId,tokenType:exports.TokenType.Cryptopunk});return t},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)n=n.add(e.value.value);return n},n}(F);P.CRYPTOPUNK_ADDRESS="0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb";var h=[{inputs:[{internalType:"address payable",name:"treasury",type:"address"},{internalType:"address",name:"feth",type:"address"},{internalType:"address",name:"royaltyRegistry",type:"address"},{internalType:"uint256",name:"duration",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"FoundationTreasuryNode_Address_Is_Not_A_Contract",type:"error"},{inputs:[],name:"FoundationTreasuryNode_Caller_Not_Admin",type:"error"},{inputs:[{internalType:"uint256",name:"buyPrice",type:"uint256"}],name:"NFTMarketBuyPrice_Cannot_Buy_At_Lower_Price",type:"error"},{inputs:[],name:"NFTMarketBuyPrice_Cannot_Buy_Unset_Price",type:"error"},{inputs:[],name:"NFTMarketBuyPrice_Cannot_Cancel_Unset_Price",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"NFTMarketBuyPrice_Only_Owner_Can_Cancel_Price",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"NFTMarketBuyPrice_Only_Owner_Can_Set_Price",type:"error"},{inputs:[],name:"NFTMarketBuyPrice_Price_Already_Set",type:"error"},{inputs:[],name:"NFTMarketBuyPrice_Price_Too_High",type:"error"},{inputs:[{internalType:"address",name:"seller",type:"address"}],name:"NFTMarketBuyPrice_Seller_Mismatch",type:"error"},{inputs:[],name:"NFTMarketCore_FETH_Address_Is_Not_A_Contract",type:"error"},{inputs:[],name:"NFTMarketCore_Only_FETH_Can_Transfer_ETH",type:"error"},{inputs:[],name:"NFTMarketCore_Seller_Not_Found",type:"error"},{inputs:[],name:"NFTMarketFees_Address_Does_Not_Support_IRoyaltyRegistry",type:"error"},{inputs:[],name:"NFTMarketOffer_Cannot_Be_Made_While_In_Auction",type:"error"},{inputs:[{internalType:"uint256",name:"currentOfferAmount",type:"uint256"}],name:"NFTMarketOffer_Offer_Below_Min_Amount",type:"error"},{inputs:[{internalType:"uint256",name:"expiry",type:"uint256"}],name:"NFTMarketOffer_Offer_Expired",type:"error"},{inputs:[{internalType:"address",name:"currentOfferFrom",type:"address"}],name:"NFTMarketOffer_Offer_From_Does_Not_Match",type:"error"},{inputs:[{internalType:"uint256",name:"minOfferAmount",type:"uint256"}],name:"NFTMarketOffer_Offer_Must_Be_At_Least_Min_Amount",type:"error"},{inputs:[],name:"NFTMarketOffer_Provided_Contract_And_TokenId_Count_Must_Match",type:"error"},{inputs:[],name:"NFTMarketOffer_Reason_Required",type:"error"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"NFTMarketReserveAuction_Already_Listed",type:"error"},{inputs:[{internalType:"uint256",name:"minAmount",type:"uint256"}],name:"NFTMarketReserveAuction_Bid_Must_Be_At_Least_Min_Amount",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Cannot_Admin_Cancel_Without_Reason",type:"error"},{inputs:[{internalType:"uint256",name:"reservePrice",type:"uint256"}],name:"NFTMarketReserveAuction_Cannot_Bid_Lower_Than_Reserve_Price",type:"error"},{inputs:[{internalType:"uint256",name:"endTime",type:"uint256"}],name:"NFTMarketReserveAuction_Cannot_Bid_On_Ended_Auction",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Cannot_Bid_On_Nonexistent_Auction",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Cannot_Cancel_Nonexistent_Auction",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Cannot_Finalize_Already_Settled_Auction",type:"error"},{inputs:[{internalType:"uint256",name:"endTime",type:"uint256"}],name:"NFTMarketReserveAuction_Cannot_Finalize_Auction_In_Progress",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Cannot_Rebid_Over_Outstanding_Bid",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Cannot_Update_Auction_In_Progress",type:"error"},{inputs:[{internalType:"uint256",name:"maxDuration",type:"uint256"}],name:"NFTMarketReserveAuction_Exceeds_Max_Duration",type:"error"},{inputs:[{internalType:"uint256",name:"extensionDuration",type:"uint256"}],name:"NFTMarketReserveAuction_Less_Than_Extension_Duration",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Must_Set_Non_Zero_Reserve_Price",type:"error"},{inputs:[{internalType:"address",name:"seller",type:"address"}],name:"NFTMarketReserveAuction_Not_Matching_Seller",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"NFTMarketReserveAuction_Only_Owner_Can_Update_Auction",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Price_Already_Set",type:"error"},{inputs:[],name:"NFTMarketReserveAuction_Too_Much_Value_Provided",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!1,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"creatorFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"sellerRev",type:"uint256"}],name:"BuyPriceAccepted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"BuyPriceCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"BuyPriceInvalidated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"BuyPriceSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"buyReferrer",type:"address"},{indexed:!1,internalType:"uint256",name:"buyReferrerProtocolFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyReferrerSellerFee",type:"uint256"}],name:"BuyReferralPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"address",name:"seller",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"creatorFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"sellerRev",type:"uint256"}],name:"OfferAccepted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"string",name:"reason",type:"string"}],name:"OfferCanceledByAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"OfferInvalidated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"expiration",type:"uint256"}],name:"OfferMade",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"auctionId",type:"uint256"},{indexed:!0,internalType:"address",name:"bidder",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"endTime",type:"uint256"}],name:"ReserveAuctionBidPlaced",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"auctionId",type:"uint256"}],name:"ReserveAuctionCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"auctionId",type:"uint256"},{indexed:!1,internalType:"string",name:"reason",type:"string"}],name:"ReserveAuctionCanceledByAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"nftContract",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"duration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"extensionDuration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"reservePrice",type:"uint256"},{indexed:!1,internalType:"uint256",name:"auctionId",type:"uint256"}],name:"ReserveAuctionCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"auctionId",type:"uint256"},{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"bidder",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"creatorFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"sellerRev",type:"uint256"}],name:"ReserveAuctionFinalized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"auctionId",type:"uint256"}],name:"ReserveAuctionInvalidated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"auctionId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"reservePrice",type:"uint256"}],name:"ReserveAuctionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WithdrawalToFETH",type:"event"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"offerFrom",type:"address"},{internalType:"uint256",name:"minAmount",type:"uint256"}],name:"acceptOffer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"nftContracts",type:"address[]"},{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"},{internalType:"string",name:"reason",type:"string"}],name:"adminCancelOffers",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"adminCancelReserveAuction",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"maxPrice",type:"uint256"}],name:"buy",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"maxPrice",type:"uint256"},{internalType:"address payable",name:"referrer",type:"address"}],name:"buyV2",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"cancelBuyPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"cancelReserveAuction",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"reservePrice",type:"uint256"}],name:"createReserveAuction",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"finalizeReserveAuction",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getBuyPrice",outputs:[{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"price",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"}],name:"getFeesAndRecipients",outputs:[{internalType:"uint256",name:"protocolFee",type:"uint256"},{internalType:"uint256",name:"creatorRev",type:"uint256"},{internalType:"address payable[]",name:"creatorRecipients",type:"address[]"},{internalType:"uint256[]",name:"creatorShares",type:"uint256[]"},{internalType:"uint256",name:"sellerRev",type:"uint256"},{internalType:"address payable",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getFethAddress",outputs:[{internalType:"address",name:"fethAddress",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getFoundationTreasury",outputs:[{internalType:"address payable",name:"treasuryAddress",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getImmutableRoyalties",outputs:[{internalType:"address payable[]",name:"recipients",type:"address[]"},{internalType:"uint256[]",name:"splitPerRecipientInBasisPoints",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"getMinBidAmount",outputs:[{internalType:"uint256",name:"minimum",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getMinOfferAmount",outputs:[{internalType:"uint256",name:"minimum",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address payable",name:"creator",type:"address"}],name:"getMutableRoyalties",outputs:[{internalType:"address payable[]",name:"recipients",type:"address[]"},{internalType:"uint256[]",name:"splitPerRecipientInBasisPoints",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getOffer",outputs:[{internalType:"address",name:"buyer",type:"address"},{internalType:"uint256",name:"expiration",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getOfferReferrer",outputs:[{internalType:"address payable",name:"referrer",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"getReserveAuction",outputs:[{components:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address payable",name:"seller",type:"address"},{internalType:"uint256",name:"duration",type:"uint256"},{internalType:"uint256",name:"extensionDuration",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address payable",name:"bidder",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct NFTMarketReserveAuction.ReserveAuction",name:"auction",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"getReserveAuctionBidReferrer",outputs:[{internalType:"address payable",name:"referrer",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getReserveAuctionIdFor",outputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRoyaltyRegistry",outputs:[{internalType:"address",name:"registry",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getTokenCreator",outputs:[{internalType:"address payable",name:"creator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"makeOffer",outputs:[{internalType:"uint256",name:"expiration",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"referrer",type:"address"}],name:"makeOfferV2",outputs:[{internalType:"uint256",name:"expiration",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"}],name:"placeBid",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"referrer",type:"address"}],name:"placeBidV2",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"nftContract",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"}],name:"setBuyPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"auctionId",type:"uint256"},{internalType:"uint256",name:"reservePrice",type:"uint256"}],name:"updateReserveAuction",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],g=function(e){function n(n){return e.call(this,exports.Market.Foundation,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,a){for(var i,r=c(this.orders);!(i=r()).done;){var p=i.value,s=n.INTERFACE.encodeFunctionData("buyV2",[p.tokenAddress,p.tokenId,p.price,p.referrer]);e.addCommand(t.FOUNDATION,[p.price,s,p.recipient,p.tokenAddress,p.tokenId],a.allowRevert)}},a.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;){var a=e.value;n.push({tokenAddress:a.tokenAddress,tokenId:a.tokenId,tokenType:exports.TokenType.ERC721})}return n},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)n=n.add(e.value.price);return n},n}(F);g.INTERFACE=new r.Interface(h);var w=[{inputs:[{internalType:"address",name:"_currencyManager",type:"address"},{internalType:"address",name:"_executionManager",type:"address"},{internalType:"address",name:"_royaltyFeeManager",type:"address"},{internalType:"address",name:"_WETH",type:"address"},{internalType:"address",name:"_protocolFeeRecipient",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"newMinNonce",type:"uint256"}],name:"CancelAllOrders",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256[]",name:"orderNonces",type:"uint256[]"}],name:"CancelMultipleOrders",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"currencyManager",type:"address"}],name:"NewCurrencyManager",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"executionManager",type:"address"}],name:"NewExecutionManager",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"protocolFeeRecipient",type:"address"}],name:"NewProtocolFeeRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyFeeManager",type:"address"}],name:"NewRoyaltyFeeManager",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"transferSelectorNFT",type:"address"}],name:"NewTransferSelectorNFT",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"collection",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"royaltyRecipient",type:"address"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RoyaltyPayment",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"orderNonce",type:"uint256"},{indexed:!0,internalType:"address",name:"taker",type:"address"},{indexed:!0,internalType:"address",name:"maker",type:"address"},{indexed:!0,internalType:"address",name:"strategy",type:"address"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"address",name:"collection",type:"address"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"TakerAsk",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"orderNonce",type:"uint256"},{indexed:!0,internalType:"address",name:"taker",type:"address"},{indexed:!0,internalType:"address",name:"maker",type:"address"},{indexed:!0,internalType:"address",name:"strategy",type:"address"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"address",name:"collection",type:"address"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"TakerBid",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"minNonce",type:"uint256"}],name:"cancelAllOrdersForSender",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"orderNonces",type:"uint256[]"}],name:"cancelMultipleMakerOrders",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"currencyManager",outputs:[{internalType:"contract ICurrencyManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"executionManager",outputs:[{internalType:"contract IExecutionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"orderNonce",type:"uint256"}],name:"isUserOrderNonceExecutedOrCancelled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"isOrderAsk",type:"bool"},{internalType:"address",name:"taker",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"minPercentageToAsk",type:"uint256"},{internalType:"bytes",name:"params",type:"bytes"}],internalType:"struct OrderTypes.TakerOrder",name:"takerBid",type:"tuple"},{components:[{internalType:"bool",name:"isOrderAsk",type:"bool"},{internalType:"address",name:"signer",type:"address"},{internalType:"address",name:"collection",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"strategy",type:"address"},{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"uint256",name:"minPercentageToAsk",type:"uint256"},{internalType:"bytes",name:"params",type:"bytes"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct OrderTypes.MakerOrder",name:"makerAsk",type:"tuple"}],name:"matchAskWithTakerBid",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bool",name:"isOrderAsk",type:"bool"},{internalType:"address",name:"taker",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"minPercentageToAsk",type:"uint256"},{internalType:"bytes",name:"params",type:"bytes"}],internalType:"struct OrderTypes.TakerOrder",name:"takerBid",type:"tuple"},{components:[{internalType:"bool",name:"isOrderAsk",type:"bool"},{internalType:"address",name:"signer",type:"address"},{internalType:"address",name:"collection",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"strategy",type:"address"},{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"uint256",name:"minPercentageToAsk",type:"uint256"},{internalType:"bytes",name:"params",type:"bytes"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct OrderTypes.MakerOrder",name:"makerAsk",type:"tuple"}],name:"matchAskWithTakerBidUsingETHAndWETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bool",name:"isOrderAsk",type:"bool"},{internalType:"address",name:"taker",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"minPercentageToAsk",type:"uint256"},{internalType:"bytes",name:"params",type:"bytes"}],internalType:"struct OrderTypes.TakerOrder",name:"takerAsk",type:"tuple"},{components:[{internalType:"bool",name:"isOrderAsk",type:"bool"},{internalType:"address",name:"signer",type:"address"},{internalType:"address",name:"collection",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"strategy",type:"address"},{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"uint256",name:"minPercentageToAsk",type:"uint256"},{internalType:"bytes",name:"params",type:"bytes"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct OrderTypes.MakerOrder",name:"makerBid",type:"tuple"}],name:"matchBidWithTakerAsk",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"royaltyFeeManager",outputs:[{internalType:"contract IRoyaltyFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"transferSelectorNFT",outputs:[{internalType:"contract ITransferSelectorNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_currencyManager",type:"address"}],name:"updateCurrencyManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_executionManager",type:"address"}],name:"updateExecutionManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_protocolFeeRecipient",type:"address"}],name:"updateProtocolFeeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_royaltyFeeManager",type:"address"}],name:"updateRoyaltyFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_transferSelectorNFT",type:"address"}],name:"updateTransferSelectorNFT",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"userMinOrderNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],E=function(e){function n(n){return e.call(this,exports.Market.LooksRare,n)||this}l(n,e);var i=n.prototype;return i.encode=function(e,i){for(var r,p=c(this.orders);!(r=p()).done;){var s=r.value,y=n.INTERFACE.encodeFunctionData("matchAskWithTakerBidUsingETHAndWETH",[s.takerOrder,s.makerOrder]);s.tokenType==exports.TokenType.ERC721?(1!=s.makerOrder.amount&&a(!1),e.addCommand(t.LOOKS_RARE_721,[s.makerOrder.price,y,s.recipient,s.makerOrder.collection,s.makerOrder.tokenId],i.allowRevert)):s.tokenType==exports.TokenType.ERC1155&&e.addCommand(t.LOOKS_RARE_1155,[s.makerOrder.price,y,s.recipient,s.makerOrder.collection,s.makerOrder.tokenId,s.makerOrder.amount],i.allowRevert)}},i.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;){var a=e.value;n.push({tokenAddress:a.makerOrder.collection,tokenId:a.makerOrder.tokenId,tokenType:a.tokenType})}return n},i.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)n=n.add(e.value.makerOrder.price);return n},n}(F);E.INTERFACE=new r.Interface(w);var N=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NFT20",outputs:[{internalType:"contract INFT20Factory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNIV2",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNIV3",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_nft",type:"address"},{internalType:"uint256[]",name:"_toIds",type:"uint256[]"},{internalType:"uint256[]",name:"_toAmounts",type:"uint256[]"},{internalType:"address",name:"_receipient",type:"address"},{internalType:"uint24",name:"_fee",type:"uint24"},{internalType:"bool",name:"isV3",type:"bool"}],name:"ethForNft",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_nft",type:"address"},{internalType:"uint256[]",name:"_ids",type:"uint256[]"},{internalType:"uint256[]",name:"_amounts",type:"uint256[]"},{internalType:"bool",name:"isErc721",type:"bool"},{internalType:"uint24",name:"_fee",type:"uint24"},{internalType:"bool",name:"isV3",type:"bool"}],name:"nftForEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"tokenAmount",type:"uint256"},{internalType:"address",name:"sendTo",type:"address"}],name:"recoverERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_registry",type:"address"}],name:"setNFT20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawEth",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],V=function(e){function n(n){return e.call(this,exports.Market.NFT20,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,a){for(var i,r=c(this.orders);!(i=r()).done;){var p=i.value,s=n.INTERFACE.encodeFunctionData("ethForNft",[p.tokenAddress,p.tokenIds,p.tokenAmounts,p.recipient,p.fee,p.isV3]);e.addCommand(t.NFT20,[p.value,s],a.allowRevert)}},a.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;)for(var a,i=e.value,r=c(i.tokenIds);!(a=r()).done;)n.push({tokenAddress:i.tokenAddress,tokenId:a.value,tokenType:exports.TokenType.ERC721});return n},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)n=n.add(e.value.value);return n},n}(F);V.INTERFACE=new r.Interface(N);var L=[{inputs:[{internalType:"address",name:"_nftxFactory",type:"address"},{internalType:"address",name:"_sushiRouter",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"count",type:"uint256"},{indexed:!1,internalType:"uint256",name:"ethSpent",type:"uint256"},{indexed:!1,internalType:"address",name:"to",type:"address"}],name:"Buy",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"count",type:"uint256"},{indexed:!1,internalType:"uint256",name:"ethReceived",type:"uint256"},{indexed:!1,internalType:"address",name:"to",type:"address"}],name:"Sell",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"count",type:"uint256"},{indexed:!1,internalType:"uint256",name:"ethSpent",type:"uint256"},{indexed:!1,internalType:"address",name:"to",type:"address"}],name:"Swap",type:"event"},{inputs:[],name:"WETH",outputs:[{internalType:"contract IWETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256[]",name:"specificIds",type:"uint256[]"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"buyAndRedeem",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256[]",name:"specificIds",type:"uint256[]"},{internalType:"uint256",name:"maxWethIn",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"buyAndRedeemWETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"idsIn",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"uint256[]",name:"specificIds",type:"uint256[]"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"buyAndSwap1155",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"idsIn",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"uint256[]",name:"specificIds",type:"uint256[]"},{internalType:"uint256",name:"maxWethIn",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"buyAndSwap1155WETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"idsIn",type:"uint256[]"},{internalType:"uint256[]",name:"specificIds",type:"uint256[]"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"buyAndSwap721",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"idsIn",type:"uint256[]"},{internalType:"uint256[]",name:"specificIds",type:"uint256[]"},{internalType:"uint256",name:"maxWethIn",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"buyAndSwap721WETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"lpStaking",outputs:[{internalType:"contract INFTXLPStaking",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"uint256",name:"minWethOut",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"mintAndSell1155",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"uint256",name:"minWethOut",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"mintAndSell1155WETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256",name:"minEthOut",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"mintAndSell721",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256",name:"minWethOut",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"mintAndSell721WETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"nftxFactory",outputs:[{internalType:"contract INFTXVaultFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"rescue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"sushiRouter",outputs:[{internalType:"contract IUniswapV2Router01",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],B=function(e){function n(n){return e.call(this,exports.Market.NFTX,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,a){for(var i,r=c(this.orders);!(i=r()).done;){var p=i.value,y=n.INTERFACE.encodeFunctionData("buyAndRedeem",[p.vaultId,p.tokenIds.length,p.tokenIds,[s.Ether.onChain(1).wrapped.address,p.vaultAddress],p.recipient]);e.addCommand(t.NFTX,[p.value,y],a.allowRevert)}},a.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;)for(var a,i=e.value,r=c(i.tokenIds);!(a=r()).done;)n.push({tokenAddress:i.tokenAddress,tokenId:a.value,tokenType:exports.TokenType.ERC721});return n},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)n=n.add(e.value.value);return n},n}(F);B.INTERFACE=new r.Interface(L);var H=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"EtherTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientEtherSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[],name:"InvalidCanceller",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"InvalidTime",type:"error"},{inputs:[],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderValidated",type:"event"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"advancedOrder",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"advancedOrders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"order",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"order",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"advancedOrders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"contractName",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"validated",type:"bool"}],stateMutability:"nonpayable",type:"function"}],W=function(e){function n(n){return e.call(this,exports.Market.Seaport,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,a){for(var i,r=c(this.orders);!(i=r()).done;){for(var p,s=i.value,y=[],u=s.items.map((function(e,n){return[{orderIndex:n,itemIndex:0}]})),d=this.getConsiderationFulfillments(s.items),o=c(s.items);!(p=o()).done;){var m=this.getAdvancedOrderParams(p.value);y.push(m.advancedOrder)}var l;l=1==y.length?n.INTERFACE.encodeFunctionData("fulfillAdvancedOrder",[y[0],[],n.OPENSEA_CONDUIT_KEY,s.recipient]):n.INTERFACE.encodeFunctionData("fulfillAvailableAdvancedOrders",[y,[],u,d,n.OPENSEA_CONDUIT_KEY,s.recipient,100]),e.addCommand(t.SEAPORT,[this.getTotalPrice().toString(),l],a.allowRevert)}},a.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;)for(var a,i=c(e.value.items);!(a=i()).done;)for(var r,p=c(a.value.parameters.offer);!(r=p()).done;){var s=r.value;n.push({tokenAddress:s.token,tokenId:s.identifierOrCriteria,tokenType:exports.TokenType.ERC721})}return n},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)for(var a,i=c(e.value.items);!(a=i()).done;)n=n.add(this.calculateValue(a.value.parameters.consideration));return n},a.getConsiderationFulfillments=function(e){var n=[],t=[];for(var a in e){var i=e[a],r=function(e){var r=i.parameters.consideration[e];-1===t.findIndex((function(e){return e===r.recipient}))&&t.push(r.recipient);var p=t.findIndex((function(e){return e===r.recipient}));n[p]?n[p].push({orderIndex:a,itemIndex:e}):n.push([{orderIndex:a,itemIndex:e}])};for(var p in i.parameters.consideration)r(p)}return n},a.getAdvancedOrderParams=function(e){return{advancedOrder:{parameters:e.parameters,numerator:p.BigNumber.from("1"),denominator:p.BigNumber.from("1"),signature:e.signature,extraData:"0x00"},value:this.calculateValue(e.parameters.consideration)}},a.calculateValue=function(e){return e.reduce((function(e,n){return e.add(n.startAmount)}),p.BigNumber.from(0))},n}(F);W.INTERFACE=new r.Interface(H),W.OPENSEA_CONDUIT_KEY="0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000";var U=[{inputs:[{internalType:"contract ILSSVMPairFactoryLike",name:"_factory",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"factory",outputs:[{internalType:"contract ILSSVMPairFactoryLike",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract ERC20",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"enum ILSSVMPairFactoryLike.PairVariant",name:"variant",type:"uint8"}],name:"pairTransferERC20From",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC721",name:"nft",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"enum ILSSVMPairFactoryLike.PairVariant",name:"variant",type:"uint8"}],name:"pairTransferNFTFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256",name:"numItems",type:"uint256"}],internalType:"struct LSSVMRouter.PairSwapAny",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"maxCost",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapAny[]",name:"swapList",type:"tuple[]"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"robustSwapERC20ForAnyNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"maxCost",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecific[]",name:"swapList",type:"tuple[]"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"robustSwapERC20ForSpecificNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"maxCost",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecific[]",name:"tokenToNFTTrades",type:"tuple[]"},{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"minOutput",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecificForToken[]",name:"nftToTokenTrades",type:"tuple[]"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address payable",name:"tokenRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"}],internalType:"struct LSSVMRouter.RobustPairNFTsFoTokenAndTokenforNFTsTrade",name:"params",type:"tuple"}],name:"robustSwapERC20ForSpecificNFTsAndNFTsToToken",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256",name:"numItems",type:"uint256"}],internalType:"struct LSSVMRouter.PairSwapAny",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"maxCost",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapAny[]",name:"swapList",type:"tuple[]"},{internalType:"address payable",name:"ethRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"robustSwapETHForAnyNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"maxCost",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecific[]",name:"swapList",type:"tuple[]"},{internalType:"address payable",name:"ethRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"robustSwapETHForSpecificNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"maxCost",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecific[]",name:"tokenToNFTTrades",type:"tuple[]"},{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"minOutput",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecificForToken[]",name:"nftToTokenTrades",type:"tuple[]"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address payable",name:"tokenRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"}],internalType:"struct LSSVMRouter.RobustPairNFTsFoTokenAndTokenforNFTsTrade",name:"params",type:"tuple"}],name:"robustSwapETHForSpecificNFTsAndNFTsToToken",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific",name:"swapInfo",type:"tuple"},{internalType:"uint256",name:"minOutput",type:"uint256"}],internalType:"struct LSSVMRouter.RobustPairSwapSpecificForToken[]",name:"swapList",type:"tuple[]"},{internalType:"address payable",name:"tokenRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"robustSwapNFTsForToken",outputs:[{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256",name:"numItems",type:"uint256"}],internalType:"struct LSSVMRouter.PairSwapAny[]",name:"swapList",type:"tuple[]"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapERC20ForAnyNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"swapList",type:"tuple[]"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapERC20ForSpecificNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256",name:"numItems",type:"uint256"}],internalType:"struct LSSVMRouter.PairSwapAny[]",name:"swapList",type:"tuple[]"},{internalType:"address payable",name:"ethRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapETHForAnyNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"swapList",type:"tuple[]"},{internalType:"address payable",name:"ethRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapETHForSpecificNFTs",outputs:[{internalType:"uint256",name:"remainingValue",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"nftToTokenTrades",type:"tuple[]"},{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256",name:"numItems",type:"uint256"}],internalType:"struct LSSVMRouter.PairSwapAny[]",name:"tokenToNFTTrades",type:"tuple[]"}],internalType:"struct LSSVMRouter.NFTsForAnyNFTsTrade",name:"trade",type:"tuple"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"minOutput",type:"uint256"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapNFTsForAnyNFTsThroughERC20",outputs:[{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"nftToTokenTrades",type:"tuple[]"},{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256",name:"numItems",type:"uint256"}],internalType:"struct LSSVMRouter.PairSwapAny[]",name:"tokenToNFTTrades",type:"tuple[]"}],internalType:"struct LSSVMRouter.NFTsForAnyNFTsTrade",name:"trade",type:"tuple"},{internalType:"uint256",name:"minOutput",type:"uint256"},{internalType:"address payable",name:"ethRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapNFTsForAnyNFTsThroughETH",outputs:[{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"nftToTokenTrades",type:"tuple[]"},{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"tokenToNFTTrades",type:"tuple[]"}],internalType:"struct LSSVMRouter.NFTsForSpecificNFTsTrade",name:"trade",type:"tuple"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"minOutput",type:"uint256"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapNFTsForSpecificNFTsThroughERC20",outputs:[{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"nftToTokenTrades",type:"tuple[]"},{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"tokenToNFTTrades",type:"tuple[]"}],internalType:"struct LSSVMRouter.NFTsForSpecificNFTsTrade",name:"trade",type:"tuple"},{internalType:"uint256",name:"minOutput",type:"uint256"},{internalType:"address payable",name:"ethRecipient",type:"address"},{internalType:"address",name:"nftRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapNFTsForSpecificNFTsThroughETH",outputs:[{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract LSSVMPair",name:"pair",type:"address"},{internalType:"uint256[]",name:"nftIds",type:"uint256[]"}],internalType:"struct LSSVMRouter.PairSwapSpecific[]",name:"swapList",type:"tuple[]"},{internalType:"uint256",name:"minOutput",type:"uint256"},{internalType:"address",name:"tokenRecipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"swapNFTsForToken",outputs:[{internalType:"uint256",name:"outputAmount",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],D=function(e){function n(n){return e.call(this,exports.Market.Sudoswap,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,a){for(var i,r=c(this.orders);!(i=r()).done;){var s=i.value,y=n.INTERFACE.encodeFunctionData("robustSwapETHForSpecificNFTs",[s.swaps.map((function(e){return{swapInfo:e.swapInfo,maxCost:e.maxCost}})),s.ethRecipient,s.nftRecipient,s.deadline]),u=s.swaps.reduce((function(e,n){return e.add(n.maxCost)}),p.BigNumber.from(0));e.addCommand(t.SUDOSWAP,[u,y],a.allowRevert)}},a.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;)for(var a,i=c(e.value.swaps);!(a=i()).done;)for(var r,p=a.value,s=c(p.swapInfo.nftIds);!(r=s()).done;)n.push({tokenAddress:p.tokenAddress,tokenId:r.value,tokenType:exports.TokenType.ERC721});return n},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)for(var a,i=c(e.value.swaps);!(a=i()).done;)n=n.add(a.value.maxCost);return n},n}(F);D.INTERFACE=new r.Interface(U);var X=[{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"itemHash",type:"bytes32"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"incentive",type:"uint256"}],name:"EvAuctionRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"itemHash",type:"bytes32"}],name:"EvCancel",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"bool",name:"isRemoval",type:"bool"}],name:"EvDelegate",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"index",type:"uint256"},{indexed:!1,internalType:"bytes",name:"error",type:"bytes"}],name:"EvFailure",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newValue",type:"uint256"}],name:"EvFeeCapUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"itemHash",type:"bytes32"},{indexed:!1,internalType:"address",name:"maker",type:"address"},{indexed:!1,internalType:"address",name:"taker",type:"address"},{indexed:!1,internalType:"uint256",name:"orderSalt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"settleSalt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"intent",type:"uint256"},{indexed:!1,internalType:"uint256",name:"delegateType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"deadline",type:"uint256"},{indexed:!1,internalType:"contract IERC20Upgradeable",name:"currency",type:"address"},{indexed:!1,internalType:"bytes",name:"dataMask",type:"bytes"},{components:[{internalType:"uint256",name:"price",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct Market.OrderItem",name:"item",type:"tuple"},{components:[{internalType:"enum Market.Op",name:"op",type:"uint8"},{internalType:"uint256",name:"orderIdx",type:"uint256"},{internalType:"uint256",name:"itemIdx",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"bytes32",name:"itemHash",type:"bytes32"},{internalType:"contract IDelegate",name:"executionDelegate",type:"address"},{internalType:"bytes",name:"dataReplacement",type:"bytes"},{internalType:"uint256",name:"bidIncentivePct",type:"uint256"},{internalType:"uint256",name:"aucMinIncrementPct",type:"uint256"},{internalType:"uint256",name:"aucIncDurationSecs",type:"uint256"},{components:[{internalType:"uint256",name:"percentage",type:"uint256"},{internalType:"address",name:"to",type:"address"}],internalType:"struct Market.Fee[]",name:"fees",type:"tuple[]"}],indexed:!1,internalType:"struct Market.SettleDetail",name:"detail",type:"tuple"}],name:"EvInventory",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"itemHash",type:"bytes32"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"EvProfit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"signer",type:"address"},{indexed:!1,internalType:"bool",name:"isRemoval",type:"bool"}],name:"EvSigner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"RATE_BASE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"itemHashes",type:"bytes32[]"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"cancel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"delegates",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCapPct",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"feeCapPct_",type:"uint256"},{internalType:"address",name:"weth_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"inventoryStatus",outputs:[{internalType:"enum Market.InvStatus",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"ongoingAuctions",outputs:[{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"netPrice",type:"uint256"},{internalType:"uint256",name:"endAt",type:"uint256"},{internalType:"address",name:"bidder",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"network",type:"uint256"},{internalType:"uint256",name:"intent",type:"uint256"},{internalType:"uint256",name:"delegateType",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"contract IERC20Upgradeable",name:"currency",type:"address"},{internalType:"bytes",name:"dataMask",type:"bytes"},{components:[{internalType:"uint256",name:"price",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Market.OrderItem[]",name:"items",type:"tuple[]"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"signVersion",type:"uint8"}],internalType:"struct Market.Order[]",name:"orders",type:"tuple[]"},{components:[{internalType:"enum Market.Op",name:"op",type:"uint8"},{internalType:"uint256",name:"orderIdx",type:"uint256"},{internalType:"uint256",name:"itemIdx",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"bytes32",name:"itemHash",type:"bytes32"},{internalType:"contract IDelegate",name:"executionDelegate",type:"address"},{internalType:"bytes",name:"dataReplacement",type:"bytes"},{internalType:"uint256",name:"bidIncentivePct",type:"uint256"},{internalType:"uint256",name:"aucMinIncrementPct",type:"uint256"},{internalType:"uint256",name:"aucIncDurationSecs",type:"uint256"},{components:[{internalType:"uint256",name:"percentage",type:"uint256"},{internalType:"address",name:"to",type:"address"}],internalType:"struct Market.Fee[]",name:"fees",type:"tuple[]"}],internalType:"struct Market.SettleDetail[]",name:"details",type:"tuple[]"},{components:[{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountToEth",type:"uint256"},{internalType:"uint256",name:"amountToWeth",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"canFail",type:"bool"}],internalType:"struct Market.SettleShared",name:"shared",type:"tuple"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"}],internalType:"struct Market.RunInput",name:"input",type:"tuple"}],name:"run",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"network",type:"uint256"},{internalType:"uint256",name:"intent",type:"uint256"},{internalType:"uint256",name:"delegateType",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"contract IERC20Upgradeable",name:"currency",type:"address"},{internalType:"bytes",name:"dataMask",type:"bytes"},{components:[{internalType:"uint256",name:"price",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct Market.OrderItem[]",name:"items",type:"tuple[]"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"signVersion",type:"uint8"}],internalType:"struct Market.Order",name:"order",type:"tuple"},{components:[{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountToEth",type:"uint256"},{internalType:"uint256",name:"amountToWeth",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"canFail",type:"bool"}],internalType:"struct Market.SettleShared",name:"shared",type:"tuple"},{components:[{internalType:"enum Market.Op",name:"op",type:"uint8"},{internalType:"uint256",name:"orderIdx",type:"uint256"},{internalType:"uint256",name:"itemIdx",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"bytes32",name:"itemHash",type:"bytes32"},{internalType:"contract IDelegate",name:"executionDelegate",type:"address"},{internalType:"bytes",name:"dataReplacement",type:"bytes"},{internalType:"uint256",name:"bidIncentivePct",type:"uint256"},{internalType:"uint256",name:"aucMinIncrementPct",type:"uint256"},{internalType:"uint256",name:"aucIncDurationSecs",type:"uint256"},{components:[{internalType:"uint256",name:"percentage",type:"uint256"},{internalType:"address",name:"to",type:"address"}],internalType:"struct Market.Fee[]",name:"fees",type:"tuple[]"}],internalType:"struct Market.SettleDetail",name:"detail",type:"tuple"}],name:"run1",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"signers",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"toAdd",type:"address[]"},{internalType:"address[]",name:"toRemove",type:"address[]"}],name:"updateDelegates",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"val",type:"uint256"}],name:"updateFeeCap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"toAdd",type:"address[]"},{internalType:"address[]",name:"toRemove",type:"address[]"}],name:"updateSigners",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"weth",outputs:[{internalType:"contract IWETHUpgradable",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],K=function(e){function n(n){return e.call(this,exports.Market.X2Y2,n)||this}l(n,e);var a=n.prototype;return a.encode=function(e,a){for(var i,r=c(this.orders);!(i=r()).done;){var p=i.value,s=n.INTERFACE.getSighash(n.INTERFACE.getFunction("run"))+p.signedInput.slice(2);p.tokenType==exports.TokenType.ERC721?e.addCommand(t.X2Y2_721,[p.price,s,p.recipient,p.tokenAddress,p.tokenId],a.allowRevert):p.tokenType==exports.TokenType.ERC1155&&e.addCommand(t.X2Y2_1155,[p.price,s,p.recipient,p.tokenAddress,p.tokenId,p.tokenAmount],a.allowRevert)}},a.getBuyItems=function(){for(var e,n=[],t=c(this.orders);!(e=t()).done;){var a=e.value;n.push({tokenAddress:a.tokenAddress,tokenId:a.tokenId,tokenType:a.tokenType})}return n},a.getTotalPrice=function(){for(var e,n=p.BigNumber.from(0),t=c(this.orders);!(e=t()).done;)n=n.add(e.value.price);return n},n}(F);K.INTERFACE=new r.Interface(X),exports.CryptopunkTrade=P,exports.FoundationTrade=g,exports.LooksRareTrade=E,exports.NFT20Trade=V,exports.NFTTrade=F,exports.NFTXTrade=B,exports.SeaportTrade=W,exports.SudoswapTrade=D,exports.SwapRouter=O,exports.UniswapTrade=S,exports.X2Y2Trade=K;
|
|
2
|
+
//# sourceMappingURL=universal-router-sdk.cjs.production.min.js.map
|