@xyo-network/xl1-rpc 1.26.31 → 1.26.33
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/neutral/engine-node/rpcEngineFromConnection.d.ts +3 -2
- package/dist/neutral/engine-node/rpcEngineFromConnection.d.ts.map +1 -1
- package/dist/neutral/index.mjs +83 -16
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewer.d.ts +26 -2
- package/dist/neutral/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewerMethods.d.ts +3 -3
- package/dist/neutral/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewerMethods.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/JsonRpcViewer.d.ts +3 -2
- package/dist/neutral/provider/viewer/JsonRpcViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/JsonRpcXyoViewer.d.ts +1 -1
- package/dist/neutral/provider/viewer/JsonRpcXyoViewer.d.ts.map +1 -1
- package/dist/neutral/transport/HttpRpcTransport.d.ts.map +1 -1
- package/dist/node/engine-node/rpcEngineFromConnection.d.ts +3 -2
- package/dist/node/engine-node/rpcEngineFromConnection.d.ts.map +1 -1
- package/dist/node/index-node.mjs +88 -21
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewer.d.ts +26 -2
- package/dist/node/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewer.d.ts.map +1 -1
- package/dist/node/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewerMethods.d.ts +3 -3
- package/dist/node/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewerMethods.d.ts.map +1 -1
- package/dist/node/provider/viewer/JsonRpcViewer.d.ts +3 -2
- package/dist/node/provider/viewer/JsonRpcViewer.d.ts.map +1 -1
- package/dist/node/provider/viewer/JsonRpcXyoViewer.d.ts +1 -1
- package/dist/node/provider/viewer/JsonRpcXyoViewer.d.ts.map +1 -1
- package/dist/node/transport/HttpRpcTransport.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2';
|
|
2
2
|
import { JsonRpcEngineV2, JsonRpcServer } from '@metamask/json-rpc-engine/v2';
|
|
3
|
+
import type { Logger } from '@xylabs/sdk-js';
|
|
3
4
|
import type { XyoConnection } from '@xyo-network/xl1-protocol-lib';
|
|
4
|
-
export declare const rpcEngineFromConnection: (connection: XyoConnection) => JsonRpcEngineV2<import("@metamask/json-rpc-engine/v2").JsonRpcCall, import("@metamask/json-rpc-engine/v2").MiddlewareContext<{
|
|
5
|
+
export declare const rpcEngineFromConnection: (connection: XyoConnection, logger?: Logger) => JsonRpcEngineV2<import("@metamask/json-rpc-engine/v2").JsonRpcCall, import("@metamask/json-rpc-engine/v2").MiddlewareContext<{
|
|
5
6
|
[x: string]: unknown;
|
|
6
7
|
[x: number]: unknown;
|
|
7
8
|
[x: symbol]: unknown;
|
|
8
9
|
}>>;
|
|
9
|
-
export declare function rpcServerFromConnection(connection: XyoConnection): JsonRpcServer<JsonRpcMiddleware>;
|
|
10
|
+
export declare function rpcServerFromConnection(connection: XyoConnection, logger?: Logger): JsonRpcServer<JsonRpcMiddleware>;
|
|
10
11
|
//# sourceMappingURL=rpcEngineFromConnection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpcEngineFromConnection.d.ts","sourceRoot":"","sources":["../../../src/engine-node/rpcEngineFromConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAQlE,eAAO,MAAM,uBAAuB,GAClC,YAAY,aAAa;;;;
|
|
1
|
+
{"version":3,"file":"rpcEngineFromConnection.d.ts","sourceRoot":"","sources":["../../../src/engine-node/rpcEngineFromConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAQlE,eAAO,MAAM,uBAAuB,GAClC,YAAY,aAAa,EACzB,SAAS,MAAM;;;;GA6ChB,CAAA;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,oCAGjF"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1564,7 +1564,10 @@ var HttpRpcTransport = class {
|
|
|
1564
1564
|
body.params ??= [];
|
|
1565
1565
|
const res = await new Axios(axiosJsonConfig()).post(url, body);
|
|
1566
1566
|
const json = res.data;
|
|
1567
|
-
if (isUndefinedOrNull(json)
|
|
1567
|
+
if (isUndefinedOrNull(json)) {
|
|
1568
|
+
throw new Error(`[callRpc] empty response body (status ${res.status})`);
|
|
1569
|
+
}
|
|
1570
|
+
if (json.error) {
|
|
1568
1571
|
throw new Error(json.error.message);
|
|
1569
1572
|
}
|
|
1570
1573
|
const result = isDefined(schema) ? schemas[method].result.from.parse(json.result) : json.result;
|
|
@@ -1731,7 +1734,7 @@ var PostMessageRpcTransport = class {
|
|
|
1731
1734
|
return await this.callRpc(this.schemas, method, id, params);
|
|
1732
1735
|
}
|
|
1733
1736
|
async callRpc(schemas, method, id, params) {
|
|
1734
|
-
this.logger?.
|
|
1737
|
+
this.logger?.debug(`PostMessageRpcTransport: callRpc method=${String(method)} id=${id}`);
|
|
1735
1738
|
const body = {
|
|
1736
1739
|
jsonrpc,
|
|
1737
1740
|
id,
|
|
@@ -1750,7 +1753,7 @@ var PostMessageRpcTransport = class {
|
|
|
1750
1753
|
return;
|
|
1751
1754
|
}
|
|
1752
1755
|
if (isJsonRpcFailure(response)) {
|
|
1753
|
-
|
|
1756
|
+
this.logger?.error("Error in PostMessageRpcTransport", response);
|
|
1754
1757
|
reject(new Error(response.error.message));
|
|
1755
1758
|
return;
|
|
1756
1759
|
}
|
|
@@ -1842,6 +1845,7 @@ JsonRpcAccountBalanceViewer = __decorateClass([
|
|
|
1842
1845
|
], JsonRpcAccountBalanceViewer);
|
|
1843
1846
|
|
|
1844
1847
|
// src/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewer.ts
|
|
1848
|
+
import { assertEx as assertEx2 } from "@xylabs/sdk-js";
|
|
1845
1849
|
import {
|
|
1846
1850
|
BlockViewerMoniker as BlockViewerMoniker2
|
|
1847
1851
|
} from "@xyo-network/xl1-protocol-lib";
|
|
@@ -1897,7 +1901,24 @@ var JsonRpcBlockViewerMethods = class extends AbstractJsonRpcViewer {
|
|
|
1897
1901
|
};
|
|
1898
1902
|
|
|
1899
1903
|
// src/provider/viewer/JsonRpcBlockViewer/JsonRpcBlockViewer.ts
|
|
1904
|
+
var MIN_HEAD_POLL_INTERVAL_MS = 5e3;
|
|
1900
1905
|
var JsonRpcBlockViewer = class extends JsonRpcBlockViewerMethods {
|
|
1906
|
+
_headPollHash;
|
|
1907
|
+
_headPollInProgress = false;
|
|
1908
|
+
_headPollTimer = null;
|
|
1909
|
+
get headPollIntervalMs() {
|
|
1910
|
+
return this.params.headPollIntervalMs;
|
|
1911
|
+
}
|
|
1912
|
+
static async paramsHandler(params = {}) {
|
|
1913
|
+
const headPollIntervalMs = params.headPollIntervalMs;
|
|
1914
|
+
if (headPollIntervalMs !== void 0) {
|
|
1915
|
+
assertEx2(headPollIntervalMs >= MIN_HEAD_POLL_INTERVAL_MS, () => `headPollIntervalMs must be at least ${MIN_HEAD_POLL_INTERVAL_MS}ms`);
|
|
1916
|
+
}
|
|
1917
|
+
return {
|
|
1918
|
+
...await super.paramsHandler(params),
|
|
1919
|
+
headPollIntervalMs
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1901
1922
|
async blockByHash(hash) {
|
|
1902
1923
|
return (await this.blocksByHash(hash, 1))[0];
|
|
1903
1924
|
}
|
|
@@ -1928,6 +1949,52 @@ var JsonRpcBlockViewer = class extends JsonRpcBlockViewerMethods {
|
|
|
1928
1949
|
async timeDurationRate(timeConfig, startBlockNumber, timeUnit, toleranceMs, maxAttempts) {
|
|
1929
1950
|
return await calculateTimeRate(this, timeConfig, startBlockNumber, timeUnit, toleranceMs, maxAttempts);
|
|
1930
1951
|
}
|
|
1952
|
+
async startHandler() {
|
|
1953
|
+
await super.startHandler();
|
|
1954
|
+
if (this.headPollIntervalMs === void 0) return;
|
|
1955
|
+
await this.pollHead(false);
|
|
1956
|
+
this.startHeadPolling();
|
|
1957
|
+
}
|
|
1958
|
+
async stopHandler() {
|
|
1959
|
+
this.stopHeadPolling();
|
|
1960
|
+
this._headPollHash = void 0;
|
|
1961
|
+
await super.stopHandler();
|
|
1962
|
+
}
|
|
1963
|
+
async pollHead(emitOnChange) {
|
|
1964
|
+
if (this._headPollInProgress) return;
|
|
1965
|
+
this._headPollInProgress = true;
|
|
1966
|
+
try {
|
|
1967
|
+
const block = await this.currentBlock();
|
|
1968
|
+
const hash = block[0]._hash;
|
|
1969
|
+
if (this._headPollHash === void 0) {
|
|
1970
|
+
this._headPollHash = hash;
|
|
1971
|
+
return;
|
|
1972
|
+
}
|
|
1973
|
+
if (hash !== this._headPollHash) {
|
|
1974
|
+
this._headPollHash = hash;
|
|
1975
|
+
if (emitOnChange) {
|
|
1976
|
+
await this.emit("headUpdated", { block });
|
|
1977
|
+
}
|
|
1978
|
+
}
|
|
1979
|
+
} catch (ex) {
|
|
1980
|
+
this.logger?.error("Error polling block head", ex);
|
|
1981
|
+
} finally {
|
|
1982
|
+
this._headPollInProgress = false;
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
startHeadPolling() {
|
|
1986
|
+
if (this.headPollIntervalMs === void 0) return;
|
|
1987
|
+
this.stopHeadPolling();
|
|
1988
|
+
this._headPollTimer = setInterval(() => {
|
|
1989
|
+
void this.pollHead(true);
|
|
1990
|
+
}, this.headPollIntervalMs);
|
|
1991
|
+
}
|
|
1992
|
+
stopHeadPolling() {
|
|
1993
|
+
if (this._headPollTimer) {
|
|
1994
|
+
clearInterval(this._headPollTimer);
|
|
1995
|
+
this._headPollTimer = null;
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1931
1998
|
};
|
|
1932
1999
|
__publicField(JsonRpcBlockViewer, "defaultMoniker", BlockViewerMoniker2);
|
|
1933
2000
|
__publicField(JsonRpcBlockViewer, "dependencies", []);
|
|
@@ -2238,7 +2305,7 @@ JsonRpcTimeSyncViewer = __decorateClass([
|
|
|
2238
2305
|
|
|
2239
2306
|
// src/provider/viewer/JsonRpcTransactionViewer/JsonRpcTransactionViewer.ts
|
|
2240
2307
|
import {
|
|
2241
|
-
assertEx as
|
|
2308
|
+
assertEx as assertEx3,
|
|
2242
2309
|
exists
|
|
2243
2310
|
} from "@xylabs/sdk-js";
|
|
2244
2311
|
import { BoundWitnessSchema } from "@xyo-network/sdk-js";
|
|
@@ -2258,7 +2325,7 @@ var JsonRpcTransactionViewer = class extends AbstractJsonRpcViewer {
|
|
|
2258
2325
|
}
|
|
2259
2326
|
async byBlockHashAndIndex(blockHash, transactionIndex) {
|
|
2260
2327
|
return await this.spanAsync("byBlockHashAndIndex", async () => {
|
|
2261
|
-
|
|
2328
|
+
assertEx3(transactionIndex >= 0, () => "transactionIndex must be greater than or equal to 0");
|
|
2262
2329
|
try {
|
|
2263
2330
|
const block = await this.blockViewer.blockByHash(blockHash);
|
|
2264
2331
|
if (!block) return null;
|
|
@@ -2321,7 +2388,7 @@ JsonRpcTransactionViewer = __decorateClass([
|
|
|
2321
2388
|
|
|
2322
2389
|
// src/provider/viewer/JsonRpcXyoViewer.ts
|
|
2323
2390
|
import {
|
|
2324
|
-
assertEx as
|
|
2391
|
+
assertEx as assertEx4,
|
|
2325
2392
|
isUndefined
|
|
2326
2393
|
} from "@xylabs/sdk-js";
|
|
2327
2394
|
import { PayloadBuilder } from "@xyo-network/sdk-js";
|
|
@@ -2354,31 +2421,31 @@ var JsonRpcXyoViewer = class extends AbstractJsonRpcViewer {
|
|
|
2354
2421
|
_chainId;
|
|
2355
2422
|
_providers = void 0;
|
|
2356
2423
|
get account() {
|
|
2357
|
-
return { balance:
|
|
2424
|
+
return { balance: assertEx4(this.providers?.[AccountBalanceViewerMoniker3], () => `AccountBalanceViewer provider not found for ${this.moniker}`) };
|
|
2358
2425
|
}
|
|
2359
2426
|
get block() {
|
|
2360
|
-
return
|
|
2427
|
+
return assertEx4(this.providers?.[BlockViewerMoniker4], () => `BlockViewer provider not found for ${this.moniker}`);
|
|
2361
2428
|
}
|
|
2362
2429
|
get finalization() {
|
|
2363
|
-
return
|
|
2430
|
+
return assertEx4(this.providers?.[FinalizationViewerMoniker3], () => `FinalizationViewer provider not found for ${this.moniker}`);
|
|
2364
2431
|
}
|
|
2365
2432
|
get mempool() {
|
|
2366
|
-
return
|
|
2433
|
+
return assertEx4(this.providers?.[MempoolViewerMoniker3], () => `MempoolViewer provider not found for ${this.moniker}`);
|
|
2367
2434
|
}
|
|
2368
2435
|
get networkStake() {
|
|
2369
|
-
return
|
|
2436
|
+
return assertEx4(this.providers?.[NetworkStakeViewerMoniker3], () => `NetworkStakeViewer provider not found for ${this.moniker}`);
|
|
2370
2437
|
}
|
|
2371
2438
|
get stake() {
|
|
2372
|
-
return
|
|
2439
|
+
return assertEx4(this.providers?.[StakeViewerMoniker3], () => `StakeViewer provider not found for ${this.moniker}`);
|
|
2373
2440
|
}
|
|
2374
2441
|
get step() {
|
|
2375
|
-
return
|
|
2442
|
+
return assertEx4(this.providers?.[StepViewerMoniker], () => `StepViewer provider not found for ${this.moniker}`);
|
|
2376
2443
|
}
|
|
2377
2444
|
get time() {
|
|
2378
|
-
return
|
|
2445
|
+
return assertEx4(this.providers?.[TimeSyncViewerMoniker3], () => `TimeSyncViewer provider not found for ${this.moniker}`);
|
|
2379
2446
|
}
|
|
2380
2447
|
get transaction() {
|
|
2381
|
-
return
|
|
2448
|
+
return assertEx4(this.providers?.[TransactionViewerMoniker2], () => `TransactionViewer provider not found for ${this.moniker}`);
|
|
2382
2449
|
}
|
|
2383
2450
|
get providers() {
|
|
2384
2451
|
return this._providers;
|
|
@@ -2427,7 +2494,7 @@ var JsonRpcXyoViewer = class extends AbstractJsonRpcViewer {
|
|
|
2427
2494
|
[TimeSyncViewerMoniker3]: await this.locator.getInstance(TimeSyncViewerMoniker3),
|
|
2428
2495
|
[TransactionViewerMoniker2]: await this.locator.getInstance(TransactionViewerMoniker2)
|
|
2429
2496
|
};
|
|
2430
|
-
for (const [moniker, provider] of Object.entries(
|
|
2497
|
+
for (const [moniker, provider] of Object.entries(assertEx4(this._providers, () => "Failed to initialize JsonRpcXyoViewer: providers not found"))) {
|
|
2431
2498
|
if (isUndefined(provider)) {
|
|
2432
2499
|
throw new Error(`Failed to initialize JsonRpcXyoViewer: missing provider dependency for ${moniker}`);
|
|
2433
2500
|
}
|