@subsquid/solana-normalization 0.0.3 → 1.0.0-portal-api.d887ad

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
@@ -3,35 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.mapRpcBlock = void 0;
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,17 +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
- exports.mapRpcBlock = mapRpcBlock;
59
- function mapRpcTransaction(transactionIndex, src, instructions, logs, balances, tokenBalances) {
60
- 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 {
61
110
  transactionIndex,
62
111
  version: src.version,
63
112
  accountKeys: src.transaction.message.accountKeys,
@@ -73,275 +122,11 @@ function mapRpcTransaction(transactionIndex, src, instructions, logs, balances,
73
122
  loadedAddresses: src.meta.loadedAddresses ?? { readonly: [], writable: [] },
74
123
  hasDroppedLogMessages: false
75
124
  };
76
- let accounts;
77
- if (tx.version === 'legacy') {
78
- accounts = tx.accountKeys;
79
- }
80
- else {
81
- (0, assert_1.default)(src.meta?.loadedAddresses);
82
- accounts = tx.accountKeys.concat(src.meta.loadedAddresses.writable, src.meta.loadedAddresses.readonly);
83
- }
84
- let getAccount = (index) => {
85
- (0, assert_1.default)(index < accounts.length);
86
- return accounts[index];
87
- };
88
- new InstructionParser(getAccount, tx, src, src.meta.logMessages?.map(log_parser_1.parseLogMessage), instructions, logs).parse();
89
- balances.push(...mapBalances(getAccount, transactionIndex, src));
90
- tokenBalances.push(...mapTokenBalances(getAccount, transactionIndex, src));
91
- return tx;
92
- }
93
- const PROGRAMS_MISSING_INVOKE_LOG = new Set([
94
- 'AddressLookupTab1e1111111111111111111111111',
95
- 'BPFLoader1111111111111111111111111111111111',
96
- 'BPFLoader2111111111111111111111111111111111',
97
- 'BPFLoaderUpgradeab1e11111111111111111111111',
98
- 'Ed25519SigVerify111111111111111111111111111',
99
- 'KeccakSecp256k11111111111111111111111111111',
100
- 'NativeLoader1111111111111111111111111111111',
101
- 'ZkTokenProof1111111111111111111111111111111',
102
- ]);
103
- class InstructionParser {
104
- constructor(getAccount, tx, src, messages, instructions, logs) {
105
- this.getAccount = getAccount;
106
- this.tx = tx;
107
- this.src = src;
108
- this.instructions = instructions;
109
- this.logs = logs;
110
- this.pos = 0;
111
- this.messagePos = 0;
112
- this.messagesTruncated = false;
113
- this.lastAddress = [];
114
- if (messages == null) {
115
- this.messages = [];
116
- this.messagesTruncated = true;
117
- }
118
- else {
119
- this.messages = messages;
120
- }
121
- let err = this.src.meta.err;
122
- if (err) {
123
- if ('InstructionError' in err) {
124
- let pos = err['InstructionError'][0];
125
- (0, assert_1.default)(typeof pos == 'number');
126
- (0, assert_1.default)(0 <= pos && pos < this.src.transaction.message.instructions.length);
127
- this.errorPos = pos;
128
- }
129
- }
130
- }
131
- parse() {
132
- while (this.pos < this.src.transaction.message.instructions.length) {
133
- let instruction = this.src.transaction.message.instructions[this.pos];
134
- let inner = this.src.meta.innerInstructions
135
- ?.filter(i => i.index === this.pos)
136
- .flatMap(i => i.instructions) ?? [];
137
- if (this.errorPos == null || this.errorPos >= this.pos) {
138
- let instructions = [instruction].concat(inner);
139
- let end = this.traverse(instructions, 0, 1);
140
- (0, assert_1.default)(end == instructions.length);
141
- }
142
- else {
143
- this.assert(inner.length == 0, false, 0, 'seemingly non-executed instruction has inner instructions');
144
- this.push(1, instruction);
145
- }
146
- this.pos += 1;
147
- }
148
- this.tx.hasDroppedLogMessages = this.tx.hasDroppedLogMessages || this.messagesTruncated;
149
- }
150
- traverse(instructions, pos, stackHeight) {
151
- this.assert(pos < instructions.length, true, 0, 'unexpected and of inner instructions');
152
- let instruction = instructions[pos];
153
- this.assert(instruction.stackHeight == null || instruction.stackHeight == stackHeight, false, pos, 'instruction has unexpected stack height');
154
- let msg;
155
- if (this.messagePos < this.messages.length) {
156
- msg = this.messages[this.messagePos];
157
- }
158
- if (msg?.kind == 'truncate') {
159
- this.messagePos += 1;
160
- this.messagesTruncated = true;
161
- }
162
- if (this.messagesTruncated) {
163
- this.push(stackHeight, instruction);
164
- return this.logLessTraversal(stackHeight, instructions, pos + 1);
165
- }
166
- let programId = this.getAccount(instruction.programIdIndex);
167
- if (msg?.kind === 'invoke' && msg.programId === programId) {
168
- this.assert(msg.stackHeight == stackHeight, true, pos, 'invoke message has unexpected stack height');
169
- this.messagePos += 1;
170
- return this.invokeInstruction(stackHeight, instructions, pos);
171
- }
172
- if (PROGRAMS_MISSING_INVOKE_LOG.has(programId)) {
173
- let dropped = this.dropInvokeLessInstructionMessages(pos);
174
- let ins = this.push(stackHeight, instruction);
175
- ins.hasDroppedLogMessages = ins.hasDroppedLogMessages || dropped;
176
- this.tx.hasDroppedLogMessages = this.tx.hasDroppedLogMessages || dropped;
177
- return this.invokeLessTraversal(dropped, stackHeight, instructions, pos + 1);
178
- }
179
- // FIXME: add an option to ignore this
180
- throw this.error(true, pos, 'missing invoke message');
181
- }
182
- dropInvokeLessInstructionMessages(pos) {
183
- let initialPos = this.messagePos;
184
- while (this.messagePos < this.messages.length && !this.messagesTruncated) {
185
- let msg = this.messages[this.messagePos];
186
- switch (msg.kind) {
187
- case 'log':
188
- case 'data':
189
- case 'cu':
190
- case 'other':
191
- this.messagePos += 1;
192
- break;
193
- case 'truncate':
194
- this.messagePos += 1;
195
- this.messagesTruncated = true;
196
- return true;
197
- case 'invoke':
198
- return this.messagePos - initialPos > 0;
199
- case 'invoke-result':
200
- throw this.error(true, pos, `invoke result message does not match any invoke`);
201
- default:
202
- throw (0, util_internal_1.unexpectedCase)();
203
- }
204
- }
205
- return false;
206
- }
207
- invokeInstruction(stackHeight, instructions, instructionPos) {
208
- let ins = this.push(stackHeight, instructions[instructionPos]);
209
- let pos = instructionPos + 1;
210
- while (true) {
211
- let token = this.takeInstructionMessages(ins, instructionPos);
212
- switch (token.kind) {
213
- case 'invoke':
214
- pos = this.traverse(instructions, pos, stackHeight + 1);
215
- break;
216
- case 'invoke-result':
217
- if (token.programId != ins.programId) {
218
- throw this.error(true, instructionPos, `invoke result message and instruction program ids don't match`);
219
- }
220
- if (token.error) {
221
- ins.error = token.error;
222
- }
223
- pos = this.invokeLessTraversal(true, stackHeight, instructions, pos);
224
- this.messagePos += 1;
225
- return pos;
226
- case 'truncate':
227
- ins.hasDroppedLogMessages = true;
228
- return this.logLessTraversal(stackHeight, instructions, pos);
229
- default:
230
- throw (0, util_internal_1.unexpectedCase)();
231
- }
232
- }
233
- }
234
- takeInstructionMessages(ins, pos) {
235
- if (this.messagesTruncated)
236
- return new log_parser_1.LogTruncatedMessage();
237
- while (this.messagePos < this.messages.length) {
238
- let msg = this.messages[this.messagePos];
239
- switch (msg.kind) {
240
- case 'log':
241
- case 'data':
242
- case 'other':
243
- this.logs.push({
244
- transactionIndex: ins.transactionIndex,
245
- logIndex: this.messagePos,
246
- instructionAddress: ins.instructionAddress,
247
- programId: ins.programId,
248
- kind: msg.kind,
249
- message: msg.message
250
- });
251
- break;
252
- case 'cu':
253
- if (ins.programId != msg.programId) {
254
- throw this.error(true, pos, 'unexpected programId in compute unit message');
255
- }
256
- ins.computeUnitsConsumed = msg.consumed;
257
- break;
258
- case 'invoke':
259
- case 'invoke-result':
260
- return msg;
261
- case 'truncate':
262
- this.messagesTruncated = true;
263
- this.messagePos += 1;
264
- return msg;
265
- default:
266
- throw (0, util_internal_1.unexpectedCase)();
267
- }
268
- this.messagePos += 1;
269
- }
270
- throw this.error(false, pos, 'unexpected end of log messages');
271
- }
272
- invokeLessTraversal(messagesDropped, parentStackHeight, instructions, pos) {
273
- return this.logLessTraversal(parentStackHeight, instructions, pos, (ins, pos) => {
274
- ins.hasDroppedLogMessages = ins.hasDroppedLogMessages || messagesDropped;
275
- if (PROGRAMS_MISSING_INVOKE_LOG.has(ins.programId)) {
276
- }
277
- else {
278
- throw this.error(false, pos, 'invoke message is missing');
279
- }
280
- });
281
- }
282
- logLessTraversal(parentStackHeight, instructions, pos, cb) {
283
- while (pos < instructions.length) {
284
- let instruction = instructions[pos];
285
- let stackHeight = instruction.stackHeight ?? 2;
286
- if (stackHeight > parentStackHeight) {
287
- let ins = this.push(stackHeight, instruction);
288
- cb?.(ins, pos);
289
- pos += 1;
290
- }
291
- else {
292
- return pos;
293
- }
294
- }
295
- return pos;
296
- }
297
- push(stackHeight, src) {
298
- (0, assert_1.default)(stackHeight > 0);
299
- if (src.stackHeight != null) {
300
- (0, assert_1.default)(stackHeight === src.stackHeight);
301
- }
302
- let address = this.lastAddress.slice();
303
- while (address.length > stackHeight) {
304
- address.pop();
305
- }
306
- if (address.length === stackHeight) {
307
- address[stackHeight - 1] += 1;
308
- }
309
- else {
310
- (0, assert_1.default)(address.length + 1 == stackHeight);
311
- address[stackHeight - 1] = 0;
312
- }
313
- let i = {
314
- transactionIndex: this.tx.transactionIndex,
315
- instructionAddress: address,
316
- programId: this.getAccount(src.programIdIndex),
317
- accounts: src.accounts.map(a => this.getAccount(a)),
318
- data: src.data,
319
- isCommitted: !this.tx.err,
320
- hasDroppedLogMessages: this.messagesTruncated
321
- };
322
- this.instructions.push(i);
323
- this.lastAddress = address;
324
- return i;
325
- }
326
- assert(ok, withMessagePos, innerPos, msg) {
327
- if (!ok)
328
- throw this.error(withMessagePos, innerPos, msg);
329
- }
330
- error(withMessagePos, innerPos, msg) {
331
- let loc = `stopped at instruction ${this.pos}`;
332
- if (innerPos > 0) {
333
- loc += `, inner instruction ${innerPos - 1})`;
334
- }
335
- if (withMessagePos && this.messagePos < this.messages.length) {
336
- loc += ` and log message ${this.messagePos}`;
337
- }
338
- return new Error(`Failed to process transaction ${this.tx.signatures[0]}: ${loc}: ${msg}`);
339
- }
340
125
  }
341
- function mapBalances(getAccount, transactionIndex, tx) {
126
+ function mapBalances(ctx) {
342
127
  let balances = [];
343
- let pre = tx.meta.preBalances;
344
- let post = tx.meta.postBalances;
128
+ let pre = ctx.tx.meta.preBalances;
129
+ let post = ctx.tx.meta.postBalances;
345
130
  (0, assert_1.default)(pre.length == post.length);
346
131
  for (let i = 0; i < pre.length; i++) {
347
132
  if (pre[i] === post[i]) {
@@ -349,8 +134,8 @@ function mapBalances(getAccount, transactionIndex, tx) {
349
134
  }
350
135
  else {
351
136
  balances.push({
352
- transactionIndex,
353
- account: getAccount(i),
137
+ transactionIndex: ctx.transactionIndex,
138
+ account: ctx.getAccount(i),
354
139
  pre: BigInt(pre[i]),
355
140
  post: BigInt(post[i])
356
141
  });
@@ -365,15 +150,15 @@ function mapBalances(getAccount, transactionIndex, tx) {
365
150
  });
366
151
  return balances;
367
152
  }
368
- function mapTokenBalances(getAccount, transactionIndex, tx) {
153
+ function mapTokenBalances(ctx) {
369
154
  let balances = [];
370
- let preBalances = new Map(tx.meta.preTokenBalances?.map(b => [getAccount(b.accountIndex), b]));
371
- 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]));
372
157
  for (let [account, post] of postBalances.entries()) {
373
158
  let pre = preBalances.get(account);
374
159
  if (pre) {
375
160
  balances.push({
376
- transactionIndex,
161
+ transactionIndex: ctx.transactionIndex,
377
162
  account,
378
163
  preProgramId: pre.programId ?? undefined,
379
164
  preMint: pre.mint,
@@ -389,7 +174,7 @@ function mapTokenBalances(getAccount, transactionIndex, tx) {
389
174
  }
390
175
  else {
391
176
  balances.push({
392
- transactionIndex,
177
+ transactionIndex: ctx.transactionIndex,
393
178
  account,
394
179
  postProgramId: post.programId ?? undefined,
395
180
  postMint: post.mint,
@@ -403,7 +188,7 @@ function mapTokenBalances(getAccount, transactionIndex, tx) {
403
188
  if (postBalances.has(account))
404
189
  continue;
405
190
  balances.push({
406
- transactionIndex,
191
+ transactionIndex: ctx.transactionIndex,
407
192
  account,
408
193
  preProgramId: pre.programId ?? undefined,
409
194
  preMint: pre.mint,
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":";;;;;;AAEA,2DAAuE;AACvE,oDAA2B;AAE3B,6CAA8G;AAG9G,SAAgB,WAAW,CAAC,GAAc;IACtC,IAAI,MAAM,GAAgB;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU;QAChC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,iBAAiB;QACvC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC;KACtC,CAAA;IAED,IAAI,YAAY,GAAkB,EAAE,CAAA;IACpC,IAAI,IAAI,GAAiB,EAAE,CAAA;IAC3B,IAAI,QAAQ,GAAc,EAAE,CAAA;IAC5B,IAAI,aAAa,GAAmB,EAAE,CAAA;IAEtC,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY;QACrC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC;YACD,OAAO,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChF,CAAC;QAAC,OAAM,GAAQ,EAAE,CAAC;YACf,MAAM,IAAA,+BAAe,EAAC,GAAG,EAAE;gBACvB,gBAAgB,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;aACjD,CAAC,CAAA;QACN,CAAC;IACL,CAAC,CAAC,IAAI,EAAE,CAAA;IAEZ,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;QACrC,IAAI,MAAM,GAAW;YACjB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5B,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;SACrC,CAAA;QAED,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;QACpC,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,OAAO;QACH,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,IAAI;QACJ,QAAQ;QACR,aAAa;QACb,OAAO,EAAE,OAAO,IAAI,EAAE;KACzB,CAAA;AACL,CAAC;AArDD,kCAqDC;AAGD,SAAS,iBAAiB,CACtB,gBAAwB,EACxB,GAAoB,EACpB,YAA2B,EAC3B,IAAkB,EAClB,QAAmB,EACnB,aAA6B;IAE7B,IAAI,EAAE,GAAgB;QAClB,gBAAgB;QAChB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW;QAChD,mBAAmB,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE;QACtE,yBAAyB,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB;QACnF,2BAA2B,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,2BAA2B;QACvF,qBAAqB,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB;QAC3E,eAAe,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe;QACxD,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,UAAU;QACtC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;QACjB,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAChE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC;QACzE,qBAAqB,EAAE,KAAK;KAC/B,CAAA;IAED,IAAI,QAAuB,CAAA;IAC3B,IAAI,EAAE,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1B,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAA;IAC7B,CAAC;SAAM,CAAC;QACJ,IAAA,gBAAM,EAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QACjC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAC5B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EACjC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CACpC,CAAA;IACL,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,KAAa,EAAe,EAAE;QAC5C,IAAA,gBAAM,EAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,IAAI,iBAAiB,CACjB,UAAU,EACV,EAAE,EACF,GAAG,EACH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,4BAAe,CAAC,EAC1C,YAAY,EACZ,IAAI,CACP,CAAC,KAAK,EAAE,CAAA;IAET,QAAQ,CAAC,IAAI,CACT,GAAG,WAAW,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,CACpD,CAAA;IAED,aAAa,CAAC,IAAI,CACd,GAAG,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,CACzD,CAAA;IAED,OAAO,EAAE,CAAA;AACb,CAAC;AAGD,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IACxC,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;CAChD,CAAC,CAAA;AAGF,MAAM,iBAAiB;IAQnB,YACY,UAA0C,EAC1C,EAAe,EACf,GAAoB,EAC5B,QAA+B,EACvB,YAA2B,EAC3B,IAAkB;QALlB,eAAU,GAAV,UAAU,CAAgC;QAC1C,OAAE,GAAF,EAAE,CAAa;QACf,QAAG,GAAH,GAAG,CAAiB;QAEpB,iBAAY,GAAZ,YAAY,CAAe;QAC3B,SAAI,GAAJ,IAAI,CAAc;QAbtB,QAAG,GAAG,CAAC,CAAA;QAEP,eAAU,GAAG,CAAC,CAAA;QACd,sBAAiB,GAAG,KAAK,CAAA;QAEzB,gBAAW,GAAa,EAAE,CAAA;QAU9B,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;YAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,IAAI,GAAG,GAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAA;QAChC,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,kBAAkB,IAAI,GAAG,EAAE,CAAC;gBAC5B,IAAI,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpC,IAAA,gBAAM,EAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAA;gBAC9B,IAAA,gBAAM,EAAC,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBAC1E,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAA;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACjE,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAErE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB;gBACvC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC;iBAClC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;YAEvC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrD,IAAI,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC3C,IAAA,gBAAM,EAAC,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,2DAA2D,CAAC,CAAA;gBACrG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;YAC7B,CAAC;YAED,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,IAAI,CAAC,iBAAiB,CAAA;IAC3F,CAAC;IAEO,QAAQ,CACZ,YAA+B,EAC/B,GAAW,EACX,WAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAA;QAEvF,IAAI,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,CAAC,MAAM,CACP,WAAW,CAAC,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,EACzE,KAAK,EAAE,GAAG,EAAE,yCAAyC,CACxD,CAAA;QAED,IAAI,GAAwB,CAAA;QAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,GAAG,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;YACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;YACnC,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;QACpE,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QAE3D,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,4CAA4C,CAAC,CAAA;YACpG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;YACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAA;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;YAC7C,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAA;YAChE,IAAI,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,OAAO,CAAA;YACxE,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;QAChF,CAAC;QAED,sCAAsC;QACtC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAA;IACzD,CAAC;IAEO,iCAAiC,CAAC,GAAW;QACjD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAChC,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvE,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxC,QAAO,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM,CAAC;gBACZ,KAAK,IAAI,CAAC;gBACV,KAAK,OAAO;oBACR,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;oBACpB,MAAK;gBACT,KAAK,UAAU;oBACX,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;oBACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;oBAC7B,OAAO,IAAI,CAAA;gBACf,KAAK,QAAQ;oBACT,OAAO,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,CAAC,CAAA;gBAC3C,KAAK,eAAe;oBAChB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,iDAAiD,CAAC,CAAA;gBAClF;oBACI,MAAM,IAAA,8BAAc,GAAE,CAAA;YAC9B,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,iBAAiB,CACrB,WAAmB,EACnB,YAA+B,EAC/B,cAAsB;QAEtB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAA;QAC9D,IAAI,GAAG,GAAG,cAAc,GAAG,CAAC,CAAA;QAC5B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC7D,QAAO,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,QAAQ;oBACT,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;oBACvD,MAAK;gBACT,KAAK,eAAe;oBAChB,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBACnC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EACjC,+DAA+D,CAClE,CAAA;oBACL,CAAC;oBACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACd,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;oBAC3B,CAAC;oBACD,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;oBACpE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;oBACpB,OAAO,GAAG,CAAA;gBACd,KAAK,UAAU;oBACX,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAA;oBAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;gBAChE;oBACI,MAAM,IAAA,8BAAc,GAAE,CAAA;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,uBAAuB,CAC3B,GAAgB,EAChB,GAAW;QAEX,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,gCAAmB,EAAE,CAAA;QAC5D,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxC,QAAO,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACX,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;wBACtC,QAAQ,EAAE,IAAI,CAAC,UAAU;wBACzB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;wBAC1C,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO,EAAE,GAAG,CAAC,OAAO;qBACvB,CAAC,CAAA;oBACF,MAAK;gBACT,KAAK,IAAI;oBACL,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,8CAA8C,CAAC,CAAA;oBAC/E,CAAC;oBACD,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC,QAAQ,CAAA;oBACvC,MAAK;gBACT,KAAK,QAAQ,CAAC;gBACd,KAAK,eAAe;oBAChB,OAAO,GAAG,CAAA;gBACd,KAAK,UAAU;oBACX,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;oBAC7B,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;oBACpB,OAAO,GAAG,CAAA;gBACd;oBACI,MAAM,IAAA,8BAAc,GAAE,CAAA;YAC9B,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAA;IAClE,CAAC;IAEO,mBAAmB,CACvB,eAAwB,EACxB,iBAAyB,EACzB,YAA+B,EAC/B,GAAW;QAEX,OAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5E,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,IAAI,eAAe,CAAA;YACxE,IAAI,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAA;YAC7D,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,gBAAgB,CACpB,iBAAyB,EACzB,YAA+B,EAC/B,GAAW,EACX,EAA4C;QAE5C,OAAO,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,CAAC,CAAA;YAC9C,IAAI,WAAW,GAAG,iBAAiB,EAAE,CAAC;gBAClC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;gBAC7C,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACd,GAAG,IAAI,CAAC,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,CAAA;YACd,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAEO,IAAI,CAAC,WAAmB,EAAE,GAAoB;QAClD,IAAA,gBAAM,EAAC,WAAW,GAAG,CAAC,CAAC,CAAA;QAEvB,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAA,gBAAM,EAAC,WAAW,KAAK,GAAG,CAAC,WAAW,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QAEtC,OAAO,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,EAAE,CAAA;QACjB,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC;aAAM,CAAC;YACJ,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAA;YACzC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,GAAgB;YACjB,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,gBAAgB;YAC1C,kBAAkB,EAAE,OAAO;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;YAC9C,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;YACzB,qBAAqB,EAAE,IAAI,CAAC,iBAAiB;SAChD,CAAA;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;QAC1B,OAAO,CAAC,CAAA;IACZ,CAAC;IAEO,MAAM,CAAC,EAAW,EAAE,cAAuB,EAAE,QAAgB,EAAE,GAAW;QAC9E,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC5D,CAAC;IAEO,KAAK,CAAC,cAAuB,EAAE,QAAgB,EAAE,GAAW;QAChE,IAAI,GAAG,GAAG,0BAA0B,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACf,GAAG,IAAI,uBAAuB,QAAQ,GAAG,CAAC,GAAG,CAAA;QACjD,CAAC;QACD,IAAI,cAAc,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3D,GAAG,IAAI,oBAAoB,IAAI,CAAC,UAAU,EAAE,CAAA;QAChD,CAAC;QACD,OAAO,IAAI,KAAK,CACZ,iCAAiC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,CAC3E,CAAA;IACL,CAAC;CACJ;AAGD,SAAS,WAAW,CAChB,UAAwC,EACxC,gBAAwB,EACxB,EAAmB;IAEnB,IAAI,QAAQ,GAAc,EAAE,CAAA;IAE5B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAA;IAC7B,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAA;IAE/B,IAAA,gBAAM,EAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,yCAAyC;QAC7C,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC;gBACV,gBAAgB;gBAChB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBACtB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxB,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAA;QACnC,OAAO,CAAC,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACnB,CAAC;AAGD,SAAS,gBAAgB,CACrB,UAAwC,EACxC,gBAAwB,EACxB,EAAmB;IAEnB,IAAI,QAAQ,GAAmB,EAAE,CAAA;IAEjC,IAAI,WAAW,GAAG,IAAI,GAAG,CACrB,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CACtE,CAAA;IAED,IAAI,YAAY,GAAG,IAAI,GAAG,CACtB,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CACvE,CAAA;IAED,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC;gBACV,gBAAgB;gBAChB,OAAO;gBAEP,YAAY,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;gBACxC,OAAO,EAAE,GAAG,CAAC,IAAI;gBACjB,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,QAAQ;gBACvC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gBAChC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;gBAE3C,aAAa,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;gBAC1C,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACzC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAClC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;aAChD,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC;gBACV,gBAAgB;gBAChB,OAAO;gBACP,aAAa,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;gBAC1C,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACzC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAClC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;aAChD,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAED,KAAK,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAQ;QACvC,QAAQ,CAAC,IAAI,CAAC;YACV,gBAAgB;YAChB,OAAO;YACP,YAAY,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;YACxC,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,QAAQ;YACvC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;YAChC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;SAC9C,CAAC,CAAA;IACN,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAA;QACnC,OAAO,CAAC,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACnB,CAAC"}
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"}