@uniswap/universal-router-sdk 1.4.2 → 1.5.0-beta.0
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/dist/entities/Command.d.ts +13 -13
- package/dist/entities/NFTTrade.d.ts +44 -50
- package/dist/entities/index.d.ts +3 -3
- package/dist/entities/protocols/cryptopunk.d.ts +16 -16
- package/dist/entities/protocols/element-market.d.ts +44 -0
- package/dist/entities/protocols/foundation.d.ts +19 -19
- package/dist/entities/protocols/index.d.ts +10 -10
- package/dist/entities/protocols/looksRare.d.ts +44 -44
- package/dist/entities/protocols/nft20.d.ts +21 -21
- package/dist/entities/protocols/nftx.d.ts +20 -20
- package/dist/entities/protocols/seaport.d.ts +68 -63
- package/dist/entities/protocols/sudoswap.d.ts +27 -27
- package/dist/entities/protocols/uniswap.d.ts +15 -15
- package/dist/entities/protocols/unwrapWETH.d.ts +12 -13
- package/dist/entities/protocols/x2y2.d.ts +28 -28
- package/dist/index.d.ts +3 -3
- package/dist/swapRouter.d.ts +38 -41
- package/dist/test/forge/writeInterop.d.ts +1 -1
- package/dist/test/orders/element.d.ts +7 -0
- package/dist/test/orders/looksRare.d.ts +12 -15
- package/dist/test/orders/seaport.d.ts +5 -4
- package/dist/test/orders/seaportV1_4.d.ts +4 -4
- package/dist/test/orders/x2y2.d.ts +6 -6
- package/dist/test/utils/addresses.d.ts +7 -2
- package/dist/test/utils/hexToDecimalString.d.ts +2 -2
- package/dist/test/utils/permit2.d.ts +7 -17
- package/dist/test/utils/uniswapData.d.ts +23 -30
- package/dist/universal-router-sdk.cjs.development.js +124 -41
- 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 +125 -43
- package/dist/universal-router-sdk.esm.js.map +1 -1
- package/dist/utils/constants.d.ts +13 -8
- package/dist/utils/expandTo18Decimals.d.ts +4 -4
- package/dist/utils/getNativeCurrencyValue.d.ts +2 -2
- package/dist/utils/inputTokens.d.ts +21 -0
- package/dist/utils/routerCommands.d.ts +51 -44
- package/package.json +4 -2
- package/dist/utils/permit2.d.ts +0 -6
|
@@ -82,11 +82,11 @@ var CommandType;
|
|
|
82
82
|
CommandType[CommandType["PAY_PORTION"] = 6] = "PAY_PORTION";
|
|
83
83
|
CommandType[CommandType["V2_SWAP_EXACT_IN"] = 8] = "V2_SWAP_EXACT_IN";
|
|
84
84
|
CommandType[CommandType["V2_SWAP_EXACT_OUT"] = 9] = "V2_SWAP_EXACT_OUT";
|
|
85
|
-
CommandType[CommandType["
|
|
85
|
+
CommandType[CommandType["PERMIT2_PERMIT"] = 10] = "PERMIT2_PERMIT";
|
|
86
86
|
CommandType[CommandType["WRAP_ETH"] = 11] = "WRAP_ETH";
|
|
87
87
|
CommandType[CommandType["UNWRAP_WETH"] = 12] = "UNWRAP_WETH";
|
|
88
88
|
CommandType[CommandType["PERMIT2_TRANSFER_FROM_BATCH"] = 13] = "PERMIT2_TRANSFER_FROM_BATCH";
|
|
89
|
-
CommandType[CommandType["
|
|
89
|
+
CommandType[CommandType["BALANCE_CHECK_ERC20"] = 14] = "BALANCE_CHECK_ERC20";
|
|
90
90
|
// NFT-related command types
|
|
91
91
|
CommandType[CommandType["SEAPORT"] = 16] = "SEAPORT";
|
|
92
92
|
CommandType[CommandType["LOOKS_RARE_721"] = 17] = "LOOKS_RARE_721";
|
|
@@ -95,23 +95,34 @@ var CommandType;
|
|
|
95
95
|
CommandType[CommandType["LOOKS_RARE_1155"] = 20] = "LOOKS_RARE_1155";
|
|
96
96
|
CommandType[CommandType["OWNER_CHECK_721"] = 21] = "OWNER_CHECK_721";
|
|
97
97
|
CommandType[CommandType["OWNER_CHECK_1155"] = 22] = "OWNER_CHECK_1155";
|
|
98
|
+
CommandType[CommandType["SWEEP_ERC721"] = 23] = "SWEEP_ERC721";
|
|
98
99
|
CommandType[CommandType["X2Y2_721"] = 24] = "X2Y2_721";
|
|
99
100
|
CommandType[CommandType["SUDOSWAP"] = 25] = "SUDOSWAP";
|
|
100
101
|
CommandType[CommandType["NFT20"] = 26] = "NFT20";
|
|
101
102
|
CommandType[CommandType["X2Y2_1155"] = 27] = "X2Y2_1155";
|
|
102
103
|
CommandType[CommandType["FOUNDATION"] = 28] = "FOUNDATION";
|
|
104
|
+
CommandType[CommandType["SWEEP_ERC1155"] = 29] = "SWEEP_ERC1155";
|
|
105
|
+
CommandType[CommandType["ELEMENT_MARKET"] = 30] = "ELEMENT_MARKET";
|
|
106
|
+
CommandType[CommandType["EXECUTE_SUB_PLAN"] = 32] = "EXECUTE_SUB_PLAN";
|
|
107
|
+
CommandType[CommandType["SEAPORT_V1_4"] = 33] = "SEAPORT_V1_4";
|
|
108
|
+
CommandType[CommandType["APPROVE_ERC20"] = 34] = "APPROVE_ERC20";
|
|
103
109
|
})(CommandType || (CommandType = {}));
|
|
104
|
-
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details, address spender, uint256 sigDeadline)';
|
|
105
|
-
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details, address spender, uint256 sigDeadline)';
|
|
106
110
|
var ALLOW_REVERT_FLAG = 0x80;
|
|
107
|
-
var REVERTIBLE_COMMANDS = /*#__PURE__*/new Set([CommandType.SEAPORT, CommandType.SEAPORT_V1_4, CommandType.NFTX, CommandType.LOOKS_RARE_721, CommandType.LOOKS_RARE_1155, CommandType.X2Y2_721, CommandType.X2Y2_1155, CommandType.FOUNDATION, CommandType.SUDOSWAP, CommandType.NFT20, CommandType.CRYPTOPUNKS]);
|
|
108
|
-
var
|
|
111
|
+
var REVERTIBLE_COMMANDS = /*#__PURE__*/new Set([CommandType.SEAPORT, CommandType.SEAPORT_V1_4, CommandType.NFTX, CommandType.LOOKS_RARE_721, CommandType.LOOKS_RARE_1155, CommandType.X2Y2_721, CommandType.X2Y2_1155, CommandType.FOUNDATION, CommandType.SUDOSWAP, CommandType.NFT20, CommandType.EXECUTE_SUB_PLAN, CommandType.CRYPTOPUNKS, CommandType.ELEMENT_MARKET]);
|
|
112
|
+
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)';
|
|
113
|
+
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)';
|
|
114
|
+
var PERMIT2_TRANSFER_FROM_STRUCT = '(address from,address to,uint160 amount,address token)';
|
|
115
|
+
var PERMIT2_TRANSFER_FROM_BATCH_STRUCT = PERMIT2_TRANSFER_FROM_STRUCT + '[]';
|
|
116
|
+
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] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.SEAPORT_V1_4] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.NFTX] = ['uint256', 'bytes'], _ABI_DEFINITION[CommandType.LOOKS_RARE_721] = ['uint256', 'bytes', 'address', 'address', 'uint256'], _ABI_DEFINITION[CommandType.LOOKS_RARE_1155] = ['uint256', 'bytes', 'address', 'address', 'uint256', 'uint256'], _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);
|
|
109
117
|
var RoutePlanner = /*#__PURE__*/function () {
|
|
110
118
|
function RoutePlanner() {
|
|
111
119
|
this.commands = '0x';
|
|
112
120
|
this.inputs = [];
|
|
113
121
|
}
|
|
114
122
|
var _proto = RoutePlanner.prototype;
|
|
123
|
+
_proto.addSubPlan = function addSubPlan(subplan) {
|
|
124
|
+
this.addCommand(CommandType.EXECUTE_SUB_PLAN, [subplan.commands, subplan.inputs], true);
|
|
125
|
+
};
|
|
115
126
|
_proto.addCommand = function addCommand(type, parameters, allowRevert) {
|
|
116
127
|
if (allowRevert === void 0) {
|
|
117
128
|
allowRevert = false;
|
|
@@ -213,6 +224,8 @@ var CONTRACT_BALANCE = /*#__PURE__*/ethers.BigNumber.from(2).pow(255);
|
|
|
213
224
|
var ETH_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
214
225
|
var SENDER_AS_RECIPIENT = '0x0000000000000000000000000000000000000001';
|
|
215
226
|
var ROUTER_AS_RECIPIENT = '0x0000000000000000000000000000000000000002';
|
|
227
|
+
var OPENSEA_CONDUIT_SPENDER_ID = 0;
|
|
228
|
+
var SUDOSWAP_SPENDER_ID = 1;
|
|
216
229
|
|
|
217
230
|
var REFUND_ETH_PRICE_IMPACT_THRESHOLD = /*#__PURE__*/new sdkCore.Percent( /*#__PURE__*/JSBI.BigInt(50), /*#__PURE__*/JSBI.BigInt(100));
|
|
218
231
|
// Wrapper for uniswap router-sdk trade entity to encode swaps for Universal Router
|
|
@@ -374,15 +387,52 @@ function riskOfPartialFill(trade) {
|
|
|
374
387
|
|
|
375
388
|
var SIGNATURE_LENGTH = 65;
|
|
376
389
|
var EIP_2098_SIGNATURE_LENGTH = 64;
|
|
377
|
-
function encodePermit(planner,
|
|
378
|
-
var signature =
|
|
379
|
-
var length = ethers.ethers.utils.arrayify(
|
|
390
|
+
function encodePermit(planner, permit2) {
|
|
391
|
+
var signature = permit2.signature;
|
|
392
|
+
var length = ethers.ethers.utils.arrayify(permit2.signature).length;
|
|
380
393
|
// signature data provided for EIP-1271 may have length different from ECDSA signature
|
|
381
394
|
if (length === SIGNATURE_LENGTH || length === EIP_2098_SIGNATURE_LENGTH) {
|
|
382
395
|
// sanitizes signature to cover edge cases of malformed EIP-2098 sigs and v used as recovery id
|
|
383
|
-
signature = ethers.ethers.utils.joinSignature(ethers.ethers.utils.splitSignature(
|
|
396
|
+
signature = ethers.ethers.utils.joinSignature(ethers.ethers.utils.splitSignature(permit2.signature));
|
|
397
|
+
}
|
|
398
|
+
planner.addCommand(CommandType.PERMIT2_PERMIT, [permit2, signature]);
|
|
399
|
+
}
|
|
400
|
+
// Handles the encoding of commands needed to gather input tokens for a trade
|
|
401
|
+
// Approval: The router approving another address to take tokens.
|
|
402
|
+
// note: Only seaport and sudoswap support this action. Approvals are left open.
|
|
403
|
+
// Permit: A Permit2 signature-based Permit to allow the router to access a user's tokens
|
|
404
|
+
// Transfer: A Permit2 TransferFrom of tokens from a user to either the router or another address
|
|
405
|
+
function encodeInputTokenOptions(planner, options) {
|
|
406
|
+
// first ensure that all tokens provided for encoding are the same
|
|
407
|
+
if (!!options.approval && !!options.permit2Permit) !(options.approval.token === options.permit2Permit.details.token) ? invariant(false, "inconsistent token") : void 0;
|
|
408
|
+
if (!!options.approval && !!options.permit2TransferFrom) !(options.approval.token === options.permit2TransferFrom.token) ? invariant(false, "inconsistent token") : void 0;
|
|
409
|
+
if (!!options.permit2TransferFrom && !!options.permit2Permit) !(options.permit2TransferFrom.token === options.permit2Permit.details.token) ? invariant(false, "inconsistent token") : void 0;
|
|
410
|
+
// if an options.approval is required, add it
|
|
411
|
+
if (!!options.approval) {
|
|
412
|
+
planner.addCommand(CommandType.APPROVE_ERC20, [options.approval.token, mapApprovalProtocol(options.approval.protocol)]);
|
|
413
|
+
}
|
|
414
|
+
// if this order has a options.permit2Permit, encode it
|
|
415
|
+
if (!!options.permit2Permit) {
|
|
416
|
+
encodePermit(planner, options.permit2Permit);
|
|
417
|
+
}
|
|
418
|
+
if (!!options.permit2TransferFrom) {
|
|
419
|
+
planner.addCommand(CommandType.PERMIT2_TRANSFER_FROM, [options.permit2TransferFrom.token, options.permit2TransferFrom.recipient ? options.permit2TransferFrom.recipient : ROUTER_AS_RECIPIENT, options.permit2TransferFrom.amount]);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
function mapApprovalProtocol(protocolAddress) {
|
|
423
|
+
switch (protocolAddress.toLowerCase()) {
|
|
424
|
+
case '0x00000000006c3852cbef3e08e8df289169ede581':
|
|
425
|
+
// Seaport v1.1
|
|
426
|
+
return OPENSEA_CONDUIT_SPENDER_ID;
|
|
427
|
+
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
428
|
+
// Seaport v1.4
|
|
429
|
+
return OPENSEA_CONDUIT_SPENDER_ID;
|
|
430
|
+
case '0x2b2e8cda09bba9660dca5cb6233787738ad68329':
|
|
431
|
+
// Sudoswap
|
|
432
|
+
return SUDOSWAP_SPENDER_ID;
|
|
433
|
+
default:
|
|
434
|
+
throw new Error('unsupported protocol address');
|
|
384
435
|
}
|
|
385
|
-
planner.addCommand(CommandType.PERMIT, [permit, signature]);
|
|
386
436
|
}
|
|
387
437
|
|
|
388
438
|
var SwapRouter = /*#__PURE__*/function () {
|
|
@@ -419,7 +469,7 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
419
469
|
currentNativeValueInRouter = currentNativeValueInRouter.sub(tradePrice);
|
|
420
470
|
}
|
|
421
471
|
/**
|
|
422
|
-
* is
|
|
472
|
+
* is UniswapTrade
|
|
423
473
|
*/
|
|
424
474
|
} else if (trade.tradeType == exports.RouterTradeType.UniswapTrade) {
|
|
425
475
|
var uniswapTrade = trade;
|
|
@@ -545,6 +595,7 @@ var NFTTrade = function NFTTrade(market, orders) {
|
|
|
545
595
|
Market["Sudoswap"] = "Sudoswap";
|
|
546
596
|
Market["Cryptopunks"] = "cryptopunks";
|
|
547
597
|
Market["X2Y2"] = "x2y2";
|
|
598
|
+
Market["Element"] = "element";
|
|
548
599
|
})(exports.Market || (exports.Market = {}));
|
|
549
600
|
(function (TokenType) {
|
|
550
601
|
TokenType["ERC721"] = "ERC721";
|
|
@@ -6986,10 +7037,6 @@ var abi$4 = [
|
|
|
6986
7037
|
}
|
|
6987
7038
|
];
|
|
6988
7039
|
|
|
6989
|
-
(function (SeaportVersion) {
|
|
6990
|
-
SeaportVersion[SeaportVersion["V1_1"] = 0] = "V1_1";
|
|
6991
|
-
SeaportVersion[SeaportVersion["V1_4"] = 1] = "V1_4";
|
|
6992
|
-
})(exports.SeaportVersion || (exports.SeaportVersion = {}));
|
|
6993
7040
|
var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
6994
7041
|
_inheritsLoose(SeaportTrade, _NFTTrade);
|
|
6995
7042
|
function SeaportTrade(orders) {
|
|
@@ -7019,17 +7066,33 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7019
7066
|
} else {
|
|
7020
7067
|
calldata = SeaportTrade.INTERFACE.encodeFunctionData('fulfillAvailableAdvancedOrders', [advancedOrders, [], orderFulfillments, considerationFulFillments, SeaportTrade.OPENSEA_CONDUIT_KEY, order.recipient, 100]);
|
|
7021
7068
|
}
|
|
7022
|
-
|
|
7069
|
+
if (!!order.inputTokenProcessing) {
|
|
7070
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(order.inputTokenProcessing), _step3; !(_step3 = _iterator3()).done;) {
|
|
7071
|
+
var inputToken = _step3.value;
|
|
7072
|
+
encodeInputTokenOptions(planner, {
|
|
7073
|
+
approval: inputToken.protocolApproval ? {
|
|
7074
|
+
token: inputToken.token,
|
|
7075
|
+
protocol: order.protocolAddress
|
|
7076
|
+
} : undefined,
|
|
7077
|
+
permit2Permit: inputToken.permit2Permit,
|
|
7078
|
+
permit2TransferFrom: inputToken.permit2TransferFrom ? {
|
|
7079
|
+
token: inputToken.token,
|
|
7080
|
+
amount: this.getTotalOrderPrice(order, inputToken.token).toString()
|
|
7081
|
+
} : undefined
|
|
7082
|
+
});
|
|
7083
|
+
}
|
|
7084
|
+
}
|
|
7085
|
+
planner.addCommand(this.commandMap(order.protocolAddress), [this.getTotalOrderPrice(order, ETH_ADDRESS).toString(), calldata], config.allowRevert);
|
|
7023
7086
|
}
|
|
7024
7087
|
};
|
|
7025
7088
|
_proto.getBuyItems = function getBuyItems() {
|
|
7026
7089
|
var buyItems = [];
|
|
7027
|
-
for (var
|
|
7028
|
-
var order =
|
|
7029
|
-
for (var
|
|
7030
|
-
var item =
|
|
7031
|
-
for (var
|
|
7032
|
-
var offer =
|
|
7090
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(this.orders), _step4; !(_step4 = _iterator4()).done;) {
|
|
7091
|
+
var order = _step4.value;
|
|
7092
|
+
for (var _iterator5 = _createForOfIteratorHelperLoose(order.items), _step5; !(_step5 = _iterator5()).done;) {
|
|
7093
|
+
var item = _step5.value;
|
|
7094
|
+
for (var _iterator6 = _createForOfIteratorHelperLoose(item.parameters.offer), _step6; !(_step6 = _iterator6()).done;) {
|
|
7095
|
+
var offer = _step6.value;
|
|
7033
7096
|
buyItems.push({
|
|
7034
7097
|
tokenAddress: offer.token,
|
|
7035
7098
|
tokenId: offer.identifierOrCriteria,
|
|
@@ -7040,23 +7103,41 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7040
7103
|
}
|
|
7041
7104
|
return buyItems;
|
|
7042
7105
|
};
|
|
7043
|
-
_proto.
|
|
7106
|
+
_proto.getTotalOrderPrice = function getTotalOrderPrice(order, token) {
|
|
7107
|
+
if (token === void 0) {
|
|
7108
|
+
token = ETH_ADDRESS;
|
|
7109
|
+
}
|
|
7110
|
+
var totalOrderPrice = ethers.BigNumber.from(0);
|
|
7111
|
+
for (var _iterator7 = _createForOfIteratorHelperLoose(order.items), _step7; !(_step7 = _iterator7()).done;) {
|
|
7112
|
+
var item = _step7.value;
|
|
7113
|
+
totalOrderPrice = totalOrderPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
7114
|
+
}
|
|
7115
|
+
return totalOrderPrice;
|
|
7116
|
+
};
|
|
7117
|
+
_proto.getTotalPrice = function getTotalPrice(token) {
|
|
7118
|
+
if (token === void 0) {
|
|
7119
|
+
token = ETH_ADDRESS;
|
|
7120
|
+
}
|
|
7044
7121
|
var totalPrice = ethers.BigNumber.from(0);
|
|
7045
|
-
for (var
|
|
7046
|
-
var order =
|
|
7047
|
-
for (var
|
|
7048
|
-
var item =
|
|
7049
|
-
totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration));
|
|
7122
|
+
for (var _iterator8 = _createForOfIteratorHelperLoose(this.orders), _step8; !(_step8 = _iterator8()).done;) {
|
|
7123
|
+
var order = _step8.value;
|
|
7124
|
+
for (var _iterator9 = _createForOfIteratorHelperLoose(order.items), _step9; !(_step9 = _iterator9()).done;) {
|
|
7125
|
+
var item = _step9.value;
|
|
7126
|
+
totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
7050
7127
|
}
|
|
7051
7128
|
}
|
|
7052
7129
|
return totalPrice;
|
|
7053
7130
|
};
|
|
7054
|
-
_proto.commandMap = function commandMap(
|
|
7055
|
-
switch (
|
|
7056
|
-
case
|
|
7131
|
+
_proto.commandMap = function commandMap(protocolAddress) {
|
|
7132
|
+
switch (protocolAddress.toLowerCase()) {
|
|
7133
|
+
case '0x00000000006c3852cbef3e08e8df289169ede581':
|
|
7134
|
+
// Seaport v1.1
|
|
7057
7135
|
return CommandType.SEAPORT;
|
|
7058
|
-
case
|
|
7136
|
+
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
7137
|
+
// Seaport v1.4
|
|
7059
7138
|
return CommandType.SEAPORT_V1_4;
|
|
7139
|
+
default:
|
|
7140
|
+
throw new Error('unsupported Seaport address');
|
|
7060
7141
|
}
|
|
7061
7142
|
};
|
|
7062
7143
|
_proto.getConsiderationFulfillments = function getConsiderationFulfillments(protocolDatas) {
|
|
@@ -7100,15 +7181,13 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7100
7181
|
signature: data.signature,
|
|
7101
7182
|
extraData: '0x00'
|
|
7102
7183
|
};
|
|
7103
|
-
var value = this.calculateValue(data.parameters.consideration);
|
|
7104
7184
|
return {
|
|
7105
|
-
advancedOrder: advancedOrder
|
|
7106
|
-
value: value
|
|
7185
|
+
advancedOrder: advancedOrder
|
|
7107
7186
|
};
|
|
7108
7187
|
};
|
|
7109
|
-
_proto.calculateValue = function calculateValue(considerations) {
|
|
7188
|
+
_proto.calculateValue = function calculateValue(considerations, token) {
|
|
7110
7189
|
return considerations.reduce(function (amt, consideration) {
|
|
7111
|
-
return amt.add(consideration.startAmount);
|
|
7190
|
+
return consideration.token == token ? amt.add(consideration.startAmount) : amt;
|
|
7112
7191
|
}, ethers.BigNumber.from(0));
|
|
7113
7192
|
};
|
|
7114
7193
|
return SeaportTrade;
|
|
@@ -9434,7 +9513,6 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
9434
9513
|
function UnwrapWETH(amount, chainId, permit2) {
|
|
9435
9514
|
this.tradeType = exports.RouterTradeType.UnwrapWETH;
|
|
9436
9515
|
this.wethAddress = WETH_ADDRESS(chainId);
|
|
9437
|
-
this.routerAddress = UNIVERSAL_ROUTER_ADDRESS(chainId);
|
|
9438
9516
|
this.amount = amount;
|
|
9439
9517
|
if (!!permit2) {
|
|
9440
9518
|
!(permit2.details.token === this.wethAddress) ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : void 0;
|
|
@@ -9444,8 +9522,13 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
9444
9522
|
}
|
|
9445
9523
|
var _proto = UnwrapWETH.prototype;
|
|
9446
9524
|
_proto.encode = function encode(planner, _) {
|
|
9447
|
-
|
|
9448
|
-
|
|
9525
|
+
encodeInputTokenOptions(planner, {
|
|
9526
|
+
permit2Permit: this.permit2Data,
|
|
9527
|
+
permit2TransferFrom: {
|
|
9528
|
+
token: this.wethAddress,
|
|
9529
|
+
amount: this.amount.toString()
|
|
9530
|
+
}
|
|
9531
|
+
});
|
|
9449
9532
|
planner.addCommand(CommandType.UNWRAP_WETH, [ROUTER_AS_RECIPIENT, this.amount]);
|
|
9450
9533
|
};
|
|
9451
9534
|
return UnwrapWETH;
|