@notuslabs/yail 0.2.1 → 0.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.
- package/README.md +19 -4
- package/dist/cache/cached.d.ts.map +1 -1
- package/dist/cache/cached.js +5 -3
- package/dist/cache/cached.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +7 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/config/create-config.d.ts +1 -1
- package/dist/config/create-config.d.ts.map +1 -1
- package/dist/config/create-config.js +2 -2
- package/dist/config/create-config.js.map +1 -1
- package/dist/config/types.d.ts +5 -5
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/context.d.ts +4 -3
- package/dist/indexer/context.d.ts.map +1 -1
- package/dist/indexer/context.js.map +1 -1
- package/dist/indexer/events.d.ts +26 -2
- package/dist/indexer/events.d.ts.map +1 -1
- package/dist/indexer/events.js +16 -0
- package/dist/indexer/events.js.map +1 -1
- package/dist/indexer/indexer.d.ts +2 -12
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +20 -22
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/indexer/plan.d.ts +6 -7
- package/dist/indexer/plan.d.ts.map +1 -1
- package/dist/indexer/plan.js +13 -36
- package/dist/indexer/plan.js.map +1 -1
- package/dist/indexer/runtime.d.ts +4 -6
- package/dist/indexer/runtime.d.ts.map +1 -1
- package/dist/indexer/runtime.js +57 -40
- package/dist/indexer/runtime.js.map +1 -1
- package/dist/sources/cached.d.ts.map +1 -1
- package/dist/sources/cached.js +37 -21
- package/dist/sources/cached.js.map +1 -1
- package/dist/sources/esplora.d.ts.map +1 -1
- package/dist/sources/esplora.js +8 -37
- package/dist/sources/esplora.js.map +1 -1
- package/dist/sources/fixture.d.ts +23 -2
- package/dist/sources/fixture.d.ts.map +1 -1
- package/dist/sources/fixture.js +34 -0
- package/dist/sources/fixture.js.map +1 -1
- package/dist/sources/hypersync.d.ts +10 -1
- package/dist/sources/hypersync.d.ts.map +1 -1
- package/dist/sources/hypersync.js +6 -0
- package/dist/sources/hypersync.js.map +1 -1
- package/dist/sources/index.d.ts +5 -4
- package/dist/sources/index.d.ts.map +1 -1
- package/dist/sources/index.js +2 -1
- package/dist/sources/index.js.map +1 -1
- package/dist/sources/rpc.d.ts +7 -1
- package/dist/sources/rpc.d.ts.map +1 -1
- package/dist/sources/rpc.js +7 -16
- package/dist/sources/rpc.js.map +1 -1
- package/dist/sources/solana/hypersync.d.ts +25 -0
- package/dist/sources/solana/hypersync.d.ts.map +1 -0
- package/dist/sources/solana/hypersync.js +117 -0
- package/dist/sources/solana/hypersync.js.map +1 -0
- package/dist/sources/solana/rpc.d.ts +25 -0
- package/dist/sources/solana/rpc.d.ts.map +1 -0
- package/dist/sources/solana/rpc.js +134 -0
- package/dist/sources/solana/rpc.js.map +1 -0
- package/dist/sources/solana/shared.d.ts +12 -0
- package/dist/sources/solana/shared.d.ts.map +1 -0
- package/dist/sources/solana/shared.js +30 -0
- package/dist/sources/solana/shared.js.map +1 -0
- package/dist/sources/types.d.ts +69 -11
- package/dist/sources/types.d.ts.map +1 -1
- package/dist/sources/types.js +2 -2
- package/dist/sources/types.js.map +1 -1
- package/dist/sources/union.d.ts +12 -0
- package/dist/sources/union.d.ts.map +1 -0
- package/dist/sources/union.js +65 -0
- package/dist/sources/union.js.map +1 -0
- package/dist/testing/index.d.ts +2 -2
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/util.d.ts +9 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +58 -0
- package/dist/util.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BitcoinQuery, BitcoinSource, BitcoinTransaction, EvmBlock, EvmLog, EvmQuery, EvmSource, EvmTrace, EvmTransaction } from "./types.js";
|
|
1
|
+
import type { BitcoinQuery, BitcoinSource, BitcoinTransaction, EvmBlock, EvmLog, EvmQuery, EvmSource, EvmTrace, EvmTransaction, SolanaBalance, SolanaBlock, SolanaQuery, SolanaSource, SolanaTransaction } from "./types.js";
|
|
2
2
|
export interface EvmFixture {
|
|
3
3
|
version: 1;
|
|
4
4
|
kind: "evm";
|
|
@@ -24,7 +24,21 @@ export interface BitcoinFixture {
|
|
|
24
24
|
transactions: BitcoinTransaction[];
|
|
25
25
|
expected?: Record<string, unknown>;
|
|
26
26
|
}
|
|
27
|
-
export
|
|
27
|
+
export interface SolanaFixture {
|
|
28
|
+
version: 1;
|
|
29
|
+
kind: "solana";
|
|
30
|
+
name?: string;
|
|
31
|
+
height: number;
|
|
32
|
+
/** Replayed as the source's `firstBlock()`, to stand in for a source with partial history. */
|
|
33
|
+
firstBlock?: number;
|
|
34
|
+
fromBlock: number;
|
|
35
|
+
toBlock: number;
|
|
36
|
+
blocks: SolanaBlock[];
|
|
37
|
+
transactions: SolanaTransaction[];
|
|
38
|
+
balances: SolanaBalance[];
|
|
39
|
+
expected?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
export type Fixture = EvmFixture | BitcoinFixture | SolanaFixture;
|
|
28
42
|
/**
|
|
29
43
|
* Replay a recorded fixture as a source. Queries are answered by filtering
|
|
30
44
|
* the recorded data, so a broad recording (e.g. every log of a pool) can
|
|
@@ -36,6 +50,9 @@ export declare function fixtureSource(fixture: EvmFixture, options?: {
|
|
|
36
50
|
export declare function fixtureSource(fixture: BitcoinFixture, options?: {
|
|
37
51
|
blocksPerBatch?: number;
|
|
38
52
|
}): BitcoinSource;
|
|
53
|
+
export declare function fixtureSource(fixture: SolanaFixture, options?: {
|
|
54
|
+
blocksPerBatch?: number;
|
|
55
|
+
}): SolanaSource;
|
|
39
56
|
export declare function matchesLogFilters(log: EvmLog, query: EvmQuery): boolean;
|
|
40
57
|
/** Record every batch of a query into a fixture object (EVM). */
|
|
41
58
|
export declare function recordEvmFixture(source: EvmSource, query: EvmQuery, meta?: {
|
|
@@ -47,6 +64,10 @@ export declare function recordBitcoinFixture(source: BitcoinSource, query: Bitco
|
|
|
47
64
|
name?: string;
|
|
48
65
|
expected?: Record<string, unknown>;
|
|
49
66
|
}): Promise<BitcoinFixture>;
|
|
67
|
+
export declare function recordSolanaFixture(source: SolanaSource, query: SolanaQuery, meta?: {
|
|
68
|
+
name?: string;
|
|
69
|
+
expected?: Record<string, unknown>;
|
|
70
|
+
}): Promise<SolanaFixture>;
|
|
50
71
|
export declare function writeFixture(path: string, fixture: Fixture): void;
|
|
51
72
|
export declare function readFixture<T extends Fixture = Fixture>(path: string): T;
|
|
52
73
|
//# sourceMappingURL=fixture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/sources/fixture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/sources/fixture.ts"],"names":[],"mappings":"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"}
|
package/dist/sources/fixture.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
import { reviveBatch, serializeBatch } from "./cached.js";
|
|
4
4
|
import { matchesTxFilters } from "./rpc.js";
|
|
5
|
+
import { finishBatch, walletOf } from "./solana/shared.js";
|
|
5
6
|
import { logOrder, lower, txOrder } from "./types.js";
|
|
6
7
|
export function fixtureSource(fixture, options = {}) {
|
|
7
8
|
const per = options.blocksPerBatch ?? 1000;
|
|
@@ -43,6 +44,30 @@ export function fixtureSource(fixture, options = {}) {
|
|
|
43
44
|
};
|
|
44
45
|
return src;
|
|
45
46
|
}
|
|
47
|
+
if (fixture.kind === "solana") {
|
|
48
|
+
const src = {
|
|
49
|
+
kind: "solana",
|
|
50
|
+
name: `fixture(${fixture.name ?? "solana"})`,
|
|
51
|
+
async getHeight() {
|
|
52
|
+
return fixture.height;
|
|
53
|
+
},
|
|
54
|
+
async *fetch(query) {
|
|
55
|
+
if (query.fromBlock < (fixture.firstBlock ?? 0))
|
|
56
|
+
throw new Error(`fixture(${fixture.name}): asked for slot ${query.fromBlock}, below its first block ${fixture.firstBlock}`);
|
|
57
|
+
const wallets = new Set(query.addresses);
|
|
58
|
+
let from = query.fromBlock;
|
|
59
|
+
while (from < query.toBlock) {
|
|
60
|
+
const to = Math.min(from + per, query.toBlock);
|
|
61
|
+
const balances = fixture.balances.filter((b) => b.slot >= from && b.slot < to && wallets.has(walletOf(b)));
|
|
62
|
+
yield finishBatch({ fromBlock: from, nextBlock: to, blocks: fixture.blocks, transactions: fixture.transactions, balances });
|
|
63
|
+
from = to;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
if (fixture.firstBlock !== undefined)
|
|
68
|
+
src.firstBlock = async () => fixture.firstBlock;
|
|
69
|
+
return src;
|
|
70
|
+
}
|
|
46
71
|
const btc = {
|
|
47
72
|
kind: "bitcoin",
|
|
48
73
|
name: `fixture(${fixture.name ?? "bitcoin"})`,
|
|
@@ -103,6 +128,15 @@ export async function recordBitcoinFixture(source, query, meta = {}) {
|
|
|
103
128
|
fx.transactions.push(...batch.transactions);
|
|
104
129
|
return fx;
|
|
105
130
|
}
|
|
131
|
+
export async function recordSolanaFixture(source, query, meta = {}) {
|
|
132
|
+
const fx = { version: 1, kind: "solana", name: meta.name, height: await source.getHeight(), fromBlock: query.fromBlock, toBlock: query.toBlock, blocks: [], transactions: [], balances: [], expected: meta.expected };
|
|
133
|
+
for await (const batch of source.fetch(query)) {
|
|
134
|
+
fx.blocks.push(...batch.blocks);
|
|
135
|
+
fx.transactions.push(...batch.transactions);
|
|
136
|
+
fx.balances.push(...batch.balances);
|
|
137
|
+
}
|
|
138
|
+
return fx;
|
|
139
|
+
}
|
|
106
140
|
export function writeFixture(path, fixture) {
|
|
107
141
|
mkdirSync(dirname(path), { recursive: true });
|
|
108
142
|
writeFileSync(path, serializeBatch(fixture) + "\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../src/sources/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../src/sources/fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type Query } from "@envio-dev/hypersync-client";
|
|
2
|
-
import type { EvmQuery, EvmSource } from "./types.js";
|
|
2
|
+
import type { EvmQuery, EvmSource, SolanaSource } from "./types.js";
|
|
3
|
+
import { type SolanaHypersyncOptions } from "./solana/hypersync.js";
|
|
4
|
+
export type { SolanaHypersyncOptions };
|
|
3
5
|
export interface HypersyncOptions {
|
|
6
|
+
/** The chain's kind. Default "evm"; `{ kind: "solana" }` takes `SolanaHypersyncOptions`. */
|
|
7
|
+
kind?: "evm";
|
|
4
8
|
/** e.g. https://base.hypersync.xyz (see https://docs.envio.dev/docs/HyperSync/hypersync-supported-networks). */
|
|
5
9
|
url: string;
|
|
6
10
|
/**
|
|
@@ -23,6 +27,11 @@ export interface HypersyncOptions {
|
|
|
23
27
|
/** Target response size hint for the stream API. Default 400k. */
|
|
24
28
|
responseBytesTarget?: number;
|
|
25
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Envio HyperSync. EVM by default (`hypersync({ url })`); `hypersync({ kind: "solana" })` reads Solana wallets
|
|
32
|
+
* from Solana HyperSync, which keeps only recent slots (see `union()` for older ones).
|
|
33
|
+
*/
|
|
26
34
|
export declare function hypersync(options: HypersyncOptions): EvmSource;
|
|
35
|
+
export declare function hypersync(options: SolanaHypersyncOptions): SolanaSource;
|
|
27
36
|
export declare function toHypersyncQuery(query: EvmQuery, withTraces?: boolean): Query;
|
|
28
37
|
//# sourceMappingURL=hypersync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hypersync.d.ts","sourceRoot":"","sources":["../../src/sources/hypersync.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,KAAK,EAA4K,MAAM,6BAA6B,CAAC;AAC7R,OAAO,KAAK,EAA8B,QAAQ,EAAE,SAAS,EAA0C,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"hypersync.d.ts","sourceRoot":"","sources":["../../src/sources/hypersync.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,KAAK,EAA4K,MAAM,6BAA6B,CAAC;AAC7R,OAAO,KAAK,EAA8B,QAAQ,EAAE,SAAS,EAA0C,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxI,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAErF,YAAY,EAAE,sBAAsB,EAAE,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,gHAAgH;IAChH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAOD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;AAChE,wBAAgB,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CAAC;AAmKzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,UAAO,GAAG,KAAK,CAuB1E"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { HypersyncClient, JoinMode } from "@envio-dev/hypersync-client";
|
|
2
2
|
import { logOrder, lower, txOrder } from "./types.js";
|
|
3
3
|
import { lowerOrNull } from "../util.js";
|
|
4
|
+
import { solanaHypersync } from "./solana/hypersync.js";
|
|
4
5
|
const BLOCK_FIELDS = ["Number", "Hash", "ParentHash", "Timestamp"];
|
|
5
6
|
const LOG_FIELDS = ["BlockNumber", "BlockHash", "TransactionHash", "TransactionIndex", "LogIndex", "Address", "Data", "Topic0", "Topic1", "Topic2", "Topic3", "Removed"];
|
|
6
7
|
const TX_FIELDS = ["Hash", "BlockNumber", "TransactionIndex", "From", "To", "Value", "Input", "Nonce", "Gas", "GasPrice", "GasUsed", "EffectiveGasPrice", "L1Fee", "Status", "Type", "ContractAddress"];
|
|
7
8
|
const TRACE_FIELDS = ["TransactionHash", "BlockNumber", "TraceAddress", "Type", "CallType", "From", "To", "Value", "Error"];
|
|
8
9
|
export function hypersync(options) {
|
|
10
|
+
if (options.kind === "solana")
|
|
11
|
+
return solanaHypersync(options);
|
|
12
|
+
return evmHypersync(options);
|
|
13
|
+
}
|
|
14
|
+
function evmHypersync(options) {
|
|
9
15
|
const clients = new Map();
|
|
10
16
|
const getClient = (url = options.url) => {
|
|
11
17
|
// Resolved lazily so `yail ddl` / `yail migrate` work without a token.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hypersync.js","sourceRoot":"","sources":["../../src/sources/hypersync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hypersync.js","sourceRoot":"","sources":["../../src/sources/hypersync.ts"],"names":[],"mappings":"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"}
|
package/dist/sources/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export type * from "./types.js";
|
|
2
2
|
export { logOrder, txOrder } from "./types.js";
|
|
3
3
|
export { hypersync, toHypersyncQuery } from "./hypersync.js";
|
|
4
|
-
export type { HypersyncOptions } from "./hypersync.js";
|
|
4
|
+
export type { HypersyncOptions, SolanaHypersyncOptions } from "./hypersync.js";
|
|
5
5
|
export { rpc } from "./rpc.js";
|
|
6
|
-
export type { RpcSourceOptions } from "./rpc.js";
|
|
6
|
+
export type { RpcSourceOptions, SolanaRpcOptions } from "./rpc.js";
|
|
7
7
|
export { cached, hashQuery } from "./cached.js";
|
|
8
8
|
export type { CachedSourceOptions } from "./cached.js";
|
|
9
9
|
export { esplora } from "./esplora.js";
|
|
10
10
|
export type { EsploraOptions } from "./esplora.js";
|
|
11
|
-
export {
|
|
12
|
-
export
|
|
11
|
+
export { union } from "./union.js";
|
|
12
|
+
export { fixtureSource, recordEvmFixture, recordBitcoinFixture, recordSolanaFixture, writeFixture, readFixture, matchesLogFilters } from "./fixture.js";
|
|
13
|
+
export type { Fixture, EvmFixture, BitcoinFixture, SolanaFixture } from "./fixture.js";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sources/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sources/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxJ,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/sources/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export { hypersync, toHypersyncQuery } from "./hypersync.js";
|
|
|
3
3
|
export { rpc } from "./rpc.js";
|
|
4
4
|
export { cached, hashQuery } from "./cached.js";
|
|
5
5
|
export { esplora } from "./esplora.js";
|
|
6
|
-
export {
|
|
6
|
+
export { union } from "./union.js";
|
|
7
|
+
export { fixtureSource, recordEvmFixture, recordBitcoinFixture, recordSolanaFixture, writeFixture, readFixture, matchesLogFilters } from "./fixture.js";
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sources/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sources/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/sources/rpc.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type PublicClient } from "viem";
|
|
2
|
-
import type { EvmSource, EvmTxFilter } from "./types.js";
|
|
2
|
+
import type { EvmSource, EvmTxFilter, SolanaSource } from "./types.js";
|
|
3
|
+
import { type SolanaRpcOptions } from "./solana/rpc.js";
|
|
4
|
+
export type { SolanaRpcOptions };
|
|
3
5
|
export interface RpcSourceOptions {
|
|
6
|
+
/** The chain's kind. Default "evm"; `{ kind: "solana" }` takes `SolanaRpcOptions`. */
|
|
7
|
+
kind?: "evm";
|
|
4
8
|
url: string;
|
|
5
9
|
/** Blocks per eth_getLogs request. Default 2000 (most public RPCs cap at 2k-10k). */
|
|
6
10
|
blockRange?: number;
|
|
@@ -17,5 +21,7 @@ export interface RpcSourceOptions {
|
|
|
17
21
|
* Account (from/to) filters require scanning full blocks; keep ranges small.
|
|
18
22
|
*/
|
|
19
23
|
export declare function rpc(options: RpcSourceOptions): EvmSource;
|
|
24
|
+
/** Solana wallets over JSON-RPC, address by address: any slot, cost grows with the wallets' transactions. */
|
|
25
|
+
export declare function rpc(options: SolanaRpcOptions): SolanaSource;
|
|
20
26
|
export declare function matchesTxFilters(from: string, to: string | null | undefined, filters: EvmTxFilter[]): boolean;
|
|
21
27
|
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/sources/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,KAAK,EAAwC,SAAS,EAAkB,WAAW,EAAgB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/sources/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,KAAK,EAAwC,SAAS,EAAkB,WAAW,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAG3I,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAcD;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;AAC1D,6GAA6G;AAC7G,wBAAgB,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAAC;AAyJ7D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAQ7G"}
|
package/dist/sources/rpc.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createPublicClient, http } from "viem";
|
|
2
2
|
import { lower } from "./types.js";
|
|
3
|
-
import { lowerOrNull } from "../util.js";
|
|
4
|
-
|
|
5
|
-
* JSON-RPC source. Slower than HyperSync but works against any node,
|
|
6
|
-
* needs no token, and is what the recorded test fixtures are captured with.
|
|
7
|
-
* Account (from/to) filters require scanning full blocks; keep ranges small.
|
|
8
|
-
*/
|
|
3
|
+
import { lowerOrNull, mapLimit } from "../util.js";
|
|
4
|
+
import { solanaRpc } from "./solana/rpc.js";
|
|
9
5
|
export function rpc(options) {
|
|
6
|
+
if (options.kind === "solana")
|
|
7
|
+
return solanaRpc(options);
|
|
8
|
+
return evmRpc(options);
|
|
9
|
+
}
|
|
10
|
+
function evmRpc(options) {
|
|
10
11
|
const client = options.client ?? createPublicClient({ transport: http(options.url, { batch: true, retryCount: 5 }) });
|
|
11
12
|
const blockRange = options.blockRange ?? 2000;
|
|
12
13
|
const concurrency = options.concurrency ?? 4;
|
|
@@ -165,16 +166,6 @@ export function matchesTxFilters(from, to, filters) {
|
|
|
165
166
|
return fromOk && toOk;
|
|
166
167
|
});
|
|
167
168
|
}
|
|
168
|
-
async function mapLimit(items, limit, fn) {
|
|
169
|
-
let i = 0;
|
|
170
|
-
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
171
|
-
while (i < items.length) {
|
|
172
|
-
const item = items[i++];
|
|
173
|
-
await fn(item);
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
await Promise.all(workers);
|
|
177
|
-
}
|
|
178
169
|
function hex(n) {
|
|
179
170
|
return `0x${n.toString(16)}`;
|
|
180
171
|
}
|
package/dist/sources/rpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/sources/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/sources/rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SolanaSource } from "../types.js";
|
|
2
|
+
export interface SolanaHypersyncOptions {
|
|
3
|
+
kind: "solana";
|
|
4
|
+
/** Default https://solana.hypersync.xyz. */
|
|
5
|
+
url?: string;
|
|
6
|
+
/** Envio API token (https://app.envio.dev/api-tokens). Falls back to ENVIO_API_TOKEN. */
|
|
7
|
+
apiToken?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Slot windows fetched in parallel over long ranges. Default 16. The server, not the token's rate limit, bounds
|
|
10
|
+
* throughput (2026-10: one stream ≈ 6k slots/s, 32 ≈ 16k).
|
|
11
|
+
*/
|
|
12
|
+
concurrency?: number;
|
|
13
|
+
/** Slots per parallel window. Default 250_000. */
|
|
14
|
+
windowSlots?: number;
|
|
15
|
+
/** Override fetch (testing). */
|
|
16
|
+
fetch?: typeof fetch;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Solana source backed by Envio's Solana HyperSync (https://docs.envio.dev/docs/HyperSync/solana). Each query
|
|
20
|
+
* reads the `account_activity` of the wallets: rows of their own account plus rows of every token account they
|
|
21
|
+
* own. HyperSync keeps only recent slots (from ~2026-01 as of 2026-10): pair it with `rpc({ kind: "solana", url })` in `union()`
|
|
22
|
+
* for older history. `firstBlock()` reports where its history starts.
|
|
23
|
+
*/
|
|
24
|
+
export declare function solanaHypersync(options: SolanaHypersyncOptions): SolanaSource;
|
|
25
|
+
//# sourceMappingURL=hypersync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hypersync.d.ts","sourceRoot":"","sources":["../../../src/sources/solana/hypersync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyD,YAAY,EAAE,MAAM,aAAa,CAAC;AAIvG,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAgCD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CA6F7E"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { chunkList, request, sleep } from "../../util.js";
|
|
2
|
+
import { finishBatch, solanaBalance } from "./shared.js";
|
|
3
|
+
const BLOCK_FIELDS = ["slot", "block_time", "blockhash", "parent_blockhash"];
|
|
4
|
+
const TX_FIELDS = ["slot", "transaction_index", "transaction_id", "fee_payer", "success", "fee"];
|
|
5
|
+
const ACTIVITY_FIELDS = ["slot", "transaction_index", "transaction_id", "account", "pre_balance", "post_balance", "mint", "pre_owner", "post_owner", "token_decimals", "pre_token_balance", "post_token_balance"];
|
|
6
|
+
/** Lamport amounts can pass 2^53: read them from the JSON text, not as doubles. */
|
|
7
|
+
const BIG_FIELDS = new Set(["pre_balance", "post_balance", "fee"]);
|
|
8
|
+
/** The system program never pays fees: a selection that matches nothing, for probing which slots are held. */
|
|
9
|
+
const NOTHING = { transactions: [{ fee_payer: ["11111111111111111111111111111111"] }], field_selection: { transaction: ["slot"] } };
|
|
10
|
+
/**
|
|
11
|
+
* Solana source backed by Envio's Solana HyperSync (https://docs.envio.dev/docs/HyperSync/solana). Each query
|
|
12
|
+
* reads the `account_activity` of the wallets: rows of their own account plus rows of every token account they
|
|
13
|
+
* own. HyperSync keeps only recent slots (from ~2026-01 as of 2026-10): pair it with `rpc({ kind: "solana", url })` in `union()`
|
|
14
|
+
* for older history. `firstBlock()` reports where its history starts.
|
|
15
|
+
*/
|
|
16
|
+
export function solanaHypersync(options) {
|
|
17
|
+
const base = (options.url ?? "https://solana.hypersync.xyz").replace(/\/$/, "");
|
|
18
|
+
const doFetch = options.fetch ?? fetch;
|
|
19
|
+
const concurrency = options.concurrency ?? 16;
|
|
20
|
+
const windowSlots = options.windowSlots ?? 250_000;
|
|
21
|
+
let floor;
|
|
22
|
+
async function post(body, signal) {
|
|
23
|
+
// Resolved lazily so `yail ddl` / `yail migrate` work without a token.
|
|
24
|
+
const apiToken = options.apiToken ?? process.env.ENVIO_API_TOKEN;
|
|
25
|
+
if (!apiToken)
|
|
26
|
+
throw new Error(`hypersync(${base}): missing apiToken. Pass it explicitly or set ENVIO_API_TOKEN (https://app.envio.dev/api-tokens).`);
|
|
27
|
+
const text = await request(doFetch, `${base}/query`, { method: "POST", headers: { Authorization: `Bearer ${apiToken}`, "Content-Type": "application/json" }, body: JSON.stringify(body), signal });
|
|
28
|
+
return JSON.parse(text, (key, value, context) => {
|
|
29
|
+
if (BIG_FIELDS.has(key) && typeof value === "number")
|
|
30
|
+
return BigInt(context?.source ?? value);
|
|
31
|
+
return value;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const getHeight = async () => Number(await request(doFetch, `${base}/height`, {}));
|
|
35
|
+
/** Does the server hold `slot`? Below its history it answers without advancing. */
|
|
36
|
+
async function holds(slot) {
|
|
37
|
+
const res = await post({ from_slot: slot, to_slot: slot + 1, ...NOTHING });
|
|
38
|
+
return res.next_slot > slot;
|
|
39
|
+
}
|
|
40
|
+
/** Every page of one window, as one batch. */
|
|
41
|
+
async function readWindow(query, from, to, signal) {
|
|
42
|
+
const batch = { fromBlock: from, nextBlock: to, blocks: [], transactions: [], balances: [] };
|
|
43
|
+
const selections = chunkList(query.addresses, 500).flatMap((chunk) => [{ account: chunk }, { owner: chunk }]);
|
|
44
|
+
let slot = from;
|
|
45
|
+
for (let stalls = 0; slot < to;) {
|
|
46
|
+
signal?.throwIfAborted();
|
|
47
|
+
const res = await post({ from_slot: slot, to_slot: to, account_activity: selections, field_selection: { block: BLOCK_FIELDS, transaction: TX_FIELDS, account_activity: ACTIVITY_FIELDS } }, signal);
|
|
48
|
+
if (res.next_slot <= slot) {
|
|
49
|
+
// Near the head the server can trail its reported height: ask again before giving up.
|
|
50
|
+
if (++stalls === 5)
|
|
51
|
+
throw new Error(`hypersync(${base}): next_slot ${res.next_slot} did not advance from ${slot} (below its history, which starts at ${floor ?? "?"}, or behind the head)`);
|
|
52
|
+
await sleep(1000 * stalls, signal);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
stalls = 0;
|
|
56
|
+
for (const b of res.blocks?.flat() ?? [])
|
|
57
|
+
batch.blocks.push({ slot: b.slot, time: b.block_time, hash: b.blockhash, parentHash: b.parent_blockhash });
|
|
58
|
+
for (const t of res.transactions?.flat() ?? []) {
|
|
59
|
+
batch.transactions.push({ signature: t.transaction_id, slot: t.slot, transactionIndex: t.transaction_index, feePayer: t.fee_payer, fee: t.fee, success: t.success });
|
|
60
|
+
}
|
|
61
|
+
for (const r of res.account_activity?.flat() ?? [])
|
|
62
|
+
batch.balances.push(toBalance(r));
|
|
63
|
+
slot = Math.min(res.next_slot, to);
|
|
64
|
+
}
|
|
65
|
+
return batch;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
kind: "solana",
|
|
69
|
+
name: `hypersync(${new URL(base).host})`,
|
|
70
|
+
getHeight,
|
|
71
|
+
async firstBlock() {
|
|
72
|
+
// The floor only moves down: one probe tells whether it did.
|
|
73
|
+
if (floor === 0 || (floor !== undefined && !(await holds(floor - 1))))
|
|
74
|
+
return floor;
|
|
75
|
+
let lo = 0;
|
|
76
|
+
let hi = floor ?? (await getHeight());
|
|
77
|
+
while (lo < hi) {
|
|
78
|
+
const mid = Math.floor((lo + hi) / 2);
|
|
79
|
+
if (await holds(mid))
|
|
80
|
+
hi = mid;
|
|
81
|
+
else
|
|
82
|
+
lo = mid + 1;
|
|
83
|
+
}
|
|
84
|
+
floor = lo;
|
|
85
|
+
return floor;
|
|
86
|
+
},
|
|
87
|
+
async *fetch(query, fetchOptions) {
|
|
88
|
+
if (query.addresses.length === 0) {
|
|
89
|
+
yield { fromBlock: query.fromBlock, nextBlock: query.toBlock, blocks: [], transactions: [], balances: [] };
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// Windows run `concurrency` at a time and come out in order.
|
|
93
|
+
const pending = [];
|
|
94
|
+
let next = query.fromBlock;
|
|
95
|
+
const fill = () => {
|
|
96
|
+
while (pending.length < concurrency && next < query.toBlock) {
|
|
97
|
+
const to = Math.min(next + windowSlots, query.toBlock);
|
|
98
|
+
const window = readWindow(query, next, to, fetchOptions?.signal);
|
|
99
|
+
window.catch(() => { }); // awaited below, in order
|
|
100
|
+
pending.push(window);
|
|
101
|
+
next = to;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
fill();
|
|
105
|
+
while (pending.length > 0) {
|
|
106
|
+
const batch = await pending.shift();
|
|
107
|
+
fill();
|
|
108
|
+
yield finishBatch(batch);
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function toBalance(r) {
|
|
114
|
+
// HyperSync carries the SOL side only when it changed.
|
|
115
|
+
return solanaBalance({ signature: r.transaction_id, slot: r.slot, transactionIndex: r.transaction_index, account: r.account }, r.pre_balance ?? 0n, r.post_balance ?? 0n, r.mint ? { mint: r.mint, owner: r.post_owner ?? r.pre_owner ?? "", decimals: r.token_decimals ?? 0, pre: BigInt(r.pre_token_balance ?? 0), post: BigInt(r.post_token_balance ?? 0) } : undefined);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=hypersync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hypersync.js","sourceRoot":"","sources":["../../../src/sources/solana/hypersync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SolanaSource } from "../types.js";
|
|
2
|
+
export interface SolanaRpcOptions {
|
|
3
|
+
kind: "solana";
|
|
4
|
+
/** Solana JSON-RPC URL. The public https://api.mainnet-beta.solana.com throttles `getTransaction` hard (~0.5/s). */
|
|
5
|
+
url: string;
|
|
6
|
+
/** Parallel RPC calls. Default 4. */
|
|
7
|
+
concurrency?: number;
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
/** Override fetch (testing). */
|
|
10
|
+
fetch?: typeof fetch;
|
|
11
|
+
}
|
|
12
|
+
/** Programs whose accounts hold tokens: SPL Token and Token-2022. */
|
|
13
|
+
export declare const TOKEN_PROGRAMS: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Solana source over plain JSON-RPC, address by address: `getSignaturesForAddress` for each wallet and each token
|
|
16
|
+
* account it owns, then `getTransaction` for each signature. Cost grows with the wallets' transactions, not with
|
|
17
|
+
* the slot range, so it suits old history of a few wallets: put it after `hypersync({ kind: "solana" })` in `union()`.
|
|
18
|
+
*
|
|
19
|
+
* Transfers into a token account do not name its wallet, so the token accounts' own signatures are read too. Open
|
|
20
|
+
* ones come from `getTokenAccountsByOwner`. A closed one shows up in the transaction that closed it, which needs the
|
|
21
|
+
* owner's signature: the wallet's transactions from the range's start up to the head name every account that existed
|
|
22
|
+
* in the range. Those past the range are read only for that, and remembered.
|
|
23
|
+
*/
|
|
24
|
+
export declare function solanaRpc(options: SolanaRpcOptions): SolanaSource;
|
|
25
|
+
//# sourceMappingURL=rpc.d.ts.map
|