@sentio/sdk 2.44.0-rc.1 → 2.44.0-rc.3

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.
@@ -1,5 +1,5 @@
1
1
  import { BaseContext, Labels } from '../core/index.js';
2
- import { ChainId } from '@sentio/chain';
2
+ import { FuelChainId } from '@sentio/chain';
3
3
  import { RecordMetaData } from '@sentio/protos';
4
4
  import type { CallResult, Contract } from 'fuels';
5
5
  import { InvocationScopeLike } from 'fuels';
@@ -10,27 +10,27 @@ export declare class FuelCall {
10
10
  constructor(funcScopes: InvocationScopeLike | Array<InvocationScopeLike>, callResult: CallResult, isMultiCall: boolean, args?: Record<string, any> | undefined, logs?: FuelLog<unknown>[] | undefined);
11
11
  }
12
12
  export declare class FuelContext extends BaseContext {
13
- readonly chainId: ChainId;
13
+ readonly chainId: FuelChainId;
14
14
  readonly contractAddress: string;
15
15
  readonly contractName: string;
16
16
  readonly timestamp: Date;
17
17
  readonly transaction: FuelTransaction | null;
18
18
  readonly block: FuelBlock | null;
19
19
  private logIndex;
20
- constructor(chainId: ChainId, contractAddress: string, contractName: string, timestamp: Date, transaction: FuelTransaction | null, block: FuelBlock | null);
21
- getChainId(): ChainId;
20
+ constructor(chainId: FuelChainId, contractAddress: string, contractName: string, timestamp: Date, transaction: FuelTransaction | null, block: FuelBlock | null);
21
+ getChainId(): FuelChainId;
22
22
  setLogIndex(logIndex: number): void;
23
23
  protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
24
24
  }
25
25
  export declare class FuelContractContext<TContract extends Contract> extends FuelContext {
26
- readonly chainId: ChainId;
26
+ readonly chainId: FuelChainId;
27
27
  readonly contract: TContract;
28
28
  readonly contractAddress: string;
29
29
  readonly contractName: string;
30
30
  readonly timestamp: Date;
31
31
  readonly transaction: FuelTransaction | null;
32
32
  readonly block: FuelBlock | null;
33
- constructor(chainId: ChainId, contract: TContract, contractAddress: string, contractName: string, timestamp: Date, transaction: FuelTransaction | null, block: FuelBlock | null);
33
+ constructor(chainId: FuelChainId, contract: TContract, contractAddress: string, contractName: string, timestamp: Date, transaction: FuelTransaction | null, block: FuelBlock | null);
34
34
  get provider(): import("fuels").Provider;
35
35
  }
