@zofai/zo-sdk 0.2.14 → 0.2.15

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.
Files changed (108) hide show
  1. package/dist/abstract/BaseDataAPI.cjs +1 -1
  2. package/dist/abstract/BaseDataAPI.cjs.map +1 -1
  3. package/dist/abstract/BaseDataAPI.mjs +1 -1
  4. package/dist/abstract/BaseDataAPI.mjs.map +1 -1
  5. package/dist/consts/deployments-usdz-mainnet.json +1 -1
  6. package/dist/consts/deployments-zo-oracle-mainnet.json +329 -0
  7. package/dist/consts/index.cjs +35 -1
  8. package/dist/consts/index.cjs.map +1 -1
  9. package/dist/consts/index.d.cts +45 -0
  10. package/dist/consts/index.d.cts.map +1 -1
  11. package/dist/consts/index.d.mts +45 -0
  12. package/dist/consts/index.d.mts.map +1 -1
  13. package/dist/consts/index.mjs +31 -0
  14. package/dist/consts/index.mjs.map +1 -1
  15. package/dist/data.cjs +1 -1
  16. package/dist/data.cjs.map +1 -1
  17. package/dist/data.mjs +1 -1
  18. package/dist/data.mjs.map +1 -1
  19. package/dist/implementations/USDZAPI.cjs +426 -78
  20. package/dist/implementations/USDZAPI.cjs.map +1 -1
  21. package/dist/implementations/USDZAPI.d.cts +54 -0
  22. package/dist/implementations/USDZAPI.d.cts.map +1 -1
  23. package/dist/implementations/USDZAPI.d.mts +54 -0
  24. package/dist/implementations/USDZAPI.d.mts.map +1 -1
  25. package/dist/implementations/USDZAPI.mjs +427 -79
  26. package/dist/implementations/USDZAPI.mjs.map +1 -1
  27. package/dist/implementations/USDZDataAPI.cjs +38 -0
  28. package/dist/implementations/USDZDataAPI.cjs.map +1 -1
  29. package/dist/implementations/USDZDataAPI.d.cts +16 -0
  30. package/dist/implementations/USDZDataAPI.d.cts.map +1 -1
  31. package/dist/implementations/USDZDataAPI.d.mts +16 -0
  32. package/dist/implementations/USDZDataAPI.d.mts.map +1 -1
  33. package/dist/implementations/USDZDataAPI.mjs +38 -0
  34. package/dist/implementations/USDZDataAPI.mjs.map +1 -1
  35. package/dist/index.cjs +3 -0
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.cts +3 -0
  38. package/dist/index.d.cts.map +1 -1
  39. package/dist/index.d.mts +3 -0
  40. package/dist/index.d.mts.map +1 -1
  41. package/dist/index.mjs +3 -0
  42. package/dist/index.mjs.map +1 -1
  43. package/dist/interfaces/base.d.cts +19 -1
  44. package/dist/interfaces/base.d.cts.map +1 -1
  45. package/dist/interfaces/base.d.mts +19 -1
  46. package/dist/interfaces/base.d.mts.map +1 -1
  47. package/dist/interfaces/usdz.d.cts +17 -0
  48. package/dist/interfaces/usdz.d.cts.map +1 -1
  49. package/dist/interfaces/usdz.d.mts +17 -0
  50. package/dist/interfaces/usdz.d.mts.map +1 -1
  51. package/dist/oracle.cjs +119 -1
  52. package/dist/oracle.cjs.map +1 -1
  53. package/dist/oracle.d.cts +57 -1
  54. package/dist/oracle.d.cts.map +1 -1
  55. package/dist/oracle.d.mts +57 -1
  56. package/dist/oracle.d.mts.map +1 -1
  57. package/dist/oracle.mjs +120 -2
  58. package/dist/oracle.mjs.map +1 -1
  59. package/dist/oraclePro.cjs +214 -0
  60. package/dist/oraclePro.cjs.map +1 -0
  61. package/dist/oraclePro.d.cts +92 -0
  62. package/dist/oraclePro.d.cts.map +1 -0
  63. package/dist/oraclePro.d.mts +92 -0
  64. package/dist/oraclePro.d.mts.map +1 -0
  65. package/dist/oraclePro.mjs +196 -0
  66. package/dist/oraclePro.mjs.map +1 -0
  67. package/dist/pythProClient.cjs +277 -0
  68. package/dist/pythProClient.cjs.map +1 -0
  69. package/dist/pythProClient.d.cts +143 -0
  70. package/dist/pythProClient.d.cts.map +1 -0
  71. package/dist/pythProClient.d.mts +143 -0
  72. package/dist/pythProClient.d.mts.map +1 -0
  73. package/dist/pythProClient.mjs +269 -0
  74. package/dist/pythProClient.mjs.map +1 -0
  75. package/dist/storkClient.cjs +217 -0
  76. package/dist/storkClient.cjs.map +1 -0
  77. package/dist/storkClient.d.cts +90 -0
  78. package/dist/storkClient.d.cts.map +1 -0
  79. package/dist/storkClient.d.mts +90 -0
  80. package/dist/storkClient.d.mts.map +1 -0
  81. package/dist/storkClient.mjs +208 -0
  82. package/dist/storkClient.mjs.map +1 -0
  83. package/dist/storkOracle.cjs +61 -0
  84. package/dist/storkOracle.cjs.map +1 -0
  85. package/dist/storkOracle.d.cts +21 -0
  86. package/dist/storkOracle.d.cts.map +1 -0
  87. package/dist/storkOracle.d.mts +21 -0
  88. package/dist/storkOracle.d.mts.map +1 -0
  89. package/dist/storkOracle.mjs +56 -0
  90. package/dist/storkOracle.mjs.map +1 -0
  91. package/package.json +1 -1
  92. package/src/abstract/BaseDataAPI.ts +1 -1
  93. package/src/consts/deployments-usdz-mainnet.json +1 -1
  94. package/src/consts/deployments-zo-oracle-mainnet.json +329 -0
  95. package/src/consts/index.ts +80 -0
  96. package/src/data.ts +1 -1
  97. package/src/implementations/USDZAPI.ts +731 -101
  98. package/src/implementations/USDZDataAPI.ts +42 -0
  99. package/src/index.ts +3 -0
  100. package/src/interfaces/base.ts +54 -1
  101. package/src/interfaces/usdz.ts +125 -0
  102. package/src/oracle.ts +222 -1
  103. package/src/oraclePro.ts +312 -0
  104. package/src/pythProClient.ts +406 -0
  105. package/src/storkClient.ts +328 -0
  106. package/src/storkOracle.ts +82 -0
  107. package/tests/pythProClient.test.ts +155 -0
  108. package/tests/storkClient.test.ts +316 -0
