@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
@@ -0,0 +1,90 @@
1
+ /** Kronos Stork price REST client + update payload parsing. */
2
+ export interface IStorkEvmSignature {
3
+ r: string;
4
+ s: string;
5
+ v: string | number;
6
+ }
7
+ export interface IStorkSignedPrice {
8
+ public_key?: string;
9
+ encoded_asset_id?: string;
10
+ /** Stork quantized price used for on-chain signature verification. */
11
+ quantized_price?: string;
12
+ price?: string;
13
+ timestamped_signature?: {
14
+ timestamp?: number | string;
15
+ /** Nanosecond timestamp used for on-chain updates (preferred). */
16
+ timestamp_nano?: number | string;
17
+ signature?: IStorkEvmSignature;
18
+ msg_hash?: string;
19
+ };
20
+ publisher_merkle_root?: string;
21
+ calculation_alg?: {
22
+ type?: string;
23
+ version?: string;
24
+ checksum?: string;
25
+ };
26
+ }
27
+ export interface IStorkKronosPriceEntry {
28
+ asset_id: string;
29
+ price: string;
30
+ priceUsd?: number;
31
+ timestamp?: number;
32
+ signature_type?: string;
33
+ stork_signed_price?: IStorkSignedPrice;
34
+ signed_prices?: unknown[];
35
+ /** Pre-parsed on-chain update payload from kronos (preferred). */
36
+ update_data?: IStorkUpdateDataRaw;
37
+ }
38
+ export interface IStorkUpdateDataRaw {
39
+ id?: string | number[];
40
+ temporal_numeric_value_timestamp_ns?: number | string;
41
+ temporal_numeric_value_magnitude?: string | number;
42
+ temporal_numeric_value_negative?: boolean;
43
+ publisher_merkle_root?: string | number[];
44
+ value_compute_alg_hash?: string | number[];
45
+ r?: string | number[];
46
+ s?: string | number[];
47
+ v?: number | string;
48
+ }
49
+ /** Normalized update payload for Stork Move calls. */
50
+ export interface IStorkUpdateData {
51
+ id: Uint8Array;
52
+ temporalNumericValueTimestampNs: bigint;
53
+ temporalNumericValueMagnitude: bigint;
54
+ temporalNumericValueNegative: boolean;
55
+ publisherMerkleRoot: Uint8Array;
56
+ valueComputeAlgHash: Uint8Array;
57
+ r: Uint8Array;
58
+ s: Uint8Array;
59
+ v: number;
60
+ }
61
+ export interface IStorkLatestPriceData {
62
+ prices: Record<string, IStorkKronosPriceEntry>;
63
+ }
64
+ export interface IStorkLatestPriceResponse {
65
+ success: boolean;
66
+ timestamp?: string;
67
+ data?: IStorkLatestPriceData;
68
+ message?: string;
69
+ }
70
+ export interface IGetLatestStorkPricesOptions {
71
+ assets: string[];
72
+ /** Override kronos REST base URL. */
73
+ kronosUrl?: string;
74
+ }
75
+ export declare function hexToBytes(hex: string): Uint8Array;
76
+ export declare function base64ToBytes(base64: string): Uint8Array;
77
+ export declare function parseStorkUpdateDataRaw(raw: IStorkUpdateDataRaw): IStorkUpdateData;
78
+ /** Build on-chain update data from kronos / Stork REST signed price payload. */
79
+ export declare function buildStorkUpdateDataFromSignedPrice(entry: IStorkKronosPriceEntry,
80
+ /** Fallback 32-byte feeder id when `encoded_asset_id` is absent. */
81
+ feederId?: Uint8Array): IStorkUpdateData | null;
82
+ export declare function parseStorkUpdateDataList(data: IStorkLatestPriceData,
83
+ /** Stork asset symbol → 32-byte on-chain feeder id from zo-oracle config. */
84
+ assetIdByAsset?: Map<string, Uint8Array>): IStorkUpdateData[];
85
+ /**
86
+ * Fetch latest Stork prices from kronos REST (`GET` or `POST /stork/latest-price`).
87
+ */
88
+ export declare function getLatestStorkPrices(baseUrl: string, options: IGetLatestStorkPricesOptions): Promise<IStorkLatestPriceData>;
89
+ export declare function fetchStorkUpdateDataFromKronos(baseUrl: string, assets: string[], assetIdByAsset?: Map<string, Uint8Array>): Promise<IStorkUpdateData[]>;
90
+ //# sourceMappingURL=storkClient.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkClient.d.cts","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qBAAqB,CAAC,EAAE;QACtB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QAC3B,kEAAkE;QAClE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QAChC,SAAS,CAAC,EAAE,kBAAkB,CAAA;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,eAAe,CAAC,EAAE;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;IACtC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAA;IACzB,kEAAkE;IAClE,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,mCAAmC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrD,gCAAgC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAClD,+BAA+B,CAAC,EAAE,OAAO,CAAA;IACzC,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzC,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1C,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,UAAU,CAAA;IACd,+BAA+B,EAAE,MAAM,CAAA;IACvC,6BAA6B,EAAE,MAAM,CAAA;IACrC,4BAA4B,EAAE,OAAO,CAAA;IACrC,mBAAmB,EAAE,UAAU,CAAA;IAC/B,mBAAmB,EAAE,UAAU,CAAA;IAC/B,CAAC,EAAE,UAAU,CAAA;IACb,CAAC,EAAE,UAAU,CAAA;IACb,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;CAC/C;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,qBAAqB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAaD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAUlD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CASxD;AAiDD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,mBAAmB,GAAG,gBAAgB,CAiBlF;AAWD,gFAAgF;AAChF,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,sBAAsB;AAC7B,oEAAoE;AACpE,QAAQ,CAAC,EAAE,UAAU,GACpB,gBAAgB,GAAG,IAAI,CA0DzB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,qBAAqB;AAC3B,6EAA6E;AAC7E,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GACvC,gBAAgB,EAAE,CAgBpB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CA6BhC;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GACvC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAO7B"}
@@ -0,0 +1,90 @@
1
+ /** Kronos Stork price REST client + update payload parsing. */
2
+ export interface IStorkEvmSignature {
3
+ r: string;
4
+ s: string;
5
+ v: string | number;
6
+ }
7
+ export interface IStorkSignedPrice {
8
+ public_key?: string;
9
+ encoded_asset_id?: string;
10
+ /** Stork quantized price used for on-chain signature verification. */
11
+ quantized_price?: string;
12
+ price?: string;
13
+ timestamped_signature?: {
14
+ timestamp?: number | string;
15
+ /** Nanosecond timestamp used for on-chain updates (preferred). */
16
+ timestamp_nano?: number | string;
17
+ signature?: IStorkEvmSignature;
18
+ msg_hash?: string;
19
+ };
20
+ publisher_merkle_root?: string;
21
+ calculation_alg?: {
22
+ type?: string;
23
+ version?: string;
24
+ checksum?: string;
25
+ };
26
+ }
27
+ export interface IStorkKronosPriceEntry {
28
+ asset_id: string;
29
+ price: string;
30
+ priceUsd?: number;
31
+ timestamp?: number;
32
+ signature_type?: string;
33
+ stork_signed_price?: IStorkSignedPrice;
34
+ signed_prices?: unknown[];
35
+ /** Pre-parsed on-chain update payload from kronos (preferred). */
36
+ update_data?: IStorkUpdateDataRaw;
37
+ }
38
+ export interface IStorkUpdateDataRaw {
39
+ id?: string | number[];
40
+ temporal_numeric_value_timestamp_ns?: number | string;
41
+ temporal_numeric_value_magnitude?: string | number;
42
+ temporal_numeric_value_negative?: boolean;
43
+ publisher_merkle_root?: string | number[];
44
+ value_compute_alg_hash?: string | number[];
45
+ r?: string | number[];
46
+ s?: string | number[];
47
+ v?: number | string;
48
+ }
49
+ /** Normalized update payload for Stork Move calls. */
50
+ export interface IStorkUpdateData {
51
+ id: Uint8Array;
52
+ temporalNumericValueTimestampNs: bigint;
53
+ temporalNumericValueMagnitude: bigint;
54
+ temporalNumericValueNegative: boolean;
55
+ publisherMerkleRoot: Uint8Array;
56
+ valueComputeAlgHash: Uint8Array;
57
+ r: Uint8Array;
58
+ s: Uint8Array;
59
+ v: number;
60
+ }
61
+ export interface IStorkLatestPriceData {
62
+ prices: Record<string, IStorkKronosPriceEntry>;
63
+ }
64
+ export interface IStorkLatestPriceResponse {
65
+ success: boolean;
66
+ timestamp?: string;
67
+ data?: IStorkLatestPriceData;
68
+ message?: string;
69
+ }
70
+ export interface IGetLatestStorkPricesOptions {
71
+ assets: string[];
72
+ /** Override kronos REST base URL. */
73
+ kronosUrl?: string;
74
+ }
75
+ export declare function hexToBytes(hex: string): Uint8Array;
76
+ export declare function base64ToBytes(base64: string): Uint8Array;
77
+ export declare function parseStorkUpdateDataRaw(raw: IStorkUpdateDataRaw): IStorkUpdateData;
78
+ /** Build on-chain update data from kronos / Stork REST signed price payload. */
79
+ export declare function buildStorkUpdateDataFromSignedPrice(entry: IStorkKronosPriceEntry,
80
+ /** Fallback 32-byte feeder id when `encoded_asset_id` is absent. */
81
+ feederId?: Uint8Array): IStorkUpdateData | null;
82
+ export declare function parseStorkUpdateDataList(data: IStorkLatestPriceData,
83
+ /** Stork asset symbol → 32-byte on-chain feeder id from zo-oracle config. */
84
+ assetIdByAsset?: Map<string, Uint8Array>): IStorkUpdateData[];
85
+ /**
86
+ * Fetch latest Stork prices from kronos REST (`GET` or `POST /stork/latest-price`).
87
+ */
88
+ export declare function getLatestStorkPrices(baseUrl: string, options: IGetLatestStorkPricesOptions): Promise<IStorkLatestPriceData>;
89
+ export declare function fetchStorkUpdateDataFromKronos(baseUrl: string, assets: string[], assetIdByAsset?: Map<string, Uint8Array>): Promise<IStorkUpdateData[]>;
90
+ //# sourceMappingURL=storkClient.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkClient.d.mts","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ /** Kronos Stork price REST client + update payload parsing. */
2
+ function normalizeBaseUrl(baseUrl) {
3
+ return baseUrl.replace(/\/+$/, '');
4
+ }
5
+ function parseLatestStorkResponse(json) {
6
+ if (!json.success || !json.data) {
7
+ throw new Error(json.message ?? 'Stork latest-price request failed');
8
+ }
9
+ return json.data;
10
+ }
11
+ export function hexToBytes(hex) {
12
+ const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;
13
+ if (normalized.length % 2 !== 0) {
14
+ throw new Error(`Invalid hex length: ${hex}`);
15
+ }
16
+ const bytes = new Uint8Array(normalized.length / 2);
17
+ for (let i = 0; i < normalized.length; i += 2) {
18
+ bytes[i / 2] = Number.parseInt(normalized.slice(i, i + 2), 16);
19
+ }
20
+ return bytes;
21
+ }
22
+ export function base64ToBytes(base64) {
23
+ const normalized = base64.replaceAll('-', '+').replaceAll('_', '/');
24
+ const padded = normalized + '='.repeat((4 - (normalized.length % 4)) % 4);
25
+ const binary = atob(padded);
26
+ const bytes = new Uint8Array(binary.length);
27
+ for (let i = 0; i < binary.length; i++) {
28
+ bytes[i] = binary.charCodeAt(i);
29
+ }
30
+ return bytes;
31
+ }
32
+ function toBytes(value, field) {
33
+ if (value === undefined || value === null) {
34
+ throw new Error(`Missing Stork field: ${field}`);
35
+ }
36
+ if (value instanceof Uint8Array) {
37
+ return value;
38
+ }
39
+ if (Array.isArray(value)) {
40
+ return Uint8Array.from(value);
41
+ }
42
+ if (value.startsWith('0x') || /^[0-9a-f]+$/i.test(value)) {
43
+ return hexToBytes(value);
44
+ }
45
+ return base64ToBytes(value);
46
+ }
47
+ function toBigInt(value) {
48
+ if (value === undefined || value === null) {
49
+ return 0n;
50
+ }
51
+ if (typeof value === 'bigint') {
52
+ return value;
53
+ }
54
+ if (typeof value === 'string') {
55
+ return BigInt(value);
56
+ }
57
+ // `value` is already a float64 at this point — any u64 > 2^53 has already lost
58
+ // precision before reaching here. String(n) round-trips the truncated float64,
59
+ // not the original integer. Callers should pass string timestamps from the API
60
+ // to avoid this loss.
61
+ return BigInt(String(value));
62
+ }
63
+ function parseV(value) {
64
+ if (typeof value === 'number') {
65
+ return value;
66
+ }
67
+ const bytes = toBytes(value, 'v');
68
+ if (bytes.length > 0) {
69
+ return bytes[0];
70
+ }
71
+ if (value.startsWith('0x')) {
72
+ return Number.parseInt(value, 16);
73
+ }
74
+ return Number.parseInt(value, 10);
75
+ }
76
+ export function parseStorkUpdateDataRaw(raw) {
77
+ const id = toBytes(raw.id, 'id');
78
+ if (id.length !== 32) {
79
+ throw new Error(`Stork update id must be 32 bytes, got ${id.length}`);
80
+ }
81
+ return {
82
+ id,
83
+ temporalNumericValueTimestampNs: toBigInt(raw.temporal_numeric_value_timestamp_ns),
84
+ temporalNumericValueMagnitude: toBigInt(raw.temporal_numeric_value_magnitude),
85
+ temporalNumericValueNegative: raw.temporal_numeric_value_negative ?? false,
86
+ publisherMerkleRoot: toBytes(raw.publisher_merkle_root, 'publisher_merkle_root'),
87
+ valueComputeAlgHash: toBytes(raw.value_compute_alg_hash, 'value_compute_alg_hash'),
88
+ r: toBytes(raw.r, 'r'),
89
+ s: toBytes(raw.s, 's'),
90
+ v: parseV(raw.v ?? 0),
91
+ };
92
+ }
93
+ function parseQuantizedPrice(value) {
94
+ let price = BigInt(value);
95
+ const negative = price < 0n;
96
+ if (negative) {
97
+ price = -price;
98
+ }
99
+ return { magnitude: price, negative };
100
+ }
101
+ /** Build on-chain update data from kronos / Stork REST signed price payload. */
102
+ export function buildStorkUpdateDataFromSignedPrice(entry,
103
+ /** Fallback 32-byte feeder id when `encoded_asset_id` is absent. */
104
+ feederId) {
105
+ const signed = entry.stork_signed_price;
106
+ if (signed?.timestamped_signature?.signature) {
107
+ const checksum = signed.calculation_alg?.checksum;
108
+ if (!checksum) {
109
+ return null;
110
+ }
111
+ const quantizedPrice = signed.quantized_price ?? signed.price ?? entry.price;
112
+ if (!quantizedPrice) {
113
+ return null;
114
+ }
115
+ const assetId = signed.encoded_asset_id;
116
+ if (!assetId && !feederId) {
117
+ return null;
118
+ }
119
+ const { magnitude, negative } = parseQuantizedPrice(String(quantizedPrice));
120
+ // Nanosecond timestamps for dates in 2026+ (~1.78e18 ns) exceed float64 safe-integer
121
+ // range (2^53 ≈ 9e15). JSON.parse silently truncates them by up to ±127 ns (precision
122
+ // step = 256 at this scale), causing get_stork_message_hash to produce the wrong value
123
+ // and ecrecover to fail → EInvalidSignature (error code 0).
124
+ // Prefer string sources; fall back to update_data.temporal_numeric_value_timestamp_ns
125
+ // (a string in kronos pre-parsed payloads) when stork_signed_price only has a number.
126
+ const rawTimestampNs = signed.timestamped_signature.timestamp_nano
127
+ ?? signed.timestamped_signature.timestamp
128
+ ?? entry.timestamp;
129
+ const timestampNs = (typeof rawTimestampNs === 'number'
130
+ && typeof entry.update_data?.temporal_numeric_value_timestamp_ns === 'string')
131
+ ? entry.update_data.temporal_numeric_value_timestamp_ns
132
+ : rawTimestampNs;
133
+ const id = assetId
134
+ ? toBytes(assetId, 'encoded_asset_id')
135
+ : feederId;
136
+ return {
137
+ id,
138
+ temporalNumericValueTimestampNs: toBigInt(timestampNs),
139
+ temporalNumericValueMagnitude: magnitude,
140
+ temporalNumericValueNegative: negative,
141
+ publisherMerkleRoot: toBytes(signed.publisher_merkle_root, 'publisher_merkle_root'),
142
+ valueComputeAlgHash: toBytes(checksum, 'value_compute_alg_hash'),
143
+ r: toBytes(signed.timestamped_signature.signature.r, 'r'),
144
+ s: toBytes(signed.timestamped_signature.signature.s, 's'),
145
+ v: parseV(signed.timestamped_signature.signature.v),
146
+ };
147
+ }
148
+ if (entry.update_data) {
149
+ return parseStorkUpdateDataRaw(entry.update_data);
150
+ }
151
+ return null;
152
+ }
153
+ export function parseStorkUpdateDataList(data,
154
+ /** Stork asset symbol → 32-byte on-chain feeder id from zo-oracle config. */
155
+ assetIdByAsset) {
156
+ const updates = [];
157
+ for (const entry of Object.values(data.prices)) {
158
+ const feederId = assetIdByAsset?.get(entry.asset_id);
159
+ const update = buildStorkUpdateDataFromSignedPrice(entry, feederId);
160
+ if (update) {
161
+ if (update.id.length !== 32) {
162
+ throw new Error(`Stork asset ${entry.asset_id}: id must be 32 bytes (got ${update.id.length}); `
163
+ + 'pass assetIdByAsset from buildStorkAssetIdMap()');
164
+ }
165
+ updates.push(update);
166
+ }
167
+ }
168
+ return updates;
169
+ }
170
+ /**
171
+ * Fetch latest Stork prices from kronos REST (`GET` or `POST /stork/latest-price`).
172
+ */
173
+ export async function getLatestStorkPrices(baseUrl, options) {
174
+ const { assets } = options;
175
+ if (assets.length === 0) {
176
+ throw new Error('assets is required');
177
+ }
178
+ const root = normalizeBaseUrl(baseUrl);
179
+ if (assets.length <= 20) {
180
+ const params = new URLSearchParams();
181
+ params.set('assets', assets.join(','));
182
+ const res = await fetch(`${root}/stork/latest-price?${params}`);
183
+ const json = await res.json();
184
+ if (!res.ok && json.message) {
185
+ throw new Error(json.message);
186
+ }
187
+ return parseLatestStorkResponse(json);
188
+ }
189
+ const res = await fetch(`${root}/stork/latest-price`, {
190
+ method: 'POST',
191
+ headers: { 'Content-Type': 'application/json' },
192
+ body: JSON.stringify({ assets }),
193
+ });
194
+ const json = await res.json();
195
+ if (!res.ok && json.message) {
196
+ throw new Error(json.message);
197
+ }
198
+ return parseLatestStorkResponse(json);
199
+ }
200
+ export async function fetchStorkUpdateDataFromKronos(baseUrl, assets, assetIdByAsset) {
201
+ const data = await getLatestStorkPrices(baseUrl, { assets });
202
+ const updates = parseStorkUpdateDataList(data, assetIdByAsset);
203
+ if (updates.length === 0) {
204
+ throw new Error(`No Stork update data returned for assets: ${assets.join(',')}`);
205
+ }
206
+ return updates;
207
+ }
208
+ //# sourceMappingURL=storkClient.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkClient.mjs","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAmF/D,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,wBAAwB,CAAC,IAA+B;IAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,mCAAmC,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC5D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAiD,EAAE,KAAa;IAC/E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAkD;IAClE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,sBAAsB;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,MAAM,CAAC,KAAsB;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,CAAC,CAAE,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAwB;IAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAChC,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,OAAO;QACL,EAAE;QACF,+BAA+B,EAAE,QAAQ,CAAC,GAAG,CAAC,mCAAmC,CAAC;QAClF,6BAA6B,EAAE,QAAQ,CAAC,GAAG,CAAC,gCAAgC,CAAC;QAC7E,4BAA4B,EAAE,GAAG,CAAC,+BAA+B,IAAI,KAAK;QAC1E,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;QAChF,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;QAClF,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;QACtB,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;KACtB,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,MAAM,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAA;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,GAAG,CAAC,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AACvC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mCAAmC,CACjD,KAA6B;AAC7B,oEAAoE;AACpE,QAAqB;IAErB,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAA;IACvC,IAAI,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAA;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;QAC5E,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAA;QACvC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;QAE3E,qFAAqF;QACrF,sFAAsF;QACtF,uFAAuF;QACvF,4DAA4D;QAC5D,sFAAsF;QACtF,sFAAsF;QACtF,MAAM,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,cAAc;eAC7D,MAAM,CAAC,qBAAqB,CAAC,SAAS;eACtC,KAAK,CAAC,SAAS,CAAA;QACpB,MAAM,WAAW,GAAG,CAClB,OAAO,cAAc,KAAK,QAAQ;eAC/B,OAAO,KAAK,CAAC,WAAW,EAAE,mCAAmC,KAAK,QAAQ,CAC9E;YACC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC;YACvD,CAAC,CAAC,cAAc,CAAA;QAElB,MAAM,EAAE,GAAG,OAAO;YAChB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACtC,CAAC,CAAC,QAAS,CAAA;QAEb,OAAO;YACL,EAAE;YACF,+BAA+B,EAAE,QAAQ,CAAC,WAAW,CAAC;YACtD,6BAA6B,EAAE,SAAS;YACxC,4BAA4B,EAAE,QAAQ;YACtC,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;YACnF,mBAAmB,EAAE,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC;YAChE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;YACzD,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;YACzD,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;SACpD,CAAA;IACH,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAA2B;AAC3B,6EAA6E;AAC7E,cAAwC;IAExC,MAAM,OAAO,GAAuB,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,mCAAmC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACnE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,eAAe,KAAK,CAAC,QAAQ,8BAA8B,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK;sBAC9E,iDAAiD,CACpD,CAAA;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,OAAqC;IAErC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEtC,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,MAAM,EAAE,CAAC,CAAA;QAC/D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA+B,CAAA;QAC1D,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,qBAAqB,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA+B,CAAA;IAC1D,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAe,EACf,MAAgB,EAChB,cAAwC;IAExC,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STORK_UPDATE_FEE_MIST = void 0;
4
+ exports.appendStorkUpdatesToTransaction = appendStorkUpdatesToTransaction;
5
+ exports.estimateStorkUpdateFeeMist = estimateStorkUpdateFeeMist;
6
+ const transactions_1 = require("@mysten/sui/transactions");
7
+ /** 1 MIST per Stork feed update (matches zo-go-executor). */
8
+ exports.STORK_UPDATE_FEE_MIST = 1n;
9
+ function bytesToPureVector(bytesList) {
10
+ return bytesList.map(bytes => Array.from(bytes));
11
+ }
12
+ /**
13
+ * Append Stork on-chain price updates to an open PTB (before Pyth Pro verify + market op).
14
+ *
15
+ * 1. `update_temporal_numeric_value_evm_input_vec::new`
16
+ * 2. `stork::update_multiple_temporal_numeric_values_evm`
17
+ */
18
+ function appendStorkUpdatesToTransaction(tx, config, updates, options) {
19
+ if (updates.length === 0) {
20
+ return;
21
+ }
22
+ const feePerUpdate = options?.feePerUpdate ?? exports.STORK_UPDATE_FEE_MIST;
23
+ const totalFee = feePerUpdate * BigInt(updates.length);
24
+ const feeSource = options?.feeSource ?? tx.gas;
25
+ const [feeCoin] = tx.splitCoins(feeSource, [tx.pure.u64(totalFee)]);
26
+ const ids = bytesToPureVector(updates.map(u => u.id));
27
+ const timestampNss = updates.map(u => u.temporalNumericValueTimestampNs);
28
+ const magnitudes = updates.map(u => u.temporalNumericValueMagnitude);
29
+ const negatives = updates.map(u => u.temporalNumericValueNegative);
30
+ const publisherMerkleRoots = bytesToPureVector(updates.map(u => u.publisherMerkleRoot));
31
+ const valueComputeAlgHashes = bytesToPureVector(updates.map(u => u.valueComputeAlgHash));
32
+ const rs = bytesToPureVector(updates.map(u => u.r));
33
+ const ss = bytesToPureVector(updates.map(u => u.s));
34
+ const vs = updates.map(u => u.v);
35
+ const [updateInputVec] = tx.moveCall({
36
+ target: `${config.storkPackage}::update_temporal_numeric_value_evm_input_vec::new`,
37
+ arguments: [
38
+ tx.pure.vector('vector<u8>', ids),
39
+ tx.pure.vector('u64', timestampNss),
40
+ tx.pure.vector('u128', magnitudes),
41
+ tx.pure.vector('bool', negatives),
42
+ tx.pure.vector('vector<u8>', publisherMerkleRoots),
43
+ tx.pure.vector('vector<u8>', valueComputeAlgHashes),
44
+ tx.pure.vector('vector<u8>', rs),
45
+ tx.pure.vector('vector<u8>', ss),
46
+ tx.pure.vector('u8', vs),
47
+ ],
48
+ });
49
+ tx.moveCall({
50
+ target: `${config.storkPackage}::stork::update_multiple_temporal_numeric_values_evm`,
51
+ arguments: [
52
+ tx.object(config.storkState),
53
+ updateInputVec,
54
+ feeCoin,
55
+ ],
56
+ });
57
+ }
58
+ function estimateStorkUpdateFeeMist(updateCount, feePerUpdate = exports.STORK_UPDATE_FEE_MIST) {
59
+ return feePerUpdate * BigInt(updateCount);
60
+ }
61
+ //# sourceMappingURL=storkOracle.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkOracle.cjs","sourceRoot":"","sources":["../src/storkOracle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { TransactionObjectArgument } from "@mysten/sui/transactions";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import type { IOracleProConfig } from "./consts/index.cjs";
4
+ import type { IStorkUpdateData } from "./storkClient.cjs";
5
+ /** 1 MIST per Stork feed update (matches zo-go-executor). */
6
+ export declare const STORK_UPDATE_FEE_MIST = 1n;
7
+ export interface IAppendStorkUpdatesOptions {
8
+ /** Coin to split update fees from. Defaults to `tx.gas`. */
9
+ feeSource?: TransactionObjectArgument;
10
+ /** MIST per update. Defaults to 1. */
11
+ feePerUpdate?: bigint;
12
+ }
13
+ /**
14
+ * Append Stork on-chain price updates to an open PTB (before Pyth Pro verify + market op).
15
+ *
16
+ * 1. `update_temporal_numeric_value_evm_input_vec::new`
17
+ * 2. `stork::update_multiple_temporal_numeric_values_evm`
18
+ */
19
+ export declare function appendStorkUpdatesToTransaction(tx: Transaction, config: Pick<IOracleProConfig, 'storkPackage' | 'storkState'>, updates: IStorkUpdateData[], options?: IAppendStorkUpdatesOptions): void;
20
+ export declare function estimateStorkUpdateFeeMist(updateCount: number, feePerUpdate?: bigint): bigint;
21
+ //# sourceMappingURL=storkOracle.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkOracle.d.cts","sourceRoot":"","sources":["../src/storkOracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,iCAAgC;AACzE,OAAO,EAAE,WAAW,EAAE,iCAAgC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAAgB;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAAqB;AAErD,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAMD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,YAAY,CAAC,EAC7D,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,IAAI,CA2CN;AAED,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAA8B,GAC3C,MAAM,CAER"}
@@ -0,0 +1,21 @@
1
+ import type { TransactionObjectArgument } from "@mysten/sui/transactions";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import type { IOracleProConfig } from "./consts/index.mjs";
4
+ import type { IStorkUpdateData } from "./storkClient.mjs";
5
+ /** 1 MIST per Stork feed update (matches zo-go-executor). */
6
+ export declare const STORK_UPDATE_FEE_MIST = 1n;
7
+ export interface IAppendStorkUpdatesOptions {
8
+ /** Coin to split update fees from. Defaults to `tx.gas`. */
9
+ feeSource?: TransactionObjectArgument;
10
+ /** MIST per update. Defaults to 1. */
11
+ feePerUpdate?: bigint;
12
+ }
13
+ /**
14
+ * Append Stork on-chain price updates to an open PTB (before Pyth Pro verify + market op).
15
+ *
16
+ * 1. `update_temporal_numeric_value_evm_input_vec::new`
17
+ * 2. `stork::update_multiple_temporal_numeric_values_evm`
18
+ */
19
+ export declare function appendStorkUpdatesToTransaction(tx: Transaction, config: Pick<IOracleProConfig, 'storkPackage' | 'storkState'>, updates: IStorkUpdateData[], options?: IAppendStorkUpdatesOptions): void;
20
+ export declare function estimateStorkUpdateFeeMist(updateCount: number, feePerUpdate?: bigint): bigint;
21
+ //# sourceMappingURL=storkOracle.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkOracle.d.mts","sourceRoot":"","sources":["../src/storkOracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,iCAAgC;AACzE,OAAO,EAAE,WAAW,EAAE,iCAAgC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAAgB;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAAqB;AAErD,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAMD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,YAAY,CAAC,EAC7D,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,IAAI,CA2CN;AAED,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAA8B,GAC3C,MAAM,CAER"}
@@ -0,0 +1,56 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ /** 1 MIST per Stork feed update (matches zo-go-executor). */
3
+ export const STORK_UPDATE_FEE_MIST = 1n;
4
+ function bytesToPureVector(bytesList) {
5
+ return bytesList.map(bytes => Array.from(bytes));
6
+ }
7
+ /**
8
+ * Append Stork on-chain price updates to an open PTB (before Pyth Pro verify + market op).
9
+ *
10
+ * 1. `update_temporal_numeric_value_evm_input_vec::new`
11
+ * 2. `stork::update_multiple_temporal_numeric_values_evm`
12
+ */
13
+ export function appendStorkUpdatesToTransaction(tx, config, updates, options) {
14
+ if (updates.length === 0) {
15
+ return;
16
+ }
17
+ const feePerUpdate = options?.feePerUpdate ?? STORK_UPDATE_FEE_MIST;
18
+ const totalFee = feePerUpdate * BigInt(updates.length);
19
+ const feeSource = options?.feeSource ?? tx.gas;
20
+ const [feeCoin] = tx.splitCoins(feeSource, [tx.pure.u64(totalFee)]);
21
+ const ids = bytesToPureVector(updates.map(u => u.id));
22
+ const timestampNss = updates.map(u => u.temporalNumericValueTimestampNs);
23
+ const magnitudes = updates.map(u => u.temporalNumericValueMagnitude);
24
+ const negatives = updates.map(u => u.temporalNumericValueNegative);
25
+ const publisherMerkleRoots = bytesToPureVector(updates.map(u => u.publisherMerkleRoot));
26
+ const valueComputeAlgHashes = bytesToPureVector(updates.map(u => u.valueComputeAlgHash));
27
+ const rs = bytesToPureVector(updates.map(u => u.r));
28
+ const ss = bytesToPureVector(updates.map(u => u.s));
29
+ const vs = updates.map(u => u.v);
30
+ const [updateInputVec] = tx.moveCall({
31
+ target: `${config.storkPackage}::update_temporal_numeric_value_evm_input_vec::new`,
32
+ arguments: [
33
+ tx.pure.vector('vector<u8>', ids),
34
+ tx.pure.vector('u64', timestampNss),
35
+ tx.pure.vector('u128', magnitudes),
36
+ tx.pure.vector('bool', negatives),
37
+ tx.pure.vector('vector<u8>', publisherMerkleRoots),
38
+ tx.pure.vector('vector<u8>', valueComputeAlgHashes),
39
+ tx.pure.vector('vector<u8>', rs),
40
+ tx.pure.vector('vector<u8>', ss),
41
+ tx.pure.vector('u8', vs),
42
+ ],
43
+ });
44
+ tx.moveCall({
45
+ target: `${config.storkPackage}::stork::update_multiple_temporal_numeric_values_evm`,
46
+ arguments: [
47
+ tx.object(config.storkState),
48
+ updateInputVec,
49
+ feeCoin,
50
+ ],
51
+ });
52
+ }
53
+ export function estimateStorkUpdateFeeMist(updateCount, feePerUpdate = STORK_UPDATE_FEE_MIST) {
54
+ return feePerUpdate * BigInt(updateCount);
55
+ }
56
+ //# sourceMappingURL=storkOracle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storkOracle.mjs","sourceRoot":"","sources":["../src/storkOracle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zofai/zo-sdk",
3
3
  "type": "module",
