@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.
Files changed (52) hide show
  1. package/lib/builder.d.ts +92 -0
  2. package/lib/builder.d.ts.map +1 -0
  3. package/lib/builder.js +182 -0
  4. package/lib/builder.js.map +1 -0
  5. package/lib/data/fields.d.ts.map +1 -1
  6. package/lib/data/fields.js +0 -14
  7. package/lib/data/fields.js.map +1 -1
  8. package/lib/data/model.d.ts +16 -6
  9. package/lib/data/model.d.ts.map +1 -1
  10. package/lib/data/model.js +5 -0
  11. package/lib/data/model.js.map +1 -1
  12. package/lib/data/request.d.ts +2 -3
  13. package/lib/data/request.d.ts.map +1 -1
  14. package/lib/data/type-util.d.ts +35 -13
  15. package/lib/data/type-util.d.ts.map +1 -1
  16. package/lib/index.d.ts +3 -0
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +3 -0
  19. package/lib/index.js.map +1 -1
  20. package/lib/{merge.test.d.ts.map → portal/merge.test.d.ts.map} +1 -1
  21. package/lib/{merge.test.js → portal/merge.test.js} +34 -34
  22. package/lib/portal/merge.test.js.map +1 -0
  23. package/lib/portal/source.d.ts +14 -11
  24. package/lib/portal/source.d.ts.map +1 -1
  25. package/lib/portal/source.js +75 -56
  26. package/lib/portal/source.js.map +1 -1
  27. package/lib/query.d.ts +53 -0
  28. package/lib/query.d.ts.map +1 -0
  29. package/lib/query.js +102 -0
  30. package/lib/query.js.map +1 -0
  31. package/lib/source.d.ts +2 -69
  32. package/lib/source.d.ts.map +1 -1
  33. package/lib/source.js +0 -265
  34. package/lib/source.js.map +1 -1
  35. package/package.json +18 -16
  36. package/src/builder.ts +205 -0
  37. package/src/data/fields.ts +0 -20
  38. package/src/data/model.ts +23 -27
  39. package/src/data/request.ts +2 -3
  40. package/src/data/type-util.ts +39 -37
  41. package/src/index.ts +3 -0
  42. package/src/{merge.test.ts → portal/merge.test.ts} +2 -2
  43. package/src/portal/source.ts +115 -98
  44. package/src/query.ts +112 -0
  45. package/src/source.ts +3 -314
  46. package/lib/merge.test.js.map +0 -1
  47. package/lib/portal/schema.d.ts +0 -167
  48. package/lib/portal/schema.d.ts.map +0 -1
  49. package/lib/portal/schema.js +0 -117
  50. package/lib/portal/schema.js.map +0 -1
  51. package/src/portal/schema.ts +0 -136
  52. /package/lib/{merge.test.d.ts → portal/merge.test.d.ts} +0 -0
