@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
package/README.md
CHANGED
|
@@ -98,13 +98,12 @@ Make sure you are running `node v16`
|
|
|
98
98
|
Install dependencies and run typescript unit tests
|
|
99
99
|
```bash
|
|
100
100
|
yarn install
|
|
101
|
-
yarn test
|
|
101
|
+
yarn test:hardhat
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
Run forge integration tests
|
|
105
105
|
```bash
|
|
106
106
|
yarn symlink # must install git submodules
|
|
107
107
|
forge install
|
|
108
|
-
forge
|
|
109
|
-
forge test
|
|
108
|
+
yarn test:forge
|
|
110
109
|
```
|
|
@@ -37,8 +37,8 @@ export declare type LRV2APIOrder = MakerOrder & {
|
|
|
37
37
|
hash: string;
|
|
38
38
|
signature: string;
|
|
39
39
|
createdAt: string;
|
|
40
|
-
merkleRoot
|
|
41
|
-
merkleProof
|
|
40
|
+
merkleRoot?: string;
|
|
41
|
+
merkleProof?: MerkleProof[];
|
|
42
42
|
status: string;
|
|
43
43
|
};
|
|
44
44
|
export declare type LooksRareV2Data = {
|
|
@@ -58,6 +58,7 @@ export declare class SeaportTrade extends NFTTrade<SeaportData> {
|
|
|
58
58
|
constructor(orders: SeaportData[]);
|
|
59
59
|
encode(planner: RoutePlanner, config: TradeConfig): void;
|
|
60
60
|
getBuyItems(): BuyItem[];
|
|
61
|
+
getInputTokens(): Set<string>;
|
|
61
62
|
getTotalOrderPrice(order: SeaportData, token?: string): BigNumber;
|
|
62
63
|
getTotalPrice(token?: string): BigNumber;
|
|
63
64
|
private commandMap;
|
package/dist/swapRouter.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare abstract class SwapRouter {
|
|
|
16
16
|
static swapCallParameters(trades: Command[] | Command, config?: SwapRouterConfig): MethodParameters;
|
|
17
17
|
/**
|
|
18
18
|
* @deprecated in favor of swapCallParameters. Update before next major version 2.0.0
|
|
19
|
+
* This version does not work correctly for Seaport ERC20->NFT purchases
|
|
19
20
|
* Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given swap.
|
|
20
21
|
* @param trades to produce call parameters for
|
|
21
22
|
*/
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ConsiderationItem, SeaportData } from '../../src/entities/protocols/seaport';
|
|
2
2
|
import { BigNumber } from 'ethers';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const seaportDataERC20: SeaportData;
|
|
3
|
+
export declare const seaportV1_5DataETH: SeaportData;
|
|
5
4
|
export declare function calculateSeaportValue(considerations: ConsiderationItem[], token: string): BigNumber;
|
|
@@ -79,6 +79,29 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
|
79
79
|
RouterTradeType["UnwrapWETH"] = "UnwrapWETH";
|
|
80
80
|
})(exports.RouterTradeType || (exports.RouterTradeType = {}));
|
|
81
81
|
|
|
82
|
+
var NFTTrade = function NFTTrade(market, orders) {
|
|
83
|
+
this.tradeType = exports.RouterTradeType.NFTTrade;
|
|
84
|
+
!(orders.length > 0) ? invariant(false, 'no buy Items') : void 0;
|
|
85
|
+
this.market = market;
|
|
86
|
+
this.orders = orders;
|
|
87
|
+
};
|
|
88
|
+
(function (Market) {
|
|
89
|
+
Market["Foundation"] = "foundation";
|
|
90
|
+
Market["LooksRareV2"] = "looksrareV2";
|
|
91
|
+
Market["NFT20"] = "nft20";
|
|
92
|
+
Market["NFTX"] = "nftx";
|
|
93
|
+
Market["Seaport"] = "seaport";
|
|
94
|
+
Market["Sudoswap"] = "Sudoswap";
|
|
95
|
+
Market["Cryptopunks"] = "cryptopunks";
|
|
96
|
+
Market["X2Y2"] = "x2y2";
|
|
97
|
+
Market["Element"] = "element";
|
|
98
|
+
})(exports.Market || (exports.Market = {}));
|
|
99
|
+
(function (TokenType) {
|
|
100
|
+
TokenType["ERC721"] = "ERC721";
|
|
101
|
+
TokenType["ERC1155"] = "ERC1155";
|
|
102
|
+
TokenType["Cryptopunk"] = "Cryptopunk";
|
|
103
|
+
})(exports.TokenType || (exports.TokenType = {}));
|
|
104
|
+
|
|
82
105
|
var _ABI_DEFINITION;
|
|
83
106
|
/**
|
|
84
107
|
* CommandTypes
|
|
@@ -102,7 +125,7 @@ var CommandType;
|
|
|
102
125
|
CommandType[CommandType["PERMIT2_TRANSFER_FROM_BATCH"] = 13] = "PERMIT2_TRANSFER_FROM_BATCH";
|
|
103
126
|
CommandType[CommandType["BALANCE_CHECK_ERC20"] = 14] = "BALANCE_CHECK_ERC20";
|
|
104
127
|
// NFT-related command types
|
|
105
|
-
CommandType[CommandType["
|
|
128
|
+
CommandType[CommandType["SEAPORT_V1_5"] = 16] = "SEAPORT_V1_5";
|
|
106
129
|
CommandType[CommandType["LOOKS_RARE_V2"] = 17] = "LOOKS_RARE_V2";
|
|
107
130
|
CommandType[CommandType["NFTX"] = 18] = "NFTX";
|
|
108
131
|
CommandType[CommandType["CRYPTOPUNKS"] = 19] = "CRYPTOPUNKS";
|
|
@@ -122,12 +145,12 @@ var CommandType;
|
|
|
122
145
|
CommandType[CommandType["APPROVE_ERC20"] = 34] = "APPROVE_ERC20";
|
|
123
146
|
})(CommandType || (CommandType = {}));
|
|
124
147
|
var ALLOW_REVERT_FLAG = 0x80;
|
|
125
|
-
var REVERTIBLE_COMMANDS = /*#__PURE__*/new Set([CommandType.
|
|
148
|
+
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]);
|
|
126
149
|
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)';
|
|
127
150
|
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)';
|
|
128
151
|
var PERMIT2_TRANSFER_FROM_STRUCT = '(address from,address to,uint160 amount,address token)';
|
|
129
152
|
var PERMIT2_TRANSFER_FROM_BATCH_STRUCT = PERMIT2_TRANSFER_FROM_STRUCT + '[]';
|
|
130
|
-
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.
|
|
153
|
+
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);
|
|
131
154
|
var RoutePlanner = /*#__PURE__*/function () {
|
|
132
155
|
function RoutePlanner() {
|
|
133
156
|
this.commands = '0x';
|
|
@@ -164,8 +187,8 @@ function createCommand(type, parameters) {
|
|
|
164
187
|
var UNIVERSAL_ROUTER_ADDRESS = function UNIVERSAL_ROUTER_ADDRESS(chainId) {
|
|
165
188
|
switch (chainId) {
|
|
166
189
|
case 1:
|
|
167
|
-
// mainnet
|
|
168
|
-
return '
|
|
190
|
+
// mainnet. UR v1.2, all others are v1
|
|
191
|
+
return '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD';
|
|
169
192
|
case 5:
|
|
170
193
|
// goerli
|
|
171
194
|
return '0x4648a43B2C14Da09FdF82B161150d3F634f40491';
|
|
@@ -436,8 +459,8 @@ function encodeInputTokenOptions(planner, options) {
|
|
|
436
459
|
}
|
|
437
460
|
function mapApprovalProtocol(protocolAddress) {
|
|
438
461
|
switch (protocolAddress.toLowerCase()) {
|
|
439
|
-
case '
|
|
440
|
-
// Seaport v1.
|
|
462
|
+
case '0x00000000000000adc04c56bf30ac9d3c0aaf14dc':
|
|
463
|
+
// Seaport v1.5
|
|
441
464
|
return OPENSEA_CONDUIT_SPENDER_ID;
|
|
442
465
|
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
443
466
|
// Seaport v1.4
|
|
@@ -465,6 +488,8 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
465
488
|
// track value flow to require the right amount of native value
|
|
466
489
|
var currentNativeValueInRouter = ethers.BigNumber.from(0);
|
|
467
490
|
var transactionValue = ethers.BigNumber.from(0);
|
|
491
|
+
// tracks the input tokens (and ETH) used to buy NFTs to allow us to sweep
|
|
492
|
+
var nftInputTokens = new Set();
|
|
468
493
|
for (var _iterator = _createForOfIteratorHelperLoose(trades), _step; !(_step = _iterator()).done;) {
|
|
469
494
|
var trade = _step.value;
|
|
470
495
|
/**
|
|
@@ -476,6 +501,15 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
476
501
|
allowRevert: allowRevert
|
|
477
502
|
});
|
|
478
503
|
var tradePrice = nftTrade.getTotalPrice();
|
|
504
|
+
if (nftTrade.market == exports.Market.Seaport) {
|
|
505
|
+
var seaportTrade = nftTrade;
|
|
506
|
+
var seaportInputTokens = seaportTrade.getInputTokens();
|
|
507
|
+
seaportInputTokens.forEach(function (inputToken) {
|
|
508
|
+
nftInputTokens.add(inputToken);
|
|
509
|
+
});
|
|
510
|
+
} else {
|
|
511
|
+
nftInputTokens.add(ETH_ADDRESS);
|
|
512
|
+
}
|
|
479
513
|
// send enough native value to contract for NFT purchase
|
|
480
514
|
if (currentNativeValueInRouter.lt(tradePrice)) {
|
|
481
515
|
transactionValue = transactionValue.add(tradePrice.sub(currentNativeValueInRouter));
|
|
@@ -522,12 +556,16 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
522
556
|
}
|
|
523
557
|
}
|
|
524
558
|
// TODO: matches current logic for now, but should eventually only sweep for multiple NFT trades
|
|
525
|
-
// or NFT trades with potential slippage (i.e. sudo)
|
|
526
|
-
|
|
559
|
+
// or NFT trades with potential slippage (i.e. sudo).
|
|
560
|
+
// Note: NFTXV2 sends excess ETH to the caller (router), not the specified recipient
|
|
561
|
+
nftInputTokens.forEach(function (inputToken) {
|
|
562
|
+
planner.addCommand(CommandType.SWEEP, [inputToken, SENDER_AS_RECIPIENT, 0]);
|
|
563
|
+
});
|
|
527
564
|
return SwapRouter.encodePlan(planner, transactionValue, config);
|
|
528
565
|
}
|
|
529
566
|
/**
|
|
530
567
|
* @deprecated in favor of swapCallParameters. Update before next major version 2.0.0
|
|
568
|
+
* This version does not work correctly for Seaport ERC20->NFT purchases
|
|
531
569
|
* Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given swap.
|
|
532
570
|
* @param trades to produce call parameters for
|
|
533
571
|
*/;
|
|
@@ -595,29 +633,6 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
595
633
|
}();
|
|
596
634
|
SwapRouter.INTERFACE = /*#__PURE__*/new abi$7.Interface(UniversalRouter_json.abi);
|
|
597
635
|
|
|
598
|
-
var NFTTrade = function NFTTrade(market, orders) {
|
|
599
|
-
this.tradeType = exports.RouterTradeType.NFTTrade;
|
|
600
|
-
!(orders.length > 0) ? invariant(false, 'no buy Items') : void 0;
|
|
601
|
-
this.market = market;
|
|
602
|
-
this.orders = orders;
|
|
603
|
-
};
|
|
604
|
-
(function (Market) {
|
|
605
|
-
Market["Foundation"] = "foundation";
|
|
606
|
-
Market["LooksRareV2"] = "looksrareV2";
|
|
607
|
-
Market["NFT20"] = "nft20";
|
|
608
|
-
Market["NFTX"] = "nftx";
|
|
609
|
-
Market["Seaport"] = "seaport";
|
|
610
|
-
Market["Sudoswap"] = "Sudoswap";
|
|
611
|
-
Market["Cryptopunks"] = "cryptopunks";
|
|
612
|
-
Market["X2Y2"] = "x2y2";
|
|
613
|
-
Market["Element"] = "element";
|
|
614
|
-
})(exports.Market || (exports.Market = {}));
|
|
615
|
-
(function (TokenType) {
|
|
616
|
-
TokenType["ERC721"] = "ERC721";
|
|
617
|
-
TokenType["ERC1155"] = "ERC1155";
|
|
618
|
-
TokenType["Cryptopunk"] = "Cryptopunk";
|
|
619
|
-
})(exports.TokenType || (exports.TokenType = {}));
|
|
620
|
-
|
|
621
636
|
var CryptopunkTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
622
637
|
_inheritsLoose(CryptopunkTrade, _NFTTrade);
|
|
623
638
|
function CryptopunkTrade(orders) {
|
|
@@ -4320,26 +4335,28 @@ var LooksRareV2Trade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
4320
4335
|
}
|
|
4321
4336
|
var _proto = LooksRareV2Trade.prototype;
|
|
4322
4337
|
_proto.encode = function encode(planner, config) {
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4338
|
+
var _this$refactorAPIData = this.refactorAPIData(this.orders),
|
|
4339
|
+
takerBids = _this$refactorAPIData.takerBids,
|
|
4340
|
+
makerOrders = _this$refactorAPIData.makerOrders,
|
|
4341
|
+
makerSignatures = _this$refactorAPIData.makerSignatures,
|
|
4342
|
+
totalValue = _this$refactorAPIData.totalValue,
|
|
4343
|
+
merkleTrees = _this$refactorAPIData.merkleTrees;
|
|
4344
|
+
var calldata;
|
|
4345
|
+
if (this.orders.length == 1) {
|
|
4346
|
+
calldata = LooksRareV2Trade.INTERFACE.encodeFunctionData('executeTakerBid', [takerBids[0], makerOrders[0], makerSignatures[0], merkleTrees[0], ZERO_ADDRESS]);
|
|
4347
|
+
} else {
|
|
4348
|
+
calldata = LooksRareV2Trade.INTERFACE.encodeFunctionData('executeMultipleTakerBids', [takerBids, makerOrders, makerSignatures, merkleTrees, ZERO_ADDRESS, false]);
|
|
4333
4349
|
}
|
|
4350
|
+
planner.addCommand(CommandType.LOOKS_RARE_V2, [totalValue, calldata], config.allowRevert);
|
|
4334
4351
|
};
|
|
4335
4352
|
_proto.getBuyItems = function getBuyItems() {
|
|
4336
4353
|
var buyItems = [];
|
|
4337
|
-
for (var
|
|
4338
|
-
var item =
|
|
4354
|
+
for (var _iterator = _createForOfIteratorHelperLoose(this.orders), _step; !(_step = _iterator()).done;) {
|
|
4355
|
+
var item = _step.value;
|
|
4339
4356
|
var tokenAddress = item.apiOrder.collection;
|
|
4340
4357
|
var tokenType = item.apiOrder.collectionType == LooksRareV2Trade.ERC721_ORDER ? exports.TokenType.ERC721 : exports.TokenType.ERC1155;
|
|
4341
|
-
for (var
|
|
4342
|
-
var tokenId =
|
|
4358
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(item.apiOrder.itemIds), _step2; !(_step2 = _iterator2()).done;) {
|
|
4359
|
+
var tokenId = _step2.value;
|
|
4343
4360
|
buyItems.push({
|
|
4344
4361
|
tokenAddress: tokenAddress,
|
|
4345
4362
|
tokenId: tokenId,
|
|
@@ -4351,30 +4368,38 @@ var LooksRareV2Trade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
4351
4368
|
};
|
|
4352
4369
|
_proto.getTotalPrice = function getTotalPrice() {
|
|
4353
4370
|
var total = ethers.BigNumber.from(0);
|
|
4354
|
-
for (var
|
|
4355
|
-
var item =
|
|
4371
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(this.orders), _step3; !(_step3 = _iterator3()).done;) {
|
|
4372
|
+
var item = _step3.value;
|
|
4356
4373
|
total = total.add(item.apiOrder.price);
|
|
4357
4374
|
}
|
|
4358
4375
|
return total;
|
|
4359
4376
|
};
|
|
4360
|
-
_proto.refactorAPIData = function refactorAPIData(
|
|
4361
|
-
var
|
|
4362
|
-
var
|
|
4363
|
-
var
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4377
|
+
_proto.refactorAPIData = function refactorAPIData(orders) {
|
|
4378
|
+
var takerBids = [];
|
|
4379
|
+
var makerOrders = [];
|
|
4380
|
+
var makerSignatures = [];
|
|
4381
|
+
var totalValue = ethers.BigNumber.from(0);
|
|
4382
|
+
var merkleTrees = [];
|
|
4383
|
+
orders.forEach(function (order) {
|
|
4384
|
+
var _order$apiOrder$merkl, _order$apiOrder$merkl2;
|
|
4385
|
+
makerOrders.push(_extends({}, order.apiOrder));
|
|
4386
|
+
makerSignatures.push(order.apiOrder.signature);
|
|
4387
|
+
takerBids.push({
|
|
4388
|
+
recipient: order.taker,
|
|
4389
|
+
additionalParameters: '0x'
|
|
4390
|
+
});
|
|
4391
|
+
totalValue = totalValue.add(ethers.BigNumber.from(order.apiOrder.price));
|
|
4392
|
+
merkleTrees.push({
|
|
4393
|
+
root: (_order$apiOrder$merkl = order.apiOrder.merkleRoot) != null ? _order$apiOrder$merkl : '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
4394
|
+
proof: (_order$apiOrder$merkl2 = order.apiOrder.merkleProof) != null ? _order$apiOrder$merkl2 : []
|
|
4395
|
+
});
|
|
4396
|
+
});
|
|
4372
4397
|
return {
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4398
|
+
takerBids: takerBids,
|
|
4399
|
+
makerOrders: makerOrders,
|
|
4400
|
+
makerSignatures: makerSignatures,
|
|
4401
|
+
totalValue: totalValue,
|
|
4402
|
+
merkleTrees: merkleTrees
|
|
4378
4403
|
};
|
|
4379
4404
|
};
|
|
4380
4405
|
return LooksRareV2Trade;
|
|
@@ -8034,13 +8059,28 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8034
8059
|
}
|
|
8035
8060
|
return buyItems;
|
|
8036
8061
|
};
|
|
8062
|
+
_proto.getInputTokens = function getInputTokens() {
|
|
8063
|
+
var inputTokens = new Set();
|
|
8064
|
+
for (var _iterator7 = _createForOfIteratorHelperLoose(this.orders), _step7; !(_step7 = _iterator7()).done;) {
|
|
8065
|
+
var order = _step7.value;
|
|
8066
|
+
for (var _iterator8 = _createForOfIteratorHelperLoose(order.items), _step8; !(_step8 = _iterator8()).done;) {
|
|
8067
|
+
var item = _step8.value;
|
|
8068
|
+
for (var _iterator9 = _createForOfIteratorHelperLoose(item.parameters.consideration), _step9; !(_step9 = _iterator9()).done;) {
|
|
8069
|
+
var consideration = _step9.value;
|
|
8070
|
+
var token = consideration.token.toLowerCase();
|
|
8071
|
+
inputTokens.add(token);
|
|
8072
|
+
}
|
|
8073
|
+
}
|
|
8074
|
+
}
|
|
8075
|
+
return inputTokens;
|
|
8076
|
+
};
|
|
8037
8077
|
_proto.getTotalOrderPrice = function getTotalOrderPrice(order, token) {
|
|
8038
8078
|
if (token === void 0) {
|
|
8039
8079
|
token = ETH_ADDRESS;
|
|
8040
8080
|
}
|
|
8041
8081
|
var totalOrderPrice = ethers.BigNumber.from(0);
|
|
8042
|
-
for (var
|
|
8043
|
-
var item =
|
|
8082
|
+
for (var _iterator10 = _createForOfIteratorHelperLoose(order.items), _step10; !(_step10 = _iterator10()).done;) {
|
|
8083
|
+
var item = _step10.value;
|
|
8044
8084
|
totalOrderPrice = totalOrderPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
8045
8085
|
}
|
|
8046
8086
|
return totalOrderPrice;
|
|
@@ -8050,10 +8090,10 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8050
8090
|
token = ETH_ADDRESS;
|
|
8051
8091
|
}
|
|
8052
8092
|
var totalPrice = ethers.BigNumber.from(0);
|
|
8053
|
-
for (var
|
|
8054
|
-
var order =
|
|
8055
|
-
for (var
|
|
8056
|
-
var item =
|
|
8093
|
+
for (var _iterator11 = _createForOfIteratorHelperLoose(this.orders), _step11; !(_step11 = _iterator11()).done;) {
|
|
8094
|
+
var order = _step11.value;
|
|
8095
|
+
for (var _iterator12 = _createForOfIteratorHelperLoose(order.items), _step12; !(_step12 = _iterator12()).done;) {
|
|
8096
|
+
var item = _step12.value;
|
|
8057
8097
|
totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
8058
8098
|
}
|
|
8059
8099
|
}
|
|
@@ -8061,9 +8101,9 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8061
8101
|
};
|
|
8062
8102
|
_proto.commandMap = function commandMap(protocolAddress) {
|
|
8063
8103
|
switch (protocolAddress.toLowerCase()) {
|
|
8064
|
-
case '
|
|
8065
|
-
// Seaport v1.
|
|
8066
|
-
return CommandType.
|
|
8104
|
+
case '0x00000000000000adc04c56bf30ac9d3c0aaf14dc':
|
|
8105
|
+
// Seaport v1.5
|
|
8106
|
+
return CommandType.SEAPORT_V1_5;
|
|
8067
8107
|
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
8068
8108
|
// Seaport v1.4
|
|
8069
8109
|
return CommandType.SEAPORT_V1_4;
|
|
@@ -8118,7 +8158,7 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
8118
8158
|
};
|
|
8119
8159
|
_proto.calculateValue = function calculateValue(considerations, token) {
|
|
8120
8160
|
return considerations.reduce(function (amt, consideration) {
|
|
8121
|
-
return consideration.token == token ? amt.add(consideration.startAmount) : amt;
|
|
8161
|
+
return consideration.token.toLowerCase() == token.toLowerCase() ? amt.add(consideration.startAmount) : amt;
|
|
8122
8162
|
}, ethers.BigNumber.from(0));
|
|
8123
8163
|
};
|
|
8124
8164
|
return SeaportTrade;
|
|
@@ -10446,7 +10486,7 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
10446
10486
|
this.wethAddress = WETH_ADDRESS(chainId);
|
|
10447
10487
|
this.amount = amount;
|
|
10448
10488
|
if (!!permit2) {
|
|
10449
|
-
!(permit2.details.token === this.wethAddress) ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : void 0;
|
|
10489
|
+
!(permit2.details.token.toLowerCase() === this.wethAddress.toLowerCase()) ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : void 0;
|
|
10450
10490
|
!(permit2.details.amount >= amount) ? invariant(false, "Did not permit enough WETH for unwrapWETH transaction") : void 0;
|
|
10451
10491
|
this.permit2Data = permit2;
|
|
10452
10492
|
}
|