@7kprotocol/sdk-ts 3.5.2-beta.1 → 3.5.2
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/lib/cjs/config/index.js +0 -9
- package/lib/cjs/constants/apiEndpoints.js +1 -1
- package/lib/cjs/features/metaAg/index.js +108 -98
- package/lib/cjs/features/metaAg/providers/bluefin.js +6 -6
- package/lib/cjs/features/metaAg/providers/cetus.js +4 -4
- package/lib/cjs/features/metaAg/providers/flowx.js +4 -4
- package/lib/cjs/features/swap/buildTx.js +0 -3
- package/lib/cjs/features/swap/buildTxV2.js +6 -10
- package/lib/cjs/features/swap/config.js +1 -2
- package/lib/cjs/features/swap/getQuote.js +2 -3
- package/lib/cjs/libs/protocols/bluefinx/client.js +1 -1
- package/lib/cjs/types/config/index.d.ts +0 -4
- package/lib/cjs/types/config/index.d.ts.map +1 -1
- package/lib/cjs/types/features/metaAg/index.d.ts +2 -11
- package/lib/cjs/types/features/metaAg/index.d.ts.map +1 -1
- package/lib/cjs/types/features/metaAg/providers/bluefin.d.ts +3 -3
- package/lib/cjs/types/features/metaAg/providers/bluefin.d.ts.map +1 -1
- package/lib/cjs/types/features/metaAg/providers/cetus.d.ts +5 -4
- package/lib/cjs/types/features/metaAg/providers/cetus.d.ts.map +1 -1
- package/lib/cjs/types/features/metaAg/providers/flowx.d.ts +3 -3
- package/lib/cjs/types/features/metaAg/providers/flowx.d.ts.map +1 -1
- package/lib/cjs/types/features/swap/buildTx.d.ts.map +1 -1
- package/lib/cjs/types/features/swap/buildTxV2.d.ts +3 -3
- package/lib/cjs/types/features/swap/buildTxV2.d.ts.map +1 -1
- package/lib/cjs/types/features/swap/config.d.ts.map +1 -1
- package/lib/cjs/types/features/swap/getQuote.d.ts +3 -1
- package/lib/cjs/types/features/swap/getQuote.d.ts.map +1 -1
- package/lib/cjs/types/index.d.ts +1 -3
- package/lib/cjs/types/index.d.ts.map +1 -1
- package/lib/cjs/types/metaAg.js +4 -11
- package/lib/cjs/types/types/metaAg.d.ts +8 -60
- package/lib/cjs/types/types/metaAg.d.ts.map +1 -1
- package/lib/cjs/types/utils/condition.d.ts +1 -1
- package/lib/cjs/types/utils/condition.d.ts.map +1 -1
- package/lib/esm/config/index.js +0 -9
- package/lib/esm/constants/apiEndpoints.js +1 -1
- package/lib/esm/features/metaAg/index.js +109 -99
- package/lib/esm/features/metaAg/providers/bluefin.js +6 -6
- package/lib/esm/features/metaAg/providers/cetus.js +4 -4
- package/lib/esm/features/metaAg/providers/flowx.js +4 -4
- package/lib/esm/features/swap/buildTx.js +0 -3
- package/lib/esm/features/swap/buildTxV2.js +2 -6
- package/lib/esm/features/swap/config.js +1 -2
- package/lib/esm/features/swap/getQuote.js +2 -3
- package/lib/esm/libs/protocols/bluefinx/client.js +1 -1
- package/lib/esm/types/config/index.d.ts +0 -4
- package/lib/esm/types/config/index.d.ts.map +1 -1
- package/lib/esm/types/features/metaAg/index.d.ts +2 -11
- package/lib/esm/types/features/metaAg/index.d.ts.map +1 -1
- package/lib/esm/types/features/metaAg/providers/bluefin.d.ts +3 -3
- package/lib/esm/types/features/metaAg/providers/bluefin.d.ts.map +1 -1
- package/lib/esm/types/features/metaAg/providers/cetus.d.ts +5 -4
- package/lib/esm/types/features/metaAg/providers/cetus.d.ts.map +1 -1
- package/lib/esm/types/features/metaAg/providers/flowx.d.ts +3 -3
- package/lib/esm/types/features/metaAg/providers/flowx.d.ts.map +1 -1
- package/lib/esm/types/features/swap/buildTx.d.ts.map +1 -1
- package/lib/esm/types/features/swap/buildTxV2.d.ts +3 -3
- package/lib/esm/types/features/swap/buildTxV2.d.ts.map +1 -1
- package/lib/esm/types/features/swap/config.d.ts.map +1 -1
- package/lib/esm/types/features/swap/getQuote.d.ts +3 -1
- package/lib/esm/types/features/swap/getQuote.d.ts.map +1 -1
- package/lib/esm/types/index.d.ts +1 -3
- package/lib/esm/types/index.d.ts.map +1 -1
- package/lib/esm/types/metaAg.js +2 -8
- package/lib/esm/types/types/metaAg.d.ts +8 -60
- package/lib/esm/types/types/metaAg.d.ts.map +1 -1
- package/lib/esm/types/utils/condition.d.ts +1 -1
- package/lib/esm/types/utils/condition.d.ts.map +1 -1
- package/package.json +2 -3
- package/lib/cjs/features/metaAg/common.js +0 -117
- package/lib/cjs/features/metaAg/providers/astro.js +0 -43
- package/lib/cjs/features/metaAg/providers/bluefinx.js +0 -87
- package/lib/cjs/features/metaAg/providers/okx.js +0 -181
- package/lib/cjs/types/features/metaAg/common.d.ts +0 -33
- package/lib/cjs/types/features/metaAg/common.d.ts.map +0 -1
- package/lib/cjs/types/features/metaAg/providers/astro.d.ts +0 -9
- package/lib/cjs/types/features/metaAg/providers/astro.d.ts.map +0 -1
- package/lib/cjs/types/features/metaAg/providers/bluefinx.d.ts +0 -10
- package/lib/cjs/types/features/metaAg/providers/bluefinx.d.ts.map +0 -1
- package/lib/cjs/types/features/metaAg/providers/okx.d.ts +0 -21
- package/lib/cjs/types/features/metaAg/providers/okx.d.ts.map +0 -1
- package/lib/cjs/types/okx.js +0 -6
- package/lib/cjs/types/types/okx.d.ts +0 -193
- package/lib/cjs/types/types/okx.d.ts.map +0 -1
- package/lib/esm/features/metaAg/common.js +0 -109
- package/lib/esm/features/metaAg/providers/astro.js +0 -40
- package/lib/esm/features/metaAg/providers/bluefinx.js +0 -84
- package/lib/esm/features/metaAg/providers/okx.js +0 -146
- package/lib/esm/types/features/metaAg/common.d.ts +0 -33
- package/lib/esm/types/features/metaAg/common.d.ts.map +0 -1
- package/lib/esm/types/features/metaAg/providers/astro.d.ts +0 -9
- package/lib/esm/types/features/metaAg/providers/astro.d.ts.map +0 -1
- package/lib/esm/types/features/metaAg/providers/bluefinx.d.ts +0 -10
- package/lib/esm/types/features/metaAg/providers/bluefinx.d.ts.map +0 -1
- package/lib/esm/types/features/metaAg/providers/okx.d.ts +0 -21
- package/lib/esm/types/features/metaAg/providers/okx.d.ts.map +0 -1
- package/lib/esm/types/okx.js +0 -5
- package/lib/esm/types/types/okx.d.ts +0 -193
- package/lib/esm/types/types/okx.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTxV2.d.ts","sourceRoot":"","sources":["../../../../../src/features/swap/buildTxV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"buildTxV2.d.ts","sourceRoot":"","sources":["../../../../../src/features/swap/buildTxV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,aAAa,EACb,MAAM,EAEN,SAAS,EACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUhE;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAU,2GAQ7B,aAAa,KAAG,OAAO,CAAC,aAAa,CAuFvC,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,MAAM,EACd,QAAQ,SAAS,EAAE,EAAE,EACrB,UAAU,yBAAyB,EAAE,EACrC,IAAI,WAAW,EACf,gBAAgB,MAAM,yCAuJvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAU,iDAM7B,eAAe,uDAiDjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/features/swap/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/features/swap/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,eAAO,MAAM,cAAc,EAAE,MAqL5B,CAAC;AAIF,wBAAsB,SAAS,oBAe9B"}
|
|
@@ -17,11 +17,13 @@ interface Params {
|
|
|
17
17
|
taker?: string;
|
|
18
18
|
/** If true, excludes all liquidity sources that depend on pyth price feeds - pyth client use tx.gas to pay the fee*/
|
|
19
19
|
isSponsored?: boolean;
|
|
20
|
+
/** Custom API endpoint */
|
|
21
|
+
api?: string;
|
|
20
22
|
/** Maximum number of paths to consider for the quote */
|
|
21
23
|
maxPaths?: number;
|
|
22
24
|
}
|
|
23
25
|
export declare const DEFAULT_SOURCES: SourceDex[];
|
|
24
26
|
export declare const ORACLE_BASED_SOURCES: Set<SourceDex>;
|
|
25
|
-
export declare function getQuote({ tokenIn, tokenOut, amountIn, sources: _sources, commissionBps, targetPools, excludedPools, taker, isSponsored, maxPaths, }: Params): Promise<QuoteResponse>;
|
|
27
|
+
export declare function getQuote({ tokenIn, tokenOut, amountIn, sources: _sources, commissionBps, targetPools, excludedPools, taker, isSponsored, api, maxPaths, }: Params): Promise<QuoteResponse>;
|
|
26
28
|
export {};
|
|
27
29
|
//# sourceMappingURL=getQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQuote.d.ts","sourceRoot":"","sources":["../../../../../src/features/swap/getQuote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getQuote.d.ts","sourceRoot":"","sources":["../../../../../src/features/swap/getQuote.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,UAAU,MAAM;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;kEAG8D;IAC9D,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qHAAqH;IACrH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,EA0BtC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gBAM/B,CAAC;AAEH,wBAAsB,QAAQ,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,QAA0B,EACnC,aAAa,EACb,WAAW,EACX,aAAa,EACb,KAAK,EACL,WAAW,EACX,GAAG,EACH,QAAQ,GACT,EAAE,MAAM,0BA8CR"}
|
package/lib/esm/types/index.d.ts
CHANGED
|
@@ -11,8 +11,6 @@ declare const setSuiClient: (client: import("@mysten/sui/dist/cjs/client").SuiCl
|
|
|
11
11
|
export { buildTx, buildTxV2, cancelDcaOrder, cancelLimitOrder, claimExpiredLimitOrder, Config, DEFAULT_SOURCES, estimateGasFee, executeBluefinTx, executeTx, getClosedDcaOrders, getClosedLimitOrders, getDcaOrderExecutions, getOpenDcaOrders, getOpenLimitOrders, getQuote, getSuiClient, getSuiPrice, getSwapHistory, getTokenPrice, getTokenPrices, MetaAg, multiSwap, placeDcaOrder, placeLimitOrder, setSuiClient, };
|
|
12
12
|
declare const _default: {
|
|
13
13
|
Config: {
|
|
14
|
-
setApi: (url: string) => void;
|
|
15
|
-
getApi: () => string;
|
|
16
14
|
setApiKey: (key: string) => void;
|
|
17
15
|
getApiKey: () => string;
|
|
18
16
|
setBluefinXApiKey: (key: string) => void;
|
|
@@ -32,7 +30,7 @@ declare const _default: {
|
|
|
32
30
|
getQuote: typeof getQuote;
|
|
33
31
|
estimateGasFee: typeof estimateGasFee;
|
|
34
32
|
buildTx: ({ quoteResponse, accountAddress, slippage, commission: __commission, devInspect, extendTx, isSponsored, }: import("./types/tx").BuildTxParams) => Promise<import("./types/aggregator").BuildTxResult>;
|
|
35
|
-
buildTxV2: (
|
|
33
|
+
buildTxV2: ({ quoteResponse, accountAddress, slippage, commission: __commission, devInspect, extendTx, isSponsored, }: import("./types/tx").BuildTxParams) => Promise<import("./types/aggregator").BuildTxResult>;
|
|
36
34
|
multiSwap: ({ sender, slippageBps, swaps, tx, commission, }: import("./types/tx").MultiSwapParams) => Promise<Record<string, import("@mysten/sui/dist/cjs/transactions").TransactionObjectArgument>>;
|
|
37
35
|
getSwapHistory: typeof getSwapHistory;
|
|
38
36
|
executeTx: (tx: import("./types/aggregator").AggregatorTx, signature: string, signedTxBytes: string, options?: import("@mysten/sui/dist/cjs/client").SuiTransactionBlockResponseOptions) => Promise<import("@mysten/sui/dist/cjs/client").SuiTransactionBlockResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,cAAc,EACd,SAAS,EACT,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAG7B,QAAA,MAAM,YAAY,uDAAsB,CAAC;AACzC,QAAA,MAAM,YAAY,mEAAsB,CAAC;AAEzC,OAAO,EACL,OAAO,EACP,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EAEtB,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAElB,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,cAAc,EAEd,aAAa,EACb,cAAc,EACd,MAAM,EACN,SAAS,EAET,aAAa,EAEb,eAAe,EACf,YAAY,GACb,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,cAAc,EACd,SAAS,EACT,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAG7B,QAAA,MAAM,YAAY,uDAAsB,CAAC;AACzC,QAAA,MAAM,YAAY,mEAAsB,CAAC;AAEzC,OAAO,EACL,OAAO,EACP,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EAEtB,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAElB,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,cAAc,EAEd,aAAa,EACb,cAAc,EACd,MAAM,EACN,SAAS,EAET,aAAa,EAEb,eAAe,EACf,YAAY,GACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,wBAwCE"}
|
package/lib/esm/types/metaAg.js
CHANGED
|
@@ -3,12 +3,6 @@ export var EProvider;
|
|
|
3
3
|
EProvider["BLUEFIN7K"] = "bluefin7k";
|
|
4
4
|
EProvider["CETUS"] = "cetus";
|
|
5
5
|
EProvider["FLOWX"] = "flowx";
|
|
6
|
-
EProvider["OKX"] = "okx";
|
|
7
|
-
EProvider["BLUEFINX"] = "bluefinx";
|
|
8
|
-
EProvider["ASTRO"] = "astro";
|
|
9
6
|
})(EProvider || (EProvider = {}));
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
provider.kind === EProvider.FLOWX ||
|
|
13
|
-
provider.kind === EProvider.ASTRO;
|
|
14
|
-
export const isSwapAPIProvider = (provider) => provider.kind === EProvider.OKX || provider.kind === EProvider.BLUEFINX;
|
|
7
|
+
export class AgProvider {
|
|
8
|
+
}
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import type { PreSwapLpChangeParams, RouterDataV3 } from "@cetusprotocol/aggregator-sdk";
|
|
2
2
|
import type { AggregatorQuoter, Protocol } from "@flowx-finance/sdk";
|
|
3
3
|
import type { GasCostSummary } from "@mysten/sui/client";
|
|
4
|
-
import { SignatureWithBytes } from "@mysten/sui/cryptography";
|
|
5
4
|
import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
|
|
6
|
-
import type { Quote, SwapOptions } from "@naviprotocol/astros-aggregator-sdk";
|
|
7
5
|
import { QuoteResponse, SourceDex } from "./aggregator";
|
|
8
|
-
import { OkxSwapResponseData } from "./okx";
|
|
9
6
|
export declare enum EProvider {
|
|
10
7
|
BLUEFIN7K = "bluefin7k",
|
|
11
8
|
CETUS = "cetus",
|
|
12
|
-
FLOWX = "flowx"
|
|
13
|
-
OKX = "okx",
|
|
14
|
-
BLUEFINX = "bluefinx",
|
|
15
|
-
ASTRO = "astro"
|
|
9
|
+
FLOWX = "flowx"
|
|
16
10
|
}
|
|
17
11
|
type ProviderBaseOptions = {
|
|
18
12
|
api?: string;
|
|
@@ -40,23 +34,12 @@ export type CetusProviderOptions = ProviderBaseOptions & {
|
|
|
40
34
|
depth?: number;
|
|
41
35
|
liquidityChanges?: PreSwapLpChangeParams[];
|
|
42
36
|
};
|
|
43
|
-
export type OkxProviderOptions = Required<Omit<ProviderBaseOptions, "api">> & {
|
|
44
|
-
api?: string;
|
|
45
|
-
secretKey: string;
|
|
46
|
-
apiPassphrase: string;
|
|
47
|
-
projectId: string;
|
|
48
|
-
};
|
|
49
|
-
export type BluefinXProviderOptions = ProviderBaseOptions;
|
|
50
|
-
export type AstroProviderOptions = ProviderBaseOptions & Pick<SwapOptions, "dexList" | "depth">;
|
|
51
37
|
export interface MetaAgOptions {
|
|
52
38
|
/**If not specified, all providers will be used */
|
|
53
39
|
providers?: {
|
|
54
40
|
[EProvider.BLUEFIN7K]?: BluefinProviderOptions;
|
|
55
41
|
[EProvider.FLOWX]?: FlowxProviderOptions;
|
|
56
42
|
[EProvider.CETUS]?: CetusProviderOptions;
|
|
57
|
-
[EProvider.OKX]?: OkxProviderOptions;
|
|
58
|
-
[EProvider.BLUEFINX]?: BluefinXProviderOptions;
|
|
59
|
-
[EProvider.ASTRO]?: AstroProviderOptions;
|
|
60
43
|
};
|
|
61
44
|
/**Mainnet Json Rpc url, if not specified, the default mainnet url will be used */
|
|
62
45
|
fullnodeUrl?: string;
|
|
@@ -74,11 +57,9 @@ export interface MetaAgOptions {
|
|
|
74
57
|
tipBps?: number;
|
|
75
58
|
}
|
|
76
59
|
export interface MetaQuoteOptions {
|
|
77
|
-
|
|
78
|
-
|
|
60
|
+
coinInType: string;
|
|
61
|
+
coinOutType: string;
|
|
79
62
|
amountIn: string;
|
|
80
|
-
/** Required for RFQ providers (ie: BluefinX) */
|
|
81
|
-
signer?: string;
|
|
82
63
|
/**
|
|
83
64
|
* Timeout for quote operation in milliseconds
|
|
84
65
|
* @default 2000ms
|
|
@@ -95,22 +76,7 @@ export interface MetaSimulationOptions {
|
|
|
95
76
|
/** If specify, defer the simulation that could reduce the time to display quote result, you must update the quote via the id on callback
|
|
96
77
|
* else await all quote and simulation before return
|
|
97
78
|
*/
|
|
98
|
-
onSimulated?: (payload: MetaQuote) => void;
|
|
99
|
-
}
|
|
100
|
-
export interface MetaFastSwapOptions {
|
|
101
|
-
/** Quote object from the quote operation */
|
|
102
|
-
quote: MetaQuote;
|
|
103
|
-
/** Signer address (owner of `coinIn`) */
|
|
104
|
-
signer: string;
|
|
105
|
-
/** If true, use the gas coin for the swap
|
|
106
|
-
* @default true */
|
|
107
|
-
useGasCoin?: boolean;
|
|
108
|
-
/**
|
|
109
|
-
* Sign the transaction bytes
|
|
110
|
-
* @param txBytes - base64 transaction bytes
|
|
111
|
-
* @returns - signature with bytes
|
|
112
|
-
*/
|
|
113
|
-
signTransaction: (txBytes: string) => Promise<SignatureWithBytes>;
|
|
79
|
+
onSimulated?: (payload: Pick<MetaQuote, "simulatedAmountOut" | "gasUsed" | "id" | "provider">) => void;
|
|
114
80
|
}
|
|
115
81
|
export interface MetaSwapOptions {
|
|
116
82
|
/** Quote object from the quote operation */
|
|
@@ -134,15 +100,6 @@ export type MetaQuote = ({
|
|
|
134
100
|
} | {
|
|
135
101
|
provider: EProvider.FLOWX;
|
|
136
102
|
quote: FlowxQuoteResponse;
|
|
137
|
-
} | {
|
|
138
|
-
provider: EProvider.OKX;
|
|
139
|
-
quote: OkxSwapResponseData;
|
|
140
|
-
} | {
|
|
141
|
-
provider: EProvider.BLUEFINX;
|
|
142
|
-
quote: QuoteResponse;
|
|
143
|
-
} | {
|
|
144
|
-
provider: EProvider.ASTRO;
|
|
145
|
-
quote: Quote;
|
|
146
103
|
}) & {
|
|
147
104
|
/** uuid to keep track the quote result, used to apply simulation result on quote on callback `onSimulated`*/
|
|
148
105
|
id: string;
|
|
@@ -161,19 +118,10 @@ export type MetaQuote = ({
|
|
|
161
118
|
/** Estimate gas consumption if the transaction is executed */
|
|
162
119
|
gasUsed?: GasCostSummary;
|
|
163
120
|
};
|
|
164
|
-
export
|
|
165
|
-
|
|
166
|
-
quote(
|
|
167
|
-
|
|
168
|
-
export interface SwapAPIProvider extends QuoteProvider {
|
|
169
|
-
readonly kind: EProvider.OKX | EProvider.BLUEFINX;
|
|
170
|
-
fastSwap(options: MetaFastSwapOptions): Promise<string>;
|
|
171
|
-
}
|
|
172
|
-
export interface AggregatorProvider extends QuoteProvider {
|
|
173
|
-
readonly kind: EProvider.BLUEFIN7K | EProvider.CETUS | EProvider.FLOWX | EProvider.ASTRO;
|
|
174
|
-
swap(options: MetaSwapOptions): Promise<TransactionObjectArgument>;
|
|
121
|
+
export declare abstract class AgProvider {
|
|
122
|
+
abstract kind: EProvider;
|
|
123
|
+
abstract quote(quoteOptions: MetaQuoteOptions): Promise<MetaQuote>;
|
|
124
|
+
abstract swap(options: MetaSwapOptions): Promise<TransactionObjectArgument>;
|
|
175
125
|
}
|
|
176
|
-
export declare const isAggregatorProvider: (provider: QuoteProvider) => provider is AggregatorProvider;
|
|
177
|
-
export declare const isSwapAPIProvider: (provider: QuoteProvider) => provider is SwapAPIProvider;
|
|
178
126
|
export {};
|
|
179
127
|
//# sourceMappingURL=metaAg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaAg.d.ts","sourceRoot":"","sources":["../../../../src/types/metaAg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"metaAg.d.ts","sourceRoot":"","sources":["../../../../src/types/metaAg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function assert(condition:
|
|
1
|
+
export declare function assert(condition: boolean, message?: string | null): asserts condition;
|
|
2
2
|
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../../src/utils/condition.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CACpB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../../src/utils/condition.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,SAAS,CAInB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@7kprotocol/sdk-ts",
|
|
3
|
-
"version": "3.5.2
|
|
3
|
+
"version": "3.5.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -79,7 +79,6 @@
|
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|
|
81
81
|
"@cetusprotocol/aggregator-sdk": "^1.4.1",
|
|
82
|
-
"@flowx-finance/sdk": "^1.13.8"
|
|
83
|
-
"@naviprotocol/astros-aggregator-sdk": "^1.9.1"
|
|
82
|
+
"@flowx-finance/sdk": "^1.13.8"
|
|
84
83
|
}
|
|
85
84
|
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.timeout = exports.metaSettle = exports.simulateAggregator = exports.simulateSwapTx = exports.simulateBluefinX = void 0;
|
|
4
|
-
const transactions_1 = require("@mysten/sui/transactions");
|
|
5
|
-
const _7k_1 = require("../../constants/_7k");
|
|
6
|
-
const buildTx_1 = require("../swap/buildTx");
|
|
7
|
-
const DEFAULT_GAS_USED = {
|
|
8
|
-
computationCost: "0",
|
|
9
|
-
nonRefundableStorageFee: "0",
|
|
10
|
-
storageCost: "0",
|
|
11
|
-
storageRebate: "0",
|
|
12
|
-
};
|
|
13
|
-
const simulateBluefinX = (quote) => {
|
|
14
|
-
return {
|
|
15
|
-
id: quote.id,
|
|
16
|
-
simulatedAmountOut: quote.amountOut,
|
|
17
|
-
gasUsed: DEFAULT_GAS_USED,
|
|
18
|
-
provider: quote.provider,
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
exports.simulateBluefinX = simulateBluefinX;
|
|
22
|
-
const simulateSwapTx = async (tx, inspector, simulation) => {
|
|
23
|
-
const res = await (0, exports.timeout)(() => inspector.devInspectTransactionBlock({
|
|
24
|
-
sender: simulation.sender,
|
|
25
|
-
transactionBlock: tx,
|
|
26
|
-
}), simulation.timeout ?? 2000);
|
|
27
|
-
if (res.effects.status.status === "failure") {
|
|
28
|
-
throw new Error(res.error ?? "Simulation failed");
|
|
29
|
-
}
|
|
30
|
-
const amountOut = extractAmountOutWrapper(res.events);
|
|
31
|
-
return {
|
|
32
|
-
simulatedAmountOut: amountOut,
|
|
33
|
-
gasUsed: res.effects.gasUsed,
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
exports.simulateSwapTx = simulateSwapTx;
|
|
37
|
-
const simulateAggregator = async (provider, quote, simulation, inspector, options) => {
|
|
38
|
-
const tx = new transactions_1.Transaction();
|
|
39
|
-
const coinOut = await provider.swap({
|
|
40
|
-
quote,
|
|
41
|
-
coinIn: (0, transactions_1.coinWithBalance)({
|
|
42
|
-
balance: BigInt(quote.amountIn),
|
|
43
|
-
type: quote.coinTypeIn,
|
|
44
|
-
useGasCoin: false,
|
|
45
|
-
}),
|
|
46
|
-
signer: simulation.sender,
|
|
47
|
-
tx,
|
|
48
|
-
});
|
|
49
|
-
tx.add((0, exports.metaSettle)(quote, coinOut, 10000, options.tipBps, options.partner, options.partnerCommissionBps));
|
|
50
|
-
tx.transferObjects([coinOut], simulation.sender);
|
|
51
|
-
const res = await (0, exports.simulateSwapTx)(tx, inspector, simulation);
|
|
52
|
-
return {
|
|
53
|
-
id: quote.id,
|
|
54
|
-
provider: provider.kind,
|
|
55
|
-
...res,
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
exports.simulateAggregator = simulateAggregator;
|
|
59
|
-
/**
|
|
60
|
-
* this settlement does not charge commission fee for partner, since all integrated aggregators already charge commission fee for partner
|
|
61
|
-
* @param quote Meta Aggregator Quote
|
|
62
|
-
* @param coinOut Coin Out Object
|
|
63
|
-
* @param slippageBps Slippage Bps
|
|
64
|
-
* @param tipBps Tip Bps default = 0
|
|
65
|
-
* @param partner address of partner for analytic default is zero address
|
|
66
|
-
*/
|
|
67
|
-
const metaSettle = (quote, coinOut, slippageBps = 100, tipBps = 0, partner, commissionBps = 0) => {
|
|
68
|
-
return (tx) => {
|
|
69
|
-
const { minAmount, expectedAmount } = (0, buildTx_1.getExpectedReturn)(quote.rawAmountOut, slippageBps, commissionBps, tipBps);
|
|
70
|
-
if (tipBps > 0) {
|
|
71
|
-
tx.moveCall({
|
|
72
|
-
target: `${_7k_1._7K_META_PUBLISHED_AT}::vault::collect_tip`,
|
|
73
|
-
typeArguments: [quote.coinTypeOut],
|
|
74
|
-
arguments: [
|
|
75
|
-
tx.object(_7k_1._7K_META_VAULT),
|
|
76
|
-
tx.object(_7k_1._7K_META_CONFIG),
|
|
77
|
-
coinOut,
|
|
78
|
-
tx.pure.u64(tipBps),
|
|
79
|
-
],
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
tx.moveCall({
|
|
83
|
-
target: `${_7k_1._7K_META_PUBLISHED_AT}::settle::settle`,
|
|
84
|
-
typeArguments: [quote.coinTypeIn, quote.coinTypeOut],
|
|
85
|
-
arguments: [
|
|
86
|
-
tx.object(_7k_1._7K_META_CONFIG),
|
|
87
|
-
tx.object(_7k_1._7K_META_VAULT),
|
|
88
|
-
tx.pure.u64(quote.amountIn),
|
|
89
|
-
coinOut,
|
|
90
|
-
tx.pure.u64(minAmount),
|
|
91
|
-
tx.pure.u64(expectedAmount),
|
|
92
|
-
tx.pure.option("address", partner),
|
|
93
|
-
tx.pure.u64(commissionBps),
|
|
94
|
-
tx.pure.u64(0), // ps
|
|
95
|
-
],
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
exports.metaSettle = metaSettle;
|
|
100
|
-
const extractAmountOutWrapper = (events) => {
|
|
101
|
-
const swapEvent = events
|
|
102
|
-
.filter((event) => event.type === `${_7k_1._7K_META_PACKAGE_ID}::settle::Swap`)
|
|
103
|
-
?.pop();
|
|
104
|
-
return swapEvent?.parsedJson?.amount_out;
|
|
105
|
-
};
|
|
106
|
-
const timeout = async (fn, timeout, msg) => {
|
|
107
|
-
if (timeout <= 0)
|
|
108
|
-
return fn();
|
|
109
|
-
return new Promise((resolve, reject) => {
|
|
110
|
-
const timer = setTimeout(() => reject(new Error(`Timeout ${msg ?? "operation"}`)), timeout);
|
|
111
|
-
fn()
|
|
112
|
-
.then(resolve)
|
|
113
|
-
.catch(reject)
|
|
114
|
-
.finally(() => clearTimeout(timer));
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
exports.timeout = timeout;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AstroProvider = void 0;
|
|
4
|
-
const astros_aggregator_sdk_1 = require("@naviprotocol/astros-aggregator-sdk");
|
|
5
|
-
const uuid_1 = require("uuid");
|
|
6
|
-
const _7k_1 = require("../../../constants/_7k");
|
|
7
|
-
const metaAg_1 = require("../../../types/metaAg");
|
|
8
|
-
const condition_1 = require("../../../utils/condition");
|
|
9
|
-
class AstroProvider {
|
|
10
|
-
constructor(options) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.kind = metaAg_1.EProvider.ASTRO;
|
|
13
|
-
}
|
|
14
|
-
async quote({ amountIn, coinTypeIn, coinTypeOut, }) {
|
|
15
|
-
const quote = await (0, astros_aggregator_sdk_1.getQuote)(coinTypeIn, coinTypeOut, amountIn, this.options.api, {
|
|
16
|
-
baseUrl: this.options.api,
|
|
17
|
-
byAmountIn: true,
|
|
18
|
-
depth: this.options.depth,
|
|
19
|
-
dexList: this.options.dexList,
|
|
20
|
-
ifPrint: false,
|
|
21
|
-
serviceFee: {
|
|
22
|
-
fee: 0,
|
|
23
|
-
receiverAddress: _7k_1._7K_PARTNER_ADDRESS,
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
return {
|
|
27
|
-
id: (0, uuid_1.v4)(),
|
|
28
|
-
provider: this.kind,
|
|
29
|
-
quote,
|
|
30
|
-
amountIn,
|
|
31
|
-
rawAmountOut: quote.amount_out.toString(),
|
|
32
|
-
amountOut: quote.amount_out.toString(),
|
|
33
|
-
coinTypeIn,
|
|
34
|
-
coinTypeOut,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
async swap({ signer, quote, coinIn, tx }) {
|
|
38
|
-
(0, condition_1.assert)(quote.provider === metaAg_1.EProvider.ASTRO, "Invalid quote");
|
|
39
|
-
const coin = await (0, astros_aggregator_sdk_1.buildSwapPTBFromQuote)(signer, tx, 0, coinIn, quote.quote);
|
|
40
|
-
return coin;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.AstroProvider = AstroProvider;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BluefinXProvider = void 0;
|
|
4
|
-
const transactions_1 = require("@mysten/sui/transactions");
|
|
5
|
-
const utils_1 = require("@mysten/sui/utils");
|
|
6
|
-
const uuid_1 = require("uuid");
|
|
7
|
-
const config_1 = require("../../../config");
|
|
8
|
-
const _7k_1 = require("../../../constants/_7k");
|
|
9
|
-
const client_1 = require("../../../libs/protocols/bluefinx/client");
|
|
10
|
-
const aggregator_1 = require("../../../types/aggregator");
|
|
11
|
-
const metaAg_1 = require("../../../types/metaAg");
|
|
12
|
-
const condition_1 = require("../../../utils/condition");
|
|
13
|
-
const buildTxV2_1 = require("../../swap/buildTxV2");
|
|
14
|
-
const getQuote_1 = require("../../swap/getQuote");
|
|
15
|
-
const common_1 = require("../common");
|
|
16
|
-
const SUPPORT_COINS = [
|
|
17
|
-
"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
|
|
18
|
-
"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
|
|
19
|
-
];
|
|
20
|
-
class BluefinXProvider {
|
|
21
|
-
constructor(options) {
|
|
22
|
-
this.options = options;
|
|
23
|
-
this.kind = metaAg_1.EProvider.BLUEFINX;
|
|
24
|
-
if (options.apiKey)
|
|
25
|
-
config_1.Config.setApiKey(options.apiKey);
|
|
26
|
-
if (options.api)
|
|
27
|
-
config_1.Config.setApi(options.api);
|
|
28
|
-
}
|
|
29
|
-
async quote(options) {
|
|
30
|
-
if (!this.canQuote(options))
|
|
31
|
-
return null;
|
|
32
|
-
const quote = await (0, getQuote_1.getQuote)({
|
|
33
|
-
amountIn: options.amountIn,
|
|
34
|
-
tokenIn: options.coinTypeIn,
|
|
35
|
-
tokenOut: options.coinTypeOut,
|
|
36
|
-
sources: ["bluefinx"],
|
|
37
|
-
taker: options.signer,
|
|
38
|
-
});
|
|
39
|
-
return {
|
|
40
|
-
id: (0, uuid_1.v4)(),
|
|
41
|
-
provider: this.kind,
|
|
42
|
-
quote,
|
|
43
|
-
amountIn: quote.swapAmountWithDecimal,
|
|
44
|
-
rawAmountOut: quote.returnAmountWithDecimal,
|
|
45
|
-
amountOut: quote.returnAmountWithDecimal,
|
|
46
|
-
coinTypeIn: options.coinTypeIn,
|
|
47
|
-
coinTypeOut: options.coinTypeOut,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
canQuote(options) {
|
|
51
|
-
return (!!options.signer &&
|
|
52
|
-
(0, utils_1.isValidSuiAddress)(options.signer) &&
|
|
53
|
-
SUPPORT_COINS.includes(options.coinTypeIn) &&
|
|
54
|
-
SUPPORT_COINS.includes(options.coinTypeOut));
|
|
55
|
-
}
|
|
56
|
-
async fastSwap(options) {
|
|
57
|
-
(0, condition_1.assert)(options.quote.provider === this.kind, "Invalid BluefinX quote");
|
|
58
|
-
const quote = options.quote.quote;
|
|
59
|
-
const tx = new transactions_1.Transaction();
|
|
60
|
-
const { tx: bluefinTx } = await (0, buildTxV2_1.buildTxV2Int)({
|
|
61
|
-
quoteResponse: quote,
|
|
62
|
-
accountAddress: options.signer,
|
|
63
|
-
commission: { commissionBps: 0, partner: _7k_1._7K_PARTNER_ADDRESS },
|
|
64
|
-
slippage: 0,
|
|
65
|
-
extendTx: {
|
|
66
|
-
tx,
|
|
67
|
-
coinIn: (0, transactions_1.coinWithBalance)({
|
|
68
|
-
type: options.quote.coinTypeIn,
|
|
69
|
-
balance: BigInt(options.quote.amountIn),
|
|
70
|
-
useGasCoin: false,
|
|
71
|
-
}),
|
|
72
|
-
},
|
|
73
|
-
}, (tx, coinOut) => {
|
|
74
|
-
if (coinOut) {
|
|
75
|
-
tx.add((0, common_1.metaSettle)(options.quote, coinOut, 0, 0));
|
|
76
|
-
tx.transferObjects([coinOut], options.signer);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
(0, condition_1.assert)(bluefinTx instanceof aggregator_1.BluefinXTx, "BluefinX transaction not found");
|
|
80
|
-
const { signature } = await options.signTransaction(bluefinTx.txBytes);
|
|
81
|
-
const res = await (0, client_1.executeBluefinTx)(bluefinTx, signature);
|
|
82
|
-
(0, condition_1.assert)(res.approved, "BluefinX transaction not approved");
|
|
83
|
-
(0, condition_1.assert)(res.txDigest, "BluefinX transaction digest not found");
|
|
84
|
-
return res.txDigest;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.BluefinXProvider = BluefinXProvider;
|