package/lib/query.js ADDED
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryBuilder = void 0;
4
+ /**
5
+ * Builder for a single portal query - a set of item filters that share a block range.
6
+ *
7
+ * Pass a {@link QueryBuilder} or the result of {@link QueryBuilder#build}
8
+ * to {@link DataSourceBuilder#addQuery} to register the query.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * let query = new QueryBuilder()
13
+ * .setRange({from: 250_000_000})
14
+ * .addInstruction({where: {programId: [PROGRAM_ID]}, include: {logs: true}})
15
+ * .addTransaction({where: {feePayer: [FEE_PAYER]}})
16
+ *
17
+ * dataSource.addQuery(query)
18
+ * ```
19
+ */
20
+ class QueryBuilder {
21
+ constructor() {
22
+ this._range = { from: 0 };
23
+ this._request = {};
24
+ }
25
+ /**
26
+ * Restrict this query to the given block range.
27
+ *
28
+ * When omitted, the query applies from block 0 onwards.
29
+ */
30
+ setRange(range) {
31
+ this._range = range;
32
+ return this;
33
+ }
34
+ /**
35
+ * Fetch every block in the query's range, even blocks without any
36
+ * matching items. Without this flag such blocks may be omitted.
37
+ */
38
+ includeAllBlocks() {
39
+ this._request.includeAllBlocks = true;
40
+ return this;
41
+ }
42
+ addTransaction(options) {
43
+ var _a;
44
+ ;
45
+ ((_a = this._request).transactions ?? (_a.transactions = [])).push(options);
46
+ return this;
47
+ }
48
+ addInstruction(options) {
49
+ var _a;
50
+ ;
51
+ ((_a = this._request).instructions ?? (_a.instructions = [])).push(options);
52
+ return this;
53
+ }
54
+ addLog(options) {
55
+ var _a;
56
+ ;
57
+ ((_a = this._request).logs ?? (_a.logs = [])).push(options);
58
+ return this;
59
+ }
60
+ addBalance(options) {
61
+ var _a;
62
+ ;
63
+ ((_a = this._request).balances ?? (_a.balances = [])).push(options);
64
+ return this;
65
+ }
66
+ addTokenBalance(options) {
67
+ var _a;
68
+ ;
69
+ ((_a = this._request).tokenBalances ?? (_a.tokenBalances = [])).push(options);
70
+ return this;
71
+ }
72
+ addReward(options) {
73
+ var _a;
74
+ ;
75
+ ((_a = this._request).rewards ?? (_a.rewards = [])).push(options);
76
+ return this;
77
+ }
78
+ /**
79
+ * Produce an immutable {@link Query} describing the configured range
80
+ * and filters. Subsequent mutations of this builder do not affect
81
+ * the returned object.
82
+ */
83
+ build() {
84
+ return {
85
+ range: { ...this._range },
86
+ request: cloneRequest(this._request),
87
+ };
88
+ }
89
+ }
90
+ exports.QueryBuilder = QueryBuilder;
91
+ function cloneRequest(request) {
92
+ return {
93
+ includeAllBlocks: request.includeAllBlocks,
94
+ transactions: request.transactions?.slice(),
95
+ instructions: request.instructions?.slice(),
96
+ logs: request.logs?.slice(),
97
+ balances: request.balances?.slice(),
98
+ tokenBalances: request.tokenBalances?.slice(),
99
+ rewards: request.rewards?.slice(),
100
+ };
101
+ }
102
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";;;AAmBA;;;;;;;;;;;;;;;GAeG;AACH,MAAa,YAAY;IAAzB;QACY,WAAM,GAAU,EAAC,IAAI,EAAE,CAAC,EAAC,CAAA;QACzB,aAAQ,GAAgB,EAAE,CAAA;IA8DtC,CAAC;IA5DG;;;;OAIG;IACH,QAAQ,CAAC,KAAY;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACZ,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAA;QACrC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,cAAc,CAAC,OAA2B;;QACtC,CAAC;QAAA,OAAC,IAAI,CAAC,QAAQ,EAAC,YAAY,QAAZ,YAAY,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,cAAc,CAAC,OAA2B;;QACtC,CAAC;QAAA,OAAC,IAAI,CAAC,QAAQ,EAAC,YAAY,QAAZ,YAAY,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,OAAmB;;QACtB,CAAC;QAAA,OAAC,IAAI,CAAC,QAAQ,EAAC,IAAI,QAAJ,IAAI,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAA;IACf,CAAC;IAED,UAAU,CAAC,OAAuB;;QAC9B,CAAC;QAAA,OAAC,IAAI,CAAC,QAAQ,EAAC,QAAQ,QAAR,QAAQ,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACf,CAAC;IAED,eAAe,CAAC,OAA4B;;QACxC,CAAC;QAAA,OAAC,IAAI,CAAC,QAAQ,EAAC,aAAa,QAAb,aAAa,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,SAAS,CAAC,OAAsB;;QAC5B,CAAC;QAAA,OAAC,IAAI,CAAC,QAAQ,EAAC,OAAO,QAAP,OAAO,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK;QACD,OAAO;YACH,KAAK,EAAE,EAAC,GAAG,IAAI,CAAC,MAAM,EAAC;YACvB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;SACvC,CAAA;IACL,CAAC;CACJ;AAhED,oCAgEC;AAED,SAAS,YAAY,CAAC,OAAoB;IACtC,OAAO;QACH,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE;QAC3C,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE;QAC3C,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE;QACnC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE;KACpC,CAAA;AACL,CAAC"}
package/lib/source.d.ts CHANGED
@@ -1,73 +1,6 @@
1
- import { PortalClient, PortalClientOptions } from '@subsquid/portal-client';
2
- import { BlockBatch, BlockRef, DataSource, DataSourceStreamOptions, TemplateRegistry } from '@subsquid/util-internal-data-source';
3
- import { FiniteRange, Range, RangeRequestList } from '@subsquid/util-internal-range';
1
+ import { DataSource } from '@subsquid/util-internal-data-source';
4
2
  import { Block, FieldSelection } from './data/model';
