@uniswap/universal-router-sdk 1.5.0-beta.1 → 1.5.0-beta.3
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 +2 -3
- package/dist/entities/protocols/looksRareV2.d.ts +2 -2
- package/dist/entities/protocols/seaport.d.ts +1 -0
- package/dist/swapRouter.d.ts +1 -0
- package/dist/test/orders/seaportV1_4.d.ts +1 -0
- package/dist/test/orders/{seaport.d.ts → seaportV1_5.d.ts} +1 -2
- package/dist/universal-router-sdk.cjs.development.js +116 -76
- package/dist/universal-router-sdk.cjs.development.js.map +1 -1
- package/dist/universal-router-sdk.cjs.production.min.js +1 -1
- package/dist/universal-router-sdk.cjs.production.min.js.map +1 -1
- package/dist/universal-router-sdk.esm.js +118 -78
- package/dist/universal-router-sdk.esm.js.map +1 -1
- package/dist/utils/routerCommands.d.ts +1 -1
- package/package.json +4 -4
|
@@ -74,6 +74,31 @@ var RouterTradeType;
|
|
|
74
74
|
RouterTradeType["UnwrapWETH"] = "UnwrapWETH";
|
|
75
75
|
})(RouterTradeType || (RouterTradeType = {}));
|
|
76
76
|
|
|
77
|
+
var NFTTrade = function NFTTrade(market, orders) {
|
|
78
|
+
this.tradeType = RouterTradeType.NFTTrade;
|
|
79
|
+
!(orders.length > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, 'no buy Items') : invariant(false) : void 0;
|
|
80
|
+
this.market = market;
|
|
81
|
+
this.orders = orders;
|
|
82
|
+
};
|
|
83
|
+
var Market;
|
|
84
|
+
(function (Market) {
|
|
85
|
+
Market["Foundation"] = "foundation";
|
|
86
|
+
Market["LooksRareV2"] = "looksrareV2";
|
|
87
|
+
Market["NFT20"] = "nft20";
|
|
88
|
+
Market["NFTX"] = "nftx";
|
|
89
|
+
Market["Seaport"] = "seaport";
|
|
90
|
+
Market["Sudoswap"] = "Sudoswap";
|
|
91
|
+
Market["Cryptopunks"] = "cryptopunks";
|
|
92
|
+
Market["X2Y2"] = "x2y2";
|
|
93
|
+
Market["Element"] = "element";
|
|
94
|
+
})(Market || (Market = {}));
|
|
95
|
+
var TokenType;
|
|
96
|
+
(function (TokenType) {
|
|
97
|
+
TokenType["ERC721"] = "ERC721";
|
|
98
|
+
TokenType["ERC1155"] = "ERC1155";
|
|
99
|
+
TokenType["Cryptopunk"] = "Cryptopunk";
|
|
100
|
+
})(TokenType || (TokenType = {}));
|
|
101
|
+
|
|
77
102
|
var _ABI_DEFINITION;
|
|
78
103
|
/**
|
|
79
104
|
* CommandTypes
|
|
@@ -97,7 +122,7 @@ var CommandType;
|
|
|
97
122
|
CommandType[CommandType["PERMIT2_TRANSFER_FROM_BATCH"] = 13] = "PERMIT2_TRANSFER_FROM_BATCH";
|
|
98
123
|
CommandType[CommandType["BALANCE_CHECK_ERC20"] = 14] = "BALANCE_CHECK_ERC20";
|
|
99
124
|
// NFT-related command types
|
|
100
|
-
CommandType[CommandType["
|
|
125
|
+
CommandType[CommandType["SEAPORT_V1_5"] = 16] = "SEAPORT_V1_5";
|
|
101
126
|
CommandType[CommandType["LOOKS_RARE_V2"] = 17] = "LOOKS_RARE_V2";
|
|
102
127
|
CommandType[CommandType["NFTX"] = 18] = "NFTX";
|
|
103
128
|
CommandType[CommandType["CRYPTOPUNKS"] = 19] = "CRYPTOPUNKS";
|
|
@@ -117,12 +142,12 @@ var CommandType;
|
|
|
117
142
|
CommandType[CommandType["APPROVE_ERC20"] = 34] = "APPROVE_ERC20";
|
|
118
143
|
})(CommandType || (CommandType = {}));
|
|
119
144
|
var ALLOW_REVERT_FLAG = 0x80;
|
|
120
|
-
var REVERTIBLE_COMMANDS = /*#__PURE__*/new Set([CommandType.
|
|
145
|
+
var REVERTIBLE_COMMANDS = /*#__PURE__*/new Set([CommandType.SEAPORT_V1_5, CommandType.SEAPORT_V1_4, CommandType.NFTX, CommandType.LOOKS_RARE_V2, CommandType.X2Y2_721, CommandType.X2Y2_1155, CommandType.FOUNDATION, CommandType.SUDOSWAP, CommandType.NFT20, CommandType.EXECUTE_SUB_PLAN, CommandType.CRYPTOPUNKS, CommandType.ELEMENT_MARKET]);
|
|
121
146
|
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)';
|
|
122
147
|
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)';
|
|
123
148
|
var PERMIT2_TRANSFER_FROM_STRUCT = '(address from,address to,uint160 amount,address token)';
|
|
124
149
|
var PERMIT2_TRANSFER_FROM_BATCH_STRUCT = PERMIT2_TRANSFER_FROM_STRUCT + '[]';
|
|
125
|
-
var ABI_DEFINITION = (_ABI_DEFINITION = {}, _ABI_DEFINITION[CommandType.EXECUTE_SUB_PLAN] = ['bytes', 'bytes[]'], _ABI_DEFINITION[CommandType.PERMIT2_PERMIT] = [PERMIT_STRUCT, 'bytes'], _ABI_DEFINITION[CommandType.PERMIT2_PERMIT_BATCH] = [PERMIT_BATCH_STRUCT, 'bytes'], _ABI_DEFINITION[CommandType.PERMIT2_TRANSFER_FROM] = ['address', 'address', 'uint160'], _ABI_DEFINITION[CommandType.PERMIT2_TRANSFER_FROM_BATCH] = [PERMIT2_TRANSFER_FROM_BATCH_STRUCT], _ABI_DEFINITION[CommandType.V3_SWAP_EXACT_IN] = ['address', 'uint256', 'uint256', 'bytes', 'bool'], _ABI_DEFINITION[CommandType.V3_SWAP_EXACT_OUT] = ['address', 'uint256', 'uint256', 'bytes', 'bool'], _ABI_DEFINITION[CommandType.V2_SWAP_EXACT_IN] = ['address', 'uint256', 'uint256', 'address[]', 'bool'], _ABI_DEFINITION[CommandType.V2_SWAP_EXACT_OUT] = ['address', 'uint256', 'uint256', 'address[]', 'bool'], _ABI_DEFINITION[CommandType.WRAP_ETH] = ['address', 'uint256'], _ABI_DEFINITION[CommandType.UNWRAP_WETH] = ['address', 'uint256'], _ABI_DEFINITION[CommandType.SWEEP] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.SWEEP_ERC721] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.SWEEP_ERC1155] = ['address', 'address', 'uint256', 'uint256'], _ABI_DEFINITION[CommandType.TRANSFER] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.PAY_PORTION] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.BALANCE_CHECK_ERC20] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.OWNER_CHECK_721] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.OWNER_CHECK_1155] = ['address', 'address', 'uint256', 'uint256'], _ABI_DEFINITION[CommandType.APPROVE_ERC20] = ['address', 'uint256'], _ABI_DEFINITION[CommandType.
|
|
150
|
+
var ABI_DEFINITION = (_ABI_DEFINITION = {}, _ABI_DEFINITION[CommandType.EXECUTE_SUB_PLAN] = ['bytes', 'bytes[]'], _ABI_DEFINITION[CommandType.PERMIT2_PERMIT] = [PERMIT_STRUCT, 'bytes'], _ABI_DEFINITION[CommandType.PERMIT2_PERMIT_BATCH] = [PERMIT_BATCH_STRUCT, 'bytes'], _ABI_DEFINITION[CommandType.PERMIT2_TRANSFER_FROM] = ['address', 'address', 'uint160'], _ABI_DEFINITION[CommandType.PERMIT2_TRANSFER_FROM_BATCH] = [PERMIT2_TRANSFER_FROM_BATCH_STRUCT], _ABI_DEFINITION[CommandType.V3_SWAP_EXACT_IN] = ['address', 'uint256', 'uint256', 'bytes', 'bool'], _ABI_DEFINITION[CommandType.V3_SWAP_EXACT_OUT] = ['address', 'uint256', 'uint256', 'bytes', 'bool'], _ABI_DEFINITION[CommandType.V2_SWAP_EXACT_IN] = ['address', 'uint256', 'uint256', 'address[]', 'bool'], _ABI_DEFINITION[CommandType.V2_SWAP_EXACT_OUT] = ['address', 'uint256', 'uint256', 'address[]', 'bool'], _ABI_DEFINITION[CommandType.WRAP_ETH] = ['address', 'uint256'], _ABI_DEFINITION[CommandType.UNWRAP_WETH] = ['address', 'uint256'], _ABI_DEFINITION[CommandType.SWEEP] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.SWEEP_ERC721] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.SWEEP_ERC1155] = ['address', 'address', 'uint256', 'uint256'], _ABI_DEFINITION[CommandType.TRANSFER] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.PAY_PORTION] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.BALANCE_CHECK_ERC20] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.OWNER_CHECK_721] = ['address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.OWNER_CHECK_1155] = ['address', 'address', 'uint256', 'uint256'], _ABI_DEFINITION[CommandType.APPROVE_ERC20] = ['address', 'uint256'], _ABI_DEFINITION[CommandType.SEAPORT_V1_5] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.SEAPORT_V1_4] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.NFTX] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.LOOKS_RARE_V2] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.X2Y2_721] = ['uint256', 'bytes', 'address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.X2Y2_1155] = ['uint256', 'bytes', 'address', 'address', 'uint256', 'uint256'], _ABI_DEFINITION[CommandType.FOUNDATION] = ['uint256', 'bytes', 'address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.SUDOSWAP] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.NFT20] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.CRYPTOPUNKS] = ['uint256', 'address', 'uint256'], _ABI_DEFINITION[CommandType.ELEMENT_MARKET] = ['uint256', 'bytes'], _ABI_DEFINITION);
|
|
126
151
|
var RoutePlanner = /*#__PURE__*/function () {
|
|
127
152
|
function RoutePlanner() {
|
|
128
153
|
this.commands = '0x';
|
|
@@ -159,8 +184,8 @@ function createCommand(type, parameters) {
|
|
|
159
184
|
var UNIVERSAL_ROUTER_ADDRESS = function UNIVERSAL_ROUTER_ADDRESS(chainId) {
|
|
160
185
|
switch (chainId) {
|
|
161
186
|
case 1:
|
|
162
|
-
// mainnet
|
|
163
|
-
return '
|
|
187
|
+
// mainnet. UR v1.2, all others are v1
|
|
188
|
+
return '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD';
|
|
164
189
|
case 5:
|
|
165
190
|
// goerli
|
|
166
191
|
return '0x4648a43B2C14Da09FdF82B161150d3F634f40491';
|
|
@@ -431,8 +456,8 @@ function encodeInputTokenOptions(planner, options) {
|
|
|
431
456
|
}
|
|
432
457
|
function mapApprovalProtocol(protocolAddress) {
|
|
433
458
|
switch (protocolAddress.toLowerCase()) {
|
|
434
|
-
case '
|
|
435
|
-
// Seaport v1.
|
|
459
|
+
case '0x00000000000000adc04c56bf30ac9d3c0aaf14dc':
|
|
460
|
+
// Seaport v1.5
|
|
436
461
|
return OPENSEA_CONDUIT_SPENDER_ID;
|
|
437
462
|
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
438
463
|
// Seaport v1.4
|
|
@@ -460,6 +485,8 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
460
485
|
// track value flow to require the right amount of native value
|
|
461
486
|
var currentNativeValueInRouter = BigNumber.from(0);
|
|
462
487
|
var transactionValue = BigNumber.from(0);
|
|
488
|
+
// tracks the input tokens (and ETH) used to buy NFTs to allow us to sweep
|
|
489
|
+
var nftInputTokens = new Set();
|
|
463
490
|
for (var _iterator = _createForOfIteratorHelperLoose(trades), _step; !(_step = _iterator()).done;) {
|
|
464
491
|
var trade = _step.value;
|
|
465
492
|
/**
|
|
@@ -471,6 +498,15 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
471
498
|
allowRevert: allowRevert
|
|
472
499
|
});
|
|
473
500
|
var tradePrice = nftTrade.getTotalPrice();
|
|
501
|
+
if (nftTrade.market == Market.Seaport) {
|
|
502
|
+
var seaportTrade = nftTrade;
|
|
503
|
+
var seaportInputTokens = seaportTrade.getInputTokens();
|
|
504
|
+
seaportInputTokens.forEach(function (inputToken) {
|
|
505
|
+
nftInputTokens.add(inputToken);
|
|
506
|
+
});
|
|
507
|
+
} else {
|
|
508
|
+
nftInputTokens.add(ETH_ADDRESS);
|
|
509
|
+
}
|
|
474
510
|
// send enough native value to contract for NFT purchase
|
|
475
511
|
if (currentNativeValueInRouter.lt(tradePrice)) {
|
|
476
512
|
transactionValue = transactionValue.add(tradePrice.sub(currentNativeValueInRouter));
|
|
@@ -517,12 +553,16 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
517
553
|
}
|
|
518
554
|
}
|
|
519
555
|
// TODO: matches current logic for now, but should eventually only sweep for multiple NFT trades
|
|
520
|
-
// or NFT trades with potential slippage (i.e. sudo)
|
|
521
|
-
|
|
556
|
+
// or NFT trades with potential slippage (i.e. sudo).
|
|
557
|
+
// Note: NFTXV2 sends excess ETH to the caller (router), not the specified recipient
|
|
558
|
+
nftInputTokens.forEach(function (inputToken) {
|
|
559
|
+
planner.addCommand(CommandType.SWEEP, [inputToken, SENDER_AS_RECIPIENT, 0]);
|
|
560
|
+
});
|
|
522
561
|
return SwapRouter.encodePlan(planner, transactionValue, config);
|
|
523
562
|
}
|
|
524
563
|
/**
|
|
525
564
|
* @deprecated in favor of swapCallParameters. Update before next major version 2.0.0
|
|
565
|
+
* This version does not work correctly for Seaport ERC20->NFT purchases
|
|
526
566
|
* Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given swap.
|
|
527
567
|
* @param trades to produce call parameters for
|
|
528
568
|
*/;
|
|
@@ -590,31 +630,6 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
590
630
|
}();
|
|
591
631
|
SwapRouter.INTERFACE = /*#__PURE__*/new Interface(abi$7);
|
|
592
632
|
|
|
593
|
-
var NFTTrade = function NFTTrade(market, orders) {
|
|
594
|
-
this.tradeType = RouterTradeType.NFTTrade;
|
|
595
|
-
!(orders.length > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, 'no buy Items') : invariant(false) : void 0;
|
|
596
|
-
this.market = market;
|
|
597
|
-
this.orders = orders;
|
|
598
|
-
};
|
|
599
|
-
var Market;
|
|
600
|
-
(function (Market) {
|
|
601
|
-
Market["Foundation"] = "foundation";
|
|
602
|
-
Market["LooksRareV2"] = "looksrareV2";
|
|
603
|
-
Market["NFT20"] = "nft20";
|
|
604
|
-
Market["NFTX"] = "nftx";
|
|
605
|
-
Market["Seaport"] = "seaport";
|
|
606
|
-
Market["Sudoswap"] = "Sudoswap";
|
|
607
|
-
Market["Cryptopunks"] = "cryptopunks";
|
|
608
|
-
Market["X2Y2"] = "x2y2";
|
|
609
|
-
Market["Element"] = "element";
|
|
610
|
-
})(Market || (Market = {}));
|
|
611
|
-
var TokenType;
|
|
612
|
-
(function (TokenType) {
|
|
613
|
-
TokenType["ERC721"] = "ERC721";
|
|
614
|
-
TokenType["ERC1155"] = "ERC1155";
|
|
615
|
-
TokenType["Cryptopunk"] = "Cryptopunk";
|
|
616
|
-
})(TokenType || (TokenType = {}));
|
|
617
|
-
|
|
618
633
|
var CryptopunkTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
619
634
|
_inheritsLoose(CryptopunkTrade, _NFTTrade);
|
|
620
635
|
function CryptopunkTrade(orders) {
|
|
@@ -4317,26 +4332,28 @@ var LooksRareV2Trade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
4317
4332
|
}
|
|
4318
4333
|
var _proto = LooksRareV2Trade.prototype;
|
|
4319
4334
|
_proto.encode = function encode(planner, config) {
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4335
|
+
var _this$refactorAPIData = this.refactorAPIData(this.orders),
|
|
4336
|
+
takerBids = _this$refactorAPIData.takerBids,
|
|
4337
|
+
makerOrders = _this$refactorAPIData.makerOrders,
|
|
4338
|
+
makerSignatures = _this$refactorAPIData.makerSignatures,
|
|
4339
|
+
totalValue = _this$refactorAPIData.totalValue,
|
|
4340
|
+
merkleTrees = _this$refactorAPIData.merkleTrees;
|
|
4341
|
+
var calldata;
|
|
4342
|
+
if (this.orders.length == 1) {
|
|
4343
|
+
calldata = LooksRareV2Trade.INTERFACE.encodeFunctionData('executeTakerBid', [takerBids[0], makerOrders[0], makerSignatures[0], merkleTrees[0], ZERO_ADDRESS]);
|
|
4344
|
+
} else {
|
|
4345
|
+
calldata = LooksRareV2Trade.INTERFACE.encodeFunctionData('executeMultipleTakerBids', [takerBids, makerOrders, makerSignatures, merkleTrees, ZERO_ADDRESS, false]);
|
|
4330
4346
|
}
|
|
4347
|
+
planner.addCommand(CommandType.LOOKS_RARE_V2, [totalValue, calldata], config.allowRevert);
|
|
4331
4348
|
};
|
|
4332
4349
|
_proto.getBuyItems = function getBuyItems() {
|
|
4333
4350
|
var buyItems = [];
|
|
4334
|
-
for (var
|
|
4335
|
-
var item =
|
|
4351
|
+
for (var _iterator = _createForOfIteratorHelperLoose(this.orders), _step; !(_step = _iterator()).done;) {
|
|
4352
|
+
var item = _step.value;
|
|
4336
4353
|
var tokenAddress = item.apiOrder.collection;
|
|
4337
4354
|
var tokenType = item.apiOrder.collectionType == LooksRareV2Trade.ERC721_ORDER ? TokenType.ERC721 : TokenType.ERC1155;
|
|
4338
|
-
for (var
|
|
4339
|
-
var tokenId =
|
|
4355
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(item.apiOrder.itemIds), _step2; !(_step2 = _iterator2()).done;) {
|
|
4356
|
+
var tokenId = _step2.value;
|
|
4340
4357
|
buyItems.push({
|
|
4341
4358
|
tokenAddress: tokenAddress,
|
|
4342
4359
|
tokenId: tokenId,
|
|
@@ -4348,30 +4365,38 @@ var LooksRareV2Trade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
4348
4365
|
};
|
|
4349
4366
|
_proto.getTotalPrice = function getTotalPrice() {
|
|
4350
4367
|
var total = BigNumber.from(0);
|
|
4351
|
-
for (var
|
|
4352
|
-
var item =
|
|
4368
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(this.orders), _step3; !(_step3 = _iterator3()).done;) {
|
|
4369
|
+
var item = _step3.value;
|
|
4353
4370
|
total = total.add(item.apiOrder.price);
|
|
4354
4371
|
}
|
|
4355
4372
|
return total;
|
|
4356
4373
|
};
|
|
4357
|
-
_proto.refactorAPIData = function refactorAPIData(
|
|
4358
|
-
var
|
|
4359
|
-
var
|
|
4360
|
-
var
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4374
|
+
_proto.refactorAPIData = function refactorAPIData(orders) {
|
|
4375
|
+
var takerBids = [];
|
|
4376
|
+
var makerOrders = [];
|
|
4377
|
+
var makerSignatures = [];
|
|
4378
|
+
var totalValue = BigNumber.from(0);
|
|
4379
|
+
var merkleTrees = [];
|
|
4380
|
+
orders.forEach(function (order) {
|
|
4381
|
+
var _order$apiOrder$merkl, _order$apiOrder$merkl2;
|
|
4382
|
+
makerOrders.push(_extends({}, order.apiOrder));
|
|
4383
|
+
makerSignatures.push(order.apiOrder.signature);
|
|
4384
|
+
takerBids.push({
|
|
4385
|
+
recipient: order.taker,
|
|
4386
|
+
additionalParameters: '0x'
|
|
4387
|
+
});
|
|
4388
|
+
totalValue = totalValue.add(BigNumber.from(order.apiOrder.price));
|
|
4389
|
+
merkleTrees.push({
|
|
4390
|
+
root: (_order$apiOrder$merkl = order.apiOrder.merkleRoot) != null ? _order$apiOrder$merkl : '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
4391
|
+
proof: (_order$apiOrder$merkl2 = order.apiOrder.merkleProof) != null ? _order$apiOrder$merkl2 : []
|
|
4392
|
+
});
|
|
4393
|
+
});
|
|
4369
4394
|
return {
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4395
|
+
takerBids: takerBids,
|
|
4396
|
+
makerOrders: makerOrders,
|
|
4397
|
+
makerSignatures: makerSignatures,
|
|
4398
|
+
totalValue: totalValue,
|
|
4399
|
+
merkleTrees: merkleTrees
|
|
4375
4400
|
};
|
|
4376
4401
|
};
|
|
4377
4402
|
return LooksRareV2Trade;
|
|
@@ -8031,13 +8056,28 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8031
8056
|
}
|
|
8032
8057
|
return buyItems;
|
|
8033
8058
|
};
|
|
8059
|
+
_proto.getInputTokens = function getInputTokens() {
|
|
8060
|
+
var inputTokens = new Set();
|
|
8061
|
+
for (var _iterator7 = _createForOfIteratorHelperLoose(this.orders), _step7; !(_step7 = _iterator7()).done;) {
|
|
8062
|
+
var order = _step7.value;
|
|
8063
|
+
for (var _iterator8 = _createForOfIteratorHelperLoose(order.items), _step8; !(_step8 = _iterator8()).done;) {
|
|
8064
|
+
var item = _step8.value;
|
|
8065
|
+
for (var _iterator9 = _createForOfIteratorHelperLoose(item.parameters.consideration), _step9; !(_step9 = _iterator9()).done;) {
|
|
8066
|
+
var consideration = _step9.value;
|
|
8067
|
+
var token = consideration.token.toLowerCase();
|
|
8068
|
+
inputTokens.add(token);
|
|
8069
|
+
}
|
|
8070
|
+
}
|
|
8071
|
+
}
|
|
8072
|
+
return inputTokens;
|
|
8073
|
+
};
|
|
8034
8074
|
_proto.getTotalOrderPrice = function getTotalOrderPrice(order, token) {
|
|
8035
8075
|
if (token === void 0) {
|
|
8036
8076
|
token = ETH_ADDRESS;
|
|
8037
8077
|
}
|
|
8038
8078
|
var totalOrderPrice = BigNumber.from(0);
|
|
8039
|
-
for (var
|
|
8040
|
-
var item =
|
|
8079
|
+
for (var _iterator10 = _createForOfIteratorHelperLoose(order.items), _step10; !(_step10 = _iterator10()).done;) {
|
|
8080
|
+
var item = _step10.value;
|
|
8041
8081
|
totalOrderPrice = totalOrderPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
8042
8082
|
}
|
|
8043
8083
|
return totalOrderPrice;
|
|
@@ -8047,10 +8087,10 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8047
8087
|
token = ETH_ADDRESS;
|
|
8048
8088
|
}
|
|
8049
8089
|
var totalPrice = BigNumber.from(0);
|
|
8050
|
-
for (var
|
|
8051
|
-
var order =
|
|
8052
|
-
for (var
|
|
8053
|
-
var item =
|
|
8090
|
+
for (var _iterator11 = _createForOfIteratorHelperLoose(this.orders), _step11; !(_step11 = _iterator11()).done;) {
|
|
8091
|
+
var order = _step11.value;
|
|
8092
|
+
for (var _iterator12 = _createForOfIteratorHelperLoose(order.items), _step12; !(_step12 = _iterator12()).done;) {
|
|
8093
|
+
var item = _step12.value;
|
|
8054
8094
|
totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
8055
8095
|
}
|
|
8056
8096
|
}
|
|
@@ -8058,9 +8098,9 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8058
8098
|
};
|
|
8059
8099
|
_proto.commandMap = function commandMap(protocolAddress) {
|
|
8060
8100
|
switch (protocolAddress.toLowerCase()) {
|
|
8061
|
-
case '
|
|
8062
|
-
// Seaport v1.
|
|
8063
|
-
return CommandType.
|
|
8101
|
+
case '0x00000000000000adc04c56bf30ac9d3c0aaf14dc':
|
|
8102
|
+
// Seaport v1.5
|
|
8103
|
+
return CommandType.SEAPORT_V1_5;
|
|
8064
8104
|
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
8065
8105
|
// Seaport v1.4
|
|
8066
8106
|
return CommandType.SEAPORT_V1_4;
|
|
@@ -8115,7 +8155,7 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8115
8155
|
};
|
|
8116
8156
|
_proto.calculateValue = function calculateValue(considerations, token) {
|
|
8117
8157
|
return considerations.reduce(function (amt, consideration) {
|
|
8118
|
-
return consideration.token == token ? amt.add(consideration.startAmount) : amt;
|
|
8158
|
+
return consideration.token.toLowerCase() == token.toLowerCase() ? amt.add(consideration.startAmount) : amt;
|
|
8119
8159
|
}, BigNumber.from(0));
|
|
8120
8160
|
};
|
|
8121
8161
|
return SeaportTrade;
|
|
@@ -10443,7 +10483,7 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
10443
10483
|
this.wethAddress = WETH_ADDRESS(chainId);
|
|
10444
10484
|
this.amount = amount;
|
|
10445
10485
|
if (!!permit2) {
|
|
10446
|
-
!(permit2.details.token === this.wethAddress) ? process.env.NODE_ENV !== "production" ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : invariant(false) : void 0;
|
|
10486
|
+
!(permit2.details.token.toLowerCase() === this.wethAddress.toLowerCase()) ? process.env.NODE_ENV !== "production" ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : invariant(false) : void 0;
|
|
10447
10487
|
!(permit2.details.amount >= amount) ? process.env.NODE_ENV !== "production" ? invariant(false, "Did not permit enough WETH for unwrapWETH transaction") : invariant(false) : void 0;
|
|
10448
10488
|
this.permit2Data = permit2;
|
|
10449
10489
|
}
|