@subsquid/solana-stream 1.0.0-portal-api.19316d → 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
package/lib/builder.d.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { PortalClient, PortalClientOptions } from '@subsquid/portal-client';
|
|
2
|
+
import { Range } from '@subsquid/util-internal-range';
|
|
3
|
+
import { DEFAULT_FIELDS, FieldSelection } from './data/model';
|
|
4
|
+
import { BalanceRequest, InstructionRequest, LogRequest, RewardRequest, TokenBalanceRequest, TransactionRequest } from './data/request';
|
|
5
|
+
import { type Query, QueryBuilder } from './query';
|
|
6
|
+
import type { SolanaDataSource } from './source';
|
|
7
|
+
interface BlockRange {
|
|
8
|
+
range?: Range;
|
|
9
|
+
}
|
|
10
|
+
export declare class DataSourceBuilder<F extends FieldSelection = typeof DEFAULT_FIELDS> {
|
|
11
|
+
private requests;
|
|
12
|
+
private fields?;
|
|
13
|
+
private blockRange?;
|
|
14
|
+
private portal?;
|
|
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
|
+
/**
|
|
36
|
+
* Add a portal query - a set of item filters that share a block range.
|
|
37
|
+
*
|
|
38
|
+
* Accepts either a prebuilt {@link Query} object or a
|
|
39
|
+
* {@link QueryBuilder}, in which case {@link QueryBuilder#build} is
|
|
40
|
+
* invoked automatically.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* source.addQuery(new QueryBuilder()
|
|
45
|
+
* .setRange({from: 250_000_000})
|
|
46
|
+
* .addInstruction({where: {programId: [PROGRAM_ID]}, include: {logs: true}})
|
|
47
|
+
* .addTransaction({where: {feePayer: [FEE_PAYER]}})
|
|
48
|
+
* )
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
addQuery(query: Query | QueryBuilder): this;
|
|
52
|
+
/**
|
|
53
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
54
|
+
* only sets {@link QueryBuilder#includeAllBlocks} (and optionally a
|
|
55
|
+
* range).
|
|
56
|
+
*/
|
|
57
|
+
includeAllBlocks(range?: Range): this;
|
|
58
|
+
/**
|
|
59
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
60
|
+
* contains a single transaction filter.
|
|
61
|
+
*/
|
|
62
|
+
addTransaction(options: TransactionRequest & BlockRange): this;
|
|
63
|
+
/**
|
|
64
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
65
|
+
* contains a single instruction filter.
|
|
66
|
+
*/
|
|
67
|
+
addInstruction(options: InstructionRequest & BlockRange): this;
|
|
68
|
+
/**
|
|
69
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
70
|
+
* contains a single log filter.
|
|
71
|
+
*/
|
|
72
|
+
addLog(options: LogRequest & BlockRange): this;
|
|
73
|
+
/**
|
|
74
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
75
|
+
* contains a single balance filter.
|
|
76
|
+
*/
|
|
77
|
+
addBalance(options: BalanceRequest & BlockRange): this;
|
|
78
|
+
/**
|
|
79
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
80
|
+
* contains a single token balance filter.
|
|
81
|
+
*/
|
|
82
|
+
addTokenBalance(options: TokenBalanceRequest & BlockRange): this;
|
|
83
|
+
/**
|
|
84
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
85
|
+
* contains a single reward filter.
|
|
86
|
+
*/
|
|
87
|
+
addReward(options: RewardRequest & BlockRange): this;
|
|
88
|
+
private getRequests;
|
|
89
|
+
build(): SolanaDataSource<F>;
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +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"}
|
package/lib/builder.js
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DataSourceBuilder = void 0;
|
|
7
|
+
const portal_client_1 = require("@subsquid/portal-client");
|
|
8
|
+
const util_internal_processor_tools_1 = require("@subsquid/util-internal-processor-tools");
|
|
9
|
+
const util_internal_range_1 = require("@subsquid/util-internal-range");
|
|
10
|
+
const assert_1 = __importDefault(require("assert"));
|
|
11
|
+
const model_1 = require("./data/model");
|
|
12
|
+
const source_1 = require("./portal/source");
|
|
13
|
+
const query_1 = require("./query");
|
|
14
|
+
class DataSourceBuilder {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.requests = [];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Set SQD Network Portal endpoint.
|
|
20
|
+
*
|
|
21
|
+
* SQD Network allows to get data from blocks up to
|
|
22
|
+
* infinite times faster and more efficient than via regular RPC.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* source.setPortal('https://portal.sqd.dev/datasets/solana-mainnet')
|
|
26
|
+
*/
|
|
27
|
+
setPortal(portal) {
|
|
28
|
+
if (typeof portal == 'string') {
|
|
29
|
+
this.portal = { url: portal };
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.portal = portal;
|
|
33
|
+
}
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Limits the range of blocks to fetch.
|
|
38
|
+
*
|
|
39
|
+
* Note, that block heights should be used instead of slots.
|
|
40
|
+
*/
|
|
41
|
+
setBlockRange(range) {
|
|
42
|
+
this.blockRange = range;
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Configure a set of fetched fields
|
|
47
|
+
*/
|
|
48
|
+
setFields(fields) {
|
|
49
|
+
this.fields = fields;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Add a portal query - a set of item filters that share a block range.
|
|
54
|
+
*
|
|
55
|
+
* Accepts either a prebuilt {@link Query} object or a
|
|
56
|
+
* {@link QueryBuilder}, in which case {@link QueryBuilder#build} is
|
|
57
|
+
* invoked automatically.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* source.addQuery(new QueryBuilder()
|
|
62
|
+
* .setRange({from: 250_000_000})
|
|
63
|
+
* .addInstruction({where: {programId: [PROGRAM_ID]}, include: {logs: true}})
|
|
64
|
+
* .addTransaction({where: {feePayer: [FEE_PAYER]}})
|
|
65
|
+
* )
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
addQuery(query) {
|
|
69
|
+
this.requests.push(query instanceof query_1.QueryBuilder ? query.build() : query);
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
74
|
+
* only sets {@link QueryBuilder#includeAllBlocks} (and optionally a
|
|
75
|
+
* range).
|
|
76
|
+
*/
|
|
77
|
+
includeAllBlocks(range) {
|
|
78
|
+
return this.addQuery({
|
|
79
|
+
range: range ?? { from: 0 },
|
|
80
|
+
request: { includeAllBlocks: true },
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
85
|
+
* contains a single transaction filter.
|
|
86
|
+
*/
|
|
87
|
+
addTransaction(options) {
|
|
88
|
+
let { range, ...req } = options;
|
|
89
|
+
return this.addQuery({
|
|
90
|
+
range: range ?? { from: 0 },
|
|
91
|
+
request: { transactions: [req] },
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
96
|
+
* contains a single instruction filter.
|
|
97
|
+
*/
|
|
98
|
+
addInstruction(options) {
|
|
99
|
+
let { range, ...req } = options;
|
|
100
|
+
return this.addQuery({
|
|
101
|
+
range: range ?? { from: 0 },
|
|
102
|
+
request: { instructions: [req] },
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
107
|
+
* contains a single log filter.
|
|
108
|
+
*/
|
|
109
|
+
addLog(options) {
|
|
110
|
+
let { range, ...req } = options;
|
|
111
|
+
return this.addQuery({
|
|
112
|
+
range: range ?? { from: 0 },
|
|
113
|
+
request: { logs: [req] },
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
118
|
+
* contains a single balance filter.
|
|
119
|
+
*/
|
|
120
|
+
addBalance(options) {
|
|
121
|
+
let { range, ...req } = options;
|
|
122
|
+
return this.addQuery({
|
|
123
|
+
range: range ?? { from: 0 },
|
|
124
|
+
request: { balances: [req] },
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
129
|
+
* contains a single token balance filter.
|
|
130
|
+
*/
|
|
131
|
+
addTokenBalance(options) {
|
|
132
|
+
let { range, ...req } = options;
|
|
133
|
+
return this.addQuery({
|
|
134
|
+
range: range ?? { from: 0 },
|
|
135
|
+
request: { tokenBalances: [req] },
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Shorthand for {@link DataSourceBuilder#addQuery} with a query that
|
|
140
|
+
* contains a single reward filter.
|
|
141
|
+
*/
|
|
142
|
+
addReward(options) {
|
|
143
|
+
let { range, ...req } = options;
|
|
144
|
+
return this.addQuery({
|
|
145
|
+
range: range ?? { from: 0 },
|
|
146
|
+
request: { rewards: [req] },
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
getRequests() {
|
|
150
|
+
function concat(a, b) {
|
|
151
|
+
let result = [];
|
|
152
|
+
if (a) {
|
|
153
|
+
result.push(...a);
|
|
154
|
+
}
|
|
155
|
+
if (b) {
|
|
156
|
+
result.push(...b);
|
|
157
|
+
}
|
|
158
|
+
return result.length == 0 ? undefined : result;
|
|
159
|
+
}
|
|
160
|
+
let requests = (0, util_internal_range_1.mergeRangeRequests)(this.requests, (a, b) => {
|
|
161
|
+
return {
|
|
162
|
+
includeAllBlocks: a.includeAllBlocks || b.includeAllBlocks,
|
|
163
|
+
transactions: concat(a.transactions, b.transactions),
|
|
164
|
+
instructions: concat(a.instructions, b.instructions),
|
|
165
|
+
logs: concat(a.logs, b.logs),
|
|
166
|
+
balances: concat(a.balances, b.balances),
|
|
167
|
+
tokenBalances: concat(a.tokenBalances, b.tokenBalances),
|
|
168
|
+
rewards: concat(a.rewards, b.rewards),
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
return (0, util_internal_range_1.applyRangeBound)(requests, this.blockRange);
|
|
172
|
+
}
|
|
173
|
+
build() {
|
|
174
|
+
(0, assert_1.default)(this.portal, 'Portal settings not set');
|
|
175
|
+
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(), {
|
|
177
|
+
squidId: (0, util_internal_processor_tools_1.getOrGenerateSquidId)(),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.DataSourceBuilder = DataSourceBuilder;
|
|
182
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/lib/data/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/data/fields.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/data/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAA;AAGpC,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUpF"}
|
package/lib/data/fields.js
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.project = project;
|
|
4
|
-
function merge(def, requested = {}) {
|
|
5
|
-
let fields = {};
|
|
6
|
-
for (let key in def) {
|
|
7
|
-
if (requested[key] !== false) {
|
|
8
|
-
fields[key] = def[key];
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
for (let key in requested) {
|
|
12
|
-
if (requested[key]) {
|
|
13
|
-
fields[key] = true;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return fields;
|
|
17
|
-
}
|
|
18
4
|
function project(fields, obj) {
|
|
19
5
|
if (fields == null)
|
|
20
6
|
return {};
|
package/lib/data/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/data/fields.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/data/fields.ts"],"names":[],"mappings":";;AAGA,0BAUC;AAVD,SAAgB,OAAO,CAAI,MAAqC,EAAE,GAAM;IACpE,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IAC7B,IAAI,MAAM,GAAe,EAAE,CAAA;IAC3B,IAAI,GAAY,CAAA;IAChB,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC"}
|
package/lib/data/model.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type * as data from '@subsquid/solana-normalization';
|
|
2
2
|
import type { BalanceRequiredFields, BlockRequiredFields, InstructionRequiredFields, LogRequiredFields, RewardRequiredFields, TokenBalanceRequiredFields, TransactionRequiredFields } from './partial';
|
|
3
3
|
import type { GetFields, Select, Selector, Simplify } from './type-util';
|
|
4
|
-
/**
|
|
5
|
-
* Hex encoded binary string
|
|
6
|
-
*/
|
|
4
|
+
/** Hex encoded binary string. */
|
|
7
5
|
export type Bytes = string;
|
|
6
|
+
/** Base58 encoded binary string. */
|
|
7
|
+
export type Base58Bytes = string;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* User-facing field selection. Each section is an optional `Selector`
|
|
10
|
+
* over that section's non-required fields.
|
|
10
11
|
*/
|
|
11
|
-
export type Base58Bytes = string;
|
|
12
12
|
export interface FieldSelection {
|
|
13
13
|
block?: Selector<Exclude<keyof data.BlockHeader, BlockRequiredFields>>;
|
|
14
14
|
transaction?: Selector<Exclude<keyof data.Transaction, TransactionRequiredFields>>;
|
|
@@ -18,6 +18,12 @@ export interface FieldSelection {
|
|
|
18
18
|
tokenBalance?: Selector<Exclude<keyof data.TokenBalance, TokenBalanceRequiredFields>>;
|
|
19
19
|
reward?: Selector<Exclude<keyof data.Reward, RewardRequiredFields>>;
|
|
20
20
|
}
|
|
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
|
+
*/
|
|
21
27
|
export declare const DEFAULT_FIELDS: {
|
|
22
28
|
readonly block: {
|
|
23
29
|
readonly timestamp: true;
|
|
@@ -56,7 +62,11 @@ export declare const DEFAULT_FIELDS: {
|
|
|
56
62
|
readonly rewardType: true;
|
|
57
63
|
};
|
|
58
64
|
};
|
|
59
|
-
|
|
65
|
+
/**
|
|
66
|
+
* A concrete item type derived from a raw data shape, the always-present
|
|
67
|
+
* required keys, and a per-section field selection.
|
|
68
|
+
*/
|
|
69
|
+
type Item<Data, Required extends keyof Data, F extends FieldSelection, K extends FieldKey> = Simplify<Pick<Data, Required> & Select<Data, GetFields<F, K>>>;
|
|
60
70
|
export type BlockHeader<F extends FieldSelection = {}> = Item<data.BlockHeader, BlockRequiredFields, F, 'block'>;
|
|
61
71
|
export type Transaction<F extends FieldSelection = {}> = Item<data.Transaction, TransactionRequiredFields, F, 'transaction'>;
|
|
62
72
|
export type Instruction<F extends FieldSelection = {}> = Item<data.Instruction, InstructionRequiredFields, F, 'instruction'>;
|
package/lib/data/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,gCAAgC,CAAA;AAC3D,OAAO,KAAK,EACR,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EAC5B,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAEtE
|
|
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,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
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
|
+
*/
|
|
4
9
|
exports.DEFAULT_FIELDS = {
|
|
5
10
|
block: {
|
|
6
11
|
timestamp: true,
|
package/lib/data/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":";;;
|
|
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"}
|
package/lib/data/request.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { LogMessage } from '@subsquid/solana-normalization';
|
|
2
|
-
import { Base58Bytes
|
|
3
|
-
export interface DataRequest
|
|
4
|
-
fields?: F;
|
|
2
|
+
import { Base58Bytes } from './model';
|
|
3
|
+
export interface DataRequest {
|
|
5
4
|
includeAllBlocks?: boolean;
|
|
6
5
|
transactions?: TransactionRequest[];
|
|
7
6
|
instructions?: InstructionRequest[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/data/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/data/request.ts"],"names":[],"mappings":"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"}
|
package/lib/data/type-util.d.ts
CHANGED
|
@@ -1,20 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flattens an intersection type into a single object shape for nicer IDE hover
|
|
3
|
+
* output. The trailing `& {}` is a no-op at the type level but forces the
|
|
4
|
+
* compiler to normalize the representation.
|
|
5
|
+
*/
|
|
1
6
|
export type Simplify<T> = {
|
|
2
7
|
[K in keyof T]: T[K];
|
|
3
8
|
} & {};
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
type
|
|
9
|
-
type
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Extracts the string keys of `F` whose values include the literal `true`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* type Keys = TrueFields<{a: true; b: false; c?: boolean}>
|
|
14
|
+
* // "a" | "c" -- `c`'s type includes `true` through `boolean`
|
|
15
|
+
*/
|
|
16
|
+
export type TrueFields<F> = {
|
|
17
|
+
[K in keyof F]-?: true extends F[K] ? K : never;
|
|
18
|
+
}[keyof F];
|
|
19
|
+
/**
|
|
20
|
+
* Picks the set of truthy field keys for a given section `K` of a
|
|
21
|
+
* `FieldSelection`-shaped type `F`.
|
|
22
|
+
*/
|
|
23
|
+
export type GetFields<F, K extends keyof F> = TrueFields<F[K]>;
|
|
24
|
+
/**
|
|
25
|
+
* Picks `Fields` from `T` while distributing over unions, so members of a
|
|
26
|
+
* discriminated union are narrowed independently.
|
|
27
|
+
*/
|
|
12
28
|
export type Select<T, Fields> = T extends any ? Simplify<Pick<T, Extract<keyof T, Fields>>> : never;
|
|
13
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Optional boolean flag map over a finite set of string keys.
|
|
31
|
+
*
|
|
32
|
+
* Shape: `{[K in Fields]?: boolean}` - equivalent to `Partial<Record<Fields, boolean>>`.
|
|
33
|
+
*/
|
|
34
|
+
export type Selector<Fields extends PropertyKey> = {
|
|
14
35
|
[P in Fields]?: boolean;
|
|
15
36
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Produces a type with `Required` keys kept as-is and all other keys made
|
|
39
|
+
* optional.
|
|
40
|
+
*/
|
|
41
|
+
export type MakePartial<T, Required extends keyof T> = Simplify<Pick<T, Required> & Partial<Omit<T, Required>>>;
|
|
20
42
|
//# sourceMappingURL=type-util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-util.d.ts","sourceRoot":"","sources":["../../src/data/type-util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"type-util.d.ts","sourceRoot":"","sources":["../../src/data/type-util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAC,GAAG,EAAE,CAAA;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAClD,CAAC,MAAM,CAAC,CAAC,CAAA;AAEV;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9D;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAEnG;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,WAAW,IAAI;KAC9C,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO;CAC1B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -16,5 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./data/model"), exports);
|
|
18
18
|
__exportStar(require("./instruction"), exports);
|
|
19
|
+
__exportStar(require("./builder"), exports);
|
|
20
|
+
__exportStar(require("./query"), exports);
|
|
19
21
|
__exportStar(require("./source"), exports);
|
|
22
|
+
__exportStar(require("./portal/source"), exports);
|
|
20
23
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,gDAA6B;AAC7B,2CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,gDAA6B;AAC7B,4CAAyB;AACzB,0CAAuB;AACvB,2CAAwB;AACxB,kDAA+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.test.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"merge.test.d.ts","sourceRoot":"","sources":["../../src/portal/merge.test.ts"],"names":[],"mappings":""}
|