5
- import { BalanceRequest, DataRequest, InstructionRequest, LogRequest, RewardRequest, TokenBalanceRequest, TransactionRequest } from './data/request';
6
- interface BlockRange {
7
- range?: Range;
8
- }
9
- export declare class DataSourceBuilder<F extends FieldSelection = {}> {
10
- private requests;
11
- private templates;
12
- private fields?;
13
- private blockRange?;
14
- private archive?;
15
- /**
16
- * Set SQD Network Portal endpoint.
17
- *
18
- * SQD Network allows to get data from blocks up to
19
- * infinite times faster and more efficient than via regular RPC.
20
- *
21
- * @example
22
- * source.setPortal('https://portal.sqd.dev/datasets/solana-mainnet')
23
- */
24
- setPortal(portal: string | PortalClientOptions | PortalClient): this;
25
- /**
26
- * Limits the range of blocks to fetch.
27
- *
28
- * Note, that block heights should be used instead of slots.
29
- */
30
- setBlockRange(range?: Range): this;
31
- /**
32
- * Configure a set of fetched fields
33
- */
34
- setFields<F extends FieldSelection>(fields: F): DataSourceBuilder<F>;
35
- private add;
36
- /**
37
- * By default, blocks that doesn't contain requested items can be omitted.
38
- * This method modifies such behaviour to fetch all chain blocks.
39
- *
40
- * Optionally a range of blocks can be specified
41
- * for which the setting should be effective.
42
- */
43
- includeAllBlocks(range?: Range): this;
44
- addTransaction(options: TransactionRequest & BlockRange): this;
45
- addTransaction(key: string, options: TransactionRequest & BlockRange): this;
46
- addInstruction(options: InstructionRequest & BlockRange): this;
47
- addInstruction(key: string, options: InstructionRequest & BlockRange): this;
48
- addLog(options: LogRequest & BlockRange): this;
49
- addLog(key: string, options: LogRequest & BlockRange): this;
50
- addBalance(options: BalanceRequest & BlockRange): this;
51
- addBalance(key: string, options: BalanceRequest & BlockRange): this;
52
- addTokenBalance(options: TokenBalanceRequest & BlockRange): this;
53
- addTokenBalance(key: string, options: TokenBalanceRequest & BlockRange): this;
54
- addReward(options: RewardRequest & BlockRange): this;
55
- addReward(key: string, options: RewardRequest & BlockRange): this;
56
- private getRequests;
57
- build(): SolanaDataSource<F>;
58
- }
59
3
  export type GetDataSourceBlock<T> = T extends DataSource<infer B> ? B : never;
