@7kprotocol/sdk-ts 1.2.7 → 1.3.1
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/README.md +24 -0
- package/lib/cjs/getQuote.js +13 -2
- package/lib/cjs/libs/protocols/index.js +2 -0
- package/lib/cjs/libs/protocols/kriyaV3/index.js +77 -0
- package/lib/cjs/types/getQuote.d.ts +3 -2
- package/lib/cjs/types/getQuote.d.ts.map +1 -1
- package/lib/cjs/types/libs/protocols/index.d.ts +2 -0
- package/lib/cjs/types/libs/protocols/index.d.ts.map +1 -1
- package/lib/cjs/types/libs/protocols/kriyaV3/index.d.ts +10 -0
- package/lib/cjs/types/libs/protocols/kriyaV3/index.d.ts.map +1 -0
- package/lib/cjs/types/types/aggregator.d.ts +1 -1
- package/lib/cjs/types/types/aggregator.d.ts.map +1 -1
- package/lib/esm/getQuote.js +13 -2
- package/lib/esm/libs/protocols/index.js +2 -0
- package/lib/esm/libs/protocols/kriyaV3/index.js +62 -0
- package/lib/esm/types/getQuote.d.ts +3 -2
- package/lib/esm/types/getQuote.d.ts.map +1 -1
- package/lib/esm/types/libs/protocols/index.d.ts +2 -0
- package/lib/esm/types/libs/protocols/index.d.ts.map +1 -1
- package/lib/esm/types/libs/protocols/kriyaV3/index.d.ts +10 -0
- package/lib/esm/types/libs/protocols/kriyaV3/index.d.ts.map +1 -0
- package/lib/esm/types/types/aggregator.d.ts +1 -1
- package/lib/esm/types/types/aggregator.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,6 +34,30 @@ const quoteResponse = await getQuote({
|
|
|
34
34
|
});
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
or
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { getQuote } from "@7kprotocol/sdk-ts";
|
|
41
|
+
|
|
42
|
+
const quoteResponse = await getQuote({
|
|
43
|
+
tokenIn: "0x2::sui::SUI",
|
|
44
|
+
tokenOut:
|
|
45
|
+
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
|
|
46
|
+
amountIn: "1000000000",
|
|
47
|
+
sources: [
|
|
48
|
+
"suiswap",
|
|
49
|
+
"turbos",
|
|
50
|
+
"cetus",
|
|
51
|
+
"bluemove",
|
|
52
|
+
"kriya",
|
|
53
|
+
"kriya_v3",
|
|
54
|
+
"aftermath",
|
|
55
|
+
"deepbook",
|
|
56
|
+
"flowx",
|
|
57
|
+
], // Optional: if empty, the latest sources supported by the current SDK version will be used.
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
37
61
|
### 3. Build Transaction
|
|
38
62
|
|
|
39
63
|
```typescript
|
package/lib/cjs/getQuote.js
CHANGED
|
@@ -11,9 +11,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.getQuote = getQuote;
|
|
13
13
|
const token_1 = require("./utils/token");
|
|
14
|
+
const DEFAULT_SOURCES = [
|
|
15
|
+
"suiswap",
|
|
16
|
+
"turbos",
|
|
17
|
+
"cetus",
|
|
18
|
+
"bluemove",
|
|
19
|
+
"kriya",
|
|
20
|
+
"kriya_v3",
|
|
21
|
+
"aftermath",
|
|
22
|
+
"deepbook",
|
|
23
|
+
"flowx",
|
|
24
|
+
];
|
|
14
25
|
function getQuote(_a) {
|
|
15
|
-
return __awaiter(this, arguments, void 0, function* ({ tokenIn, tokenOut, amountIn, }) {
|
|
16
|
-
const response = yield fetch(`https://api.7k.ag/quote?amount=${amountIn}&from=${(0, token_1.normalizeTokenType)(tokenIn)}&to=${(0, token_1.normalizeTokenType)(tokenOut)}`);
|
|
26
|
+
return __awaiter(this, arguments, void 0, function* ({ tokenIn, tokenOut, amountIn, sources = DEFAULT_SOURCES, }) {
|
|
27
|
+
const response = yield fetch(`https://api.7k.ag/quote?amount=${amountIn}&from=${(0, token_1.normalizeTokenType)(tokenIn)}&to=${(0, token_1.normalizeTokenType)(tokenOut)}&sources=${sources.join(",")}`);
|
|
17
28
|
if (!response.ok) {
|
|
18
29
|
throw new Error("Failed to fetch aggregator quote");
|
|
19
30
|
}
|
|
@@ -9,6 +9,7 @@ const kriya_1 = require("./kriya");
|
|
|
9
9
|
const turbos_1 = require("./turbos");
|
|
10
10
|
const suiswap_1 = require("./suiswap");
|
|
11
11
|
const bluemove_1 = require("./bluemove");
|
|
12
|
+
const kriyaV3_1 = require("./kriyaV3");
|
|
12
13
|
exports.ProtocolContract = {
|
|
13
14
|
cetus: cetus_1.CetusContract,
|
|
14
15
|
turbos: turbos_1.TurbosContract,
|
|
@@ -18,4 +19,5 @@ exports.ProtocolContract = {
|
|
|
18
19
|
aftermath: aftermath_1.AfterMathContract,
|
|
19
20
|
deepbook: deepbook_1.DeepBookContract,
|
|
20
21
|
flowx: flowx_1.FlowXContract,
|
|
22
|
+
kriya_v3: kriyaV3_1.KriyaV3Contract,
|
|
21
23
|
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.KriyaV3Contract = void 0;
|
|
13
|
+
const base_1 = require("../base");
|
|
14
|
+
const utils_1 = require("@mysten/sui.js/utils");
|
|
15
|
+
const token_1 = require("../../../utils/token");
|
|
16
|
+
const PACKAGE_ID = "0xbd8d4489782042c6fafad4de4bc6a5e0b84a43c6c00647ffd7062d1e2bb7549e";
|
|
17
|
+
const VERSION_ID = "0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78";
|
|
18
|
+
class KriyaV3Contract extends base_1.BaseContract {
|
|
19
|
+
swap(tx) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const swapXtoY = this.swapInfo.swapXtoY;
|
|
22
|
+
const coinInType = (0, token_1.normalizeTokenType)(this.swapInfo.assetIn);
|
|
23
|
+
const coinOutType = (0, token_1.normalizeTokenType)(this.swapInfo.assetOut);
|
|
24
|
+
const poolId = this.swapInfo.poolId;
|
|
25
|
+
const LowLimitPrice = 4295048017;
|
|
26
|
+
const limitPrice = BigInt("79226673515401279992447579050");
|
|
27
|
+
const [receive_a, receive_b, flash_receipt] = tx.moveCall({
|
|
28
|
+
target: `${PACKAGE_ID}::trade::flash_swap`,
|
|
29
|
+
typeArguments: this.getTypeParams(),
|
|
30
|
+
arguments: [
|
|
31
|
+
tx.object(poolId),
|
|
32
|
+
tx.pure(swapXtoY),
|
|
33
|
+
tx.pure(true),
|
|
34
|
+
this.getInputCoinValue(tx),
|
|
35
|
+
tx.pure(swapXtoY ? LowLimitPrice : limitPrice),
|
|
36
|
+
tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
37
|
+
tx.object(VERSION_ID),
|
|
38
|
+
],
|
|
39
|
+
});
|
|
40
|
+
tx.moveCall({
|
|
41
|
+
target: `0x2::balance::destroy_zero`,
|
|
42
|
+
arguments: [swapXtoY ? receive_a : receive_b],
|
|
43
|
+
typeArguments: [coinInType],
|
|
44
|
+
});
|
|
45
|
+
const [zeroOutCoin] = tx.moveCall({
|
|
46
|
+
target: `0x2::balance::zero`,
|
|
47
|
+
arguments: [],
|
|
48
|
+
typeArguments: [coinOutType],
|
|
49
|
+
});
|
|
50
|
+
const inputCoinBalance = tx.moveCall({
|
|
51
|
+
target: `0x2::coin::into_balance`,
|
|
52
|
+
typeArguments: [coinInType],
|
|
53
|
+
arguments: [this.inputCoinObject],
|
|
54
|
+
});
|
|
55
|
+
const pay_coin_a = swapXtoY ? inputCoinBalance : zeroOutCoin;
|
|
56
|
+
const pay_coin_b = swapXtoY ? zeroOutCoin : inputCoinBalance;
|
|
57
|
+
tx.moveCall({
|
|
58
|
+
target: `${PACKAGE_ID}::trade::repay_flash_swap`,
|
|
59
|
+
typeArguments: this.getTypeParams(),
|
|
60
|
+
arguments: [
|
|
61
|
+
tx.object(poolId),
|
|
62
|
+
flash_receipt,
|
|
63
|
+
pay_coin_a,
|
|
64
|
+
pay_coin_b,
|
|
65
|
+
tx.object(VERSION_ID),
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
const [tokenOut] = tx.moveCall({
|
|
69
|
+
target: `0x2::coin::from_balance`,
|
|
70
|
+
typeArguments: [coinOutType],
|
|
71
|
+
arguments: [swapXtoY ? receive_b : receive_a],
|
|
72
|
+
});
|
|
73
|
+
return tokenOut;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.KriyaV3Contract = KriyaV3Contract;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { QuoteResponse } from "./types/aggregator";
|
|
1
|
+
import { QuoteResponse, SourceDex } from "./types/aggregator";
|
|
2
2
|
interface Params {
|
|
3
3
|
tokenIn: string;
|
|
4
4
|
tokenOut: string;
|
|
5
5
|
amountIn: string;
|
|
6
|
+
sources?: SourceDex[];
|
|
6
7
|
}
|
|
7
|
-
export declare function getQuote({ tokenIn, tokenOut, amountIn, }: Params): Promise<QuoteResponse>;
|
|
8
|
+
export declare function getQuote({ tokenIn, tokenOut, amountIn, sources, }: Params): Promise<QuoteResponse>;
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=getQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQuote.d.ts","sourceRoot":"","sources":["../../../src/getQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"getQuote.d.ts","sourceRoot":"","sources":["../../../src/getQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9D,UAAU,MAAM;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB;AAcD,wBAAsB,QAAQ,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAyB,GAC1B,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAQjC"}
|
|
@@ -6,6 +6,7 @@ import { KriyaContract } from "./kriya";
|
|
|
6
6
|
import { TurbosContract } from "./turbos";
|
|
7
7
|
import { SuiswapContract } from "./suiswap";
|
|
8
8
|
import { BluemoveContract } from "./bluemove";
|
|
9
|
+
import { KriyaV3Contract } from "./kriyaV3";
|
|
9
10
|
export declare const ProtocolContract: {
|
|
10
11
|
cetus: typeof CetusContract;
|
|
11
12
|
turbos: typeof TurbosContract;
|
|
@@ -15,5 +16,6 @@ export declare const ProtocolContract: {
|
|
|
15
16
|
aftermath: typeof AfterMathContract;
|
|
16
17
|
deepbook: typeof DeepBookContract;
|
|
17
18
|
flowx: typeof FlowXContract;
|
|
19
|
+
kriya_v3: typeof KriyaV3Contract;
|
|
18
20
|
};
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/libs/protocols/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/libs/protocols/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,eAAO,MAAM,gBAAgB;;;;;;;;;;CAU5B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TransactionBlock } from "@mysten/sui.js/transactions";
|
|
2
|
+
import { BaseContract } from "../base";
|
|
3
|
+
export declare class KriyaV3Contract extends BaseContract {
|
|
4
|
+
swap(tx: TransactionBlock): Promise<{
|
|
5
|
+
index: number;
|
|
6
|
+
resultIndex: number;
|
|
7
|
+
kind: "NestedResult";
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/protocols/kriyaV3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASvC,qBAAa,eAAgB,SAAQ,YAAY;IACzC,IAAI,CAAC,EAAE,EAAE,gBAAgB;;;;;CA+DhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SourceDex = "suiswap" | "turbos" | "cetus" | "bluemove" | "kriya" | "aftermath" | "deepbook" | "flowx";
|
|
1
|
+
export type SourceDex = "suiswap" | "turbos" | "cetus" | "bluemove" | "kriya" | "kriya_v3" | "aftermath" | "deepbook" | "flowx";
|
|
2
2
|
export type SorSwap = {
|
|
3
3
|
poolId: string;
|
|
4
4
|
assetInIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../../../src/types/aggregator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,WAAW,GACX,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../../../src/types/aggregator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
package/lib/esm/getQuote.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { normalizeTokenType } from "./utils/token";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const DEFAULT_SOURCES = [
|
|
3
|
+
"suiswap",
|
|
4
|
+
"turbos",
|
|
5
|
+
"cetus",
|
|
6
|
+
"bluemove",
|
|
7
|
+
"kriya",
|
|
8
|
+
"kriya_v3",
|
|
9
|
+
"aftermath",
|
|
10
|
+
"deepbook",
|
|
11
|
+
"flowx",
|
|
12
|
+
];
|
|
13
|
+
export async function getQuote({ tokenIn, tokenOut, amountIn, sources = DEFAULT_SOURCES, }) {
|
|
14
|
+
const response = await fetch(`https://api.7k.ag/quote?amount=${amountIn}&from=${normalizeTokenType(tokenIn)}&to=${normalizeTokenType(tokenOut)}&sources=${sources.join(",")}`);
|
|
4
15
|
if (!response.ok) {
|
|
5
16
|
throw new Error("Failed to fetch aggregator quote");
|
|
6
17
|
}
|
|
@@ -6,6 +6,7 @@ import { KriyaContract } from "./kriya";
|
|
|
6
6
|
import { TurbosContract } from "./turbos";
|
|
7
7
|
import { SuiswapContract } from "./suiswap";
|
|
8
8
|
import { BluemoveContract } from "./bluemove";
|
|
9
|
+
import { KriyaV3Contract } from "./kriyaV3";
|
|
9
10
|
export const ProtocolContract = {
|
|
10
11
|
cetus: CetusContract,
|
|
11
12
|
turbos: TurbosContract,
|
|
@@ -15,4 +16,5 @@ export const ProtocolContract = {
|
|
|
15
16
|
aftermath: AfterMathContract,
|
|
16
17
|
deepbook: DeepBookContract,
|
|
17
18
|
flowx: FlowXContract,
|
|
19
|
+
kriya_v3: KriyaV3Contract,
|
|
18
20
|
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BaseContract } from "../base";
|
|
2
|
+
import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui.js/utils";
|
|
3
|
+
import { normalizeTokenType } from "../../../utils/token";
|
|
4
|
+
const PACKAGE_ID = "0xbd8d4489782042c6fafad4de4bc6a5e0b84a43c6c00647ffd7062d1e2bb7549e";
|
|
5
|
+
const VERSION_ID = "0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78";
|
|
6
|
+
export class KriyaV3Contract extends BaseContract {
|
|
7
|
+
async swap(tx) {
|
|
8
|
+
const swapXtoY = this.swapInfo.swapXtoY;
|
|
9
|
+
const coinInType = normalizeTokenType(this.swapInfo.assetIn);
|
|
10
|
+
const coinOutType = normalizeTokenType(this.swapInfo.assetOut);
|
|
11
|
+
const poolId = this.swapInfo.poolId;
|
|
12
|
+
const LowLimitPrice = 4295048017;
|
|
13
|
+
const limitPrice = BigInt("79226673515401279992447579050");
|
|
14
|
+
const [receive_a, receive_b, flash_receipt] = tx.moveCall({
|
|
15
|
+
target: `${PACKAGE_ID}::trade::flash_swap`,
|
|
16
|
+
typeArguments: this.getTypeParams(),
|
|
17
|
+
arguments: [
|
|
18
|
+
tx.object(poolId),
|
|
19
|
+
tx.pure(swapXtoY),
|
|
20
|
+
tx.pure(true),
|
|
21
|
+
this.getInputCoinValue(tx),
|
|
22
|
+
tx.pure(swapXtoY ? LowLimitPrice : limitPrice),
|
|
23
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
24
|
+
tx.object(VERSION_ID),
|
|
25
|
+
],
|
|
26
|
+
});
|
|
27
|
+
tx.moveCall({
|
|
28
|
+
target: `0x2::balance::destroy_zero`,
|
|
29
|
+
arguments: [swapXtoY ? receive_a : receive_b],
|
|
30
|
+
typeArguments: [coinInType],
|
|
31
|
+
});
|
|
32
|
+
const [zeroOutCoin] = tx.moveCall({
|
|
33
|
+
target: `0x2::balance::zero`,
|
|
34
|
+
arguments: [],
|
|
35
|
+
typeArguments: [coinOutType],
|
|
36
|
+
});
|
|
37
|
+
const inputCoinBalance = tx.moveCall({
|
|
38
|
+
target: `0x2::coin::into_balance`,
|
|
39
|
+
typeArguments: [coinInType],
|
|
40
|
+
arguments: [this.inputCoinObject],
|
|
41
|
+
});
|
|
42
|
+
const pay_coin_a = swapXtoY ? inputCoinBalance : zeroOutCoin;
|
|
43
|
+
const pay_coin_b = swapXtoY ? zeroOutCoin : inputCoinBalance;
|
|
44
|
+
tx.moveCall({
|
|
45
|
+
target: `${PACKAGE_ID}::trade::repay_flash_swap`,
|
|
46
|
+
typeArguments: this.getTypeParams(),
|
|
47
|
+
arguments: [
|
|
48
|
+
tx.object(poolId),
|
|
49
|
+
flash_receipt,
|
|
50
|
+
pay_coin_a,
|
|
51
|
+
pay_coin_b,
|
|
52
|
+
tx.object(VERSION_ID),
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
const [tokenOut] = tx.moveCall({
|
|
56
|
+
target: `0x2::coin::from_balance`,
|
|
57
|
+
typeArguments: [coinOutType],
|
|
58
|
+
arguments: [swapXtoY ? receive_b : receive_a],
|
|
59
|
+
});
|
|
60
|
+
return tokenOut;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { QuoteResponse } from "./types/aggregator";
|
|
1
|
+
import { QuoteResponse, SourceDex } from "./types/aggregator";
|
|
2
2
|
interface Params {
|
|
3
3
|
tokenIn: string;
|
|
4
4
|
tokenOut: string;
|
|
5
5
|
amountIn: string;
|
|
6
|
+
sources?: SourceDex[];
|
|
6
7
|
}
|
|
7
|
-
export declare function getQuote({ tokenIn, tokenOut, amountIn, }: Params): Promise<QuoteResponse>;
|
|
8
|
+
export declare function getQuote({ tokenIn, tokenOut, amountIn, sources, }: Params): Promise<QuoteResponse>;
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=getQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQuote.d.ts","sourceRoot":"","sources":["../../../src/getQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"getQuote.d.ts","sourceRoot":"","sources":["../../../src/getQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9D,UAAU,MAAM;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB;AAcD,wBAAsB,QAAQ,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAyB,GAC1B,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAQjC"}
|
|
@@ -6,6 +6,7 @@ import { KriyaContract } from "./kriya";
|
|
|
6
6
|
import { TurbosContract } from "./turbos";
|
|
7
7
|
import { SuiswapContract } from "./suiswap";
|
|
8
8
|
import { BluemoveContract } from "./bluemove";
|
|
9
|
+
import { KriyaV3Contract } from "./kriyaV3";
|
|
9
10
|
export declare const ProtocolContract: {
|
|
10
11
|
cetus: typeof CetusContract;
|
|
11
12
|
turbos: typeof TurbosContract;
|
|
@@ -15,5 +16,6 @@ export declare const ProtocolContract: {
|
|
|
15
16
|
aftermath: typeof AfterMathContract;
|
|
16
17
|
deepbook: typeof DeepBookContract;
|
|
17
18
|
flowx: typeof FlowXContract;
|
|
19
|
+
kriya_v3: typeof KriyaV3Contract;
|
|
18
20
|
};
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/libs/protocols/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/libs/protocols/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,eAAO,MAAM,gBAAgB;;;;;;;;;;CAU5B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TransactionBlock } from "@mysten/sui.js/transactions";
|
|
2
|
+
import { BaseContract } from "../base";
|
|
3
|
+
export declare class KriyaV3Contract extends BaseContract {
|
|
4
|
+
swap(tx: TransactionBlock): Promise<{
|
|
5
|
+
index: number;
|
|
6
|
+
resultIndex: number;
|
|
7
|
+
kind: "NestedResult";
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/protocols/kriyaV3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASvC,qBAAa,eAAgB,SAAQ,YAAY;IACzC,IAAI,CAAC,EAAE,EAAE,gBAAgB;;;;;CA+DhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SourceDex = "suiswap" | "turbos" | "cetus" | "bluemove" | "kriya" | "aftermath" | "deepbook" | "flowx";
|
|
1
|
+
export type SourceDex = "suiswap" | "turbos" | "cetus" | "bluemove" | "kriya" | "kriya_v3" | "aftermath" | "deepbook" | "flowx";
|
|
2
2
|
export type SorSwap = {
|
|
3
3
|
poolId: string;
|
|
4
4
|
assetInIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../../../src/types/aggregator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,WAAW,GACX,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../../../src/types/aggregator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|