@waterx/sdk 4.0.1 → 4.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 (110) hide show
  1. package/README.md +25 -10
  2. package/dist/cjs/src/account/account.js +2 -1
  3. package/dist/cjs/src/account/funding/balance.d.ts +25 -2
  4. package/dist/cjs/src/account/funding/balance.js +36 -24
  5. package/dist/cjs/src/account/funding/credit.js +6 -10
  6. package/dist/cjs/src/constants.d.ts +15 -1
  7. package/dist/cjs/src/constants.js +18 -4
  8. package/dist/cjs/src/generated/waterx_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  9. package/dist/cjs/src/generated/waterx_rule/deps/bucket_v2_framework/float.js +13 -0
  10. package/dist/cjs/src/generated/waterx_rule/deps/sui/vec_map.d.ts +36 -0
  11. package/dist/cjs/src/generated/waterx_rule/deps/sui/vec_map.js +31 -0
  12. package/dist/cjs/src/generated/waterx_rule/waterx_rule.d.ts +940 -0
  13. package/dist/cjs/src/generated/waterx_rule/waterx_rule.js +1092 -0
  14. package/dist/cjs/src/oracle/aggregate.d.ts +2 -0
  15. package/dist/cjs/src/oracle/aggregate.js +27 -2
  16. package/dist/cjs/src/oracle/config.d.ts +75 -0
  17. package/dist/cjs/src/oracle/config.js +15 -1
  18. package/dist/cjs/src/oracle/host.d.ts +12 -1
  19. package/dist/cjs/src/oracle/index.d.ts +2 -0
  20. package/dist/cjs/src/oracle/index.js +6 -1
  21. package/dist/cjs/src/oracle/price-update-rule.d.ts +3 -4
  22. package/dist/cjs/src/oracle/rule-registry.d.ts +8 -7
  23. package/dist/cjs/src/oracle/rule-registry.js +10 -7
  24. package/dist/cjs/src/oracle/rules/waterx-rule.d.ts +89 -0
  25. package/dist/cjs/src/oracle/rules/waterx-rule.js +272 -0
  26. package/dist/cjs/src/perp/client.d.ts +44 -6
  27. package/dist/cjs/src/perp/client.js +14 -0
  28. package/dist/cjs/src/perp/config.d.ts +2 -3
  29. package/dist/cjs/src/perp/config.js +2 -1
  30. package/dist/cjs/src/perp/constants.d.ts +0 -6
  31. package/dist/cjs/src/perp/constants.js +11 -9
  32. package/dist/cjs/src/perp/fetch/account.js +3 -0
  33. package/dist/cjs/src/perp/fetch/bridge.js +2 -1
  34. package/dist/cjs/src/perp/fetch/market.js +2 -1
  35. package/dist/cjs/src/perp/fetch/positions.d.ts +16 -10
  36. package/dist/cjs/src/perp/fetch/positions.js +23 -20
  37. package/dist/cjs/src/perp/index.d.ts +6 -2
  38. package/dist/cjs/src/perp/index.js +12 -6
  39. package/dist/cjs/src/perp/liq-view.d.ts +64 -0
  40. package/dist/cjs/src/perp/liq-view.js +74 -0
  41. package/dist/cjs/src/perp/user/order.d.ts +13 -0
  42. package/dist/cjs/src/perp/user/order.js +30 -16
  43. package/dist/cjs/src/perp/user/staking.js +3 -2
  44. package/dist/cjs/src/perp/user/trading.js +25 -24
  45. package/dist/cjs/src/perp/user/wlp.js +6 -5
  46. package/dist/cjs/src/prediction/utils.d.ts +11 -2
  47. package/dist/cjs/src/prediction/utils.js +22 -22
  48. package/dist/cjs/src/unified-client.d.ts +31 -10
  49. package/dist/cjs/src/unified-client.js +2 -0
  50. package/dist/cjs/src/utils/format.d.ts +14 -0
  51. package/dist/cjs/src/utils/format.js +24 -0
  52. package/dist/cjs/src/utils/math.d.ts +304 -12
  53. package/dist/cjs/src/utils/math.js +397 -17
  54. package/dist/cjs/src/utils/validate.d.ts +69 -0
  55. package/dist/cjs/src/utils/validate.js +183 -0
  56. package/dist/src/account/account.js +2 -1
  57. package/dist/src/account/funding/balance.d.ts +25 -2
  58. package/dist/src/account/funding/balance.js +36 -24
  59. package/dist/src/account/funding/credit.js +6 -10
  60. package/dist/src/constants.d.ts +15 -1
  61. package/dist/src/constants.js +17 -3
  62. package/dist/src/generated/waterx_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  63. package/dist/src/generated/waterx_rule/deps/bucket_v2_framework/float.js +10 -0
  64. package/dist/src/generated/waterx_rule/deps/sui/vec_map.d.ts +36 -0
  65. package/dist/src/generated/waterx_rule/deps/sui/vec_map.js +27 -0
  66. package/dist/src/generated/waterx_rule/waterx_rule.d.ts +940 -0
  67. package/dist/src/generated/waterx_rule/waterx_rule.js +991 -0
  68. package/dist/src/oracle/aggregate.d.ts +2 -0
  69. package/dist/src/oracle/aggregate.js +27 -2
  70. package/dist/src/oracle/config.d.ts +75 -0
  71. package/dist/src/oracle/config.js +14 -0
  72. package/dist/src/oracle/host.d.ts +12 -1
  73. package/dist/src/oracle/index.d.ts +2 -0
  74. package/dist/src/oracle/index.js +3 -0
  75. package/dist/src/oracle/price-update-rule.d.ts +3 -4
  76. package/dist/src/oracle/rule-registry.d.ts +8 -7
  77. package/dist/src/oracle/rule-registry.js +10 -7
  78. package/dist/src/oracle/rules/waterx-rule.d.ts +89 -0
  79. package/dist/src/oracle/rules/waterx-rule.js +266 -0
  80. package/dist/src/perp/client.d.ts +44 -6
  81. package/dist/src/perp/client.js +15 -1
  82. package/dist/src/perp/config.d.ts +2 -3
  83. package/dist/src/perp/config.js +1 -1
  84. package/dist/src/perp/constants.d.ts +0 -6
  85. package/dist/src/perp/constants.js +10 -8
  86. package/dist/src/perp/fetch/account.js +3 -0
  87. package/dist/src/perp/fetch/bridge.js +2 -1
  88. package/dist/src/perp/fetch/market.js +2 -1
  89. package/dist/src/perp/fetch/positions.d.ts +16 -10
  90. package/dist/src/perp/fetch/positions.js +28 -20
  91. package/dist/src/perp/index.d.ts +6 -2
  92. package/dist/src/perp/index.js +4 -2
  93. package/dist/src/perp/liq-view.d.ts +64 -0
  94. package/dist/src/perp/liq-view.js +71 -0
  95. package/dist/src/perp/user/order.d.ts +13 -0
  96. package/dist/src/perp/user/order.js +30 -16
  97. package/dist/src/perp/user/staking.js +3 -2
  98. package/dist/src/perp/user/trading.js +25 -24
  99. package/dist/src/perp/user/wlp.js +6 -5
  100. package/dist/src/prediction/utils.d.ts +11 -2
  101. package/dist/src/prediction/utils.js +22 -22
  102. package/dist/src/unified-client.d.ts +31 -10
  103. package/dist/src/unified-client.js +2 -0
  104. package/dist/src/utils/format.d.ts +14 -0
  105. package/dist/src/utils/format.js +21 -0
  106. package/dist/src/utils/math.d.ts +304 -12
  107. package/dist/src/utils/math.js +394 -17
  108. package/dist/src/utils/validate.d.ts +69 -0
  109. package/dist/src/utils/validate.js +167 -0
  110. package/package.json +4 -1
