@subql/frontier-evm-processor 1.0.1-0 → 1.0.2-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import '@polkadot/api-augment';
2
2
  import { Result } from '@ethersproject/abi';
3
3
  import { Log, TransactionResponse } from '@ethersproject/abstract-provider';
4
- import { SubstrateDatasourceProcessor, SubstrateCustomDatasource, SubstrateHandlerKind, SubstrateCustomHandler, SubstrateMapping, SecondLayerHandlerProcessor } from '@subql/types';
4
+ import { SubstrateCustomDatasource, SubstrateHandlerKind, SubstrateCustomHandler, SubstrateMapping, SecondLayerHandlerProcessor } from '@subql/types';
5
+ import { DsProcessor } from '@subql/types-core';
5
6
  import FrontierEthProvider from './frontierEthProvider';
6
7
  export { FrontierEthProvider };
7
8
  type TopicFilter = string | null | undefined;
@@ -58,7 +59,7 @@ export declare class FrontierEvmProcessorOptions {
58
59
  }
59
60
  declare const EventProcessor: SecondLayerHandlerProcessor<SubstrateHandlerKind.Event, FrontierEvmEventFilter, FrontierEvmEvent, FrontierEvmDatasource>;
60
61
  declare const CallProcessor: SecondLayerHandlerProcessor<SubstrateHandlerKind.Call, FrontierEvmCallFilter, FrontierEvmCall, FrontierEvmDatasource>;
