@waterx/sdk 4.0.1 → 4.3.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 (130) hide show
  1. package/README.md +37 -17
  2. package/dist/cjs/src/account/account.js +2 -1
  3. package/dist/cjs/src/account/config.d.ts +3 -2
  4. package/dist/cjs/src/account/funding/balance.d.ts +25 -2
  5. package/dist/cjs/src/account/funding/balance.js +36 -24
  6. package/dist/cjs/src/account/funding/credit.js +6 -10
  7. package/dist/cjs/src/constants.d.ts +15 -1
  8. package/dist/cjs/src/constants.js +18 -4
  9. package/dist/cjs/src/generated/waterx_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  10. package/dist/cjs/src/generated/waterx_rule/deps/bucket_v2_framework/float.js +13 -0
  11. package/dist/cjs/src/generated/waterx_rule/deps/sui/vec_map.d.ts +36 -0
  12. package/dist/cjs/src/generated/waterx_rule/deps/sui/vec_map.js +31 -0
  13. package/dist/cjs/src/generated/waterx_rule/waterx_rule.d.ts +813 -0
  14. package/dist/cjs/src/generated/waterx_rule/waterx_rule.js +946 -0
  15. package/dist/cjs/src/oracle/aggregate.d.ts +23 -21
  16. package/dist/cjs/src/oracle/aggregate.js +133 -59
  17. package/dist/cjs/src/oracle/config.d.ts +82 -41
  18. package/dist/cjs/src/oracle/config.js +0 -42
  19. package/dist/cjs/src/oracle/host.d.ts +26 -11
  20. package/dist/cjs/src/oracle/index.d.ts +6 -2
  21. package/dist/cjs/src/oracle/index.js +36 -8
  22. package/dist/cjs/src/oracle/price-update-rule.d.ts +16 -10
  23. package/dist/cjs/src/oracle/price-update-rule.js +3 -3
  24. package/dist/cjs/src/oracle/pyth.d.ts +44 -0
  25. package/dist/cjs/src/oracle/pyth.js +48 -6
  26. package/dist/cjs/src/oracle/read-plane.d.ts +70 -0
  27. package/dist/cjs/src/oracle/read-plane.js +78 -0
  28. package/dist/cjs/src/oracle/rule-registry.d.ts +14 -11
  29. package/dist/cjs/src/oracle/rule-registry.js +16 -11
  30. package/dist/cjs/src/oracle/rules/pyth-core-rule.js +4 -4
  31. package/dist/cjs/src/oracle/rules/pyth-lazer-rule.d.ts +21 -0
  32. package/dist/cjs/src/oracle/rules/pyth-lazer-rule.js +29 -4
  33. package/dist/cjs/src/oracle/rules/pyth-rule.js +5 -4
  34. package/dist/cjs/src/oracle/rules/waterx-rule.d.ts +126 -0
  35. package/dist/cjs/src/oracle/rules/waterx-rule.js +312 -0
  36. package/dist/cjs/src/perp/client.d.ts +71 -20
  37. package/dist/cjs/src/perp/client.js +35 -13
  38. package/dist/cjs/src/perp/config.d.ts +6 -7
  39. package/dist/cjs/src/perp/config.js +12 -11
  40. package/dist/cjs/src/perp/constants.d.ts +0 -6
  41. package/dist/cjs/src/perp/constants.js +11 -9
  42. package/dist/cjs/src/perp/fetch/account.js +3 -0
  43. package/dist/cjs/src/perp/fetch/bridge.js +2 -1
  44. package/dist/cjs/src/perp/fetch/market.js +2 -1
  45. package/dist/cjs/src/perp/fetch/positions.d.ts +16 -10
  46. package/dist/cjs/src/perp/fetch/positions.js +23 -20
  47. package/dist/cjs/src/perp/index.d.ts +9 -5
  48. package/dist/cjs/src/perp/index.js +16 -7
  49. package/dist/cjs/src/perp/liq-view.d.ts +64 -0
  50. package/dist/cjs/src/perp/liq-view.js +74 -0
  51. package/dist/cjs/src/perp/user/order.d.ts +13 -0
  52. package/dist/cjs/src/perp/user/order.js +30 -16
  53. package/dist/cjs/src/perp/user/staking.js +3 -2
  54. package/dist/cjs/src/perp/user/trading.js +25 -24
  55. package/dist/cjs/src/perp/user/wlp.js +6 -5
  56. package/dist/cjs/src/prediction/utils.d.ts +11 -2
  57. package/dist/cjs/src/prediction/utils.js +22 -22
  58. package/dist/cjs/src/unified-client.d.ts +41 -15
  59. package/dist/cjs/src/unified-client.js +4 -2
  60. package/dist/cjs/src/utils/format.d.ts +14 -0
  61. package/dist/cjs/src/utils/format.js +24 -0
  62. package/dist/cjs/src/utils/math.d.ts +304 -12
  63. package/dist/cjs/src/utils/math.js +397 -17
  64. package/dist/cjs/src/utils/validate.d.ts +69 -0
  65. package/dist/cjs/src/utils/validate.js +183 -0
  66. package/dist/src/account/account.js +2 -1
  67. package/dist/src/account/config.d.ts +3 -2
  68. package/dist/src/account/funding/balance.d.ts +25 -2
  69. package/dist/src/account/funding/balance.js +36 -24
  70. package/dist/src/account/funding/credit.js +6 -10
  71. package/dist/src/constants.d.ts +15 -1
  72. package/dist/src/constants.js +17 -3
  73. package/dist/src/generated/waterx_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  74. package/dist/src/generated/waterx_rule/deps/bucket_v2_framework/float.js +10 -0
  75. package/dist/src/generated/waterx_rule/deps/sui/vec_map.d.ts +36 -0
  76. package/dist/src/generated/waterx_rule/deps/sui/vec_map.js +27 -0
  77. package/dist/src/generated/waterx_rule/waterx_rule.d.ts +813 -0
  78. package/dist/src/generated/waterx_rule/waterx_rule.js +855 -0
  79. package/dist/src/oracle/aggregate.d.ts +23 -21
  80. package/dist/src/oracle/aggregate.js +133 -59
  81. package/dist/src/oracle/config.d.ts +82 -41
  82. package/dist/src/oracle/config.js +1 -41
  83. package/dist/src/oracle/host.d.ts +26 -11
  84. package/dist/src/oracle/index.d.ts +6 -2
  85. package/dist/src/oracle/index.js +27 -9
  86. package/dist/src/oracle/price-update-rule.d.ts +16 -10
  87. package/dist/src/oracle/price-update-rule.js +3 -3
  88. package/dist/src/oracle/pyth.d.ts +44 -0
  89. package/dist/src/oracle/pyth.js +45 -5
  90. package/dist/src/oracle/read-plane.d.ts +70 -0
  91. package/dist/src/oracle/read-plane.js +74 -0
  92. package/dist/src/oracle/rule-registry.d.ts +14 -11
  93. package/dist/src/oracle/rule-registry.js +16 -11
  94. package/dist/src/oracle/rules/pyth-core-rule.js +5 -5
  95. package/dist/src/oracle/rules/pyth-lazer-rule.d.ts +21 -0
  96. package/dist/src/oracle/rules/pyth-lazer-rule.js +28 -3
  97. package/dist/src/oracle/rules/pyth-rule.js +5 -4
  98. package/dist/src/oracle/rules/waterx-rule.d.ts +126 -0
  99. package/dist/src/oracle/rules/waterx-rule.js +305 -0
  100. package/dist/src/perp/client.d.ts +71 -20
  101. package/dist/src/perp/client.js +36 -14
  102. package/dist/src/perp/config.d.ts +6 -7
  103. package/dist/src/perp/config.js +11 -9
  104. package/dist/src/perp/constants.d.ts +0 -6
  105. package/dist/src/perp/constants.js +10 -8
  106. package/dist/src/perp/fetch/account.js +3 -0
  107. package/dist/src/perp/fetch/bridge.js +2 -1
  108. package/dist/src/perp/fetch/market.js +2 -1
  109. package/dist/src/perp/fetch/positions.d.ts +16 -10
  110. package/dist/src/perp/fetch/positions.js +28 -20
  111. package/dist/src/perp/index.d.ts +9 -5
  112. package/dist/src/perp/index.js +6 -4
  113. package/dist/src/perp/liq-view.d.ts +64 -0
  114. package/dist/src/perp/liq-view.js +71 -0
  115. package/dist/src/perp/user/order.d.ts +13 -0
  116. package/dist/src/perp/user/order.js +30 -16
  117. package/dist/src/perp/user/staking.js +3 -2
  118. package/dist/src/perp/user/trading.js +25 -24
  119. package/dist/src/perp/user/wlp.js +6 -5
  120. package/dist/src/prediction/utils.d.ts +11 -2
  121. package/dist/src/prediction/utils.js +22 -22
  122. package/dist/src/unified-client.d.ts +41 -15
  123. package/dist/src/unified-client.js +4 -2
  124. package/dist/src/utils/format.d.ts +14 -0
  125. package/dist/src/utils/format.js +21 -0
  126. package/dist/src/utils/math.d.ts +304 -12
  127. package/dist/src/utils/math.js +394 -17
  128. package/dist/src/utils/validate.d.ts +69 -0
  129. package/dist/src/utils/validate.js +167 -0
  130. package/package.json +4 -1
