@subsquid/solana-stream 0.2.0-2-0.a5e4b7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/lib/{schema.d.ts → archive/schema.d.ts} +22 -32
- package/lib/archive/schema.d.ts.map +1 -0
- package/lib/{schema.js → archive/schema.js} +39 -55
- package/lib/archive/schema.js.map +1 -0
- package/lib/archive/source.d.ts +15 -0
- package/lib/archive/source.d.ts.map +1 -0
- package/lib/archive/source.js +98 -0
- package/lib/archive/source.js.map +1 -0
- package/lib/data/fields.d.ts +8 -0
- package/lib/data/fields.d.ts.map +1 -0
- package/lib/data/fields.js +46 -0
- package/lib/data/fields.js.map +1 -0
- package/lib/data/model.d.ts +79 -0
- package/lib/data/model.d.ts.map +1 -0
- package/lib/data/model.js +44 -0
- package/lib/data/model.js.map +1 -0
- package/lib/data/partial.d.ts +26 -0
- package/lib/data/partial.d.ts.map +1 -0
- package/lib/data/partial.js +3 -0
- package/lib/data/partial.js.map +1 -0
- package/lib/data/request.d.ts +108 -0
- package/lib/data/request.d.ts.map +1 -0
- package/lib/data/request.js +3 -0
- package/lib/data/request.js.map +1 -0
- package/lib/data/type-util.d.ts +20 -0
- package/lib/data/type-util.d.ts.map +1 -0
- package/lib/data/type-util.js +3 -0
- package/lib/data/type-util.js.map +1 -0
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/instruction.d.ts +3 -2
- package/lib/instruction.d.ts.map +1 -1
- package/lib/instruction.js +2 -2
- package/lib/instruction.js.map +1 -1
- package/lib/rpc/client.d.ts +17 -0
- package/lib/rpc/client.d.ts.map +1 -0
- package/lib/rpc/client.js +15 -0
- package/lib/rpc/client.js.map +1 -0
- package/lib/rpc/filter.d.ts +4 -0
- package/lib/rpc/filter.d.ts.map +1 -0
- package/lib/rpc/filter.js +357 -0
- package/lib/rpc/filter.js.map +1 -0
- package/lib/rpc/mapping.d.ts +5 -0
- package/lib/rpc/mapping.d.ts.map +1 -0
- package/lib/rpc/mapping.js +12 -0
- package/lib/rpc/mapping.js.map +1 -0
- package/lib/rpc/project.d.ts +5 -0
- package/lib/rpc/project.d.ts.map +1 -0
- package/lib/rpc/project.js +60 -0
- package/lib/rpc/project.js.map +1 -0
- package/lib/rpc/source.d.ts +15 -0
- package/lib/rpc/source.d.ts.map +1 -0
- package/lib/rpc/source.js +82 -0
- package/lib/rpc/source.js.map +1 -0
- package/lib/source.d.ts +101 -17
- package/lib/source.d.ts.map +1 -1
- package/lib/source.js +269 -70
- package/lib/source.js.map +1 -1
- package/package.json +15 -9
- package/src/{schema.ts → archive/schema.ts} +35 -54
- package/src/archive/source.ts +105 -0
- package/src/data/fields.ts +50 -0
- package/src/data/model.ts +154 -0
- package/src/data/partial.ts +31 -0
- package/src/data/request.ts +142 -0
- package/src/data/type-util.ts +42 -0
- package/src/index.ts +3 -3
- package/src/instruction.ts +9 -4
- package/src/rpc/client.ts +26 -0
- package/src/rpc/filter.ts +368 -0
- package/src/rpc/mapping.ts +13 -0
- package/src/rpc/project.ts +61 -0
- package/src/rpc/source.ts +90 -0
- package/src/source.ts +368 -92
- package/lib/objects/index.d.ts +0 -4
- package/lib/objects/index.d.ts.map +0 -1
- package/lib/objects/index.js +0 -23
- package/lib/objects/index.js.map +0 -1
- package/lib/objects/items.d.ts +0 -83
- package/lib/objects/items.d.ts.map +0 -1
- package/lib/objects/items.js +0 -260
- package/lib/objects/items.js.map +0 -1
- package/lib/objects/relations.d.ts +0 -3
- package/lib/objects/relations.d.ts.map +0 -1
- package/lib/objects/relations.js +0 -82
- package/lib/objects/relations.js.map +0 -1
- package/lib/objects/types.d.ts +0 -76
- package/lib/objects/types.d.ts.map +0 -1
- package/lib/objects/types.js +0 -29
- package/lib/objects/types.js.map +0 -1
- package/lib/query.d.ts +0 -46
- package/lib/query.d.ts.map +0 -1
- package/lib/query.js +0 -96
- package/lib/query.js.map +0 -1
- package/lib/schema.d.ts.map +0 -1
- package/lib/schema.js.map +0 -1
- package/src/objects/index.ts +0 -3
- package/src/objects/items.ts +0 -296
- package/src/objects/relations.ts +0 -90
- package/src/objects/types.ts +0 -88
- package/src/query.ts +0 -149
package/README.md
ADDED
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare
|
|
3
|
-
export declare const AddressTableLookup: import("@subsquid/util-internal-validation").Validator<{
|
|
4
|
-
accountKey: string;
|
|
5
|
-
readonlyIndexes: number[];
|
|
6
|
-
writableIndexes: number[];
|
|
7
|
-
}, {
|
|
8
|
-
accountKey: string;
|
|
9
|
-
readonlyIndexes: number[];
|
|
10
|
-
writableIndexes: number[];
|
|
11
|
-
}>;
|
|
12
|
-
export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/query/solana").FieldSelection) => import("@subsquid/util-internal-validation").Validator<{
|
|
1
|
+
import { FieldSelection } from '../data/model';
|
|
2
|
+
export declare const getDataSchema: (obj: FieldSelection) => import("@subsquid/util-internal-validation").Validator<{
|
|
13
3
|
header: {
|
|
14
4
|
number: number;
|
|
15
5
|
hash: string;
|
|
16
6
|
parentHash: string;
|
|
17
|
-
|
|
7
|
+
slot?: number | undefined;
|
|
18
8
|
parentSlot?: number | undefined;
|
|
19
9
|
timestamp?: number | undefined;
|
|
20
10
|
};
|
|
21
|
-
transactions
|
|
22
|
-
transactionIndex
|
|
11
|
+
transactions?: {
|
|
12
|
+
transactionIndex: number;
|
|
23
13
|
version?: number | "legacy" | undefined;
|
|
24
14
|
accountKeys?: string[] | undefined;
|
|
25
15
|
addressTableLookups?: {
|
|
@@ -40,10 +30,10 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
40
30
|
writable: string[];
|
|
41
31
|
} | undefined;
|
|
42
32
|
hasDroppedLogMessages?: boolean | undefined;
|
|
43
|
-
}[];
|
|
33
|
+
}[] | undefined;
|
|
44
34
|
instructions?: {
|
|
45
|
-
transactionIndex
|
|
46
|
-
instructionAddress
|
|
35
|
+
transactionIndex: number;
|
|
36
|
+
instructionAddress: number[];
|
|
47
37
|
programId?: string | undefined;
|
|
48
38
|
accounts?: string[] | undefined;
|
|
49
39
|
data?: string | undefined;
|
|
@@ -65,14 +55,14 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
65
55
|
message?: string | undefined;
|
|
66
56
|
}[] | undefined;
|
|
67
57
|
balances?: {
|
|
68
|
-
transactionIndex
|
|
69
|
-
account
|
|
58
|
+
transactionIndex: number;
|
|
59
|
+
account: string;
|
|
70
60
|
pre?: bigint | undefined;
|
|
71
61
|
post?: bigint | undefined;
|
|
72
62
|
}[] | undefined;
|
|
73
63
|
tokenBalances?: {
|
|
74
|
-
transactionIndex
|
|
75
|
-
account
|
|
64
|
+
transactionIndex: number;
|
|
65
|
+
account: string;
|
|
76
66
|
preProgramId?: string | undefined;
|
|
77
67
|
postProgramId?: string | undefined;
|
|
78
68
|
preMint?: string | undefined;
|
|
@@ -85,7 +75,7 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
85
75
|
postAmount?: bigint | undefined;
|
|
86
76
|
}[] | undefined;
|
|
87
77
|
rewards?: {
|
|
88
|
-
pubkey
|
|
78
|
+
pubkey: string;
|
|
89
79
|
lamports?: bigint | undefined;
|
|
90
80
|
postBalance?: bigint | undefined;
|
|
91
81
|
rewardType?: string | undefined;
|
|
@@ -96,12 +86,12 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
96
86
|
number: number;
|
|
97
87
|
hash: string;
|
|
98
88
|
parentHash: string;
|
|
99
|
-
|
|
89
|
+
slot?: number | undefined;
|
|
100
90
|
parentSlot?: number | undefined;
|
|
101
91
|
timestamp?: number | undefined;
|
|
102
92
|
};
|
|
103
93
|
transactions?: {
|
|
104
|
-
transactionIndex
|
|
94
|
+
transactionIndex: number;
|
|
105
95
|
version?: number | "legacy" | undefined;
|
|
106
96
|
accountKeys?: string[] | undefined;
|
|
107
97
|
addressTableLookups?: {
|
|
@@ -124,8 +114,8 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
124
114
|
hasDroppedLogMessages?: boolean | undefined;
|
|
125
115
|
}[] | null | undefined;
|
|
126
116
|
instructions?: {
|
|
127
|
-
transactionIndex
|
|
128
|
-
instructionAddress
|
|
117
|
+
transactionIndex: number;
|
|
118
|
+
instructionAddress: number[];
|
|
129
119
|
programId?: string | undefined;
|
|
130
120
|
accounts?: string[] | undefined;
|
|
131
121
|
data?: string | undefined;
|
|
@@ -147,14 +137,14 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
147
137
|
message?: string | undefined;
|
|
148
138
|
}[] | null | undefined;
|
|
149
139
|
balances?: {
|
|
150
|
-
transactionIndex
|
|
151
|
-
account
|
|
140
|
+
transactionIndex: number;
|
|
141
|
+
account: string;
|
|
152
142
|
pre?: string | undefined;
|
|
153
143
|
post?: string | undefined;
|
|
154
144
|
}[] | null | undefined;
|
|
155
145
|
tokenBalances?: {
|
|
156
|
-
transactionIndex
|
|
157
|
-
account
|
|
146
|
+
transactionIndex: number;
|
|
147
|
+
account: string;
|
|
158
148
|
preProgramId?: string | null | undefined;
|
|
159
149
|
postProgramId?: string | null | undefined;
|
|
160
150
|
preMint?: string | null | undefined;
|
|
@@ -167,7 +157,7 @@ export declare const getDataSchema: (obj: import("@subsquid/portal-client/lib/qu
|
|
|
167
157
|
postAmount?: string | null | undefined;
|
|
168
158
|
}[] | null | undefined;
|
|
169
159
|
rewards?: {
|
|
170
|
-
pubkey
|
|
160
|
+
pubkey: string;
|
|
171
161
|
lamports?: string | undefined;
|
|
172
162
|
postBalance?: string | undefined;
|
|
173
163
|
rewardType?: string | null | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/archive/schema.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAG5C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmHxB,CAAA"}
|
|
@@ -1,46 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDataSchema =
|
|
4
|
-
|
|
3
|
+
exports.getDataSchema = void 0;
|
|
4
|
+
const solana_rpc_data_1 = require("@subsquid/solana-rpc-data");
|
|
5
5
|
const util_internal_1 = require("@subsquid/util-internal");
|
|
6
6
|
const util_internal_validation_1 = require("@subsquid/util-internal-validation");
|
|
7
|
-
|
|
8
|
-
if (fields == null)
|
|
9
|
-
return {};
|
|
10
|
-
let result = {};
|
|
11
|
-
let key;
|
|
12
|
-
for (key in obj) {
|
|
13
|
-
if (fields[key]) {
|
|
14
|
-
result[key] = obj[key];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return result;
|
|
18
|
-
}
|
|
19
|
-
exports.AddressTableLookup = (0, util_internal_validation_1.object)({
|
|
20
|
-
accountKey: util_internal_validation_1.B58,
|
|
21
|
-
readonlyIndexes: (0, util_internal_validation_1.array)(util_internal_validation_1.NAT),
|
|
22
|
-
writableIndexes: (0, util_internal_validation_1.array)(util_internal_validation_1.NAT),
|
|
23
|
-
});
|
|
7
|
+
const fields_1 = require("../data/fields");
|
|
24
8
|
exports.getDataSchema = (0, util_internal_1.weakMemo)((fields) => {
|
|
25
9
|
let BlockHeader = (0, util_internal_validation_1.object)({
|
|
26
10
|
number: util_internal_validation_1.NAT,
|
|
27
11
|
hash: util_internal_validation_1.B58,
|
|
28
12
|
parentHash: util_internal_validation_1.B58,
|
|
29
|
-
...project(fields.block, {
|
|
30
|
-
|
|
13
|
+
...(0, fields_1.project)(fields.block, {
|
|
14
|
+
slot: util_internal_validation_1.NAT,
|
|
31
15
|
parentSlot: util_internal_validation_1.NAT,
|
|
32
|
-
timestamp: util_internal_validation_1.NAT
|
|
33
|
-
})
|
|
16
|
+
timestamp: util_internal_validation_1.NAT
|
|
17
|
+
})
|
|
34
18
|
});
|
|
35
19
|
let Transaction = (0, util_internal_validation_1.object)({
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
transactionIndex: util_internal_validation_1.NAT,
|
|
21
|
+
...(0, fields_1.project)(fields.transaction, {
|
|
38
22
|
version: (0, util_internal_validation_1.oneOf)({
|
|
39
23
|
legacy: (0, util_internal_validation_1.constant)('legacy'),
|
|
40
|
-
versionNumber: util_internal_validation_1.NAT
|
|
24
|
+
versionNumber: util_internal_validation_1.NAT
|
|
41
25
|
}),
|
|
42
26
|
accountKeys: (0, util_internal_validation_1.array)(util_internal_validation_1.B58),
|
|
43
|
-
addressTableLookups: (0, util_internal_validation_1.array)(
|
|
27
|
+
addressTableLookups: (0, util_internal_validation_1.array)(solana_rpc_data_1.AddressTableLookup),
|
|
44
28
|
numReadonlySignedAccounts: util_internal_validation_1.NAT,
|
|
45
29
|
numReadonlyUnsignedAccounts: util_internal_validation_1.NAT,
|
|
46
30
|
numRequiredSignatures: util_internal_validation_1.NAT,
|
|
@@ -51,15 +35,15 @@ exports.getDataSchema = (0, util_internal_1.weakMemo)((fields) => {
|
|
|
51
35
|
fee: util_internal_validation_1.BIG_NAT,
|
|
52
36
|
loadedAddresses: (0, util_internal_validation_1.option)((0, util_internal_validation_1.object)({
|
|
53
37
|
readonly: (0, util_internal_validation_1.array)(util_internal_validation_1.B58),
|
|
54
|
-
writable: (0, util_internal_validation_1.array)(util_internal_validation_1.B58)
|
|
38
|
+
writable: (0, util_internal_validation_1.array)(util_internal_validation_1.B58)
|
|
55
39
|
})),
|
|
56
|
-
hasDroppedLogMessages: util_internal_validation_1.BOOLEAN
|
|
57
|
-
})
|
|
40
|
+
hasDroppedLogMessages: util_internal_validation_1.BOOLEAN
|
|
41
|
+
})
|
|
58
42
|
});
|
|
59
43
|
let Instruction = (0, util_internal_validation_1.object)({
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
44
|
+
transactionIndex: util_internal_validation_1.NAT,
|
|
45
|
+
instructionAddress: (0, util_internal_validation_1.array)(util_internal_validation_1.NAT),
|
|
46
|
+
...(0, fields_1.project)(fields.instruction, {
|
|
63
47
|
programId: util_internal_validation_1.B58,
|
|
64
48
|
accounts: (0, util_internal_validation_1.array)(util_internal_validation_1.B58),
|
|
65
49
|
data: util_internal_validation_1.B58,
|
|
@@ -70,35 +54,35 @@ exports.getDataSchema = (0, util_internal_1.weakMemo)((fields) => {
|
|
|
70
54
|
d8: util_internal_validation_1.BYTES,
|
|
71
55
|
error: (0, util_internal_validation_1.option)(util_internal_validation_1.STRING),
|
|
72
56
|
isCommitted: util_internal_validation_1.BOOLEAN,
|
|
73
|
-
hasDroppedLogMessages: util_internal_validation_1.BOOLEAN
|
|
74
|
-
})
|
|
57
|
+
hasDroppedLogMessages: util_internal_validation_1.BOOLEAN
|
|
58
|
+
})
|
|
75
59
|
});
|
|
76
60
|
let LogMessage = (0, util_internal_validation_1.object)({
|
|
77
61
|
transactionIndex: util_internal_validation_1.NAT,
|
|
78
62
|
logIndex: util_internal_validation_1.NAT,
|
|
79
63
|
instructionAddress: (0, util_internal_validation_1.array)(util_internal_validation_1.NAT),
|
|
80
|
-
...project(fields.log, {
|
|
64
|
+
...(0, fields_1.project)(fields.log, {
|
|
81
65
|
programId: util_internal_validation_1.B58,
|
|
82
66
|
kind: (0, util_internal_validation_1.oneOf)({
|
|
83
67
|
log: (0, util_internal_validation_1.constant)('log'),
|
|
84
68
|
data: (0, util_internal_validation_1.constant)('data'),
|
|
85
|
-
other: (0, util_internal_validation_1.constant)('other')
|
|
69
|
+
other: (0, util_internal_validation_1.constant)('other')
|
|
86
70
|
}),
|
|
87
|
-
message: util_internal_validation_1.STRING
|
|
88
|
-
})
|
|
71
|
+
message: util_internal_validation_1.STRING
|
|
72
|
+
})
|
|
89
73
|
});
|
|
90
74
|
let Balance = (0, util_internal_validation_1.object)({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
75
|
+
transactionIndex: util_internal_validation_1.NAT,
|
|
76
|
+
account: util_internal_validation_1.B58,
|
|
77
|
+
...(0, fields_1.project)(fields.balance, {
|
|
94
78
|
pre: util_internal_validation_1.BIG_NAT,
|
|
95
|
-
post: util_internal_validation_1.BIG_NAT
|
|
96
|
-
})
|
|
79
|
+
post: util_internal_validation_1.BIG_NAT
|
|
80
|
+
})
|
|
97
81
|
});
|
|
98
82
|
let TokenBalance = (0, util_internal_validation_1.object)({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
83
|
+
transactionIndex: util_internal_validation_1.NAT,
|
|
84
|
+
account: util_internal_validation_1.B58,
|
|
85
|
+
...(0, fields_1.project)(fields.tokenBalance, {
|
|
102
86
|
preProgramId: (0, util_internal_validation_1.option)(util_internal_validation_1.B58),
|
|
103
87
|
postProgramId: (0, util_internal_validation_1.option)(util_internal_validation_1.B58),
|
|
104
88
|
preMint: (0, util_internal_validation_1.option)(util_internal_validation_1.B58),
|
|
@@ -108,26 +92,26 @@ exports.getDataSchema = (0, util_internal_1.weakMemo)((fields) => {
|
|
|
108
92
|
preOwner: (0, util_internal_validation_1.option)(util_internal_validation_1.B58),
|
|
109
93
|
postOwner: (0, util_internal_validation_1.option)(util_internal_validation_1.B58),
|
|
110
94
|
preAmount: (0, util_internal_validation_1.option)(util_internal_validation_1.BIG_NAT),
|
|
111
|
-
postAmount: (0, util_internal_validation_1.option)(util_internal_validation_1.BIG_NAT)
|
|
112
|
-
})
|
|
95
|
+
postAmount: (0, util_internal_validation_1.option)(util_internal_validation_1.BIG_NAT)
|
|
96
|
+
})
|
|
113
97
|
});
|
|
114
98
|
let Reward = (0, util_internal_validation_1.object)({
|
|
115
|
-
|
|
116
|
-
|
|
99
|
+
pubkey: util_internal_validation_1.B58,
|
|
100
|
+
...(0, fields_1.project)(fields.reward, {
|
|
117
101
|
lamports: util_internal_validation_1.BIG_NAT,
|
|
118
102
|
postBalance: util_internal_validation_1.BIG_NAT,
|
|
119
103
|
rewardType: (0, util_internal_validation_1.option)(util_internal_validation_1.STRING),
|
|
120
|
-
commission: (0, util_internal_validation_1.option)(util_internal_validation_1.NAT)
|
|
121
|
-
})
|
|
104
|
+
commission: (0, util_internal_validation_1.option)(util_internal_validation_1.NAT)
|
|
105
|
+
})
|
|
122
106
|
});
|
|
123
107
|
return (0, util_internal_validation_1.object)({
|
|
124
108
|
header: BlockHeader,
|
|
125
|
-
transactions: (0, util_internal_validation_1.
|
|
109
|
+
transactions: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(Transaction)),
|
|
126
110
|
instructions: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(Instruction)),
|
|
127
111
|
logs: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(LogMessage)),
|
|
128
112
|
balances: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(Balance)),
|
|
129
113
|
tokenBalances: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(TokenBalance)),
|
|
130
|
-
rewards: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(Reward))
|
|
114
|
+
rewards: (0, util_internal_validation_1.option)((0, util_internal_validation_1.array)(Reward))
|
|
131
115
|
});
|
|
132
116
|
});
|
|
133
117
|
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/archive/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BlockHeader } from '@subsquid/solana-normalization';
|
|
2
|
+
import { Base58Bytes } from '@subsquid/solana-rpc-data';
|
|
3
|
+
import { ArchiveClient } from '@subsquid/util-internal-archive-client';
|
|
4
|
+
import { RangeRequestList } from '@subsquid/util-internal-range';
|
|
5
|
+
import { PartialBlock } from '../data/partial';
|
|
6
|
+
import { DataRequest } from '../data/request';
|
|
7
|
+
export declare class SolanaArchive {
|
|
8
|
+
private client;
|
|
9
|
+
constructor(client: ArchiveClient);
|
|
10
|
+
getFinalizedHeight(): Promise<number>;
|
|
11
|
+
getBlockHash(height: number): Promise<Base58Bytes | undefined>;
|
|
12
|
+
getBlockHeader(height: number): Promise<BlockHeader>;
|
|
13
|
+
getBlockStream(requests: RangeRequestList<DataRequest>, stopOnHead?: boolean | undefined): AsyncIterable<PartialBlock[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/archive/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAC,aAAa,EAAC,MAAM,wCAAwC,CAAA;AAEpE,OAAO,EAAoC,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AAGjG,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAI3C,qBAAa,aAAa;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAW9D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBnD,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;CAkDlI"}
|
|
@@ -0,0 +1,98 @@
|
|
|
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.SolanaArchive = void 0;
|
|
7
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
8
|
+
const util_internal_ingest_tools_1 = require("@subsquid/util-internal-ingest-tools");
|
|
9
|
+
const util_internal_range_1 = require("@subsquid/util-internal-range");
|
|
10
|
+
const util_internal_validation_1 = require("@subsquid/util-internal-validation");
|
|
11
|
+
const assert_1 = __importDefault(require("assert"));
|
|
12
|
+
const schema_1 = require("./schema");
|
|
13
|
+
class SolanaArchive {
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
getFinalizedHeight() {
|
|
18
|
+
return this.client.getHeight();
|
|
19
|
+
}
|
|
20
|
+
async getBlockHash(height) {
|
|
21
|
+
let blocks = await this.client.query({
|
|
22
|
+
type: 'solana',
|
|
23
|
+
fromBlock: height,
|
|
24
|
+
toBlock: height,
|
|
25
|
+
includeAllBlocks: true
|
|
26
|
+
});
|
|
27
|
+
(0, assert_1.default)(blocks.length == 1);
|
|
28
|
+
return blocks[0].header.hash;
|
|
29
|
+
}
|
|
30
|
+
async getBlockHeader(height) {
|
|
31
|
+
let blocks = await this.client.query({
|
|
32
|
+
type: 'solana',
|
|
33
|
+
fromBlock: height,
|
|
34
|
+
toBlock: height,
|
|
35
|
+
includeAllBlocks: true,
|
|
36
|
+
fields: {
|
|
37
|
+
block: {
|
|
38
|
+
slot: true,
|
|
39
|
+
parentSlot: true,
|
|
40
|
+
parentHash: true,
|
|
41
|
+
timestamp: true
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
(0, assert_1.default)(blocks.length == 1);
|
|
46
|
+
let { number, ...rest } = blocks[0].header;
|
|
47
|
+
return {
|
|
48
|
+
height: number,
|
|
49
|
+
...rest
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async *getBlockStream(requests, stopOnHead) {
|
|
53
|
+
let archiveRequests = (0, util_internal_range_1.mapRangeRequestList)(requests, req => {
|
|
54
|
+
let { fields, includeAllBlocks, ...items } = req;
|
|
55
|
+
let archiveItems = {};
|
|
56
|
+
let key;
|
|
57
|
+
for (key in items) {
|
|
58
|
+
archiveItems[key] = items[key]?.map(it => ({ ...it.where, ...it.include }));
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
type: 'solana',
|
|
62
|
+
fields: {
|
|
63
|
+
block: { parentHash: true, ...fields?.block },
|
|
64
|
+
transaction: fields?.transaction,
|
|
65
|
+
instruction: fields?.instruction,
|
|
66
|
+
log: { instructionAddress: true, ...fields?.log },
|
|
67
|
+
balance: fields?.balance,
|
|
68
|
+
tokenBalance: fields?.tokenBalance,
|
|
69
|
+
reward: fields?.reward
|
|
70
|
+
},
|
|
71
|
+
includeAllBlocks,
|
|
72
|
+
...archiveItems
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
for await (let batch of (0, util_internal_ingest_tools_1.archiveIngest)({
|
|
76
|
+
client: this.client,
|
|
77
|
+
requests: archiveRequests,
|
|
78
|
+
stopOnHead
|
|
79
|
+
})) {
|
|
80
|
+
let req = (0, util_internal_range_1.getRequestAt)(requests, batch.blocks[0].header.number);
|
|
81
|
+
let blocks = (0, util_internal_validation_1.cast)((0, util_internal_validation_1.array)((0, schema_1.getDataSchema)((0, util_internal_1.assertNotNull)(req?.fields))), batch.blocks).map(b => {
|
|
82
|
+
let { header: { number, ...hdr }, ...items } = b;
|
|
83
|
+
return {
|
|
84
|
+
header: { height: number, ...hdr },
|
|
85
|
+
transactions: items.transactions || [],
|
|
86
|
+
instructions: items.instructions || [],
|
|
87
|
+
logs: items.logs || [],
|
|
88
|
+
balances: items.balances || [],
|
|
89
|
+
tokenBalances: items.tokenBalances || [],
|
|
90
|
+
rewards: items.rewards || []
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
yield blocks;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.SolanaArchive = SolanaArchive;
|
|
98
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/archive/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FieldSelection } from './model';
|
|
2
|
+
import { Selector } from './type-util';
|
|
3
|
+
/**
|
|
4
|
+
* Get effective set of selected fields.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getFields(fields: FieldSelection | undefined): FieldSelection;
|
|
7
|
+
export declare function project<T>(fields: Selector<keyof T> | undefined, obj: T): Partial<T>;
|
|
8
|
+
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/data/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAC,MAAM,SAAS,CAAA;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAA;AAGpC;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,CAU5E;AAsBD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUpF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFields = getFields;
|
|
4
|
+
exports.project = project;
|
|
5
|
+
const model_1 = require("./model");
|
|
6
|
+
/**
|
|
7
|
+
* Get effective set of selected fields.
|
|
8
|
+
*/
|
|
9
|
+
function getFields(fields) {
|
|
10
|
+
return {
|
|
11
|
+
block: merge(model_1.DEFAULT_FIELDS.block, fields?.block),
|
|
12
|
+
transaction: merge(model_1.DEFAULT_FIELDS.transaction, fields?.transaction),
|
|
13
|
+
instruction: merge(model_1.DEFAULT_FIELDS.instruction, fields?.instruction),
|
|
14
|
+
log: merge(model_1.DEFAULT_FIELDS.log, fields?.log),
|
|
15
|
+
balance: merge(model_1.DEFAULT_FIELDS.balance, fields?.balance),
|
|
16
|
+
tokenBalance: merge(model_1.DEFAULT_FIELDS.tokenBalance, fields?.tokenBalance),
|
|
17
|
+
reward: merge(model_1.DEFAULT_FIELDS.reward, fields?.reward)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function merge(def, requested = {}) {
|
|
21
|
+
let fields = {};
|
|
22
|
+
for (let key in def) {
|
|
23
|
+
if (requested[key] !== false) {
|
|
24
|
+
fields[key] = def[key];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
for (let key in requested) {
|
|
28
|
+
if (requested[key]) {
|
|
29
|
+
fields[key] = true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return fields;
|
|
33
|
+
}
|
|
34
|
+
function project(fields, obj) {
|
|
35
|
+
if (fields == null)
|
|
36
|
+
return {};
|
|
37
|
+
let result = {};
|
|
38
|
+
let key;
|
|
39
|
+
for (key in obj) {
|
|
40
|
+
if (fields[key]) {
|
|
41
|
+
result[key] = obj[key];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/data/fields.ts"],"names":[],"mappings":";;AAOA,8BAUC;AAsBD,0BAUC;AAjDD,mCAAsD;AAItD;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAkC;IACxD,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,sBAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;QACjD,WAAW,EAAE,KAAK,CAAC,sBAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;QACnE,WAAW,EAAE,KAAK,CAAC,sBAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;QACnE,GAAG,EAAE,KAAK,CAAC,sBAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC;QAC3C,OAAO,EAAE,KAAK,CAAC,sBAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QACvD,YAAY,EAAE,KAAK,CAAC,sBAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC;QACtE,MAAM,EAAE,KAAK,CAAC,sBAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KACvD,CAAA;AACL,CAAC;AAGD,SAAS,KAAK,CAAsB,GAAmB,EAAE,YAA4B,EAAE;IACnF,IAAI,MAAM,GAAmB,EAAE,CAAA;IAE/B,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACL,CAAC;IAED,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACtB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAGD,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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type * as data from '@subsquid/solana-normalization';
|
|
2
|
+
import type { BalanceRequiredFields, BlockRequiredFields, InstructionRequiredFields, LogRequiredFields, RewardRequiredFields, TokenBalanceRequiredFields, TransactionRequiredFields } from './partial';
|
|
3
|
+
import type { GetFields, Select, Selector, Simplify } from './type-util';
|
|
4
|
+
/**
|
|
5
|
+
* Hex encoded binary string
|
|
6
|
+
*/
|
|
7
|
+
export type Bytes = string;
|
|
8
|
+
/**
|
|
9
|
+
* Base58 encoded binary string
|
|
10
|
+
*/
|
|
11
|
+
export type Base58Bytes = string;
|
|
12
|
+
export interface FieldSelection {
|
|
13
|
+
block?: Selector<Exclude<keyof data.BlockHeader, BlockRequiredFields>>;
|
|
14
|
+
transaction?: Selector<Exclude<keyof data.Transaction, TransactionRequiredFields>>;
|
|
15
|
+
instruction?: Selector<Exclude<keyof data.Instruction, InstructionRequiredFields>>;
|
|
16
|
+
log?: Selector<Exclude<keyof data.LogMessage, LogRequiredFields>>;
|
|
17
|
+
balance?: Selector<Exclude<keyof data.Balance, BalanceRequiredFields>>;
|
|
18
|
+
tokenBalance?: Selector<Exclude<keyof data.TokenBalance, TokenBalanceRequiredFields>>;
|
|
19
|
+
reward?: Selector<Exclude<keyof data.Reward, RewardRequiredFields>>;
|
|
20
|
+
}
|
|
21
|
+
export declare const DEFAULT_FIELDS: {
|
|
22
|
+
readonly block: {
|
|
23
|
+
readonly slot: true;
|
|
24
|
+
readonly parentSlot: true;
|
|
25
|
+
readonly timestamp: true;
|
|
26
|
+
};
|
|
27
|
+
readonly transaction: {
|
|
28
|
+
readonly signatures: true;
|
|
29
|
+
readonly err: true;
|
|
30
|
+
};
|
|
31
|
+
readonly instruction: {
|
|
32
|
+
readonly programId: true;
|
|
33
|
+
readonly accounts: true;
|
|
34
|
+
readonly data: true;
|
|
35
|
+
readonly isCommitted: true;
|
|
36
|
+
};
|
|
37
|
+
readonly log: {
|
|
38
|
+
readonly programId: true;
|
|
39
|
+
readonly kind: true;
|
|
40
|
+
readonly message: true;
|
|
41
|
+
};
|
|
42
|
+
readonly balance: {
|
|
43
|
+
readonly pre: true;
|
|
44
|
+
readonly post: true;
|
|
45
|
+
};
|
|
46
|
+
readonly tokenBalance: {
|
|
47
|
+
readonly preMint: true;
|
|
48
|
+
readonly preDecimals: true;
|
|
49
|
+
readonly preOwner: true;
|
|
50
|
+
readonly preAmount: true;
|
|
51
|
+
readonly postMint: true;
|
|
52
|
+
readonly postDecimals: true;
|
|
53
|
+
readonly postOwner: true;
|
|
54
|
+
readonly postAmount: true;
|
|
55
|
+
};
|
|
56
|
+
readonly reward: {
|
|
57
|
+
readonly lamports: true;
|
|
58
|
+
readonly rewardType: true;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
type Item<Data, RequiredFields extends keyof Data, F extends FieldSelection, K extends keyof FieldSelection> = Simplify<Pick<Data, RequiredFields> & Select<Data, GetFields<FieldSelection, typeof DEFAULT_FIELDS, F, K>>>;
|
|
62
|
+
export type BlockHeader<F extends FieldSelection = {}> = Item<data.BlockHeader, BlockRequiredFields, F, 'block'>;
|
|
63
|
+
export type Transaction<F extends FieldSelection = {}> = Item<data.Transaction, TransactionRequiredFields, F, 'transaction'>;
|
|
64
|
+
export type Instruction<F extends FieldSelection = {}> = Item<data.Instruction, InstructionRequiredFields, F, 'instruction'>;
|
|
65
|
+
export type LogMessage<F extends FieldSelection = {}> = Item<data.LogMessage, LogRequiredFields, F, 'log'>;
|
|
66
|
+
export type Balance<F extends FieldSelection = {}> = Item<data.Balance, BalanceRequiredFields, F, 'balance'>;
|
|
67
|
+
export type TokenBalance<F extends FieldSelection = {}> = Item<data.TokenBalance, TokenBalanceRequiredFields, F, 'tokenBalance'>;
|
|
68
|
+
export type Reward<F extends FieldSelection = {}> = Item<data.Reward, RewardRequiredFields, F, 'reward'>;
|
|
69
|
+
export interface Block<F extends FieldSelection = {}> {
|
|
70
|
+
header: BlockHeader<F>;
|
|
71
|
+
transactions: Transaction<F>[];
|
|
72
|
+
instructions: Instruction<F>[];
|
|
73
|
+
logs: LogMessage<F>[];
|
|
74
|
+
balances: Balance<F>[];
|
|
75
|
+
tokenBalances: TokenBalance<F>[];
|
|
76
|
+
rewards: Reward<F>[];
|
|
77
|
+
}
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_FIELDS = void 0;
|
|
4
|
+
exports.DEFAULT_FIELDS = {
|
|
5
|
+
block: {
|
|
6
|
+
slot: true,
|
|
7
|
+
parentSlot: true,
|
|
8
|
+
timestamp: true
|
|
9
|
+
},
|
|
10
|
+
transaction: {
|
|
11
|
+
signatures: true,
|
|
12
|
+
err: true
|
|
13
|
+
},
|
|
14
|
+
instruction: {
|
|
15
|
+
programId: true,
|
|
16
|
+
accounts: true,
|
|
17
|
+
data: true,
|
|
18
|
+
isCommitted: true
|
|
19
|
+
},
|
|
20
|
+
log: {
|
|
21
|
+
programId: true,
|
|
22
|
+
kind: true,
|
|
23
|
+
message: true
|
|
24
|
+
},
|
|
25
|
+
balance: {
|
|
26
|
+
pre: true,
|
|
27
|
+
post: true
|
|
28
|
+
},
|
|
29
|
+
tokenBalance: {
|
|
30
|
+
preMint: true,
|
|
31
|
+
preDecimals: true,
|
|
32
|
+
preOwner: true,
|
|
33
|
+
preAmount: true,
|
|
34
|
+
postMint: true,
|
|
35
|
+
postDecimals: true,
|
|
36
|
+
postOwner: true,
|
|
37
|
+
postAmount: true
|
|
38
|
+
},
|
|
39
|
+
reward: {
|
|
40
|
+
lamports: true,
|
|
41
|
+
rewardType: true
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":";;;AAoCa,QAAA,cAAc,GAAG;IAC1B,KAAK,EAAE;QACH,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;QAChB,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;CACK,CAAA"}
|