61
- export declare const FrontierEvmDatasourcePlugin: SubstrateDatasourceProcessor<"substrate/FrontierEvm", FrontierEvmEventFilter | FrontierEvmCallFilter, FrontierEvmDatasource, {
62
+ export declare const FrontierEvmDatasourcePlugin: DsProcessor<FrontierEvmDatasource, {
62
63
  "substrate/FrontierEvmEvent": typeof EventProcessor;
63
64
  "substrate/FrontierEvmCall": typeof CallProcessor;
64
65
  }>;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright 2020-2022 OnFinality Limited authors & contributors
2
+ // Copyright 2020-2025 OnFinality Limited authors & contributors
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
5
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -227,9 +227,11 @@ const CallProcessor = {
227
227
  ? tx.asEip1559
228
228
  : tx.isEip2930
229
229
  ? tx.asEip2930
230
- : tx.isLegacy
231
- ? tx.asLegacy
232
- : tx;
230
+ : tx.isEip7702
231
+ ? tx.asEip7702
232
+ : tx.isLegacy
233
+ ? tx.asLegacy
234
+ : tx;
233
235
  let from = '', hash = '', to, success;
234
236
  try {
235
237
  const executionEvent = getExecutionEvent(original);
@@ -246,11 +248,28 @@ const CallProcessor = {
246
248
  success = false;
247
249
  }
248
250
  let call;
249
- const baseCall /*: Partial<MoonbeamCall>*/ = {
251
+ // Special handling for signatures, the data doesn't align with the types for historical data
252
+ function extractSignature(tx) {
253
+ function hasSignature(tx) {
254
+ return !!tx.signature;
255
+ }
256
+ if (hasSignature(tx)) {
257
+ return {
258
+ r: tx.signature.r.toHex(),
259
+ s: tx.signature.s.toHex(),
260
+ v: tx.signature.v?.toNumber(), // Bad types
261
+ };
262
+ }
263
+ return {
264
+ r: tx.r.toHex(),
265
+ s: tx.s.toHex(),
266
+ v: tx.v?.toNumber(),
267
+ };
268
+ }
269
+ const baseCall /* : Partial<FrontierEvmCall> */ = {
250
270
  from,
251
271
  to, // when contract creation
252
272
  nonce: rawTx.nonce.toNumber(),
253
- data: rawTx.input.toHex(),
254
273
  value: bignumber_1.BigNumber.from(rawTx.value.toBigInt()),
255
274
  // Transaction response properties
256
275
  hash,
@@ -258,17 +277,19 @@ const CallProcessor = {
258
277
  blockHash: await getEtheruemBlockHash(api, original.block.block.header.number.toNumber()),
259
278
  timestamp: Math.round(original.block.timestamp.getTime() / 1000),
260
279
  success,
280
+ ...extractSignature(rawTx),
261
281
  };
262
282
  if (tx.isEip1559) {
263
283
  const eip1559tx = tx.asEip1559;
264
284
  call = {
265
285
  ...baseCall,
286
+ data: eip1559tx.input.toHex(),
266
287
  chainId: eip1559tx.chainId.toNumber(),
267
288
  gasLimit: bignumber_1.BigNumber.from(eip1559tx.gasLimit.toBigInt()),
268
289
  maxFeePerGas: bignumber_1.BigNumber.from(eip1559tx.maxFeePerGas.toBigInt()),
269
290
  maxPriorityFeePerGas: bignumber_1.BigNumber.from(eip1559tx.maxPriorityFeePerGas.toBigInt()),
270
- s: eip1559tx.s.toHex(),
271
- r: eip1559tx.r.toHex(),
291
+ // s: eip1559tx.signature.s.toHex(),
292
+ // r: eip1559tx.signature.r.toHex(),
272
293
  type: 2,
273
294
  };
274
295
  }
@@ -276,24 +297,40 @@ const CallProcessor = {
276
297
  const eip2930tx = tx.asEip2930;
277
298
  call = {
278
299
  ...baseCall,
300
+ data: eip2930tx.input.toHex(),
279
301
  chainId: eip2930tx.chainId.toNumber(),
280
302
  gasPrice: bignumber_1.BigNumber.from(eip2930tx.gasPrice.toBigInt()),
281
303
  gasLimit: bignumber_1.BigNumber.from(eip2930tx.gasLimit.toBigInt()),
282
- s: eip2930tx.s.toHex(),
283
- r: eip2930tx.r.toHex(),
304
+ // s: ((eip2930tx as any).s ?? eip2930tx.signature.s).toHex(),
305
+ // r: ((eip2930tx as any).r ?? eip2930tx.signature.r).toHex(),
284
306
  type: 1,
285
307
  };
286
- } /*if (((tx as TransactionV2).isLegacy))*/
308
+ }
309
+ else if (tx.isEip7702) {
310
+ const eip7702tx = tx.asEip7702;
311
+ call = {
312
+ ...baseCall,
313
+ data: '',
314
+ chainId: eip7702tx.chainId.toNumber(),
315
+ gasLimit: bignumber_1.BigNumber.from(eip7702tx.gasLimit.toBigInt()),
316
+ maxFeePerGas: bignumber_1.BigNumber.from(eip7702tx.maxFeePerGas.toBigInt()),
317
+ maxPriorityFeePerGas: bignumber_1.BigNumber.from(eip7702tx.maxPriorityFeePerGas.toBigInt()),
318
+ // s: eip7702tx.signature.s.toHex(),
319
+ // r: eip7702tx.signature.r.toHex(),
320
+ type: 3,
321
+ };
322
+ } /*if ((tx.isLegacy))*/
287
323
  else {
288
324
  const legacyTx = tx.asLegacy ?? tx;
289
325
  call = {
290
326
  ...baseCall,
327
+ data: legacyTx.input.toHex(),
291
328
  gasLimit: bignumber_1.BigNumber.from(legacyTx.gasLimit.toBigInt()),
292
329
  gasPrice: bignumber_1.BigNumber.from(legacyTx.gasPrice.toBigInt()),
293
330
  chainId: -1, // Unkonwn
294
- r: legacyTx.signature.r.toHex(),
295
- s: legacyTx.signature.s.toHex(),
296
- v: legacyTx.signature.v.toNumber(),
331
+ // r: legacyTx.signature.r.toHex(),
332
+ // s: legacyTx.signature.s.toHex(),
333
+ // v: legacyTx.signature.v.toNumber(),
297
334
  type: 0,
298
335
  };
299
336
  } /* else {
@@ -337,16 +374,21 @@ const CallProcessor = {
337
374
  ? tx.asEip1559
338
375
  : tx.isEip2930
339
376
  ? tx.asEip2930
340
- : tx.isLegacy
341
- ? tx.asLegacy
342
- : tx;
377
+ : tx.isEip7702
378
+ ? tx.asEip7702
379
+ : tx.isLegacy
380
+ ? tx.asLegacy
381
+ : tx;
343
382
  // if `to` is null then we handle contract creation
344
383
  if ((ds.processor?.options?.address && !(0, utils_1.stringNormalizedEq)(ds.processor.options.address, to)) ||
345
384
  (ds.processor?.options?.address === null && !rawTx.action?.isCreate)) {
346
385
  return false;
347
386
  }
348
- if (filter?.function && rawTx.input.toHex().indexOf((0, utils_1.functionToSighash)(filter.function)) !== 0) {
349
- return false;
387
+ if (!tx.isEip7702) {
388
+ const tx = rawTx;
389
+ if (filter?.function && tx.input.toHex().indexOf((0, utils_1.functionToSighash)(filter.function)) !== 0) {
390
+ return false;
391
+ }
350
392
  }
351
393
  return true;
352
394
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright 2020-2022 OnFinality Limited authors & contributors
2
+ // Copyright 2020-2025 OnFinality Limited authors & contributors
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.stringNormalizedEq = stringNormalizedEq;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subql/frontier-evm-processor",
3
- "version": "1.0.1-0",
3
+ "version": "1.0.2-0",
4
4
  "description": "SubQuery datasource processor for Frontier EVM",
5
5
  "main": "dist/index.js",
6
6
  "author": "Subquery Pte Limited",
@@ -8,7 +8,8 @@
8
8
  "scripts": {
9
9
  "build:ts": "tsc -b",
10
10
  "build:bundle": "esbuild src/bundle.ts --platform=node --bundle --tree-shaking=true --format=cjs --minify --outfile=dist/bundle.js",
11
- "build": "rm -rf dist && yarn build:ts && yarn build:bundle"
11
+ "build": "rm -rf dist && yarn build:ts && yarn build:bundle",
12
+ "changelog:release": "echo \"Updating changelog $npm_package_version\" && npx chan release $npm_package_version --git-url \"https://github.com/subquery/datasource-processors\" --release-prefix=\"frontier-evm/\""
12
13
  },
13
14
  "dependencies": {
14
15
  "@subql/types": "^3.11.1",
@@ -17,12 +18,12 @@
17
18
  "ethers": "^5.7.2"
18
19
  },
19
20
  "devDependencies": {
20
- "@subql/utils": "^2.14.0",
21
- "esbuild": "^0.15.18",
22
- "moonbeam-types-bundle": "^2.0.10"
21
+ "@moonbeam-network/types-bundle": "^1.0.2",
22
+ "@subql/utils": "^2.21.2",
23
+ "esbuild": "^0.15.18"
23
24
  },
24
25
  "peerDependencies": {
25
- "@polkadot/api": "^12"
26
+ "@polkadot/api": "~15.5"
26
27
  },
27
- "stableVersion": "1.0.0"
28
+ "stableVersion": "1.0.1"
28
29
  }
package/src/bundle.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2020-2022 OnFinality Limited authors & contributors
1
+ // Copyright 2020-2025 OnFinality Limited authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import DatasourcePlugin from '.';
package/src/index.spec.ts CHANGED
@@ -1,10 +1,10 @@
1
- // Copyright 2020-2022 OnFinality Limited authors & contributors
1
+ // Copyright 2020-2025 OnFinality Limited authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {ApiPromise, WsProvider} from '@polkadot/api';
5
5
  import {Logger} from '@subql/utils';
6
6
  import {SubstrateEvent, SubstrateExtrinsic} from '@subql/types';
7
- import {typesBundleDeprecated} from 'moonbeam-types-bundle';
7
+ import {typesBundleDeprecated as typesBundle} from '@moonbeam-network/types-bundle';
8
8
  import {TransactionV2, EthTransaction, EvmLog} from '@polkadot/types/interfaces';
9
9
  import FrontierEvmDatasourcePlugin, {FrontierEvmCall, FrontierEvmDatasource, FrontierEvmEvent} from '.';
10
10
 
@@ -144,7 +144,7 @@ describe('FrontierDS', () => {
144
144
  beforeAll(async () => {
145
145
  api = await ApiPromise.create({
146
146
  provider: new WsProvider('wss://moonriver.api.onfinality.io/public-ws'),
147
- typesBundle: typesBundleDeprecated as any,
147
+ typesBundle: typesBundle,
148
148
  noInitWarn: true,
149
149
  });
150
150
  });
@@ -455,7 +455,7 @@ describe('FrontierDS', () => {
455
455
  it('can filter function on a legacy transaction post EIP1559', async () => {
456
456
  const moonbeamApi = await ApiPromise.create({
457
457
  provider: new WsProvider('wss://moonbeam.api.onfinality.io/public-ws'),
458
- typesBundle: typesBundleDeprecated as any,
458
+ typesBundle: typesBundle,
459
459
  });
460
460
  const {extrinsics} = await fetchBlock(moonbeamApi, 459730);
461
461
 
@@ -686,7 +686,7 @@ describe('FrontierDS', () => {
686
686
 
687
687
  const moonbeamAlphaApi = await ApiPromise.create({
688
688
  provider: new WsProvider('wss://moonbeam-alpha.api.onfinality.io/public-ws'),
689
- typesBundle: typesBundleDeprecated as any,
689
+ typesBundle: typesBundle,
690
690
  });
691
691
 
692
692
  const blockNumber = 131451;
@@ -718,11 +718,35 @@ describe('FrontierDS', () => {
718
718
  await moonbeamAlphaApi.disconnect();
719
719
  }, 400000);
720
720
 
721
+ it('can transform a tx with a signature object', async () => {
722
+ const moonbeamAlphaApi = await ApiPromise.create({
723
+ provider: new WsProvider('wss://moonbeam-alpha.api.onfinality.io/public-ws'),
724
+ typesBundle: typesBundle,
725
+ });
726
+
727
+ try {
728
+ const blockNumber = 13744976;
729
+ const {extrinsics} = await fetchBlock(moonbeamAlphaApi, blockNumber);
730
+
731
+ const [call] = (await processor.transformer({
732
+ input: extrinsics[4] as SubstrateExtrinsic<[TransactionV2 | EthTransaction]>,
733
+ ds: baseDS,
734
+ api: moonbeamAlphaApi,
735
+ })) as [FrontierEvmCall];
736
+
737
+ expect(call).toBeDefined();
738
+ expect(call.r).toBeDefined();
739
+ expect(call.s).toBeDefined();
740
+ } finally {
741
+ await moonbeamAlphaApi.disconnect();
742
+ }
743
+ });
744
+
721
745
  //Interface of transaction is EthTransaction, this was always the case pre EIP1559
722
746
  it('can transform an EthTransaction', async () => {
723
747
  const moonbeamApi = await ApiPromise.create({
724
748
  provider: new WsProvider('wss://moonbeam.api.onfinality.io/public-ws'),
725
- typesBundle: typesBundleDeprecated as any,
749
+ typesBundle: typesBundle,
726
750
  });
727
751
 
728
752
  const blockNumber = 415946;
@@ -760,7 +784,7 @@ describe('FrontierDS', () => {
760
784
  it('can transform a legacy transaction post EIP1559', async () => {
761
785
  const moonbeamApi = await ApiPromise.create({
762
786
  provider: new WsProvider('wss://moonbeam.api.onfinality.io/public-ws'),
763
- typesBundle: typesBundleDeprecated as any,
787
+ typesBundle: typesBundle,
764
788
  });
765
789
 
766
790
  const blockNumber = 459730;
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2020-2022 OnFinality Limited authors & contributors
1
+ // Copyright 2020-2025 OnFinality Limited authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import '@polkadot/api-augment';
@@ -7,9 +7,16 @@ import {Log, TransactionResponse} from '@ethersproject/abstract-provider';
7
7
  import {BigNumber} from '@ethersproject/bignumber';
8
8
  import {hexDataSlice} from '@ethersproject/bytes';
9
9
  import {ApiPromise} from '@polkadot/api';
10
- import {EIP1559Transaction, TransactionV2, EthTransaction, EvmLog, ExitReason} from '@polkadot/types/interfaces';
11
10
  import {
12
- SubstrateDatasourceProcessor,
11
+ EthTransactionSignature,
12
+ EIP1559Transaction,
13
+ // EIP7702Transaction,
14
+ TransactionV2,
15
+ EthTransaction,
16
+ EvmLog,
17
+ ExitReason,
18
+ } from '@polkadot/types/interfaces';
19
+ import {
13
20
  SubstrateCustomDatasource,
14
21
  SubstrateHandlerKind,
15
22
  SubstrateExtrinsic,
@@ -19,7 +26,7 @@ import {
19
26
  SubstrateEvent,
20
27
  SecondLayerHandlerProcessor,
21
28
  } from '@subql/types';
22
- import {DictionaryQueryEntry} from '@subql/types-core';
29
+ import {DsProcessor, DictionaryQueryEntry} from '@subql/types-core';
23
30
  import {plainToClass} from 'class-transformer';
24
31
  import {
25
32
  IsOptional,
@@ -39,6 +46,19 @@ export {FrontierEthProvider};
39
46
  type TopicFilter = string | null | undefined;
40
47
  type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
41
48
 
49
+ // This is defined in newer versions of @polkadot/types but for compat versions we're using an older version
50
+ type EIP7702Transaction = Omit<EIP1559Transaction, 'action' | 'input'> & {
51
+ data: any;
52
+ authorizationList: any;
53
+ destination: any;
54
+ };
55
+
56
+ // This is defined in newer versions of @polkadot/types but for compat versions we're using an older version
57
+ type TransactionV3 = TransactionV2 & {
58
+ isEip7702: boolean;
59
+ asEip7702: EIP7702Transaction;
60
+ };
61
+
42
62
  export type FrontierEvmDatasource = SubstrateCustomDatasource<
43
63
  'substrate/FrontierEvm',
44
64
  SubstrateMapping<SubstrateCustomHandler>,
@@ -334,22 +354,24 @@ const CallProcessor: SecondLayerHandlerProcessor<
334
354
  SubstrateHandlerKind.Call,
335
355
  FrontierEvmCallFilter,
336
356
  FrontierEvmCall,
337
- // [TransactionV2 | EthTransaction],
357
+ // [TransactionV3 | EthTransaction],
338
358
  FrontierEvmDatasource
339
359
  > = {
340
360
  specVersion: '1.0.0',
341
361
  baseFilter: [{module: 'ethereum', method: 'transact'}],
342
362
  baseHandlerKind: SubstrateHandlerKind.Call,
343
363
  async transformer({api, assets, ds, input: original}): Promise<[FrontierEvmCall]> {
344
- const [tx] = original.extrinsic.method.args;
345
-
346
- const rawTx = (tx as TransactionV2).isEip1559
347
- ? (tx as TransactionV2).asEip1559
348
- : (tx as TransactionV2).isEip2930
349
- ? (tx as TransactionV2).asEip2930
350
- : (tx as TransactionV2).isLegacy
351
- ? (tx as TransactionV2).asLegacy
352
- : (tx as EthTransaction);
364
+ const [tx] = original.extrinsic.method.args as [TransactionV3];
365
+
366
+ const rawTx = tx.isEip1559
367
+ ? tx.asEip1559
368
+ : tx.isEip2930
369
+ ? tx.asEip2930
370
+ : tx.isEip7702
371
+ ? tx.asEip7702
372
+ : tx.isLegacy
373
+ ? tx.asLegacy
374
+ : (tx as unknown as EthTransaction);
353
375
 
354
376
  let from = '',
355
377
  hash = '',
@@ -375,11 +397,29 @@ const CallProcessor: SecondLayerHandlerProcessor<
375
397
 
376
398
  let call: FrontierEvmCall;
377
399
 
378
- const baseCall /*: Partial<MoonbeamCall>*/ = {
400
+ // Special handling for signatures, the data doesn't align with the types for historical data
401
+ function extractSignature(tx: typeof rawTx): {r: string; s: string; v?: number} {
402
+ function hasSignature(tx: any): tx is {signature: EthTransactionSignature} {
403
+ return !!tx.signature;
404
+ }
405
+ if (hasSignature(tx)) {
406
+ return {
407
+ r: tx.signature.r.toHex(),
408
+ s: tx.signature.s.toHex(),
409
+ v: (tx.signature as any).v?.toNumber(), // Bad types
410
+ };
411
+ }
412
+ return {
413
+ r: (tx as EthTransaction).r.toHex(),
414
+ s: (tx as EthTransaction).s.toHex(),
415
+ v: (tx as EthTransaction).v?.toNumber(),
416
+ };
417
+ }
418
+
419
+ const baseCall /* : Partial<FrontierEvmCall> */ = {
379
420
  from,
380
421
  to, // when contract creation
381
422
  nonce: rawTx.nonce.toNumber(),
382
- data: rawTx.input.toHex(),
383
423
  value: BigNumber.from(rawTx.value.toBigInt()),
384
424
 
385
425
  // Transaction response properties
@@ -388,47 +428,65 @@ const CallProcessor: SecondLayerHandlerProcessor<
388
428
  blockHash: await getEtheruemBlockHash(api, original.block.block.header.number.toNumber()),
389
429
  timestamp: Math.round(original.block.timestamp!.getTime() / 1000),
390
430
  success,
431
+
432
+ ...extractSignature(rawTx),
391
433
  };
392
434
 
393
- if ((tx as TransactionV2).isEip1559) {
394
- const eip1559tx = (tx as TransactionV2).asEip1559;
435
+ if (tx.isEip1559) {
436
+ const eip1559tx = tx.asEip1559;
395
437
 
396
438
  call = {
397
439
  ...baseCall,
440
+ data: eip1559tx.input.toHex(),
398
441
  chainId: eip1559tx.chainId.toNumber(),
399
442
  gasLimit: BigNumber.from(eip1559tx.gasLimit.toBigInt()),
400
443
  maxFeePerGas: BigNumber.from(eip1559tx.maxFeePerGas.toBigInt()),
401
444
  maxPriorityFeePerGas: BigNumber.from(eip1559tx.maxPriorityFeePerGas.toBigInt()),
402
445
 
403
- s: eip1559tx.s.toHex(),
404
- r: eip1559tx.r.toHex(),
446
+ // s: eip1559tx.signature.s.toHex(),
447
+ // r: eip1559tx.signature.r.toHex(),
405
448
  type: 2,
406
449
  };
407
- } else if ((tx as TransactionV2).isEip2930) {
408
- const eip2930tx = (tx as TransactionV2).asEip2930;
450
+ } else if (tx.isEip2930) {
451
+ const eip2930tx = tx.asEip2930;
409
452
 
410
453
  call = {
411
454
  ...baseCall,
455
+ data: eip2930tx.input.toHex(),
412
456
  chainId: eip2930tx.chainId.toNumber(),
413
457
  gasPrice: BigNumber.from(eip2930tx.gasPrice.toBigInt()),
414
458
  gasLimit: BigNumber.from(eip2930tx.gasLimit.toBigInt()),
415
- s: eip2930tx.s.toHex(),
416
- r: eip2930tx.r.toHex(),
459
+ // s: ((eip2930tx as any).s ?? eip2930tx.signature.s).toHex(),
460
+ // r: ((eip2930tx as any).r ?? eip2930tx.signature.r).toHex(),
417
461
  type: 1,
418
462
  };
419
- } /*if (((tx as TransactionV2).isLegacy))*/ else {
420
- const legacyTx = (tx as TransactionV2).asLegacy ?? tx;
463
+ } else if (tx.isEip7702) {
464
+ const eip7702tx = tx.asEip7702;
421
465
 
422
466
  call = {
423
467
  ...baseCall,
468
+ data: '',
469
+ chainId: eip7702tx.chainId.toNumber(),
470
+ gasLimit: BigNumber.from(eip7702tx.gasLimit.toBigInt()),
471
+ maxFeePerGas: BigNumber.from(eip7702tx.maxFeePerGas.toBigInt()),
472
+ maxPriorityFeePerGas: BigNumber.from(eip7702tx.maxPriorityFeePerGas.toBigInt()),
473
+ // s: eip7702tx.signature.s.toHex(),
474
+ // r: eip7702tx.signature.r.toHex(),
475
+ type: 3,
476
+ };
477
+ } /*if ((tx.isLegacy))*/ else {
478
+ const legacyTx = tx.asLegacy ?? tx;
424
479
 
480
+ call = {
481
+ ...baseCall,
482
+ data: legacyTx.input.toHex(),
425
483
  gasLimit: BigNumber.from(legacyTx.gasLimit.toBigInt()),
426
484
  gasPrice: BigNumber.from(legacyTx.gasPrice.toBigInt()),
427
485
  chainId: -1, // Unkonwn
428
486
 
429
- r: legacyTx.signature.r.toHex(),
430
- s: legacyTx.signature.s.toHex(),
431
- v: legacyTx.signature.v.toNumber(),
487
+ // r: legacyTx.signature.r.toHex(),
488
+ // s: legacyTx.signature.s.toHex(),
489
+ // v: legacyTx.signature.v.toNumber(),
432
490
  type: 0,
433
491
  };
434
492
  } /* else {
@@ -471,15 +529,17 @@ const CallProcessor: SecondLayerHandlerProcessor<
471
529
  return false;
472
530
  }
473
531
 
474
- const [tx] = input.extrinsic.method.args as [TransactionV2 | EthTransaction];
475
-
476
- const rawTx = (tx as TransactionV2).isEip1559
477
- ? (tx as TransactionV2).asEip1559
478
- : (tx as TransactionV2).isEip2930
479
- ? (tx as TransactionV2).asEip2930
480
- : (tx as TransactionV2).isLegacy
481
- ? (tx as TransactionV2).asLegacy
482
- : (tx as EthTransaction);
532
+ const [tx] = input.extrinsic.method.args as [TransactionV3];
533
+
534
+ const rawTx = tx.isEip1559
535
+ ? tx.asEip1559
536
+ : tx.isEip2930
537
+ ? tx.asEip2930
538
+ : tx.isEip7702
539
+ ? tx.asEip7702
540
+ : tx.isLegacy
541
+ ? tx.asLegacy
542
+ : (tx as unknown as EthTransaction);
483
543
  // if `to` is null then we handle contract creation
484
544
  if (
485
545
  (ds.processor?.options?.address && !stringNormalizedEq(ds.processor.options.address, to)) ||
@@ -488,8 +548,11 @@ const CallProcessor: SecondLayerHandlerProcessor<
488
548
  return false;
489
549
  }
490
550
 
491
- if (filter?.function && rawTx.input.toHex().indexOf(functionToSighash(filter.function)) !== 0) {
492
- return false;
551
+ if (!tx.isEip7702) {
552
+ const tx = rawTx as Exclude<typeof rawTx, EIP7702Transaction>;
553
+ if (filter?.function && tx.input.toHex().indexOf(functionToSighash(filter.function)) !== 0) {
554
+ return false;
555
+ }
493
556
  }
494
557
 
495
558
  return true;
@@ -528,9 +591,7 @@ const CallProcessor: SecondLayerHandlerProcessor<
528
591
  };
529
592
 
530
593
  export const FrontierEvmDatasourcePlugin = <
531
- SubstrateDatasourceProcessor<
532
- 'substrate/FrontierEvm',
533
- FrontierEvmEventFilter | FrontierEvmCallFilter,
594
+ DsProcessor<
534
595
  FrontierEvmDatasource,
535
596
  {
536
597
  'substrate/FrontierEvmEvent': typeof EventProcessor;
@@ -539,7 +600,7 @@ export const FrontierEvmDatasourcePlugin = <
539
600
  >
540
601
  >{
541
602
  kind: 'substrate/FrontierEvm',
542
- validate(ds: FrontierEvmDatasource, assets: Record<string, string>): void {
603
+ validate(ds, assets: Record<string, string>): void {
543
604
  if (ds.processor.options) {
544
605
  const opts = plainToClass(FrontierEvmProcessorOptions, ds.processor.options);
545
606
  const errors = validateSync(opts, {whitelist: true, forbidNonWhitelisted: true});
@@ -553,7 +614,7 @@ export const FrontierEvmDatasourcePlugin = <
553
614
 
554
615
  return;
555
616
  },
556
- dsFilterProcessor(ds: FrontierEvmDatasource): boolean {
617
+ dsFilterProcessor(ds): boolean {
557
618
  return ds.kind === this.kind;
558
619
  },
559
620
  handlerProcessors: {
package/src/utils.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2020-2022 OnFinality Limited authors & contributors
1
+ // Copyright 2020-2025 OnFinality Limited authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {EventFragment, FunctionFragment} from '@ethersproject/abi';
@@ -0,0 +1 @@
1
+ {"root":["./src/frontierEthProvider.ts","./src/index.ts","./src/utils.ts"],"version":"5.9.2"}