@subsquid/solana-normalization 0.0.4 → 1.0.0-portal-api.6f7a57

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/mapping.js CHANGED
@@ -6,32 +6,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.mapRpcBlock = mapRpcBlock;
7
7
  const util_internal_1 = require("@subsquid/util-internal");
8
8
  const assert_1 = __importDefault(require("assert"));
9
+ const instruction_parser_1 = require("./instruction-parser");
9
10
  const log_parser_1 = require("./log-parser");
10
- function mapRpcBlock(src) {
11
+ const transaction_context_1 = require("./transaction-context");
12
+ function mapRpcBlock(slot, src, journal) {
11
13
  let header = {
12
- hash: src.hash,
13
- height: src.height,
14
- slot: src.slot,
15
- parentSlot: src.block.parentSlot,
16
- parentHash: src.block.previousBlockhash,
17
- timestamp: src.block.blockTime ?? 0
14
+ hash: src.blockhash,
15
+ height: (0, util_internal_1.assertNotNull)(src.blockHeight, '.blockHeight is not available'),
16
+ number: slot,
17
+ parentNumber: src.parentSlot,
18
+ parentHash: src.previousBlockhash,
19
+ timestamp: src.blockTime ?? 0
18
20
  };
19
- let instructions = [];
20
- let logs = [];
21
- let balances = [];
22
- let tokenBalances = [];
23
- let transactions = src.block.transactions
24
- ?.map((tx, i) => {
25
- try {
26
- return mapRpcTransaction(i, tx, instructions, logs, balances, tokenBalances);
27
- }
28
- catch (err) {
29
- throw (0, util_internal_1.addErrorContext)(err, {
30
- blockTransaction: tx.transaction.signatures[0]
31
- });
32
- }
33
- }) ?? [];
34
- let rewards = src.block.rewards?.map(s => {
21
+ let items = new ItemMapping(journal, src);
22
+ let rewards = src.rewards?.map(s => {
35
23
  let reward = {
36
24
  pubkey: s.pubkey,
37
25
  lamports: BigInt(s.lamports),
@@ -47,16 +35,78 @@ function mapRpcBlock(src) {
47
35
  });
48
36
  return {
49
37
  header,
50
- transactions,
51
- instructions,
52
- logs,
53
- balances,
54
- tokenBalances,
38
+ transactions: items.transactions,
39
+ instructions: items.instructions,
40
+ logs: items.logs,
41
+ balances: items.balances,
42
+ tokenBalances: items.tokenBalances,
55
43
  rewards: rewards || []
56
44
  };
57
45
  }
58
- function mapRpcTransaction(transactionIndex, src, instructions, logs, balances, tokenBalances) {
59
- let tx = {
46
+ class ItemMapping {
47
+ constructor(journal, block) {
48
+ this.journal = journal;
49
+ this.transactions = [];
50
+ this.instructions = [];
51
+ this.logs = [];
52
+ this.balances = [];
53
+ this.tokenBalances = [];
54
+ let transactions = block.transactions ?? [];
55
+ for (let i = 0; i < transactions.length; i++) {
56
+ let tx = transactions[i];
57
+ try {
58
+ this.processTransaction(i, tx);
59
+ }
60
+ catch (err) {
61
+ throw (0, util_internal_1.addErrorContext)(err, {
62
+ transactionHash: tx.transaction.signatures[0]
63
+ });
64
+ }
65
+ }
66
+ }
67
+ processTransaction(transactionIndex, src) {
68
+ let mapped = mapTransaction(transactionIndex, src);
69
+ let ctx = new transaction_context_1.TransactionContext(transactionIndex, src, this.journal);
70
+ let messages = new instruction_parser_1.MessageStream(src.meta.logMessages ?? []);
71
+ let insCheckPoint = this.instructions.length;
72
+ let logCheckPoint = this.logs.length;
73
+ try {
74
+ this.traverseInstructions(ctx, messages);
75
+ mapped.hasDroppedLogMessages = messages.truncated;
76
+ }
77
+ catch (err) {
78
+ if (err instanceof instruction_parser_1.ParsingError) {
79
+ // report parsing problem
80
+ let { msg, ...props } = err;
81
+ ctx.error(props, msg);
82
+ // reparse without log messages
83
+ mapped.hasDroppedLogMessages = true;
84
+ // restore state before failed traversal
85
+ this.instructions = this.instructions.slice(0, insCheckPoint);
86
+ this.logs = this.logs.slice(0, logCheckPoint);
87
+ // traverse again with dummy truncated MessageStream
88
+ this.traverseInstructions(ctx, new instruction_parser_1.MessageStream([new log_parser_1.LogTruncatedMessage().toString()]));
89
+ }
90
+ else {
91
+ throw err;
92
+ }
93
+ }
94
+ this.transactions.push(mapped);
95
+ this.balances.push(...mapBalances(ctx));
96
+ this.tokenBalances.push(...mapTokenBalances(ctx));
97
+ }
98
+ traverseInstructions(ctx, messages) {
99
+ for (let i = 0; i < ctx.tx.transaction.message.instructions.length; i++) {
100
+ let ins = ctx.tx.transaction.message.instructions[i];
101
+ let inner = ctx.tx.meta.innerInstructions?.flatMap(pack => {
102
+ return pack.index === i ? pack.instructions : [];
103
+ });
104
+ new instruction_parser_1.InstructionTreeTraversal(ctx, messages, i, ins, inner ?? [], this.instructions, this.logs);
105
+ }
106
+ }
107
+ }
108
+ function mapTransaction(transactionIndex, src) {
109
+ return {
60
110
  transactionIndex,
61
111
  version: src.version,
62
112
  accountKeys: src.transaction.message.accountKeys,
@@ -72,279 +122,11 @@ function mapRpcTransaction(transactionIndex, src, instructions, logs, balances,
72
122
  loadedAddresses: src.meta.loadedAddresses ?? { readonly: [], writable: [] },
73
123
  hasDroppedLogMessages: false
74
124
  };
75
- let accounts;
76
- if (tx.version === 'legacy') {
77
- accounts = tx.accountKeys;
78
- }
79
- else {
80
- (0, assert_1.default)(src.meta?.loadedAddresses);
81
- accounts = tx.accountKeys.concat(src.meta.loadedAddresses.writable, src.meta.loadedAddresses.readonly);
82
- }
83
- let getAccount = (index) => {
84
- (0, assert_1.default)(index < accounts.length);
85
- return accounts[index];
86
- };
87
- new InstructionParser(getAccount, tx, src, src.meta.logMessages?.map(log_parser_1.parseLogMessage), instructions, logs).parse();
88
- balances.push(...mapBalances(getAccount, transactionIndex, src));
89
- tokenBalances.push(...mapTokenBalances(getAccount, transactionIndex, src));
90
- return tx;
91
- }
92
- const PROGRAMS_MISSING_INVOKE_LOG = new Set([
93
- 'AddressLookupTab1e1111111111111111111111111',
94
- 'BPFLoader1111111111111111111111111111111111',
95
- 'BPFLoader2111111111111111111111111111111111',
96
- 'BPFLoaderUpgradeab1e11111111111111111111111',
97
- 'Ed25519SigVerify111111111111111111111111111',
98
- 'KeccakSecp256k11111111111111111111111111111',
99
- 'NativeLoader1111111111111111111111111111111',
100
- 'ZkTokenProof1111111111111111111111111111111',
101
- ]);
102
- class InstructionParser {
103
- constructor(getAccount, tx, src, messages, instructions, logs) {
104
- this.getAccount = getAccount;
105
- this.tx = tx;
106
- this.src = src;
107
- this.instructions = instructions;
108
- this.logs = logs;
109
- this.pos = 0;
110
- this.messagePos = 0;
111
- this.messagesTruncated = false;
112
- this.lastAddress = [];
113
- if (messages == null) {
114
- this.messages = [];
115
- this.messagesTruncated = true;
116
- }
117
- else {
118
- this.messages = messages;
119
- }
120
- let err = this.src.meta.err;
121
- if (err) {
122
- if ('InstructionError' in err) {
123
- let pos = err['InstructionError'][0];
124
- (0, assert_1.default)(typeof pos == 'number');
125
- (0, assert_1.default)(0 <= pos && pos < this.src.transaction.message.instructions.length);
126
- this.errorPos = pos;
127
- }
128
- }
129
- }
130
- parse() {
131
- while (this.pos < this.src.transaction.message.instructions.length) {
132
- let instruction = this.src.transaction.message.instructions[this.pos];
133
- let inner = this.src.meta.innerInstructions
134
- ?.filter(i => i.index === this.pos)
135
- .flatMap(i => i.instructions) ?? [];
136
- if (this.errorPos == null || this.errorPos >= this.pos) {
137
- let instructions = [instruction].concat(inner);
138
- let end = this.traverse(instructions, 0, 1);
139
- (0, assert_1.default)(end == instructions.length);
140
- }
141
- else {
142
- this.assert(inner.length == 0, false, 0, 'seemingly non-executed instruction has inner instructions');
143
- this.push(1, instruction);
144
- }
145
- this.pos += 1;
146
- }
147
- this.tx.hasDroppedLogMessages = this.tx.hasDroppedLogMessages || this.messagesTruncated;
148
- }
149
- traverse(instructions, pos, stackHeight) {
150
- this.assert(pos < instructions.length, true, 0, 'unexpected and of inner instructions');
151
- let instruction = instructions[pos];
152
- this.assert(instruction.stackHeight == null || instruction.stackHeight == stackHeight, false, pos, 'instruction has unexpected stack height');
153
- let msg;
154
- if (this.messagePos < this.messages.length) {
155
- msg = this.messages[this.messagePos];
156
- }
157
- if (msg?.kind == 'truncate') {
158
- this.messagePos += 1;
159
- this.messagesTruncated = true;
160
- }
161
- if (this.messagesTruncated) {
162
- this.push(stackHeight, instruction);
163
- return this.logLessTraversal(stackHeight, instructions, pos + 1);
164
- }
165
- let programId = this.getAccount(instruction.programIdIndex);
166
- if (msg?.kind === 'invoke' && msg.programId === programId) {
167
- this.assert(msg.stackHeight == stackHeight, true, pos, 'invoke message has unexpected stack height');
168
- this.messagePos += 1;
169
- return this.invokeInstruction(stackHeight, instructions, pos);
170
- }
171
- if (PROGRAMS_MISSING_INVOKE_LOG.has(programId)) {
172
- let dropped = this.dropInvokeLessInstructionMessages(pos);
173
- let ins = this.push(stackHeight, instruction);
174
- ins.hasDroppedLogMessages = ins.hasDroppedLogMessages || dropped;
175
- this.tx.hasDroppedLogMessages = this.tx.hasDroppedLogMessages || dropped;
176
- return this.invokeLessTraversal(dropped, stackHeight, instructions, pos + 1);
177
- }
178
- // FIXME: add an option to ignore this
179
- throw this.error(true, pos, 'missing invoke message');
180
- }
181
- dropInvokeLessInstructionMessages(pos) {
182
- let initialPos = this.messagePos;
183
- while (this.messagePos < this.messages.length && !this.messagesTruncated) {
184
- let msg = this.messages[this.messagePos];
185
- switch (msg.kind) {
186
- case 'log':
187
- case 'data':
188
- case 'cu':
189
- case 'other':
190
- this.messagePos += 1;
191
- break;
192
- case 'truncate':
193
- this.messagePos += 1;
194
- this.messagesTruncated = true;
195
- return true;
196
- case 'invoke':
197
- return this.messagePos - initialPos > 0;
198
- case 'invoke-result':
199
- throw this.error(true, pos, `invoke result message does not match any invoke`);
200
- default:
201
- throw (0, util_internal_1.unexpectedCase)();
202
- }
203
- }
204
- return false;
205
- }
206
- invokeInstruction(stackHeight, instructions, instructionPos) {
207
- let ins = this.push(stackHeight, instructions[instructionPos]);
208
- let pos = instructionPos + 1;
209
- while (true) {
210
- let token = this.takeInstructionMessages(ins, instructionPos);
211
- switch (token.kind) {
212
- case 'invoke':
213
- pos = this.traverse(instructions, pos, stackHeight + 1);
214
- break;
215
- case 'invoke-result':
216
- if (token.programId != ins.programId) {
217
- throw this.error(true, instructionPos, `invoke result message and instruction program ids don't match`);
218
- }
219
- if (token.error) {
220
- ins.error = token.error;
221
- }
222
- pos = this.invokeLessTraversal(true, stackHeight, instructions, pos);
223
- this.messagePos += 1;
224
- return pos;
225
- case 'truncate':
226
- ins.hasDroppedLogMessages = true;
227
- return this.logLessTraversal(stackHeight, instructions, pos);
228
- default:
229
- throw (0, util_internal_1.unexpectedCase)();
230
- }
231
- }
232
- }
233
- takeInstructionMessages(ins, pos) {
234
- if (this.messagesTruncated)
235
- return new log_parser_1.LogTruncatedMessage();
236
- while (this.messagePos < this.messages.length) {
237
- let msg = this.messages[this.messagePos];
238
- switch (msg.kind) {
239
- case 'log':
240
- case 'data':
241
- case 'other':
242
- this.logs.push({
243
- transactionIndex: ins.transactionIndex,
244
- logIndex: this.messagePos,
245
- instructionAddress: ins.instructionAddress,
246
- programId: ins.programId,
247
- kind: msg.kind,
248
- message: msg.message
249
- });
250
- break;
251
- case 'cu':
252
- if (ins.programId != msg.programId) {
253
- throw this.error(true, pos, 'unexpected programId in compute unit message');
254
- }
255
- ins.computeUnitsConsumed = msg.consumed;
256
- break;
257
- case 'invoke':
258
- case 'invoke-result':
259
- return msg;
260
- case 'truncate':
261
- this.messagesTruncated = true;
262
- this.messagePos += 1;
263
- return msg;
264
- default:
265
- throw (0, util_internal_1.unexpectedCase)();
266
- }
267
- this.messagePos += 1;
268
- }
269
- throw this.error(false, pos, 'unexpected end of log messages');
270
- }
271
- invokeLessTraversal(messagesDropped, parentStackHeight, instructions, pos) {
272
- return this.logLessTraversal(parentStackHeight, instructions, pos, (ins, pos) => {
273
- ins.hasDroppedLogMessages = ins.hasDroppedLogMessages || messagesDropped;
274
- if (PROGRAMS_MISSING_INVOKE_LOG.has(ins.programId)) {
275
- }
276
- else if (this.tx.err &&
277
- 'InstructionError' in this.tx.err &&
278
- this.tx.err.InstructionError[1] === 'CallDepth') {
279
- }
280
- else {
281
- throw this.error(false, pos, 'invoke message is missing');
282
- }
283
- });
284
- }
285
- logLessTraversal(parentStackHeight, instructions, pos, cb) {
286
- while (pos < instructions.length) {
287
- let instruction = instructions[pos];
288
- let stackHeight = instruction.stackHeight ?? 2;
289
- if (stackHeight > parentStackHeight) {
290
- let ins = this.push(stackHeight, instruction);
291
- cb?.(ins, pos);
292
- pos += 1;
293
- }
294
- else {
295
- return pos;
296
- }
297
- }
298
- return pos;
299
- }
300
- push(stackHeight, src) {
301
- (0, assert_1.default)(stackHeight > 0);
302
- if (src.stackHeight != null) {
303
- (0, assert_1.default)(stackHeight === src.stackHeight);
304
- }
305
- let address = this.lastAddress.slice();
306
- while (address.length > stackHeight) {
307
- address.pop();
308
- }
309
- if (address.length === stackHeight) {
310
- address[stackHeight - 1] += 1;
311
- }
312
- else {
313
- (0, assert_1.default)(address.length + 1 == stackHeight);
314
- address[stackHeight - 1] = 0;
315
- }
316
- let i = {
317
- transactionIndex: this.tx.transactionIndex,
318
- instructionAddress: address,
319
- programId: this.getAccount(src.programIdIndex),
320
- accounts: src.accounts.map(a => this.getAccount(a)),
321
- data: src.data,
322
- isCommitted: !this.tx.err,
323
- hasDroppedLogMessages: this.messagesTruncated
324
- };
325
- this.instructions.push(i);
326
- this.lastAddress = address;
327
- return i;
328
- }
329
- assert(ok, withMessagePos, innerPos, msg) {
330
- if (!ok)
331
- throw this.error(withMessagePos, innerPos, msg);
332
- }
333
- error(withMessagePos, innerPos, msg) {
334
- let loc = `stopped at instruction ${this.pos}`;
335
- if (innerPos > 0) {
336
- loc += `, inner instruction ${innerPos - 1})`;
337
- }
338
- if (withMessagePos && this.messagePos < this.messages.length) {
339
- loc += ` and log message ${this.messagePos}`;
340
- }
341
- return new Error(`Failed to process transaction ${this.tx.signatures[0]}: ${loc}: ${msg}`);
342
- }
343
125
  }
344
- function mapBalances(getAccount, transactionIndex, tx) {
126
+ function mapBalances(ctx) {
345
127
  let balances = [];
346
- let pre = tx.meta.preBalances;
347
- let post = tx.meta.postBalances;
128
+ let pre = ctx.tx.meta.preBalances;
129
+ let post = ctx.tx.meta.postBalances;
348
130
  (0, assert_1.default)(pre.length == post.length);
349
131
  for (let i = 0; i < pre.length; i++) {
350
132
  if (pre[i] === post[i]) {
@@ -352,8 +134,8 @@ function mapBalances(getAccount, transactionIndex, tx) {
352
134
  }
353
135
  else {
354
136
  balances.push({
355
- transactionIndex,
356
- account: getAccount(i),
137
+ transactionIndex: ctx.transactionIndex,
138
+ account: ctx.getAccount(i),
357
139
  pre: BigInt(pre[i]),
358
140
  post: BigInt(post[i])
359
141
  });
@@ -368,15 +150,15 @@ function mapBalances(getAccount, transactionIndex, tx) {
368
150
  });
369
151
  return balances;
370
152
  }
371
- function mapTokenBalances(getAccount, transactionIndex, tx) {
153
+ function mapTokenBalances(ctx) {
372
154
  let balances = [];
373
- let preBalances = new Map(tx.meta.preTokenBalances?.map(b => [getAccount(b.accountIndex), b]));
374
- let postBalances = new Map(tx.meta.postTokenBalances?.map(b => [getAccount(b.accountIndex), b]));
155
+ let preBalances = new Map(ctx.tx.meta.preTokenBalances?.map(b => [ctx.getAccount(b.accountIndex), b]));
156
+ let postBalances = new Map(ctx.tx.meta.postTokenBalances?.map(b => [ctx.getAccount(b.accountIndex), b]));
375
157
  for (let [account, post] of postBalances.entries()) {
376
158
  let pre = preBalances.get(account);
377
159
  if (pre) {
378
160
  balances.push({
379
- transactionIndex,
161
+ transactionIndex: ctx.transactionIndex,
380
162
  account,
381
163
  preProgramId: pre.programId ?? undefined,
382
164
  preMint: pre.mint,
@@ -392,7 +174,7 @@ function mapTokenBalances(getAccount, transactionIndex, tx) {
392
174
  }
393
175
  else {
394
176
  balances.push({
395
- transactionIndex,
177
+ transactionIndex: ctx.transactionIndex,
396
178
  account,
397
179
  postProgramId: post.programId ?? undefined,
398
180
  postMint: post.mint,
@@ -406,7 +188,7 @@ function mapTokenBalances(getAccount, transactionIndex, tx) {
406
188
  if (postBalances.has(account))
407
189
  continue;
408
190
  balances.push({
409
- transactionIndex,
191
+ transactionIndex: ctx.transactionIndex,
410
192
  account,
411
193
  preProgramId: pre.programId ?? undefined,
412
194
  preMint: pre.mint,
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mapping.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.test.d.ts","sourceRoot":"","sources":["../src/mapping.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const util_internal_json_1 = require("@subsquid/util-internal-json");
27
+ const util_internal_json_fix_unsafe_integers_1 = require("@subsquid/util-internal-json-fix-unsafe-integers");
28
+ const assert_1 = __importStar(require("assert"));
29
+ const fs = __importStar(require("fs"));
30
+ const node_test_1 = require("node:test");
31
+ const Path = __importStar(require("path"));
32
+ const mapping_1 = require("./mapping");
33
+ const votes_1 = require("./votes");
34
+ const FIXTURES_DIR = Path.resolve(__dirname, '../fixtures');
35
+ function* listFixtures() {
36
+ for (let name of fs.readdirSync(FIXTURES_DIR)) {
37
+ let block;
38
+ let result;
39
+ try {
40
+ block = JSON.parse((0, util_internal_json_fix_unsafe_integers_1.fixUnsafeIntegers)(fs.readFileSync(Path.join(FIXTURES_DIR, name, 'block.json'), 'utf-8')));
41
+ result = JSON.parse(fs.readFileSync(Path.join(FIXTURES_DIR, name, 'result.json'), 'utf-8'));
42
+ }
43
+ catch (err) {
44
+ if (err.code === 'ENOENT' || err.code == 'ENOTDIR') {
45
+ continue;
46
+ }
47
+ else {
48
+ throw err;
49
+ }
50
+ }
51
+ yield { name, block, result };
52
+ }
53
+ }
54
+ const failingJournal = {
55
+ warn(props, msg) {
56
+ throw new Error(`got warning: ${msg}, props: ${JSON.stringify(props)}`);
57
+ },
58
+ error(props, msg) {
59
+ throw new Error(`got error: ${msg}, props: ${JSON.stringify(props)}`);
60
+ }
61
+ };
62
+ for (let fix of listFixtures()) {
63
+ (0, node_test_1.it)(fix.name, () => {
64
+ let result = (0, mapping_1.mapRpcBlock)(0, fix.block, failingJournal);
65
+ (0, votes_1.removeVotes)(result);
66
+ let resultJson = normalizeJson(result);
67
+ try {
68
+ assert_1.default.deepStrictEqual(resultJson, fix.result);
69
+ }
70
+ catch (err) {
71
+ // diff, that comes from deepStrictEqual is not useful for large objects
72
+ fs.writeFileSync(Path.join(FIXTURES_DIR, fix.name, 'result.temp.json'), JSON.stringify(resultJson, null, 2));
73
+ (0, assert_1.fail)('result is different from a reference');
74
+ }
75
+ });
76
+ }
77
+ function normalizeJson(obj) {
78
+ return JSON.parse(JSON.stringify((0, util_internal_json_1.toJSON)(obj)));
79
+ }
80
+ //# sourceMappingURL=mapping.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.test.js","sourceRoot":"","sources":["../src/mapping.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,qEAAmD;AACnD,6GAAkF;AAClF,iDAAmC;AACnC,uCAAwB;AACxB,yCAA4B;AAC5B,2CAA4B;AAC5B,uCAA8C;AAC9C,mCAAmC;AAGnC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;AAU3D,QAAQ,CAAC,CAAC,YAAY;IAClB,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,IAAI,KAAe,CAAA;QACnB,IAAI,MAAW,CAAA;QACf,IAAI,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,KAAK,CACd,IAAA,0DAAiB,EAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAC3F,CAAA;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CACf,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CACzE,CAAA;QACL,CAAC;QAAC,OAAM,GAAQ,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;gBACjD,SAAQ;YACZ,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,CAAA;YACb,CAAC;QACL,CAAC;QACD,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,CAAA;IAC/B,CAAC;AACL,CAAC;AAGD,MAAM,cAAc,GAAY;IAC5B,IAAI,CAAC,KAAU,EAAE,GAAW;QACxB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,KAAK,CAAC,KAAU,EAAE,GAAW;QACzB,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACzE,CAAC;CACJ,CAAA;AAGD,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE,EAAE,CAAC;IAC7B,IAAA,cAAE,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;QACd,IAAI,MAAM,GAAG,IAAA,qBAAW,EAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;QACtD,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAA;QACnB,IAAI,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC;YACD,gBAAM,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAClD,CAAC;QAAC,OAAM,GAAQ,EAAE,CAAC;YACf,wEAAwE;YACxE,EAAE,CAAC,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,EACrD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CACtC,CAAA;YACD,IAAA,aAAI,EAAC,sCAAsC,CAAC,CAAA;QAChD,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAGD,SAAS,aAAa,CAAC,GAAQ;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,2BAAM,EAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as rpc from '@subsquid/solana-rpc-data';
2
+ import { Base58Bytes } from '@subsquid/solana-rpc-data';
3
+ export interface Journal {
4
+ warn(props: any, msg: string): void;
5
+ error(props: any, msg: string): void;
6
+ }
7
+ export declare class TransactionContext {
8
+ readonly transactionIndex: number;
9
+ readonly tx: rpc.Transaction;
10
+ private journal;
11
+ readonly erroredInstruction: number;
12
+ readonly exceededCallDepth: boolean;
13
+ private accounts;
14
+ constructor(transactionIndex: number, tx: rpc.Transaction, journal: Journal);
15
+ get isCommitted(): boolean;
16
+ get transactionHash(): string;
17
+ getAccount(index: number): Base58Bytes;
18
+ warn(props: any, msg: string): void;
19
+ error(props: any, msg: string): void;
20
+ }
21
+ //# sourceMappingURL=transaction-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-context.d.ts","sourceRoot":"","sources":["../src/transaction-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AAIrD,MAAM,WAAW,OAAO;IACpB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAGD,qBAAa,kBAAkB;aAOP,gBAAgB,EAAE,MAAM;aACxB,EAAE,EAAE,GAAG,CAAC,WAAW;IACnC,OAAO,CAAC,OAAO;IARnB,SAAgB,kBAAkB,EAAE,MAAM,CAAA;IAC1C,SAAgB,iBAAiB,EAAE,OAAO,CAAA;IAE1C,OAAO,CAAC,QAAQ,CAAe;gBAGX,gBAAgB,EAAE,MAAM,EACxB,EAAE,EAAE,GAAG,CAAC,WAAW,EAC3B,OAAO,EAAE,OAAO;IA4B5B,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAKtC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQnC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CAOvC"}