@suilend/sdk 1.1.62 → 1.1.63
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/package.json +1 -1
- package/swap/quote.d.ts +1 -1
- package/swap/quote.js +43 -8
- package/swap/transaction.d.ts +1 -1
- package/swap/transaction.js +119 -70
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"1.1.
|
|
1
|
+
{"name":"@suilend/sdk","version":"1.1.63","private":false,"description":"A TypeScript SDK for interacting with the Suilend program","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./client":"./client.js","./api/events":"./api/events.js","./api":"./api/index.js","./lib/constants":"./lib/constants.js","./lib":"./lib/index.js","./lib/initialize":"./lib/initialize.js","./lib/liquidityMining":"./lib/liquidityMining.js","./lib/transactions":"./lib/transactions.js","./lib/types":"./lib/types.js","./parsers/apiReserveAssetDataEvent":"./parsers/apiReserveAssetDataEvent.js","./parsers":"./parsers/index.js","./parsers/lendingMarket":"./parsers/lendingMarket.js","./parsers/obligation":"./parsers/obligation.js","./parsers/rateLimiter":"./parsers/rateLimiter.js","./parsers/reserve":"./parsers/reserve.js","./swap":"./swap/index.js","./swap/okxDex":"./swap/okxDex.js","./swap/quote":"./swap/quote.js","./swap/transaction":"./swap/transaction.js","./utils/events":"./utils/events.js","./utils":"./utils/index.js","./utils/obligation":"./utils/obligation.js","./utils/simulate":"./utils/simulate.js","./_generated/_framework/reified":"./_generated/_framework/reified.js","./_generated/_framework/util":"./_generated/_framework/util.js","./_generated/_framework/vector":"./_generated/_framework/vector.js","./_generated/suilend":"./_generated/suilend/index.js","./_generated/suilend/cell/structs":"./_generated/suilend/cell/structs.js","./_generated/suilend/decimal/structs":"./_generated/suilend/decimal/structs.js","./_generated/suilend/lending-market/functions":"./_generated/suilend/lending-market/functions.js","./_generated/suilend/lending-market/structs":"./_generated/suilend/lending-market/structs.js","./_generated/suilend/lending-market-registry/functions":"./_generated/suilend/lending-market-registry/functions.js","./_generated/suilend/liquidity-mining/structs":"./_generated/suilend/liquidity-mining/structs.js","./_generated/suilend/obligation/structs":"./_generated/suilend/obligation/structs.js","./_generated/suilend/rate-limiter/functions":"./_generated/suilend/rate-limiter/functions.js","./_generated/suilend/rate-limiter/structs":"./_generated/suilend/rate-limiter/structs.js","./_generated/suilend/reserve/structs":"./_generated/suilend/reserve/structs.js","./_generated/suilend/reserve-config/functions":"./_generated/suilend/reserve-config/functions.js","./_generated/suilend/reserve-config/structs":"./_generated/suilend/reserve-config/structs.js","./_generated/_dependencies/source/0x1":"./_generated/_dependencies/source/0x1/index.js","./_generated/_dependencies/source/0x2":"./_generated/_dependencies/source/0x2/index.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js","./_generated/_dependencies/source/0x1/ascii/structs":"./_generated/_dependencies/source/0x1/ascii/structs.js","./_generated/_dependencies/source/0x1/option/structs":"./_generated/_dependencies/source/0x1/option/structs.js","./_generated/_dependencies/source/0x1/type-name/structs":"./_generated/_dependencies/source/0x1/type-name/structs.js","./_generated/_dependencies/source/0x2/bag/structs":"./_generated/_dependencies/source/0x2/bag/structs.js","./_generated/_dependencies/source/0x2/balance/structs":"./_generated/_dependencies/source/0x2/balance/structs.js","./_generated/_dependencies/source/0x2/object/structs":"./_generated/_dependencies/source/0x2/object/structs.js","./_generated/_dependencies/source/0x2/object-table/structs":"./_generated/_dependencies/source/0x2/object-table/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/suilend/suilend-fe-public.git"},"bugs":{"url":"https://github.com/suilend/suilend-fe-public/issues"},"dependencies":{"@7kprotocol/sdk-ts":"^3.0.2","@cetusprotocol/aggregator-sdk":"^0.12.1","@flowx-finance/sdk":"^1.11.0","@pythnetwork/pyth-sui-js":"^2.1.0","aftermath-ts-sdk":"^1.3.11","bignumber.js":"^9.1.2","bn.js":"^5.2.2","crypto-js":"^4.2.0","p-limit":"3.1.0","uuid":"^11.0.3"},"devDependencies":{"ts-node":"^10.9.2"},"peerDependencies":{"@mysten/bcs":"1.6.0","@mysten/sui":"1.28.2","@suilend/sui-fe":"^0.2.80"}}
|
package/swap/quote.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { RouterCompleteTradeRoute as AftermathQuote, Aftermath as AftermathSdk }
|
|
|
5
5
|
import BigNumber from "bignumber.js";
|
|
6
6
|
import { Token } from "@suilend/sui-fe";
|
|
7
7
|
import { OkxDexQuote } from "./okxDex";
|
|
8
|
-
export declare const getPoolProviders: (standardizedQuote: StandardizedQuote) => string[];
|
|
9
8
|
export declare enum QuoteProvider {
|
|
10
9
|
AFTERMATH = "aftermath",
|
|
11
10
|
CETUS = "cetus",
|
|
@@ -72,6 +71,7 @@ export type StandardizedQuote = {
|
|
|
72
71
|
provider: QuoteProvider.OKX_DEX;
|
|
73
72
|
quote: OkxDexQuote;
|
|
74
73
|
});
|
|
74
|
+
export declare const getPoolProviders: (standardizedQuote: StandardizedQuote) => string[];
|
|
75
75
|
export declare const fetchAggQuotes: (sdkMap: {
|
|
76
76
|
[QuoteProvider.AFTERMATH]: AftermathSdk;
|
|
77
77
|
[QuoteProvider.CETUS]: CetusSdk;
|
package/swap/quote.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -12,21 +45,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
46
|
};
|
|
14
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.fetchAggQuotesAll = exports.fetchAggQuotes = exports.
|
|
48
|
+
exports.fetchAggQuotesAll = exports.fetchAggQuotes = exports.getPoolProviders = exports.QUOTE_PROVIDER_NAME_MAP = exports.QuoteProvider = void 0;
|
|
16
49
|
const cjs_1 = require("@7kprotocol/sdk-ts/cjs");
|
|
17
50
|
const utils_1 = require("@mysten/sui/utils");
|
|
51
|
+
const Sentry = __importStar(require("@sentry/nextjs"));
|
|
18
52
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
19
53
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
20
54
|
const uuid_1 = require("uuid");
|
|
21
55
|
const lib_1 = require("../lib");
|
|
22
56
|
const okxDex_1 = require("./okxDex");
|
|
23
|
-
const getPoolProviders = (standardizedQuote) => {
|
|
24
|
-
return Array.from(new Set(standardizedQuote.routes.reduce((acc, route) => [
|
|
25
|
-
...acc,
|
|
26
|
-
...route.path.reduce((acc2, p) => [...acc2, p.provider], []),
|
|
27
|
-
], [])));
|
|
28
|
-
};
|
|
29
|
-
exports.getPoolProviders = getPoolProviders;
|
|
30
57
|
var QuoteProvider;
|
|
31
58
|
(function (QuoteProvider) {
|
|
32
59
|
QuoteProvider["AFTERMATH"] = "aftermath";
|
|
@@ -42,6 +69,13 @@ exports.QUOTE_PROVIDER_NAME_MAP = {
|
|
|
42
69
|
[QuoteProvider.FLOWX]: "FlowX",
|
|
43
70
|
[QuoteProvider.OKX_DEX]: "OKX DEX",
|
|
44
71
|
};
|
|
72
|
+
const getPoolProviders = (standardizedQuote) => {
|
|
73
|
+
return Array.from(new Set(standardizedQuote.routes.reduce((acc, route) => [
|
|
74
|
+
...acc,
|
|
75
|
+
...route.path.reduce((acc2, p) => [...acc2, p.provider], []),
|
|
76
|
+
], [])));
|
|
77
|
+
};
|
|
78
|
+
exports.getPoolProviders = getPoolProviders;
|
|
45
79
|
const fetchAggQuoteWrapper = (provider, fetchAggQuote) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
80
|
console.log(`[fetchAggQuoteWrapper] fetching ${provider} quote`);
|
|
47
81
|
try {
|
|
@@ -52,6 +86,7 @@ const fetchAggQuoteWrapper = (provider, fetchAggQuote) => __awaiter(void 0, void
|
|
|
52
86
|
return standardizedQuote;
|
|
53
87
|
}
|
|
54
88
|
catch (err) {
|
|
89
|
+
Sentry.captureException(err, { provider });
|
|
55
90
|
console.error(err);
|
|
56
91
|
return null;
|
|
57
92
|
}
|
package/swap/transaction.d.ts
CHANGED
|
@@ -14,5 +14,5 @@ export declare const getSwapTransaction: (suiClient: SuiClient, address: string,
|
|
|
14
14
|
[QuoteProvider.FLOWX]: string;
|
|
15
15
|
}, transaction: Transaction, coinIn: TransactionObjectArgument | undefined) => Promise<{
|
|
16
16
|
transaction: Transaction;
|
|
17
|
-
coinOut
|
|
17
|
+
coinOut?: TransactionObjectArgument;
|
|
18
18
|
}>;
|
package/swap/transaction.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -13,89 +46,105 @@ exports.getSwapTransaction = void 0;
|
|
|
13
46
|
const cjs_1 = require("@7kprotocol/sdk-ts/cjs");
|
|
14
47
|
const sdk_1 = require("@flowx-finance/sdk");
|
|
15
48
|
const transactions_1 = require("@mysten/sui/transactions");
|
|
49
|
+
const Sentry = __importStar(require("@sentry/nextjs"));
|
|
16
50
|
const sui_fe_1 = require("@suilend/sui-fe");
|
|
17
51
|
const okxDex_1 = require("./okxDex");
|
|
18
52
|
const quote_1 = require("./quote");
|
|
53
|
+
const getSwapTransactionWrapper = (provider, getSwapTransaction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
console.log(`[getSwapTransactionWrapper] fetching transaction for ${provider} quote`);
|
|
55
|
+
try {
|
|
56
|
+
const res = getSwapTransaction();
|
|
57
|
+
console.log(`[getSwapTransactionWrapper] fetched transaction for ${provider} quote`, res);
|
|
58
|
+
return res;
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
Sentry.captureException(err, { provider });
|
|
62
|
+
console.error(err);
|
|
63
|
+
throw err;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
19
66
|
const getSwapTransaction = (suiClient, address, quote, slippagePercent, sdkMap, partnerIdMap, transaction, coinIn) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
-
if (!address)
|
|
21
|
-
throw new Error("Wallet not connected");
|
|
22
|
-
if (!quote)
|
|
23
|
-
throw new Error("Quote not found");
|
|
24
67
|
if (quote.provider === quote_1.QuoteProvider.AFTERMATH) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
68
|
+
return getSwapTransactionWrapper(quote_1.QuoteProvider.AFTERMATH, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
const { tx: transaction2, coinOutId: coinOut } = yield sdkMap[quote_1.QuoteProvider.AFTERMATH]
|
|
70
|
+
.Router()
|
|
71
|
+
.addTransactionForCompleteTradeRoute({
|
|
72
|
+
tx: transaction,
|
|
73
|
+
walletAddress: address,
|
|
74
|
+
completeRoute: quote.quote,
|
|
75
|
+
slippage: slippagePercent / 100,
|
|
76
|
+
coinInId: coinIn,
|
|
77
|
+
});
|
|
78
|
+
return { transaction: transaction2, coinOut };
|
|
79
|
+
}));
|
|
36
80
|
}
|
|
37
81
|
else if (quote.provider === quote_1.QuoteProvider.CETUS) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
82
|
+
return getSwapTransactionWrapper(quote_1.QuoteProvider.CETUS, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
83
|
+
if (!coinIn)
|
|
84
|
+
coinIn = (0, transactions_1.coinWithBalance)({
|
|
85
|
+
balance: BigInt(quote.quote.amountIn.toString()),
|
|
86
|
+
type: quote.in.coinType,
|
|
87
|
+
useGasCoin: (0, sui_fe_1.isSui)(quote.in.coinType),
|
|
88
|
+
})(transaction);
|
|
89
|
+
const coinOut = yield sdkMap[quote_1.QuoteProvider.CETUS].routerSwap({
|
|
90
|
+
routers: quote.quote,
|
|
91
|
+
inputCoin: coinIn,
|
|
92
|
+
slippage: slippagePercent / 100,
|
|
93
|
+
txb: transaction,
|
|
94
|
+
partner: partnerIdMap[quote_1.QuoteProvider.CETUS],
|
|
95
|
+
});
|
|
96
|
+
return { transaction, coinOut };
|
|
97
|
+
}));
|
|
53
98
|
}
|
|
54
99
|
else if (quote.provider === quote_1.QuoteProvider._7K) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
100
|
+
return getSwapTransactionWrapper(quote_1.QuoteProvider._7K, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
+
const { tx: transaction2, coinOut } = yield (0, cjs_1.buildTx)({
|
|
102
|
+
quoteResponse: quote.quote,
|
|
103
|
+
accountAddress: address,
|
|
104
|
+
slippage: slippagePercent / 100,
|
|
105
|
+
commission: {
|
|
106
|
+
partner: partnerIdMap[quote_1.QuoteProvider._7K],
|
|
107
|
+
commissionBps: 0,
|
|
108
|
+
},
|
|
109
|
+
extendTx: {
|
|
110
|
+
tx: transaction,
|
|
111
|
+
coinIn,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
if (transaction2 instanceof cjs_1.BluefinXTx) {
|
|
115
|
+
// BluefinXTx
|
|
116
|
+
throw new Error("BluefinXTx not supported");
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return { transaction: transaction2, coinOut };
|
|
120
|
+
}
|
|
121
|
+
}));
|
|
75
122
|
}
|
|
76
123
|
else if (quote.provider === quote_1.QuoteProvider.FLOWX) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
124
|
+
return getSwapTransactionWrapper(quote_1.QuoteProvider.FLOWX, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
125
|
+
if (!coinIn)
|
|
126
|
+
coinIn = (0, transactions_1.coinWithBalance)({
|
|
127
|
+
balance: BigInt(quote.quote.amountIn.toString()),
|
|
128
|
+
type: quote.in.coinType,
|
|
129
|
+
useGasCoin: (0, sui_fe_1.isSui)(quote.in.coinType),
|
|
130
|
+
})(transaction);
|
|
131
|
+
const trade = new sdk_1.TradeBuilder("mainnet", quote.quote.routes)
|
|
132
|
+
.slippage((slippagePercent / 100) * 1e6)
|
|
133
|
+
.commission(new sdk_1.Commission(partnerIdMap[quote_1.QuoteProvider.FLOWX], new sdk_1.Coin(quote.out.coinType), sdk_1.CommissionType.PERCENTAGE, 0, true))
|
|
134
|
+
.build();
|
|
135
|
+
const coinOut = yield trade.swap({
|
|
136
|
+
coinIn: coinIn,
|
|
137
|
+
client: suiClient,
|
|
138
|
+
tx: transaction,
|
|
139
|
+
});
|
|
140
|
+
return { transaction, coinOut: coinOut };
|
|
141
|
+
}));
|
|
94
142
|
}
|
|
95
143
|
else if (quote.provider === quote_1.QuoteProvider.OKX_DEX) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
144
|
+
return getSwapTransactionWrapper(quote_1.QuoteProvider.OKX_DEX, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
|
+
const transaction2 = yield (0, okxDex_1.getOkxDexSwapTransaction)(quote.quote.fromTokenAmount, quote.in.coinType, quote.out.coinType, slippagePercent, address); // Does not use `transaction` or `coinIn`
|
|
146
|
+
return { transaction: transaction2, coinOut: undefined };
|
|
147
|
+
}));
|
|
99
148
|
}
|
|
100
149
|
else
|
|
101
150
|
throw new Error("Unknown quote type");
|