@anywalletkit/protocol-swap2-omniston 0.5.3 → 0.5.4
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.
- package/dist/validators.cjs +69 -9
- package/dist/validators.cjs.map +1 -1
- package/dist/validators.d.cts +40 -3
- package/dist/validators.d.ts +40 -3
- package/dist/validators.js +69 -9
- package/dist/validators.js.map +1 -1
- package/package.json +5 -5
package/dist/validators.d.cts
CHANGED
|
@@ -34,12 +34,48 @@ interface EvmOutputValidationInput {
|
|
|
34
34
|
type OmnistonEvmOutputRefusal = (reason: string, details?: Record<string, unknown>) => void;
|
|
35
35
|
/** JSON-RPC over the caller's endpoints (`rpcUrls`) with public failover (reads only). */
|
|
36
36
|
declare function omnistonEvmRpcRequest(chain: string, method: string, params: unknown[], rpcUrls?: OmnistonRpcUrls): Promise<unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* The operator behind an RPC endpoint, for counting a quorum: the registrable domain, approximated by the host's last
|
|
39
|
+
* two labels (`base-rpc.publicnode.com` → `publicnode.com`, `mainnet.base.org` → `base.org`); an IP literal is its own
|
|
40
|
+
* operator. Two endpoints of one company under different domains still count twice — pass `operatorOf` to merge them.
|
|
41
|
+
*/
|
|
42
|
+
declare function omnistonRpcOperator(url: string): string;
|
|
43
|
+
/** The endpoints for `chain` — the caller's first, the public fallbacks after, each URL once — grouped by operator in first-seen order. */
|
|
44
|
+
declare function omnistonRpcOperatorGroups(chain: string, rpcUrls?: OmnistonRpcUrls, operatorOf?: (url: string) => string): {
|
|
45
|
+
operator: string;
|
|
46
|
+
urls: string[];
|
|
47
|
+
}[];
|
|
48
|
+
/** Quorum options shared by the EVM output and input validators. */
|
|
49
|
+
interface OmnistonRpcQuorumOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Independent RPC operators that must each prove the position on their own before the secret is disclosed. The
|
|
52
|
+
* chain's endpoints (`rpcUrls`, then the public fallbacks) are grouped by operator ({@link omnistonRpcOperatorGroups});
|
|
53
|
+
* every group runs the whole validation — its state reads pinned to its own finalized block (head minus the chain's
|
|
54
|
+
* confirmations) instead of `latest` — and at least `quorum` groups must pass. With fewer operators configured than
|
|
55
|
+
* the quorum, nothing is disclosed. Default 1: one validation over the first answering endpoint, as before.
|
|
56
|
+
* Needs `rpcUrls` (or the public fallbacks); a single injected `request` cannot be split into operators.
|
|
57
|
+
*/
|
|
58
|
+
quorum?: number;
|
|
59
|
+
/** The operator of an endpoint URL (default {@link omnistonRpcOperator}). */
|
|
60
|
+
operatorOf?: (url: string) => string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Runs `once` against one request (quorum 1: the caller's `request`, or the endpoints with failover), or against every
|
|
64
|
+
* independent operator with pinned state reads (quorum ≥ 2) — true only when at least `quorum` of them prove it.
|
|
65
|
+
* Refusals from an operator's run carry its `operator`.
|
|
66
|
+
*/
|
|
67
|
+
declare function omnistonQuorumValidator<I extends {
|
|
68
|
+
chain: string;
|
|
69
|
+
}>(options: {
|
|
70
|
+
request?: RpcRequest;
|
|
71
|
+
rpcUrls?: OmnistonRpcUrls;
|
|
72
|
+
} & OmnistonRpcQuorumOptions, refuse: (reason: string, details?: Record<string, unknown>) => false, once: (request: RpcRequest, input: I, refuse: (reason: string, details?: Record<string, unknown>) => false) => Promise<boolean>): (input: I) => Promise<boolean>;
|
|
37
73
|
declare function createOmnistonEvmOutputValidator(options?: {
|
|
38
74
|
request?: RpcRequest;
|
|
39
75
|
rpcUrls?: OmnistonRpcUrls;
|
|
40
76
|
now?: () => number;
|
|
41
77
|
onRefusal?: OmnistonEvmOutputRefusal;
|
|
42
|
-
}): (input: EvmOutputValidationInput) => Promise<boolean>;
|
|
78
|
+
} & OmnistonRpcQuorumOptions): (input: EvmOutputValidationInput) => Promise<boolean>;
|
|
43
79
|
/**
|
|
44
80
|
* Finds an Omniston EVM delivery: the ERC-20 `Transfer` from the destination
|
|
45
81
|
* escrow to the recipient of at least `minUnits`, within the chain's lookback
|
|
@@ -79,12 +115,13 @@ interface EvmInputValidationInput {
|
|
|
79
115
|
}
|
|
80
116
|
/** Diagnostics hook: every refusal names its check and the numbers it compared (never a secret). */
|
|
81
117
|
type OmnistonValidatorRefusal = (reason: string, details?: Record<string, unknown>) => void;
|
|
118
|
+
/** `quorum` / `operatorOf`: see {@link OmnistonRpcQuorumOptions} — the same independent-operator check as the output validator. */
|
|
82
119
|
declare function createOmnistonEvmInputValidator(options?: {
|
|
83
120
|
request?: OmnistonRpcRequest;
|
|
84
121
|
rpcUrls?: OmnistonRpcUrls;
|
|
85
122
|
now?: () => number;
|
|
86
123
|
onRefusal?: OmnistonValidatorRefusal;
|
|
87
|
-
}): (input: EvmInputValidationInput) => Promise<boolean>;
|
|
124
|
+
} & OmnistonRpcQuorumOptions): (input: EvmInputValidationInput) => Promise<boolean>;
|
|
88
125
|
|
|
89
126
|
/**
|
|
90
127
|
* Settlement contracts this deployment trusts for Omniston, per CAIP-2 chain.
|
|
@@ -105,4 +142,4 @@ declare const AUDITED_OMNISTON_SETTLEMENT_CONTRACTS: Record<string, string[]>;
|
|
|
105
142
|
*/
|
|
106
143
|
declare const AUDITED_OMNISTON_EVM_ORDER_PROTOCOLS: Record<string, string[]>;
|
|
107
144
|
|
|
108
|
-
export { AUDITED_OMNISTON_EVM_ORDER_PROTOCOLS, AUDITED_OMNISTON_SETTLEMENT_CONTRACTS, type EvmInputValidationInput, type EvmOutputValidationInput, OMNISTON_EVM_LOOKBACK_BLOCKS, OMNISTON_EVM_MIN_CONFIRMATIONS, type OmnistonEvmOutputRefusal, type OmnistonRpcRequest, type OmnistonRpcUrls, type OmnistonValidatorRefusal, SRC_ESCROW_CREATED_TOPIC, createOmnistonEvmDeliveryLocator, createOmnistonEvmInputValidator, createOmnistonEvmOutputValidator, omnistonEvmRpcRequest };
|
|
145
|
+
export { AUDITED_OMNISTON_EVM_ORDER_PROTOCOLS, AUDITED_OMNISTON_SETTLEMENT_CONTRACTS, type EvmInputValidationInput, type EvmOutputValidationInput, OMNISTON_EVM_LOOKBACK_BLOCKS, OMNISTON_EVM_MIN_CONFIRMATIONS, type OmnistonEvmOutputRefusal, type OmnistonRpcQuorumOptions, type OmnistonRpcRequest, type OmnistonRpcUrls, type OmnistonValidatorRefusal, SRC_ESCROW_CREATED_TOPIC, createOmnistonEvmDeliveryLocator, createOmnistonEvmInputValidator, createOmnistonEvmOutputValidator, omnistonEvmRpcRequest, omnistonQuorumValidator, omnistonRpcOperator, omnistonRpcOperatorGroups };
|
package/dist/validators.d.ts
CHANGED
|
@@ -34,12 +34,48 @@ interface EvmOutputValidationInput {
|
|
|
34
34
|
type OmnistonEvmOutputRefusal = (reason: string, details?: Record<string, unknown>) => void;
|
|
35
35
|
/** JSON-RPC over the caller's endpoints (`rpcUrls`) with public failover (reads only). */
|
|
36
36
|
declare function omnistonEvmRpcRequest(chain: string, method: string, params: unknown[], rpcUrls?: OmnistonRpcUrls): Promise<unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* The operator behind an RPC endpoint, for counting a quorum: the registrable domain, approximated by the host's last
|
|
39
|
+
* two labels (`base-rpc.publicnode.com` → `publicnode.com`, `mainnet.base.org` → `base.org`); an IP literal is its own
|
|
40
|
+
* operator. Two endpoints of one company under different domains still count twice — pass `operatorOf` to merge them.
|
|
41
|
+
*/
|
|
42
|
+
declare function omnistonRpcOperator(url: string): string;
|
|
43
|
+
/** The endpoints for `chain` — the caller's first, the public fallbacks after, each URL once — grouped by operator in first-seen order. */
|
|
44
|
+
declare function omnistonRpcOperatorGroups(chain: string, rpcUrls?: OmnistonRpcUrls, operatorOf?: (url: string) => string): {
|
|
45
|
+
operator: string;
|
|
46
|
+
urls: string[];
|
|
47
|
+
}[];
|
|
48
|
+
/** Quorum options shared by the EVM output and input validators. */
|
|
49
|
+
interface OmnistonRpcQuorumOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Independent RPC operators that must each prove the position on their own before the secret is disclosed. The
|
|
52
|
+
* chain's endpoints (`rpcUrls`, then the public fallbacks) are grouped by operator ({@link omnistonRpcOperatorGroups});
|
|
53
|
+
* every group runs the whole validation — its state reads pinned to its own finalized block (head minus the chain's
|
|
54
|
+
* confirmations) instead of `latest` — and at least `quorum` groups must pass. With fewer operators configured than
|
|
55
|
+
* the quorum, nothing is disclosed. Default 1: one validation over the first answering endpoint, as before.
|
|
56
|
+
* Needs `rpcUrls` (or the public fallbacks); a single injected `request` cannot be split into operators.
|
|
57
|
+
*/
|
|
58
|
+
quorum?: number;
|
|
59
|
+
/** The operator of an endpoint URL (default {@link omnistonRpcOperator}). */
|
|
60
|
+
operatorOf?: (url: string) => string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Runs `once` against one request (quorum 1: the caller's `request`, or the endpoints with failover), or against every
|
|
64
|
+
* independent operator with pinned state reads (quorum ≥ 2) — true only when at least `quorum` of them prove it.
|
|
65
|
+
* Refusals from an operator's run carry its `operator`.
|
|
66
|
+
*/
|
|
67
|
+
declare function omnistonQuorumValidator<I extends {
|
|
68
|
+
chain: string;
|
|
69
|
+
}>(options: {
|
|
70
|
+
request?: RpcRequest;
|
|
71
|
+
rpcUrls?: OmnistonRpcUrls;
|
|
72
|
+
} & OmnistonRpcQuorumOptions, refuse: (reason: string, details?: Record<string, unknown>) => false, once: (request: RpcRequest, input: I, refuse: (reason: string, details?: Record<string, unknown>) => false) => Promise<boolean>): (input: I) => Promise<boolean>;
|
|
37
73
|
declare function createOmnistonEvmOutputValidator(options?: {
|
|
38
74
|
request?: RpcRequest;
|
|
39
75
|
rpcUrls?: OmnistonRpcUrls;
|
|
40
76
|
now?: () => number;
|
|
41
77
|
onRefusal?: OmnistonEvmOutputRefusal;
|
|
42
|
-
}): (input: EvmOutputValidationInput) => Promise<boolean>;
|
|
78
|
+
} & OmnistonRpcQuorumOptions): (input: EvmOutputValidationInput) => Promise<boolean>;
|
|
43
79
|
/**
|
|
44
80
|
* Finds an Omniston EVM delivery: the ERC-20 `Transfer` from the destination
|
|
45
81
|
* escrow to the recipient of at least `minUnits`, within the chain's lookback
|
|
@@ -79,12 +115,13 @@ interface EvmInputValidationInput {
|
|
|
79
115
|
}
|
|
80
116
|
/** Diagnostics hook: every refusal names its check and the numbers it compared (never a secret). */
|
|
81
117
|
type OmnistonValidatorRefusal = (reason: string, details?: Record<string, unknown>) => void;
|
|
118
|
+
/** `quorum` / `operatorOf`: see {@link OmnistonRpcQuorumOptions} — the same independent-operator check as the output validator. */
|
|
82
119
|
declare function createOmnistonEvmInputValidator(options?: {
|
|
83
120
|
request?: OmnistonRpcRequest;
|
|
84
121
|
rpcUrls?: OmnistonRpcUrls;
|
|
85
122
|
now?: () => number;
|
|
86
123
|
onRefusal?: OmnistonValidatorRefusal;
|
|
87
|
-
}): (input: EvmInputValidationInput) => Promise<boolean>;
|
|
124
|
+
} & OmnistonRpcQuorumOptions): (input: EvmInputValidationInput) => Promise<boolean>;
|
|
88
125
|
|
|
89
126
|
/**
|
|
90
127
|
* Settlement contracts this deployment trusts for Omniston, per CAIP-2 chain.
|
|
@@ -105,4 +142,4 @@ declare const AUDITED_OMNISTON_SETTLEMENT_CONTRACTS: Record<string, string[]>;
|
|
|
105
142
|
*/
|
|
106
143
|
declare const AUDITED_OMNISTON_EVM_ORDER_PROTOCOLS: Record<string, string[]>;
|
|
107
144
|
|
|
108
|
-
export { AUDITED_OMNISTON_EVM_ORDER_PROTOCOLS, AUDITED_OMNISTON_SETTLEMENT_CONTRACTS, type EvmInputValidationInput, type EvmOutputValidationInput, OMNISTON_EVM_LOOKBACK_BLOCKS, OMNISTON_EVM_MIN_CONFIRMATIONS, type OmnistonEvmOutputRefusal, type OmnistonRpcRequest, type OmnistonRpcUrls, type OmnistonValidatorRefusal, SRC_ESCROW_CREATED_TOPIC, createOmnistonEvmDeliveryLocator, createOmnistonEvmInputValidator, createOmnistonEvmOutputValidator, omnistonEvmRpcRequest };
|
|
145
|
+
export { AUDITED_OMNISTON_EVM_ORDER_PROTOCOLS, AUDITED_OMNISTON_SETTLEMENT_CONTRACTS, type EvmInputValidationInput, type EvmOutputValidationInput, OMNISTON_EVM_LOOKBACK_BLOCKS, OMNISTON_EVM_MIN_CONFIRMATIONS, type OmnistonEvmOutputRefusal, type OmnistonRpcQuorumOptions, type OmnistonRpcRequest, type OmnistonRpcUrls, type OmnistonValidatorRefusal, SRC_ESCROW_CREATED_TOPIC, createOmnistonEvmDeliveryLocator, createOmnistonEvmInputValidator, createOmnistonEvmOutputValidator, omnistonEvmRpcRequest, omnistonQuorumValidator, omnistonRpcOperator, omnistonRpcOperatorGroups };
|
package/dist/validators.js
CHANGED
|
@@ -152,6 +152,9 @@ function decodeFeeParameters(parameters) {
|
|
|
152
152
|
async function omnistonEvmRpcRequest(chain, method, params, rpcUrls) {
|
|
153
153
|
const urls = [...rpcUrls?.[chain] ?? [], ...DEFAULT_RPC_URLS[chain] ?? []].filter((url) => !!url);
|
|
154
154
|
if (!urls.length) throw new Error(`omniston: no RPC configured for ${chain}`);
|
|
155
|
+
return await rpcOver(urls, chain, method, params);
|
|
156
|
+
}
|
|
157
|
+
async function rpcOver(urls, chain, method, params) {
|
|
155
158
|
let lastError;
|
|
156
159
|
for (const url of urls) {
|
|
157
160
|
try {
|
|
@@ -171,6 +174,62 @@ async function omnistonEvmRpcRequest(chain, method, params, rpcUrls) {
|
|
|
171
174
|
}
|
|
172
175
|
throw lastError instanceof Error ? lastError : new Error(`omniston: RPC failed for ${chain}`);
|
|
173
176
|
}
|
|
177
|
+
function omnistonRpcOperator(url) {
|
|
178
|
+
const host = new URL(url).hostname.toLowerCase().replace(/\.$/, "");
|
|
179
|
+
if (/^[\d.]+$/.test(host) || host.includes(":") || host.startsWith("[")) return host;
|
|
180
|
+
return host.split(".").slice(-2).join(".");
|
|
181
|
+
}
|
|
182
|
+
function omnistonRpcOperatorGroups(chain, rpcUrls, operatorOf = omnistonRpcOperator) {
|
|
183
|
+
const groups = [];
|
|
184
|
+
const seen = /* @__PURE__ */ new Set();
|
|
185
|
+
for (const url of [...rpcUrls?.[chain] ?? [], ...DEFAULT_RPC_URLS[chain] ?? []]) {
|
|
186
|
+
if (!url || seen.has(url)) continue;
|
|
187
|
+
seen.add(url);
|
|
188
|
+
let operator;
|
|
189
|
+
try {
|
|
190
|
+
operator = operatorOf(url);
|
|
191
|
+
} catch {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const group = groups.find((g) => g.operator === operator);
|
|
195
|
+
if (group) group.urls.push(url);
|
|
196
|
+
else groups.push({ operator, urls: [url] });
|
|
197
|
+
}
|
|
198
|
+
return groups;
|
|
199
|
+
}
|
|
200
|
+
function pinnedStateRequest(request) {
|
|
201
|
+
let pinned = null;
|
|
202
|
+
return async (chain, method, params) => {
|
|
203
|
+
if (method === "eth_blockNumber") {
|
|
204
|
+
const head = await request(chain, method, params);
|
|
205
|
+
const latest = BigInt(head);
|
|
206
|
+
const confirmations = OMNISTON_EVM_MIN_CONFIRMATIONS[chain] ?? 20n;
|
|
207
|
+
pinned = quantity(latest >= confirmations ? latest - confirmations : 0n);
|
|
208
|
+
return head;
|
|
209
|
+
}
|
|
210
|
+
if (pinned && (method === "eth_call" || method === "eth_getCode" || method === "eth_getBalance") && params.at(-1) === "latest") {
|
|
211
|
+
return await request(chain, method, [...params.slice(0, -1), pinned]);
|
|
212
|
+
}
|
|
213
|
+
return await request(chain, method, params);
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
function omnistonQuorumValidator(options, refuse, once) {
|
|
217
|
+
const quorum = options.quorum ?? 1;
|
|
218
|
+
if (!Number.isSafeInteger(quorum) || quorum < 1) throw new Error("omniston: quorum must be a positive integer");
|
|
219
|
+
if (quorum === 1) {
|
|
220
|
+
const request = options.request ?? ((chain, method, params) => omnistonEvmRpcRequest(chain, method, params, options.rpcUrls));
|
|
221
|
+
return (input) => once(request, input, refuse);
|
|
222
|
+
}
|
|
223
|
+
if (options.request) throw new Error("omniston: an RPC quorum needs rpcUrls (one request per operator), not a single request");
|
|
224
|
+
return async (input) => {
|
|
225
|
+
const groups = omnistonRpcOperatorGroups(input.chain, options.rpcUrls, options.operatorOf);
|
|
226
|
+
const operators = groups.map((g) => g.operator);
|
|
227
|
+
if (groups.length < quorum) return refuse("rpc-quorum-unavailable", { chain: input.chain, operators, quorum });
|
|
228
|
+
const results = await Promise.all(groups.map((g) => once(pinnedStateRequest((chain, method, params) => rpcOver(g.urls, chain, method, params)), input, (reason, details) => refuse(reason, { ...details, operator: g.operator })).catch(() => false)));
|
|
229
|
+
const agreed = operators.filter((_, i) => results[i]);
|
|
230
|
+
return agreed.length >= quorum || refuse("rpc-quorum-not-met", { chain: input.chain, agreed, operators, quorum });
|
|
231
|
+
};
|
|
232
|
+
}
|
|
174
233
|
async function ethCall(request, chain, to, data) {
|
|
175
234
|
return await request(chain, "eth_call", [{ to, data }, "latest"]);
|
|
176
235
|
}
|
|
@@ -204,16 +263,15 @@ function locateImmutables(input, secretHash) {
|
|
|
204
263
|
}
|
|
205
264
|
}
|
|
206
265
|
function createOmnistonEvmOutputValidator(options = {}) {
|
|
207
|
-
const
|
|
266
|
+
const report = (reason, details) => {
|
|
208
267
|
try {
|
|
209
268
|
options.onRefusal?.(reason, details);
|
|
210
269
|
} catch {
|
|
211
270
|
}
|
|
212
271
|
return false;
|
|
213
272
|
};
|
|
214
|
-
const request = options.request ?? ((chain, method, params) => omnistonEvmRpcRequest(chain, method, params, options.rpcUrls));
|
|
215
273
|
const now = options.now ?? Date.now;
|
|
216
|
-
return async (input) => {
|
|
274
|
+
return omnistonQuorumValidator(options, report, async (request, input, refuse) => {
|
|
217
275
|
try {
|
|
218
276
|
if (!OMNISTON_EVM_LOOKBACK_BLOCKS[input.chain] || input.executionIndex !== 0 || !isAddress(input.positionAddress) || !isAddress(input.factoryAddress) || !isAddress(input.recipientAddress) || !isAddress(input.outputTokenAddress) || !Number.isInteger(input.quoteTimestamp) || input.quoteTimestamp * 1e3 > now() + 12e4 || now() - input.quoteTimestamp * 1e3 > 6 * 60 * 60 * 1e3) return refuse("input-shape");
|
|
219
277
|
const position = getAddress(input.positionAddress);
|
|
@@ -310,7 +368,7 @@ function createOmnistonEvmOutputValidator(options = {}) {
|
|
|
310
368
|
} catch (error) {
|
|
311
369
|
return refuse("error", { message: error instanceof Error ? error.message : String(error) });
|
|
312
370
|
}
|
|
313
|
-
};
|
|
371
|
+
});
|
|
314
372
|
}
|
|
315
373
|
var TRANSFER_TOPIC = keccak256(stringToHex("Transfer(address,address,uint256)"));
|
|
316
374
|
var topicAddress = (address) => `0x${getAddress(address).slice(2).toLowerCase().padStart(64, "0")}`;
|
|
@@ -421,16 +479,15 @@ async function ethCall2(request, chain, to, data) {
|
|
|
421
479
|
return await request(chain, "eth_call", [{ to, data }, "latest"]);
|
|
422
480
|
}
|
|
423
481
|
function createOmnistonEvmInputValidator(options = {}) {
|
|
424
|
-
const
|
|
482
|
+
const report = (reason, details) => {
|
|
425
483
|
try {
|
|
426
484
|
options.onRefusal?.(reason, details);
|
|
427
485
|
} catch {
|
|
428
486
|
}
|
|
429
487
|
return false;
|
|
430
488
|
};
|
|
431
|
-
const request = options.request ?? ((chain, method, params) => omnistonEvmRpcRequest(chain, method, params, options.rpcUrls));
|
|
432
489
|
const now = options.now ?? Date.now;
|
|
433
|
-
return async (input) => {
|
|
490
|
+
return omnistonQuorumValidator(options, report, async (request, input, refuse) => {
|
|
434
491
|
try {
|
|
435
492
|
if (!OMNISTON_EVM_LOOKBACK_BLOCKS[input.chain] || !isAddress2(input.positionAddress) || !isAddress2(input.factoryAddress) || !isAddress2(input.orderProtocolAddress) || !isAddress2(input.ownerAddress) || !isAddress2(input.resolverAddress) || !isAddress2(input.inputTokenAddress) || !Number.isInteger(input.quoteTimestamp) || input.quoteTimestamp * 1e3 > now() + 12e4 || now() - input.quoteTimestamp * 1e3 > 6 * 60 * 60 * 1e3 || input.secretHash.length !== 32) return refuse("input-shape");
|
|
436
493
|
const position = getAddress2(input.positionAddress);
|
|
@@ -505,7 +562,7 @@ function createOmnistonEvmInputValidator(options = {}) {
|
|
|
505
562
|
} catch (error) {
|
|
506
563
|
return refuse("error", { message: error instanceof Error ? error.message : String(error) });
|
|
507
564
|
}
|
|
508
|
-
};
|
|
565
|
+
});
|
|
509
566
|
}
|
|
510
567
|
|
|
511
568
|
// src/validators/ton.ts
|
|
@@ -1145,6 +1202,9 @@ export {
|
|
|
1145
1202
|
createOmnistonEvmOutputValidator,
|
|
1146
1203
|
createOmnistonTonDeliveryLocator,
|
|
1147
1204
|
createOmnistonTonValidators,
|
|
1148
|
-
omnistonEvmRpcRequest
|
|
1205
|
+
omnistonEvmRpcRequest,
|
|
1206
|
+
omnistonQuorumValidator,
|
|
1207
|
+
omnistonRpcOperator,
|
|
1208
|
+
omnistonRpcOperatorGroups
|
|
1149
1209
|
};
|
|
1150
1210
|
//# sourceMappingURL=validators.js.map
|