36
36
  //# 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,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEhE,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;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAPlC,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,EACnC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKlC,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;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;gBANvB,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,EACnC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKlC,IAAI,QAAQ,6BAEX;CACF"}
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,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,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,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEhE,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,WAAW;IAC7B,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;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAPlC,OAAO,CAAC,QAAQ,CAAa;gBAElB,OAAO,EAAE,WAAW,EACpB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,eAAe,GAAG,IAAI,EACnC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKlC,UAAU,IAAI,WAAW;IAIzB,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,WAAW;IAC7B,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;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;gBANvB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,eAAe,GAAG,IAAI,EACnC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKlC,IAAI,QAAQ,6BAEX;CACF"}
@@ -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;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;IACA;IAPH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAC7B,YACW,OAAgB,EAChB,eAAuB,EACvB,YAAoB,EACpB,SAAe,EACf,WAAmC,EACnC,KAAuB;QAEhC,KAAK,CAAC,EAAE,CAAC,CAAA;QAPA,YAAO,GAAP,OAAO,CAAS;QAChB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;QACf,gBAAW,GAAX,WAAW,CAAwB;QACnC,UAAK,GAAL,KAAK,CAAkB;IAGlC,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,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;YAC3F,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;IACA;IAPX,YACW,OAAgB,EAChB,QAAmB,EACnB,eAAuB,EACvB,YAAoB,EACpB,SAAe,EACf,WAAmC,EACnC,KAAuB;QAEhC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;QARnE,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;QACnC,UAAK,GAAL,KAAK,CAAkB;IAGlC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC/B,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;IACA;IAPH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAC7B,YACW,OAAoB,EACpB,eAAuB,EACvB,YAAoB,EACpB,SAAe,EACf,WAAmC,EACnC,KAAuB;QAEhC,KAAK,CAAC,EAAE,CAAC,CAAA;QAPA,YAAO,GAAP,OAAO,CAAa;QACpB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;QACf,gBAAW,GAAX,WAAW,CAAwB;QACnC,UAAK,GAAL,KAAK,CAAkB;IAGlC,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,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;YAC3F,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;IACA;IAPX,YACW,OAAoB,EACpB,QAAmB,EACnB,eAAuB,EACvB,YAAoB,EACpB,SAAe,EACf,WAAmC,EACnC,KAAuB;QAEhC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;QARnE,YAAO,GAAP,OAAO,CAAa;QACpB,aAAQ,GAAR,QAAQ,CAAW;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;QACf,gBAAW,GAAX,WAAW,CAAwB;QACnC,UAAK,GAAL,KAAK,CAAkB;IAGlC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC/B,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import { FuelContext, FuelContractContext } from './context.js';
2
+ import { HandleInterval } from '@sentio/protos';
3
+ import { PromiseOrVoid } from '../core/promises.js';
4
+ import { ListStateStorage } from '@sentio/runtime';
5
+ import { Contract } from 'fuels';
6
+ import { FuelBlock, FuelLog, FuelTransaction } from './types.js';
7
+ import { FuelFetchConfig } from './transaction.js';
8
+ import { FuelProcessor, FuelProcessorConfig } from './fuel-processor.js';
9
+ export declare class FuelProcessorTemplateProcessorState extends ListStateStorage<FuelBaseProcessorTemplate<Contract>> {
10
+ static INSTANCE: FuelProcessorTemplateProcessorState;
11
+ }
12
+ export declare abstract class FuelBaseProcessorTemplate<TContract extends Contract> {
13
+ id: number;
14
+ binds: Set<string>;
15
+ blockHandlers: {
16
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid;
17
+ blockInterval?: HandleInterval;
18
+ timeIntervalInMinutes?: HandleInterval;
19
+ }[];
20
+ logHandlers: {
21
+ logIdFilter: string | string[];
22
+ handler: (logs: FuelLog<any>, ctx: FuelContractContext<TContract>) => PromiseOrVoid;
23
+ }[];
24
+ transactionHandlers: {
25
+ handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid;
26
+ fetchConfig: FuelFetchConfig;
27
+ }[];
28
+ constructor();
29
+ /**
30
+ * Bind template using {@param options}, using {@param ctx}'s network value if not provided in the option
31
+ * @param options
32
+ * @param ctx
33
+ */
34
+ bind(options: Omit<Omit<FuelProcessorConfig, 'chainId'>, 'abi'>, ctx: FuelContext): void;
35
+ protected onLog(logIdFilter: string | string[], handler: (logs: FuelLog<any>, ctx: FuelContractContext<TContract>) => PromiseOrVoid): this;
36
+ onBlockInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, blockInterval?: number, backfillBlockInterval?: number): this;
37
+ onTimeInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, timeIntervalInMinutes?: number, backfillBlockInterval?: number): this;
38
+ onInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, timeInterval: HandleInterval | undefined, blockInterval: HandleInterval | undefined): this;
39
+ protected onTransaction(handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid, config?: FuelFetchConfig): this;
40
+ protected abstract bindInternal(options: Omit<FuelProcessorConfig, 'abi'>): FuelProcessor<TContract>;
41
+ }
42
+ //# sourceMappingURL=fuel-processor-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuel-processor-template.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAA6B,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAuB,MAAM,qBAAqB,CAAA;AAE7F,qBAAa,mCAAoC,SAAQ,gBAAgB,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC5G,MAAM,CAAC,QAAQ,sCAA4C;CAC5D;AAED,8BAAsB,yBAAyB,CAAC,SAAS,SAAS,QAAQ;IACxE,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,cAAoB;IACzB,aAAa,EAAE;QACb,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,CAAA;QACjF,aAAa,CAAC,EAAE,cAAc,CAAA;QAC9B,qBAAqB,CAAC,EAAE,cAAc,CAAA;KAEvC,EAAE,CAAK;IAER,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;QAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,CAAA;KAEpF,EAAE,CAAK;IAER,mBAAmB,EAAE;QACnB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,CAAA;QAC7F,WAAW,EAAE,eAAe,CAAA;KAC7B,EAAE,CAAK;;IAOR;;;;OAIG;IACI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IA4C/F,SAAS,CAAC,KAAK,CACb,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa;IAW9E,eAAe,CACpB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,EACjF,aAAa,SAAO,EACpB,qBAAqB,SAAO;IAcvB,cAAc,CACnB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,EACjF,qBAAqB,SAAK,EAC1B,qBAAqB,SAAM;IAWtB,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;IAY3C,SAAS,CAAC,aAAa,CACrB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,aAAa,EAC7F,MAAM,GAAE,eAA2C;IASrD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC;CACrG"}
@@ -0,0 +1,109 @@
1
+ import { ListStateStorage } from '@sentio/runtime';
2
+ import { TemplateInstanceState } from '../core/template.js';
3
+ import { DEFAULT_FUEL_FETCH_CONFIG } from './transaction.js';
4
+ import { getOptionsSignature } from './fuel-processor.js';
5
+ export class FuelProcessorTemplateProcessorState extends ListStateStorage {
6
+ static INSTANCE = new FuelProcessorTemplateProcessorState();
7
+ }
8
+ export class FuelBaseProcessorTemplate {
9
+ id;
10
+ binds = new Set();
11
+ blockHandlers = [];
12
+ logHandlers = [];
13
+ transactionHandlers = [];
14
+ constructor() {
15
+ this.id = FuelProcessorTemplateProcessorState.INSTANCE.getValues().length;
16
+ FuelProcessorTemplateProcessorState.INSTANCE.addValue(this);
17
+ }
18
+ /**
19
+ * Bind template using {@param options}, using {@param ctx}'s network value if not provided in the option
20
+ * @param options
21
+ * @param ctx
22
+ */
23
+ bind(options, ctx) {
24
+ const sig = getOptionsSignature({
25
+ address: options.address,
26
+ chainId: ctx.chainId
27
+ });
28
+ if (this.binds.has(sig)) {
29
+ console.log(`Same address can be bind to one template only once, ignore duplicate bind: ${sig}`);
30
+ return;
31
+ }
32
+ this.binds.add(sig);
33
+ const processor = this.bindInternal({ ...options, chainId: ctx.chainId });
34
+ for (const eh of this.logHandlers) {
35
+ processor.onLog(eh.logIdFilter, eh.handler);
36
+ }
37
+ for (const bh of this.blockHandlers) {
38
+ processor.onInterval(bh.handler, bh.timeIntervalInMinutes, bh.blockInterval);
39
+ }
40
+ for (const th of this.transactionHandlers) {
41
+ processor.onTransaction(th.handler);
42
+ }
43
+ const instance = {
44
+ templateId: this.id,
45
+ contract: {
46
+ address: options.address,
47
+ name: options.name || '',
48
+ chainId: ctx.chainId,
49
+ abi: ''
50
+ },
51
+ startBlock: BigInt(options.startBlock || 0),
52
+ endBlock: BigInt(options.endBlock || 0),
53
+ baseLabels: {}
54
+ // baseLabels: options.baseLabels
55
+ };
56
+ TemplateInstanceState.INSTANCE.addValue(instance);
57
+ ctx.update({
58
+ states: {
59
+ configUpdated: true
60
+ }
61
+ });
62
+ }
63
+ onLog(logIdFilter, handler
64
+ // fetchConfig?: Partial<FuelFetchConfig>
65
+ ) {
66
+ this.logHandlers.push({
67
+ logIdFilter,
68
+ handler
69
+ // fetchConfig: { ...fetchConfig}
70
+ });
71
+ return this;
72
+ }
73
+ onBlockInterval(handler, blockInterval = 1000, backfillBlockInterval = 4000
74
+ // fetchConfig?: Partial<FuelFetchConfig>
75
+ ) {
76
+ return this.onInterval(handler, undefined, {
77
+ recentInterval: blockInterval,
78
+ backfillInterval: backfillBlockInterval
79
+ }
80
+ // fetchConfig
81
+ );
82
+ }
83
+ onTimeInterval(handler, timeIntervalInMinutes = 60, backfillBlockInterval = 240
84
+ // fetchConfig?: Partial<FuelFetchConfig>
85
+ ) {
86
+ return this.onInterval(handler, { recentInterval: timeIntervalInMinutes, backfillInterval: backfillBlockInterval }, undefined
87
+ // fetchConfig
88
+ );
89
+ }
90
+ onInterval(handler, timeInterval, blockInterval
91
+ // fetchConfig?: FuelFetchConfig
92
+ ) {
93
+ this.blockHandlers.push({
94
+ handler,
95
+ timeIntervalInMinutes: timeInterval,
96
+ blockInterval
97
+ // fetchConfig: { ...fetchConfig }
98
+ });
99
+ return this;
100
+ }
101
+ onTransaction(handler, config = DEFAULT_FUEL_FETCH_CONFIG) {
102
+ this.transactionHandlers.push({
103
+ handler,
104
+ fetchConfig: config
105
+ });
106
+ return this;
107
+ }
108
+ }
109
+ //# sourceMappingURL=fuel-processor-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuel-processor-template.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor-template.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,9 @@ export declare class FuelProcessor<TContract extends Contract> implements FuelBa
15
15
  constructor(config: FuelProcessorConfig);
