@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
|
@@ -77,11 +77,11 @@ var CommandType;
|
|
|
77
77
|
CommandType[CommandType["PAY_PORTION"] = 6] = "PAY_PORTION";
|
|
78
78
|
CommandType[CommandType["V2_SWAP_EXACT_IN"] = 8] = "V2_SWAP_EXACT_IN";
|
|
79
79
|
CommandType[CommandType["V2_SWAP_EXACT_OUT"] = 9] = "V2_SWAP_EXACT_OUT";
|
|
80
|
-
CommandType[CommandType["
|
|
80
|
+
CommandType[CommandType["PERMIT2_PERMIT"] = 10] = "PERMIT2_PERMIT";
|
|
81
81
|
CommandType[CommandType["WRAP_ETH"] = 11] = "WRAP_ETH";
|
|
82
82
|
CommandType[CommandType["UNWRAP_WETH"] = 12] = "UNWRAP_WETH";
|
|
83
83
|
CommandType[CommandType["PERMIT2_TRANSFER_FROM_BATCH"] = 13] = "PERMIT2_TRANSFER_FROM_BATCH";
|
|
84
|
-
CommandType[CommandType["
|
|
84
|
+
CommandType[CommandType["BALANCE_CHECK_ERC20"] = 14] = "BALANCE_CHECK_ERC20";
|
|
85
85
|
// NFT-related command types
|
|
86
86
|
CommandType[CommandType["SEAPORT"] = 16] = "SEAPORT";
|
|
87
87
|
CommandType[CommandType["LOOKS_RARE_721"] = 17] = "LOOKS_RARE_721";
|
|
@@ -90,23 +90,34 @@ var CommandType;
|
|
|
90
90
|
CommandType[CommandType["LOOKS_RARE_1155"] = 20] = "LOOKS_RARE_1155";
|
|
91
91
|
CommandType[CommandType["OWNER_CHECK_721"] = 21] = "OWNER_CHECK_721";
|
|
92
92
|
CommandType[CommandType["OWNER_CHECK_1155"] = 22] = "OWNER_CHECK_1155";
|
|
93
|
+
CommandType[CommandType["SWEEP_ERC721"] = 23] = "SWEEP_ERC721";
|
|
93
94
|
CommandType[CommandType["X2Y2_721"] = 24] = "X2Y2_721";
|
|
94
95
|
CommandType[CommandType["SUDOSWAP"] = 25] = "SUDOSWAP";
|
|
95
96
|
CommandType[CommandType["NFT20"] = 26] = "NFT20";
|
|
96
97
|
CommandType[CommandType["X2Y2_1155"] = 27] = "X2Y2_1155";
|
|
97
98
|
CommandType[CommandType["FOUNDATION"] = 28] = "FOUNDATION";
|
|
99
|
+
CommandType[CommandType["SWEEP_ERC1155"] = 29] = "SWEEP_ERC1155";
|
|
100
|
+
CommandType[CommandType["ELEMENT_MARKET"] = 30] = "ELEMENT_MARKET";
|
|
101
|
+
CommandType[CommandType["EXECUTE_SUB_PLAN"] = 32] = "EXECUTE_SUB_PLAN";
|
|
102
|
+
CommandType[CommandType["SEAPORT_V1_4"] = 33] = "SEAPORT_V1_4";
|
|
103
|
+
CommandType[CommandType["APPROVE_ERC20"] = 34] = "APPROVE_ERC20";
|
|
98
104
|
})(CommandType || (CommandType = {}));
|
|
99
|
-
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details, address spender, uint256 sigDeadline)';
|
|
100
|
-
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details, address spender, uint256 sigDeadline)';
|
|
101
105
|
var ALLOW_REVERT_FLAG = 0x80;
|
|
102
|
-
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]);
|
|
103
|
-
var
|
|
106
|
+
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]);
|
|
107
|
+
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)';
|
|
108
|
+
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)';
|
|
109
|
+
var PERMIT2_TRANSFER_FROM_STRUCT = '(address from,address to,uint160 amount,address token)';
|
|
110
|
+
var PERMIT2_TRANSFER_FROM_BATCH_STRUCT = PERMIT2_TRANSFER_FROM_STRUCT + '[]';
|
|
111
|
+
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);
|
|
104
112
|
var RoutePlanner = /*#__PURE__*/function () {
|
|
105
113
|
function RoutePlanner() {
|
|
106
114
|
this.commands = '0x';
|
|
107
115
|
this.inputs = [];
|
|
108
116
|
}
|
|
109
117
|
var _proto = RoutePlanner.prototype;
|
|
118
|
+
_proto.addSubPlan = function addSubPlan(subplan) {
|
|
119
|
+
this.addCommand(CommandType.EXECUTE_SUB_PLAN, [subplan.commands, subplan.inputs], true);
|
|
120
|
+
};
|
|
110
121
|
_proto.addCommand = function addCommand(type, parameters, allowRevert) {
|
|
111
122
|
if (allowRevert === void 0) {
|
|
112
123
|
allowRevert = false;
|
|
@@ -208,6 +219,8 @@ var CONTRACT_BALANCE = /*#__PURE__*/BigNumber.from(2).pow(255);
|
|
|
208
219
|
var ETH_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
209
220
|
var SENDER_AS_RECIPIENT = '0x0000000000000000000000000000000000000001';
|
|
210
221
|
var ROUTER_AS_RECIPIENT = '0x0000000000000000000000000000000000000002';
|
|
222
|
+
var OPENSEA_CONDUIT_SPENDER_ID = 0;
|
|
223
|
+
var SUDOSWAP_SPENDER_ID = 1;
|
|
211
224
|
|
|
212
225
|
var REFUND_ETH_PRICE_IMPACT_THRESHOLD = /*#__PURE__*/new Percent( /*#__PURE__*/JSBI.BigInt(50), /*#__PURE__*/JSBI.BigInt(100));
|
|
213
226
|
// Wrapper for uniswap router-sdk trade entity to encode swaps for Universal Router
|
|
@@ -369,15 +382,52 @@ function riskOfPartialFill(trade) {
|
|
|
369
382
|
|
|
370
383
|
var SIGNATURE_LENGTH = 65;
|
|
371
384
|
var EIP_2098_SIGNATURE_LENGTH = 64;
|
|
372
|
-
function encodePermit(planner,
|
|
373
|
-
var signature =
|
|
374
|
-
var length = ethers.utils.arrayify(
|
|
385
|
+
function encodePermit(planner, permit2) {
|
|
386
|
+
var signature = permit2.signature;
|
|
387
|
+
var length = ethers.utils.arrayify(permit2.signature).length;
|
|
375
388
|
// signature data provided for EIP-1271 may have length different from ECDSA signature
|
|
376
389
|
if (length === SIGNATURE_LENGTH || length === EIP_2098_SIGNATURE_LENGTH) {
|
|
377
390
|
// sanitizes signature to cover edge cases of malformed EIP-2098 sigs and v used as recovery id
|
|
378
|
-
signature = ethers.utils.joinSignature(ethers.utils.splitSignature(
|
|
391
|
+
signature = ethers.utils.joinSignature(ethers.utils.splitSignature(permit2.signature));
|
|
392
|
+
}
|
|
393
|
+
planner.addCommand(CommandType.PERMIT2_PERMIT, [permit2, signature]);
|
|
394
|
+
}
|
|
395
|
+
// Handles the encoding of commands needed to gather input tokens for a trade
|
|
396
|
+
// Approval: The router approving another address to take tokens.
|
|
397
|
+
// note: Only seaport and sudoswap support this action. Approvals are left open.
|
|
398
|
+
// Permit: A Permit2 signature-based Permit to allow the router to access a user's tokens
|
|
399
|
+
// Transfer: A Permit2 TransferFrom of tokens from a user to either the router or another address
|
|
400
|
+
function encodeInputTokenOptions(planner, options) {
|
|
401
|
+
// first ensure that all tokens provided for encoding are the same
|
|
402
|
+
if (!!options.approval && !!options.permit2Permit) !(options.approval.token === options.permit2Permit.details.token) ? process.env.NODE_ENV !== "production" ? invariant(false, "inconsistent token") : invariant(false) : void 0;
|
|
403
|
+
if (!!options.approval && !!options.permit2TransferFrom) !(options.approval.token === options.permit2TransferFrom.token) ? process.env.NODE_ENV !== "production" ? invariant(false, "inconsistent token") : invariant(false) : void 0;
|
|
404
|
+
if (!!options.permit2TransferFrom && !!options.permit2Permit) !(options.permit2TransferFrom.token === options.permit2Permit.details.token) ? process.env.NODE_ENV !== "production" ? invariant(false, "inconsistent token") : invariant(false) : void 0;
|
|
405
|
+
// if an options.approval is required, add it
|
|
406
|
+
if (!!options.approval) {
|
|
407
|
+
planner.addCommand(CommandType.APPROVE_ERC20, [options.approval.token, mapApprovalProtocol(options.approval.protocol)]);
|
|
408
|
+
}
|
|
409
|
+
// if this order has a options.permit2Permit, encode it
|
|
410
|
+
if (!!options.permit2Permit) {
|
|
411
|
+
encodePermit(planner, options.permit2Permit);
|
|
412
|
+
}
|
|
413
|
+
if (!!options.permit2TransferFrom) {
|
|
414
|
+
planner.addCommand(CommandType.PERMIT2_TRANSFER_FROM, [options.permit2TransferFrom.token, options.permit2TransferFrom.recipient ? options.permit2TransferFrom.recipient : ROUTER_AS_RECIPIENT, options.permit2TransferFrom.amount]);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
function mapApprovalProtocol(protocolAddress) {
|
|
418
|
+
switch (protocolAddress.toLowerCase()) {
|
|
419
|
+
case '0x00000000006c3852cbef3e08e8df289169ede581':
|
|
420
|
+
// Seaport v1.1
|
|
421
|
+
return OPENSEA_CONDUIT_SPENDER_ID;
|
|
422
|
+
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
423
|
+
// Seaport v1.4
|
|
424
|
+
return OPENSEA_CONDUIT_SPENDER_ID;
|
|
425
|
+
case '0x2b2e8cda09bba9660dca5cb6233787738ad68329':
|
|
426
|
+
// Sudoswap
|
|
427
|
+
return SUDOSWAP_SPENDER_ID;
|
|
428
|
+
default:
|
|
429
|
+
throw new Error('unsupported protocol address');
|
|
379
430
|
}
|
|
380
|
-
planner.addCommand(CommandType.PERMIT, [permit, signature]);
|
|
381
431
|
}
|
|
382
432
|
|
|
383
433
|
var SwapRouter = /*#__PURE__*/function () {
|
|
@@ -414,7 +464,7 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
414
464
|
currentNativeValueInRouter = currentNativeValueInRouter.sub(tradePrice);
|
|
415
465
|
}
|
|
416
466
|
/**
|
|
417
|
-
* is
|
|
467
|
+
* is UniswapTrade
|
|
418
468
|
*/
|
|
419
469
|
} else if (trade.tradeType == RouterTradeType.UniswapTrade) {
|
|
420
470
|
var uniswapTrade = trade;
|
|
@@ -541,6 +591,7 @@ var Market;
|
|
|
541
591
|
Market["Sudoswap"] = "Sudoswap";
|
|
542
592
|
Market["Cryptopunks"] = "cryptopunks";
|
|
543
593
|
Market["X2Y2"] = "x2y2";
|
|
594
|
+
Market["Element"] = "element";
|
|
544
595
|
})(Market || (Market = {}));
|
|
545
596
|
var TokenType;
|
|
546
597
|
(function (TokenType) {
|
|
@@ -6983,11 +7034,6 @@ var abi$4 = [
|
|
|
6983
7034
|
}
|
|
6984
7035
|
];
|
|
6985
7036
|
|
|
6986
|
-
var SeaportVersion;
|
|
6987
|
-
(function (SeaportVersion) {
|
|
6988
|
-
SeaportVersion[SeaportVersion["V1_1"] = 0] = "V1_1";
|
|
6989
|
-
SeaportVersion[SeaportVersion["V1_4"] = 1] = "V1_4";
|
|
6990
|
-
})(SeaportVersion || (SeaportVersion = {}));
|
|
6991
7037
|
var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
6992
7038
|
_inheritsLoose(SeaportTrade, _NFTTrade);
|
|
6993
7039
|
function SeaportTrade(orders) {
|
|
@@ -7017,17 +7063,33 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7017
7063
|
} else {
|
|
7018
7064
|
calldata = SeaportTrade.INTERFACE.encodeFunctionData('fulfillAvailableAdvancedOrders', [advancedOrders, [], orderFulfillments, considerationFulFillments, SeaportTrade.OPENSEA_CONDUIT_KEY, order.recipient, 100]);
|
|
7019
7065
|
}
|
|
7020
|
-
|
|
7066
|
+
if (!!order.inputTokenProcessing) {
|
|
7067
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(order.inputTokenProcessing), _step3; !(_step3 = _iterator3()).done;) {
|
|
7068
|
+
var inputToken = _step3.value;
|
|
7069
|
+
encodeInputTokenOptions(planner, {
|
|
7070
|
+
approval: inputToken.protocolApproval ? {
|
|
7071
|
+
token: inputToken.token,
|
|
7072
|
+
protocol: order.protocolAddress
|
|
7073
|
+
} : undefined,
|
|
7074
|
+
permit2Permit: inputToken.permit2Permit,
|
|
7075
|
+
permit2TransferFrom: inputToken.permit2TransferFrom ? {
|
|
7076
|
+
token: inputToken.token,
|
|
7077
|
+
amount: this.getTotalOrderPrice(order, inputToken.token).toString()
|
|
7078
|
+
} : undefined
|
|
7079
|
+
});
|
|
7080
|
+
}
|
|
7081
|
+
}
|
|
7082
|
+
planner.addCommand(this.commandMap(order.protocolAddress), [this.getTotalOrderPrice(order, ETH_ADDRESS).toString(), calldata], config.allowRevert);
|
|
7021
7083
|
}
|
|
7022
7084
|
};
|
|
7023
7085
|
_proto.getBuyItems = function getBuyItems() {
|
|
7024
7086
|
var buyItems = [];
|
|
7025
|
-
for (var
|
|
7026
|
-
var order =
|
|
7027
|
-
for (var
|
|
7028
|
-
var item =
|
|
7029
|
-
for (var
|
|
7030
|
-
var offer =
|
|
7087
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(this.orders), _step4; !(_step4 = _iterator4()).done;) {
|
|
7088
|
+
var order = _step4.value;
|
|
7089
|
+
for (var _iterator5 = _createForOfIteratorHelperLoose(order.items), _step5; !(_step5 = _iterator5()).done;) {
|
|
7090
|
+
var item = _step5.value;
|
|
7091
|
+
for (var _iterator6 = _createForOfIteratorHelperLoose(item.parameters.offer), _step6; !(_step6 = _iterator6()).done;) {
|
|
7092
|
+
var offer = _step6.value;
|
|
7031
7093
|
buyItems.push({
|
|
7032
7094
|
tokenAddress: offer.token,
|
|
7033
7095
|
tokenId: offer.identifierOrCriteria,
|
|
@@ -7038,23 +7100,41 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7038
7100
|
}
|
|
7039
7101
|
return buyItems;
|
|
7040
7102
|
};
|
|
7041
|
-
_proto.
|
|
7103
|
+
_proto.getTotalOrderPrice = function getTotalOrderPrice(order, token) {
|
|
7104
|
+
if (token === void 0) {
|
|
7105
|
+
token = ETH_ADDRESS;
|
|
7106
|
+
}
|
|
7107
|
+
var totalOrderPrice = BigNumber.from(0);
|
|
7108
|
+
for (var _iterator7 = _createForOfIteratorHelperLoose(order.items), _step7; !(_step7 = _iterator7()).done;) {
|
|
7109
|
+
var item = _step7.value;
|
|
7110
|
+
totalOrderPrice = totalOrderPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
7111
|
+
}
|
|
7112
|
+
return totalOrderPrice;
|
|
7113
|
+
};
|
|
7114
|
+
_proto.getTotalPrice = function getTotalPrice(token) {
|
|
7115
|
+
if (token === void 0) {
|
|
7116
|
+
token = ETH_ADDRESS;
|
|
7117
|
+
}
|
|
7042
7118
|
var totalPrice = BigNumber.from(0);
|
|
7043
|
-
for (var
|
|
7044
|
-
var order =
|
|
7045
|
-
for (var
|
|
7046
|
-
var item =
|
|
7047
|
-
totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration));
|
|
7119
|
+
for (var _iterator8 = _createForOfIteratorHelperLoose(this.orders), _step8; !(_step8 = _iterator8()).done;) {
|
|
7120
|
+
var order = _step8.value;
|
|
7121
|
+
for (var _iterator9 = _createForOfIteratorHelperLoose(order.items), _step9; !(_step9 = _iterator9()).done;) {
|
|
7122
|
+
var item = _step9.value;
|
|
7123
|
+
totalPrice = totalPrice.add(this.calculateValue(item.parameters.consideration, token));
|
|
7048
7124
|
}
|
|
7049
7125
|
}
|
|
7050
7126
|
return totalPrice;
|
|
7051
7127
|
};
|
|
7052
|
-
_proto.commandMap = function commandMap(
|
|
7053
|
-
switch (
|
|
7054
|
-
case
|
|
7128
|
+
_proto.commandMap = function commandMap(protocolAddress) {
|
|
7129
|
+
switch (protocolAddress.toLowerCase()) {
|
|
7130
|
+
case '0x00000000006c3852cbef3e08e8df289169ede581':
|
|
7131
|
+
// Seaport v1.1
|
|
7055
7132
|
return CommandType.SEAPORT;
|
|
7056
|
-
case
|
|
7133
|
+
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
7134
|
+
// Seaport v1.4
|
|
7057
7135
|
return CommandType.SEAPORT_V1_4;
|
|
7136
|
+
default:
|
|
7137
|
+
throw new Error('unsupported Seaport address');
|
|
7058
7138
|
}
|
|
7059
7139
|
};
|
|
7060
7140
|
_proto.getConsiderationFulfillments = function getConsiderationFulfillments(protocolDatas) {
|
|
@@ -7098,15 +7178,13 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7098
7178
|
signature: data.signature,
|
|
7099
7179
|
extraData: '0x00'
|
|
7100
7180
|
};
|
|
7101
|
-
var value = this.calculateValue(data.parameters.consideration);
|
|
7102
7181
|
return {
|
|
7103
|
-
advancedOrder: advancedOrder
|
|
7104
|
-
value: value
|
|
7182
|
+
advancedOrder: advancedOrder
|
|
7105
7183
|
};
|
|
7106
7184
|
};
|
|
7107
|
-
_proto.calculateValue = function calculateValue(considerations) {
|
|
7185
|
+
_proto.calculateValue = function calculateValue(considerations, token) {
|
|
7108
7186
|
return considerations.reduce(function (amt, consideration) {
|
|
7109
|
-
return amt.add(consideration.startAmount);
|
|
7187
|
+
return consideration.token == token ? amt.add(consideration.startAmount) : amt;
|
|
7110
7188
|
}, BigNumber.from(0));
|
|
7111
7189
|
};
|
|
7112
7190
|
return SeaportTrade;
|
|
@@ -9432,7 +9510,6 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
9432
9510
|
function UnwrapWETH(amount, chainId, permit2) {
|
|
9433
9511
|
this.tradeType = RouterTradeType.UnwrapWETH;
|
|
9434
9512
|
this.wethAddress = WETH_ADDRESS(chainId);
|
|
9435
|
-
this.routerAddress = UNIVERSAL_ROUTER_ADDRESS(chainId);
|
|
9436
9513
|
this.amount = amount;
|
|
9437
9514
|
if (!!permit2) {
|
|
9438
9515
|
!(permit2.details.token === this.wethAddress) ? process.env.NODE_ENV !== "production" ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : invariant(false) : void 0;
|
|
@@ -9442,12 +9519,17 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
9442
9519
|
}
|
|
9443
9520
|
var _proto = UnwrapWETH.prototype;
|
|
9444
9521
|
_proto.encode = function encode(planner, _) {
|
|
9445
|
-
|
|
9446
|
-
|
|
9522
|
+
encodeInputTokenOptions(planner, {
|
|
9523
|
+
permit2Permit: this.permit2Data,
|
|
9524
|
+
permit2TransferFrom: {
|
|
9525
|
+
token: this.wethAddress,
|
|
9526
|
+
amount: this.amount.toString()
|
|
9527
|
+
}
|
|
9528
|
+
});
|
|
9447
9529
|
planner.addCommand(CommandType.UNWRAP_WETH, [ROUTER_AS_RECIPIENT, this.amount]);
|
|
9448
9530
|
};
|
|
9449
9531
|
return UnwrapWETH;
|
|
9450
9532
|
}();
|
|
9451
9533
|
|
|
9452
|
-
export { CryptopunkTrade, FoundationTrade, LooksRareTrade, Market, NFT20Trade, NFTTrade, NFTXTrade, PERMIT2_ADDRESS, ROUTER_AS_RECIPIENT, RouterTradeType, SeaportTrade,
|
|
9534
|
+
export { CryptopunkTrade, FoundationTrade, LooksRareTrade, Market, NFT20Trade, NFTTrade, NFTXTrade, PERMIT2_ADDRESS, ROUTER_AS_RECIPIENT, RouterTradeType, SeaportTrade, SudoswapTrade, SwapRouter, TokenType, UNIVERSAL_ROUTER_ADDRESS, UniswapTrade, UnwrapWETH, WETH_ADDRESS, X2Y2Trade };
|
|
9453
9535
|
//# sourceMappingURL=universal-router-sdk.esm.js.map
|