60
- export declare class SolanaDataSource<F extends FieldSelection> implements DataSource<Block<F>> {
61
- private _resolveRequests;
62
- private portal;
63
- constructor(_resolveRequests: (registry: TemplateRegistry | undefined) => RangeRequestList<DataRequest<F>>, portal: PortalClient);
64
- getHead(): Promise<BlockRef | undefined>;
65
- getFinalizedHead(): Promise<BlockRef | undefined>;
66
- getFinalizedStream(opts: DataSourceStreamOptions): AsyncIterable<BlockBatch<Block<F>>>;
67
- getStream(opts?: DataSourceStreamOptions): AsyncIterable<BlockBatch<Block<F>>>;
68
- getBlocksCountInRange(range: FiniteRange): number;
69
- private createArchive;
70
- private getSquidId;
4
+ export interface SolanaDataSource<F extends FieldSelection> extends DataSource<Block<F>> {
71
5
  }
72
- export {};
73
6
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,cAAc,CAAA;AAElD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE7E,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,cAAc,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAAG"}
package/lib/source.js CHANGED
@@ -1,268 +1,3 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.SolanaDataSource = exports.DataSourceBuilder = void 0;
16
- const portal_client_1 = require("@subsquid/portal-client");
17
- const util_internal_1 = require("@subsquid/util-internal");
18
- const util_internal_processor_tools_1 = require("@subsquid/util-internal-processor-tools");
19
- const util_internal_range_1 = require("@subsquid/util-internal-range");
20
- const assert_1 = __importDefault(require("assert"));
21
- const model_1 = require("./data/model");
22
- const source_1 = require("./portal/source");
23
- class DataSourceBuilder {
24
- constructor() {
25
- this.requests = [];
26
- this.templates = [];
27
- }
28
- /**
29
- * Set SQD Network Portal endpoint.
30
- *
31
- * SQD Network allows to get data from blocks up to
32
- * infinite times faster and more efficient than via regular RPC.
33
- *
34
- * @example
35
- * source.setPortal('https://portal.sqd.dev/datasets/solana-mainnet')
36
- */
37
- setPortal(portal) {
38
- if (typeof portal == 'string') {
39
- this.archive = { url: portal };
40
- }
41
- else {
42
- this.archive = portal;
43
- }
44
- return this;
45
- }
46
- /**
47
- * Limits the range of blocks to fetch.
48
- *
49
- * Note, that block heights should be used instead of slots.
50
- */
51
- setBlockRange(range) {
52
- this.blockRange = range;
53
- return this;
54
- }
55
- /**
56
- * Configure a set of fetched fields
57
- */
58
- setFields(fields) {
59
- this.fields = fields;
60
- return this;
61
- }
62
- add(range, request) {
63
- this.requests.push({
64
- range: range || { from: 0 },
65
- request,
66
- });
67
- }
68
- /**
69
- * By default, blocks that doesn't contain requested items can be omitted.
70
- * This method modifies such behaviour to fetch all chain blocks.
71
- *
72
- * Optionally a range of blocks can be specified
73
- * for which the setting should be effective.
74
- */
75
- includeAllBlocks(range) {
76
- this.add(range, { includeAllBlocks: true });
77
- return this;
78
- }
79
- addTransaction(keyOrOptions, options) {
80
- if (typeof keyOrOptions === 'string') {
81
- let { range, ...transaction } = options;
82
- this.templates.push({ key: keyOrOptions, range, resolve: (value) => ({
83
- transactions: [{ ...transaction, where: { ...transaction.where, feePayer: [value] } }],
84
- }) });
85
- return this;
86
- }
87
- let { range, ...req } = keyOrOptions;
88
- this.add(range, { transactions: [req] });
89
- return this;
90
- }
91
- addInstruction(keyOrOptions, options) {
92
- if (typeof keyOrOptions === 'string') {
93
- let { range, ...instruction } = options;
94
- this.templates.push({ key: keyOrOptions, range, resolve: (value) => ({
95
- instructions: [{ ...instruction, where: { ...instruction.where, programId: [value] } }],
96
- }) });
97
- return this;
98
- }
99
- let { range, ...req } = keyOrOptions;
100
- this.add(range, { instructions: [req] });
101
- return this;
102
- }
103
- addLog(keyOrOptions, options) {
104
- if (typeof keyOrOptions === 'string') {
105
- let { range, ...log } = options;
106
- this.templates.push({ key: keyOrOptions, range, resolve: (value) => ({
107
- logs: [{ ...log, where: { ...log.where, programId: [value] } }],
108
- }) });
109
- return this;
110
- }
111
- let { range, ...req } = keyOrOptions;
112
- this.add(range, { logs: [req] });
113
- return this;
114
- }
115
- addBalance(keyOrOptions, options) {
116
- if (typeof keyOrOptions === 'string') {
117
- let { range, ...balance } = options;
118
- this.templates.push({ key: keyOrOptions, range, resolve: (value) => ({
119
- balances: [{ ...balance, where: { ...balance.where, account: [value] } }],
120
- }) });
121
- return this;
122
- }
123
- let { range, ...req } = keyOrOptions;
124
- this.add(range, { balances: [req] });
125
- return this;
126
- }
127
- addTokenBalance(keyOrOptions, options) {
128
- if (typeof keyOrOptions === 'string') {
129
- let { range, ...tokenBalance } = options;
130
- this.templates.push({ key: keyOrOptions, range, resolve: (value) => ({
131
- tokenBalances: [{ ...tokenBalance, where: { ...tokenBalance.where, account: [value] } }],
132
- }) });
133
- return this;
134
- }
135
- let { range, ...req } = keyOrOptions;
136
- this.add(range, { tokenBalances: [req] });
137
- return this;
138
- }
139
- addReward(keyOrOptions, options) {
140
- if (typeof keyOrOptions === 'string') {
141
- let { range, ...reward } = options;
142
- this.templates.push({ key: keyOrOptions, range, resolve: (value) => ({
143
- rewards: [{ ...reward, where: { ...reward.where, pubkey: [value] } }],
144
- }) });
145
- return this;
146
- }
147
- let { range, ...req } = keyOrOptions;
148
- this.add(range, { rewards: [req] });
149
- return this;
150
- }
151
- getRequests(registry) {
152
- function concat(a, b) {
153
- let result = [];
154
- if (a) {
155
- result.push(...a);
156
- }
157
- if (b) {
158
- result.push(...b);
159
- }
160
- return result.length == 0 ? undefined : result;
161
- }
162
- let mergedInputs = this.requests.slice();
163
- if (registry) {
164
- for (let spec of this.templates) {
165
- for (let entry of registry.get(spec.key)) {
166
- let range = (0, util_internal_range_1.rangeIntersection)(spec.range ?? { from: 0 }, entry.range);
167
- if (!range)
168
- continue;
169
- mergedInputs.push({ range, request: spec.resolve(entry.value) });
170
- }
171
- }
172
- }
173
- let requests = (0, util_internal_range_1.mergeRangeRequests)(mergedInputs, (a, b) => {
174
- return {
175
- includeAllBlocks: a.includeAllBlocks || b.includeAllBlocks,
176
- transactions: concat(a.transactions, b.transactions),
177
- instructions: concat(a.instructions, b.instructions),
178
- logs: concat(a.logs, b.logs),
179
- balances: concat(a.balances, b.balances),
180
- tokenBalances: concat(a.tokenBalances, b.tokenBalances),
181
- rewards: concat(a.rewards, b.rewards),
182
- };
183
- });
184
- let fields = addDefaultFields(this.fields);
185
- let rangeRequests = requests.map(({ range, request }) => {
186
- return {
187
- range,
188
- request: {
189
- fields,
190
- ...request,
191
- },
192
- };
193
- });
194
- return (0, util_internal_range_1.applyRangeBound)(rangeRequests, this.blockRange);
195
- }
196
- build() {
197
- (0, assert_1.default)(this.archive, 'Portal settings not set');
198
- let portal = this.archive instanceof portal_client_1.PortalClient ? this.archive : new portal_client_1.PortalClient(this.archive);
199
- return new SolanaDataSource((reg) => this.getRequests(reg), portal);
200
- }
201
- }
202
- exports.DataSourceBuilder = DataSourceBuilder;
203
- function addDefaultFields(fields) {
204
- return {
205
- block: mergeDefaultFields(model_1.DEFAULT_FIELDS.block, fields?.block),
206
- transaction: mergeDefaultFields(model_1.DEFAULT_FIELDS.transaction, fields?.transaction),
207
- instruction: mergeDefaultFields(model_1.DEFAULT_FIELDS.instruction, fields?.instruction),
208
- log: mergeDefaultFields(model_1.DEFAULT_FIELDS.log, fields?.log),
209
- balance: mergeDefaultFields(model_1.DEFAULT_FIELDS.balance, fields?.balance),
210
- tokenBalance: mergeDefaultFields(model_1.DEFAULT_FIELDS.tokenBalance, fields?.tokenBalance),
211
- reward: mergeDefaultFields(model_1.DEFAULT_FIELDS.reward, fields?.reward),
212
- };
213
- }
214
- function mergeDefaultFields(defaults, selection) {
215
- let result = { ...defaults };
216
- for (let key in selection) {
217
- if (selection[key] != null) {
218
- if (selection[key]) {
219
- result[key] = true;
220
- }
221
- else {
222
- delete result[key];
223
- }
224
- }
225
- }
226
- return result;
227
- }
228
- class SolanaDataSource {
229
- constructor(_resolveRequests, portal) {
230
- this._resolveRequests = _resolveRequests;
231
- this.portal = portal;
232
- }
233
- getHead() {
234
- return this.createArchive().getHead();
235
- }
236
- getFinalizedHead() {
237
- return this.createArchive().getFinalizedHead();
238
- }
239
- getFinalizedStream(opts) {
240
- return this.createArchive().getFinalizedStream(opts);
241
- }
242
- getStream(opts) {
243
- return this.createArchive().getStream(opts);
244
- }
245
- getBlocksCountInRange(range) {
246
- return this.createArchive().getBlocksCountInRange(range);
247
- }
248
- createArchive() {
249
- return new source_1.PortalDataSource(this.portal, this._resolveRequests.bind(this), { squidId: this.getSquidId() });
250
- }
251
- getSquidId() {
252
- return (0, util_internal_processor_tools_1.getOrGenerateSquidId)();
253
- }
254
- }
255
- exports.SolanaDataSource = SolanaDataSource;
256
- __decorate([
257
- util_internal_1.def,
258
- __metadata("design:type", Function),
259
- __metadata("design:paramtypes", []),
260
- __metadata("design:returntype", void 0)
261
- ], SolanaDataSource.prototype, "createArchive", null);
262
- __decorate([
263
- util_internal_1.def,
264
- __metadata("design:type", Function),
265
- __metadata("design:paramtypes", []),
266
- __metadata("design:returntype", String)
267
- ], SolanaDataSource.prototype, "getSquidId", null);
268
3
  //# sourceMappingURL=source.js.map
package/lib/source.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subsquid/solana-stream",
3
- "version": "1.0.0-portal-api.d5861e",
3
+ "version": "1.0.0",
4
4
  "description": "Solana block data streamer",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": "git@github.com:subsquid/squid-sdk.git",
@@ -13,27 +13,29 @@
13
13
  ],
