@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 CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sdk","version":"1.1.62","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.0","@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"}}
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.QUOTE_PROVIDER_NAME_MAP = exports.QuoteProvider = exports.getPoolProviders = void 0;
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
  }
@@ -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: TransactionObjectArgument | undefined;
17
+ coinOut?: TransactionObjectArgument;
18
18
  }>;
@@ -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
- console.log("[getSwapTransaction] fetching transaction for Aftermath quote");
26
- const { tx: transaction2, coinOutId: coinOut } = yield sdkMap[quote_1.QuoteProvider.AFTERMATH]
27
- .Router()
28
- .addTransactionForCompleteTradeRoute({
29
- tx: transaction,
30
- walletAddress: address,
31
- completeRoute: quote.quote,
32
- slippage: slippagePercent / 100,
33
- coinInId: coinIn,
34
- });
35
- return { transaction: transaction2, coinOut };
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
- console.log("[getSwapTransaction] fetching transaction for Cetus quote");
39
- if (!coinIn)
40
- coinIn = (0, transactions_1.coinWithBalance)({
41
- balance: BigInt(quote.quote.amountIn.toString()),
42
- type: quote.in.coinType,
43
- useGasCoin: (0, sui_fe_1.isSui)(quote.in.coinType),
44
- })(transaction);
45
- const coinOut = yield sdkMap[quote_1.QuoteProvider.CETUS].routerSwap({
46
- routers: quote.quote,
47
- inputCoin: coinIn,
48
- slippage: slippagePercent / 100,
49
- txb: transaction,
50
- partner: partnerIdMap[quote_1.QuoteProvider.CETUS],
51
- });
52
- return { transaction, coinOut };
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
- const { tx: transaction2, coinOut } = yield (0, cjs_1.buildTx)({
56
- quoteResponse: quote.quote,
57
- accountAddress: address,
58
- slippage: slippagePercent / 100,
59
- commission: {
60
- partner: partnerIdMap[quote_1.QuoteProvider._7K],
61
- commissionBps: 0,
62
- },
63
- extendTx: {
64
- tx: transaction,
65
- coinIn,
66
- },
67
- });
68
- if (transaction2 instanceof cjs_1.BluefinXTx) {
69
- // BluefinXTx
70
- throw new Error("BluefinXTx not supported");
71
- }
72
- else {
73
- return { transaction: transaction2, coinOut };
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
- console.log("[getSwapTransaction] fetching transaction for FlowX quote");
78
- if (!coinIn)
79
- coinIn = (0, transactions_1.coinWithBalance)({
80
- balance: BigInt(quote.quote.amountIn.toString()),
81
- type: quote.in.coinType,
82
- useGasCoin: (0, sui_fe_1.isSui)(quote.in.coinType),
83
- })(transaction);
84
- const trade = new sdk_1.TradeBuilder("mainnet", quote.quote.routes)
85
- .slippage((slippagePercent / 100) * 1e6)
86
- .commission(new sdk_1.Commission(partnerIdMap[quote_1.QuoteProvider.FLOWX], new sdk_1.Coin(quote.out.coinType), sdk_1.CommissionType.PERCENTAGE, 0, true))
87
- .build();
88
- const coinOut = yield trade.swap({
89
- coinIn: coinIn,
90
- client: suiClient,
91
- tx: transaction,
92
- });
93
- return { transaction, coinOut: coinOut };
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
- console.log("[getSwapTransaction] fetching transaction for OKX DEX quote");
97
- const transaction2 = yield (0, okxDex_1.getOkxDexSwapTransaction)(quote.quote.fromTokenAmount, quote.in.coinType, quote.out.coinType, slippagePercent, address); // Does not use `transaction` or `coinIn`
98
- return { transaction: transaction2, coinOut: undefined };
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");