@@ -0,0 +1,855 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ /** Nautilus-backed oracle rule for Binance, Bybit, and Gate.io prices. */
5
+ import { MoveStruct, normalizeMoveArguments } from "../utils/index.js";
6
+ import { bcs } from '@mysten/sui/bcs';
7
+ import * as float from "./deps/bucket_v2_framework/float.js";
8
+ import * as vec_map from "./deps/sui/vec_map.js";
9
+ const $moduleName = '@waterx/rule::waterx_rule';
10
+ export const WATERX_RULE = new MoveStruct({ name: `${$moduleName}::WATERX_RULE`, fields: {
11
+ dummy_field: bcs.bool()
12
+ } });
13
+ export const WaterxRule = new MoveStruct({ name: `${$moduleName}::WaterxRule`, fields: {
14
+ dummy_field: bcs.bool()
15
+ } });
16
+ export const PricePayload = new MoveStruct({ name: `${$moduleName}::PricePayload`, fields: {
17
+ ticker: bcs.string(),
18
+ sources: bcs.vector(bcs.u64()),
19
+ method: bcs.string(),
20
+ price_timestamp_ms: bcs.u64(),
21
+ price_n: bcs.u64(),
22
+ price_scale: bcs.u64(),
23
+ confidence_n: bcs.u64(),
24
+ confidence_scale: bcs.u64(),
25
+ max_source_deviation_bps: bcs.u64(),
26
+ num_sources: bcs.u8()
27
+ } });
28
+ export const BatchPriceItem = new MoveStruct({ name: `${$moduleName}::BatchPriceItem`, fields: {
29
+ symbol: bcs.string(),
30
+ ticker: bcs.string(),
31
+ sources: bcs.vector(bcs.u64()),
32
+ method: bcs.string(),
33
+ price_timestamp_ms: bcs.u64(),
34
+ price_n: bcs.u64(),
35
+ price_scale: bcs.u64(),
36
+ confidence_n: bcs.u64(),
37
+ confidence_scale: bcs.u64(),
38
+ max_source_deviation_bps: bcs.u64(),
39
+ num_sources: bcs.u8()
40
+ } });
41
+ export const BatchPricePayload = new MoveStruct({ name: `${$moduleName}::BatchPricePayload`, fields: {
42
+ items: bcs.vector(BatchPriceItem)
43
+ } });
44
+ export const FeedConfig = new MoveStruct({ name: `${$moduleName}::FeedConfig`, fields: {
45
+ ticker: bcs.string(),
46
+ sources: bcs.vector(bcs.u64()),
47
+ method: bcs.string(),
48
+ max_age_ms: bcs.u64(),
49
+ max_confidence_bps: bcs.u64(),
50
+ max_source_deviation_bps: bcs.u64(),
51
+ min_sources: bcs.u8()
52
+ } });
53
+ export const VerifiedPrice = new MoveStruct({ name: `${$moduleName}::VerifiedPrice`, fields: {
54
+ symbol: bcs.string(),
55
+ ticker: bcs.string(),
56
+ sources: bcs.vector(bcs.u64()),
57
+ method: bcs.string(),
58
+ price_timestamp_ms: bcs.u64(),
59
+ price: float.Float,
60
+ price_n: bcs.u64(),
61
+ price_scale: bcs.u64(),
62
+ confidence_n: bcs.u64(),
63
+ confidence_scale: bcs.u64(),
64
+ max_source_deviation_bps: bcs.u64(),
65
+ num_sources: bcs.u8(),
66
+ signed_timestamp_ms: bcs.u64()
67
+ } });
68
+ export const Config = new MoveStruct({ name: `${$moduleName}::Config`, fields: {
69
+ id: bcs.Address,
70
+ feed_map: vec_map.VecMap(bcs.string(), FeedConfig)
71
+ } });
72
+ export const SignedTsHwmKey = new MoveStruct({ name: `${$moduleName}::SignedTsHwmKey`, fields: {
73
+ symbol: bcs.string()
74
+ } });
75
+ export const HistoricalPriceVerified = new MoveStruct({ name: `${$moduleName}::HistoricalPriceVerified`, fields: {
76
+ symbol: bcs.string(),
77
+ ticker: bcs.string(),
78
+ sources: bcs.vector(bcs.u64()),
79
+ method: bcs.string(),
80
+ price_timestamp_ms: bcs.u64(),
81
+ price: bcs.u128(),
82
+ confidence: bcs.u128(),
83
+ max_source_deviation_bps: bcs.u64(),
84
+ num_sources: bcs.u8(),
85
+ signed_timestamp_ms: bcs.u64()
86
+ } });
87
+ export const BatchLatestUpdated = new MoveStruct({ name: `${$moduleName}::BatchLatestUpdated`, fields: {
88
+ count: bcs.u64(),
89
+ timestamp_ms: bcs.u64()
90
+ } });
91
+ /**
92
+ * Public Funs Verifies one Nautilus batch signature and updates one or more latest
93
+ * oracle prices. This function is only for current/latest data, never historical
94
+ * data. A single symbol is just a batch of one.
95
+ */
96
+ export function feedBatchLatest(options) {
97
+ const packageAddress = options.package ?? '@waterx/rule';
98
+ const argumentsTypes = [
99
+ null,
100
+ null,
101
+ '0x2::clock::Clock',
102
+ null,
103
+ null,
104
+ 'u64',
105
+ null,
106
+ 'vector<u8>'
107
+ ];
108
+ const parameterNames = ["oracleObj", "config", "enclaveConfig", "enclave", "timestampMs", "payload", "sig"];
109
+ return (tx) => tx.moveCall({
110
+ package: packageAddress,
111
+ module: 'waterx_rule',
112
+ function: 'feed_batch_latest',
113
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
114
+ });
115
+ }
116
+ /**
117
+ * Collect-only sibling of `feed_batch_latest` for the **dual-rule** latest path:
118
+ * verifies one Nautilus batch signature and feeds the single item whose symbol
119
+ * matches `collector.symbol()` into a caller-owned `PriceCollector`, WITHOUT
120
+ * calling `oracle::aggregate`. This lets one aggregator carry both a `WaterxRule`
121
+ * and (e.g.) a `PythRule` weight — the caller composes one collector across every
122
+ * weighted rule in the PTB (compose-then-aggregate, like `pyth_rule::feed`) and
123
+ * aggregates once.
124
+ *
125
+ * Abort vs abstain (WL-1963): unlike `feed_batch_latest`, which has no fallback
126
+ * and so aborts on any stale item, this path runs alongside Pyth/Supra. To let
127
+ * those cover a lagging TEE — the blast-radius bound in the GCP ADR — a
128
+ * _freshness_ miss ABSTAINS (records `none`, which `aggregator::remove_outliers`
129
+ * drops before the `weight_threshold` fail-closed check). A _config/integrity_
130
+ * mismatch (source / ticker / method / confidence / deviation) still ABORTS: an
131
+ * enclave whose signed payload disagrees with the on-chain feed config is a red
132
+ * flag, not a liveness blip. Bad signature, malformed batch, a future timestamp,
133
+ * and replay always abort.
134
+ *
135
+ * Every gate is identical to `feed_batch_item_latest`; only the abort-vs-abstain
136
+ * disposition of the two freshness gates differs, and the sink is the caller's
137
+ * collector rather than a fresh single-rule one.
138
+ */
139
+ export function collectBatchLatest(options) {
140
+ const packageAddress = options.package ?? '@waterx/rule';
141
+ const argumentsTypes = [
142
+ null,
143
+ null,
144
+ '0x2::clock::Clock',
145
+ null,
146
+ null,
147
+ 'u64',
148
+ null,
149
+ 'vector<u8>'
150
+ ];
151
+ const parameterNames = ["collector", "config", "enclaveConfig", "enclave", "timestampMs", "payload", "sig"];
152
+ return (tx) => tx.moveCall({
153
+ package: packageAddress,
154
+ module: 'waterx_rule',
155
+ function: 'collect_batch_latest',
156
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
157
+ });
158
+ }
159
+ /**
160
+ * Verifies a historical quote without touching `waterx_oracle`.
161
+ *
162
+ * `signed_timestamp_ms` is the fresh timestamp signed by Nautilus.
163
+ * `requested_price_timestamp_ms` is the historical price timestamp the caller
164
+ * requested from Nautilus. Consumers should still assert the returned proof's
165
+ * symbol and timestamp inside their own contract before using the price.
166
+ */
167
+ export function quoteForTimestamp(options) {
168
+ const packageAddress = options.package ?? '@waterx/rule';
169
+ const argumentsTypes = [
170
+ null,
171
+ '0x2::clock::Clock',
172
+ null,
173
+ null,
174
+ '0x1::string::String',
175
+ 'u64',
176
+ 'u64',
177
+ null,
178
+ 'vector<u8>'
179
+ ];
180
+ const parameterNames = ["config", "enclaveConfig", "enclave", "symbol", "signedTimestampMs", "requestedPriceTimestampMs", "payload", "sig"];
181
+ return (tx) => tx.moveCall({
182
+ package: packageAddress,
183
+ module: 'waterx_rule',
184
+ function: 'quote_for_timestamp',
185
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
186
+ });
187
+ }
188
+ /**
189
+ * Consumes a verified historical price proof when no downstream consumer needs to
190
+ * keep using it in the PTB.
191
+ */
192
+ export function destroyVerifiedPrice(options) {
193
+ const packageAddress = options.package ?? '@waterx/rule';
194
+ const argumentsTypes = [
195
+ null
196
+ ];
197
+ const parameterNames = ["price"];
198
+ return (tx) => tx.moveCall({
199
+ package: packageAddress,
200
+ module: 'waterx_rule',
201
+ function: 'destroy_verified_price',
202
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
203
+ });
204
+ }
205
+ /**
206
+ * Consumes a verified historical price and feeds it into a collector.
207
+ *
208
+ * Use this after `quote_for_timestamp` and before
209
+ * `waterx_oracle::oracle::register_price_at_timestamp`.
210
+ */
211
+ export function collectVerifiedPrice(options) {
212
+ const packageAddress = options.package ?? '@waterx/rule';
213
+ const argumentsTypes = [
214
+ null,
215
+ null
216
+ ];
217
+ const parameterNames = ["collector", "price"];
218
+ return (tx) => tx.moveCall({
219
+ package: packageAddress,
220
+ module: 'waterx_rule',
221
+ function: 'collect_verified_price',
222
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
223
+ });
224
+ }
225
+ /** Admin Funs */
226
+ export function setFeed(options) {
227
+ const packageAddress = options.package ?? '@waterx/rule';
228
+ const argumentsTypes = [
229
+ null,
230
+ null,
231
+ '0x1::string::String',
232
+ '0x1::string::String',
233
+ 'vector<u64>',
234
+ '0x1::string::String',
235
+ 'u64'
236
+ ];
237
+ const parameterNames = ["config", "Cap", "symbol", "ticker", "sources", "method", "maxAgeMs"];
238
+ return (tx) => tx.moveCall({
239
+ package: packageAddress,
240
+ module: 'waterx_rule',
241
+ function: 'set_feed',
242
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
243
+ });
244
+ }
245
+ export function setPerpFeed(options) {
246
+ const packageAddress = options.package ?? '@waterx/rule';
247
+ const argumentsTypes = [
248
+ null,
249
+ null,
250
+ '0x1::string::String',
251
+ '0x1::string::String',
252
+ 'vector<u64>',
253
+ '0x1::string::String',
254
+ 'u64',
255
+ 'u64',
256
+ 'u64',
257
+ 'u8'
258
+ ];
259
+ const parameterNames = ["config", "Cap", "symbol", "ticker", "sources", "method", "maxAgeMs", "maxConfidenceBps", "maxSourceDeviationBps", "minSources"];
260
+ return (tx) => tx.moveCall({
261
+ package: packageAddress,
262
+ module: 'waterx_rule',
263
+ function: 'set_perp_feed',
264
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
265
+ });
266
+ }
267
+ export function removeFeed(options) {
268
+ const packageAddress = options.package ?? '@waterx/rule';
269
+ const argumentsTypes = [
270
+ null,
271
+ null,
272
+ '0x1::string::String'
273
+ ];
274
+ const parameterNames = ["config", "Cap", "symbol"];
275
+ return (tx) => tx.moveCall({
276
+ package: packageAddress,
277
+ module: 'waterx_rule',
278
+ function: 'remove_feed',
279
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
280
+ });
281
+ }
282
+ /** Getter Funs */
283
+ export function newBatchPayload(options = {}) {
284
+ const packageAddress = options.package ?? '@waterx/rule';
285
+ return (tx) => tx.moveCall({
286
+ package: packageAddress,
287
+ module: 'waterx_rule',
288
+ function: 'new_batch_payload',
289
+ });
290
+ }
291
+ export function newBatchItem(options) {
292
+ const packageAddress = options.package ?? '@waterx/rule';
293
+ const argumentsTypes = [
294
+ '0x1::string::String',
295
+ '0x1::string::String',
296
+ 'vector<u64>',
297
+ '0x1::string::String',
298
+ 'u64',
299
+ 'u64',
300
+ 'u64',
301
+ 'u64',
302
+ 'u64',
303
+ 'u64',
304
+ 'u8'
305
+ ];
306
+ const parameterNames = ["symbol", "ticker", "sources", "method", "priceTimestampMs", "priceN", "priceScale", "confidenceN", "confidenceScale", "maxSourceDeviationBps", "numSources"];
307
+ return (tx) => tx.moveCall({
308
+ package: packageAddress,
309
+ module: 'waterx_rule',
310
+ function: 'new_batch_item',
311
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
312
+ });
313
+ }
314
+ export function pushBatchItem(options) {
315
+ const packageAddress = options.package ?? '@waterx/rule';
316
+ const argumentsTypes = [
317
+ null,
318
+ null
319
+ ];
320
+ const parameterNames = ["payload", "item"];
321
+ return (tx) => tx.moveCall({
322
+ package: packageAddress,
323
+ module: 'waterx_rule',
324
+ function: 'push_batch_item',
325
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
326
+ });
327
+ }
328
+ export function feedConfig(options) {
329
+ const packageAddress = options.package ?? '@waterx/rule';
330
+ const argumentsTypes = [
331
+ null,
332
+ '0x1::string::String'
333
+ ];
334
+ const parameterNames = ["config", "symbol"];
335
+ return (tx) => tx.moveCall({
336
+ package: packageAddress,
337
+ module: 'waterx_rule',
338
+ function: 'feed_config',
339
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
340
+ });
341
+ }
342
+ export function batchPriceIntent(options = {}) {
343
+ const packageAddress = options.package ?? '@waterx/rule';
344
+ return (tx) => tx.moveCall({
345
+ package: packageAddress,
346
+ module: 'waterx_rule',
347
+ function: 'batch_price_intent',
348
+ });
349
+ }
350
+ export function maxBatchSize(options = {}) {
351
+ const packageAddress = options.package ?? '@waterx/rule';
352
+ return (tx) => tx.moveCall({
353
+ package: packageAddress,
354
+ module: 'waterx_rule',
355
+ function: 'max_batch_size',
356
+ });
357
+ }
358
+ export function batchItems(options) {
359
+ const packageAddress = options.package ?? '@waterx/rule';
360
+ const argumentsTypes = [
361
+ null
362
+ ];
363
+ const parameterNames = ["payload"];
364
+ return (tx) => tx.moveCall({
365
+ package: packageAddress,
366
+ module: 'waterx_rule',
367
+ function: 'batch_items',
368
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
369
+ });
370
+ }
371
+ export function batchItemSymbol(options) {
372
+ const packageAddress = options.package ?? '@waterx/rule';
373
+ const argumentsTypes = [
374
+ null
375
+ ];
376
+ const parameterNames = ["item"];
377
+ return (tx) => tx.moveCall({
378
+ package: packageAddress,
379
+ module: 'waterx_rule',
380
+ function: 'batch_item_symbol',
381
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
382
+ });
383
+ }
384
+ export function batchItemTicker(options) {
385
+ const packageAddress = options.package ?? '@waterx/rule';
386
+ const argumentsTypes = [
387
+ null
388
+ ];
389
+ const parameterNames = ["item"];
390
+ return (tx) => tx.moveCall({
391
+ package: packageAddress,
392
+ module: 'waterx_rule',
393
+ function: 'batch_item_ticker',
394
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
395
+ });
396
+ }
397
+ export function batchItemSources(options) {
398
+ const packageAddress = options.package ?? '@waterx/rule';
399
+ const argumentsTypes = [
400
+ null
401
+ ];
402
+ const parameterNames = ["item"];
403
+ return (tx) => tx.moveCall({
404
+ package: packageAddress,
405
+ module: 'waterx_rule',
406
+ function: 'batch_item_sources',
407
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
408
+ });
409
+ }
410
+ export function batchItemMethod(options) {
411
+ const packageAddress = options.package ?? '@waterx/rule';
412
+ const argumentsTypes = [
413
+ null
414
+ ];
415
+ const parameterNames = ["item"];
416
+ return (tx) => tx.moveCall({
417
+ package: packageAddress,
418
+ module: 'waterx_rule',
419
+ function: 'batch_item_method',
420
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
421
+ });
422
+ }
423
+ export function batchItemPriceTimestampMs(options) {
424
+ const packageAddress = options.package ?? '@waterx/rule';
425
+ const argumentsTypes = [
426
+ null
427
+ ];
428
+ const parameterNames = ["item"];
429
+ return (tx) => tx.moveCall({
430
+ package: packageAddress,
431
+ module: 'waterx_rule',
432
+ function: 'batch_item_price_timestamp_ms',
433
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
434
+ });
435
+ }
436
+ export function batchItemPriceN(options) {
437
+ const packageAddress = options.package ?? '@waterx/rule';
438
+ const argumentsTypes = [
439
+ null
440
+ ];
441
+ const parameterNames = ["item"];
442
+ return (tx) => tx.moveCall({
443
+ package: packageAddress,
444
+ module: 'waterx_rule',
445
+ function: 'batch_item_price_n',
446
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
447
+ });
448
+ }
449
+ export function batchItemPriceScale(options) {
450
+ const packageAddress = options.package ?? '@waterx/rule';
451
+ const argumentsTypes = [
452
+ null
453
+ ];
454
+ const parameterNames = ["item"];
455
+ return (tx) => tx.moveCall({
456
+ package: packageAddress,
457
+ module: 'waterx_rule',
458
+ function: 'batch_item_price_scale',
459
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
460
+ });
461
+ }
462
+ export function batchItemConfidenceN(options) {
463
+ const packageAddress = options.package ?? '@waterx/rule';
464
+ const argumentsTypes = [
465
+ null
466
+ ];
467
+ const parameterNames = ["item"];
468
+ return (tx) => tx.moveCall({
469
+ package: packageAddress,
470
+ module: 'waterx_rule',
471
+ function: 'batch_item_confidence_n',
472
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
473
+ });
474
+ }
475
+ export function batchItemConfidenceScale(options) {
476
+ const packageAddress = options.package ?? '@waterx/rule';
477
+ const argumentsTypes = [
478
+ null
479
+ ];
480
+ const parameterNames = ["item"];
481
+ return (tx) => tx.moveCall({
482
+ package: packageAddress,
483
+ module: 'waterx_rule',
484
+ function: 'batch_item_confidence_scale',
485
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
486
+ });
487
+ }
488
+ export function batchItemMaxSourceDeviationBps(options) {
489
+ const packageAddress = options.package ?? '@waterx/rule';
490
+ const argumentsTypes = [
491
+ null
492
+ ];
493
+ const parameterNames = ["item"];
494
+ return (tx) => tx.moveCall({
495
+ package: packageAddress,
496
+ module: 'waterx_rule',
497
+ function: 'batch_item_max_source_deviation_bps',
498
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
499
+ });
500
+ }
501
+ export function batchItemNumSources(options) {
502
+ const packageAddress = options.package ?? '@waterx/rule';
503
+ const argumentsTypes = [
504
+ null
505
+ ];
506
+ const parameterNames = ["item"];
507
+ return (tx) => tx.moveCall({
508
+ package: packageAddress,
509
+ module: 'waterx_rule',
510
+ function: 'batch_item_num_sources',
511
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
512
+ });
513
+ }
514
+ export function verifiedSymbol(options) {
515
+ const packageAddress = options.package ?? '@waterx/rule';
516
+ const argumentsTypes = [
517
+ null
518
+ ];
519
+ const parameterNames = ["price"];
520
+ return (tx) => tx.moveCall({
521
+ package: packageAddress,
522
+ module: 'waterx_rule',
523
+ function: 'verified_symbol',
524
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
525
+ });
526
+ }
527
+ export function verifiedTicker(options) {
528
+ const packageAddress = options.package ?? '@waterx/rule';
529
+ const argumentsTypes = [
530
+ null
531
+ ];
532
+ const parameterNames = ["price"];
533
+ return (tx) => tx.moveCall({
534
+ package: packageAddress,
535
+ module: 'waterx_rule',
536
+ function: 'verified_ticker',
537
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
538
+ });
539
+ }
540
+ export function verifiedSources(options) {
541
+ const packageAddress = options.package ?? '@waterx/rule';
542
+ const argumentsTypes = [
543
+ null
544
+ ];
545
+ const parameterNames = ["price"];
546
+ return (tx) => tx.moveCall({
547
+ package: packageAddress,
548
+ module: 'waterx_rule',
549
+ function: 'verified_sources',
550
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
551
+ });
552
+ }
553
+ export function verifiedMethod(options) {
554
+ const packageAddress = options.package ?? '@waterx/rule';
555
+ const argumentsTypes = [
556
+ null
557
+ ];
558
+ const parameterNames = ["price"];
559
+ return (tx) => tx.moveCall({
560
+ package: packageAddress,
561
+ module: 'waterx_rule',
562
+ function: 'verified_method',
563
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
564
+ });
565
+ }
566
+ export function verifiedPriceTimestampMs(options) {
567
+ const packageAddress = options.package ?? '@waterx/rule';
568
+ const argumentsTypes = [
569
+ null
570
+ ];
571
+ const parameterNames = ["price"];
572
+ return (tx) => tx.moveCall({
573
+ package: packageAddress,
574
+ module: 'waterx_rule',
575
+ function: 'verified_price_timestamp_ms',
576
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
577
+ });
578
+ }
579
+ export function verifiedPrice(options) {
580
+ const packageAddress = options.package ?? '@waterx/rule';
581
+ const argumentsTypes = [
582
+ null
583
+ ];
584
+ const parameterNames = ["price"];
585
+ return (tx) => tx.moveCall({
586
+ package: packageAddress,
587
+ module: 'waterx_rule',
588
+ function: 'verified_price',
589
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
590
+ });
591
+ }
592
+ export function verifiedPriceScaled(options) {
593
+ const packageAddress = options.package ?? '@waterx/rule';
594
+ const argumentsTypes = [
595
+ null
596
+ ];
597
+ const parameterNames = ["price"];
598
+ return (tx) => tx.moveCall({
599
+ package: packageAddress,
600
+ module: 'waterx_rule',
601
+ function: 'verified_price_scaled',
602
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
603
+ });
604
+ }
605
+ export function verifiedPriceN(options) {
606
+ const packageAddress = options.package ?? '@waterx/rule';
607
+ const argumentsTypes = [
608
+ null
609
+ ];
610
+ const parameterNames = ["price"];
611
+ return (tx) => tx.moveCall({
612
+ package: packageAddress,
613
+ module: 'waterx_rule',
614
+ function: 'verified_price_n',
615
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
616
+ });
617
+ }
618
+ export function verifiedPriceScale(options) {
619
+ const packageAddress = options.package ?? '@waterx/rule';
620
+ const argumentsTypes = [
621
+ null
622
+ ];
623
+ const parameterNames = ["price"];
624
+ return (tx) => tx.moveCall({
625
+ package: packageAddress,
626
+ module: 'waterx_rule',
627
+ function: 'verified_price_scale',
628
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
629
+ });
630
+ }
631
+ export function verifiedConfidenceN(options) {
632
+ const packageAddress = options.package ?? '@waterx/rule';
633
+ const argumentsTypes = [
634
+ null
635
+ ];
636
+ const parameterNames = ["price"];
637
+ return (tx) => tx.moveCall({
638
+ package: packageAddress,
639
+ module: 'waterx_rule',
640
+ function: 'verified_confidence_n',
641
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
642
+ });
643
+ }
644
+ export function verifiedConfidenceScale(options) {
645
+ const packageAddress = options.package ?? '@waterx/rule';
646
+ const argumentsTypes = [
647
+ null
648
+ ];
649
+ const parameterNames = ["price"];
650
+ return (tx) => tx.moveCall({
651
+ package: packageAddress,
652
+ module: 'waterx_rule',
653
+ function: 'verified_confidence_scale',
654
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
655
+ });
656
+ }
657
+ export function verifiedMaxSourceDeviationBps(options) {
658
+ const packageAddress = options.package ?? '@waterx/rule';
659
+ const argumentsTypes = [
660
+ null
661
+ ];
662
+ const parameterNames = ["price"];
663
+ return (tx) => tx.moveCall({
664
+ package: packageAddress,
665
+ module: 'waterx_rule',
666
+ function: 'verified_max_source_deviation_bps',
667
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
668
+ });
669
+ }
670
+ export function verifiedNumSources(options) {
671
+ const packageAddress = options.package ?? '@waterx/rule';
672
+ const argumentsTypes = [
673
+ null
674
+ ];
675
+ const parameterNames = ["price"];
676
+ return (tx) => tx.moveCall({
677
+ package: packageAddress,
678
+ module: 'waterx_rule',
679
+ function: 'verified_num_sources',
680
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
681
+ });
682
+ }
683
+ export function verifiedSignedTimestampMs(options) {
684
+ const packageAddress = options.package ?? '@waterx/rule';
685
+ const argumentsTypes = [
686
+ null
687
+ ];
688
+ const parameterNames = ["price"];
689
+ return (tx) => tx.moveCall({
690
+ package: packageAddress,
691
+ module: 'waterx_rule',
692
+ function: 'verified_signed_timestamp_ms',
693
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
694
+ });
695
+ }
696
+ export function sourceBinanceSpot(options = {}) {
697
+ const packageAddress = options.package ?? '@waterx/rule';
698
+ return (tx) => tx.moveCall({
699
+ package: packageAddress,
700
+ module: 'waterx_rule',
701
+ function: 'source_binance_spot',
702
+ });
703
+ }
704
+ export function sourceBinanceUsdmPerpWs(options = {}) {
705
+ const packageAddress = options.package ?? '@waterx/rule';
706
+ return (tx) => tx.moveCall({
707
+ package: packageAddress,
708
+ module: 'waterx_rule',
709
+ function: 'source_binance_usdm_perp_ws',
710
+ });
711
+ }
712
+ export function sourceBybitLinearPerpWs(options = {}) {
713
+ const packageAddress = options.package ?? '@waterx/rule';
714
+ return (tx) => tx.moveCall({
715
+ package: packageAddress,
716
+ module: 'waterx_rule',
717
+ function: 'source_bybit_linear_perp_ws',
718
+ });
719
+ }
720
+ export function sourceGateioUsdtPerpWs(options = {}) {
721
+ const packageAddress = options.package ?? '@waterx/rule';
722
+ return (tx) => tx.moveCall({
723
+ package: packageAddress,
724
+ module: 'waterx_rule',
725
+ function: 'source_gateio_usdt_perp_ws',
726
+ });
727
+ }
728
+ export function sourceGataUsdtPerpWs(options = {}) {
729
+ const packageAddress = options.package ?? '@waterx/rule';
730
+ return (tx) => tx.moveCall({
731
+ package: packageAddress,
732
+ module: 'waterx_rule',
733
+ function: 'source_gata_usdt_perp_ws',
734
+ });
735
+ }
736
+ export function methodDirect(options = {}) {
737
+ const packageAddress = options.package ?? '@waterx/rule';
738
+ return (tx) => tx.moveCall({
739
+ package: packageAddress,
740
+ module: 'waterx_rule',
741
+ function: 'method_direct',
742
+ });
743
+ }
744
+ export function methodMedian(options = {}) {
745
+ const packageAddress = options.package ?? '@waterx/rule';
746
+ return (tx) => tx.moveCall({
747
+ package: packageAddress,
748
+ module: 'waterx_rule',
749
+ function: 'method_median',
750
+ });
751
+ }
752
+ export function methodConfidence(options = {}) {
753
+ const packageAddress = options.package ?? '@waterx/rule';
754
+ return (tx) => tx.moveCall({
755
+ package: packageAddress,
756
+ module: 'waterx_rule',
757
+ function: 'method_confidence',
758
+ });
759
+ }
760
+ export function isSupportedSource(options) {
761
+ const packageAddress = options.package ?? '@waterx/rule';
762
+ const argumentsTypes = [
763
+ 'u64'
764
+ ];
765
+ const parameterNames = ["source"];
766
+ return (tx) => tx.moveCall({
767
+ package: packageAddress,
768
+ module: 'waterx_rule',
769
+ function: 'is_supported_source',
770
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
771
+ });
772
+ }
773
+ export function isPerpSource(options) {
774
+ const packageAddress = options.package ?? '@waterx/rule';
775
+ const argumentsTypes = [
776
+ 'u64'
777
+ ];
778
+ const parameterNames = ["source"];
779
+ return (tx) => tx.moveCall({
780
+ package: packageAddress,
781
+ module: 'waterx_rule',
782
+ function: 'is_perp_source',
783
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
784
+ });
785
+ }
786
+ export function isSupportedMethod(options) {
787
+ const packageAddress = options.package ?? '@waterx/rule';
788
+ const argumentsTypes = [
789
+ '0x1::string::String'
790
+ ];
791
+ const parameterNames = ["method"];
792
+ return (tx) => tx.moveCall({
793
+ package: packageAddress,
794
+ module: 'waterx_rule',
795
+ function: 'is_supported_method',
796
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
797
+ });
798
+ }
799
+ export function isPerpMethod(options) {
800
+ const packageAddress = options.package ?? '@waterx/rule';
801
+ const argumentsTypes = [
802
+ '0x1::string::String'
803
+ ];
804
+ const parameterNames = ["method"];
805
+ return (tx) => tx.moveCall({
806
+ package: packageAddress,
807
+ module: 'waterx_rule',
808
+ function: 'is_perp_method',
809
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
810
+ });
811
+ }
812
+ export function sourceFromName(options) {
813
+ const packageAddress = options.package ?? '@waterx/rule';
814
+ const argumentsTypes = [
815
+ '0x1::string::String'
816
+ ];
817
+ const parameterNames = ["name"];
818
+ return (tx) => tx.moveCall({
819
+ package: packageAddress,
820
+ module: 'waterx_rule',
821
+ function: 'source_from_name',
822
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
823
+ });
824
+ }
825
+ export function methodFromName(options) {
826
+ const packageAddress = options.package ?? '@waterx/rule';
827
+ const argumentsTypes = [
828
+ '0x1::string::String'
829
+ ];
830
+ const parameterNames = ["name"];
831
+ return (tx) => tx.moveCall({
832
+ package: packageAddress,
833
+ module: 'waterx_rule',
834
+ function: 'method_from_name',
835
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
836
+ });
837
+ }
838
+ /**
839
+ * Last accepted signed timestamp for `symbol` (0 if none yet). View helper for
840
+ * keepers/SDK so they can pick a `timestamp_ms` strictly greater than this.
841
+ */
842
+ export function signedTsHwm(options) {
843
+ const packageAddress = options.package ?? '@waterx/rule';
844
+ const argumentsTypes = [
845
+ null,
846
+ '0x1::string::String'
847
+ ];
848
+ const parameterNames = ["config", "symbol"];
849
+ return (tx) => tx.moveCall({
850
+ package: packageAddress,
851
+ module: 'waterx_rule',
852
+ function: 'signed_ts_hwm',
853
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
854
+ });
855
+ }