14
14
  "main": "lib/index.js",
15
15
  "dependencies": {
16
- "@subsquid/http-client": "^1.8.0",
17
- "@subsquid/logger": "^1.5.0",
18
- "@subsquid/rpc-client": "^4.14.0",
19
- "@subsquid/portal-client": "^0.4.0",
20
- "@subsquid/solana-normalization": "1.0.0-portal-api.d5861e",
21
- "@subsquid/solana-rpc": "^0.1.3",
22
- "@subsquid/solana-rpc-data": "^0.2.1",
23
- "@subsquid/util-internal": "^3.2.0",
24
- "@subsquid/util-internal-hex": "^1.2.2",
25
- "@subsquid/util-internal-ingest-tools": "^1.1.4",
16
+ "@subsquid/http-client": "^1.8.1",
17
+ "@subsquid/logger": "^1.6.0",
18
+ "@subsquid/rpc-client": "^4.15.0",
19
+ "@subsquid/portal-client": "^0.5.1",
20
+ "@subsquid/solana-normalization": "^1.0.0",
21
+ "@subsquid/solana-rpc": "^1.0.0",
22
+ "@subsquid/solana-rpc-data": "^1.0.0",
23
+ "@subsquid/util-internal": "^3.3.0",
24
+ "@subsquid/util-internal-hex": "^1.2.3",
25
+ "@subsquid/util-internal-ingest-tools": "^1.1.5",
26
26
  "@subsquid/util-internal-processor-tools": "^4.4.0",
27
27
  "@subsquid/util-internal-range": "^0.3.0",
28
- "@subsquid/util-internal-validation": "^0.8.0",
29
- "@subsquid/util-internal-data-source": "0.0.1-portal-api.d5861e",
28
+ "@subsquid/util-internal-validation": "^0.9.0",
29
+ "@subsquid/util-internal-data-source": "^0.0.0",
30
30
  "bs58": "^5.0.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@types/node": "^18.18.14",
34
- "typescript": "~5.5.4"
33
+ "@types/node": "^24.0.0",
34
+ "typescript": "5.5.4",
35
+ "vitest": "4.1.5"
35
36
  },
36
37
  "scripts": {
37
- "build": "rm -rf lib && tsc"
38
+ "build": "rm -rf lib && tsc",
39
+ "test": "vitest --run"
38
40
  }
39
41
  }