@@ -0,0 +1,1092 @@
1
+ "use strict";
2
+ /**************************************************************
3
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
4
+ **************************************************************/
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BatchLatestUpdated = exports.HistoricalPriceVerified = exports.SignedTsHwmKey = exports.Config = exports.VerifiedPrice = exports.FeedConfig = exports.MerkleRoot = exports.BatchPricePayload = exports.BatchPriceItem = exports.PricePayload = exports.WaterxRule = exports.WATERX_RULE = void 0;
40
+ exports.feedBatchLatest = feedBatchLatest;
41
+ exports.collectBatchLatest = collectBatchLatest;
42
+ exports.feedSingleWithProof = feedSingleWithProof;
43
+ exports.collectSingleWithProof = collectSingleWithProof;
44
+ exports.quoteForTimestamp = quoteForTimestamp;
45
+ exports.destroyVerifiedPrice = destroyVerifiedPrice;
46
+ exports.collectVerifiedPrice = collectVerifiedPrice;
47
+ exports.setFeed = setFeed;
48
+ exports.setPerpFeed = setPerpFeed;
49
+ exports.removeFeed = removeFeed;
50
+ exports.newBatchPayload = newBatchPayload;
51
+ exports.newBatchItem = newBatchItem;
52
+ exports.pushBatchItem = pushBatchItem;
53
+ exports.feedConfig = feedConfig;
54
+ exports.batchPriceIntent = batchPriceIntent;
55
+ exports.merkleRootIntent = merkleRootIntent;
56
+ exports.leafHashOf = leafHashOf;
57
+ exports.maxBatchSize = maxBatchSize;
58
+ exports.batchItems = batchItems;
59
+ exports.batchItemSymbol = batchItemSymbol;
60
+ exports.batchItemTicker = batchItemTicker;
61
+ exports.batchItemSources = batchItemSources;
62
+ exports.batchItemMethod = batchItemMethod;
63
+ exports.batchItemPriceTimestampMs = batchItemPriceTimestampMs;
64
+ exports.batchItemPriceN = batchItemPriceN;
65
+ exports.batchItemPriceScale = batchItemPriceScale;
66
+ exports.batchItemConfidenceN = batchItemConfidenceN;
67
+ exports.batchItemConfidenceScale = batchItemConfidenceScale;
68
+ exports.batchItemMaxSourceDeviationBps = batchItemMaxSourceDeviationBps;
69
+ exports.batchItemNumSources = batchItemNumSources;
70
+ exports.verifiedSymbol = verifiedSymbol;
71
+ exports.verifiedTicker = verifiedTicker;
72
+ exports.verifiedSources = verifiedSources;
73
+ exports.verifiedMethod = verifiedMethod;
74
+ exports.verifiedPriceTimestampMs = verifiedPriceTimestampMs;
75
+ exports.verifiedPrice = verifiedPrice;
76
+ exports.verifiedPriceScaled = verifiedPriceScaled;
77
+ exports.verifiedPriceN = verifiedPriceN;
78
+ exports.verifiedPriceScale = verifiedPriceScale;
79
+ exports.verifiedConfidenceN = verifiedConfidenceN;
80
+ exports.verifiedConfidenceScale = verifiedConfidenceScale;
81
+ exports.verifiedMaxSourceDeviationBps = verifiedMaxSourceDeviationBps;
82
+ exports.verifiedNumSources = verifiedNumSources;
83
+ exports.verifiedSignedTimestampMs = verifiedSignedTimestampMs;
84
+ exports.sourceBinanceSpot = sourceBinanceSpot;
85
+ exports.sourceBinanceUsdmPerpWs = sourceBinanceUsdmPerpWs;
86
+ exports.sourceBybitLinearPerpWs = sourceBybitLinearPerpWs;
87
+ exports.sourceGateioUsdtPerpWs = sourceGateioUsdtPerpWs;
88
+ exports.sourceGataUsdtPerpWs = sourceGataUsdtPerpWs;
89
+ exports.sourceBybitSpotWs = sourceBybitSpotWs;
90
+ exports.sourceXstockEquityRest = sourceXstockEquityRest;
91
+ exports.sourceOkxSpotWs = sourceOkxSpotWs;
92
+ exports.sourceHyperliquidPerpWs = sourceHyperliquidPerpWs;
93
+ exports.sourceGateioSpotWs = sourceGateioSpotWs;
94
+ exports.sourceKrakenSpotWs = sourceKrakenSpotWs;
95
+ exports.methodDirect = methodDirect;
96
+ exports.methodMedian = methodMedian;
97
+ exports.methodConfidence = methodConfidence;
98
+ exports.isSupportedSource = isSupportedSource;
99
+ exports.isPerpSource = isPerpSource;
100
+ exports.isSupportedMethod = isSupportedMethod;
101
+ exports.isPerpMethod = isPerpMethod;
102
+ exports.sourceFromName = sourceFromName;
103
+ exports.methodFromName = methodFromName;
104
+ exports.signedTsHwm = signedTsHwm;
105
+ /** Nautilus-backed oracle rule for Binance, Bybit, and Gate.io prices. */
106
+ const index_ts_1 = require("../utils/index.js");
107
+ const bcs_1 = require("@mysten/sui/bcs");
108
+ const float = __importStar(require("./deps/bucket_v2_framework/float.js"));
109
+ const vec_map = __importStar(require("./deps/sui/vec_map.js"));
110
+ const $moduleName = '@waterx/rule::waterx_rule';
111
+ exports.WATERX_RULE = new index_ts_1.MoveStruct({ name: `${$moduleName}::WATERX_RULE`, fields: {
112
+ dummy_field: bcs_1.bcs.bool()
113
+ } });
114
+ exports.WaterxRule = new index_ts_1.MoveStruct({ name: `${$moduleName}::WaterxRule`, fields: {
115
+ dummy_field: bcs_1.bcs.bool()
116
+ } });
117
+ exports.PricePayload = new index_ts_1.MoveStruct({ name: `${$moduleName}::PricePayload`, fields: {
118
+ ticker: bcs_1.bcs.string(),
119
+ sources: bcs_1.bcs.vector(bcs_1.bcs.u64()),
120
+ method: bcs_1.bcs.string(),
121
+ price_timestamp_ms: bcs_1.bcs.u64(),
122
+ price_n: bcs_1.bcs.u64(),
123
+ price_scale: bcs_1.bcs.u64(),
124
+ confidence_n: bcs_1.bcs.u64(),
125
+ confidence_scale: bcs_1.bcs.u64(),
126
+ max_source_deviation_bps: bcs_1.bcs.u64(),
127
+ num_sources: bcs_1.bcs.u8()
128
+ } });
129
+ exports.BatchPriceItem = new index_ts_1.MoveStruct({ name: `${$moduleName}::BatchPriceItem`, fields: {
130
+ symbol: bcs_1.bcs.string(),
131
+ ticker: bcs_1.bcs.string(),
132
+ sources: bcs_1.bcs.vector(bcs_1.bcs.u64()),
133
+ method: bcs_1.bcs.string(),
134
+ price_timestamp_ms: bcs_1.bcs.u64(),
135
+ price_n: bcs_1.bcs.u64(),
136
+ price_scale: bcs_1.bcs.u64(),
137
+ confidence_n: bcs_1.bcs.u64(),
138
+ confidence_scale: bcs_1.bcs.u64(),
139
+ max_source_deviation_bps: bcs_1.bcs.u64(),
140
+ num_sources: bcs_1.bcs.u8()
141
+ } });
142
+ exports.BatchPricePayload = new index_ts_1.MoveStruct({ name: `${$moduleName}::BatchPricePayload`, fields: {
143
+ items: bcs_1.bcs.vector(exports.BatchPriceItem)
144
+ } });
145
+ exports.MerkleRoot = new index_ts_1.MoveStruct({ name: `${$moduleName}::MerkleRoot`, fields: {
146
+ root: bcs_1.bcs.vector(bcs_1.bcs.u8())
147
+ } });
148
+ exports.FeedConfig = new index_ts_1.MoveStruct({ name: `${$moduleName}::FeedConfig`, fields: {
149
+ ticker: bcs_1.bcs.string(),
150
+ sources: bcs_1.bcs.vector(bcs_1.bcs.u64()),
151
+ method: bcs_1.bcs.string(),
152
+ max_age_ms: bcs_1.bcs.u64(),
153
+ max_confidence_bps: bcs_1.bcs.u64(),
154
+ max_source_deviation_bps: bcs_1.bcs.u64(),
155
+ min_sources: bcs_1.bcs.u8()
156
+ } });
157
+ exports.VerifiedPrice = new index_ts_1.MoveStruct({ name: `${$moduleName}::VerifiedPrice`, fields: {
158
+ symbol: bcs_1.bcs.string(),
159
+ ticker: bcs_1.bcs.string(),
160
+ sources: bcs_1.bcs.vector(bcs_1.bcs.u64()),
161
+ method: bcs_1.bcs.string(),
162
+ price_timestamp_ms: bcs_1.bcs.u64(),
163
+ price: float.Float,
164
+ price_n: bcs_1.bcs.u64(),
165
+ price_scale: bcs_1.bcs.u64(),
166
+ confidence_n: bcs_1.bcs.u64(),
167
+ confidence_scale: bcs_1.bcs.u64(),
168
+ max_source_deviation_bps: bcs_1.bcs.u64(),
169
+ num_sources: bcs_1.bcs.u8(),
170
+ signed_timestamp_ms: bcs_1.bcs.u64()
171
+ } });
172
+ exports.Config = new index_ts_1.MoveStruct({ name: `${$moduleName}::Config`, fields: {
173
+ id: bcs_1.bcs.Address,
174
+ feed_map: vec_map.VecMap(bcs_1.bcs.string(), exports.FeedConfig)
175
+ } });
176
+ exports.SignedTsHwmKey = new index_ts_1.MoveStruct({ name: `${$moduleName}::SignedTsHwmKey`, fields: {
177
+ symbol: bcs_1.bcs.string()
178
+ } });
179
+ exports.HistoricalPriceVerified = new index_ts_1.MoveStruct({ name: `${$moduleName}::HistoricalPriceVerified`, fields: {
180
+ symbol: bcs_1.bcs.string(),
181
+ ticker: bcs_1.bcs.string(),
182
+ sources: bcs_1.bcs.vector(bcs_1.bcs.u64()),
183
+ method: bcs_1.bcs.string(),
184
+ price_timestamp_ms: bcs_1.bcs.u64(),
185
+ price: bcs_1.bcs.u128(),
186
+ confidence: bcs_1.bcs.u128(),
187
+ max_source_deviation_bps: bcs_1.bcs.u64(),
188
+ num_sources: bcs_1.bcs.u8(),
189
+ signed_timestamp_ms: bcs_1.bcs.u64()
190
+ } });
191
+ exports.BatchLatestUpdated = new index_ts_1.MoveStruct({ name: `${$moduleName}::BatchLatestUpdated`, fields: {
192
+ count: bcs_1.bcs.u64(),
193
+ timestamp_ms: bcs_1.bcs.u64()
194
+ } });
195
+ /**
196
+ * Public Funs Verifies one Nautilus batch signature and updates one or more latest
197
+ * oracle prices. This function is only for current/latest data, never historical
198
+ * data. A single symbol is just a batch of one.
199
+ */
200
+ function feedBatchLatest(options) {
201
+ const packageAddress = options.package ?? '@waterx/rule';
202
+ const argumentsTypes = [
203
+ null,
204
+ null,
205
+ '0x2::clock::Clock',
206
+ null,
207
+ null,
208
+ 'u64',
209
+ null,
210
+ 'vector<u8>'
211
+ ];
212
+ const parameterNames = ["oracleObj", "config", "enclaveConfig", "enclave", "timestampMs", "payload", "sig"];
213
+ return (tx) => tx.moveCall({
214
+ package: packageAddress,
215
+ module: 'waterx_rule',
216
+ function: 'feed_batch_latest',
217
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
218
+ });
219
+ }
220
+ /**
221
+ * Collect-only sibling of `feed_batch_latest` for the **dual-rule** latest path:
222
+ * verifies one Nautilus batch signature and feeds the single item whose symbol
223
+ * matches `collector.symbol()` into a caller-owned `PriceCollector`, WITHOUT
224
+ * calling `oracle::aggregate`. This lets one aggregator carry both a `WaterxRule`
225
+ * and (e.g.) a `PythRule` weight — the caller composes one collector across every
226
+ * weighted rule in the PTB (compose-then-aggregate, like `pyth_rule::feed`) and
227
+ * aggregates once.
228
+ *
229
+ * Abort vs abstain (WL-1963): unlike `feed_batch_latest`, which has no fallback
230
+ * and so aborts on any stale item, this path runs alongside Pyth/Supra. To let
231
+ * those cover a lagging TEE — the blast-radius bound in the GCP ADR — a
232
+ * _freshness_ miss ABSTAINS (records `none`, which `aggregator::remove_outliers`
233
+ * drops before the `weight_threshold` fail-closed check), and so does a _replayed_
234
+ * signed timestamp (the chain already accepted that snapshot — the on-chain price
235
+ * is at least as fresh, and two concurrent keeper PTBs sharing one envelope must
236
+ * not kill each other). A _config/integrity_ mismatch (source / ticker / method /
237
+ * confidence / deviation) still ABORTS: an enclave whose signed payload disagrees
238
+ * with the on-chain feed config is a red flag, not a liveness blip. Bad signature,
239
+ * malformed batch, and a future timestamp always abort.
240
+ *
241
+ * Every gate is identical to `feed_batch_item_latest`; only the abort-vs-abstain
242
+ * disposition of the freshness + replay gates differs, and the sink is the
243
+ * caller's collector rather than a fresh single-rule one.
244
+ */
245
+ function collectBatchLatest(options) {
246
+ const packageAddress = options.package ?? '@waterx/rule';
247
+ const argumentsTypes = [
248
+ null,
249
+ null,
250
+ '0x2::clock::Clock',
251
+ null,
252
+ null,
253
+ 'u64',
254
+ null,
255
+ 'vector<u8>'
256
+ ];
257
+ const parameterNames = ["collector", "config", "enclaveConfig", "enclave", "timestampMs", "payload", "sig"];
258
+ return (tx) => tx.moveCall({
259
+ package: packageAddress,
260
+ module: 'waterx_rule',
261
+ function: 'collect_batch_latest',
262
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
263
+ });
264
+ }
265
+ /**
266
+ * Streaming per-symbol sibling of `feed_batch_latest`. Verifies ONE enclave
267
+ * signature over a Merkle `root`, checks `item` is a leaf of that root via
268
+ * `proof`, then runs the identical per-item gates + `oracle::aggregate`. Use for a
269
+ * WaterxRule-only aggregator; for a Pyth-coexisting aggregator use
270
+ * `collect_single_with_proof`.
271
+ */
272
+ function feedSingleWithProof(options) {
273
+ const packageAddress = options.package ?? '@waterx/rule';
274
+ const argumentsTypes = [
275
+ null,
276
+ null,
277
+ '0x2::clock::Clock',
278
+ null,
279
+ null,
280
+ 'u64',
281
+ null,
282
+ 'vector<vector<u8>>',
283
+ 'vector<u8>'
284
+ ];
285
+ const parameterNames = ["oracleObj", "config", "enclaveConfig", "enclave", "timestampMs", "item", "proof", "sig"];
286
+ return (tx) => tx.moveCall({
287
+ package: packageAddress,
288
+ module: 'waterx_rule',
289
+ function: 'feed_single_with_proof',
290
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
291
+ });
292
+ }
293
+ /**
294
+ * Collect-only sibling of `feed_single_with_proof` for the dual-rule latest path
295
+ * (WaterX alongside Pyth on one aggregator), mirroring `collect_batch_latest`:
296
+ * verifies root + proof, feeds the leaf into the caller's `PriceCollector` WITHOUT
297
+ * calling `oracle::aggregate`. Abort vs abstain matches `collect_batch_latest`
298
+ * exactly — a config/integrity mismatch aborts, a freshness miss abstains so Pyth
299
+ * can cover a lagging TEE.
300
+ */
301
+ function collectSingleWithProof(options) {
302
+ const packageAddress = options.package ?? '@waterx/rule';
303
+ const argumentsTypes = [
304
+ null,
305
+ null,
306
+ '0x2::clock::Clock',
307
+ null,
308
+ null,
309
+ 'u64',
310
+ null,
311
+ 'vector<vector<u8>>',
312
+ 'vector<u8>'
313
+ ];
314
+ const parameterNames = ["collector", "config", "enclaveConfig", "enclave", "timestampMs", "item", "proof", "sig"];
315
+ return (tx) => tx.moveCall({
316
+ package: packageAddress,
317
+ module: 'waterx_rule',
318
+ function: 'collect_single_with_proof',
319
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
320
+ });
321
+ }
322
+ /**
323
+ * Verifies a historical quote without touching `waterx_oracle`.
324
+ *
325
+ * `signed_timestamp_ms` is the fresh timestamp signed by Nautilus.
326
+ * `requested_price_timestamp_ms` is the historical price timestamp the caller
327
+ * requested from Nautilus. Consumers should still assert the returned proof's
328
+ * symbol and timestamp inside their own contract before using the price.
329
+ */
330
+ function quoteForTimestamp(options) {
331
+ const packageAddress = options.package ?? '@waterx/rule';
332
+ const argumentsTypes = [
333
+ null,
334
+ '0x2::clock::Clock',
335
+ null,
336
+ null,
337
+ '0x1::string::String',
338
+ 'u64',
339
+ 'u64',
340
+ null,
341
+ 'vector<u8>'
342
+ ];
343
+ const parameterNames = ["config", "enclaveConfig", "enclave", "symbol", "signedTimestampMs", "requestedPriceTimestampMs", "payload", "sig"];
344
+ return (tx) => tx.moveCall({
345
+ package: packageAddress,
346
+ module: 'waterx_rule',
347
+ function: 'quote_for_timestamp',
348
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
349
+ });
350
+ }
351
+ /**
352
+ * Consumes a verified historical price proof when no downstream consumer needs to
353
+ * keep using it in the PTB.
354
+ */
355
+ function destroyVerifiedPrice(options) {
356
+ const packageAddress = options.package ?? '@waterx/rule';
357
+ const argumentsTypes = [
358
+ null
359
+ ];
360
+ const parameterNames = ["price"];
361
+ return (tx) => tx.moveCall({
362
+ package: packageAddress,
363
+ module: 'waterx_rule',
364
+ function: 'destroy_verified_price',
365
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
366
+ });
367
+ }
368
+ /**
369
+ * Consumes a verified historical price and feeds it into a collector.
370
+ *
371
+ * Use this after `quote_for_timestamp` and before
372
+ * `waterx_oracle::oracle::register_price_at_timestamp`.
373
+ */
374
+ function collectVerifiedPrice(options) {
375
+ const packageAddress = options.package ?? '@waterx/rule';
376
+ const argumentsTypes = [
377
+ null,
378
+ null
379
+ ];
380
+ const parameterNames = ["collector", "price"];
381
+ return (tx) => tx.moveCall({
382
+ package: packageAddress,
383
+ module: 'waterx_rule',
384
+ function: 'collect_verified_price',
385
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
386
+ });
387
+ }
388
+ /** Admin Funs */
389
+ function setFeed(options) {
390
+ const packageAddress = options.package ?? '@waterx/rule';
391
+ const argumentsTypes = [
392
+ null,
393
+ null,
394
+ '0x1::string::String',
395
+ '0x1::string::String',
396
+ 'vector<u64>',
397
+ '0x1::string::String',
398
+ 'u64'
399
+ ];
400
+ const parameterNames = ["config", "Cap", "symbol", "ticker", "sources", "method", "maxAgeMs"];
401
+ return (tx) => tx.moveCall({
402
+ package: packageAddress,
403
+ module: 'waterx_rule',
404
+ function: 'set_feed',
405
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
406
+ });
407
+ }
408
+ function setPerpFeed(options) {
409
+ const packageAddress = options.package ?? '@waterx/rule';
410
+ const argumentsTypes = [
411
+ null,
412
+ null,
413
+ '0x1::string::String',
414
+ '0x1::string::String',
415
+ 'vector<u64>',
416
+ '0x1::string::String',
417
+ 'u64',
418
+ 'u64',
419
+ 'u64',
420
+ 'u8'
421
+ ];
422
+ const parameterNames = ["config", "Cap", "symbol", "ticker", "sources", "method", "maxAgeMs", "maxConfidenceBps", "maxSourceDeviationBps", "minSources"];
423
+ return (tx) => tx.moveCall({
424
+ package: packageAddress,
425
+ module: 'waterx_rule',
426
+ function: 'set_perp_feed',
427
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
428
+ });
429
+ }
430
+ function removeFeed(options) {
431
+ const packageAddress = options.package ?? '@waterx/rule';
432
+ const argumentsTypes = [
433
+ null,
434
+ null,
435
+ '0x1::string::String'
436
+ ];
437
+ const parameterNames = ["config", "Cap", "symbol"];
438
+ return (tx) => tx.moveCall({
439
+ package: packageAddress,
440
+ module: 'waterx_rule',
441
+ function: 'remove_feed',
442
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
443
+ });
444
+ }
445
+ /** Getter Funs */
446
+ function newBatchPayload(options = {}) {
447
+ const packageAddress = options.package ?? '@waterx/rule';
448
+ return (tx) => tx.moveCall({
449
+ package: packageAddress,
450
+ module: 'waterx_rule',
451
+ function: 'new_batch_payload',
452
+ });
453
+ }
454
+ function newBatchItem(options) {
455
+ const packageAddress = options.package ?? '@waterx/rule';
456
+ const argumentsTypes = [
457
+ '0x1::string::String',
458
+ '0x1::string::String',
459
+ 'vector<u64>',
460
+ '0x1::string::String',
461
+ 'u64',
462
+ 'u64',
463
+ 'u64',
464
+ 'u64',
465
+ 'u64',
466
+ 'u64',
467
+ 'u8'
468
+ ];
469
+ const parameterNames = ["symbol", "ticker", "sources", "method", "priceTimestampMs", "priceN", "priceScale", "confidenceN", "confidenceScale", "maxSourceDeviationBps", "numSources"];
470
+ return (tx) => tx.moveCall({
471
+ package: packageAddress,
472
+ module: 'waterx_rule',
473
+ function: 'new_batch_item',
474
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
475
+ });
476
+ }
477
+ function pushBatchItem(options) {
478
+ const packageAddress = options.package ?? '@waterx/rule';
479
+ const argumentsTypes = [
480
+ null,
481
+ null
482
+ ];
483
+ const parameterNames = ["payload", "item"];
484
+ return (tx) => tx.moveCall({
485
+ package: packageAddress,
486
+ module: 'waterx_rule',
487
+ function: 'push_batch_item',
488
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
489
+ });
490
+ }
491
+ function feedConfig(options) {
492
+ const packageAddress = options.package ?? '@waterx/rule';
493
+ const argumentsTypes = [
494
+ null,
495
+ '0x1::string::String'
496
+ ];
497
+ const parameterNames = ["config", "symbol"];
498
+ return (tx) => tx.moveCall({
499
+ package: packageAddress,
500
+ module: 'waterx_rule',
501
+ function: 'feed_config',
502
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
503
+ });
504
+ }
505
+ function batchPriceIntent(options = {}) {
506
+ const packageAddress = options.package ?? '@waterx/rule';
507
+ return (tx) => tx.moveCall({
508
+ package: packageAddress,
509
+ module: 'waterx_rule',
510
+ function: 'batch_price_intent',
511
+ });
512
+ }
513
+ function merkleRootIntent(options = {}) {
514
+ const packageAddress = options.package ?? '@waterx/rule';
515
+ return (tx) => tx.moveCall({
516
+ package: packageAddress,
517
+ module: 'waterx_rule',
518
+ function: 'merkle_root_intent',
519
+ });
520
+ }
521
+ /**
522
+ * The keccak256 leaf hash for `item` — `keccak256(0x00 || BCS(item))`. Exposed so
523
+ * the off-chain builder / SDK can be pinned against the on-chain encoding in a
524
+ * cross-implementation golden test.
525
+ */
526
+ function leafHashOf(options) {
527
+ const packageAddress = options.package ?? '@waterx/rule';
528
+ const argumentsTypes = [
529
+ null
530
+ ];
531
+ const parameterNames = ["item"];
532
+ return (tx) => tx.moveCall({
533
+ package: packageAddress,
534
+ module: 'waterx_rule',
535
+ function: 'leaf_hash_of',
536
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
537
+ });
538
+ }
539
+ function maxBatchSize(options = {}) {
540
+ const packageAddress = options.package ?? '@waterx/rule';
541
+ return (tx) => tx.moveCall({
542
+ package: packageAddress,
543
+ module: 'waterx_rule',
544
+ function: 'max_batch_size',
545
+ });
546
+ }
547
+ function batchItems(options) {
548
+ const packageAddress = options.package ?? '@waterx/rule';
549
+ const argumentsTypes = [
550
+ null
551
+ ];
552
+ const parameterNames = ["payload"];
553
+ return (tx) => tx.moveCall({
554
+ package: packageAddress,
555
+ module: 'waterx_rule',
556
+ function: 'batch_items',
557
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
558
+ });
559
+ }
560
+ function batchItemSymbol(options) {
561
+ const packageAddress = options.package ?? '@waterx/rule';
562
+ const argumentsTypes = [
563
+ null
564
+ ];
565
+ const parameterNames = ["item"];
566
+ return (tx) => tx.moveCall({
567
+ package: packageAddress,
568
+ module: 'waterx_rule',
569
+ function: 'batch_item_symbol',
570
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
571
+ });
572
+ }
573
+ function batchItemTicker(options) {
574
+ const packageAddress = options.package ?? '@waterx/rule';
575
+ const argumentsTypes = [
576
+ null
577
+ ];
578
+ const parameterNames = ["item"];
579
+ return (tx) => tx.moveCall({
580
+ package: packageAddress,
581
+ module: 'waterx_rule',
582
+ function: 'batch_item_ticker',
583
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
584
+ });
585
+ }
586
+ function batchItemSources(options) {
587
+ const packageAddress = options.package ?? '@waterx/rule';
588
+ const argumentsTypes = [
589
+ null
590
+ ];
591
+ const parameterNames = ["item"];
592
+ return (tx) => tx.moveCall({
593
+ package: packageAddress,
594
+ module: 'waterx_rule',
595
+ function: 'batch_item_sources',
596
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
597
+ });
598
+ }
599
+ function batchItemMethod(options) {
600
+ const packageAddress = options.package ?? '@waterx/rule';
601
+ const argumentsTypes = [
602
+ null
603
+ ];
604
+ const parameterNames = ["item"];
605
+ return (tx) => tx.moveCall({
606
+ package: packageAddress,
607
+ module: 'waterx_rule',
608
+ function: 'batch_item_method',
609
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
610
+ });
611
+ }
612
+ function batchItemPriceTimestampMs(options) {
613
+ const packageAddress = options.package ?? '@waterx/rule';
614
+ const argumentsTypes = [
615
+ null
616
+ ];
617
+ const parameterNames = ["item"];
618
+ return (tx) => tx.moveCall({
619
+ package: packageAddress,
620
+ module: 'waterx_rule',
621
+ function: 'batch_item_price_timestamp_ms',
622
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
623
+ });
624
+ }
625
+ function batchItemPriceN(options) {
626
+ const packageAddress = options.package ?? '@waterx/rule';
627
+ const argumentsTypes = [
628
+ null
629
+ ];
630
+ const parameterNames = ["item"];
631
+ return (tx) => tx.moveCall({
632
+ package: packageAddress,
633
+ module: 'waterx_rule',
634
+ function: 'batch_item_price_n',
635
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
636
+ });
637
+ }
638
+ function batchItemPriceScale(options) {
639
+ const packageAddress = options.package ?? '@waterx/rule';
640
+ const argumentsTypes = [
641
+ null
642
+ ];
643
+ const parameterNames = ["item"];
644
+ return (tx) => tx.moveCall({
645
+ package: packageAddress,
646
+ module: 'waterx_rule',
647
+ function: 'batch_item_price_scale',
648
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
649
+ });
650
+ }
651
+ function batchItemConfidenceN(options) {
652
+ const packageAddress = options.package ?? '@waterx/rule';
653
+ const argumentsTypes = [
654
+ null
655
+ ];
656
+ const parameterNames = ["item"];
657
+ return (tx) => tx.moveCall({
658
+ package: packageAddress,
659
+ module: 'waterx_rule',
660
+ function: 'batch_item_confidence_n',
661
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
662
+ });
663
+ }
664
+ function batchItemConfidenceScale(options) {
665
+ const packageAddress = options.package ?? '@waterx/rule';
666
+ const argumentsTypes = [
667
+ null
668
+ ];
669
+ const parameterNames = ["item"];
670
+ return (tx) => tx.moveCall({
671
+ package: packageAddress,
672
+ module: 'waterx_rule',
673
+ function: 'batch_item_confidence_scale',
674
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
675
+ });
676
+ }
677
+ function batchItemMaxSourceDeviationBps(options) {
678
+ const packageAddress = options.package ?? '@waterx/rule';
679
+ const argumentsTypes = [
680
+ null
681
+ ];
682
+ const parameterNames = ["item"];
683
+ return (tx) => tx.moveCall({
684
+ package: packageAddress,
685
+ module: 'waterx_rule',
686
+ function: 'batch_item_max_source_deviation_bps',
687
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
688
+ });
689
+ }
690
+ function batchItemNumSources(options) {
691
+ const packageAddress = options.package ?? '@waterx/rule';
692
+ const argumentsTypes = [
693
+ null
694
+ ];
695
+ const parameterNames = ["item"];
696
+ return (tx) => tx.moveCall({
697
+ package: packageAddress,
698
+ module: 'waterx_rule',
699
+ function: 'batch_item_num_sources',
700
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
701
+ });
702
+ }
703
+ function verifiedSymbol(options) {
704
+ const packageAddress = options.package ?? '@waterx/rule';
705
+ const argumentsTypes = [
706
+ null
707
+ ];
708
+ const parameterNames = ["price"];
709
+ return (tx) => tx.moveCall({
710
+ package: packageAddress,
711
+ module: 'waterx_rule',
712
+ function: 'verified_symbol',
713
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
714
+ });
715
+ }
716
+ function verifiedTicker(options) {
717
+ const packageAddress = options.package ?? '@waterx/rule';
718
+ const argumentsTypes = [
719
+ null
720
+ ];
721
+ const parameterNames = ["price"];
722
+ return (tx) => tx.moveCall({
723
+ package: packageAddress,
724
+ module: 'waterx_rule',
725
+ function: 'verified_ticker',
726
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
727
+ });
728
+ }
729
+ function verifiedSources(options) {
730
+ const packageAddress = options.package ?? '@waterx/rule';
731
+ const argumentsTypes = [
732
+ null
733
+ ];
734
+ const parameterNames = ["price"];
735
+ return (tx) => tx.moveCall({
736
+ package: packageAddress,
737
+ module: 'waterx_rule',
738
+ function: 'verified_sources',
739
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
740
+ });
741
+ }
742
+ function verifiedMethod(options) {
743
+ const packageAddress = options.package ?? '@waterx/rule';
744
+ const argumentsTypes = [
745
+ null
746
+ ];
747
+ const parameterNames = ["price"];
748
+ return (tx) => tx.moveCall({
749
+ package: packageAddress,
750
+ module: 'waterx_rule',
751
+ function: 'verified_method',
752
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
753
+ });
754
+ }
755
+ function verifiedPriceTimestampMs(options) {
756
+ const packageAddress = options.package ?? '@waterx/rule';
757
+ const argumentsTypes = [
758
+ null
759
+ ];
760
+ const parameterNames = ["price"];
761
+ return (tx) => tx.moveCall({
762
+ package: packageAddress,
763
+ module: 'waterx_rule',
764
+ function: 'verified_price_timestamp_ms',
765
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
766
+ });
767
+ }
768
+ function verifiedPrice(options) {
769
+ const packageAddress = options.package ?? '@waterx/rule';
770
+ const argumentsTypes = [
771
+ null
772
+ ];
773
+ const parameterNames = ["price"];
774
+ return (tx) => tx.moveCall({
775
+ package: packageAddress,
776
+ module: 'waterx_rule',
777
+ function: 'verified_price',
778
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
779
+ });
780
+ }
781
+ function verifiedPriceScaled(options) {
782
+ const packageAddress = options.package ?? '@waterx/rule';
783
+ const argumentsTypes = [
784
+ null
785
+ ];
786
+ const parameterNames = ["price"];
787
+ return (tx) => tx.moveCall({
788
+ package: packageAddress,
789
+ module: 'waterx_rule',
790
+ function: 'verified_price_scaled',
791
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
792
+ });
793
+ }
794
+ function verifiedPriceN(options) {
795
+ const packageAddress = options.package ?? '@waterx/rule';
796
+ const argumentsTypes = [
797
+ null
798
+ ];
799
+ const parameterNames = ["price"];
800
+ return (tx) => tx.moveCall({
801
+ package: packageAddress,
802
+ module: 'waterx_rule',
803
+ function: 'verified_price_n',
804
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
805
+ });
806
+ }
807
+ function verifiedPriceScale(options) {
808
+ const packageAddress = options.package ?? '@waterx/rule';
809
+ const argumentsTypes = [
810
+ null
811
+ ];
812
+ const parameterNames = ["price"];
813
+ return (tx) => tx.moveCall({
814
+ package: packageAddress,
815
+ module: 'waterx_rule',
816
+ function: 'verified_price_scale',
817
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
818
+ });
819
+ }
820
+ function verifiedConfidenceN(options) {
821
+ const packageAddress = options.package ?? '@waterx/rule';
822
+ const argumentsTypes = [
823
+ null
824
+ ];
825
+ const parameterNames = ["price"];
826
+ return (tx) => tx.moveCall({
827
+ package: packageAddress,
828
+ module: 'waterx_rule',
829
+ function: 'verified_confidence_n',
830
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
831
+ });
832
+ }
833
+ function verifiedConfidenceScale(options) {
834
+ const packageAddress = options.package ?? '@waterx/rule';
835
+ const argumentsTypes = [
836
+ null
837
+ ];
838
+ const parameterNames = ["price"];
839
+ return (tx) => tx.moveCall({
840
+ package: packageAddress,
841
+ module: 'waterx_rule',
842
+ function: 'verified_confidence_scale',
843
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
844
+ });
845
+ }
846
+ function verifiedMaxSourceDeviationBps(options) {
847
+ const packageAddress = options.package ?? '@waterx/rule';
848
+ const argumentsTypes = [
849
+ null
850
+ ];
851
+ const parameterNames = ["price"];
852
+ return (tx) => tx.moveCall({
853
+ package: packageAddress,
854
+ module: 'waterx_rule',
855
+ function: 'verified_max_source_deviation_bps',
856
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
857
+ });
858
+ }
859
+ function verifiedNumSources(options) {
860
+ const packageAddress = options.package ?? '@waterx/rule';
861
+ const argumentsTypes = [
862
+ null
863
+ ];
864
+ const parameterNames = ["price"];
865
+ return (tx) => tx.moveCall({
866
+ package: packageAddress,
867
+ module: 'waterx_rule',
868
+ function: 'verified_num_sources',
869
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
870
+ });
871
+ }
872
+ function verifiedSignedTimestampMs(options) {
873
+ const packageAddress = options.package ?? '@waterx/rule';
874
+ const argumentsTypes = [
875
+ null
876
+ ];
877
+ const parameterNames = ["price"];
878
+ return (tx) => tx.moveCall({
879
+ package: packageAddress,
880
+ module: 'waterx_rule',
881
+ function: 'verified_signed_timestamp_ms',
882
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
883
+ });
884
+ }
885
+ function sourceBinanceSpot(options = {}) {
886
+ const packageAddress = options.package ?? '@waterx/rule';
887
+ return (tx) => tx.moveCall({
888
+ package: packageAddress,
889
+ module: 'waterx_rule',
890
+ function: 'source_binance_spot',
891
+ });
892
+ }
893
+ function sourceBinanceUsdmPerpWs(options = {}) {
894
+ const packageAddress = options.package ?? '@waterx/rule';
895
+ return (tx) => tx.moveCall({
896
+ package: packageAddress,
897
+ module: 'waterx_rule',
898
+ function: 'source_binance_usdm_perp_ws',
899
+ });
900
+ }
901
+ function sourceBybitLinearPerpWs(options = {}) {
902
+ const packageAddress = options.package ?? '@waterx/rule';
903
+ return (tx) => tx.moveCall({
904
+ package: packageAddress,
905
+ module: 'waterx_rule',
906
+ function: 'source_bybit_linear_perp_ws',
907
+ });
908
+ }
909
+ function sourceGateioUsdtPerpWs(options = {}) {
910
+ const packageAddress = options.package ?? '@waterx/rule';
911
+ return (tx) => tx.moveCall({
912
+ package: packageAddress,
913
+ module: 'waterx_rule',
914
+ function: 'source_gateio_usdt_perp_ws',
915
+ });
916
+ }
917
+ function sourceGataUsdtPerpWs(options = {}) {
918
+ const packageAddress = options.package ?? '@waterx/rule';
919
+ return (tx) => tx.moveCall({
920
+ package: packageAddress,
921
+ module: 'waterx_rule',
922
+ function: 'source_gata_usdt_perp_ws',
923
+ });
924
+ }
925
+ function sourceBybitSpotWs(options = {}) {
926
+ const packageAddress = options.package ?? '@waterx/rule';
927
+ return (tx) => tx.moveCall({
928
+ package: packageAddress,
929
+ module: 'waterx_rule',
930
+ function: 'source_bybit_spot_ws',
931
+ });
932
+ }
933
+ function sourceXstockEquityRest(options = {}) {
934
+ const packageAddress = options.package ?? '@waterx/rule';
935
+ return (tx) => tx.moveCall({
936
+ package: packageAddress,
937
+ module: 'waterx_rule',
938
+ function: 'source_xstock_equity_rest',
939
+ });
940
+ }
941
+ function sourceOkxSpotWs(options = {}) {
942
+ const packageAddress = options.package ?? '@waterx/rule';
943
+ return (tx) => tx.moveCall({
944
+ package: packageAddress,
945
+ module: 'waterx_rule',
946
+ function: 'source_okx_spot_ws',
947
+ });
948
+ }
949
+ function sourceHyperliquidPerpWs(options = {}) {
950
+ const packageAddress = options.package ?? '@waterx/rule';
951
+ return (tx) => tx.moveCall({
952
+ package: packageAddress,
953
+ module: 'waterx_rule',
954
+ function: 'source_hyperliquid_perp_ws',
955
+ });
956
+ }
957
+ function sourceGateioSpotWs(options = {}) {
958
+ const packageAddress = options.package ?? '@waterx/rule';
959
+ return (tx) => tx.moveCall({
960
+ package: packageAddress,
961
+ module: 'waterx_rule',
962
+ function: 'source_gateio_spot_ws',
963
+ });
964
+ }
965
+ function sourceKrakenSpotWs(options = {}) {
966
+ const packageAddress = options.package ?? '@waterx/rule';
967
+ return (tx) => tx.moveCall({
968
+ package: packageAddress,
969
+ module: 'waterx_rule',
970
+ function: 'source_kraken_spot_ws',
971
+ });
972
+ }
973
+ function methodDirect(options = {}) {
974
+ const packageAddress = options.package ?? '@waterx/rule';
975
+ return (tx) => tx.moveCall({
976
+ package: packageAddress,
977
+ module: 'waterx_rule',
978
+ function: 'method_direct',
979
+ });
980
+ }
981
+ function methodMedian(options = {}) {
982
+ const packageAddress = options.package ?? '@waterx/rule';
983
+ return (tx) => tx.moveCall({
984
+ package: packageAddress,
985
+ module: 'waterx_rule',
986
+ function: 'method_median',
987
+ });
988
+ }
989
+ function methodConfidence(options = {}) {
990
+ const packageAddress = options.package ?? '@waterx/rule';
991
+ return (tx) => tx.moveCall({
992
+ package: packageAddress,
993
+ module: 'waterx_rule',
994
+ function: 'method_confidence',
995
+ });
996
+ }
997
+ function isSupportedSource(options) {
998
+ const packageAddress = options.package ?? '@waterx/rule';
999
+ const argumentsTypes = [
1000
+ 'u64'
1001
+ ];
1002
+ const parameterNames = ["source"];
1003
+ return (tx) => tx.moveCall({
1004
+ package: packageAddress,
1005
+ module: 'waterx_rule',
1006
+ function: 'is_supported_source',
1007
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1008
+ });
1009
+ }
1010
+ function isPerpSource(options) {
1011
+ const packageAddress = options.package ?? '@waterx/rule';
1012
+ const argumentsTypes = [
1013
+ 'u64'
1014
+ ];
1015
+ const parameterNames = ["source"];
1016
+ return (tx) => tx.moveCall({
1017
+ package: packageAddress,
1018
+ module: 'waterx_rule',
1019
+ function: 'is_perp_source',
1020
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1021
+ });
1022
+ }
1023
+ function isSupportedMethod(options) {
1024
+ const packageAddress = options.package ?? '@waterx/rule';
1025
+ const argumentsTypes = [
1026
+ '0x1::string::String'
1027
+ ];
1028
+ const parameterNames = ["method"];
1029
+ return (tx) => tx.moveCall({
1030
+ package: packageAddress,
1031
+ module: 'waterx_rule',
1032
+ function: 'is_supported_method',
1033
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1034
+ });
1035
+ }
1036
+ function isPerpMethod(options) {
1037
+ const packageAddress = options.package ?? '@waterx/rule';
1038
+ const argumentsTypes = [
1039
+ '0x1::string::String'
1040
+ ];
1041
+ const parameterNames = ["method"];
1042
+ return (tx) => tx.moveCall({
1043
+ package: packageAddress,
1044
+ module: 'waterx_rule',
1045
+ function: 'is_perp_method',
1046
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1047
+ });
1048
+ }
1049
+ function sourceFromName(options) {
1050
+ const packageAddress = options.package ?? '@waterx/rule';
1051
+ const argumentsTypes = [
1052
+ '0x1::string::String'
1053
+ ];
1054
+ const parameterNames = ["name"];
1055
+ return (tx) => tx.moveCall({
1056
+ package: packageAddress,
1057
+ module: 'waterx_rule',
1058
+ function: 'source_from_name',
1059
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1060
+ });
1061
+ }
1062
+ function methodFromName(options) {
1063
+ const packageAddress = options.package ?? '@waterx/rule';
1064
+ const argumentsTypes = [
1065
+ '0x1::string::String'
1066
+ ];
1067
+ const parameterNames = ["name"];
1068
+ return (tx) => tx.moveCall({
1069
+ package: packageAddress,
1070
+ module: 'waterx_rule',
1071
+ function: 'method_from_name',
1072
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1073
+ });
1074
+ }
1075
+ /**
1076
+ * Last accepted signed timestamp for `symbol` (0 if none yet). View helper for
1077
+ * keepers/SDK so they can pick a `timestamp_ms` strictly greater than this.
1078
+ */
1079
+ function signedTsHwm(options) {
1080
+ const packageAddress = options.package ?? '@waterx/rule';
1081
+ const argumentsTypes = [
1082
+ null,
1083
+ '0x1::string::String'
1084
+ ];
1085
+ const parameterNames = ["config", "symbol"];
1086
+ return (tx) => tx.moveCall({
1087
+ package: packageAddress,
1088
+ module: 'waterx_rule',
1089
+ function: 'signed_ts_hwm',
1090
+ arguments: (0, index_ts_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1091
+ });
1092
+ }