package/dist/oracle.mjs CHANGED
@@ -1,17 +1,22 @@
1
1
  import { Transaction } from "@mysten/sui/transactions";
2
2
  import { SuiPriceServiceConnection, SuiPythClient } from "@pythnetwork/pyth-sui-js";
3
3
  import { resolveSpendableSuiCoin } from "./coins.mjs";
4
- import { getConsts, getPriceIdToPythFeeder, getPythFeederToId, getPythFeederToPriceId, getSharedConfig, LPToken } from "./consts/index.mjs";
4
+ import { buildOracleProConfig, DEFAULT_API_ENDPOINT, getConsts, getPriceIdToPythFeeder, getPythFeederToId, getPythFeederToPriceId, getSharedConfig, getZoOracleConfig, LPToken } from "./consts/index.mjs";
5
+ import { buildOracleInputs, buildStorkAssetIdMap, fetchPythProUpdateBytes, parseAndVerifyPythProUpdate, resolveLazerFeedIds, resolveStorkAssetsForTokens } from "./oraclePro.mjs";
6
+ import { getLatestPythProPrices, PythProStreamClient } from "./pythProClient.mjs";
7
+ import { fetchStorkUpdateDataFromKronos } from "./storkClient.mjs";
8
+ import { appendStorkUpdatesToTransaction, estimateStorkUpdateFeeMist } from "./storkOracle.mjs";
5
9
  import { createJsonRpcProvider } from "./utils.mjs";
