@uniswap/universal-router-sdk 1.4.3 → 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/NFTTrade.d.ts +5 -3
- package/dist/entities/protocols/element-market.d.ts +44 -0
- package/dist/entities/protocols/seaport.d.ts +11 -7
- package/dist/entities/protocols/uniswap.d.ts +1 -1
- package/dist/entities/protocols/unwrapWETH.d.ts +1 -2
- package/dist/test/orders/element.d.ts +7 -0
- package/dist/test/orders/seaport.d.ts +4 -3
- package/dist/test/orders/seaportV1_4.d.ts +2 -2
- package/dist/test/utils/addresses.d.ts +5 -0
- package/dist/test/utils/permit2.d.ts +1 -1
- package/dist/test/utils/uniswapData.d.ts +0 -1
- package/dist/universal-router-sdk.cjs.development.js +120 -45
- 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 +121 -47
- package/dist/universal-router-sdk.esm.js.map +1 -1
- package/dist/utils/constants.d.ts +5 -0
- package/dist/utils/inputTokens.d.ts +21 -0
- package/dist/utils/routerCommands.d.ts +10 -3
- 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,31 +7100,41 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7038
7100
|
}
|
|
7039
7101
|
return buyItems;
|
|
7040
7102
|
};
|
|
7041
|
-
_proto.getTotalOrderPrice = function getTotalOrderPrice(order) {
|
|
7103
|
+
_proto.getTotalOrderPrice = function getTotalOrderPrice(order, token) {
|
|
7104
|
+
if (token === void 0) {
|
|
7105
|
+
token = ETH_ADDRESS;
|
|
7106
|
+
}
|
|
7042
7107
|
var totalOrderPrice = BigNumber.from(0);
|
|
7043
|
-
for (var
|
|
7044
|
-
var item =
|
|
7045
|
-
totalOrderPrice = totalOrderPrice.add(this.calculateValue(item.parameters.consideration));
|
|
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));
|
|
7046
7111
|
}
|
|
7047
7112
|
return totalOrderPrice;
|
|
7048
7113
|
};
|
|
7049
|
-
_proto.getTotalPrice = function getTotalPrice() {
|
|
7114
|
+
_proto.getTotalPrice = function getTotalPrice(token) {
|
|
7115
|
+
if (token === void 0) {
|
|
7116
|
+
token = ETH_ADDRESS;
|
|
7117
|
+
}
|
|
7050
7118
|
var totalPrice = BigNumber.from(0);
|
|
7051
|
-
for (var
|
|
7052
|
-
var order =
|
|
7053
|
-
for (var
|
|
7054
|
-
var item =
|
|
7055
|
-
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));
|
|
7056
7124
|
}
|
|
7057
7125
|
}
|
|
7058
7126
|
return totalPrice;
|
|
7059
7127
|
};
|
|
7060
|
-
_proto.commandMap = function commandMap(
|
|
7061
|
-
switch (
|
|
7062
|
-
case
|
|
7128
|
+
_proto.commandMap = function commandMap(protocolAddress) {
|
|
7129
|
+
switch (protocolAddress.toLowerCase()) {
|
|
7130
|
+
case '0x00000000006c3852cbef3e08e8df289169ede581':
|
|
7131
|
+
// Seaport v1.1
|
|
7063
7132
|
return CommandType.SEAPORT;
|
|
7064
|
-
case
|
|
7133
|
+
case '0x00000000000001ad428e4906ae43d8f9852d0dd6':
|
|
7134
|
+
// Seaport v1.4
|
|
7065
7135
|
return CommandType.SEAPORT_V1_4;
|
|
7136
|
+
default:
|
|
7137
|
+
throw new Error('unsupported Seaport address');
|
|
7066
7138
|
}
|
|
7067
7139
|
};
|
|
7068
7140
|
_proto.getConsiderationFulfillments = function getConsiderationFulfillments(protocolDatas) {
|
|
@@ -7106,15 +7178,13 @@ var SeaportTrade = /*#__PURE__*/function (_NFTTrade) {
|
|
|
7106
7178
|
signature: data.signature,
|
|
7107
7179
|
extraData: '0x00'
|
|
7108
7180
|
};
|
|
7109
|
-
var value = this.calculateValue(data.parameters.consideration);
|
|
7110
7181
|
return {
|
|
7111
|
-
advancedOrder: advancedOrder
|
|
7112
|
-
value: value
|
|
7182
|
+
advancedOrder: advancedOrder
|
|
7113
7183
|
};
|
|
7114
7184
|
};
|
|
7115
|
-
_proto.calculateValue = function calculateValue(considerations) {
|
|
7185
|
+
_proto.calculateValue = function calculateValue(considerations, token) {
|
|
7116
7186
|
return considerations.reduce(function (amt, consideration) {
|
|
7117
|
-
return amt.add(consideration.startAmount);
|
|
7187
|
+
return consideration.token == token ? amt.add(consideration.startAmount) : amt;
|
|
7118
7188
|
}, BigNumber.from(0));
|
|
7119
7189
|
};
|
|
7120
7190
|
return SeaportTrade;
|
|
@@ -9440,7 +9510,6 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
9440
9510
|
function UnwrapWETH(amount, chainId, permit2) {
|
|
9441
9511
|
this.tradeType = RouterTradeType.UnwrapWETH;
|
|
9442
9512
|
this.wethAddress = WETH_ADDRESS(chainId);
|
|
9443
|
-
this.routerAddress = UNIVERSAL_ROUTER_ADDRESS(chainId);
|
|
9444
9513
|
this.amount = amount;
|
|
9445
9514
|
if (!!permit2) {
|
|
9446
9515
|
!(permit2.details.token === this.wethAddress) ? process.env.NODE_ENV !== "production" ? invariant(false, "must be permitting WETH address: " + this.wethAddress) : invariant(false) : void 0;
|
|
@@ -9450,12 +9519,17 @@ var UnwrapWETH = /*#__PURE__*/function () {
|
|
|
9450
9519
|
}
|
|
9451
9520
|
var _proto = UnwrapWETH.prototype;
|
|
9452
9521
|
_proto.encode = function encode(planner, _) {
|
|
9453
|
-
|
|
9454
|
-
|
|
9522
|
+
encodeInputTokenOptions(planner, {
|
|
9523
|
+
permit2Permit: this.permit2Data,
|
|
9524
|
+
permit2TransferFrom: {
|
|
9525
|
+
token: this.wethAddress,
|
|
9526
|
+
amount: this.amount.toString()
|
|
9527
|
+
}
|
|
9528
|
+
});
|
|
9455
9529
|
planner.addCommand(CommandType.UNWRAP_WETH, [ROUTER_AS_RECIPIENT, this.amount]);
|
|
9456
9530
|
};
|
|
9457
9531
|
return UnwrapWETH;
|
|
9458
9532
|
}();
|
|
9459
9533
|
|
|
9460
|
-
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 };
|
|
9461
9535
|
//# sourceMappingURL=universal-router-sdk.esm.js.map
|