zo-sdk 0.0.51 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +272 -20
- package/dist/abstract/BaseAPI.cjs +117 -0
- package/dist/abstract/BaseAPI.cjs.map +1 -0
- package/dist/abstract/BaseAPI.d.cts +131 -0
- package/dist/abstract/BaseAPI.d.cts.map +1 -0
- package/dist/abstract/BaseAPI.d.mts +131 -0
- package/dist/abstract/BaseAPI.d.mts.map +1 -0
- package/dist/abstract/BaseAPI.mjs +113 -0
- package/dist/abstract/BaseAPI.mjs.map +1 -0
- package/dist/abstract/BaseDataAPI.cjs +139 -0
- package/dist/abstract/BaseDataAPI.cjs.map +1 -0
- package/dist/abstract/BaseDataAPI.d.cts +89 -0
- package/dist/abstract/BaseDataAPI.d.cts.map +1 -0
- package/dist/abstract/BaseDataAPI.d.mts +89 -0
- package/dist/abstract/BaseDataAPI.d.mts.map +1 -0
- package/dist/abstract/BaseDataAPI.mjs +135 -0
- package/dist/abstract/BaseDataAPI.mjs.map +1 -0
- package/dist/abstract/index.cjs +12 -0
- package/dist/abstract/index.cjs.map +1 -0
- package/dist/abstract/index.d.cts +7 -0
- package/dist/abstract/index.d.cts.map +1 -0
- package/dist/abstract/index.d.mts +7 -0
- package/dist/abstract/index.d.mts.map +1 -0
- package/dist/abstract/index.mjs +7 -0
- package/dist/abstract/index.mjs.map +1 -0
- package/dist/bcs.cjs +42 -0
- package/dist/bcs.cjs.map +1 -0
- package/dist/bcs.d.cts +91 -0
- package/dist/bcs.d.cts.map +1 -0
- package/dist/bcs.d.mts +91 -0
- package/dist/bcs.d.mts.map +1 -0
- package/dist/bcs.mjs +39 -0
- package/dist/bcs.mjs.map +1 -0
- package/dist/consts/deployments-slp-mainnet.json +710 -0
- package/dist/consts/deployments-slp-testnet.json +109 -0
- package/dist/consts/deployments-usdz-mainnet.json +180 -0
- package/dist/consts/deployments-usdz-testnet.json +98 -0
- package/dist/consts/{deployments-mainnet.json → deployments-zlp-mainnet.json} +278 -42
- package/dist/consts/index.cjs +40 -8
- package/dist/consts/index.cjs.map +1 -1
- package/dist/consts/index.d.cts +81 -11
- package/dist/consts/index.d.cts.map +1 -1
- package/dist/consts/index.d.mts +81 -11
- package/dist/consts/index.d.mts.map +1 -1
- package/dist/consts/index.mjs +39 -7
- package/dist/consts/index.mjs.map +1 -1
- package/dist/consts/price_id_to_object_id.mainnet.json +9 -1
- package/dist/factory/SDKFactory.cjs +185 -0
- package/dist/factory/SDKFactory.cjs.map +1 -0
- package/dist/factory/SDKFactory.d.cts +74 -0
- package/dist/factory/SDKFactory.d.cts.map +1 -0
- package/dist/factory/SDKFactory.d.mts +74 -0
- package/dist/factory/SDKFactory.d.mts.map +1 -0
- package/dist/factory/SDKFactory.mjs +179 -0
- package/dist/factory/SDKFactory.mjs.map +1 -0
- package/dist/implementations/SLPAPI.cjs +829 -0
- package/dist/implementations/SLPAPI.cjs.map +1 -0
- package/dist/implementations/SLPAPI.d.cts +120 -0
- package/dist/implementations/SLPAPI.d.cts.map +1 -0
- package/dist/implementations/SLPAPI.d.mts +120 -0
- package/dist/implementations/SLPAPI.d.mts.map +1 -0
- package/dist/implementations/SLPAPI.mjs +825 -0
- package/dist/implementations/SLPAPI.mjs.map +1 -0
- package/dist/implementations/SLPDataAPI.cjs +916 -0
- package/dist/implementations/SLPDataAPI.cjs.map +1 -0
- package/dist/implementations/SLPDataAPI.d.cts +102 -0
- package/dist/implementations/SLPDataAPI.d.cts.map +1 -0
- package/dist/implementations/SLPDataAPI.d.mts +102 -0
- package/dist/implementations/SLPDataAPI.d.mts.map +1 -0
- package/dist/implementations/SLPDataAPI.mjs +912 -0
- package/dist/implementations/SLPDataAPI.mjs.map +1 -0
- package/dist/implementations/USDZAPI.cjs +522 -0
- package/dist/implementations/USDZAPI.cjs.map +1 -0
- package/dist/implementations/USDZAPI.d.cts +118 -0
- package/dist/implementations/USDZAPI.d.cts.map +1 -0
- package/dist/implementations/USDZAPI.d.mts +118 -0
- package/dist/implementations/USDZAPI.d.mts.map +1 -0
- package/dist/implementations/USDZAPI.mjs +518 -0
- package/dist/implementations/USDZAPI.mjs.map +1 -0
- package/dist/implementations/USDZDataAPI.cjs +697 -0
- package/dist/implementations/USDZDataAPI.cjs.map +1 -0
- package/dist/implementations/USDZDataAPI.d.cts +86 -0
- package/dist/implementations/USDZDataAPI.d.cts.map +1 -0
- package/dist/implementations/USDZDataAPI.d.mts +86 -0
- package/dist/implementations/USDZDataAPI.d.mts.map +1 -0
- package/dist/implementations/USDZDataAPI.mjs +693 -0
- package/dist/implementations/USDZDataAPI.mjs.map +1 -0
- package/dist/implementations/ZLPAPI.cjs +809 -0
- package/dist/implementations/ZLPAPI.cjs.map +1 -0
- package/dist/implementations/ZLPAPI.d.cts +121 -0
- package/dist/implementations/ZLPAPI.d.cts.map +1 -0
- package/dist/implementations/ZLPAPI.d.mts +121 -0
- package/dist/implementations/ZLPAPI.d.mts.map +1 -0
- package/dist/implementations/ZLPAPI.mjs +805 -0
- package/dist/implementations/ZLPAPI.mjs.map +1 -0
- package/dist/implementations/ZLPDataAPI.cjs +724 -0
- package/dist/implementations/ZLPDataAPI.cjs.map +1 -0
- package/dist/implementations/ZLPDataAPI.d.cts +83 -0
- package/dist/implementations/ZLPDataAPI.d.cts.map +1 -0
- package/dist/implementations/ZLPDataAPI.d.mts +83 -0
- package/dist/implementations/ZLPDataAPI.d.mts.map +1 -0
- package/dist/implementations/ZLPDataAPI.mjs +720 -0
- package/dist/implementations/ZLPDataAPI.mjs.map +1 -0
- package/dist/implementations/index.cjs +22 -0
- package/dist/implementations/index.cjs.map +1 -0
- package/dist/implementations/index.d.cts +11 -0
- package/dist/implementations/index.d.cts.map +1 -0
- package/dist/implementations/index.d.mts +11 -0
- package/dist/implementations/index.d.mts.map +1 -0
- package/dist/implementations/index.mjs +13 -0
- package/dist/implementations/index.mjs.map +1 -0
- package/dist/index.cjs +47 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +45 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +45 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +45 -0
- package/dist/index.mjs.map +1 -1
- package/dist/interfaces/base.cjs +8 -0
- package/dist/interfaces/base.cjs.map +1 -0
- package/dist/interfaces/base.d.cts +293 -0
- package/dist/interfaces/base.d.cts.map +1 -0
- package/dist/interfaces/base.d.mts +293 -0
- package/dist/interfaces/base.d.mts.map +1 -0
- package/dist/interfaces/base.mjs +6 -0
- package/dist/interfaces/base.mjs.map +1 -0
- package/dist/interfaces/index.cjs +29 -0
- package/dist/interfaces/index.cjs.map +1 -0
- package/dist/interfaces/index.d.cts +13 -0
- package/dist/interfaces/index.d.cts.map +1 -0
- package/dist/interfaces/index.d.mts +13 -0
- package/dist/interfaces/index.d.mts.map +1 -0
- package/dist/interfaces/index.mjs +13 -0
- package/dist/interfaces/index.mjs.map +1 -0
- package/dist/interfaces/slp.cjs +9 -0
- package/dist/interfaces/slp.cjs.map +1 -0
- package/dist/interfaces/slp.d.cts +115 -0
- package/dist/interfaces/slp.d.cts.map +1 -0
- package/dist/interfaces/slp.d.mts +115 -0
- package/dist/interfaces/slp.d.mts.map +1 -0
- package/dist/interfaces/slp.mjs +7 -0
- package/dist/interfaces/slp.mjs.map +1 -0
- package/dist/interfaces/usdz.cjs +7 -0
- package/dist/interfaces/usdz.cjs.map +1 -0
- package/dist/interfaces/usdz.d.cts +40 -0
- package/dist/interfaces/usdz.d.cts.map +1 -0
- package/dist/interfaces/usdz.d.mts +40 -0
- package/dist/interfaces/usdz.d.mts.map +1 -0
- package/dist/interfaces/usdz.mjs +6 -0
- package/dist/interfaces/usdz.mjs.map +1 -0
- package/dist/interfaces/zlp.cjs +7 -0
- package/dist/interfaces/zlp.cjs.map +1 -0
- package/dist/interfaces/zlp.d.cts +45 -0
- package/dist/interfaces/zlp.d.cts.map +1 -0
- package/dist/interfaces/zlp.d.mts +45 -0
- package/dist/interfaces/zlp.d.mts.map +1 -0
- package/dist/interfaces/zlp.mjs +6 -0
- package/dist/interfaces/zlp.mjs.map +1 -0
- package/dist/oracle.cjs +7 -35
- package/dist/oracle.cjs.map +1 -1
- package/dist/oracle.d.cts +3 -4
- package/dist/oracle.d.cts.map +1 -1
- package/dist/oracle.d.mts +3 -4
- package/dist/oracle.d.mts.map +1 -1
- package/dist/oracle.mjs +8 -32
- package/dist/oracle.mjs.map +1 -1
- package/package.json +1 -1
- package/src/abstract/BaseAPI.ts +429 -0
- package/src/abstract/BaseDataAPI.ts +204 -0
- package/src/abstract/index.ts +7 -0
- package/src/bcs.ts +45 -0
- package/src/consts/deployments-slp-mainnet.json +710 -0
- package/src/consts/deployments-slp-testnet.json +109 -0
- package/src/consts/deployments-usdz-mainnet.json +180 -0
- package/src/consts/deployments-usdz-testnet.json +98 -0
- package/src/consts/{deployments-mainnet.json → deployments-zlp-mainnet.json} +279 -43
- package/src/consts/index.ts +134 -39
- package/src/consts/price_id_to_object_id.mainnet.json +10 -2
- package/src/factory/SDKFactory.ts +282 -0
- package/src/implementations/SLPAPI.ts +1207 -0
- package/src/implementations/SLPDataAPI.ts +1188 -0
- package/src/implementations/USDZAPI.ts +715 -0
- package/src/implementations/USDZDataAPI.ts +826 -0
- package/src/implementations/ZLPAPI.ts +1130 -0
- package/src/implementations/ZLPDataAPI.ts +856 -0
- package/src/implementations/index.ts +14 -0
- package/src/index.ts +53 -0
- package/src/interfaces/base.ts +556 -0
- package/src/interfaces/index.ts +45 -0
- package/src/interfaces/slp.ts +156 -0
- package/src/interfaces/usdz.ts +71 -0
- package/src/interfaces/zlp.ts +96 -0
- package/src/oracle.ts +12 -42
- package/tsconfig.json +4 -2
- package/dist/consts/staking/deployments-mainnet.json +0 -12
- package/dist/consts/staking/deployments-testnet.json +0 -11
- package/src/consts/staking/deployments-mainnet.json +0 -12
- package/src/consts/staking/deployments-testnet.json +0 -11
- /package/dist/consts/{deployments-testnet.json → deployments-zlp-testnet.json} +0 -0
- /package/src/consts/{deployments-testnet.json → deployments-zlp-testnet.json} +0 -0
package/dist/oracle.cjs
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.OracleAPI = void 0;
|
|
7
|
-
exports.generatePriceIdToObjectIdJson = generatePriceIdToObjectIdJson;
|
|
8
4
|
const transactions_1 = require("@mysten/sui/transactions");
|
|
9
5
|
const pyth_sui_js_1 = require("@pythnetwork/pyth-sui-js");
|
|
10
6
|
const consts_1 = require("./consts/index.cjs");
|
|
11
|
-
const price_id_to_object_id_mainnet_json_1 = __importDefault(require("./consts/price_id_to_object_id.mainnet.json"));
|
|
12
7
|
const utils_1 = require("./utils.cjs");
|
|
13
8
|
class OracleAPI {
|
|
14
9
|
constructor(network, provider,
|
|
15
10
|
// todo 需要从配置文件中获取
|
|
16
|
-
connectionURL) {
|
|
11
|
+
connectionURL, lpToken = consts_1.LPToken.ZLP) {
|
|
17
12
|
this.priceCache = {};
|
|
18
13
|
this.network = network;
|
|
19
|
-
this.consts = (0, consts_1.getConsts)(network);
|
|
14
|
+
this.consts = (0, consts_1.getConsts)(network, lpToken);
|
|
20
15
|
this.connectionURL = connectionURL;
|
|
21
16
|
this.PythFeederToPriceId = (0, consts_1.getPythFeederToPriceId)(network);
|
|
22
17
|
this.PythFeederToId = (0, consts_1.getPythFeederToId)(network);
|
|
@@ -52,7 +47,7 @@ class OracleAPI {
|
|
|
52
47
|
const pythObjectIds = tokens.map(token => this.consts.pythFeeder.feeder[token]);
|
|
53
48
|
const priceFeedIds = pythObjectIds.map(pythObjectId => `0x${this.PythFeederToPriceId[pythObjectId]}`);
|
|
54
49
|
const price = await connection.getLatestPriceFeeds(priceFeedIds);
|
|
55
|
-
return price;
|
|
50
|
+
return price || [];
|
|
56
51
|
}
|
|
57
52
|
// memory leak
|
|
58
53
|
async subOraclePrices(tokens, callback) {
|
|
@@ -78,13 +73,15 @@ class OracleAPI {
|
|
|
78
73
|
tx_ = new transactions_1.Transaction();
|
|
79
74
|
}
|
|
80
75
|
// Remove redundant tokens first
|
|
81
|
-
const uniqueTokens =
|
|
76
|
+
const uniqueTokens = Array.from(new Set(tokens));
|
|
82
77
|
const connection = new pyth_sui_js_1.SuiPriceServiceConnection(this.connectionURL, {
|
|
83
78
|
priceFeedRequestConfig: {
|
|
84
79
|
binary: true,
|
|
85
80
|
},
|
|
86
81
|
});
|
|
87
|
-
|
|
82
|
+
let pythObjectIds = uniqueTokens.map(token => this.consts.pythFeeder.feeder[token]);
|
|
83
|
+
// remove dupe object ids. If any of the object ids are duplicates the call will fail
|
|
84
|
+
pythObjectIds = [...new Set(pythObjectIds)].filter(Boolean);
|
|
88
85
|
const needUpdateObjectIds = (await this.provider.multiGetObjects({
|
|
89
86
|
ids: pythObjectIds,
|
|
90
87
|
options: {
|
|
@@ -107,29 +104,4 @@ class OracleAPI {
|
|
|
107
104
|
}
|
|
108
105
|
}
|
|
109
106
|
exports.OracleAPI = OracleAPI;
|
|
110
|
-
async function generatePriceIdToObjectIdJson() {
|
|
111
|
-
const provider = (0, utils_1.createJsonRpcProvider)(consts_1.Network.MAINNET);
|
|
112
|
-
const wormholeStateId = '0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c';
|
|
113
|
-
const pythStateId = '0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8';
|
|
114
|
-
const client = new pyth_sui_js_1.SuiPythClient(provider, pythStateId, wormholeStateId);
|
|
115
|
-
const ret = {};
|
|
116
|
-
const entries = Object.keys(price_id_to_object_id_mainnet_json_1.default);
|
|
117
|
-
// 使用 Promise.all 并行处理所有请求
|
|
118
|
-
await Promise.all(entries.map(async (key) => {
|
|
119
|
-
try {
|
|
120
|
-
const pythObjectId = await client.getPriceFeedObjectId(key);
|
|
121
|
-
if (pythObjectId) {
|
|
122
|
-
ret[key] = pythObjectId;
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
console.warn(`Failed to get pythObjectId for key: ${key}`);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
console.error(`Error getting pythObjectId for key ${key}:`, error);
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
132
|
-
return ret;
|
|
133
|
-
}
|
|
134
|
-
// generatePriceIdToObjectIdJson()
|
|
135
107
|
//# sourceMappingURL=oracle.cjs.map
|
package/dist/oracle.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.cjs","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oracle.cjs","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
|
package/dist/oracle.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ import { Transaction } from "@mysten/sui/transactions";
|
|
|
3
3
|
import type { PriceFeed } from "@pythnetwork/pyth-sui-js";
|
|
4
4
|
import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
5
5
|
import type { IConsts } from "./consts/index.cjs";
|
|
6
|
-
import { Network } from "./consts/index.cjs";
|
|
6
|
+
import { Network, LPToken } from "./consts/index.cjs";
|
|
7
7
|
export declare class OracleAPI {
|
|
8
8
|
network: Network;
|
|
9
9
|
consts: IConsts;
|
|
@@ -13,12 +13,11 @@ export declare class OracleAPI {
|
|
|
13
13
|
provider: SuiClient;
|
|
14
14
|
client: SuiPythClient;
|
|
15
15
|
private priceCache;
|
|
16
|
-
constructor(network: Network, provider: SuiClient | null, connectionURL: string);
|
|
16
|
+
constructor(network: Network, provider: SuiClient | null, connectionURL: string, lpToken?: LPToken);
|
|
17
17
|
validateCache(): void;
|
|
18
18
|
getOraclePrice(tokenId: string): Promise<PriceFeed>;
|
|
19
|
-
getOraclePrices(tokens: string[]): Promise<PriceFeed[]
|
|
19
|
+
getOraclePrices(tokens: string[]): Promise<PriceFeed[]>;
|
|
20
20
|
subOraclePrices(tokens: string[], callback: (price: PriceFeed) => void): Promise<() => void>;
|
|
21
21
|
initOracleTxb(tokens: string[], tx?: Transaction): Promise<Transaction>;
|
|
22
22
|
}
|
|
23
|
-
export declare function generatePriceIdToObjectIdJson(): Promise<any>;
|
|
24
23
|
//# sourceMappingURL=oracle.d.cts.map
|
package/dist/oracle.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.cts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAAgC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAgC;AACzD,OAAO,EAA6B,aAAa,EAAE,iCAAgC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,2BAAgB;AACvC,OAAO,EAAgF,OAAO,EAAE,2BAAgB;
|
|
1
|
+
{"version":3,"file":"oracle.d.cts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAAgC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAgC;AACzD,OAAO,EAA6B,aAAa,EAAE,iCAAgC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,2BAAgB;AACvC,OAAO,EAAgF,OAAO,EAAE,OAAO,EAAE,2BAAgB;AAGzH,qBAAa,SAAS;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;IAErB,OAAO,CAAC,UAAU,CAAgC;gBAGhD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,GAAG,IAAI,EAE1B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,OAAqB;IAWhC,aAAa;IASP,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAanD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAavD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAmB5F,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAwC9E"}
|
package/dist/oracle.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ import { Transaction } from "@mysten/sui/transactions";
|
|
|
3
3
|
import type { PriceFeed } from "@pythnetwork/pyth-sui-js";
|
|
4
4
|
import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
5
5
|
import type { IConsts } from "./consts/index.mjs";
|
|
6
|
-
import { Network } from "./consts/index.mjs";
|
|
6
|
+
import { Network, LPToken } from "./consts/index.mjs";
|
|
7
7
|
export declare class OracleAPI {
|
|
8
8
|
network: Network;
|
|
9
9
|
consts: IConsts;
|
|
@@ -13,12 +13,11 @@ export declare class OracleAPI {
|
|
|
13
13
|
provider: SuiClient;
|
|
14
14
|
client: SuiPythClient;
|
|
15
15
|
private priceCache;
|
|
16
|
-
constructor(network: Network, provider: SuiClient | null, connectionURL: string);
|
|
16
|
+
constructor(network: Network, provider: SuiClient | null, connectionURL: string, lpToken?: LPToken);
|
|
17
17
|
validateCache(): void;
|
|
18
18
|
getOraclePrice(tokenId: string): Promise<PriceFeed>;
|
|
19
|
-
getOraclePrices(tokens: string[]): Promise<PriceFeed[]
|
|
19
|
+
getOraclePrices(tokens: string[]): Promise<PriceFeed[]>;
|
|
20
20
|
subOraclePrices(tokens: string[], callback: (price: PriceFeed) => void): Promise<() => void>;
|
|
21
21
|
initOracleTxb(tokens: string[], tx?: Transaction): Promise<Transaction>;
|
|
22
22
|
}
|
|
23
|
-
export declare function generatePriceIdToObjectIdJson(): Promise<any>;
|
|
24
23
|
//# sourceMappingURL=oracle.d.mts.map
|
package/dist/oracle.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.mts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAAgC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAgC;AACzD,OAAO,EAA6B,aAAa,EAAE,iCAAgC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,2BAAgB;AACvC,OAAO,EAAgF,OAAO,EAAE,2BAAgB;
|
|
1
|
+
{"version":3,"file":"oracle.d.mts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAAgC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAgC;AACzD,OAAO,EAA6B,aAAa,EAAE,iCAAgC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,2BAAgB;AACvC,OAAO,EAAgF,OAAO,EAAE,OAAO,EAAE,2BAAgB;AAGzH,qBAAa,SAAS;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;IAErB,OAAO,CAAC,UAAU,CAAgC;gBAGhD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,GAAG,IAAI,EAE1B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,OAAqB;IAWhC,aAAa;IASP,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAanD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAavD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAmB5F,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAwC9E"}
|
package/dist/oracle.mjs
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { Transaction } from "@mysten/sui/transactions";
|
|
2
2
|
import { SuiPriceServiceConnection, SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
3
|
-
import { getConsts, getPriceIdToPythFeeder, getPythFeederToId, getPythFeederToPriceId, Network } from "./consts/index.mjs";
|
|
4
|
-
import jsonFile from "./consts/price_id_to_object_id.mainnet.json" with { type: "json" };
|
|
3
|
+
import { getConsts, getPriceIdToPythFeeder, getPythFeederToId, getPythFeederToPriceId, Network, LPToken } from "./consts/index.mjs";
|
|
5
4
|
import { createJsonRpcProvider } from "./utils.mjs";
|
|
6
5
|
export class OracleAPI {
|
|
7
6
|
constructor(network, provider,
|
|
8
7
|
// todo 需要从配置文件中获取
|
|
9
|
-
connectionURL) {
|
|
8
|
+
connectionURL, lpToken = LPToken.ZLP) {
|
|
10
9
|
this.priceCache = {};
|
|
11
10
|
this.network = network;
|
|
12
|
-
this.consts = getConsts(network);
|
|
11
|
+
this.consts = getConsts(network, lpToken);
|
|
13
12
|
this.connectionURL = connectionURL;
|
|
14
13
|
this.PythFeederToPriceId = getPythFeederToPriceId(network);
|
|
15
14
|
this.PythFeederToId = getPythFeederToId(network);
|
|
@@ -45,7 +44,7 @@ export class OracleAPI {
|
|
|
45
44
|
const pythObjectIds = tokens.map(token => this.consts.pythFeeder.feeder[token]);
|
|
46
45
|
const priceFeedIds = pythObjectIds.map(pythObjectId => `0x${this.PythFeederToPriceId[pythObjectId]}`);
|
|
47
46
|
const price = await connection.getLatestPriceFeeds(priceFeedIds);
|
|
48
|
-
return price;
|
|
47
|
+
return price || [];
|
|
49
48
|
}
|
|
50
49
|
// memory leak
|
|
51
50
|
async subOraclePrices(tokens, callback) {
|
|
@@ -71,13 +70,15 @@ export class OracleAPI {
|
|
|
71
70
|
tx_ = new Transaction();
|
|
72
71
|
}
|
|
73
72
|
// Remove redundant tokens first
|
|
74
|
-
const uniqueTokens =
|
|
73
|
+
const uniqueTokens = Array.from(new Set(tokens));
|
|
75
74
|
const connection = new SuiPriceServiceConnection(this.connectionURL, {
|
|
76
75
|
priceFeedRequestConfig: {
|
|
77
76
|
binary: true,
|
|
78
77
|
},
|
|
79
78
|
});
|
|
80
|
-
|
|
79
|
+
let pythObjectIds = uniqueTokens.map(token => this.consts.pythFeeder.feeder[token]);
|
|
80
|
+
// remove dupe object ids. If any of the object ids are duplicates the call will fail
|
|
81
|
+
pythObjectIds = [...new Set(pythObjectIds)].filter(Boolean);
|
|
81
82
|
const needUpdateObjectIds = (await this.provider.multiGetObjects({
|
|
82
83
|
ids: pythObjectIds,
|
|
83
84
|
options: {
|
|
@@ -99,29 +100,4 @@ export class OracleAPI {
|
|
|
99
100
|
return tx_;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
|
-
export async function generatePriceIdToObjectIdJson() {
|
|
103
|
-
const provider = createJsonRpcProvider(Network.MAINNET);
|
|
104
|
-
const wormholeStateId = '0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c';
|
|
105
|
-
const pythStateId = '0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8';
|
|
106
|
-
const client = new SuiPythClient(provider, pythStateId, wormholeStateId);
|
|
107
|
-
const ret = {};
|
|
108
|
-
const entries = Object.keys(jsonFile);
|
|
109
|
-
// 使用 Promise.all 并行处理所有请求
|
|
110
|
-
await Promise.all(entries.map(async (key) => {
|
|
111
|
-
try {
|
|
112
|
-
const pythObjectId = await client.getPriceFeedObjectId(key);
|
|
113
|
-
if (pythObjectId) {
|
|
114
|
-
ret[key] = pythObjectId;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
console.warn(`Failed to get pythObjectId for key: ${key}`);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
console.error(`Error getting pythObjectId for key ${key}:`, error);
|
|
122
|
-
}
|
|
123
|
-
}));
|
|
124
|
-
return ret;
|
|
125
|
-
}
|
|
126
|
-
// generatePriceIdToObjectIdJson()
|
|
127
103
|
//# sourceMappingURL=oracle.mjs.map
|
package/dist/oracle.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.mjs","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iCAAgC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,iCAAgC;AAGnF,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oracle.mjs","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
|