@sentio/sdk 2.42.1 → 2.43.0-rc.2

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.
@@ -5,6 +5,7 @@ import { FuelContext } from './context.js';
5
5
  export declare class FuelAssetProcessor implements FuelBaseProcessor<FuelAssetProcessorConfig> {
6
6
  readonly config: FuelAssetProcessorConfig;
7
7
  callHandlers: CallHandler<Data_FuelCall>[];
8
+ blockHandlers: never[];
8
9
  private provider;
9
10
  static bind(config: FuelAssetProcessorConfig): FuelAssetProcessor;
10
11
  constructor(config: FuelAssetProcessorConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"asset-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/asset-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAsC,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI1C,qBAAa,kBAAmB,YAAW,iBAAiB,CAAC,wBAAwB,CAAC;IAUxE,QAAQ,CAAC,MAAM,EAAE,wBAAwB;IATrD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAC/C,OAAO,CAAC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB;gBAM5C,MAAM,EAAE,wBAAwB;IAE/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CA6DhH;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;IACH,EAAE,EAAE;QACF,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;CACJ,CAAA"}
1
+ {"version":3,"file":"asset-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/asset-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAsC,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI1C,qBAAa,kBAAmB,YAAW,iBAAiB,CAAC,wBAAwB,CAAC;IAWxE,QAAQ,CAAC,MAAM,EAAE,wBAAwB;IAVrD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAC/C,aAAa,UAAK;IAClB,OAAO,CAAC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB;gBAM5C,MAAM,EAAE,wBAAwB;IAE/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAmEhH;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;IACH,EAAE,EAAE;QACF,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;CACJ,CAAA"}
@@ -6,6 +6,7 @@ import { Provider, InputType, OutputType } from 'fuels';
6
6
  export class FuelAssetProcessor {
7
7
  config;
8
8
  callHandlers = [];
9
+ blockHandlers = [];
9
10
  provider;
10
11
  static bind(config) {
11
12
  const processor = new FuelAssetProcessor(config);
@@ -62,7 +63,7 @@ export class FuelAssetProcessor {
62
63
  }
63
64
  }
64
65
  const assetId = transfer.from[0].assetId || '';
65
- const ctx = new FuelContext(this.config.chainId, assetId, this.config.name ?? '', tx);
66
+ const ctx = new FuelContext(this.config.chainId, assetId, this.config.name ?? '', call.timestamp || new Date(0), tx);
66
67
  await handler(transfer, ctx);
67
68
  return ctx.stopAndGetResult();
68
69
  },
@@ -1 +1 @@
1
- {"version":3,"file":"asset-processor.js","sourceRoot":"","sources":["../../src/fuel/asset-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-processor.js","sourceRoot":"","sources":["../../src/fuel/asset-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/E,OAAO,EAAe,cAAc,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEvD,MAAM,OAAO,kBAAkB;IAWR;IAVrB,YAAY,GAAiC,EAAE,CAAA;IAC/C,aAAa,GAAG,EAAE,CAAA;IACV,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAgC;QAC1C,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAChD,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,YAAqB,MAAgC;QAAhC,WAAM,GAAN,MAAM,CAA0B;IAAG,CAAC;IAEzD,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAC,MAAsB,EAAE,OAA4E;QAC7G,MAAM,OAAO,GAAyC,EAAE,CAAA;QAExD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,OAAO;wBAChB,WAAW,EAAE,IAAI;wBACjB,SAAS,EAAE,EAAE;qBACd,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK,EAAE,IAAmB,EAAE,EAAE;gBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAA;gBACvC,MAAM,EAAE,GAAG,qBAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAE/D,MAAM,QAAQ,GAAiB;oBAC7B,IAAI,EAAE,EAAE;oBACR,EAAE,EAAE,EAAE;iBACP,CAAA;gBACD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;oBAChD,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;wBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;4BACjB,OAAO,EAAE,KAAK,CAAC,KAAK;4BACpB,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;oBAClD,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;wBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;wBACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE,MAAM,CAAC,EAAE;4BAClB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;4BACrB,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAA;gBAE9C,MAAM,GAAG,GAAG,IAAI,WAAW,CACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EACtB,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAC7B,EAAE,CACH,CAAA;gBACD,MAAM,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;gBAC5B,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC/B,CAAC;YACD,WAAW,EAAE;gBACX,OAAO;aACR;SACF,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA2BD,SAAS,QAAQ,CAAC,KAAyB;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,SAAS,CAAC,CAAA;AACpB,CAAC"}
@@ -3,8 +3,7 @@ import { ChainId } from '@sentio/chain';
3
3
  import { RecordMetaData } from '@sentio/protos';
4
4
  import type { CallResult, Contract } from 'fuels';
5
5
  import { InvocationScopeLike } from 'fuels';
6
- import { FuelTransaction } from './transaction.js';
7
- import { FuelLog } from './types.js';
6
+ import { FuelLog, FuelTransaction } from './types.js';
8
7
  export declare class FuelCall {
9
8
  readonly args?: Record<string, any> | undefined;
10
9
  readonly logs?: FuelLog<unknown>[] | undefined;
@@ -14,9 +13,10 @@ export declare class FuelContext extends BaseContext {
14
13
  readonly chainId: ChainId;
15
14
  readonly contractAddress: string;
16
15
  readonly contractName: string;
16
+ readonly timestamp: Date;
17
17
  readonly transaction: FuelTransaction | null;
18
18
  private logIndex;
19
- constructor(chainId: ChainId, contractAddress: string, contractName: string, transaction: FuelTransaction | null);
19
+ constructor(chainId: ChainId, contractAddress: string, contractName: string, timestamp: Date, transaction: FuelTransaction | null);
20
20
  getChainId(): ChainId;
21
21
  setLogIndex(logIndex: number): void;
22
22
  protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
@@ -26,7 +26,9 @@ export declare class FuelContractContext<TContract extends Contract> extends Fue
26
26
  readonly contract: TContract;
27
27
  readonly contractAddress: string;
28
28
  readonly contractName: string;
29
+ readonly timestamp: Date;
29
30
  readonly transaction: FuelTransaction | null;
30
- constructor(chainId: ChainId, contract: TContract, contractAddress: string, contractName: string, transaction: FuelTransaction | null);
31
+ constructor(chainId: ChainId, contract: TContract, contractAddress: string, contractName: string, timestamp: Date, transaction: FuelTransaction | null);
32
+ get provider(): import("fuels").Provider;
31
33
  }
32
34
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,qBAAa,QAAQ;IAKjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;gBAJlC,UAAU,EAAE,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,EAC5D,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,OAAO,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAA,EAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,YAAA;CAIrC;AAED,qBAAa,WAAY,SAAQ,WAAW;IAGxC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAL9C,OAAO,CAAC,QAAQ,CAAa;gBAElB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAAG,IAAI;IAK9C,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;CAa5E;AAED,qBAAa,mBAAmB,CAAC,SAAS,SAAS,QAAQ,CAAE,SAAQ,WAAW;IAE5E,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;gBAJnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAAG,IAAI;CAI/C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAErD,qBAAa,QAAQ;IAKjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;gBAJlC,UAAU,EAAE,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,EAC5D,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,OAAO,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAA,EAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,YAAA;CAIrC;AAED,qBAAa,WAAY,SAAQ,WAAW;IAGxC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI;IACxB,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAN9C,OAAO,CAAC,QAAQ,CAAa;gBAElB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,eAAe,GAAG,IAAI;IAK9C,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;CAa5E;AAED,qBAAa,mBAAmB,CAAC,SAAS,SAAS,QAAQ,CAAE,SAAQ,WAAW;IAE5E,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI;IACxB,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;gBALnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,eAAe,GAAG,IAAI;IAK9C,IAAI,QAAQ,6BAEX;CACF"}
@@ -12,13 +12,15 @@ export class FuelContext extends BaseContext {
12
12
  chainId;
13
13
  contractAddress;
14
14
  contractName;
15
+ timestamp;
15
16
  transaction;
16
17
  logIndex = -1;
17
- constructor(chainId, contractAddress, contractName, transaction) {
18
+ constructor(chainId, contractAddress, contractName, timestamp, transaction) {
18
19
  super({});
19
20
  this.chainId = chainId;
20
21
  this.contractAddress = contractAddress;
21
22
  this.contractName = contractName;
23
+ this.timestamp = timestamp;
22
24
  this.transaction = transaction;
23
25
  }
24
26
  getChainId() {
@@ -46,14 +48,19 @@ export class FuelContractContext extends FuelContext {
46
48
  contract;
47
49
  contractAddress;
48
50
  contractName;
51
+ timestamp;
49
52
  transaction;
50
- constructor(chainId, contract, contractAddress, contractName, transaction) {
51
- super(chainId, contractAddress, contractName, transaction);
53
+ constructor(chainId, contract, contractAddress, contractName, timestamp, transaction) {
54
+ super(chainId, contractAddress, contractName, timestamp, transaction);
52
55
  this.chainId = chainId;
53
56
  this.contract = contract;
54
57
  this.contractAddress = contractAddress;
55
58
  this.contractName = contractName;
59
+ this.timestamp = timestamp;
56
60
  this.transaction = transaction;
57
61
  }
62
+ get provider() {
63
+ return this.contract.provider;
64
+ }
58
65
  }
59
66
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAQvE,MAAM,OAAO,QAAQ;IAKR;IACA;IALX,YACE,UAA4D,EAC5D,UAAsB,EACtB,WAAoB,EACX,IAA0B,EAC1B,IAAyB;QADzB,SAAI,GAAJ,IAAI,CAAsB;QAC1B,SAAI,GAAJ,IAAI,CAAqB;QAElC,6CAA6C;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,WAAW;IAG/B;IACA;IACA;IACA;IALH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAC7B,YACW,OAAgB,EAChB,eAAuB,EACvB,YAAoB,EACpB,WAAmC;QAE5C,KAAK,CAAC,EAAE,CAAC,CAAA;QALA,YAAO,GAAP,OAAO,CAAS;QAChB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAES,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACxD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC;YACvD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO;YACpD,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,mBAAgD,SAAQ,WAAW;IAEnE;IACA;IACA;IACA;IACA;IALX,YACW,OAAgB,EAChB,QAAmB,EACnB,eAAuB,EACvB,YAAoB,EACpB,WAAmC;QAE5C,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QANjD,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAW;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;CACF"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAOvE,MAAM,OAAO,QAAQ;IAKR;IACA;IALX,YACE,UAA4D,EAC5D,UAAsB,EACtB,WAAoB,EACX,IAA0B,EAC1B,IAAyB;QADzB,SAAI,GAAJ,IAAI,CAAsB;QAC1B,SAAI,GAAJ,IAAI,CAAqB;QAElC,6CAA6C;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,WAAW;IAG/B;IACA;IACA;IACA;IACA;IANH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAC7B,YACW,OAAgB,EAChB,eAAuB,EACvB,YAAoB,EACpB,SAAe,EACf,WAAmC;QAE5C,KAAK,CAAC,EAAE,CAAC,CAAA;QANA,YAAO,GAAP,OAAO,CAAS;QAChB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;QACf,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAES,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACxD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC;YACvD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO;YACpD,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,mBAAgD,SAAQ,WAAW;IAEnE;IACA;IACA;IACA;IACA;IACA;IANX,YACW,OAAgB,EAChB,QAAmB,EACnB,eAAuB,EACvB,YAAoB,EACpB,SAAe,EACf,WAAmC;QAE5C,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;QAP5D,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAW;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;QACf,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC/B,CAAC;CACF"}
@@ -1,7 +1,8 @@
1
1
  import { Plugin } from '@sentio/runtime';
2
- import { Data_FuelCall, DataBinding, HandlerType, ProcessConfigResponse, ProcessResult, StartRequest } from '@sentio/protos';
2
+ import { Data_FuelBlock, Data_FuelCall, DataBinding, HandlerType, ProcessConfigResponse, ProcessResult, StartRequest } from '@sentio/protos';
3
3
  interface Handlers {
4
4
  callHandlers: ((trace: Data_FuelCall) => Promise<ProcessResult>)[];
5
+ blockHandlers: ((block: Data_FuelBlock) => Promise<ProcessResult>)[];
5
6
  }
6
7
  export declare class FuelPlugin extends Plugin {
7
8
  name: string;
@@ -12,6 +13,7 @@ export declare class FuelPlugin extends Plugin {
12
13
  start(request: StartRequest): Promise<void>;
13
14
  stateDiff(config: ProcessConfigResponse): boolean;
14
15
  processTransaction(binding: DataBinding): Promise<ProcessResult>;
16
+ processBlock(binding: DataBinding): Promise<ProcessResult>;
15
17
  }
16
18
  export {};
17
19
  //# sourceMappingURL=fuel-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fuel-plugin.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,MAAM,EAAiC,MAAM,iBAAiB,CAAA;AACxH,OAAO,EAEL,aAAa,EACb,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,YAAY,EACb,MAAM,gBAAgB,CAAA;AASvB,UAAU,QAAQ;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAA;CACnE;AAED,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAC3B,QAAQ,EAAE,QAAQ,CAEjB;IAEK,SAAS,CAAC,MAAM,EAAE,qBAAqB;IAwD7C,iBAAiB,gBAA0B;IAE3C,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAStD,KAAK,CAAC,OAAO,EAAE,YAAY;IAEjC,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAI3C,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAsBvE"}
1
+ {"version":3,"file":"fuel-plugin.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,MAAM,EAAiC,MAAM,iBAAiB,CAAA;AACxH,OAAO,EAEL,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,YAAY,EACb,MAAM,gBAAgB,CAAA;AASvB,UAAU,QAAQ;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAA;IAClE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAA;CACrE;AAED,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAC3B,QAAQ,EAAE,QAAQ,CAGjB;IAEK,SAAS,CAAC,MAAM,EAAE,qBAAqB;IAsE7C,iBAAiB,gBAA0B;IAE3C,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAWtD,KAAK,CAAC,OAAO,EAAE,YAAY;IAEjC,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAI3C,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBhE,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAsBjE"}
@@ -9,11 +9,13 @@ import { FuelGlobalProcessor } from './global-processor.js';
9
9
  export class FuelPlugin extends Plugin {
10
10
  name = 'FuelPlugin';
11
11
  handlers = {
12
- callHandlers: []
12
+ callHandlers: [],
13
+ blockHandlers: []
13
14
  };
14
15
  async configure(config) {
15
16
  const handlers = {
16
- callHandlers: []
17
+ callHandlers: [],
18
+ blockHandlers: []
17
19
  };
18
20
  for (const processor of FuelProcessorState.INSTANCE.getValues()) {
19
21
  await processor.configure();
@@ -61,6 +63,18 @@ export class FuelPlugin extends Plugin {
61
63
  contractConfig.contract.address = '*';
62
64
  }
63
65
  }
66
+ for (const blockHandler of processor.blockHandlers) {
67
+ const handlerId = handlers.blockHandlers.push(blockHandler.handler) - 1;
68
+ contractConfig.intervalConfigs.push({
69
+ slot: 0,
70
+ slotInterval: blockHandler.blockInterval,
71
+ minutes: 0,
72
+ minutesInterval: blockHandler.timeIntervalInMinutes,
73
+ handlerId: handlerId,
74
+ fetchConfig: undefined
75
+ // fetchConfig: blockHandler.fetchConfig
76
+ });
77
+ }
64
78
  // Finish up a contract
65
79
  config.contractConfigs.push(contractConfig);
66
80
  }
@@ -71,6 +85,8 @@ export class FuelPlugin extends Plugin {
71
85
  switch (request.handlerType) {
72
86
  case HandlerType.FUEL_CALL:
73
87
  return this.processTransaction(request);
88
+ case HandlerType.FUEL_BLOCK:
89
+ return this.processBlock(request);
74
90
  default:
75
91
  throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType);
76
92
  }
@@ -96,6 +112,24 @@ export class FuelPlugin extends Plugin {
96
112
  }
97
113
  return mergeProcessResults(await Promise.all(promises));
98
114
  }
115
+ async processBlock(binding) {
116
+ if (!binding.data?.fuelBlock?.block) {
117
+ throw new ServerError(Status.INVALID_ARGUMENT, "Block can't be empty");
118
+ }
119
+ const ethBlock = binding.data.fuelBlock;
120
+ const promises = [];
121
+ for (const handlerId of binding.handlerIds) {
122
+ const promise = this.handlers.blockHandlers[handlerId](ethBlock).catch((e) => {
123
+ console.error('error processing block: ', e);
124
+ throw new ServerError(Status.INTERNAL, 'error processing block: ' + ethBlock.block?.height + '\n' + errorString(e));
125
+ });
126
+ if (GLOBAL_CONFIG.execution.sequential) {
127
+ await promise;
128
+ }
129
+ promises.push(promise);
130
+ }
131
+ return mergeProcessResults(await Promise.all(promises));
132
+ }
99
133
  }
100
134
  PluginManager.INSTANCE.register(new FuelPlugin());
101
135
  //# sourceMappingURL=fuel-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fuel-plugin.js","sourceRoot":"","sources":["../../src/fuel/fuel-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fuel-plugin.js","sourceRoot":"","sources":["../../src/fuel/fuel-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import { Data_FuelCall } from '@sentio/protos';
1
+ import { Data_FuelCall, HandleInterval } from '@sentio/protos';
2
2
  import { FuelContractContext } from './context.js';
3
3
  import { Contract, JsonAbi } from 'fuels';
4
4
  import { FuelNetwork } from './network.js';
5
- import { FuelFetchConfig, FuelTransaction } from './transaction.js';
6
- import { CallHandler, FuelBaseProcessor, FuelLog } from './types.js';
5
+ import { FuelFetchConfig } from './transaction.js';
6
+ import { BlockHandler, CallHandler, FuelBaseProcessor, FuelBlock, FuelLog, FuelTransaction } from './types.js';
7
+ import { PromiseOrVoid } from '../core/index.js';
7
8
  export declare class FuelProcessor<TContract extends Contract> implements FuelBaseProcessor<FuelProcessorConfig> {
8
9
  readonly config: FuelProcessorConfig;
9
10
  callHandlers: CallHandler<Data_FuelCall>[];
11
+ blockHandlers: BlockHandler[];
10
12
  private provider;
11
13
  private contract;
12
14
  static bind(config: FuelProcessorConfig): FuelProcessor<any>;
@@ -16,6 +18,9 @@ export declare class FuelProcessor<TContract extends Contract> implements FuelBa
16
18
  onTransaction(handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => void | Promise<void>, config?: FuelFetchConfig): this;
17
19
  private onCall;
18
20
  onLog<T>(logIdFilter: string | string[], handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => void | Promise<void>): this;
21
+ onInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, timeInterval: HandleInterval | undefined, blockInterval: HandleInterval | undefined): this;
22
+ onBlockInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, blockInterval?: number, backfillBlockInterval?: number): this;
23
+ onTimeInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, timeIntervalInMinutes?: number, backfillTimeIntervalInMinutes?: number): this;
19
24
  }
20
25
  export type FuelProcessorConfig = {
21
26
  address: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fuel-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAyB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAM,QAAQ,EAAa,OAAO,EAAY,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAGL,eAAe,EACf,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAsB,MAAM,YAAY,CAAA;AAGxF,qBAAa,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAE,YAAW,iBAAiB,CAAC,mBAAmB,CAAC;IAY1F,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IAXhD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAE/C,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAW;IAE3B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC;gBAMvC,MAAM,EAAE,mBAAmB;IAEhD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS;IAgBR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpG,MAAM,GAAE,eAA2C;IA+BrD,OAAO,CAAC,MAAM;IA0EP,KAAK,CAAC,CAAC,EACZ,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAiD3F;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;CACb,CAAA"}
1
+ {"version":3,"file":"fuel-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAkB,cAAc,EAAiB,MAAM,gBAAgB,CAAA;AAC7G,OAAO,EAAyB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAM,QAAQ,EAAa,OAAO,EAAY,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAA2D,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC3G,OAAO,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,OAAO,EAEP,eAAe,EAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,qBAAa,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAE,YAAW,iBAAiB,CAAC,mBAAmB,CAAC;IAa1F,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IAZhD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAC/C,aAAa,EAAE,YAAY,EAAE,CAAK;IAElC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAW;IAE3B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC;gBAMvC,MAAM,EAAE,mBAAmB;IAEhD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS;IAgBR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpG,MAAM,GAAE,eAA2C;IAgCrD,OAAO,CAAC,MAAM;IA2EP,KAAK,CAAC,CAAC,EACZ,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDnF,UAAU,CACf,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,EACjF,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,aAAa,EAAE,cAAc,GAAG,SAAS,GAExC,IAAI;IAiDA,eAAe,CACpB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,EACjF,aAAa,SAAM,EACnB,qBAAqB,SAAO,GAE3B,IAAI;IAYA,cAAc,CACnB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,EACjF,qBAAqB,SAAK,EAC1B,6BAA6B,SAAM,GAElC,IAAI;CAQR;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;CACb,CAAA"}
@@ -4,9 +4,11 @@ import { getRpcEndpoint } from './network.js';
4
4
  import { decodeFuelTransactionWithAbi, DEFAULT_FUEL_FETCH_CONFIG } from './transaction.js';
5
5
  import { FuelProcessorState } from './types.js';
6
6
  import { mergeProcessResults } from '@sentio/runtime';
7
+ import { ServerError, Status } from 'nice-grpc';
7
8
  export class FuelProcessor {
8
9
  config;
9
10
  callHandlers = [];
11
+ blockHandlers = [];
10
12
  provider;
11
13
  contract;
12
14
  static bind(config) {
@@ -41,7 +43,7 @@ export class FuelProcessor {
41
43
  }
42
44
  : {};
43
45
  const tx = await decodeFuelTransactionWithAbi(call.transaction, abiMap, this.provider);
44
- const ctx = new FuelContractContext(this.config.chainId, this.contract, this.config.address, this.config.name ?? this.config.address, tx);
46
+ const ctx = new FuelContractContext(this.config.chainId, this.contract, this.config.address, this.config.name ?? this.config.address, call.timestamp || new Date(0), tx);
45
47
  await handler(tx, ctx);
46
48
  return ctx.stopAndGetResult();
47
49
  },
@@ -81,7 +83,7 @@ export class FuelProcessor {
81
83
  // const contract = new Contract(this.config.address, abi, this.provider)
82
84
  const gqlTransaction = call.transaction;
83
85
  const tx = await decodeFuelTransactionWithAbi(gqlTransaction, { [this.config.address]: abi }, this.provider);
84
- const ctx = new FuelContext(this.config.chainId, this.config.address, this.config.name ?? this.config.address, tx);
86
+ const ctx = new FuelContext(this.config.chainId, this.config.address, this.config.name ?? this.config.address, call.timestamp || new Date(0), tx);
85
87
  for (const op of tx.operations) {
86
88
  for (const call of op.calls || []) {
87
89
  if (names.has(call.functionName)) {
@@ -125,7 +127,7 @@ export class FuelProcessor {
125
127
  const results = [];
126
128
  const logs = (tx.logs || []).filter((log) => logIds.has(log.logId));
127
129
  for (const log of logs) {
128
- const ctx = new FuelContractContext(this.config.chainId, this.contract, this.config.address, this.config.name ?? this.config.address, tx);
130
+ const ctx = new FuelContractContext(this.config.chainId, this.contract, this.config.address, this.config.name ?? this.config.address, call.timestamp || new Date(0), tx);
129
131
  ctx.setLogIndex(log.receiptIndex);
130
132
  await handler(log, ctx);
131
133
  results.push(ctx.stopAndGetResult());
@@ -152,5 +154,61 @@ export class FuelProcessor {
152
154
  this.callHandlers.push(callHandler);
153
155
  return this;
154
156
  }
157
+ onInterval(handler, timeInterval, blockInterval
158
+ // fetchConfig: Partial<FuelFetchConfig> | undefined
159
+ ) {
160
+ if (timeInterval) {
161
+ if (timeInterval.backfillInterval < timeInterval.recentInterval) {
162
+ timeInterval.backfillInterval = timeInterval.recentInterval;
163
+ }
164
+ }
165
+ const processor = this;
166
+ this.blockHandlers.push({
167
+ blockInterval,
168
+ timeIntervalInMinutes: timeInterval,
169
+ handler: async function (data) {
170
+ const header = data.block;
171
+ if (!header) {
172
+ throw new ServerError(Status.INVALID_ARGUMENT, 'Block is empty');
173
+ }
174
+ const block = {
175
+ id: header.id,
176
+ height: bn(header.height),
177
+ time: header.time,
178
+ header: {
179
+ applicationHash: header.applicationHash,
180
+ daHeight: bn(header.daHeight),
181
+ eventInboxRoot: header.eventInboxRoot,
182
+ messageOutboxRoot: header.messageOutboxRoot,
183
+ prevRoot: header.prevRoot,
184
+ stateTransitionBytecodeVersion: header.stateTransitionBytecodeVersion,
185
+ transactionsCount: header.transactionsCount,
186
+ transactionsRoot: header.transactionsRoot
187
+ }
188
+ };
189
+ const ctx = new FuelContractContext(processor.config.chainId, processor.contract, processor.config.address, processor.config.name ?? processor.config.address, data.timestamp || new Date(0), null);
190
+ await handler(block, ctx);
191
+ return ctx.stopAndGetResult();
192
+ }
193
+ });
194
+ return this;
195
+ }
196
+ onBlockInterval(handler, blockInterval = 250, backfillBlockInterval = 1000
197
+ // fetchConfig?: Partial<FuelFetchConfig>
198
+ ) {
199
+ return this.onInterval(handler, undefined, {
200
+ recentInterval: blockInterval,
201
+ backfillInterval: backfillBlockInterval
202
+ }
203
+ // fetchConfig,
204
+ );
205
+ }
206
+ onTimeInterval(handler, timeIntervalInMinutes = 60, backfillTimeIntervalInMinutes = 240
207
+ // fetchConfig?: Partial<FuelFetchConfig>,
208
+ ) {
209
+ return this.onInterval(handler, { recentInterval: timeIntervalInMinutes, backfillInterval: backfillTimeIntervalInMinutes }, undefined
210
+ // fetchConfig
211
+ );
212
+ }
155
213
  }
156
214
  //# sourceMappingURL=fuel-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fuel-processor.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fuel-processor.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { CallHandler, FuelBaseProcessor } from './types.js';
1
+ import { CallHandler, FuelBaseProcessor, FuelTransaction } from './types.js';
2
2
  import { Data_FuelCall } from '@sentio/protos';
3
- import { FuelFetchConfig, FuelTransaction } from './transaction.js';
3
+ import { FuelFetchConfig } from './transaction.js';
4
4
  import { FuelContext } from './context.js';
5
5
  import { FuelProcessorConfig } from './fuel-processor.js';
6
6
  type GlobalFuelProcessorConfig = Omit<FuelProcessorConfig, 'address' | 'abi'>;
7
7
  export declare class FuelGlobalProcessor implements FuelBaseProcessor<GlobalFuelProcessorConfig> {
8
8
  readonly config: GlobalFuelProcessorConfig;
9
9
  callHandlers: CallHandler<Data_FuelCall>[];
10
+ blockHandlers: never[];
10
11
  private provider;
11
12
  static bind(config: GlobalFuelProcessorConfig): FuelGlobalProcessor;
12
13
  constructor(config: GlobalFuelProcessorConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"global-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/global-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAoD,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACrH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAGzD,KAAK,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,KAAK,CAAC,CAAA;AAE7E,qBAAa,mBAAoB,YAAW,iBAAiB,CAAC,yBAAyB,CAAC;IAW1E,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAVtD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAE/C,OAAO,CAAC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,GAAG,mBAAmB;gBAM9C,MAAM,EAAE,yBAAyB;IAEhD,SAAS;IAKR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACjF,MAAM,GAAE,eAA2C;CAuBtD"}
1
+ {"version":3,"file":"global-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/global-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAsB,eAAe,EAAE,MAAM,YAAY,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAoD,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAGzD,KAAK,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,KAAK,CAAC,CAAA;AAE7E,qBAAa,mBAAoB,YAAW,iBAAiB,CAAC,yBAAyB,CAAC;IAY1E,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAXtD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAC/C,aAAa,UAAK;IAElB,OAAO,CAAC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,GAAG,mBAAmB;gBAM9C,MAAM,EAAE,yBAAyB;IAEhD,SAAS;IAKR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACjF,MAAM,GAAE,eAA2C;CA6BtD"}
@@ -7,6 +7,7 @@ import { mergeProcessResults } from '@sentio/runtime';
7
7
  export class FuelGlobalProcessor {
8
8
  config;
9
9
  callHandlers = [];
10
+ blockHandlers = [];
10
11
  provider;
11
12
  static bind(config) {
12
13
  const processor = new FuelGlobalProcessor(config);
@@ -31,7 +32,7 @@ export class FuelGlobalProcessor {
31
32
  console.error('error decoding transaction', e);
32
33
  return mergeProcessResults([]);
33
34
  }
34
- const ctx = new FuelContext(this.config.chainId, '*', this.config.name ?? '*', tx);
35
+ const ctx = new FuelContext(this.config.chainId, '*', this.config.name ?? '*', call.timestamp || new Date(0), tx);
35
36
  await handler(tx, ctx);
36
37
  return ctx.stopAndGetResult();
37
38
  },
@@ -1 +1 @@
1
- {"version":3,"file":"global-processor.js","sourceRoot":"","sources":["../../src/fuel/global-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAoC,MAAM,kBAAkB,CAAA;AACrH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAIrD,MAAM,OAAO,mBAAmB;IAWT;IAVrB,YAAY,GAAiC,EAAE,CAAA;IAEvC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAiC;QAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACjD,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,YAAqB,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAE1D,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAEM,aAAa,CAClB,OAAiF,EACjF,SAA0B,yBAAyB;QAEnD,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK,EAAE,IAAmB,EAAE,EAAE;gBACrC,IAAI,EAAmB,CAAA;gBACvB,IAAI,CAAC;oBACH,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC7D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAA;oBAC9C,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAA;gBAChC,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;gBAClF,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACtB,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC/B,CAAC;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,GAAG,MAAM;aACV;SACF,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"global-processor.js","sourceRoot":"","sources":["../../src/fuel/global-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,kBAAkB,EAAmB,MAAM,YAAY,CAAA;AAEhG,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAmB,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAIrD,MAAM,OAAO,mBAAmB;IAYT;IAXrB,YAAY,GAAiC,EAAE,CAAA;IAC/C,aAAa,GAAG,EAAE,CAAA;IAEV,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAiC;QAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACjD,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,YAAqB,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAE1D,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAEM,aAAa,CAClB,OAAiF,EACjF,SAA0B,yBAAyB;QAEnD,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK,EAAE,IAAmB,EAAE,EAAE;gBACrC,IAAI,EAAmB,CAAA;gBACvB,IAAI,CAAC;oBACH,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC7D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAA;oBAC9C,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAA;gBAChC,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,WAAW,CACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,GAAG,EACH,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EACvB,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAC7B,EAAE,CACH,CAAA;gBACD,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACtB,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC/B,CAAC;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,GAAG,MAAM;aACV;SACF,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1,14 +1,9 @@
1
- import { AbiMap, Provider, TransactionSummary } from 'fuels';
2
- import { FuelLog } from './types.js';
1
+ import { AbiMap, Provider } from 'fuels';
2
+ import { FuelTransaction } from './types.js';
3
3
  export type FuelFetchConfig = {
4
4
  includeFailed?: boolean;
5
5
  };
6
6
  export declare const DEFAULT_FUEL_FETCH_CONFIG: FuelFetchConfig;
7
- export type FuelTransaction = TransactionSummary & {
8
- blockNumber?: string;
9
- logs?: FuelLog<any>[];
10
- sender?: string;
11
- };
12
7
  export declare function decodeFuelTransaction(gqlTransaction: any, provider: Provider): FuelTransaction;
13
8
  export declare function decodeFuelTransactionWithAbi(gqlTransaction: any, abiMap: AbiMap, provider: Provider): Promise<FuelTransaction>;
14
9
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/fuel/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EASN,QAAQ,EAIR,kBAAkB,EACnB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,eAEvC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAWD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA+B9F;AAED,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,GAAG,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,CAAC,CAgE1B"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/fuel/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EASN,QAAQ,EAIT,MAAM,OAAO,CAAA;AACd,OAAO,EAAW,eAAe,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,eAEvC,CAAA;AAWD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA+B9F;AAED,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,GAAG,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,CAAC,CAgE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/fuel/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/fuel/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { ListStateStorage } from '@sentio/runtime';
2
- import { Data_FuelCall, FuelAssetHandlerConfig, FuelCallHandlerConfig, ProcessResult } from '@sentio/protos';
2
+ import { Data_FuelBlock, Data_FuelCall, FuelAssetHandlerConfig, FuelCallHandlerConfig, HandleInterval, OnIntervalConfig, ProcessResult } from '@sentio/protos';
3
+ import { Block, TransactionSummary } from 'fuels';
3
4
  export interface FuelBaseProcessor<T> {
4
5
  configure(): Promise<void>;
5
6
  config: T;
6
7
  callHandlers: CallHandler<Data_FuelCall>[];
8
+ blockHandlers: BlockHandler[];
7
9
  }
8
10
  export declare class FuelProcessorState extends ListStateStorage<FuelBaseProcessor<any>> {
9
11
  static INSTANCE: FuelProcessorState;
@@ -16,9 +18,21 @@ export type CallHandler<T> = {
16
18
  logIds: string[];
17
19
  };
18
20
  };
21
+ export type BlockHandler = {
22
+ blockInterval?: HandleInterval;
23
+ timeIntervalInMinutes?: HandleInterval;
24
+ handler: (block: Data_FuelBlock) => Promise<ProcessResult>;
25
+ fetchConfig?: Partial<OnIntervalConfig>;
26
+ };
19
27
  export interface FuelLog<T> {
20
28
  logId: string;
21
29
  data: T;
22
30
  receiptIndex: number;
23
31
  }
32
+ export type FuelTransaction = TransactionSummary & {
33
+ blockNumber?: string;
34
+ logs?: FuelLog<any>[];
35
+ sender?: string;
36
+ };
37
+ export type FuelBlock = Omit<Block, 'transactionIds'>;
24
38
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fuel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5G,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,EAAE,CAAC,CAAA;IACT,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAA;CAC3C;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,CAAC,QAAQ,qBAA2B;CAC3C;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;CACF,CAAA;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAA;IACP,YAAY,EAAE,MAAM,CAAA;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fuel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EACL,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAEjD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,EAAE,CAAC,CAAA;IACT,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAA;IAC1C,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,CAAC,QAAQ,qBAA2B;CAC3C;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE,cAAc,CAAA;IAC9B,qBAAqB,CAAC,EAAE,cAAc,CAAA;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACxC,CAAA;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAA;IACP,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fuel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASlD,MAAM,OAAO,kBAAmB,SAAQ,gBAAwC;IAC9E,MAAM,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fuel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAmBlD,MAAM,OAAO,kBAAmB,SAAQ,gBAAwC;IAC9E,MAAM,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.42.1",
3
+ "version": "2.43.0-rc.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -50,7 +50,7 @@
50
50
  "dependencies": {
51
51
  "@aptos-labs/ts-sdk": "~1.26.0",
52
52
  "@coral-xyz/borsh": "^0.30.0",
53
- "@fuel-ts/program": "^0.94.3",
53
+ "@fuel-ts/program": "^0.94.5",
54
54
  "@mysten/sui.js": "~0.54.1",
55
55
  "@project-serum/anchor": "^0.26.0",
56
56
  "@sentio/abi-wan-kanabi": "2.2.2-1",
@@ -65,7 +65,7 @@
65
65
  "chalk": "^5.3.0",
66
66
  "csv-parse": "^5.5.3",
67
67
  "ethers": "npm:@sentio/ethers@6.13.1-patch.1",
68
- "fuels": "^0.94.3",
68
+ "fuels": "^0.94.5",
69
69
  "graphql": "^16.9.0",
70
70
  "js-sha3": "^0.9.3",
71
71
  "lru-cache": "^11.0.0",
@@ -84,8 +84,8 @@
84
84
  "typechain": "^8.3.2",
85
85
  "utility-types": "^3.11.0",
86
86
  "yaml": "^2.3.4",
87
- "@sentio/runtime": "^2.42.1",
88
- "@sentio/protos": "2.42.1"
87
+ "@sentio/protos": "2.43.0-rc.2",
88
+ "@sentio/runtime": "^2.43.0-rc.2"
89
89
  },
90
90
  "peerDependencies": {
91
91
  "tsup": "npm:@sentio/tsup@^6.7.2"
@@ -7,6 +7,7 @@ import { Provider, InputType, OutputType } from 'fuels'
7
7
 
8
8
  export class FuelAssetProcessor implements FuelBaseProcessor<FuelAssetProcessorConfig> {
9
9
  callHandlers: CallHandler<Data_FuelCall>[] = []
10
+ blockHandlers = []
10
11
  private provider: Provider
11
12
 
12
13
  static bind(config: FuelAssetProcessorConfig): FuelAssetProcessor {
@@ -72,7 +73,13 @@ export class FuelAssetProcessor implements FuelBaseProcessor<FuelAssetProcessorC
72
73
 
73
74
  const assetId = transfer.from[0].assetId || ''
74
75
 
75
- const ctx = new FuelContext(this.config.chainId, assetId, this.config.name ?? '', tx)
76
+ const ctx = new FuelContext(
77
+ this.config.chainId,
78
+ assetId,
79
+ this.config.name ?? '',
80
+ call.timestamp || new Date(0),
81
+ tx
82
+ )
76
83
  await handler(transfer, ctx)
77
84
  return ctx.stopAndGetResult()
78
85
  },
@@ -3,8 +3,7 @@ import { ChainId } from '@sentio/chain'
3
3
  import { RecordMetaData } from '@sentio/protos'
4
4
  import type { CallResult, Contract } from 'fuels'
5
5
  import { InvocationScopeLike } from 'fuels'
6
- import { FuelTransaction } from './transaction.js'
7
- import { FuelLog } from './types.js'
6
+ import { FuelLog, FuelTransaction } from './types.js'
8
7
 
9
8
  export class FuelCall {
10
9
  constructor(
@@ -24,6 +23,7 @@ export class FuelContext extends BaseContext {
24
23
  readonly chainId: ChainId,
25
24
  readonly contractAddress: string,
26
25
  readonly contractName: string,
26
+ readonly timestamp: Date,
27
27
  readonly transaction: FuelTransaction | null
28
28
  ) {
29
29
  super({})
@@ -58,8 +58,13 @@ export class FuelContractContext<TContract extends Contract> extends FuelContext
58
58
  readonly contract: TContract,
59
59
  readonly contractAddress: string,
60
60
  readonly contractName: string,
61
+ readonly timestamp: Date,
61
62
  readonly transaction: FuelTransaction | null
62
63
  ) {
63
- super(chainId, contractAddress, contractName, transaction)
64
+ super(chainId, contractAddress, contractName, timestamp, transaction)
65
+ }
66
+
67
+ get provider() {
68
+ return this.contract.provider
64
69
  }
65
70
  }
@@ -1,6 +1,7 @@
1
1
  import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'
2
2
  import {
3
3
  ContractConfig,
4
+ Data_FuelBlock,
4
5
  Data_FuelCall,
5
6
  DataBinding,
6
7
  HandlerType,
@@ -18,17 +19,20 @@ import { FuelGlobalProcessor } from './global-processor.js'
18
19
 
19
20
  interface Handlers {
20
21
  callHandlers: ((trace: Data_FuelCall) => Promise<ProcessResult>)[]
22
+ blockHandlers: ((block: Data_FuelBlock) => Promise<ProcessResult>)[]
21
23
  }
22
24
 
23
25
  export class FuelPlugin extends Plugin {
24
26
  name: string = 'FuelPlugin'
25
27
  handlers: Handlers = {
26
- callHandlers: []
28
+ callHandlers: [],
29
+ blockHandlers: []
27
30
  }
28
31
 
29
32
  async configure(config: ProcessConfigResponse) {
30
33
  const handlers: Handlers = {
31
- callHandlers: []
34
+ callHandlers: [],
35
+ blockHandlers: []
32
36
  }
33
37
 
34
38
  for (const processor of FuelProcessorState.INSTANCE.getValues()) {
@@ -75,6 +79,19 @@ export class FuelPlugin extends Plugin {
75
79
  }
76
80
  }
77
81
 
82
+ for (const blockHandler of processor.blockHandlers) {
83
+ const handlerId = handlers.blockHandlers.push(blockHandler.handler) - 1
84
+ contractConfig.intervalConfigs.push({
85
+ slot: 0,
86
+ slotInterval: blockHandler.blockInterval,
87
+ minutes: 0,
88
+ minutesInterval: blockHandler.timeIntervalInMinutes,
89
+ handlerId: handlerId,
90
+ fetchConfig: undefined
91
+ // fetchConfig: blockHandler.fetchConfig
92
+ })
93
+ }
94
+
78
95
  // Finish up a contract
79
96
  config.contractConfigs.push(contractConfig)
80
97
  }
@@ -88,6 +105,8 @@ export class FuelPlugin extends Plugin {
88
105
  switch (request.handlerType) {
89
106
  case HandlerType.FUEL_CALL:
90
107
  return this.processTransaction(request)
108
+ case HandlerType.FUEL_BLOCK:
109
+ return this.processBlock(request)
91
110
  default:
92
111
  throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)
93
112
  }
@@ -121,6 +140,29 @@ export class FuelPlugin extends Plugin {
121
140
  }
122
141
  return mergeProcessResults(await Promise.all(promises))
123
142
  }
143
+
144
+ async processBlock(binding: DataBinding): Promise<ProcessResult> {
145
+ if (!binding.data?.fuelBlock?.block) {
146
+ throw new ServerError(Status.INVALID_ARGUMENT, "Block can't be empty")
147
+ }
148
+ const ethBlock = binding.data.fuelBlock
149
+
150
+ const promises: Promise<ProcessResult>[] = []
151
+ for (const handlerId of binding.handlerIds) {
152
+ const promise = this.handlers.blockHandlers[handlerId](ethBlock).catch((e) => {
153
+ console.error('error processing block: ', e)
154
+ throw new ServerError(
155
+ Status.INTERNAL,
156
+ 'error processing block: ' + ethBlock.block?.height + '\n' + errorString(e)
157
+ )
158
+ })
159
+ if (GLOBAL_CONFIG.execution.sequential) {
160
+ await promise
161
+ }
162
+ promises.push(promise)
163
+ }
164
+ return mergeProcessResults(await Promise.all(promises))
165
+ }
124
166
  }
125
167
 
126
168
  PluginManager.INSTANCE.register(new FuelPlugin())
@@ -1,18 +1,24 @@
1
- import { Data_FuelCall, FuelCallFilter, ProcessResult } from '@sentio/protos'
1
+ import { Data_FuelBlock, Data_FuelCall, FuelCallFilter, HandleInterval, ProcessResult } from '@sentio/protos'
2
2
  import { FuelCall, FuelContext, FuelContractContext } from './context.js'
3
3
  import { bn, Contract, Interface, JsonAbi, Provider } from 'fuels'
4
4
  import { FuelNetwork, getRpcEndpoint } from './network.js'
5
+ import { decodeFuelTransactionWithAbi, DEFAULT_FUEL_FETCH_CONFIG, FuelFetchConfig } from './transaction.js'
5
6
  import {
6
- decodeFuelTransactionWithAbi,
7
- DEFAULT_FUEL_FETCH_CONFIG,
8
- FuelFetchConfig,
7
+ BlockHandler,
8
+ CallHandler,
9
+ FuelBaseProcessor,
10
+ FuelBlock,
11
+ FuelLog,
12
+ FuelProcessorState,
9
13
  FuelTransaction
10
- } from './transaction.js'
11
- import { CallHandler, FuelBaseProcessor, FuelLog, FuelProcessorState } from './types.js'
14
+ } from './types.js'
12
15
  import { mergeProcessResults } from '@sentio/runtime'
16
+ import { PromiseOrVoid } from '../core/index.js'
17
+ import { ServerError, Status } from 'nice-grpc'
13
18
 
14
19
  export class FuelProcessor<TContract extends Contract> implements FuelBaseProcessor<FuelProcessorConfig> {
15
20
  callHandlers: CallHandler<Data_FuelCall>[] = []
21
+ blockHandlers: BlockHandler[] = []
16
22
 
17
23
  private provider: Provider
18
24
  private contract: TContract
@@ -60,6 +66,7 @@ export class FuelProcessor<TContract extends Contract> implements FuelBaseProces
60
66
  this.contract,
61
67
  this.config.address,
62
68
  this.config.name ?? this.config.address,
69
+ call.timestamp || new Date(0),
63
70
  tx
64
71
  )
65
72
  await handler(tx, ctx)
@@ -113,6 +120,7 @@ export class FuelProcessor<TContract extends Contract> implements FuelBaseProces
113
120
  this.config.chainId,
114
121
  this.config.address,
115
122
  this.config.name ?? this.config.address,
123
+ call.timestamp || new Date(0),
116
124
  tx
117
125
  )
118
126
  for (const op of tx.operations) {
@@ -173,6 +181,7 @@ export class FuelProcessor<TContract extends Contract> implements FuelBaseProces
173
181
  this.contract,
174
182
  this.config.address,
175
183
  this.config.name ?? this.config.address,
184
+ call.timestamp || new Date(0),
176
185
  tx
177
186
  )
178
187
  ctx.setLogIndex(log.receiptIndex)
@@ -200,6 +209,91 @@ export class FuelProcessor<TContract extends Contract> implements FuelBaseProces
200
209
  this.callHandlers.push(callHandler)
201
210
  return this
202
211
  }
212
+
213
+ public onInterval(
214
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
215
+ timeInterval: HandleInterval | undefined,
216
+ blockInterval: HandleInterval | undefined
217
+ // fetchConfig: Partial<FuelFetchConfig> | undefined
218
+ ): this {
219
+ if (timeInterval) {
220
+ if (timeInterval.backfillInterval < timeInterval.recentInterval) {
221
+ timeInterval.backfillInterval = timeInterval.recentInterval
222
+ }
223
+ }
224
+
225
+ const processor = this
226
+
227
+ this.blockHandlers.push({
228
+ blockInterval,
229
+ timeIntervalInMinutes: timeInterval,
230
+ handler: async function (data: Data_FuelBlock) {
231
+ const header = data.block
232
+ if (!header) {
233
+ throw new ServerError(Status.INVALID_ARGUMENT, 'Block is empty')
234
+ }
235
+
236
+ const block: FuelBlock = {
237
+ id: header.id,
238
+ height: bn(header.height),
239
+ time: header.time,
240
+ header: {
241
+ applicationHash: header.applicationHash,
242
+ daHeight: bn(header.daHeight),
243
+ eventInboxRoot: header.eventInboxRoot,
244
+ messageOutboxRoot: header.messageOutboxRoot,
245
+ prevRoot: header.prevRoot,
246
+ stateTransitionBytecodeVersion: header.stateTransitionBytecodeVersion,
247
+ transactionsCount: header.transactionsCount,
248
+ transactionsRoot: header.transactionsRoot
249
+ }
250
+ }
251
+
252
+ const ctx = new FuelContractContext(
253
+ processor.config.chainId,
254
+ processor.contract,
255
+ processor.config.address,
256
+ processor.config.name ?? processor.config.address,
257
+ data.timestamp || new Date(0),
258
+ null
259
+ )
260
+ await handler(block, ctx)
261
+ return ctx.stopAndGetResult()
262
+ }
263
+ })
264
+ return this
265
+ }
266
+
267
+ public onBlockInterval(
268
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
269
+ blockInterval = 250,
270
+ backfillBlockInterval = 1000
271
+ // fetchConfig?: Partial<FuelFetchConfig>
272
+ ): this {
273
+ return this.onInterval(
274
+ handler,
275
+ undefined,
276
+ {
277
+ recentInterval: blockInterval,
278
+ backfillInterval: backfillBlockInterval
279
+ }
280
+ // fetchConfig,
281
+ )
282
+ }
283
+
284
+ public onTimeInterval(
285
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
286
+ timeIntervalInMinutes = 60,
287
+ backfillTimeIntervalInMinutes = 240
288
+ // fetchConfig?: Partial<FuelFetchConfig>,
289
+ ): this {
290
+ return this.onInterval(
291
+ handler,
292
+ { recentInterval: timeIntervalInMinutes, backfillInterval: backfillTimeIntervalInMinutes },
293
+ undefined
294
+ // fetchConfig
295
+ )
296
+ }
203
297
  }
204
298
 
205
299
  export type FuelProcessorConfig = {
@@ -1,8 +1,8 @@
1
- import { CallHandler, FuelBaseProcessor, FuelProcessorState } from './types.js'
1
+ import { CallHandler, FuelBaseProcessor, FuelProcessorState, FuelTransaction } from './types.js'
2
2
  import { Data_FuelCall } from '@sentio/protos'
3
3
  import { Provider } from 'fuels'
4
4
  import { getRpcEndpoint } from './network.js'
5
- import { decodeFuelTransaction, DEFAULT_FUEL_FETCH_CONFIG, FuelFetchConfig, FuelTransaction } from './transaction.js'
5
+ import { decodeFuelTransaction, DEFAULT_FUEL_FETCH_CONFIG, FuelFetchConfig } from './transaction.js'
6
6
  import { FuelContext } from './context.js'
7
7
  import { FuelProcessorConfig } from './fuel-processor.js'
8
8
  import { mergeProcessResults } from '@sentio/runtime'
@@ -11,6 +11,7 @@ type GlobalFuelProcessorConfig = Omit<FuelProcessorConfig, 'address' | 'abi'>
11
11
 
12
12
  export class FuelGlobalProcessor implements FuelBaseProcessor<GlobalFuelProcessorConfig> {
13
13
  callHandlers: CallHandler<Data_FuelCall>[] = []
14
+ blockHandlers = []
14
15
 
15
16
  private provider: Provider
16
17
 
@@ -40,7 +41,13 @@ export class FuelGlobalProcessor implements FuelBaseProcessor<GlobalFuelProcesso
40
41
  console.error('error decoding transaction', e)
41
42
  return mergeProcessResults([])
42
43
  }
43
- const ctx = new FuelContext(this.config.chainId, '*', this.config.name ?? '*', tx)
44
+ const ctx = new FuelContext(
45
+ this.config.chainId,
46
+ '*',
47
+ this.config.name ?? '*',
48
+ call.timestamp || new Date(0),
49
+ tx
50
+ )
44
51
  await handler(tx, ctx)
45
52
  return ctx.stopAndGetResult()
46
53
  },
@@ -11,10 +11,9 @@ import {
11
11
  Provider,
12
12
  ReceiptType,
13
13
  TransactionCoder,
14
- TransactionResponse,
15
- TransactionSummary
14
+ TransactionResponse
16
15
  } from 'fuels'
17
- import { FuelLog } from './types.js'
16
+ import { FuelLog, FuelTransaction } from './types.js'
18
17
 
19
18
  export type FuelFetchConfig = {
20
19
  includeFailed?: boolean
@@ -24,12 +23,6 @@ export const DEFAULT_FUEL_FETCH_CONFIG: FuelFetchConfig = {
24
23
  includeFailed: false
25
24
  }
26
25
 
27
- export type FuelTransaction = TransactionSummary & {
28
- blockNumber?: string
29
- logs?: FuelLog<any>[]
30
- sender?: string
31
- }
32
-
33
26
  function findSenderFromInputs(inputs: Input[] | undefined, baseAssetId: string): string | undefined {
34
27
  for (const input of inputs || []) {
35
28
  if (input.type == InputType.Coin && input.assetId == baseAssetId) {
package/src/fuel/types.ts CHANGED
@@ -1,10 +1,20 @@
1
1
  import { ListStateStorage } from '@sentio/runtime'
2
- import { Data_FuelCall, FuelAssetHandlerConfig, FuelCallHandlerConfig, ProcessResult } from '@sentio/protos'
2
+ import {
3
+ Data_FuelBlock,
4
+ Data_FuelCall,
5
+ FuelAssetHandlerConfig,
6
+ FuelCallHandlerConfig,
7
+ HandleInterval,
8
+ OnIntervalConfig,
9
+ ProcessResult
10
+ } from '@sentio/protos'
11
+ import { Block, TransactionSummary } from 'fuels'
3
12
 
4
13
  export interface FuelBaseProcessor<T> {
5
14
  configure(): Promise<void>
6
15
  config: T
7
16
  callHandlers: CallHandler<Data_FuelCall>[]
17
+ blockHandlers: BlockHandler[]
8
18
  }
9
19
 
10
20
  export class FuelProcessorState extends ListStateStorage<FuelBaseProcessor<any>> {
@@ -20,8 +30,23 @@ export type CallHandler<T> = {
20
30
  }
21
31
  }
22
32
 
33
+ export type BlockHandler = {
34
+ blockInterval?: HandleInterval
35
+ timeIntervalInMinutes?: HandleInterval
36
+ handler: (block: Data_FuelBlock) => Promise<ProcessResult>
37
+ fetchConfig?: Partial<OnIntervalConfig>
38
+ }
39
+
23
40
  export interface FuelLog<T> {
24
41
  logId: string
25
42
  data: T
26
43
  receiptIndex: number
27
44
  }
45
+
46
+ export type FuelTransaction = TransactionSummary & {
47
+ blockNumber?: string
48
+ logs?: FuelLog<any>[]
49
+ sender?: string
50
+ }
51
+
52
+ export type FuelBlock = Omit<Block, 'transactionIds'>