16
16
  latestGasPrice: string | undefined;
17
17
  configure(): Promise<void>;
18
- onTransaction(handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => void | Promise<void>, config?: FuelFetchConfig): this;
18
+ onTransaction(handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid, config?: FuelFetchConfig): this;
19
19
  private onCall;
20
- onLog<T>(logIdFilter: string | string[], handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => void | Promise<void>): this;
20
+ onLog<T>(logIdFilter: string | string[], handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => PromiseOrVoid): this;
21
21
  onInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, timeInterval: HandleInterval | undefined, blockInterval: HandleInterval | undefined): this;
22
22
  onBlockInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, blockInterval?: number, backfillBlockInterval?: number): this;
23
23
  onTimeInterval(handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid, timeIntervalInMinutes?: number, backfillTimeIntervalInMinutes?: number): this;
@@ -30,4 +30,5 @@ export type FuelProcessorConfig = {
30
30
  endBlock?: bigint;
31
31
  abi: JsonAbi;
32
32
  };
33
+ export declare function getOptionsSignature(opts: Omit<FuelProcessorConfig, 'abi'>): string;
33
34
  //# sourceMappingURL=fuel-processor.d.ts.map
@@ -1 +1 @@
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;IAiCrD,OAAO,CAAC,MAAM;IA4EP,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;IAoDnF,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;IAkDA,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"}
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,aAAa,EAC7F,MAAM,GAAE,eAA2C;IAiCrD,OAAO,CAAC,MAAM;IA4EP,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,aAAa;IAoD5E,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;IAkDA,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;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,MAAM,CAelF"}
@@ -211,4 +211,20 @@ export class FuelProcessor {
211
211
  );
