@subsquid/solana-stream 1.0.0 → 1.1.1

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 CHANGED
@@ -1,13 +1,13 @@
1
1
  import { PortalClient, PortalClientOptions } from '@subsquid/portal-client';
2
2
  import { Range } from '@subsquid/util-internal-range';
3
- import { DEFAULT_FIELDS, FieldSelection } from './data/model';
3
+ import { FieldSelection } from './data/model';
4
4
  import { BalanceRequest, InstructionRequest, LogRequest, RewardRequest, TokenBalanceRequest, TransactionRequest } from './data/request';
5
5
  import { type Query, QueryBuilder } from './query';
6
6
  import type { SolanaDataSource } from './source';
7
7
  interface BlockRange {
8
8
  range?: Range;
9
9
  }
10
- export declare class DataSourceBuilder<F extends FieldSelection = typeof DEFAULT_FIELDS> {
10
+ export declare class DataSourceBuilder<F extends FieldSelection = {}> {
11
11
  private requests;
12
12
  private fields?;
13
13
  private blockRange?;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAA;AAEzE,OAAO,EAAsC,KAAK,EAAiC,MAAM,+BAA+B,CAAA;AAExH,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,cAAc,CAAA;AAC3D,OAAO,EACH,cAAc,EAEd,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAC,KAAK,KAAK,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAA;AAE9C,UAAU,UAAU;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,OAAO,cAAc;IAC3E,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAO;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAoC;IAEnD;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,YAAY,GAAG,IAAI;IASpE;;;;OAIG;IACH,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAKlC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAKpE;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI;IAK3C;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAOrC;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,GAAG,IAAI;IAQ9D;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,GAAG,IAAI;IAQ9D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAQ9C;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI;IAQtD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,GAAG,IAAI;IAQhE;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI;IAQpD,OAAO,CAAC,WAAW;IA2BnB,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAQ/B"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAA;AAEzE,OAAO,EAAsC,KAAK,EAAiC,MAAM,+BAA+B,CAAA;AAExH,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAA;AAC3C,OAAO,EACH,cAAc,EAEd,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAC,KAAK,KAAK,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAA;AAE9C,UAAU,UAAU;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,EAAE;IACxD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAO;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAoC;IAEnD;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,YAAY,GAAG,IAAI;IASpE;;;;OAIG;IACH,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAKlC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAKpE;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI;IAK3C;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAOrC;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,GAAG,IAAI;IAQ9D;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,GAAG,IAAI;IAQ9D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAQ9C;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI;IAQtD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,GAAG,IAAI;IAQhE;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI;IAQpD,OAAO,CAAC,WAAW;IA2BnB,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAQ/B"}
package/lib/builder.js CHANGED
@@ -8,7 +8,6 @@ const portal_client_1 = require("@subsquid/portal-client");
8
8
  const util_internal_processor_tools_1 = require("@subsquid/util-internal-processor-tools");
9
9
  const util_internal_range_1 = require("@subsquid/util-internal-range");
10
10
  const assert_1 = __importDefault(require("assert"));
11
- const model_1 = require("./data/model");
12
11
  const source_1 = require("./portal/source");
13
12
  const query_1 = require("./query");
14
13
  class DataSourceBuilder {
@@ -173,7 +172,7 @@ class DataSourceBuilder {
173
172
  build() {
174
173
  (0, assert_1.default)(this.portal, 'Portal settings not set');
175
174
  let portal = this.portal instanceof portal_client_1.PortalClient ? this.portal : new portal_client_1.PortalClient(this.portal);
176
- return new source_1.PortalSolanaDataSource(portal, this.fields ?? model_1.DEFAULT_FIELDS, () => this.getRequests(), {
175
+ return new source_1.PortalSolanaDataSource(portal, (this.fields ?? {}), () => this.getRequests(), {
177
176
  squidId: (0, util_internal_processor_tools_1.getOrGenerateSquidId)(),
178
177
  });
179
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
@@ -19,49 +19,6 @@ export interface FieldSelection {
19
19
  reward?: Selector<Exclude<keyof data.Reward, RewardRequiredFields>>;
20
20
  }
21
21
  export type FieldKey = keyof FieldSelection;
22
- /**
23
- * Default field set applied when {@link DataSourceBuilder#setFields} is not
24
- * called. `as const` preserves the literal `true` values so they feed through
25
- * {@link GetFields} correctly.
26
- */
27
- export declare const DEFAULT_FIELDS: {
28
- readonly block: {
29
- readonly timestamp: true;
30
- };
31
- readonly transaction: {
32
- readonly signatures: true;
33
- readonly err: true;
34
- };
35
- readonly instruction: {
36
- readonly programId: true;
37
- readonly accounts: true;
38
- readonly data: true;
39
- readonly isCommitted: true;
40
- };
41
- readonly log: {
42
- readonly programId: true;
43
- readonly kind: true;
44
- readonly message: true;
45
- };
46
- readonly balance: {
47
- readonly pre: true;
48
- readonly post: true;
49
- };
50
- readonly tokenBalance: {
51
- readonly preMint: true;
52
- readonly preDecimals: true;
53
- readonly preOwner: true;
54
- readonly preAmount: true;
55
- readonly postMint: true;
56
- readonly postDecimals: true;
57
- readonly postOwner: true;
58
- readonly postAmount: true;
59
- };
60
- readonly reward: {
61
- readonly lamports: true;
62
- readonly rewardType: true;
63
- };
64
- };
65
22
  /**
66
23
  * A concrete item type derived from a raw data shape, the always-present
67
24
  * required keys, and a per-section field selection.
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":"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"}
package/lib/data/model.js CHANGED
@@ -1,47 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_FIELDS = void 0;
4
- /**
5
- * Default field set applied when {@link DataSourceBuilder#setFields} is not
6
- * called. `as const` preserves the literal `true` values so they feed through
7
- * {@link GetFields} correctly.
8
- */
9
- exports.DEFAULT_FIELDS = {
10
- block: {
11
- timestamp: true,
12
- },
13
- transaction: {
14
- signatures: true,
15
- err: true,
16
- },
17
- instruction: {
18
- programId: true,
19
- accounts: true,
20
- data: true,
21
- isCommitted: true,
22
- },
23
- log: {
24
- programId: true,
25
- kind: true,
26
- message: true,
27
- },
28
- balance: {
29
- pre: true,
30
- post: true,
31
- },
32
- tokenBalance: {
33
- preMint: true,
34
- preDecimals: true,
35
- preOwner: true,
36
- preAmount: true,
37
- postMint: true,
38
- postDecimals: true,
39
- postOwner: true,
40
- postAmount: true,
41
- },
42
- reward: {
43
- lamports: true,
44
- rewardType: true,
45
- },
46
- };
47
3
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":";;;AAkCA;;;;GAIG;AACU,QAAA,cAAc,GAAG;IAC1B,KAAK,EAAE;QACH,SAAS,EAAE,IAAI;KAClB;IACD,WAAW,EAAE;QACT,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,IAAI;KACZ;IACD,WAAW,EAAE;QACT,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;KACpB;IACD,GAAG,EAAE;QACD,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KAChB;IACD,OAAO,EAAE;QACL,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;KACb;IACD,YAAY,EAAE;QACV,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACJ,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;KACnB;CAC8B,CAAA"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subsquid/solana-stream",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
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",
@@ -15,14 +15,11 @@
15
15
  "dependencies": {
16
16
  "@subsquid/http-client": "^1.8.1",
17
17
  "@subsquid/logger": "^1.6.0",
18
- "@subsquid/rpc-client": "^4.15.0",
19
18
  "@subsquid/portal-client": "^0.5.1",
20
19
  "@subsquid/solana-normalization": "^1.0.0",
21
- "@subsquid/solana-rpc": "^1.0.0",
22
- "@subsquid/solana-rpc-data": "^1.0.0",
23
20
  "@subsquid/util-internal": "^3.3.0",
24
21
  "@subsquid/util-internal-hex": "^1.2.3",
25
- "@subsquid/util-internal-ingest-tools": "^1.1.5",
22
+ "@subsquid/util-internal-ingest-tools": "^1.2.0",
26
23
  "@subsquid/util-internal-processor-tools": "^4.4.0",
27
24
  "@subsquid/util-internal-range": "^0.3.0",
28
25
  "@subsquid/util-internal-validation": "^0.9.0",
package/src/builder.ts CHANGED
@@ -2,7 +2,7 @@ import {PortalClient, PortalClientOptions} from '@subsquid/portal-client'
2
2
  import {getOrGenerateSquidId} from '@subsquid/util-internal-processor-tools'
3
3
  import {applyRangeBound, mergeRangeRequests, Range, RangeRequest, RangeRequestList} from '@subsquid/util-internal-range'
4
4
  import assert from 'assert'
5
- import {DEFAULT_FIELDS, FieldSelection} from './data/model'
5
+ import {FieldSelection} from './data/model'
6
6
  import {
7
7
  BalanceRequest,
8
8
  DataRequest,
@@ -20,7 +20,7 @@ interface BlockRange {
20
20
  range?: Range
21
21
  }
22
22
 
23
- export class DataSourceBuilder<F extends FieldSelection = typeof DEFAULT_FIELDS> {
23
+ export class DataSourceBuilder<F extends FieldSelection = {}> {
24
24
  private requests: RangeRequest<DataRequest>[] = []
25
25
  private fields?: FieldSelection
26
26
  private blockRange?: Range
@@ -198,7 +198,7 @@ export class DataSourceBuilder<F extends FieldSelection = typeof DEFAULT_FIELDS>
198
198
  assert(this.portal, 'Portal settings not set')
199
199
 
200
200
  let portal = this.portal instanceof PortalClient ? this.portal : new PortalClient(this.portal)
201
- return new PortalSolanaDataSource<F>(portal, this.fields ?? DEFAULT_FIELDS, () => this.getRequests(), {
201
+ return new PortalSolanaDataSource<F>(portal, (this.fields ?? {}) as F, () => this.getRequests(), {
202
202
  squidId: getOrGenerateSquidId(),
203
203
  })
204
204
  }
package/src/data/model.ts CHANGED
@@ -32,50 +32,6 @@ export interface FieldSelection {
32
32
 
33
33
  export type FieldKey = keyof FieldSelection
34
34
 
35
- /**
36
- * Default field set applied when {@link DataSourceBuilder#setFields} is not
37
- * called. `as const` preserves the literal `true` values so they feed through
38
- * {@link GetFields} correctly.
39
- */
40
- export const DEFAULT_FIELDS = {
41
- block: {
42
- timestamp: true,
43
- },
44
- transaction: {
45
- signatures: true,
46
- err: true,
47
- },
48
- instruction: {
49
- programId: true,
50
- accounts: true,
51
- data: true,
52
- isCommitted: true,
53
- },
54
- log: {
55
- programId: true,
56
- kind: true,
57
- message: true,
58
- },
59
- balance: {
60
- pre: true,
61
- post: true,
62
- },
63
- tokenBalance: {
64
- preMint: true,
65
- preDecimals: true,
66
- preOwner: true,
67
- preAmount: true,
68
- postMint: true,
69
- postDecimals: true,
70
- postOwner: true,
71
- postAmount: true,
72
- },
73
- reward: {
74
- lamports: true,
75
- rewardType: true,
76
- },
77
- } as const satisfies FieldSelection
78
-
79
35
  /**
80
36
  * A concrete item type derived from a raw data shape, the always-present
81
37
  * required keys, and a per-section field selection.