zo-sdk 0.0.50 → 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.
Files changed (206) hide show
  1. package/README.md +272 -20
  2. package/dist/abstract/BaseAPI.cjs +117 -0
  3. package/dist/abstract/BaseAPI.cjs.map +1 -0
  4. package/dist/abstract/BaseAPI.d.cts +131 -0
  5. package/dist/abstract/BaseAPI.d.cts.map +1 -0
  6. package/dist/abstract/BaseAPI.d.mts +131 -0
  7. package/dist/abstract/BaseAPI.d.mts.map +1 -0
  8. package/dist/abstract/BaseAPI.mjs +113 -0
  9. package/dist/abstract/BaseAPI.mjs.map +1 -0
  10. package/dist/abstract/BaseDataAPI.cjs +139 -0
  11. package/dist/abstract/BaseDataAPI.cjs.map +1 -0
  12. package/dist/abstract/BaseDataAPI.d.cts +89 -0
  13. package/dist/abstract/BaseDataAPI.d.cts.map +1 -0
  14. package/dist/abstract/BaseDataAPI.d.mts +89 -0
  15. package/dist/abstract/BaseDataAPI.d.mts.map +1 -0
  16. package/dist/abstract/BaseDataAPI.mjs +135 -0
  17. package/dist/abstract/BaseDataAPI.mjs.map +1 -0
  18. package/dist/abstract/index.cjs +12 -0
  19. package/dist/abstract/index.cjs.map +1 -0
  20. package/dist/abstract/index.d.cts +7 -0
  21. package/dist/abstract/index.d.cts.map +1 -0
  22. package/dist/abstract/index.d.mts +7 -0
  23. package/dist/abstract/index.d.mts.map +1 -0
  24. package/dist/abstract/index.mjs +7 -0
  25. package/dist/abstract/index.mjs.map +1 -0
  26. package/dist/bcs.cjs +42 -0
  27. package/dist/bcs.cjs.map +1 -0
  28. package/dist/bcs.d.cts +91 -0
  29. package/dist/bcs.d.cts.map +1 -0
  30. package/dist/bcs.d.mts +91 -0
  31. package/dist/bcs.d.mts.map +1 -0
  32. package/dist/bcs.mjs +39 -0
  33. package/dist/bcs.mjs.map +1 -0
  34. package/dist/consts/deployments-slp-mainnet.json +710 -0
  35. package/dist/consts/deployments-slp-testnet.json +109 -0
  36. package/dist/consts/deployments-usdz-mainnet.json +180 -0
  37. package/dist/consts/deployments-usdz-testnet.json +98 -0
  38. package/dist/consts/{deployments-mainnet.json → deployments-zlp-mainnet.json} +278 -42
  39. package/dist/consts/index.cjs +40 -8
  40. package/dist/consts/index.cjs.map +1 -1
  41. package/dist/consts/index.d.cts +81 -11
  42. package/dist/consts/index.d.cts.map +1 -1
  43. package/dist/consts/index.d.mts +81 -11
  44. package/dist/consts/index.d.mts.map +1 -1
  45. package/dist/consts/index.mjs +39 -7
  46. package/dist/consts/index.mjs.map +1 -1
  47. package/dist/consts/price_id_to_object_id.mainnet.json +9 -1
  48. package/dist/data.cjs +2 -2
  49. package/dist/data.cjs.map +1 -1
  50. package/dist/data.mjs +2 -2
  51. package/dist/data.mjs.map +1 -1
  52. package/dist/factory/SDKFactory.cjs +185 -0
  53. package/dist/factory/SDKFactory.cjs.map +1 -0
  54. package/dist/factory/SDKFactory.d.cts +74 -0
  55. package/dist/factory/SDKFactory.d.cts.map +1 -0
  56. package/dist/factory/SDKFactory.d.mts +74 -0
  57. package/dist/factory/SDKFactory.d.mts.map +1 -0
  58. package/dist/factory/SDKFactory.mjs +179 -0
  59. package/dist/factory/SDKFactory.mjs.map +1 -0
  60. package/dist/implementations/SLPAPI.cjs +829 -0
  61. package/dist/implementations/SLPAPI.cjs.map +1 -0
  62. package/dist/implementations/SLPAPI.d.cts +120 -0
  63. package/dist/implementations/SLPAPI.d.cts.map +1 -0
  64. package/dist/implementations/SLPAPI.d.mts +120 -0
  65. package/dist/implementations/SLPAPI.d.mts.map +1 -0
  66. package/dist/implementations/SLPAPI.mjs +825 -0
  67. package/dist/implementations/SLPAPI.mjs.map +1 -0
  68. package/dist/implementations/SLPDataAPI.cjs +916 -0
  69. package/dist/implementations/SLPDataAPI.cjs.map +1 -0
  70. package/dist/implementations/SLPDataAPI.d.cts +102 -0
  71. package/dist/implementations/SLPDataAPI.d.cts.map +1 -0
  72. package/dist/implementations/SLPDataAPI.d.mts +102 -0
  73. package/dist/implementations/SLPDataAPI.d.mts.map +1 -0
  74. package/dist/implementations/SLPDataAPI.mjs +912 -0
  75. package/dist/implementations/SLPDataAPI.mjs.map +1 -0
  76. package/dist/implementations/USDZAPI.cjs +522 -0
  77. package/dist/implementations/USDZAPI.cjs.map +1 -0
  78. package/dist/implementations/USDZAPI.d.cts +118 -0
  79. package/dist/implementations/USDZAPI.d.cts.map +1 -0
  80. package/dist/implementations/USDZAPI.d.mts +118 -0
  81. package/dist/implementations/USDZAPI.d.mts.map +1 -0
  82. package/dist/implementations/USDZAPI.mjs +518 -0
  83. package/dist/implementations/USDZAPI.mjs.map +1 -0
  84. package/dist/implementations/USDZDataAPI.cjs +697 -0
  85. package/dist/implementations/USDZDataAPI.cjs.map +1 -0
  86. package/dist/implementations/USDZDataAPI.d.cts +86 -0
  87. package/dist/implementations/USDZDataAPI.d.cts.map +1 -0
  88. package/dist/implementations/USDZDataAPI.d.mts +86 -0
  89. package/dist/implementations/USDZDataAPI.d.mts.map +1 -0
  90. package/dist/implementations/USDZDataAPI.mjs +693 -0
  91. package/dist/implementations/USDZDataAPI.mjs.map +1 -0
  92. package/dist/implementations/ZLPAPI.cjs +809 -0
  93. package/dist/implementations/ZLPAPI.cjs.map +1 -0
  94. package/dist/implementations/ZLPAPI.d.cts +121 -0
  95. package/dist/implementations/ZLPAPI.d.cts.map +1 -0
  96. package/dist/implementations/ZLPAPI.d.mts +121 -0
  97. package/dist/implementations/ZLPAPI.d.mts.map +1 -0
  98. package/dist/implementations/ZLPAPI.mjs +805 -0
  99. package/dist/implementations/ZLPAPI.mjs.map +1 -0
  100. package/dist/implementations/ZLPDataAPI.cjs +724 -0
  101. package/dist/implementations/ZLPDataAPI.cjs.map +1 -0
  102. package/dist/implementations/ZLPDataAPI.d.cts +83 -0
  103. package/dist/implementations/ZLPDataAPI.d.cts.map +1 -0
  104. package/dist/implementations/ZLPDataAPI.d.mts +83 -0
  105. package/dist/implementations/ZLPDataAPI.d.mts.map +1 -0
  106. package/dist/implementations/ZLPDataAPI.mjs +720 -0
  107. package/dist/implementations/ZLPDataAPI.mjs.map +1 -0
  108. package/dist/implementations/index.cjs +22 -0
  109. package/dist/implementations/index.cjs.map +1 -0
  110. package/dist/implementations/index.d.cts +11 -0
  111. package/dist/implementations/index.d.cts.map +1 -0
  112. package/dist/implementations/index.d.mts +11 -0
  113. package/dist/implementations/index.d.mts.map +1 -0
  114. package/dist/implementations/index.mjs +13 -0
  115. package/dist/implementations/index.mjs.map +1 -0
  116. package/dist/index.cjs +47 -0
  117. package/dist/index.cjs.map +1 -1
  118. package/dist/index.d.cts +45 -0
  119. package/dist/index.d.cts.map +1 -1
  120. package/dist/index.d.mts +45 -0
  121. package/dist/index.d.mts.map +1 -1
  122. package/dist/index.mjs +45 -0
  123. package/dist/index.mjs.map +1 -1
  124. package/dist/interfaces/base.cjs +8 -0
  125. package/dist/interfaces/base.cjs.map +1 -0
  126. package/dist/interfaces/base.d.cts +293 -0
  127. package/dist/interfaces/base.d.cts.map +1 -0
  128. package/dist/interfaces/base.d.mts +293 -0
  129. package/dist/interfaces/base.d.mts.map +1 -0
  130. package/dist/interfaces/base.mjs +6 -0
  131. package/dist/interfaces/base.mjs.map +1 -0
  132. package/dist/interfaces/index.cjs +29 -0
  133. package/dist/interfaces/index.cjs.map +1 -0
  134. package/dist/interfaces/index.d.cts +13 -0
  135. package/dist/interfaces/index.d.cts.map +1 -0
  136. package/dist/interfaces/index.d.mts +13 -0
  137. package/dist/interfaces/index.d.mts.map +1 -0
  138. package/dist/interfaces/index.mjs +13 -0
  139. package/dist/interfaces/index.mjs.map +1 -0
  140. package/dist/interfaces/slp.cjs +9 -0
  141. package/dist/interfaces/slp.cjs.map +1 -0
  142. package/dist/interfaces/slp.d.cts +115 -0
  143. package/dist/interfaces/slp.d.cts.map +1 -0
  144. package/dist/interfaces/slp.d.mts +115 -0
  145. package/dist/interfaces/slp.d.mts.map +1 -0
  146. package/dist/interfaces/slp.mjs +7 -0
  147. package/dist/interfaces/slp.mjs.map +1 -0
  148. package/dist/interfaces/usdz.cjs +7 -0
  149. package/dist/interfaces/usdz.cjs.map +1 -0
  150. package/dist/interfaces/usdz.d.cts +40 -0
  151. package/dist/interfaces/usdz.d.cts.map +1 -0
  152. package/dist/interfaces/usdz.d.mts +40 -0
  153. package/dist/interfaces/usdz.d.mts.map +1 -0
  154. package/dist/interfaces/usdz.mjs +6 -0
  155. package/dist/interfaces/usdz.mjs.map +1 -0
  156. package/dist/interfaces/zlp.cjs +7 -0
  157. package/dist/interfaces/zlp.cjs.map +1 -0
  158. package/dist/interfaces/zlp.d.cts +45 -0
  159. package/dist/interfaces/zlp.d.cts.map +1 -0
  160. package/dist/interfaces/zlp.d.mts +45 -0
  161. package/dist/interfaces/zlp.d.mts.map +1 -0
  162. package/dist/interfaces/zlp.mjs +6 -0
  163. package/dist/interfaces/zlp.mjs.map +1 -0
  164. package/dist/oracle.cjs +7 -35
  165. package/dist/oracle.cjs.map +1 -1
  166. package/dist/oracle.d.cts +3 -4
  167. package/dist/oracle.d.cts.map +1 -1
  168. package/dist/oracle.d.mts +3 -4
  169. package/dist/oracle.d.mts.map +1 -1
  170. package/dist/oracle.mjs +8 -32
  171. package/dist/oracle.mjs.map +1 -1
  172. package/package.json +1 -1
  173. package/src/abstract/BaseAPI.ts +429 -0
  174. package/src/abstract/BaseDataAPI.ts +204 -0
  175. package/src/abstract/index.ts +7 -0
  176. package/src/bcs.ts +45 -0
  177. package/src/consts/deployments-slp-mainnet.json +710 -0
  178. package/src/consts/deployments-slp-testnet.json +109 -0
  179. package/src/consts/deployments-usdz-mainnet.json +180 -0
  180. package/src/consts/deployments-usdz-testnet.json +98 -0
  181. package/src/consts/{deployments-mainnet.json → deployments-zlp-mainnet.json} +279 -43
  182. package/src/consts/index.ts +134 -39
  183. package/src/consts/price_id_to_object_id.mainnet.json +10 -2
  184. package/src/data.ts +2 -2
  185. package/src/factory/SDKFactory.ts +282 -0
  186. package/src/implementations/SLPAPI.ts +1207 -0
  187. package/src/implementations/SLPDataAPI.ts +1188 -0
  188. package/src/implementations/USDZAPI.ts +715 -0
  189. package/src/implementations/USDZDataAPI.ts +826 -0
  190. package/src/implementations/ZLPAPI.ts +1130 -0
  191. package/src/implementations/ZLPDataAPI.ts +856 -0
  192. package/src/implementations/index.ts +14 -0
  193. package/src/index.ts +53 -0
  194. package/src/interfaces/base.ts +556 -0
  195. package/src/interfaces/index.ts +45 -0
  196. package/src/interfaces/slp.ts +156 -0
  197. package/src/interfaces/usdz.ts +71 -0
  198. package/src/interfaces/zlp.ts +96 -0
  199. package/src/oracle.ts +12 -42
  200. package/tsconfig.json +4 -2
  201. package/dist/consts/staking/deployments-mainnet.json +0 -12
  202. package/dist/consts/staking/deployments-testnet.json +0 -11
  203. package/src/consts/staking/deployments-mainnet.json +0 -12
  204. package/src/consts/staking/deployments-testnet.json +0 -11
  205. /package/dist/consts/{deployments-testnet.json → deployments-zlp-testnet.json} +0 -0
  206. /package/src/consts/{deployments-testnet.json → deployments-zlp-testnet.json} +0 -0
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Abstract base class for all DataAPI implementations
3
+ * Provides common functionality and enforces interface contracts
4
+ */
5
+ import { OracleAPI } from "../oracle.mjs";
6
+ export class BaseDataAPI extends OracleAPI {
7
+ constructor(network, provider, apiEndpoint, connectionURL, lpToken) {
8
+ super(network, provider, connectionURL, lpToken);
9
+ // Cache management
10
+ this.vaultInfoCache = {};
11
+ this.symbolInfoCache = {};
12
+ this.marketInfoCache = null;
13
+ this.positionConfigCache = {};
14
+ this.rebaseFeeModelCache = null;
15
+ this.lastUpdate = 0;
16
+ this.CACHE_DURATION = 1000 * 60 * 3; // 3 minutes
17
+ this.provider = provider;
18
+ this.apiEndpoint = apiEndpoint;
19
+ this.connectionURL = connectionURL;
20
+ this.lpToken = lpToken;
21
+ }
22
+ /**
23
+ * Validates and clears cache if expired
24
+ */
25
+ validateCache() {
26
+ super.validateCache();
27
+ if (this.lastUpdate + this.CACHE_DURATION < Date.now()) {
28
+ this.clearCache();
29
+ }
30
+ }
31
+ /**
32
+ * Clears all cached data
33
+ */
34
+ clearCache() {
35
+ this.lastUpdate = Date.now();
36
+ this.vaultInfoCache = {};
37
+ this.symbolInfoCache = {};
38
+ this.marketInfoCache = null;
39
+ this.positionConfigCache = {};
40
+ this.rebaseFeeModelCache = null;
41
+ }
42
+ /**
43
+ * Gets cached vault info or fetches if not cached
44
+ */
45
+ async getCachedVaultInfo(vault) {
46
+ this.validateCache();
47
+ if (!this.vaultInfoCache[vault]) {
48
+ this.vaultInfoCache[vault] = await this.getVaultInfo(vault);
49
+ }
50
+ return this.vaultInfoCache[vault];
51
+ }
52
+ /**
53
+ * Gets cached symbol info or fetches if not cached
54
+ */
55
+ async getCachedSymbolInfo(tokenId, long) {
56
+ this.validateCache();
57
+ const key = `${tokenId}_${long}`;
58
+ if (!this.symbolInfoCache[key]) {
59
+ this.symbolInfoCache[key] = await this.getSymbolInfo(tokenId, long);
60
+ }
61
+ return this.symbolInfoCache[key];
62
+ }
63
+ /**
64
+ * Gets cached market info or fetches if not cached
65
+ */
66
+ async getCachedMarketInfo() {
67
+ this.validateCache();
68
+ if (!this.marketInfoCache) {
69
+ this.marketInfoCache = await this.getMarketInfo();
70
+ }
71
+ return this.marketInfoCache;
72
+ }
73
+ /**
74
+ * Gets cached position config or fetches if not cached
75
+ */
76
+ async getCachedPositionConfig(indexToken, long) {
77
+ this.validateCache();
78
+ const key = `${indexToken}_${long}`;
79
+ if (!this.positionConfigCache[key]) {
80
+ this.positionConfigCache[key] = await this.getPositionConfig(indexToken, long);
81
+ }
82
+ return this.positionConfigCache[key];
83
+ }
84
+ /**
85
+ * Gets cached rebase fee model or fetches if not cached
86
+ */
87
+ async getCachedRebaseFeeModel() {
88
+ this.validateCache();
89
+ if (!this.rebaseFeeModelCache) {
90
+ this.rebaseFeeModelCache = await this.getRebaseFeeModel();
91
+ }
92
+ return this.rebaseFeeModelCache;
93
+ }
94
+ /**
95
+ * Helper method to handle API requests with error handling
96
+ */
97
+ async makeAPIRequest(endpoint) {
98
+ try {
99
+ const response = await fetch(`${this.apiEndpoint}${endpoint}`);
100
+ if (!response.ok) {
101
+ throw new Error(`HTTP error! status: ${response.status}`);
102
+ }
103
+ return await response.json();
104
+ }
105
+ catch (error) {
106
+ console.error(`Error fetching data from ${endpoint}:`, error);
107
+ throw error;
108
+ }
109
+ }
110
+ /**
111
+ * Helper method to parse numeric values from API responses
112
+ */
113
+ parseNumericValue(value, decimals = 0) {
114
+ if (typeof value === 'string') {
115
+ return Number(value) / Math.pow(10, decimals);
116
+ }
117
+ if (typeof value === 'bigint') {
118
+ return Number(value) / Math.pow(10, decimals);
119
+ }
120
+ return Number(value) || 0;
121
+ }
122
+ /**
123
+ * Helper method to parse bigint values from API responses
124
+ */
125
+ parseBigIntValue(value) {
126
+ if (typeof value === 'string') {
127
+ return BigInt(value);
128
+ }
129
+ if (typeof value === 'bigint') {
130
+ return value;
131
+ }
132
+ return BigInt(Number(value) || 0);
133
+ }
134
+ }
135
+ //# sourceMappingURL=BaseDataAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDataAPI.mjs","sourceRoot":"","sources":["../../src/abstract/BaseDataAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Abstract base classes for SDK implementations
4
+ * Provides common functionality and enforces interface contracts
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BaseAPI = exports.BaseDataAPI = void 0;
8
+ var BaseDataAPI_1 = require("./BaseDataAPI.cjs");
9
+ Object.defineProperty(exports, "BaseDataAPI", { enumerable: true, get: function () { return BaseDataAPI_1.BaseDataAPI; } });
10
+ var BaseAPI_1 = require("./BaseAPI.cjs");
11
+ Object.defineProperty(exports, "BaseAPI", { enumerable: true, get: function () { return BaseAPI_1.BaseAPI; } });
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/abstract/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,yCAAmC;AAA1B,kGAAA,OAAO,OAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Abstract base classes for SDK implementations
3
+ * Provides common functionality and enforces interface contracts
4
+ */
5
+ export { BaseDataAPI } from "./BaseDataAPI.cjs";
6
+ export { BaseAPI } from "./BaseAPI.cjs";
7
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/abstract/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,0BAAqB;AAC3C,OAAO,EAAE,OAAO,EAAE,sBAAiB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Abstract base classes for SDK implementations
3
+ * Provides common functionality and enforces interface contracts
4
+ */
5
+ export { BaseDataAPI } from "./BaseDataAPI.mjs";
6
+ export { BaseAPI } from "./BaseAPI.mjs";
7
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/abstract/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,0BAAqB;AAC3C,OAAO,EAAE,OAAO,EAAE,sBAAiB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Abstract base classes for SDK implementations
3
+ * Provides common functionality and enforces interface contracts
4
+ */
5
+ export { BaseDataAPI } from "./BaseDataAPI.mjs";
6
+ export { BaseAPI } from "./BaseAPI.mjs";
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/abstract/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,0BAAqB;AAC3C,OAAO,EAAE,OAAO,EAAE,sBAAiB"}
package/dist/bcs.cjs ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbolsValuation = exports.VaultsValuation = exports.VaultInfo = exports.AggPrice = exports.SRate = exports.SDecimal = exports.Decimal = exports.Rate = void 0;
4
+ const bcs_1 = require("@mysten/bcs");
5
+ exports.Rate = bcs_1.bcs.u128();
6
+ exports.Decimal = bcs_1.bcs.u256();
7
+ exports.SDecimal = bcs_1.bcs.struct('SDecimal', {
8
+ is_positive: bcs_1.bcs.bool(),
9
+ value: bcs_1.bcs.u256(),
10
+ });
11
+ exports.SRate = bcs_1.bcs.struct('SRate', {
12
+ is_positive: bcs_1.bcs.bool(),
13
+ value: bcs_1.bcs.u128(),
14
+ });
15
+ // Agg price
16
+ exports.AggPrice = bcs_1.bcs.struct('AggPrice', {
17
+ price: bcs_1.bcs.u256(), // Decimal
18
+ precision: bcs_1.bcs.u64(),
19
+ });
20
+ // Market
21
+ exports.VaultInfo = bcs_1.bcs.struct('VaultInfo', {
22
+ price: exports.AggPrice,
23
+ value: bcs_1.bcs.u256(), // Decimal
24
+ });
25
+ exports.VaultsValuation = bcs_1.bcs.struct('VaultsValuation', {
26
+ timestamp: bcs_1.bcs.u64(),
27
+ num: bcs_1.bcs.u64(),
28
+ handled: bcs_1.bcs.vector(bcs_1.bcs.struct('Entry', {
29
+ key: bcs_1.bcs.string(), // TypeName
30
+ value: exports.VaultInfo,
31
+ })),
32
+ total_weight: bcs_1.bcs.u256(), // Decimal
33
+ value: bcs_1.bcs.u256(), // Decimal
34
+ });
35
+ exports.SymbolsValuation = bcs_1.bcs.struct('SymbolsValuation', {
36
+ timestamp: bcs_1.bcs.u64(),
37
+ num: bcs_1.bcs.u64(),
38
+ lp_supply_amount: bcs_1.bcs.u256(), // Decimal
39
+ handled: bcs_1.bcs.vector(bcs_1.bcs.string()), // vector<TypeName>
40
+ value: exports.SDecimal,
41
+ });
42
+ //# sourceMappingURL=bcs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.cjs","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAErB,QAAA,IAAI,GAAG,SAAG,CAAC,IAAI,EAAE,CAAC;AAClB,QAAA,OAAO,GAAG,SAAG,CAAC,IAAI,EAAE,CAAC;AAErB,QAAA,QAAQ,GAAG,SAAG,CAAC,MAAM,CAAC,UAAU,EAAE;IAC7C,WAAW,EAAE,SAAG,CAAC,IAAI,EAAE;IACvB,KAAK,EAAE,SAAG,CAAC,IAAI,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,KAAK,GAAG,SAAG,CAAC,MAAM,CAAC,OAAO,EAAE;IACvC,WAAW,EAAE,SAAG,CAAC,IAAI,EAAE;IACvB,KAAK,EAAE,SAAG,CAAC,IAAI,EAAE;CAClB,CAAC,CAAC;AAEH,YAAY;AACC,QAAA,QAAQ,GAAG,SAAG,CAAC,MAAM,CAAC,UAAU,EAAE;IAC7C,KAAK,EAAE,SAAG,CAAC,IAAI,EAAE,EAAE,UAAU;IAC7B,SAAS,EAAE,SAAG,CAAC,GAAG,EAAE;CACrB,CAAC,CAAC;AAEH,SAAS;AACI,QAAA,SAAS,GAAG,SAAG,CAAC,MAAM,CAAC,WAAW,EAAE;IAC/C,KAAK,EAAE,gBAAQ;IACf,KAAK,EAAE,SAAG,CAAC,IAAI,EAAE,EAAE,UAAU;CAC9B,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,SAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE;IAC3D,SAAS,EAAE,SAAG,CAAC,GAAG,EAAE;IACpB,GAAG,EAAE,SAAG,CAAC,GAAG,EAAE;IACd,OAAO,EAAE,SAAG,CAAC,MAAM,CAAC,SAAG,CAAC,MAAM,CAAC,OAAO,EAAE;QACtC,GAAG,EAAE,SAAG,CAAC,MAAM,EAAE,EAAE,WAAW;QAC9B,KAAK,EAAE,iBAAS;KACjB,CAAC,CAAC;IACH,YAAY,EAAE,SAAG,CAAC,IAAI,EAAE,EAAE,UAAU;IACpC,KAAK,EAAE,SAAG,CAAC,IAAI,EAAE,EAAE,UAAU;CAC9B,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,SAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC7D,SAAS,EAAE,SAAG,CAAC,GAAG,EAAE;IACpB,GAAG,EAAE,SAAG,CAAC,GAAG,EAAE;IACd,gBAAgB,EAAE,SAAG,CAAC,IAAI,EAAE,EAAE,UAAU;IACxC,OAAO,EAAE,SAAG,CAAC,MAAM,CAAC,SAAG,CAAC,MAAM,EAAE,CAAC,EAAE,mBAAmB;IACtD,KAAK,EAAE,gBAAQ;CAChB,CAAC,CAAC"}
package/dist/bcs.d.cts ADDED
@@ -0,0 +1,91 @@
1
+ export declare const Rate: import("@mysten/bcs").BcsType<string, string | number | bigint>;
2
+ export declare const Decimal: import("@mysten/bcs").BcsType<string, string | number | bigint>;
3
+ export declare const SDecimal: import("@mysten/bcs").BcsType<{
4
+ is_positive: boolean;
5
+ value: string;
6
+ }, {
7
+ is_positive: boolean;
8
+ value: string | number | bigint;
9
+ }>;
10
+ export declare const SRate: import("@mysten/bcs").BcsType<{
11
+ is_positive: boolean;
12
+ value: string;
13
+ }, {
14
+ is_positive: boolean;
15
+ value: string | number | bigint;
16
+ }>;
17
+ export declare const AggPrice: import("@mysten/bcs").BcsType<{
18
+ price: string;
19
+ precision: string;
20
+ }, {
21
+ price: string | number | bigint;
22
+ precision: string | number | bigint;
23
+ }>;
24
+ export declare const VaultInfo: import("@mysten/bcs").BcsType<{
25
+ price: {
26
+ price: string;
27
+ precision: string;
28
+ };
29
+ value: string;
30
+ }, {
31
+ price: {
32
+ price: string | number | bigint;
33
+ precision: string | number | bigint;
34
+ };
35
+ value: string | number | bigint;
36
+ }>;
37
+ export declare const VaultsValuation: import("@mysten/bcs").BcsType<{
38
+ timestamp: string;
39
+ num: string;
40
+ handled: {
41
+ key: string;
42
+ value: {
43
+ price: {
44
+ price: string;
45
+ precision: string;
46
+ };
47
+ value: string;
48
+ };
49
+ }[];
50
+ total_weight: string;
51
+ value: string;
52
+ }, {
53
+ timestamp: string | number | bigint;
54
+ num: string | number | bigint;
55
+ handled: Iterable<{
56
+ key: string;
57
+ value: {
58
+ price: {
59
+ price: string | number | bigint;
60
+ precision: string | number | bigint;
61
+ };
62
+ value: string | number | bigint;
63
+ };
64
+ }> & {
65
+ length: number;
66
+ };
67
+ total_weight: string | number | bigint;
68
+ value: string | number | bigint;
69
+ }>;
70
+ export declare const SymbolsValuation: import("@mysten/bcs").BcsType<{
71
+ timestamp: string;
72
+ num: string;
73
+ lp_supply_amount: string;
74
+ handled: string[];
75
+ value: {
76
+ is_positive: boolean;
77
+ value: string;
78
+ };
79
+ }, {
80
+ timestamp: string | number | bigint;
81
+ num: string | number | bigint;
82
+ lp_supply_amount: string | number | bigint;
83
+ handled: Iterable<string> & {
84
+ length: number;
85
+ };
86
+ value: {
87
+ is_positive: boolean;
88
+ value: string | number | bigint;
89
+ };
90
+ }>;
91
+ //# sourceMappingURL=bcs.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.d.cts","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,iEAAa,CAAC;AAC/B,eAAO,MAAM,OAAO,iEAAa,CAAC;AAElC,eAAO,MAAM,QAAQ;;;;;;EAGnB,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;EAGhB,CAAC;AAGH,eAAO,MAAM,QAAQ;;;;;;EAGnB,CAAC;AAGH,eAAO,MAAM,SAAS;;;;;;;;;;;;EAGpB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC"}
package/dist/bcs.d.mts ADDED
@@ -0,0 +1,91 @@
1
+ export declare const Rate: import("@mysten/bcs").BcsType<string, string | number | bigint>;
2
+ export declare const Decimal: import("@mysten/bcs").BcsType<string, string | number | bigint>;
3
+ export declare const SDecimal: import("@mysten/bcs").BcsType<{
4
+ is_positive: boolean;
5
+ value: string;
6
+ }, {
7
+ is_positive: boolean;
8
+ value: string | number | bigint;
9
+ }>;
10
+ export declare const SRate: import("@mysten/bcs").BcsType<{
11
+ is_positive: boolean;
12
+ value: string;
13
+ }, {
14
+ is_positive: boolean;
15
+ value: string | number | bigint;
16
+ }>;
17
+ export declare const AggPrice: import("@mysten/bcs").BcsType<{
18
+ price: string;
19
+ precision: string;
20
+ }, {
21
+ price: string | number | bigint;
22
+ precision: string | number | bigint;
23
+ }>;
24
+ export declare const VaultInfo: import("@mysten/bcs").BcsType<{
25
+ price: {
26
+ price: string;
27
+ precision: string;
28
+ };
29
+ value: string;
30
+ }, {
31
+ price: {
32
+ price: string | number | bigint;
33
+ precision: string | number | bigint;
34
+ };
35
+ value: string | number | bigint;
36
+ }>;
37
+ export declare const VaultsValuation: import("@mysten/bcs").BcsType<{
38
+ timestamp: string;
39
+ num: string;
40
+ handled: {
41
+ key: string;
42
+ value: {
43
+ price: {
44
+ price: string;
45
+ precision: string;
46
+ };
47
+ value: string;
48
+ };
49
+ }[];
50
+ total_weight: string;
51
+ value: string;
52
+ }, {
53
+ timestamp: string | number | bigint;
54
+ num: string | number | bigint;
55
+ handled: Iterable<{
56
+ key: string;
57
+ value: {
58
+ price: {
59
+ price: string | number | bigint;
60
+ precision: string | number | bigint;
61
+ };
62
+ value: string | number | bigint;
63
+ };
64
+ }> & {
65
+ length: number;
66
+ };
67
+ total_weight: string | number | bigint;
68
+ value: string | number | bigint;
69
+ }>;
70
+ export declare const SymbolsValuation: import("@mysten/bcs").BcsType<{
71
+ timestamp: string;
72
+ num: string;
73
+ lp_supply_amount: string;
74
+ handled: string[];
75
+ value: {
76
+ is_positive: boolean;
77
+ value: string;
78
+ };
79
+ }, {
80
+ timestamp: string | number | bigint;
81
+ num: string | number | bigint;
82
+ lp_supply_amount: string | number | bigint;
83
+ handled: Iterable<string> & {
84
+ length: number;
85
+ };
86
+ value: {
87
+ is_positive: boolean;
88
+ value: string | number | bigint;
89
+ };
90
+ }>;
91
+ //# sourceMappingURL=bcs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.d.mts","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,iEAAa,CAAC;AAC/B,eAAO,MAAM,OAAO,iEAAa,CAAC;AAElC,eAAO,MAAM,QAAQ;;;;;;EAGnB,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;EAGhB,CAAC;AAGH,eAAO,MAAM,QAAQ;;;;;;EAGnB,CAAC;AAGH,eAAO,MAAM,SAAS;;;;;;;;;;;;EAGpB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC"}
package/dist/bcs.mjs ADDED
@@ -0,0 +1,39 @@
1
+ import { bcs } from "@mysten/bcs";
2
+ export const Rate = bcs.u128();
3
+ export const Decimal = bcs.u256();
4
+ export const SDecimal = bcs.struct('SDecimal', {
5
+ is_positive: bcs.bool(),
6
+ value: bcs.u256(),
7
+ });
8
+ export const SRate = bcs.struct('SRate', {
9
+ is_positive: bcs.bool(),
10
+ value: bcs.u128(),
11
+ });
12
+ // Agg price
13
+ export const AggPrice = bcs.struct('AggPrice', {
14
+ price: bcs.u256(), // Decimal
15
+ precision: bcs.u64(),
16
+ });
17
+ // Market
18
+ export const VaultInfo = bcs.struct('VaultInfo', {
19
+ price: AggPrice,
20
+ value: bcs.u256(), // Decimal
21
+ });
22
+ export const VaultsValuation = bcs.struct('VaultsValuation', {
23
+ timestamp: bcs.u64(),
24
+ num: bcs.u64(),
25
+ handled: bcs.vector(bcs.struct('Entry', {
26
+ key: bcs.string(), // TypeName
27
+ value: VaultInfo,
28
+ })),
29
+ total_weight: bcs.u256(), // Decimal
30
+ value: bcs.u256(), // Decimal
31
+ });
32
+ export const SymbolsValuation = bcs.struct('SymbolsValuation', {
33
+ timestamp: bcs.u64(),
34
+ num: bcs.u64(),
35
+ lp_supply_amount: bcs.u256(), // Decimal
36
+ handled: bcs.vector(bcs.string()), // vector<TypeName>
37
+ value: SDecimal,
38
+ });
39
+ //# sourceMappingURL=bcs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.mjs","sourceRoot":"","sources":["../src/bcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,oBAAoB;AAElC,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE;IAC7C,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE;IACvB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;IACvC,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE;IACvB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE;CAClB,CAAC,CAAC;AAEH,YAAY;AACZ,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE;IAC7C,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU;IAC7B,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;CACrB,CAAC,CAAC;AAEH,SAAS;AACT,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;IAC/C,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE;IAC3D,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;IACpB,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;IACd,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;QACtC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW;QAC9B,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU;IACpC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC7D,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;IACpB,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;IACd,gBAAgB,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU;IACxC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,mBAAmB;IACtD,KAAK,EAAE,QAAQ;CAChB,CAAC,CAAC"}