@subsquid/solana-stream 1.0.0-portal-api.d5861e → 1.0.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/lib/builder.d.ts +92 -0
- package/lib/builder.d.ts.map +1 -0
- package/lib/builder.js +182 -0
- package/lib/builder.js.map +1 -0
- package/lib/data/fields.d.ts.map +1 -1
- package/lib/data/fields.js +0 -14
- package/lib/data/fields.js.map +1 -1
- package/lib/data/model.d.ts +16 -6
- package/lib/data/model.d.ts.map +1 -1
- package/lib/data/model.js +5 -0
- package/lib/data/model.js.map +1 -1
- package/lib/data/request.d.ts +2 -3
- package/lib/data/request.d.ts.map +1 -1
- package/lib/data/type-util.d.ts +35 -13
- package/lib/data/type-util.d.ts.map +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/{merge.test.d.ts.map → portal/merge.test.d.ts.map} +1 -1
- package/lib/{merge.test.js → portal/merge.test.js} +34 -34
- package/lib/portal/merge.test.js.map +1 -0
- package/lib/portal/source.d.ts +14 -11
- package/lib/portal/source.d.ts.map +1 -1
- package/lib/portal/source.js +75 -56
- package/lib/portal/source.js.map +1 -1
- package/lib/query.d.ts +53 -0
- package/lib/query.d.ts.map +1 -0
- package/lib/query.js +102 -0
- package/lib/query.js.map +1 -0
- package/lib/source.d.ts +2 -69
- package/lib/source.d.ts.map +1 -1
- package/lib/source.js +0 -265
- package/lib/source.js.map +1 -1
- package/package.json +18 -16
- package/src/builder.ts +205 -0
- package/src/data/fields.ts +0 -20
- package/src/data/model.ts +23 -27
- package/src/data/request.ts +2 -3
- package/src/data/type-util.ts +39 -37
- package/src/index.ts +3 -0
- package/src/{merge.test.ts → portal/merge.test.ts} +2 -2
- package/src/portal/source.ts +115 -98
- package/src/query.ts +112 -0
- package/src/source.ts +3 -314
- package/lib/merge.test.js.map +0 -1
- package/lib/portal/schema.d.ts +0 -167
- package/lib/portal/schema.d.ts.map +0 -1
- package/lib/portal/schema.js +0 -117
- package/lib/portal/schema.js.map +0 -1
- package/src/portal/schema.ts +0 -136
- /package/lib/{merge.test.d.ts → portal/merge.test.d.ts} +0 -0
|
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const vitest_1 = require("vitest");
|
|
7
7
|
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const merge_1 = require("./
|
|
9
|
-
(0,
|
|
10
|
-
(0,
|
|
11
|
-
(0,
|
|
8
|
+
const merge_1 = require("./merge");
|
|
9
|
+
(0, vitest_1.describe)('mergeItems', function () {
|
|
10
|
+
(0, vitest_1.describe)('instructions', function () {
|
|
11
|
+
(0, vitest_1.it)('merges instructions with same discriminator but different programIds', function () {
|
|
12
12
|
let result = (0, merge_1.mergeItems)([
|
|
13
13
|
{ programId: ['ProgA'], discriminator: ['0x01'], transaction: true },
|
|
14
14
|
{ programId: ['ProgB'], discriminator: ['0x01'], transaction: true },
|
|
@@ -19,7 +19,7 @@ const merge_1 = require("./portal/merge");
|
|
|
19
19
|
assert_1.default.deepStrictEqual(result[0].discriminator, ['0x01']);
|
|
20
20
|
assert_1.default.strictEqual(result[0].transaction, true);
|
|
21
21
|
});
|
|
22
|
-
(0,
|
|
22
|
+
(0, vitest_1.it)('merges instructions with same programId but different discriminators', function () {
|
|
23
23
|
let result = (0, merge_1.mergeItems)([
|
|
24
24
|
{ programId: ['ProgA'], discriminator: ['0x01'] },
|
|
25
25
|
{ programId: ['ProgA'], discriminator: ['0x02'] },
|
|
@@ -28,21 +28,21 @@ const merge_1 = require("./portal/merge");
|
|
|
28
28
|
assert_1.default.deepStrictEqual(result[0].programId, ['ProgA']);
|
|
29
29
|
assert_1.default.deepStrictEqual(result[0].discriminator?.sort(), ['0x01', '0x02']);
|
|
30
30
|
});
|
|
31
|
-
(0,
|
|
31
|
+
(0, vitest_1.it)('does not merge instructions differing in two filter fields', function () {
|
|
32
32
|
let result = (0, merge_1.mergeItems)([
|
|
33
33
|
{ programId: ['ProgA'], discriminator: ['0x01'] },
|
|
34
34
|
{ programId: ['ProgB'], discriminator: ['0x02'] },
|
|
35
35
|
], merge_1.INSTRUCTION_FILTER_KEYS);
|
|
36
36
|
assert_1.default.strictEqual(result.length, 2);
|
|
37
37
|
});
|
|
38
|
-
(0,
|
|
38
|
+
(0, vitest_1.it)('does not merge instructions with different relation flags', function () {
|
|
39
39
|
let result = (0, merge_1.mergeItems)([
|
|
40
40
|
{ programId: ['ProgA'], discriminator: ['0x01'], transaction: true },
|
|
41
41
|
{ programId: ['ProgB'], discriminator: ['0x01'], logs: true },
|
|
42
42
|
], merge_1.INSTRUCTION_FILTER_KEYS);
|
|
43
43
|
assert_1.default.strictEqual(result.length, 2);
|
|
44
44
|
});
|
|
45
|
-
(0,
|
|
45
|
+
(0, vitest_1.it)('merges instructions with same programId and account filters', function () {
|
|
46
46
|
let result = (0, merge_1.mergeItems)([
|
|
47
47
|
{ programId: ['ProgA'], a0: ['Acc1'] },
|
|
48
48
|
{ programId: ['ProgA'], a0: ['Acc2'] },
|
|
@@ -51,7 +51,7 @@ const merge_1 = require("./portal/merge");
|
|
|
51
51
|
assert_1.default.deepStrictEqual(result[0].programId, ['ProgA']);
|
|
52
52
|
assert_1.default.deepStrictEqual(result[0].a0?.sort(), ['Acc1', 'Acc2']);
|
|
53
53
|
});
|
|
54
|
-
(0,
|
|
54
|
+
(0, vitest_1.it)('subsumes narrower filter when wider one has undefined programId', function () {
|
|
55
55
|
let result = (0, merge_1.mergeItems)([
|
|
56
56
|
{ discriminator: ['0x01'] },
|
|
57
57
|
{ programId: ['ProgA'], discriminator: ['0x01'] },
|
|
@@ -60,7 +60,7 @@ const merge_1 = require("./portal/merge");
|
|
|
60
60
|
assert_1.default.strictEqual(result[0].programId, undefined);
|
|
61
61
|
assert_1.default.deepStrictEqual(result[0].discriminator, ['0x01']);
|
|
62
62
|
});
|
|
63
|
-
(0,
|
|
63
|
+
(0, vitest_1.it)('deduplicates identical requests', function () {
|
|
64
64
|
let result = (0, merge_1.mergeItems)([
|
|
65
65
|
{ programId: ['ProgA'], discriminator: ['0x01'] },
|
|
66
66
|
{ programId: ['ProgA'], discriminator: ['0x01'] },
|
|
@@ -68,8 +68,8 @@ const merge_1 = require("./portal/merge");
|
|
|
68
68
|
assert_1.default.strictEqual(result.length, 1);
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
|
-
(0,
|
|
72
|
-
(0,
|
|
71
|
+
(0, vitest_1.describe)('logs', function () {
|
|
72
|
+
(0, vitest_1.it)('merges logs with same kind but different programIds', function () {
|
|
73
73
|
let result = (0, merge_1.mergeItems)([
|
|
74
74
|
{ programId: ['ProgA'], kind: ['log'], transaction: true },
|
|
75
75
|
{ programId: ['ProgB'], kind: ['log'], transaction: true },
|
|
@@ -79,7 +79,7 @@ const merge_1 = require("./portal/merge");
|
|
|
79
79
|
assert_1.default.deepStrictEqual(result[0].kind, ['log']);
|
|
80
80
|
assert_1.default.strictEqual(result[0].transaction, true);
|
|
81
81
|
});
|
|
82
|
-
(0,
|
|
82
|
+
(0, vitest_1.it)('merges logs with same programId but different kinds', function () {
|
|
83
83
|
let result = (0, merge_1.mergeItems)([
|
|
84
84
|
{ programId: ['ProgA'], kind: ['log'] },
|
|
85
85
|
{ programId: ['ProgA'], kind: ['data'] },
|
|
@@ -88,14 +88,14 @@ const merge_1 = require("./portal/merge");
|
|
|
88
88
|
assert_1.default.deepStrictEqual(result[0].programId, ['ProgA']);
|
|
89
89
|
assert_1.default.deepStrictEqual(result[0].kind?.sort(), ['data', 'log']);
|
|
90
90
|
});
|
|
91
|
-
(0,
|
|
91
|
+
(0, vitest_1.it)('does not merge logs differing in two filter fields', function () {
|
|
92
92
|
let result = (0, merge_1.mergeItems)([
|
|
93
93
|
{ programId: ['ProgA'], kind: ['log'] },
|
|
94
94
|
{ programId: ['ProgB'], kind: ['data'] },
|
|
95
95
|
], merge_1.LOG_FILTER_KEYS);
|
|
96
96
|
assert_1.default.strictEqual(result.length, 2);
|
|
97
97
|
});
|
|
98
|
-
(0,
|
|
98
|
+
(0, vitest_1.it)('does not merge logs with different relation flags', function () {
|
|
99
99
|
let result = (0, merge_1.mergeItems)([
|
|
100
100
|
{ programId: ['ProgA'], transaction: true },
|
|
101
101
|
{ programId: ['ProgB'], instruction: true },
|
|
@@ -103,8 +103,8 @@ const merge_1 = require("./portal/merge");
|
|
|
103
103
|
assert_1.default.strictEqual(result.length, 2);
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
|
-
(0,
|
|
107
|
-
(0,
|
|
106
|
+
(0, vitest_1.describe)('transactions', function () {
|
|
107
|
+
(0, vitest_1.it)('merges transactions with different feePayers', function () {
|
|
108
108
|
let result = (0, merge_1.mergeItems)([
|
|
109
109
|
{ feePayer: ['PayerA'], instructions: true },
|
|
110
110
|
{ feePayer: ['PayerB'], instructions: true },
|
|
@@ -113,7 +113,7 @@ const merge_1 = require("./portal/merge");
|
|
|
113
113
|
assert_1.default.deepStrictEqual(result[0].feePayer?.sort(), ['PayerA', 'PayerB']);
|
|
114
114
|
assert_1.default.strictEqual(result[0].instructions, true);
|
|
115
115
|
});
|
|
116
|
-
(0,
|
|
116
|
+
(0, vitest_1.it)('does not merge transactions with different relation flags', function () {
|
|
117
117
|
let result = (0, merge_1.mergeItems)([
|
|
118
118
|
{ feePayer: ['PayerA'], instructions: true },
|
|
119
119
|
{ feePayer: ['PayerB'], logs: true },
|
|
@@ -121,8 +121,8 @@ const merge_1 = require("./portal/merge");
|
|
|
121
121
|
assert_1.default.strictEqual(result.length, 2);
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
|
-
(0,
|
|
125
|
-
(0,
|
|
124
|
+
(0, vitest_1.describe)('balances', function () {
|
|
125
|
+
(0, vitest_1.it)('merges balances with different accounts', function () {
|
|
126
126
|
let result = (0, merge_1.mergeItems)([
|
|
127
127
|
{ account: ['Acc1'], transaction: true },
|
|
128
128
|
{ account: ['Acc2'], transaction: true },
|
|
@@ -131,14 +131,14 @@ const merge_1 = require("./portal/merge");
|
|
|
131
131
|
assert_1.default.deepStrictEqual(result[0].account?.sort(), ['Acc1', 'Acc2']);
|
|
132
132
|
assert_1.default.strictEqual(result[0].transaction, true);
|
|
133
133
|
});
|
|
134
|
-
(0,
|
|
134
|
+
(0, vitest_1.it)('does not merge balances with different relation flags', function () {
|
|
135
135
|
let result = (0, merge_1.mergeItems)([
|
|
136
136
|
{ account: ['Acc1'], transaction: true },
|
|
137
137
|
{ account: ['Acc2'], transactionInstructions: true },
|
|
138
138
|
], merge_1.BALANCE_FILTER_KEYS);
|
|
139
139
|
assert_1.default.strictEqual(result.length, 2);
|
|
140
140
|
});
|
|
141
|
-
(0,
|
|
141
|
+
(0, vitest_1.it)('deduplicates accounts across merged requests', function () {
|
|
142
142
|
let result = (0, merge_1.mergeItems)([
|
|
143
143
|
{ account: ['Acc1', 'Acc2'] },
|
|
144
144
|
{ account: ['Acc2', 'Acc3'] },
|
|
@@ -147,8 +147,8 @@ const merge_1 = require("./portal/merge");
|
|
|
147
147
|
assert_1.default.deepStrictEqual(result[0].account?.sort(), ['Acc1', 'Acc2', 'Acc3']);
|
|
148
148
|
});
|
|
149
149
|
});
|
|
150
|
-
(0,
|
|
151
|
-
(0,
|
|
150
|
+
(0, vitest_1.describe)('tokenBalances', function () {
|
|
151
|
+
(0, vitest_1.it)('merges tokenBalances with same mint but different accounts', function () {
|
|
152
152
|
let result = (0, merge_1.mergeItems)([
|
|
153
153
|
{ account: ['Acc1'], preMint: ['MintA'] },
|
|
154
154
|
{ account: ['Acc2'], preMint: ['MintA'] },
|
|
@@ -157,14 +157,14 @@ const merge_1 = require("./portal/merge");
|
|
|
157
157
|
assert_1.default.deepStrictEqual(result[0].account?.sort(), ['Acc1', 'Acc2']);
|
|
158
158
|
assert_1.default.deepStrictEqual(result[0].preMint, ['MintA']);
|
|
159
159
|
});
|
|
160
|
-
(0,
|
|
160
|
+
(0, vitest_1.it)('does not merge tokenBalances differing in two filter fields', function () {
|
|
161
161
|
let result = (0, merge_1.mergeItems)([
|
|
162
162
|
{ account: ['Acc1'], preMint: ['MintA'] },
|
|
163
163
|
{ account: ['Acc2'], preMint: ['MintB'] },
|
|
164
164
|
], merge_1.TOKEN_BALANCE_FILTER_KEYS);
|
|
165
165
|
assert_1.default.strictEqual(result.length, 2);
|
|
166
166
|
});
|
|
167
|
-
(0,
|
|
167
|
+
(0, vitest_1.it)('merges tokenBalances with same account but different mints', function () {
|
|
168
168
|
let result = (0, merge_1.mergeItems)([
|
|
169
169
|
{ account: ['Acc1'], preMint: ['MintA'] },
|
|
170
170
|
{ account: ['Acc1'], preMint: ['MintB'] },
|
|
@@ -174,8 +174,8 @@ const merge_1 = require("./portal/merge");
|
|
|
174
174
|
assert_1.default.deepStrictEqual(result[0].preMint?.sort(), ['MintA', 'MintB']);
|
|
175
175
|
});
|
|
176
176
|
});
|
|
177
|
-
(0,
|
|
178
|
-
(0,
|
|
177
|
+
(0, vitest_1.describe)('rewards', function () {
|
|
178
|
+
(0, vitest_1.it)('merges rewards with different pubkeys', function () {
|
|
179
179
|
let result = (0, merge_1.mergeItems)([
|
|
180
180
|
{ pubkey: ['PubA'] },
|
|
181
181
|
{ pubkey: ['PubB'] },
|
|
@@ -183,7 +183,7 @@ const merge_1 = require("./portal/merge");
|
|
|
183
183
|
assert_1.default.strictEqual(result.length, 1);
|
|
184
184
|
assert_1.default.deepStrictEqual(result[0].pubkey?.sort(), ['PubA', 'PubB']);
|
|
185
185
|
});
|
|
186
|
-
(0,
|
|
186
|
+
(0, vitest_1.it)('deduplicates identical reward requests', function () {
|
|
187
187
|
let result = (0, merge_1.mergeItems)([
|
|
188
188
|
{ pubkey: ['PubA'] },
|
|
189
189
|
{ pubkey: ['PubA'] },
|
|
@@ -192,19 +192,19 @@ const merge_1 = require("./portal/merge");
|
|
|
192
192
|
assert_1.default.deepStrictEqual(result[0].pubkey, ['PubA']);
|
|
193
193
|
});
|
|
194
194
|
});
|
|
195
|
-
(0,
|
|
196
|
-
(0,
|
|
195
|
+
(0, vitest_1.describe)('general', function () {
|
|
196
|
+
(0, vitest_1.it)('returns single request as-is', function () {
|
|
197
197
|
let result = (0, merge_1.mergeItems)([
|
|
198
198
|
{ programId: ['ProgA'], transaction: true },
|
|
199
199
|
], merge_1.INSTRUCTION_FILTER_KEYS);
|
|
200
200
|
assert_1.default.strictEqual(result.length, 1);
|
|
201
201
|
assert_1.default.deepStrictEqual(result[0].programId, ['ProgA']);
|
|
202
202
|
});
|
|
203
|
-
(0,
|
|
203
|
+
(0, vitest_1.it)('handles empty array', function () {
|
|
204
204
|
let result = (0, merge_1.mergeItems)([], merge_1.INSTRUCTION_FILTER_KEYS);
|
|
205
205
|
assert_1.default.deepStrictEqual(result, []);
|
|
206
206
|
});
|
|
207
|
-
(0,
|
|
207
|
+
(0, vitest_1.it)('performs multi-pass merging', function () {
|
|
208
208
|
let result = (0, merge_1.mergeItems)([
|
|
209
209
|
{ programId: ['ProgA'], discriminator: ['0x01'] },
|
|
210
210
|
{ programId: ['ProgB'], discriminator: ['0x02'] },
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.test.js","sourceRoot":"","sources":["../../src/portal/merge.test.ts"],"names":[],"mappings":"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"}
|
package/lib/portal/source.d.ts
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { PortalClient, solana } from '@subsquid/portal-client';
|
|
2
|
-
import {
|
|
2
|
+
import { BlockBatch, BlockRef, StreamRequest } from '@subsquid/util-internal-data-source';
|
|
3
3
|
import { FiniteRange, RangeRequestList } from '@subsquid/util-internal-range';
|
|
4
4
|
import { Block, FieldSelection } from '../data/model';
|
|
5
5
|
import { DataRequest } from '../data/request';
|
|
6
|
-
|
|
7
|
-
export
|
|
6
|
+
import type { SolanaDataSource } from '../source';
|
|
7
|
+
export type RangeRequestResolver = RangeRequestList<DataRequest> | (() => RangeRequestList<DataRequest>);
|
|
8
|
+
export declare class PortalSolanaDataSource<F extends FieldSelection> implements SolanaDataSource<F> {
|
|
8
9
|
private client;
|
|
10
|
+
private fields;
|
|
9
11
|
private requests;
|
|
10
12
|
private opts?;
|
|
11
|
-
constructor(client: PortalClient, requests: RangeRequestResolver
|
|
13
|
+
constructor(client: PortalClient, fields: FieldSelection, requests: RangeRequestResolver, opts?: {
|
|
12
14
|
squidId?: string;
|
|
13
15
|
} | undefined);
|
|
14
|
-
getHead(): Promise<BlockRef
|
|
15
|
-
getFinalizedHead(): Promise<BlockRef
|
|
16
|
-
getFinalizedStream(opts?:
|
|
17
|
-
getStream(opts?:
|
|
16
|
+
getHead(): Promise<BlockRef>;
|
|
17
|
+
getFinalizedHead(): Promise<BlockRef>;
|
|
18
|
+
getFinalizedStream(opts?: StreamRequest): AsyncIterable<BlockBatch<Block<F>>>;
|
|
19
|
+
getStream(opts?: StreamRequest): AsyncIterable<BlockBatch<Block<F>>>;
|
|
18
20
|
getBlocksCountInRange(range: FiniteRange): number;
|
|
19
21
|
private resolveRequests;
|
|
20
22
|
private _getStream;
|
|
21
23
|
private getHeaders;
|
|
22
24
|
}
|
|
23
|
-
declare function mapFieldSelection
|
|
25
|
+
declare function mapFieldSelection(fields: FieldSelection): {
|
|
24
26
|
block: import("../data/type-util").Selector<"height" | "parentNumber" | "timestamp"> | undefined;
|
|
25
27
|
transaction: {
|
|
26
28
|
transactionIndex: true;
|
|
@@ -34,6 +36,7 @@ declare function mapFieldSelection<F extends FieldSelection>(fields?: F): {
|
|
|
34
36
|
signatures?: boolean | undefined;
|
|
35
37
|
err?: boolean | undefined;
|
|
36
38
|
computeUnitsConsumed?: boolean | undefined;
|
|
39
|
+
costUnits?: boolean | undefined;
|
|
37
40
|
fee?: boolean | undefined;
|
|
38
41
|
loadedAddresses?: boolean | undefined;
|
|
39
42
|
hasDroppedLogMessages?: boolean | undefined;
|
|
@@ -85,7 +88,7 @@ declare function mapFieldSelection<F extends FieldSelection>(fields?: F): {
|
|
|
85
88
|
commission?: boolean | undefined;
|
|
86
89
|
};
|
|
87
90
|
};
|
|
88
|
-
type MapFieldSelection
|
|
89
|
-
export declare function mapBlock<F extends FieldSelection>(rawBlock: solana.Block<MapFieldSelection
|
|
91
|
+
type MapFieldSelection = ReturnType<typeof mapFieldSelection>;
|
|
92
|
+
export declare function mapBlock<F extends FieldSelection>(rawBlock: solana.Block<MapFieldSelection>): Block<F>;
|
|
90
93
|
export {};
|
|
91
94
|
//# sourceMappingURL=source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/portal/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,YAAY,EAAE,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAEtG,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/portal/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,YAAY,EAAE,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAEtG,OAAO,EACH,UAAU,EACV,QAAQ,EAER,aAAa,EAChB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEH,WAAW,EAGX,gBAAgB,EACnB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,eAAe,CAAA;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAU3C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAC1B,gBAAgB,CAAC,WAAW,CAAC,GAC7B,CAAC,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAA;AAE3C,qBAAa,sBAAsB,CAAC,CAAC,SAAS,cAAc,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAEpF,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI,CAAC;gBAHL,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,YAAA;IAG/B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAM5B,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAM3C,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAI7E,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAIpE,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAOjD,OAAO,CAAC,eAAe;YAIR,UAAU;IA0EzB,OAAO,CAAC,UAAU;CAGrB;AAoCD,iBAAS,iBAAiB,CAAC,MAAM,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhD;AAED,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE7D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CA8CtG"}
|
package/lib/portal/source.js
CHANGED
|
@@ -3,25 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.PortalSolanaDataSource = void 0;
|
|
7
7
|
exports.mapBlock = mapBlock;
|
|
8
8
|
const portal_client_1 = require("@subsquid/portal-client");
|
|
9
9
|
const util_internal_1 = require("@subsquid/util-internal");
|
|
10
10
|
const util_internal_data_source_1 = require("@subsquid/util-internal-data-source");
|
|
11
11
|
const util_internal_range_1 = require("@subsquid/util-internal-range");
|
|
12
|
-
const merge_1 = require("./merge");
|
|
13
12
|
const assert_1 = __importDefault(require("assert"));
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const merge_1 = require("./merge");
|
|
14
|
+
class PortalSolanaDataSource {
|
|
15
|
+
constructor(client, fields, requests, opts) {
|
|
16
16
|
this.client = client;
|
|
17
|
+
this.fields = fields;
|
|
17
18
|
this.requests = requests;
|
|
18
19
|
this.opts = opts;
|
|
19
20
|
}
|
|
20
|
-
getHead() {
|
|
21
|
-
|
|
21
|
+
async getHead() {
|
|
22
|
+
let head = await this.client.getHead({ headers: this.getHeaders() });
|
|
23
|
+
(0, assert_1.default)(head, 'portal has no chain head');
|
|
24
|
+
return head;
|
|
22
25
|
}
|
|
23
|
-
getFinalizedHead() {
|
|
24
|
-
|
|
26
|
+
async getFinalizedHead() {
|
|
27
|
+
let head = await this.client.getFinalizedHead({ headers: this.getHeaders() });
|
|
28
|
+
(0, assert_1.default)(head, 'portal has no finalized head');
|
|
29
|
+
return head;
|
|
25
30
|
}
|
|
26
31
|
getFinalizedStream(opts) {
|
|
27
32
|
return this._getStream(opts, true);
|
|
@@ -30,70 +35,84 @@ class PortalDataSource {
|
|
|
30
35
|
return this._getStream(opts, false);
|
|
31
36
|
}
|
|
32
37
|
getBlocksCountInRange(range) {
|
|
33
|
-
return (0, util_internal_range_1.getSize)(this.resolveRequests().map(r => r.range), range);
|
|
38
|
+
return (0, util_internal_range_1.getSize)(this.resolveRequests().map((r) => r.range), range);
|
|
34
39
|
}
|
|
35
|
-
resolveRequests(
|
|
36
|
-
return typeof this.requests === 'function' ? this.requests(
|
|
40
|
+
resolveRequests() {
|
|
41
|
+
return typeof this.requests === 'function' ? this.requests() : this.requests;
|
|
37
42
|
}
|
|
38
43
|
async *_getStream(opts, finalized) {
|
|
39
|
-
let requests = (0, util_internal_range_1.applyRangeBound)(this.resolveRequests(
|
|
44
|
+
let requests = (0, util_internal_range_1.applyRangeBound)(this.resolveRequests(), opts?.from != null ? { from: opts.from } : undefined);
|
|
40
45
|
if (requests.length === 0)
|
|
41
46
|
return;
|
|
42
47
|
let streamOptions = { request: { headers: this.getHeaders() } };
|
|
43
48
|
let parentHash = opts?.parentHash;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
49
|
+
let nextBlock = opts?.from;
|
|
50
|
+
// Stream a request from the portal and keep (parentHash, nextBlock)
|
|
51
|
+
// in sync with the last block of every batch.
|
|
52
|
+
let drain = async function* (req) {
|
|
53
|
+
for await (let { blocks, meta } of this.client.getStream(mapRequest(req, this.fields, parentHash), streamOptions, finalized)) {
|
|
54
|
+
yield {
|
|
55
|
+
blocks: blocks.map((block) => mapBlock(block)),
|
|
56
|
+
finalizedHead: getHead(meta.finalizedHeadNumber, meta.finalizedHeadHash),
|
|
57
|
+
};
|
|
58
|
+
let lastBlock = (0, util_internal_1.maybeLast)(blocks)?.header;
|
|
59
|
+
if (lastBlock != null) {
|
|
60
|
+
parentHash = lastBlock.hash;
|
|
61
|
+
nextBlock = lastBlock.number + 1;
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
}
|
|
64
|
+
}.bind(this);
|
|
65
|
+
// Advance the stream until the given block becomes finalized, after
|
|
66
|
+
// which chain-continuity info is no longer needed and is dropped.
|
|
67
|
+
// When `to` is undefined the stream is open-ended and we wait on the
|
|
68
|
+
// current tail (nextBlock - 1).
|
|
69
|
+
let finalize = async (to) => {
|
|
70
|
+
if (nextBlock == null)
|
|
71
|
+
return;
|
|
72
|
+
if (to != null && nextBlock > to)
|
|
73
|
+
return;
|
|
74
|
+
let target = to ?? nextBlock - 1;
|
|
75
|
+
for await (let { finalizedHead } of drain({ range: { from: nextBlock, to }, request: {} })) {
|
|
76
|
+
if (finalizedHead && target <= finalizedHead.number) {
|
|
77
|
+
parentHash = undefined;
|
|
78
|
+
nextBlock = undefined;
|
|
79
|
+
return;
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
};
|
|
83
|
+
try {
|
|
84
|
+
for (let req of requests) {
|
|
85
|
+
// Close any gap preceding this query so parentHash lands on
|
|
86
|
+
// req.range.from (or is safely dropped).
|
|
87
|
+
await finalize(req.range.from - 1);
|
|
88
|
+
if (nextBlock !== req.range.from) {
|
|
89
|
+
parentHash = undefined;
|
|
80
90
|
}
|
|
81
|
-
|
|
91
|
+
yield* drain(req);
|
|
92
|
+
}
|
|
93
|
+
// After the last query, wait for its range to finalize before
|
|
94
|
+
// ending the stream.
|
|
95
|
+
await finalize();
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
if ((0, portal_client_1.isForkException)(e)) {
|
|
99
|
+
throw new util_internal_data_source_1.ForkException(e.blockNumber, e.parentBlockHash, e.previousBlocks);
|
|
82
100
|
}
|
|
101
|
+
throw e;
|
|
83
102
|
}
|
|
84
103
|
}
|
|
85
104
|
getHeaders() {
|
|
86
105
|
return this.opts?.squidId ? { 'x-squid-id': this.opts.squidId } : undefined;
|
|
87
106
|
}
|
|
88
107
|
}
|
|
89
|
-
exports.
|
|
108
|
+
exports.PortalSolanaDataSource = PortalSolanaDataSource;
|
|
90
109
|
function getHead(number, hash) {
|
|
91
110
|
if (number == null || hash == null) {
|
|
92
111
|
return undefined;
|
|
93
112
|
}
|
|
94
113
|
return { number, hash };
|
|
95
114
|
}
|
|
96
|
-
function mapRequest(req, parentBlockHash) {
|
|
115
|
+
function mapRequest(req, fields, parentBlockHash) {
|
|
97
116
|
let transactions = req.request.transactions?.map((tx) => ({ ...tx.where, ...tx.include }));
|
|
98
117
|
let instructions = req.request.instructions?.map((ix) => ({ ...ix.where, ...ix.include }));
|
|
99
118
|
let logs = req.request.logs?.map((log) => ({ ...log.where, ...log.include }));
|
|
@@ -105,7 +124,7 @@ function mapRequest(req, parentBlockHash) {
|
|
|
105
124
|
fromBlock: req.range.from,
|
|
106
125
|
toBlock: req.range.to === Infinity ? undefined : req.range.to,
|
|
107
126
|
parentBlockHash: parentBlockHash,
|
|
108
|
-
fields: mapFieldSelection(
|
|
127
|
+
fields: mapFieldSelection(fields),
|
|
109
128
|
includeAllBlocks: req.request.includeAllBlocks,
|
|
110
129
|
transactions: transactions && (0, merge_1.mergeItems)(transactions, merge_1.TX_FILTER_KEYS),
|
|
111
130
|
instructions: instructions && (0, merge_1.mergeItems)(instructions, merge_1.INSTRUCTION_FILTER_KEYS),
|
|
@@ -117,13 +136,13 @@ function mapRequest(req, parentBlockHash) {
|
|
|
117
136
|
}
|
|
118
137
|
function mapFieldSelection(fields) {
|
|
119
138
|
return {
|
|
120
|
-
block: fields
|
|
121
|
-
transaction: { ...fields
|
|
122
|
-
instruction: { ...fields
|
|
123
|
-
log: { ...fields
|
|
124
|
-
balance: { ...fields
|
|
125
|
-
tokenBalance: { ...fields
|
|
126
|
-
reward: { ...fields
|
|
139
|
+
block: fields.block,
|
|
140
|
+
transaction: { ...fields.transaction, transactionIndex: true },
|
|
141
|
+
instruction: { ...fields.instruction, transactionIndex: true, instructionAddress: true },
|
|
142
|
+
log: { ...fields.log, logIndex: true, transactionIndex: true, instructionAddress: true },
|
|
143
|
+
balance: { ...fields.balance, transactionIndex: true, account: true },
|
|
144
|
+
tokenBalance: { ...fields.tokenBalance, transactionIndex: true, account: true },
|
|
145
|
+
reward: { ...fields.reward, pubkey: true },
|
|
127
146
|
};
|
|
128
147
|
}
|
|
129
148
|
function mapBlock(rawBlock) {
|
package/lib/portal/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/portal/source.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/portal/source.ts"],"names":[],"mappings":"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"}
|
package/lib/query.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Range, RangeRequest } from '@subsquid/util-internal-range';
|
|
2
|
+
import type { BalanceRequest, DataRequest, InstructionRequest, LogRequest, RewardRequest, TokenBalanceRequest, TransactionRequest } from './data/request';
|
|
3
|
+
/**
|
|
4
|
+
* A single portal query - a set of item filters that share a block range.
|
|
5
|
+
*
|
|
6
|
+
* Produced by {@link QueryBuilder#build} and consumed by
|
|
7
|
+
* {@link DataSourceBuilder#addQuery}.
|
|
8
|
+
*/
|
|
9
|
+
export type Query = RangeRequest<DataRequest>;
|
|
10
|
+
/**
|
|
11
|
+
* Builder for a single portal query - a set of item filters that share a block range.
|
|
12
|
+
*
|
|
13
|
+
* Pass a {@link QueryBuilder} or the result of {@link QueryBuilder#build}
|
|
14
|
+
* to {@link DataSourceBuilder#addQuery} to register the query.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* let query = new QueryBuilder()
|
|
19
|
+
* .setRange({from: 250_000_000})
|
|
20
|
+
* .addInstruction({where: {programId: [PROGRAM_ID]}, include: {logs: true}})
|
|
21
|
+
* .addTransaction({where: {feePayer: [FEE_PAYER]}})
|
|
22
|
+
*
|
|
23
|
+
* dataSource.addQuery(query)
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class QueryBuilder {
|
|
27
|
+
private _range;
|
|
28
|
+
private _request;
|
|
29
|
+
/**
|
|
30
|
+
* Restrict this query to the given block range.
|
|
31
|
+
*
|
|
32
|
+
* When omitted, the query applies from block 0 onwards.
|
|
33
|
+
*/
|
|
34
|
+
setRange(range: Range): this;
|
|
35
|
+
/**
|
|
36
|
+
* Fetch every block in the query's range, even blocks without any
|
|
37
|
+
* matching items. Without this flag such blocks may be omitted.
|
|
38
|
+
*/
|
|
39
|
+
includeAllBlocks(): this;
|
|
40
|
+
addTransaction(options: TransactionRequest): this;
|
|
41
|
+
addInstruction(options: InstructionRequest): this;
|
|
42
|
+
addLog(options: LogRequest): this;
|
|
43
|
+
addBalance(options: BalanceRequest): this;
|
|
44
|
+
addTokenBalance(options: TokenBalanceRequest): this;
|
|
45
|
+
addReward(options: RewardRequest): this;
|
|
46
|
+
/**
|
|
47
|
+
* Produce an immutable {@link Query} describing the configured range
|
|
48
|
+
* and filters. Subsequent mutations of this builder do not affect
|
|
49
|
+
* the returned object.
|
|
50
|
+
*/
|
|
51
|
+
build(): Query;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EACR,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,gBAAgB,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAkB;IAElC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK5B;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAKxB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKjD,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKjD,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAKjC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAKzC,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAKnD,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvC;;;;OAIG;IACH,KAAK,IAAI,KAAK;CAMjB"}
|