6
10
  export class OracleAPI {
7
11
  constructor(network, provider,
8
12
  // todo 需要从配置文件中获取
9
- connectionURL, lpToken = LPToken.ZLP) {
13
+ connectionURL, lpToken = LPToken.ZLP, apiEndpoint = DEFAULT_API_ENDPOINT) {
10
14
  this.priceCache = {};
11
15
  this.network = network;
12
16
  this.consts = getConsts(network, lpToken);
13
17
  this.sharedConfig = getSharedConfig(network);
14
18
  this.connectionURL = connectionURL;
19
+ this.apiEndpoint = apiEndpoint;
15
20
  this.PythFeederToPriceId = getPythFeederToPriceId(network);
16
21
  this.PythFeederToId = getPythFeederToId(network);
17
22
  this.provider = provider || createJsonRpcProvider(network);
@@ -115,5 +120,118 @@ export class OracleAPI {
115
120
  async getBaseUpdateFee() {
116
121
  return await this.client.getBaseUpdateFee();
117
122
  }
123
+ /**
124
+ * Resolve SDK token ids (e.g. `sui`, `btc`) to Pyth Lazer numeric feed ids.
125
+ */
126
+ resolveLazerFeedIdsForTokens(tokens) {
127
+ const zoOracle = getZoOracleConfig(this.network);
128
+ return resolveLazerFeedIds(zoOracle, this.consts.coins, tokens, this.network, this.consts.pythFeeder.feeder);
129
+ }
130
+ /** Map SDK token ids to kronos Stork asset ids (e.g. `BTCUSD`). */
131
+ resolveStorkAssetsForTokens(tokens) {
132
+ const zoOracle = getZoOracleConfig(this.network);
133
+ return resolveStorkAssetsForTokens(zoOracle, this.consts.coins, tokens);
134
+ }
135
+ /** Fetch Stork on-chain update payloads via kronos REST. */
136
+ async fetchStorkUpdateDataForTokens(tokens) {
137
+ const zoOracle = getZoOracleConfig(this.network);
138
+ const assets = this.resolveStorkAssetsForTokens(tokens);
139
+ if (assets.length === 0) {
140
+ return [];
141
+ }
142
+ return await fetchStorkUpdateDataFromKronos(this.resolveKronosUrl(), assets, buildStorkAssetIdMap(zoOracle));
143
+ }
144
+ /** Estimated Stork update fee in MIST for the given SDK tokens. */
145
+ estimateStorkUpdateFeeForTokens(tokens) {
146
+ return estimateStorkUpdateFeeMist(this.resolveStorkAssetsForTokens(tokens).length);
147
+ }
148
+ /** Kronos REST base URL used for Pyth Pro / Stork (`options.kronosUrl` overrides per call). */
149
+ resolveKronosUrl(kronosUrl) {
150
+ return kronosUrl ?? this.apiEndpoint;
151
+ }
152
+ /**
153
+ * V3 oracle PTB prelude: Stork on-chain updates → Pyth Pro verify → OracleInputs.
154
+ * Order: (1) Stork update, (2) parse_and_verify_le_ecdsa_update_v2, (3) ready for market op.
155
+ */
156
+ async initV3OracleTxb(tokens, tx, options) {
157
+ const tx_ = tx ?? new Transaction();
158
+ const config = this.getOracleProConfig();
159
+ if (!options?.skipStork) {
160
+ const storkAssets = this.resolveStorkAssetsForTokens(tokens);
161
+ if (storkAssets.length > 0) {
162
+ let storkUpdates = options?.storkUpdateData;
163
+ if (!storkUpdates) {
164
+ const zoOracle = getZoOracleConfig(this.network);
165
+ storkUpdates = await fetchStorkUpdateDataFromKronos(this.resolveKronosUrl(options?.kronosUrl), storkAssets, buildStorkAssetIdMap(zoOracle));
166
+ }
167
+ appendStorkUpdatesToTransaction(tx_, config, storkUpdates, {
168
+ feeSource: options?.storkFeeSource,
169
+ });
170
+ }
171
+ }
172
+ let rawBytes = options?.rawUpdateBytes;
173
+ if (!rawBytes) {
174
+ rawBytes = await this.fetchPythProUpdateBytesForTokens(tokens, options);
175
+ }
176
+ const pythProUpdate = parseAndVerifyPythProUpdate(tx_, config, rawBytes);
177
+ const oracle = buildOracleInputs(tx_, config, pythProUpdate);
178
+ return { tx: tx_, oracle };
179
+ }
180
+ /**
181
+ * Latest Pyth Pro prices via kronos REST (`/pyth-pro/latest-price`).
182
+ */
183
+ async getLatestPythProPricesForTokens(tokens, options) {
184
+ const priceFeedIds = this.resolveLazerFeedIdsForTokens(tokens);
185
+ return getLatestPythProPrices(this.resolveKronosUrl(options?.kronosUrl), {
186
+ priceFeedIds,
187
+ channel: options?.channel,
188
+ includeEmaPrice: options?.includeEmaPrice,
189
+ includeUpdateBytes: options?.includeUpdateBytes,
190
+ });
191
+ }
192
+ /** WebSocket client for kronos `/pyth-pro/stream`. */
193
+ createPythProStreamClient(kronosUrl) {
194
+ return new PythProStreamClient(this.resolveKronosUrl(kronosUrl));
195
+ }
196
+ /**
197
+ * Subscribe to live Pyth Pro prices for SDK tokens via kronos WebSocket.
198
+ * Returns unsubscribe (closes subscription; disconnect the client separately if unused).
199
+ */
200
+ async subPythProPricesForTokens(tokens, onUpdate, options, subscriptionId = 1) {
201
+ const client = this.createPythProStreamClient();
202
+ const priceFeedIds = this.resolveLazerFeedIdsForTokens(tokens);
203
+ await client.connect();
204
+ return client.subscribe({
205
+ subscriptionId,
206
+ priceFeedIds,
207
+ ...options,
208
+ }, onUpdate);
209
+ }
210
+ /**
211
+ * Fetch leEcdsa update bytes covering all tokens' Pyth Lazer feed ids via kronos REST.
212
+ */
213
+ async fetchPythProUpdateBytesForTokens(tokens, options) {
214
+ const config = this.getOracleProConfig();
215
+ const feedIds = this.resolveLazerFeedIdsForTokens(tokens);
216
+ return await fetchPythProUpdateBytes(this.resolveKronosUrl(options?.kronosUrl), feedIds, {
217
+ channel: options?.channel ?? config.lazerChannel,
218
+ includeEmaPrice: options?.includeEmaPrice,
219
+ });
220
+ }
221
+ getOracleProConfig() {
222
+ return buildOracleProConfig(getZoOracleConfig(this.network));
223
+ }
224
+ /**
225
+ * PTB step for Pyth Pro paths: Stork updates (when configured) + parse_and_verify_le_ecdsa_update_v2.
226
+ * @deprecated Alias for {@link initV3OracleTxb}.
227
+ */
228
+ async initPythProOracleTxb(tokens, tx, options) {
229
+ return this.initV3OracleTxb(tokens, tx, options);
230
+ }
231
+ /** Re-use an already-verified Update object (composed PTBs). */
232
+ buildOracleInputsFromUpdate(tx, pythProUpdate) {
233
+ const config = this.getOracleProConfig();
234
+ return buildOracleInputs(tx, config, pythProUpdate);
235
+ }
118
236
  }
119
237
  //# sourceMappingURL=oracle.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.mjs","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
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;AAEnF,OAAO,EAAE,uBAAuB,EAAE,oBAAe;AAEjD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,OAAO,EACR,2BAAgB;AAMjB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC5B,wBAAmB;AAQpB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACpB,4BAAuB;AAExB,OAAO,EAAE,8BAA8B,EAAE,0BAAqB;AAC9D,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC3B,0BAAqB;AAEtB,OAAO,EAAE,qBAAqB,EAAE,oBAAe;AAyB/C,MAAM,OAAO,SAAS;IAcpB,YACE,OAAgB,EAChB,QAA0B;IAC1B,kBAAkB;IAClB,aAAqB,EACrB,UAAmB,OAAO,CAAC,GAAG,EAC9B,cAAsB,oBAAoB;QARpC,eAAU,GAA8B,EAAE,CAAA;QAUhD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAC7B,IAAI,CAAC,QAA0D,EAC/D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CACtC,CAAA;IACH,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAgB;QACpC,MAAM,UAAU,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE;YACnE,sBAAsB,EAAE;gBACtB,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAA;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/E,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrG,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;QAChE,OAAO,KAAK,IAAI,EAAE,CAAA;IACpB,CAAC;IAED,cAAc;IACd,KAAK,CAAC,eAAe,CAAC,MAAgB,EAAE,QAAoC;QAC1E,MAAM,UAAU,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE;YACnE,sBAAsB,EAAE;gBACtB,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAA;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/E,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrG,MAAM,UAAU,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC,KAAU,EAAE,EAAE;YACtE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;YACjC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAgB;QACzC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAChD,IAAI,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACnF,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAClD,GAAG,EAAE,aAAa;YAClB,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/B,CAAC,CAAA;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,OAAe,CAAA,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;YACrH,UAAU,CAAC,IAAI,EAAE,QAAQ;SAC1B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAgB,EAChB,EAAgB,EAChB,WAAqB,EACrB,cAA0C;QAE1C,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,WAAW,EAAE,CAAA;QAEnC,MAAM,UAAU,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE;YACnE,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACzC,CAAC,CAAA;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEnE,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,WAAW,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,mBAAmB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;gBACrF,MAAM,aAAa,GAAG,MAAM,uBAAuB,CACjD,GAAG,EACH,IAAI,CAAC,QAAQ,EACb,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,mBAAoB,CACpC,CAAA;gBACD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAA;YACnC,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;QACpB,CAAC;QAED,MAAM,YAAY,GAAG,mBAAmB;aACrC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;aAC3D,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAErB,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;QAE9E,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;YAC/F,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YACpE,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,cAAc,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;YAEtE,MAAM,aAAa,GAAG,MAAM,uBAAuB,CACjD,GAAG,EACH,IAAI,CAAC,QAAQ,EACb,cAAc,CAAC,MAAM,EACrB,QAAQ,CACT,CAAA;YAED,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CACpC,aAAa,EACb,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CACpD,CAAA;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;YAEhG,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAA;QACnC,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,4BAA4B,CAAC,MAAgB;QAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,mBAAmB,CACxB,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAC9B,CAAA;IACH,CAAC;IAED,mEAAmE;IACnE,2BAA2B,CAAC,MAAgB;QAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACzE,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,6BAA6B,CAAC,MAAgB;QAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,MAAM,8BAA8B,CACzC,IAAI,CAAC,gBAAgB,EAAE,EACvB,MAAM,EACN,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,CAAA;IACH,CAAC;IAED,mEAAmE;IACnE,+BAA+B,CAAC,MAAgB;QAC9C,OAAO,0BAA0B,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;IACpF,CAAC;IAED,+FAA+F;IACrF,gBAAgB,CAAC,SAAkB;QAC3C,OAAO,SAAS,IAAI,IAAI,CAAC,WAAW,CAAA;IACtC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACnB,MAAgB,EAChB,EAAgB,EAChB,OAAmC;QAEnC,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,WAAW,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAExC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;YAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,YAAY,GAAG,OAAO,EAAE,eAAe,CAAA;gBAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAChD,YAAY,GAAG,MAAM,8BAA8B,CACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,EACzC,WAAW,EACX,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,CAAA;gBACH,CAAC;gBACD,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE;oBACzD,SAAS,EAAE,OAAO,EAAE,cAAc;iBACnC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,GAAG,OAAO,EAAE,cAAc,CAAA;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,aAAa,GAAG,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACxE,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;QAE5D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,+BAA+B,CACnC,MAAgB,EAChB,OAA8D;QAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA;QAC9D,OAAO,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;YACvE,YAAY;YACZ,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,eAAe,EAAE,OAAO,EAAE,eAAe;YACzC,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;SAChD,CAAC,CAAA;IACJ,CAAC;IAED,sDAAsD;IACtD,yBAAyB,CAAC,SAAkB;QAC1C,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAC7B,MAAgB,EAChB,QAA+C,EAC/C,OAA6E,EAC7E,cAAc,GAAG,CAAC;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA;QAC9D,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;QACtB,OAAO,MAAM,CAAC,SAAS,CACrB;YACE,cAAc;YACd,YAAY;YACZ,GAAG,OAAO;SACX,EACD,QAAQ,CACT,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gCAAgC,CACpC,MAAgB,EAChB,OAAoC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA;QACzD,OAAO,MAAM,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE;YACvF,OAAO,EAAE,OAAO,EAAE,OAAO,IAAK,MAAM,CAAC,YAA+B;YACpE,eAAe,EAAE,OAAO,EAAE,eAAe;SAC1C,CAAC,CAAA;IACJ,CAAC;IAES,kBAAkB;QAC1B,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAgB,EAChB,EAAgB,EAChB,OAAmC;QAEnC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,gEAAgE;IAChE,2BAA2B,CAAC,EAAe,EAAE,aAAwC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACxC,OAAO,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IACrD,CAAC;CACF"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeCoinType = normalizeCoinType;
4
+ exports.requireOracleProConfig = requireOracleProConfig;
5
+ exports.buildCoinModuleToLazerFeedId = buildCoinModuleToLazerFeedId;
6
+ exports.resolveLazerFeedIds = resolveLazerFeedIds;
7
+ exports.buildStorkAssetIdMap = buildStorkAssetIdMap;
8
+ exports.resolveStorkAssetsForTokens = resolveStorkAssetsForTokens;
9
+ exports.toUpdateBytes = toUpdateBytes;
10
+ exports.parseAndVerifyPythProUpdate = parseAndVerifyPythProUpdate;
11
+ exports.buildOracleInputs = buildOracleInputs;
12
+ exports.oracleArgsStandard = oracleArgsStandard;
13
+ exports.oracleArgsWithClock = oracleArgsWithClock;
14
+ exports.oracleArgsAlt = oracleArgsAlt;
15
+ exports.buildOracleInputsAlt = buildOracleInputsAlt;
16
+ exports.fetchPythProUpdateBytes = fetchPythProUpdateBytes;
17
+ exports.valuateVaultsV2 = valuateVaultsV2;
18
+ exports.valuateSymbolsV2 = valuateSymbolsV2;
19
+ const utils_1 = require("@mysten/sui/utils");
20
+ const consts_1 = require("./consts/index.cjs");
21
+ const pythProClient_1 = require("./pythProClient.cjs");
22
+ const storkClient_1 = require("./storkClient.cjs");
23
+ const utils_2 = require("./utils.cjs");
24
+ /** Normalize coin type strings for zo_oracle ↔ LP deployment matching. */
25
+ function normalizeCoinType(coinType) {
26
+ const parts = coinType.split('::');
27
+ if (parts.length < 2 || !parts[0].startsWith('0x')) {
28
+ return coinType.toLowerCase();
29
+ }
30
+ const hex = parts[0].slice(2).replace(/^0+/, '') || '0';
31
+ return `0x${hex}::${parts.slice(1).join('::')}`.toLowerCase();
32
+ }
33
+ function requireOracleProConfig(network) {
34
+ return (0, consts_1.buildOracleProConfig)((0, consts_1.getZoOracleConfig)(network));
35
+ }
36
+ /**
37
+ * Build coin module -> Lazer feed id using zo_oracle symbol configs + Hermes price id map.
38
+ */
39
+ function buildCoinModuleToLazerFeedId(pythLazer, zoOracle, network) {
40
+ const pythFeederToPriceId = (0, consts_1.getPythFeederToPriceId)(network);
41
+ const map = new Map();
42
+ for (const config of Object.values(zoOracle.symbolConfigs)) {
43
+ const priceId = pythFeederToPriceId[config.pythFeederId];
44
+ if (!priceId) {
45
+ continue;
46
+ }
47
+ const lazerId = pythLazer.feedIds[priceId];
48
+ if (lazerId === undefined) {
49
+ continue;
50
+ }
51
+ map.set(normalizeCoinType(config.coinType), lazerId);
52
+ }
53
+ return map;
54
+ }
55
+ function resolveLazerFeedIds(zoOracle, coins, tokens, network, legacyFeeders) {
56
+ const { pythLazer } = zoOracle;
57
+ const coinModuleMap = buildCoinModuleToLazerFeedId(pythLazer, zoOracle, network);
58
+ const feederToPriceId = (0, consts_1.getPythFeederToPriceId)(network);
59
+ const ids = new Set();
60
+ for (const token of tokens) {
61
+ const module = coins[token]?.module;
62
+ if (!module) {
63
+ throw new Error(`Unknown token: ${token}`);
64
+ }
65
+ let lazerId = coinModuleMap.get(normalizeCoinType(module));
66
+ if (lazerId === undefined && legacyFeeders?.[token]) {
67
+ const priceId = feederToPriceId[legacyFeeders[token]];
68
+ if (priceId) {
69
+ lazerId = pythLazer.feedIds[priceId];
70
+ }
71
+ }
72
+ if (lazerId === undefined) {
73
+ throw new Error(`No Pyth Lazer feed id for token "${token}" (${module})`);
74
+ }
75
+ ids.add(lazerId);
76
+ }
77
+ return [...ids];
78
+ }
79
+ /** Map Stork asset symbol (e.g. `BTCUSD`) → 32-byte on-chain feeder id bytes. */
80
+ function buildStorkAssetIdMap(zoOracle) {
81
+ const map = new Map();
82
+ for (const [symbolKey, config] of Object.entries(zoOracle.symbolConfigs)) {
83
+ if (!config.storkFeederId) {
84
+ continue;
85
+ }
86
+ const asset = symbolKey.replace('/', '');
87
+ map.set(asset, (0, storkClient_1.hexToBytes)(config.storkFeederId));
88
+ }
89
+ return map;
90
+ }
91
+ /** Map SDK token id → kronos Stork asset id (e.g. `btc` → `BTCUSD`). */
92
+ function resolveStorkAssetsForTokens(zoOracle, coins, tokens) {
93
+ const moduleToAsset = new Map();
94
+ for (const [symbolKey, config] of Object.entries(zoOracle.symbolConfigs)) {
95
+ if (!config.storkFeederId) {
96
+ continue;
97
+ }
98
+ moduleToAsset.set(normalizeCoinType(config.coinType), symbolKey.replace('/', ''));
99
+ }
100
+ const assets = new Set();
101
+ for (const token of tokens) {
102
+ const module = coins[token]?.module;
103
+ if (!module) {
104
+ continue;
105
+ }
106
+ const asset = moduleToAsset.get(normalizeCoinType(module));
107
+ if (asset) {
108
+ assets.add(asset);
109
+ }
110
+ }
111
+ return [...assets];
112
+ }
113
+ function toUpdateBytes(raw) {
114
+ return raw instanceof Uint8Array ? Array.from(raw) : raw;
115
+ }
116
+ /**
117
+ * PTB step 0: verify a Pyth Pro leEcdsa update on-chain.
118
+ * Returns the verified `pyth_lazer::update_v2::Update` object.
119
+ */
120
+ function parseAndVerifyPythProUpdate(tx, config, rawUpdateBytes) {
121
+ const [pythProUpdate] = tx.moveCall({
122
+ target: `${config.pythLazer.package}::pyth_lazer::parse_and_verify_le_ecdsa_update_v2`,
123
+ arguments: [
124
+ tx.object(config.pythLazer.state),
125
+ tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
126
+ tx.pure.vector('u8', toUpdateBytes(rawUpdateBytes)),
127
+ ],
128
+ });
129
+ return pythProUpdate;
130
+ }
131
+ function buildOracleInputs(tx, config, pythProUpdate) {
132
+ return {
133
+ pythProUpdate,
134
+ storkState: tx.object(config.storkState),
135
+ oracleRegistry: tx.object(config.oracleRegistry),
136
+ clock: tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
137
+ };
138
+ }
139
+ /** Pyth Pro + Stork objects: `[pythProUpdate, storkState, oracleRegistry]`. */
140
+ function oracleArgsStandard(oracle) {
141
+ return [oracle.pythProUpdate, oracle.storkState, oracle.oracleRegistry];
142
+ }
143
+ /** `[pythProUpdate, storkState, oracleRegistry, clock]` — for public fns that take clock after oracle args. */
144
+ function oracleArgsWithClock(oracle) {
145
+ return [...oracleArgsStandard(oracle), oracle.clock];
146
+ }
147
+ function oracleArgsAlt(oracle) {
148
+ return [oracle.oracleRegistry, oracle.storkState, oracle.pythProUpdate];
149
+ }
150
+ function buildOracleInputsAlt(oracle) {
151
+ return {
152
+ oracleRegistry: oracle.oracleRegistry,
153
+ storkState: oracle.storkState,
154
+ pythProUpdate: oracle.pythProUpdate,
155
+ };
156
+ }
157
+ /**
158
+ * Fetch leEcdsa update bytes via kronos REST (`/pyth-pro/latest-price?includeUpdateBytes=true`).
159
+ */
160
+ function fetchPythProUpdateBytes(kronosUrl, feedIds, options) {
161
+ return (0, pythProClient_1.fetchPythProUpdateBytesFromKronos)(kronosUrl, feedIds, options);
162
+ }
163
+ /** create_vaults_valuation + valuate_vault_v2 for each vault. */
164
+ function valuateVaultsV2(params) {
165
+ const { tx, upgradedPackage, lpType, market, vaults, coinModules, oracle } = params;
166
+ const vaultsValuation = tx.moveCall({
167
+ target: `${upgradedPackage}::market::create_vaults_valuation`,
168
+ typeArguments: [lpType],
169
+ arguments: [oracle.clock, tx.object(market)],
170
+ });
171
+ for (const key of Object.keys(vaults)) {
172
+ const vault = vaults[key];
173
+ tx.moveCall({
174
+ target: `${upgradedPackage}::market::valuate_vault_v2`,
175
+ typeArguments: [lpType, coinModules[key].module],
176
+ arguments: [
177
+ tx.object(market),
178
+ tx.object(vault.reservingFeeModel),
179
+ ...oracleArgsWithClock(oracle),
180
+ vaultsValuation,
181
+ ],
182
+ });
183
+ }
184
+ return vaultsValuation;
185
+ }
186
+ /** create_symbols_valuation + valuate_symbol_v2 for each symbol. */
187
+ function valuateSymbolsV2(params) {
188
+ const { tx, upgradedPackage, marketPackage, lpType, market, symbols, coinModules, oracle } = params;
189
+ const symbolsValuation = tx.moveCall({
190
+ target: `${upgradedPackage}::market::create_symbols_valuation`,
191
+ typeArguments: [lpType],
192
+ arguments: [oracle.clock, tx.object(market)],
193
+ });
194
+ for (const key of Object.keys(symbols)) {
195
+ const [direction, token] = (0, utils_2.parseSymbolKey)(key);
196
+ const symbol = symbols[key];
197
+ tx.moveCall({
198
+ target: `${upgradedPackage}::market::valuate_symbol_v2`,
199
+ typeArguments: [
200
+ lpType,
201
+ coinModules[token].module,
202
+ `${marketPackage}::market::${direction.toUpperCase()}`,
203
+ ],
204
+ arguments: [
205
+ tx.object(market),
206
+ tx.object(symbol.fundingFeeModel),
207
+ ...oracleArgsWithClock(oracle),
208
+ symbolsValuation,
209
+ ],
210
+ });
211
+ }
212
+ return symbolsValuation;
213
+ }
214
+ //# sourceMappingURL=oraclePro.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oraclePro.cjs","sourceRoot":"","sources":["../src/oraclePro.ts"],"names":[],"mappings":";;AAgDA,8CAOC;AAED,wDAEC;AAKD,oEAqBC;AAED,kDAiCC;AAGD,oDAUC;AAGD,kEAyBC;AAED,sCAEC;AAMD,kEAcC;AAED,8CAWC;AAGD,gDAEC;AAGD,kDAEC;AAED,sCAEC;AAED,oDAMC;AAKD,0DAMC;AAaD,0CAwBC;AAcD,4CA6BC;AAtTD,6CAAuD;AAQvD,+CAIiB;AAEjB,uDAAmE;AACnE,mDAA0C;AAC1C,uCAAwC;AA8BxC,0EAA0E;AAC1E,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC/B,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IACvD,OAAO,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;AAC/D,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAgB;IACrD,OAAO,IAAA,6BAAoB,EAAC,IAAA,0BAAiB,EAAC,OAAO,CAAC,CAAC,CAAA;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,SAA2B,EAC3B,QAAyB,EACzB,OAAgB;IAEhB,MAAM,mBAAmB,GAAG,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IAErC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAQ;QACV,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,mBAAmB,CACjC,QAAyB,EACzB,KAAyC,EACzC,MAAgB,EAChB,OAAgB,EAChB,aAAsC;IAEtC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAA;IAC9B,MAAM,aAAa,GAAG,4BAA4B,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAChF,MAAM,eAAe,GAAG,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAA;IAEvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;QAE1D,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,MAAM,MAAM,GAAG,CAAC,CAAA;QAC3E,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;AACjB,CAAC;AAED,iFAAiF;AACjF,SAAgB,oBAAoB,CAAC,QAAyB;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAA;IACzC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACxC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAA,wBAAU,EAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,wEAAwE;AACxE,SAAgB,2BAA2B,CACzC,QAAyB,EACzB,KAAyC,EACzC,MAAgB;IAEhB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC/C,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,SAAQ;QACV,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAA;AACpB,CAAC;AAED,SAAgB,aAAa,CAAC,GAA0B;IACtD,OAAO,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CACzC,EAAe,EACf,MAAwB,EACxB,cAAqC;IAErC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,mDAAmD;QACtF,SAAS,EAAE;YACT,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YACjC,EAAE,CAAC,MAAM,CAAC,2BAAmB,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;SACpD;KACF,CAAC,CAAA;IACF,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,SAAgB,iBAAiB,CAC/B,EAAe,EACf,MAAwB,EACxB,aAAwC;IAExC,OAAO;QACL,aAAa;QACb,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;QAChD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,2BAAmB,CAAC;KACtC,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAgB,kBAAkB,CAAC,MAAoB;IACrD,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;AACzE,CAAC;AAED,+GAA+G;AAC/G,SAAgB,mBAAmB,CAAC,MAAoB;IACtD,OAAO,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,SAAgB,aAAa,CAAC,MAAuB;IACnD,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;AACzE,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAoB;IACvD,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CACrC,SAAiB,EACjB,OAAiB,EACjB,OAAyE;IAEzE,OAAO,IAAA,iDAAiC,EAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACvE,CAAC;AAYD,iEAAiE;AACjE,SAAgB,eAAe,CAAC,MAA8B;IAC5D,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEnF,MAAM,eAAe,GAAG,EAAE,CAAC,QAAQ,CAAC;QAClC,MAAM,EAAE,GAAG,eAAe,mCAAmC;QAC7D,aAAa,EAAE,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7C,CAAC,CAAA;IAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,eAAe,4BAA4B;YACtD,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAChD,SAAS,EAAE;gBACT,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBAClC,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAC9B,eAAe;aAChB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC;AAaD,oEAAoE;AACpE,SAAgB,gBAAgB,CAAC,MAA+B;IAC9D,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEnG,MAAM,gBAAgB,GAAG,EAAE,CAAC,QAAQ,CAAC;QACnC,MAAM,EAAE,GAAG,eAAe,oCAAoC;QAC9D,aAAa,EAAE,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7C,CAAC,CAAA;IAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,eAAe,6BAA6B;YACvD,aAAa,EAAE;gBACb,MAAM;gBACN,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM;gBACzB,GAAG,aAAa,aAAa,SAAS,CAAC,WAAW,EAAE,EAAE;aACvD;YACD,SAAS,EAAE;gBACT,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;gBACjC,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAC9B,gBAAgB;aACjB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC"}
@@ -0,0 +1,92 @@
1
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
2
+ import type { IOracleProConfig, IPythLazerConfig, IZoOracleConfig, Network } from "./consts/index.cjs";
3
+ import type { PythProChannel } from "./pythProClient.cjs";
4
+ /** Shared oracle bundle for most entry functions (Clock is passed separately when required). */
5
+ export interface OracleInputs {
6
+ pythProUpdate: TransactionObjectArgument;
7
+ storkState: TransactionObjectArgument;
8
+ oracleRegistry: TransactionObjectArgument;
9
+ clock: TransactionObjectArgument;
10
+ }
11
+ /** Alternate order used by liquidate + execute v3_1 (no clock). */
12
+ export interface OracleInputsAlt {
13
+ oracleRegistry: TransactionObjectArgument;
14
+ storkState: TransactionObjectArgument;
15
+ pythProUpdate: TransactionObjectArgument;
16
+ }
17
+ export interface IInitPythProOracleTxbResult {
18
+ tx: Transaction;
19
+ oracle: OracleInputs;
20
+ }
21
+ export interface IFetchPythProUpdateOptions {
22
+ channel?: PythProChannel;
23
+ /** Request ema_price for swap volatility fee. */
24
+ includeEmaPrice?: boolean;
25
+ /** Override kronos REST base URL (default: instance apiEndpoint or `DEFAULT_API_ENDPOINT`). */
26
+ kronosUrl?: string;
27
+ }
28
+ /** Normalize coin type strings for zo_oracle ↔ LP deployment matching. */
29
+ export declare function normalizeCoinType(coinType: string): string;
30
+ export declare function requireOracleProConfig(network: Network): IOracleProConfig;
31
+ /**
32
+ * Build coin module -> Lazer feed id using zo_oracle symbol configs + Hermes price id map.
33
+ */
34
+ export declare function buildCoinModuleToLazerFeedId(pythLazer: IPythLazerConfig, zoOracle: IZoOracleConfig, network: Network): Map<string, number>;
35
+ export declare function resolveLazerFeedIds(zoOracle: IZoOracleConfig, coins: Record<string, {
36
+ module: string;
37
+ }>, tokens: string[], network: Network, legacyFeeders?: Record<string, string>): number[];
38
+ /** Map Stork asset symbol (e.g. `BTCUSD`) → 32-byte on-chain feeder id bytes. */
39
+ export declare function buildStorkAssetIdMap(zoOracle: IZoOracleConfig): Map<string, Uint8Array>;
40
+ /** Map SDK token id → kronos Stork asset id (e.g. `btc` → `BTCUSD`). */
41
+ export declare function resolveStorkAssetsForTokens(zoOracle: IZoOracleConfig, coins: Record<string, {
42
+ module: string;
43
+ }>, tokens: string[]): string[];
44
+ export declare function toUpdateBytes(raw: Uint8Array | number[]): number[];
45
+ /**
46
+ * PTB step 0: verify a Pyth Pro leEcdsa update on-chain.
47
+ * Returns the verified `pyth_lazer::update_v2::Update` object.
48
+ */
49
+ export declare function parseAndVerifyPythProUpdate(tx: Transaction, config: IOracleProConfig, rawUpdateBytes: Uint8Array | number[]): TransactionObjectArgument;
50
+ export declare function buildOracleInputs(tx: Transaction, config: IOracleProConfig, pythProUpdate: TransactionObjectArgument): OracleInputs;
51
+ /** Pyth Pro + Stork objects: `[pythProUpdate, storkState, oracleRegistry]`. */
52
+ export declare function oracleArgsStandard(oracle: OracleInputs): TransactionObjectArgument[];
53
+ /** `[pythProUpdate, storkState, oracleRegistry, clock]` — for public fns that take clock after oracle args. */
54
+ export declare function oracleArgsWithClock(oracle: OracleInputs): TransactionObjectArgument[];
55
+ export declare function oracleArgsAlt(oracle: OracleInputsAlt): TransactionObjectArgument[];
56
+ export declare function buildOracleInputsAlt(oracle: OracleInputs): OracleInputsAlt;
57
+ /**
58
+ * Fetch leEcdsa update bytes via kronos REST (`/pyth-pro/latest-price?includeUpdateBytes=true`).
59
+ */
60
+ export declare function fetchPythProUpdateBytes(kronosUrl: string, feedIds: number[], options?: Pick<IFetchPythProUpdateOptions, 'channel' | 'includeEmaPrice'>): Promise<Uint8Array>;
61
+ export interface IValuateVaultsV2Params {
62
+ tx: Transaction;
63
+ upgradedPackage: string;
64
+ lpType: string;
65
+ market: string;
66
+ vaults: Record<string, {
67
+ reservingFeeModel: string;
68
+ }>;
69
+ coinModules: Record<string, {
70
+ module: string;
71
+ }>;
72
+ oracle: OracleInputs;
73
+ }
74
+ /** create_vaults_valuation + valuate_vault_v2 for each vault. */
75
+ export declare function valuateVaultsV2(params: IValuateVaultsV2Params): TransactionObjectArgument;
76
+ export interface IValuateSymbolsV2Params {
77
+ tx: Transaction;
78
+ upgradedPackage: string;
79
+ marketPackage: string;
80
+ lpType: string;
81
+ market: string;
82
+ symbols: Record<string, {
83
+ fundingFeeModel: string;
84
+ }>;
85
+ coinModules: Record<string, {
86
+ module: string;
87
+ }>;
88
+ oracle: OracleInputs;
89
+ }
90
+ /** create_symbols_valuation + valuate_symbol_v2 for each symbol. */
91
+ export declare function valuateSymbolsV2(params: IValuateSymbolsV2Params): TransactionObjectArgument;
92
+ //# sourceMappingURL=oraclePro.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oraclePro.d.cts","sourceRoot":"","sources":["../src/oraclePro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
2
+ import type { IOracleProConfig, IPythLazerConfig, IZoOracleConfig, Network } from "./consts/index.mjs";
3
+ import type { PythProChannel } from "./pythProClient.mjs";
4
+ /** Shared oracle bundle for most entry functions (Clock is passed separately when required). */
5
+ export interface OracleInputs {
6
+ pythProUpdate: TransactionObjectArgument;
7
+ storkState: TransactionObjectArgument;
8
+ oracleRegistry: TransactionObjectArgument;
9
+ clock: TransactionObjectArgument;
10
+ }
11
+ /** Alternate order used by liquidate + execute v3_1 (no clock). */
12
+ export interface OracleInputsAlt {
13
+ oracleRegistry: TransactionObjectArgument;
14
+ storkState: TransactionObjectArgument;
15
+ pythProUpdate: TransactionObjectArgument;
16
+ }
17
+ export interface IInitPythProOracleTxbResult {
18
+ tx: Transaction;
19
+ oracle: OracleInputs;
20
+ }
21
+ export interface IFetchPythProUpdateOptions {
22
+ channel?: PythProChannel;
23
+ /** Request ema_price for swap volatility fee. */
24
+ includeEmaPrice?: boolean;
25
+ /** Override kronos REST base URL (default: instance apiEndpoint or `DEFAULT_API_ENDPOINT`). */
26
+ kronosUrl?: string;
27
+ }
28
+ /** Normalize coin type strings for zo_oracle ↔ LP deployment matching. */
29
+ export declare function normalizeCoinType(coinType: string): string;
30
+ export declare function requireOracleProConfig(network: Network): IOracleProConfig;
31
+ /**
32
+ * Build coin module -> Lazer feed id using zo_oracle symbol configs + Hermes price id map.
33
+ */
34
+ export declare function buildCoinModuleToLazerFeedId(pythLazer: IPythLazerConfig, zoOracle: IZoOracleConfig, network: Network): Map<string, number>;
35
+ export declare function resolveLazerFeedIds(zoOracle: IZoOracleConfig, coins: Record<string, {
36
+ module: string;
37
+ }>, tokens: string[], network: Network, legacyFeeders?: Record<string, string>): number[];
38
+ /** Map Stork asset symbol (e.g. `BTCUSD`) → 32-byte on-chain feeder id bytes. */
39
+ export declare function buildStorkAssetIdMap(zoOracle: IZoOracleConfig): Map<string, Uint8Array>;
40
+ /** Map SDK token id → kronos Stork asset id (e.g. `btc` → `BTCUSD`). */
41
+ export declare function resolveStorkAssetsForTokens(zoOracle: IZoOracleConfig, coins: Record<string, {
42
+ module: string;
43
+ }>, tokens: string[]): string[];
44
+ export declare function toUpdateBytes(raw: Uint8Array | number[]): number[];
45
+ /**
46
+ * PTB step 0: verify a Pyth Pro leEcdsa update on-chain.
47
+ * Returns the verified `pyth_lazer::update_v2::Update` object.
48
+ */
49
+ export declare function parseAndVerifyPythProUpdate(tx: Transaction, config: IOracleProConfig, rawUpdateBytes: Uint8Array | number[]): TransactionObjectArgument;
50
+ export declare function buildOracleInputs(tx: Transaction, config: IOracleProConfig, pythProUpdate: TransactionObjectArgument): OracleInputs;
51
+ /** Pyth Pro + Stork objects: `[pythProUpdate, storkState, oracleRegistry]`. */
52
+ export declare function oracleArgsStandard(oracle: OracleInputs): TransactionObjectArgument[];
53
+ /** `[pythProUpdate, storkState, oracleRegistry, clock]` — for public fns that take clock after oracle args. */
54
+ export declare function oracleArgsWithClock(oracle: OracleInputs): TransactionObjectArgument[];
55
+ export declare function oracleArgsAlt(oracle: OracleInputsAlt): TransactionObjectArgument[];
56
+ export declare function buildOracleInputsAlt(oracle: OracleInputs): OracleInputsAlt;
57
+ /**
58
+ * Fetch leEcdsa update bytes via kronos REST (`/pyth-pro/latest-price?includeUpdateBytes=true`).
59
+ */
60
+ export declare function fetchPythProUpdateBytes(kronosUrl: string, feedIds: number[], options?: Pick<IFetchPythProUpdateOptions, 'channel' | 'includeEmaPrice'>): Promise<Uint8Array>;
61
+ export interface IValuateVaultsV2Params {
62
+ tx: Transaction;
63
+ upgradedPackage: string;
64
+ lpType: string;
65
+ market: string;
66
+ vaults: Record<string, {
67
+ reservingFeeModel: string;
68
+ }>;
69
+ coinModules: Record<string, {
70
+ module: string;
71
+ }>;
72
+ oracle: OracleInputs;
73
+ }
74
+ /** create_vaults_valuation + valuate_vault_v2 for each vault. */
75
+ export declare function valuateVaultsV2(params: IValuateVaultsV2Params): TransactionObjectArgument;
76
+ export interface IValuateSymbolsV2Params {
77
+ tx: Transaction;
78
+ upgradedPackage: string;
79
+ marketPackage: string;
80
+ lpType: string;
81
+ market: string;
82
+ symbols: Record<string, {
83
+ fundingFeeModel: string;
84
+ }>;
85
+ coinModules: Record<string, {
86
+ module: string;
87
+ }>;
88
+ oracle: OracleInputs;
89
+ }
90
+ /** create_symbols_valuation + valuate_symbol_v2 for each symbol. */
91
+ export declare function valuateSymbolsV2(params: IValuateSymbolsV2Params): TransactionObjectArgument;
92
+ //# sourceMappingURL=oraclePro.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oraclePro.d.mts","sourceRoot":"","sources":["../src/oraclePro.ts"],"names":[],"mappings":"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"}