@subsquid/fuel-normalization 0.0.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/data.d.ts ADDED
@@ -0,0 +1,212 @@
1
+ export type Bytes = string;
2
+ export interface BlockHeader {
3
+ hash: Bytes;
4
+ height: number;
5
+ daHeight: bigint;
6
+ transactionsRoot: Bytes;
7
+ transactionsCount: bigint;
8
+ messageReceiptRoot: Bytes;
9
+ messageReceiptCount: bigint;
10
+ prevRoot: Bytes;
11
+ time: bigint;
12
+ applicationHash: Bytes;
13
+ }
14
+ export interface Policies {
15
+ gasPrice?: bigint;
16
+ witnessLimit?: bigint;
17
+ maturity?: number;
18
+ maxFee?: bigint;
19
+ }
20
+ export interface ProgramState {
21
+ returnType: 'RETURN' | 'RETURN_DATA' | 'REVERT';
22
+ data: Bytes;
23
+ }
24
+ export interface SubmittedStatus {
25
+ type: 'SubmittedStatus';
26
+ time: bigint;
27
+ }
28
+ export interface SuccessStatus {
29
+ type: 'SuccessStatus';
30
+ transactionId: Bytes;
31
+ time: bigint;
32
+ programState?: ProgramState;
33
+ }
34
+ export interface SqueezedOutStatus {
35
+ type: 'SqueezedOutStatus';
36
+ reason: string;
37
+ }
38
+ export interface FailureStatus {
39
+ type: 'FailureStatus';
40
+ transactionId: Bytes;
41
+ time: bigint;
42
+ reason: string;
43
+ programState?: ProgramState;
44
+ }
45
+ export type Status = SubmittedStatus | SuccessStatus | SqueezedOutStatus | FailureStatus;
46
+ export type TransactionType = 'Script' | 'Create' | 'Mint';
47
+ export interface Transaction {
48
+ index: number;
49
+ hash: Bytes;
50
+ inputAssetIds?: Bytes[];
51
+ inputContracts?: Bytes[];
52
+ inputContract?: {
53
+ utxoId: Bytes;
54
+ balanceRoot: Bytes;
55
+ stateRoot: Bytes;
56
+ txPointer: string;
57
+ contract: Bytes;
58
+ };
59
+ policies?: Policies;
60
+ gasPrice?: bigint;
61
+ scriptGasLimit?: bigint;
62
+ maturity?: number;
63
+ mintAmount?: bigint;
64
+ mintAssetId?: Bytes;
65
+ txPointer?: string;
66
+ isScript: boolean;
67
+ isCreate: boolean;
68
+ isMint: boolean;
69
+ type: TransactionType;
70
+ outputContract?: {
71
+ inputIndex: number;
72
+ balanceRoot: Bytes;
73
+ stateRoot: Bytes;
74
+ };
75
+ witnesses?: Bytes[];
76
+ receiptsRoot?: Bytes;
77
+ status: Status;
78
+ script?: Bytes;
79
+ scriptData?: Bytes;
80
+ bytecodeWitnessIndex?: number;
81
+ bytecodeLength?: bigint;
82
+ salt?: Bytes;
83
+ storageSlots?: Bytes[];
84
+ rawPayload?: Bytes;
85
+ }
86
+ export interface InputCoin {
87
+ type: 'InputCoin';
88
+ index: number;
89
+ transactionIndex: number;
90
+ utxoId: Bytes;
91
+ owner: Bytes;
92
+ amount: bigint;
93
+ assetId: Bytes;
94
+ txPointer: string;
95
+ witnessIndex: number;
96
+ maturity: number;
97
+ predicateGasUsed: bigint;
98
+ predicate: Bytes;
99
+ predicateData: Bytes;
100
+ }
101
+ export interface InputContract {
102
+ type: 'InputContract';
103
+ index: number;
104
+ transactionIndex: number;
105
+ utxoId: Bytes;
106
+ balanceRoot: Bytes;
107
+ stateRoot: Bytes;
108
+ txPointer: string;
109
+ contract: Bytes;
110
+ }
111
+ export interface InputMessage {
112
+ type: 'InputMessage';
113
+ index: number;
114
+ transactionIndex: number;
115
+ sender: Bytes;
116
+ recipient: Bytes;
117
+ amount: bigint;
118
+ nonce: Bytes;
119
+ witnessIndex: number;
120
+ predicateGasUsed: bigint;
121
+ data: Bytes;
122
+ predicate: Bytes;
123
+ predicateData: Bytes;
124
+ }
125
+ export type InputType = 'InputCoin' | 'InputContract' | 'InputMessage';
126
+ export type TransactionInput = InputCoin | InputContract | InputMessage;
127
+ export interface CoinOutput {
128
+ type: 'CoinOutput';
129
+ index: number;
130
+ transactionIndex: number;
131
+ to: Bytes;
132
+ amount: bigint;
133
+ assetId: Bytes;
134
+ }
135
+ export interface ContractOutput {
136
+ type: 'ContractOutput';
137
+ index: number;
138
+ transactionIndex: number;
139
+ inputIndex: number;
140
+ balanceRoot: Bytes;
141
+ stateRoot: Bytes;
142
+ }
143
+ export interface ChangeOutput {
144
+ type: 'ChangeOutput';
145
+ index: number;
146
+ transactionIndex: number;
147
+ to: Bytes;
148
+ amount: bigint;
149
+ assetId: Bytes;
150
+ }
151
+ export interface VariableOutput {
152
+ type: 'VariableOutput';
153
+ index: number;
154
+ transactionIndex: number;
155
+ to: Bytes;
156
+ amount: bigint;
157
+ assetId: Bytes;
158
+ }
159
+ export interface ContractCreated {
160
+ type: 'ContractCreated';
161
+ index: number;
162
+ transactionIndex: number;
163
+ contract: {
164
+ id: Bytes;
165
+ bytecode: Bytes;
166
+ salt: Bytes;
167
+ };
168
+ stateRoot: Bytes;
169
+ }
170
+ export type OutputType = 'CoinOutput' | 'ContractOutput' | 'ChangeOutput' | 'VariableOutput' | 'ContractCreated';
171
+ export type TransactionOutput = CoinOutput | ContractOutput | ChangeOutput | VariableOutput | ContractCreated;
172
+ export type ReceiptType = 'CALL' | 'RETURN' | 'RETURN_DATA' | 'PANIC' | 'REVERT' | 'LOG' | 'LOG_DATA' | 'TRANSFER' | 'TRANSFER_OUT' | 'SCRIPT_RESULT' | 'MESSAGE_OUT' | 'MINT' | 'BURN';
173
+ export interface Receipt {
174
+ index: number;
175
+ transactionIndex: number;
176
+ contract?: Bytes;
177
+ pc?: bigint;
178
+ is?: bigint;
179
+ to?: Bytes;
180
+ toAddress?: Bytes;
181
+ amount?: bigint;
182
+ assetId?: Bytes;
183
+ gas?: bigint;
184
+ param1?: bigint;
185
+ param2?: bigint;
186
+ val?: bigint;
187
+ ptr?: bigint;
188
+ digest?: Bytes;
189
+ reason?: bigint;
190
+ ra?: bigint;
191
+ rb?: bigint;
192
+ rc?: bigint;
193
+ rd?: bigint;
194
+ len?: bigint;
195
+ receiptType: ReceiptType;
196
+ result?: bigint;
197
+ gasUsed?: bigint;
198
+ data?: Bytes;
199
+ sender?: Bytes;
200
+ recipient?: Bytes;
201
+ nonce?: Bytes;
202
+ contractId?: Bytes;
203
+ subId?: Bytes;
204
+ }
205
+ export interface Block {
206
+ header: BlockHeader;
207
+ transactions: Transaction[];
208
+ inputs: TransactionInput[];
209
+ outputs: TransactionOutput[];
210
+ receipts: Receipt[];
211
+ }
212
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/lib/data.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":""}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './data';
2
+ export * from './mapping';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./data"), exports);
18
+ __exportStar(require("./mapping"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,4CAAyB"}
@@ -0,0 +1,4 @@
1
+ import * as raw from '@subsquid/fuel-data/lib/raw-data';
2
+ import { Block } from './data';
3
+ export declare function mapRawBlock(raw: raw.BlockData): Block;
4
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,kCAAkC,CAAA;AAEvD,OAAO,EAQH,KAAK,EAER,MAAM,QAAQ,CAAA;AA4Tf,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,GAAG,KAAK,CA0CrD"}
package/lib/mapping.js ADDED
@@ -0,0 +1,341 @@
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.mapRawBlock = void 0;
7
+ const util_internal_1 = require("@subsquid/util-internal");
8
+ const assert_1 = __importDefault(require("assert"));
9
+ function toInteger(val) {
10
+ let int = parseInt(val);
11
+ (0, assert_1.default)(Number.isSafeInteger(int));
12
+ return int;
13
+ }
14
+ function isEmpty(obj) {
15
+ for (let _ in obj) {
16
+ return false;
17
+ }
18
+ return true;
19
+ }
20
+ function mapRawTransactionStatus(raw) {
21
+ let programState;
22
+ switch (raw.__typename) {
23
+ case 'FailureStatus':
24
+ if (raw.programState) {
25
+ programState = {
26
+ data: raw.programState.data,
27
+ returnType: raw.programState.returnType
28
+ };
29
+ }
30
+ return {
31
+ type: 'FailureStatus',
32
+ transactionId: raw.transactionId,
33
+ time: BigInt(raw.time),
34
+ reason: raw.reason,
35
+ programState
36
+ };
37
+ case 'SqueezedOutStatus':
38
+ return {
39
+ type: 'SqueezedOutStatus',
40
+ reason: raw.reason
41
+ };
42
+ case 'SubmittedStatus':
43
+ return {
44
+ type: 'SubmittedStatus',
45
+ time: BigInt(raw.time)
46
+ };
47
+ case 'SuccessStatus':
48
+ if (raw.programState) {
49
+ programState = {
50
+ data: raw.programState.data,
51
+ returnType: raw.programState.returnType
52
+ };
53
+ }
54
+ return {
55
+ type: 'SuccessStatus',
56
+ time: BigInt(raw.time),
57
+ transactionId: raw.transactionId,
58
+ programState,
59
+ };
60
+ }
61
+ }
62
+ function mapRawPolicies(raw) {
63
+ let policies = {};
64
+ if (raw?.gasPrice) {
65
+ policies.gasPrice = BigInt(raw.gasPrice);
66
+ }
67
+ if (raw?.maturity) {
68
+ policies.maturity = toInteger(raw.maturity);
69
+ }
70
+ if (raw?.maxFee) {
71
+ policies.maxFee = BigInt(raw.maxFee);
72
+ }
73
+ if (raw?.witnessLimit) {
74
+ policies.witnessLimit = BigInt(raw.witnessLimit);
75
+ }
76
+ return isEmpty(policies) ? undefined : policies;
77
+ }
78
+ function getTransactionType(raw) {
79
+ if (raw.isScript) {
80
+ return 'Script';
81
+ }
82
+ else if (raw.isCreate) {
83
+ return 'Create';
84
+ }
85
+ else if (raw.isMint) {
86
+ return 'Mint';
87
+ }
88
+ else {
89
+ throw (0, util_internal_1.unexpectedCase)();
90
+ }
91
+ }
92
+ function mapRawTransaction(raw, transactionIndex) {
93
+ let transaction = {
94
+ index: transactionIndex,
95
+ hash: raw.id,
96
+ isCreate: raw.isCreate,
97
+ isMint: raw.isMint,
98
+ isScript: raw.isScript,
99
+ type: getTransactionType(raw),
100
+ status: mapRawTransactionStatus(raw.status),
101
+ policies: mapRawPolicies(raw.policies),
102
+ salt: raw.salt ?? undefined,
103
+ storageSlots: raw.storageSlots ?? undefined,
104
+ rawPayload: raw.rawPayload ?? undefined,
105
+ mintAssetId: raw.mintAssetId ?? undefined,
106
+ txPointer: raw.txPointer ?? undefined,
107
+ outputContract: raw.outputContract ?? undefined,
108
+ witnesses: raw.witnesses ?? undefined,
109
+ receiptsRoot: raw.receiptsRoot ?? undefined,
110
+ script: raw.script ?? undefined,
111
+ scriptData: raw.scriptData ?? undefined,
112
+ bytecodeWitnessIndex: raw.bytecodeWitnessIndex ?? undefined,
113
+ inputAssetIds: raw.inputAssetIds ?? undefined,
114
+ inputContracts: raw.inputContracts?.map(i => i.id),
115
+ };
116
+ if (raw.inputContract) {
117
+ transaction.inputContract = {
118
+ utxoId: raw.inputContract.utxoId,
119
+ balanceRoot: raw.inputContract.balanceRoot,
120
+ stateRoot: raw.inputContract.stateRoot,
121
+ txPointer: raw.inputContract.txPointer,
122
+ contract: raw.inputContract.contract.id,
123
+ };
124
+ }
125
+ if (raw.gasPrice) {
126
+ transaction.gasPrice = BigInt(raw.gasPrice);
127
+ }
128
+ if (raw.scriptGasLimit) {
129
+ transaction.scriptGasLimit = BigInt(raw.scriptGasLimit);
130
+ }
131
+ if (raw.maturity) {
132
+ transaction.maturity = toInteger(raw.maturity);
133
+ }
134
+ if (raw.mintAmount) {
135
+ transaction.mintAmount = BigInt(raw.mintAmount);
136
+ }
137
+ if (raw.bytecodeLength) {
138
+ transaction.bytecodeLength = BigInt(raw.bytecodeLength);
139
+ }
140
+ return transaction;
141
+ }
142
+ function mapRawInput(raw, transactionIndex, index) {
143
+ switch (raw.__typename) {
144
+ case 'InputCoin':
145
+ return {
146
+ type: 'InputCoin',
147
+ index,
148
+ transactionIndex,
149
+ utxoId: raw.utxoId,
150
+ owner: raw.owner,
151
+ amount: BigInt(raw.amount),
152
+ assetId: raw.assetId,
153
+ txPointer: raw.txPointer,
154
+ witnessIndex: raw.witnessIndex,
155
+ maturity: toInteger(raw.maturity),
156
+ predicateGasUsed: BigInt(raw.predicateGasUsed),
157
+ predicate: raw.predicate,
158
+ predicateData: raw.predicateData,
159
+ };
160
+ case 'InputContract':
161
+ return {
162
+ type: 'InputContract',
163
+ index,
164
+ transactionIndex,
165
+ utxoId: raw.utxoId,
166
+ balanceRoot: raw.balanceRoot,
167
+ stateRoot: raw.stateRoot,
168
+ txPointer: raw.txPointer,
169
+ contract: raw.contract.id
170
+ };
171
+ case 'InputMessage':
172
+ return {
173
+ type: 'InputMessage',
174
+ index,
175
+ transactionIndex,
176
+ sender: raw.sender,
177
+ recipient: raw.recipient,
178
+ amount: BigInt(raw.amount),
179
+ nonce: raw.nonce,
180
+ witnessIndex: raw.witnessIndex,
181
+ predicateGasUsed: BigInt(raw.predicateGasUsed),
182
+ data: raw.data,
183
+ predicate: raw.predicate,
184
+ predicateData: raw.predicateData,
185
+ };
186
+ }
187
+ }
188
+ function mapRawOutput(raw, transactionIndex, index) {
189
+ switch (raw.__typename) {
190
+ case 'ChangeOutput':
191
+ return {
192
+ type: 'ChangeOutput',
193
+ index,
194
+ transactionIndex,
195
+ to: raw.to,
196
+ amount: BigInt(raw.amount),
197
+ assetId: raw.assetId,
198
+ };
199
+ case 'CoinOutput':
200
+ return {
201
+ type: 'CoinOutput',
202
+ index,
203
+ transactionIndex,
204
+ to: raw.to,
205
+ amount: BigInt(raw.amount),
206
+ assetId: raw.assetId,
207
+ };
208
+ case 'ContractCreated':
209
+ return {
210
+ type: 'ContractCreated',
211
+ index,
212
+ transactionIndex,
213
+ contract: raw.contract,
214
+ stateRoot: raw.stateRoot
215
+ };
216
+ case 'ContractOutput':
217
+ return {
218
+ type: 'ContractOutput',
219
+ index,
220
+ transactionIndex,
221
+ inputIndex: raw.inputIndex,
222
+ balanceRoot: raw.balanceRoot,
223
+ stateRoot: raw.stateRoot
224
+ };
225
+ case 'VariableOutput':
226
+ return {
227
+ type: 'VariableOutput',
228
+ index,
229
+ transactionIndex,
230
+ to: raw.to,
231
+ amount: BigInt(raw.amount),
232
+ assetId: raw.assetId
233
+ };
234
+ }
235
+ }
236
+ function mapRawReceipt(raw, transactionIndex, index) {
237
+ let receipt = {
238
+ index,
239
+ transactionIndex,
240
+ receiptType: raw.receiptType,
241
+ contract: raw.contract?.id,
242
+ to: raw.to?.id,
243
+ toAddress: raw.toAddress ?? undefined,
244
+ assetId: raw.assetId ?? undefined,
245
+ digest: raw.digest ?? undefined,
246
+ data: raw.data ?? undefined,
247
+ sender: raw.sender ?? undefined,
248
+ recipient: raw.recipient ?? undefined,
249
+ nonce: raw.nonce ?? undefined,
250
+ contractId: raw.contractId ?? undefined,
251
+ subId: raw.subId ?? undefined,
252
+ };
253
+ if (raw.pc) {
254
+ receipt.pc = BigInt(raw.pc);
255
+ }
256
+ if (raw.is) {
257
+ receipt.is = BigInt(raw.is);
258
+ }
259
+ if (raw.amount) {
260
+ receipt.amount = BigInt(raw.amount);
261
+ }
262
+ if (raw.gas) {
263
+ receipt.gas = BigInt(raw.gas);
264
+ }
265
+ if (raw.param1) {
266
+ receipt.param1 = BigInt(raw.param1);
267
+ }
268
+ if (raw.param2) {
269
+ receipt.param2 = BigInt(raw.param2);
270
+ }
271
+ if (raw.val) {
272
+ receipt.val = BigInt(raw.val);
273
+ }
274
+ if (raw.ptr) {
275
+ receipt.val = BigInt(raw.ptr);
276
+ }
277
+ if (raw.reason) {
278
+ receipt.reason = BigInt(raw.reason);
279
+ }
280
+ if (raw.ra) {
281
+ receipt.ra = BigInt(raw.ra);
282
+ }
283
+ if (raw.rb) {
284
+ receipt.rb = BigInt(raw.rb);
285
+ }
286
+ if (raw.rc) {
287
+ receipt.rc = BigInt(raw.rc);
288
+ }
289
+ if (raw.rd) {
290
+ receipt.rd = BigInt(raw.rd);
291
+ }
292
+ if (raw.len) {
293
+ receipt.len = BigInt(raw.len);
294
+ }
295
+ if (raw.result) {
296
+ receipt.result = BigInt(raw.result);
297
+ }
298
+ if (raw.gasUsed) {
299
+ receipt.gasUsed = BigInt(raw.gasUsed);
300
+ }
301
+ return receipt;
302
+ }
303
+ function mapRawBlock(raw) {
304
+ let header = {
305
+ hash: raw.block.header.id,
306
+ height: toInteger(raw.block.header.height),
307
+ daHeight: BigInt(raw.block.header.daHeight),
308
+ transactionsRoot: raw.block.header.transactionsRoot,
309
+ transactionsCount: BigInt(raw.block.header.transactionsCount),
310
+ messageReceiptRoot: raw.block.header.messageReceiptRoot,
311
+ messageReceiptCount: BigInt(raw.block.header.messageReceiptCount),
312
+ prevRoot: raw.block.header.prevRoot,
313
+ time: BigInt(raw.block.header.time),
314
+ applicationHash: raw.block.header.applicationHash,
315
+ };
316
+ let transactions = [];
317
+ let inputs = [];
318
+ let outputs = [];
319
+ let receipts = [];
320
+ raw.block.transactions.forEach((tx, index) => {
321
+ transactions.push(mapRawTransaction(tx, index));
322
+ tx.inputs?.forEach((input, inputIndex) => {
323
+ inputs.push(mapRawInput(input, index, inputIndex));
324
+ });
325
+ tx.outputs?.forEach((output, outputIndex) => {
326
+ outputs.push(mapRawOutput(output, index, outputIndex));
327
+ });
328
+ tx.receipts?.forEach((receipt, receiptIndex) => {
329
+ receipts.push(mapRawReceipt(receipt, index, receiptIndex));
330
+ });
331
+ });
332
+ return {
333
+ header,
334
+ transactions,
335
+ inputs,
336
+ outputs,
337
+ receipts,
338
+ };
339
+ }
340
+ exports.mapRawBlock = mapRawBlock;
341
+ //# sourceMappingURL=mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@subsquid/fuel-normalization",
3
+ "version": "0.0.1",
4
+ "description": "Fuel data model",
5
+ "license": "GPL-3.0-or-later",
6
+ "repository": "git@github.com:subsquid/squid.git",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "files": [
11
+ "lib",
12
+ "src"
13
+ ],
14
+ "main": "lib/index.js",
15
+ "dependencies": {
16
+ "@subsquid/fuel-data": "^0.0.1",
17
+ "@subsquid/logger": "^1.3.3",
18
+ "@subsquid/util-internal": "^3.2.0",
19
+ "@subsquid/util-internal-ingest-tools": "^1.1.2",
20
+ "@subsquid/util-internal-range": "^0.3.0",
21
+ "@subsquid/util-internal-validation": "^0.5.0"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^18.18.14",
25
+ "typescript": "~5.3.2"
26
+ },
27
+ "scripts": {
28
+ "build": "rm -rf lib && tsc"
29
+ }
30
+ }
package/src/data.ts ADDED
@@ -0,0 +1,261 @@
1
+ export type Bytes = string
2
+
3
+
4
+ export interface BlockHeader {
5
+ hash: Bytes
6
+ height: number
7
+ daHeight: bigint
8
+ transactionsRoot: Bytes
9
+ transactionsCount: bigint
10
+ messageReceiptRoot: Bytes
11
+ messageReceiptCount: bigint
12
+ prevRoot: Bytes
13
+ time: bigint
14
+ applicationHash: Bytes
15
+ }
16
+
17
+
18
+ export interface Policies {
19
+ gasPrice?: bigint
20
+ witnessLimit?: bigint
21
+ maturity?: number
22
+ maxFee?: bigint
23
+ }
24
+
25
+
26
+ export interface ProgramState {
27
+ returnType: 'RETURN' | 'RETURN_DATA' | 'REVERT'
28
+ data: Bytes
29
+ }
30
+
31
+
32
+ export interface SubmittedStatus {
33
+ type: 'SubmittedStatus'
34
+ time: bigint
35
+ }
36
+
37
+
38
+ export interface SuccessStatus {
39
+ type: 'SuccessStatus'
40
+ transactionId: Bytes
41
+ time: bigint
42
+ programState?: ProgramState
43
+ }
44
+
45
+
46
+ export interface SqueezedOutStatus {
47
+ type: 'SqueezedOutStatus'
48
+ reason: string
49
+ }
50
+
51
+
52
+ export interface FailureStatus {
53
+ type: 'FailureStatus'
54
+ transactionId: Bytes
55
+ time: bigint
56
+ reason: string
57
+ programState?: ProgramState
58
+ }
59
+
60
+
61
+ export type Status = SubmittedStatus | SuccessStatus | SqueezedOutStatus | FailureStatus
62
+
63
+
64
+ export type TransactionType = 'Script' | 'Create' | 'Mint'
65
+
66
+
67
+ export interface Transaction {
68
+ index: number
69
+ hash: Bytes
70
+ inputAssetIds?: Bytes[]
71
+ inputContracts?: Bytes[]
72
+ inputContract?: {
73
+ utxoId: Bytes
74
+ balanceRoot: Bytes
75
+ stateRoot: Bytes
76
+ txPointer: string
77
+ contract: Bytes
78
+ }
79
+ policies?: Policies
80
+ gasPrice?: bigint
81
+ scriptGasLimit?: bigint
82
+ maturity?: number
83
+ mintAmount?: bigint
84
+ mintAssetId?: Bytes
85
+ txPointer?: string
86
+ isScript: boolean
87
+ isCreate: boolean
88
+ isMint: boolean
89
+ type: TransactionType
90
+ outputContract?: {
91
+ inputIndex: number
92
+ balanceRoot: Bytes
93
+ stateRoot: Bytes
94
+ }
95
+ witnesses?: Bytes[]
96
+ receiptsRoot?: Bytes
97
+ status: Status
98
+ script?: Bytes
99
+ scriptData?: Bytes
100
+ bytecodeWitnessIndex?: number
101
+ bytecodeLength?: bigint
102
+ salt?: Bytes
103
+ storageSlots?: Bytes[]
104
+ rawPayload?: Bytes
105
+ }
106
+
107
+
108
+ export interface InputCoin {
109
+ type: 'InputCoin'
110
+ index: number
111
+ transactionIndex: number
112
+ utxoId: Bytes
113
+ owner: Bytes
114
+ amount: bigint
115
+ assetId: Bytes
116
+ txPointer: string
117
+ witnessIndex: number
118
+ maturity: number
119
+ predicateGasUsed: bigint
120
+ predicate: Bytes
121
+ predicateData: Bytes
122
+ }
123
+
124
+
125
+ export interface InputContract {
126
+ type: 'InputContract'
127
+ index: number
128
+ transactionIndex: number
129
+ utxoId: Bytes
130
+ balanceRoot: Bytes
131
+ stateRoot: Bytes
132
+ txPointer: string
133
+ contract: Bytes
134
+ }
135
+
136
+
137
+ export interface InputMessage {
138
+ type: 'InputMessage'
139
+ index: number
140
+ transactionIndex: number
141
+ sender: Bytes
142
+ recipient: Bytes
143
+ amount: bigint
144
+ nonce: Bytes
145
+ witnessIndex: number
146
+ predicateGasUsed: bigint
147
+ data: Bytes
148
+ predicate: Bytes
149
+ predicateData: Bytes
150
+ }
151
+
152
+
153
+ export type InputType = 'InputCoin' | 'InputContract' | 'InputMessage'
154
+
155
+
156
+ export type TransactionInput = InputCoin | InputContract | InputMessage
157
+
158
+
159
+ export interface CoinOutput {
160
+ type: 'CoinOutput'
161
+ index: number
162
+ transactionIndex: number
163
+ to: Bytes
164
+ amount: bigint
165
+ assetId: Bytes
166
+ }
167
+
168
+
169
+ export interface ContractOutput {
170
+ type: 'ContractOutput'
171
+ index: number
172
+ transactionIndex: number
173
+ inputIndex: number
174
+ balanceRoot: Bytes
175
+ stateRoot: Bytes
176
+ }
177
+
178
+
179
+ export interface ChangeOutput {
180
+ type: 'ChangeOutput'
181
+ index: number
182
+ transactionIndex: number
183
+ to: Bytes
184
+ amount: bigint
185
+ assetId: Bytes
186
+ }
187
+
188
+
189
+ export interface VariableOutput {
190
+ type: 'VariableOutput'
191
+ index: number
192
+ transactionIndex: number
193
+ to: Bytes
194
+ amount: bigint
195
+ assetId: Bytes
196
+ }
197
+
198
+
199
+ export interface ContractCreated {
200
+ type: 'ContractCreated'
201
+ index: number
202
+ transactionIndex: number
203
+ contract: {
204
+ id: Bytes
205
+ bytecode: Bytes
206
+ salt: Bytes
207
+ }
208
+ stateRoot: Bytes
209
+ }
210
+
211
+
212
+ export type OutputType = 'CoinOutput' | 'ContractOutput' | 'ChangeOutput' | 'VariableOutput' | 'ContractCreated'
213
+
214
+
215
+ export type TransactionOutput = CoinOutput | ContractOutput | ChangeOutput | VariableOutput | ContractCreated
216
+
217
+
218
+ export type ReceiptType = 'CALL' | 'RETURN' | 'RETURN_DATA' | 'PANIC' | 'REVERT' | 'LOG' | 'LOG_DATA' | 'TRANSFER' | 'TRANSFER_OUT' | 'SCRIPT_RESULT' | 'MESSAGE_OUT' | 'MINT' | 'BURN'
219
+
220
+
221
+ export interface Receipt {
222
+ index: number
223
+ transactionIndex: number
224
+ contract?: Bytes
225
+ pc?: bigint
226
+ is?: bigint
227
+ to?: Bytes
228
+ toAddress?: Bytes
229
+ amount?: bigint
230
+ assetId?: Bytes
231
+ gas?: bigint
232
+ param1?: bigint
233
+ param2?: bigint
234
+ val?: bigint
235
+ ptr?: bigint
236
+ digest?: Bytes
237
+ reason?: bigint
238
+ ra?: bigint
239
+ rb?: bigint
240
+ rc?: bigint
241
+ rd?: bigint
242
+ len?: bigint
243
+ receiptType: ReceiptType
244
+ result?: bigint
245
+ gasUsed?: bigint
246
+ data?: Bytes
247
+ sender?: Bytes
248
+ recipient?: Bytes
249
+ nonce?: Bytes
250
+ contractId?: Bytes
251
+ subId?: Bytes
252
+ }
253
+
254
+
255
+ export interface Block {
256
+ header: BlockHeader
257
+ transactions: Transaction[]
258
+ inputs: TransactionInput[]
259
+ outputs: TransactionOutput[]
260
+ receipts: Receipt[]
261
+ }
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './data'
2
+ export * from './mapping'
package/src/mapping.ts ADDED
@@ -0,0 +1,372 @@
1
+ import {unexpectedCase} from '@subsquid/util-internal'
2
+ import * as raw from '@subsquid/fuel-data/lib/raw-data'
3
+ import assert from 'assert'
4
+ import {
5
+ Status,
6
+ ProgramState,
7
+ Transaction,
8
+ Policies,
9
+ TransactionInput,
10
+ TransactionOutput,
11
+ Receipt,
12
+ Block,
13
+ BlockHeader
14
+ } from './data'
15
+
16
+
17
+ function toInteger(val: string): number {
18
+ let int = parseInt(val)
19
+ assert(Number.isSafeInteger(int))
20
+ return int
21
+ }
22
+
23
+
24
+ function isEmpty(obj: object): boolean {
25
+ for (let _ in obj) {
26
+ return false
27
+ }
28
+ return true
29
+ }
30
+
31
+
32
+ function mapRawTransactionStatus(raw: raw.TransactionStatus): Status {
33
+ let programState: ProgramState | undefined
34
+ switch (raw.__typename) {
35
+ case 'FailureStatus':
36
+ if (raw.programState) {
37
+ programState = {
38
+ data: raw.programState.data,
39
+ returnType: raw.programState.returnType
40
+ }
41
+ }
42
+ return {
43
+ type: 'FailureStatus',
44
+ transactionId: raw.transactionId,
45
+ time: BigInt(raw.time),
46
+ reason: raw.reason,
47
+ programState
48
+ }
49
+ case 'SqueezedOutStatus':
50
+ return {
51
+ type: 'SqueezedOutStatus',
52
+ reason: raw.reason
53
+ }
54
+ case 'SubmittedStatus':
55
+ return {
56
+ type: 'SubmittedStatus',
57
+ time: BigInt(raw.time)
58
+ }
59
+ case 'SuccessStatus':
60
+ if (raw.programState) {
61
+ programState = {
62
+ data: raw.programState.data,
63
+ returnType: raw.programState.returnType
64
+ }
65
+ }
66
+ return {
67
+ type: 'SuccessStatus',
68
+ time: BigInt(raw.time),
69
+ transactionId: raw.transactionId,
70
+ programState,
71
+ }
72
+ }
73
+ }
74
+
75
+
76
+ function mapRawPolicies(raw: raw.Policies | null): Policies | undefined {
77
+ let policies: Policies = {}
78
+ if (raw?.gasPrice) {
79
+ policies.gasPrice = BigInt(raw.gasPrice)
80
+ }
81
+ if (raw?.maturity) {
82
+ policies.maturity = toInteger(raw.maturity)
83
+ }
84
+ if (raw?.maxFee) {
85
+ policies.maxFee = BigInt(raw.maxFee)
86
+ }
87
+ if (raw?.witnessLimit) {
88
+ policies.witnessLimit = BigInt(raw.witnessLimit)
89
+ }
90
+ return isEmpty(policies) ? undefined : policies
91
+ }
92
+
93
+
94
+ function getTransactionType(raw: raw.Transaction) {
95
+ if (raw.isScript) {
96
+ return 'Script'
97
+ } else if (raw.isCreate) {
98
+ return 'Create'
99
+ } else if (raw.isMint) {
100
+ return 'Mint'
101
+ } else {
102
+ throw unexpectedCase()
103
+ }
104
+ }
105
+
106
+
107
+ function mapRawTransaction(raw: raw.Transaction, transactionIndex: number): Transaction {
108
+ let transaction: Transaction = {
109
+ index: transactionIndex,
110
+ hash: raw.id,
111
+ isCreate: raw.isCreate,
112
+ isMint: raw.isMint,
113
+ isScript: raw.isScript,
114
+ type: getTransactionType(raw),
115
+ status: mapRawTransactionStatus(raw.status),
116
+ policies: mapRawPolicies(raw.policies),
117
+ salt: raw.salt ?? undefined,
118
+ storageSlots: raw.storageSlots ?? undefined,
119
+ rawPayload: raw.rawPayload ?? undefined,
120
+ mintAssetId: raw.mintAssetId ?? undefined,
121
+ txPointer: raw.txPointer ?? undefined,
122
+ outputContract: raw.outputContract ?? undefined,
123
+ witnesses: raw.witnesses ?? undefined,
124
+ receiptsRoot: raw.receiptsRoot ?? undefined,
125
+ script: raw.script ?? undefined,
126
+ scriptData: raw.scriptData ?? undefined,
127
+ bytecodeWitnessIndex: raw.bytecodeWitnessIndex ?? undefined,
128
+ inputAssetIds: raw.inputAssetIds ?? undefined,
129
+ inputContracts: raw.inputContracts?.map(i => i.id),
130
+ }
131
+
132
+ if (raw.inputContract) {
133
+ transaction.inputContract = {
134
+ utxoId: raw.inputContract.utxoId,
135
+ balanceRoot: raw.inputContract.balanceRoot,
136
+ stateRoot: raw.inputContract.stateRoot,
137
+ txPointer: raw.inputContract.txPointer,
138
+ contract: raw.inputContract.contract.id,
139
+ }
140
+ }
141
+ if (raw.gasPrice) {
142
+ transaction.gasPrice = BigInt(raw.gasPrice)
143
+ }
144
+ if (raw.scriptGasLimit) {
145
+ transaction.scriptGasLimit = BigInt(raw.scriptGasLimit)
146
+ }
147
+ if (raw.maturity) {
148
+ transaction.maturity = toInteger(raw.maturity)
149
+ }
150
+ if (raw.mintAmount) {
151
+ transaction.mintAmount = BigInt(raw.mintAmount)
152
+ }
153
+ if (raw.bytecodeLength) {
154
+ transaction.bytecodeLength = BigInt(raw.bytecodeLength)
155
+ }
156
+
157
+ return transaction
158
+ }
159
+
160
+
161
+ function mapRawInput(raw: raw.TransactionInput, transactionIndex: number, index: number): TransactionInput {
162
+ switch (raw.__typename) {
163
+ case 'InputCoin':
164
+ return {
165
+ type: 'InputCoin',
166
+ index,
167
+ transactionIndex,
168
+ utxoId: raw.utxoId,
169
+ owner: raw.owner,
170
+ amount: BigInt(raw.amount),
171
+ assetId: raw.assetId,
172
+ txPointer: raw.txPointer,
173
+ witnessIndex: raw.witnessIndex,
174
+ maturity: toInteger(raw.maturity),
175
+ predicateGasUsed: BigInt(raw.predicateGasUsed),
176
+ predicate: raw.predicate,
177
+ predicateData: raw.predicateData,
178
+ }
179
+ case 'InputContract':
180
+ return {
181
+ type: 'InputContract',
182
+ index,
183
+ transactionIndex,
184
+ utxoId: raw.utxoId,
185
+ balanceRoot: raw.balanceRoot,
186
+ stateRoot: raw.stateRoot,
187
+ txPointer: raw.txPointer,
188
+ contract: raw.contract.id
189
+ }
190
+ case 'InputMessage':
191
+ return {
192
+ type: 'InputMessage',
193
+ index,
194
+ transactionIndex,
195
+ sender: raw.sender,
196
+ recipient: raw.recipient,
197
+ amount: BigInt(raw.amount),
198
+ nonce: raw.nonce,
199
+ witnessIndex: raw.witnessIndex,
200
+ predicateGasUsed: BigInt(raw.predicateGasUsed),
201
+ data: raw.data,
202
+ predicate: raw.predicate,
203
+ predicateData: raw.predicateData,
204
+ }
205
+ }
206
+ }
207
+
208
+
209
+ function mapRawOutput(raw: raw.TransactionOutput, transactionIndex: number, index: number): TransactionOutput {
210
+ switch (raw.__typename) {
211
+ case 'ChangeOutput':
212
+ return {
213
+ type: 'ChangeOutput',
214
+ index,
215
+ transactionIndex,
216
+ to: raw.to,
217
+ amount: BigInt(raw.amount),
218
+ assetId: raw.assetId,
219
+ }
220
+ case 'CoinOutput':
221
+ return {
222
+ type: 'CoinOutput',
223
+ index,
224
+ transactionIndex,
225
+ to: raw.to,
226
+ amount: BigInt(raw.amount),
227
+ assetId: raw.assetId,
228
+ }
229
+ case 'ContractCreated':
230
+ return {
231
+ type: 'ContractCreated',
232
+ index,
233
+ transactionIndex,
234
+ contract: raw.contract,
235
+ stateRoot: raw.stateRoot
236
+ }
237
+ case 'ContractOutput':
238
+ return {
239
+ type: 'ContractOutput',
240
+ index,
241
+ transactionIndex,
242
+ inputIndex: raw.inputIndex,
243
+ balanceRoot: raw.balanceRoot,
244
+ stateRoot: raw.stateRoot
245
+ }
246
+ case 'VariableOutput':
247
+ return {
248
+ type: 'VariableOutput',
249
+ index,
250
+ transactionIndex,
251
+ to: raw.to,
252
+ amount: BigInt(raw.amount),
253
+ assetId: raw.assetId
254
+ }
255
+ }
256
+ }
257
+
258
+
259
+ function mapRawReceipt(raw: raw.Receipt, transactionIndex: number, index: number): Receipt {
260
+ let receipt: Receipt = {
261
+ index,
262
+ transactionIndex,
263
+ receiptType: raw.receiptType,
264
+ contract: raw.contract?.id,
265
+ to: raw.to?.id,
266
+ toAddress: raw.toAddress ?? undefined,
267
+ assetId: raw.assetId ?? undefined,
268
+ digest: raw.digest ?? undefined,
269
+ data: raw.data ?? undefined,
270
+ sender: raw.sender ?? undefined,
271
+ recipient: raw.recipient ?? undefined,
272
+ nonce: raw.nonce ?? undefined,
273
+ contractId: raw.contractId ?? undefined,
274
+ subId: raw.subId ?? undefined,
275
+ }
276
+
277
+ if (raw.pc) {
278
+ receipt.pc = BigInt(raw.pc)
279
+ }
280
+ if (raw.is) {
281
+ receipt.is = BigInt(raw.is)
282
+ }
283
+ if (raw.amount) {
284
+ receipt.amount = BigInt(raw.amount)
285
+ }
286
+ if (raw.gas) {
287
+ receipt.gas = BigInt(raw.gas)
288
+ }
289
+ if (raw.param1) {
290
+ receipt.param1 = BigInt(raw.param1)
291
+ }
292
+ if (raw.param2) {
293
+ receipt.param2 = BigInt(raw.param2)
294
+ }
295
+ if (raw.val) {
296
+ receipt.val = BigInt(raw.val)
297
+ }
298
+ if (raw.ptr) {
299
+ receipt.val = BigInt(raw.ptr)
300
+ }
301
+ if (raw.reason) {
302
+ receipt.reason = BigInt(raw.reason)
303
+ }
304
+ if (raw.ra) {
305
+ receipt.ra = BigInt(raw.ra)
306
+ }
307
+ if (raw.rb) {
308
+ receipt.rb = BigInt(raw.rb)
309
+ }
310
+ if (raw.rc) {
311
+ receipt.rc = BigInt(raw.rc)
312
+ }
313
+ if (raw.rd) {
314
+ receipt.rd = BigInt(raw.rd)
315
+ }
316
+ if (raw.len) {
317
+ receipt.len = BigInt(raw.len)
318
+ }
319
+ if (raw.result) {
320
+ receipt.result = BigInt(raw.result)
321
+ }
322
+ if (raw.gasUsed) {
323
+ receipt.gasUsed = BigInt(raw.gasUsed)
324
+ }
325
+
326
+ return receipt
327
+ }
328
+
329
+
330
+ export function mapRawBlock(raw: raw.BlockData): Block {
331
+ let header: BlockHeader = {
332
+ hash: raw.block.header.id,
333
+ height: toInteger(raw.block.header.height),
334
+ daHeight: BigInt(raw.block.header.daHeight),
335
+ transactionsRoot: raw.block.header.transactionsRoot,
336
+ transactionsCount: BigInt(raw.block.header.transactionsCount),
337
+ messageReceiptRoot: raw.block.header.messageReceiptRoot,
338
+ messageReceiptCount: BigInt(raw.block.header.messageReceiptCount),
339
+ prevRoot: raw.block.header.prevRoot,
340
+ time: BigInt(raw.block.header.time),
341
+ applicationHash: raw.block.header.applicationHash,
342
+ }
343
+
344
+ let transactions: Transaction[] = []
345
+ let inputs: TransactionInput[] = []
346
+ let outputs: TransactionOutput[] = []
347
+ let receipts: Receipt[] = []
348
+
349
+ raw.block.transactions.forEach((tx, index) => {
350
+ transactions.push(mapRawTransaction(tx, index))
351
+
352
+ tx.inputs?.forEach((input, inputIndex) => {
353
+ inputs.push(mapRawInput(input, index, inputIndex))
354
+ })
355
+
356
+ tx.outputs?.forEach((output, outputIndex) => {
357
+ outputs.push(mapRawOutput(output, index, outputIndex))
358
+ })
359
+
360
+ tx.receipts?.forEach((receipt, receiptIndex) => {
361
+ receipts.push(mapRawReceipt(receipt, index, receiptIndex))
362
+ })
363
+ })
364
+
365
+ return {
366
+ header,
367
+ transactions,
368
+ inputs,
369
+ outputs,
370
+ receipts,
371
+ }
372
+ }