212
212
  }
213
213
  }
214
+ export function getOptionsSignature(opts) {
215
+ const sig = [opts.address];
216
+ if (opts.chainId) {
217
+ sig.push(opts.chainId);
218
+ }
219
+ if (opts.name) {
220
+ sig.push(opts.name);
221
+ }
222
+ if (opts.startBlock) {
223
+ sig.push(opts.startBlock.toString());
224
+ }
225
+ if (opts.endBlock) {
226
+ sig.push(opts.endBlock.toString());
227
+ }
228
+ return sig.join('_');
229
+ }
214
230
  //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.44.0-rc.1",
3
+ "version": "2.44.0-rc.3",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -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.44.0-rc.1",
88
- "@sentio/protos": "2.44.0-rc.1"
87
+ "@sentio/protos": "2.44.0-rc.3",
88
+ "@sentio/runtime": "^2.44.0-rc.3"
89
89
  },
90
90
  "peerDependencies": {
91
91
  "tsup": "npm:@sentio/tsup@^6.7.5"
@@ -1,5 +1,5 @@
1
1
  import { BaseContext, Labels, normalizeLabels } from '../core/index.js'
2
- import { ChainId } from '@sentio/chain'
2
+ import { FuelChainId } from '@sentio/chain'
3
3
  import { RecordMetaData } from '@sentio/protos'
4
4
  import type { CallResult, Contract } from 'fuels'
5
5
  import { InvocationScopeLike } from 'fuels'
@@ -20,7 +20,7 @@ export class FuelCall {
20
20
  export class FuelContext extends BaseContext {
21
21
  private logIndex: number = -1
22
22
  constructor(
23
- readonly chainId: ChainId,
23
+ readonly chainId: FuelChainId,
24
24
  readonly contractAddress: string,
25
25
  readonly contractName: string,
26
26
  readonly timestamp: Date,
@@ -30,7 +30,7 @@ export class FuelContext extends BaseContext {
30
30
  super({})
31
31
  }
32
32
 
33
- getChainId(): ChainId {
33
+ getChainId(): FuelChainId {
34
34
  return this.chainId
35
35
  }
36
36
 
@@ -55,7 +55,7 @@ export class FuelContext extends BaseContext {
55
55
 
56
56
  export class FuelContractContext<TContract extends Contract> extends FuelContext {
57
57
  constructor(
58
- readonly chainId: ChainId,
58
+ readonly chainId: FuelChainId,
59
59
  readonly contract: TContract,
60
60
  readonly contractAddress: string,
61
61
  readonly contractName: string,
@@ -0,0 +1,161 @@
1
+ import { FuelContext, FuelContractContext } from './context.js'
2
+ import { HandleInterval, TemplateInstance } from '@sentio/protos'
3
+ import { PromiseOrVoid } from '../core/promises.js'
4
+ import { ListStateStorage } from '@sentio/runtime'
5
+ import { TemplateInstanceState } from '../core/template.js'
6
+ import { Contract } from 'fuels'
7
+ import { FuelBlock, FuelLog, FuelTransaction } from './types.js'
8
+ import { DEFAULT_FUEL_FETCH_CONFIG, FuelFetchConfig } from './transaction.js'
9
+ import { FuelProcessor, FuelProcessorConfig, getOptionsSignature } from './fuel-processor.js'
10
+
11
+ export class FuelProcessorTemplateProcessorState extends ListStateStorage<FuelBaseProcessorTemplate<Contract>> {
12
+ static INSTANCE = new FuelProcessorTemplateProcessorState()
13
+ }
14
+
15
+ export abstract class FuelBaseProcessorTemplate<TContract extends Contract> {
16
+ id: number
17
+ binds = new Set<string>()
18
+ blockHandlers: {
19
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid
20
+ blockInterval?: HandleInterval
21
+ timeIntervalInMinutes?: HandleInterval
22
+ // fetchConfig?: FuelFetchConfig
23
+ }[] = []
24
+
25
+ logHandlers: {
26
+ logIdFilter: string | string[]
27
+ handler: (logs: FuelLog<any>, ctx: FuelContractContext<TContract>) => PromiseOrVoid
28
+ // fetchConfig?: FuelFetchConfig
29
+ }[] = []
30
+
31
+ transactionHandlers: {
32
+ handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid
33
+ fetchConfig: FuelFetchConfig
34
+ }[] = []
35
+
36
+ constructor() {
37
+ this.id = FuelProcessorTemplateProcessorState.INSTANCE.getValues().length
38
+ FuelProcessorTemplateProcessorState.INSTANCE.addValue(this)
39
+ }
40
+
41
+ /**
42
+ * Bind template using {@param options}, using {@param ctx}'s network value if not provided in the option
43
+ * @param options
44
+ * @param ctx
45
+ */
46
+ public bind(options: Omit<Omit<FuelProcessorConfig, 'chainId'>, 'abi'>, ctx: FuelContext): void {
47
+ const sig = getOptionsSignature({
48
+ address: options.address,
49
+ chainId: ctx.chainId
50
+ })
51
+ if (this.binds.has(sig)) {
52
+ console.log(`Same address can be bind to one template only once, ignore duplicate bind: ${sig}`)
53
+ return
54
+ }
55
+ this.binds.add(sig)
56
+
57
+ const processor = this.bindInternal({ ...options, chainId: ctx.chainId })
58
+
59
+ for (const eh of this.logHandlers) {
60
+ processor.onLog(eh.logIdFilter, eh.handler)
61
+ }
62
+ for (const bh of this.blockHandlers) {
63
+ processor.onInterval(bh.handler, bh.timeIntervalInMinutes, bh.blockInterval)
64
+ }
65
+ for (const th of this.transactionHandlers) {
66
+ processor.onTransaction(th.handler)
67
+ }
68
+
69
+ const instance: TemplateInstance = {
70
+ templateId: this.id,
71
+ contract: {
72
+ address: options.address,
73
+ name: options.name || '',
74
+ chainId: ctx.chainId,
75
+ abi: ''
76
+ },
77
+ startBlock: BigInt(options.startBlock || 0),
78
+ endBlock: BigInt(options.endBlock || 0),
79
+ baseLabels: {}
80
+ // baseLabels: options.baseLabels
81
+ }
82
+ TemplateInstanceState.INSTANCE.addValue(instance)
83
+ ctx.update({
84
+ states: {
85
+ configUpdated: true
86
+ }
87
+ })
88
+ }
89
+
90
+ protected onLog(
91
+ logIdFilter: string | string[],
92
+ handler: (logs: FuelLog<any>, ctx: FuelContractContext<TContract>) => PromiseOrVoid
93
+ // fetchConfig?: Partial<FuelFetchConfig>
94
+ ) {
95
+ this.logHandlers.push({
96
+ logIdFilter,
97
+ handler
98
+ // fetchConfig: { ...fetchConfig}
99
+ })
100
+ return this
101
+ }
102
+
103
+ public onBlockInterval(
104
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
105
+ blockInterval = 1000,
106
+ backfillBlockInterval = 4000
107
+ // fetchConfig?: Partial<FuelFetchConfig>
108
+ ) {
109
+ return this.onInterval(
110
+ handler,
111
+ undefined,
112
+ {
113
+ recentInterval: blockInterval,
114
+ backfillInterval: backfillBlockInterval
115
+ }
116
+ // fetchConfig
117
+ )
118
+ }
119
+
120
+ public onTimeInterval(
121
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
122
+ timeIntervalInMinutes = 60,
123
+ backfillBlockInterval = 240
124
+ // fetchConfig?: Partial<FuelFetchConfig>
125
+ ) {
126
+ return this.onInterval(
127
+ handler,
128
+ { recentInterval: timeIntervalInMinutes, backfillInterval: backfillBlockInterval },
129
+ undefined
130
+ // fetchConfig
131
+ )
132
+ }
133
+
134
+ public onInterval(
135
+ handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
136
+ timeInterval: HandleInterval | undefined,
137
+ blockInterval: HandleInterval | undefined
138
+ // fetchConfig?: FuelFetchConfig
139
+ ) {
140
+ this.blockHandlers.push({
141
+ handler,
142
+ timeIntervalInMinutes: timeInterval,
143
+ blockInterval
144
+ // fetchConfig: { ...fetchConfig }
145
+ })
146
+ return this
147
+ }
148
+
149
+ protected onTransaction(
150
+ handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
151
+ config: FuelFetchConfig = DEFAULT_FUEL_FETCH_CONFIG
152
+ ) {
153
+ this.transactionHandlers.push({
154
+ handler,
155
+ fetchConfig: config
156
+ })
157
+ return this
158
+ }
159
+
160
+ protected abstract bindInternal(options: Omit<FuelProcessorConfig, 'abi'>): FuelProcessor<TContract>
161
+ }
@@ -49,7 +49,7 @@ export class FuelProcessor<TContract extends Contract> implements FuelBaseProces
49
49
  }
50
50
 
51
51
  public onTransaction(
52
- handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => void | Promise<void>,
52
+ handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid,
53
53
  config: FuelFetchConfig = DEFAULT_FUEL_FETCH_CONFIG
54
54
  ) {
55
55
  const callHandler = {
@@ -161,7 +161,7 @@ export class FuelProcessor<TContract extends Contract> implements FuelBaseProces
161
161
 
162
162
  public onLog<T>(
163
163
  logIdFilter: string | string[],
164
- handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => void | Promise<void>
164
+ handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => PromiseOrVoid
165
165
  ) {
166
166
  const logIds = new Set(Array.isArray(logIdFilter) ? logIdFilter : [logIdFilter])
167
167
 
@@ -308,3 +308,20 @@ export type FuelProcessorConfig = {
308
308
  endBlock?: bigint
309
309
  abi: JsonAbi
310
310
  }
311
+
312
+ export function getOptionsSignature(opts: Omit<FuelProcessorConfig, 'abi'>): string {
313
+ const sig = [opts.address]
314
+ if (opts.chainId) {
315
+ sig.push(opts.chainId)
316
+ }
317
+ if (opts.name) {
318
+ sig.push(opts.name)
319
+ }
320
+ if (opts.startBlock) {
321
+ sig.push(opts.startBlock.toString())
322
+ }
323
+ if (opts.endBlock) {
324
+ sig.push(opts.endBlock.toString())
325
+ }
326
+ return sig.join('_')
327
+ }