4
- "version": "0.2.14",
4
+ "version": "0.2.15",
5
5
  "author": "zo",
6
6
  "exports": {
7
7
  ".": {
@@ -48,7 +48,7 @@ export abstract class BaseDataAPI extends OracleAPI implements IBaseDataAPI {
48
48
  connectionURL: string,
49
49
  lpToken: LPToken,
50
50
  ) {
51
- super(network, provider, connectionURL, lpToken)
51
+ super(network, provider, connectionURL, lpToken, apiEndpoint)
52
52
  this.provider = provider
53
53
  this.apiEndpoint = apiEndpoint
54
54
  this.connectionURL = connectionURL
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "zo_core": {
3
3
  "package": "0x7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec",
4
- "upgraded_package": "0x49735fc18298a38c319442531415047b3a0a833652bbb8b4aa587ac527c5dd65",
4
+ "upgraded_package": "0xca86fc435d91d1a6d56bcf20be99dcf21e61923cd30ee46b5930463fbce7d98f",
5
5
  "upgrade_cap": "0x2f67d379d3b9e256a9c4079de50f4bd336dcbda1bd90d1fcd61a9cc1dc369d69",
6
6
  "admin_cap": "0x63af8e78701327be98e0c44967389148c374f4ea7c7cf8acf64957b705ffd02d",
7
7
  "market": "0x3310c794d0bbc4b0421d2fedc74fbd5a028b09fe4d396cd5458786f4c52fa636",