@sentio/sdk 2.3.1 → 2.3.2-rc.1

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.
@@ -4,7 +4,7 @@ import { AptosBindOptions, AptosNetwork } from './network.js';
4
4
  import { AptosContext, AptosResourceContext } from './context.js';
5
5
  import { EventInstance } from './models.js';
6
6
  import { ListStateStorage } from '@sentio/runtime';
7
- import { MoveFetchConfig, Data_AptResource, HandleInterval, ProcessResult } from '@sentio/protos';
7
+ import { MoveFetchConfig, Data_AptResource, HandleInterval, ProcessResult, Data_AptEvent, Data_AptCall } from '@sentio/protos';
8
8
  import { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js';
9
9
  type IndexConfigure = {
10
10
  address: string;
@@ -23,8 +23,8 @@ export declare class AptosProcessorState extends ListStateStorage<AptosBaseProce
23
23
  export declare class AptosBaseProcessor {
24
24
  readonly moduleName: string;
25
25
  config: IndexConfigure;
26
- eventHandlers: EventHandler[];
27
- callHandlers: CallHandler[];
26
+ eventHandlers: EventHandler<Data_AptEvent>[];
27
+ callHandlers: CallHandler<Data_AptCall>[];
28
28
  constructor(moduleName: string, options: AptosBindOptions);
29
29
  onTransaction(handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void, includedFailed?: boolean, fetchConfig?: MoveFetchConfig): AptosBaseProcessor;
30
30
  onEvent(handler: (event: EventInstance, ctx: AptosContext) => void, filter: EventFilter | EventFilter[], fetchConfig?: MoveFetchConfig): AptosBaseProcessor;
@@ -2,7 +2,7 @@ import { MOVE_CODER } from './move-coder.js';
2
2
  import { AptosNetwork, getChainId } from './network.js';
3
3
  import { AptosContext, AptosResourceContext } from './context.js';
4
4
  import { ListStateStorage } from '@sentio/runtime';
5
- import { MoveFetchConfig } from '@sentio/protos';
5
+ import { MoveFetchConfig, } from '@sentio/protos';
6
6
  import { ServerError, Status } from 'nice-grpc';
7
7
  class ResourceHandlder {
8
8
  type;
@@ -1 +1 @@
1
- {"version":3,"file":"aptos-processor.js","sourceRoot":"","sources":["../../src/aptos/aptos-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { MoveResource, Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from './move-types.js'\n\nimport { MOVE_CODER, MoveCoder } from './move-coder.js'\nimport { AptosBindOptions, AptosNetwork, getChainId } from './network.js'\nimport { AptosContext, AptosResourceContext } from './context.js'\nimport { EventInstance } from './models.js'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { MoveFetchConfig, Data_AptResource, HandleInterval, ProcessResult } from '@sentio/protos'\nimport { ServerError, Status } from 'nice-grpc'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\n\ntype IndexConfigure = {\n address: string\n network: AptosNetwork\n startVersion: bigint\n // endSeqNumber?: Long\n}\n\nclass ResourceHandlder {\n type?: string\n versionInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (resource: Data_AptResource) => Promise<ProcessResult>\n}\n\nexport class AptosProcessorState extends ListStateStorage<AptosBaseProcessor> {\n static INSTANCE = new AptosProcessorState()\n}\n\nexport class AptosBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n eventHandlers: EventHandler[] = []\n callHandlers: CallHandler[] = []\n\n constructor(moduleName: string, options: AptosBindOptions) {\n this.moduleName = moduleName\n this.config = configure(options)\n AptosProcessorState.INSTANCE.addValue(this)\n this.loadTypes(MOVE_CODER)\n }\n\n // getABI(): MoveModule | undefined {\n // return undefined\n // }\n\n public onTransaction(\n handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void,\n includedFailed = false,\n fetchConfig?: MoveFetchConfig\n ): AptosBaseProcessor {\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const call = data.transaction as Transaction_UserTransaction\n const ctx = new AptosContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n BigInt(data.transaction.version),\n call\n )\n await handler(call, ctx)\n return ctx.getProcessResult()\n },\n filters: [{ function: '', includeFailed: includedFailed }],\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEvent(\n handler: (event: EventInstance, ctx: AptosContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): AptosBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as Transaction_UserTransaction\n if (!txn.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new AptosContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n BigInt(txn.version),\n txn\n )\n\n const events = txn.events\n txn.events = []\n for (const evt of events) {\n const eventInstance = evt as EventInstance\n const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): AptosBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as Transaction_UserTransaction\n\n const ctx = new AptosContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n BigInt(tx.version),\n tx\n )\n if (tx) {\n const payload = tx.payload as TransactionPayload_EntryFunctionPayload\n const decoded = MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n loadTypes(registry: MoveCoder) {\n if (registry.contains(this.config.address, this.moduleName)) {\n return\n }\n this.loadTypesInternal(registry)\n }\n\n protected loadTypesInternal(registry: MoveCoder) {\n // should be override by subclass\n console.log('')\n }\n}\n\nexport class AptosAccountProcessorState extends ListStateStorage<AptosAccountProcessor> {\n static INSTANCE = new AptosAccountProcessorState()\n}\n\nexport class AptosAccountProcessor {\n config: IndexConfigure\n\n resourcesHandlers: ResourceHandlder[] = []\n\n static bind(options: AptosBindOptions): AptosAccountProcessor {\n return new AptosAccountProcessor(options)\n }\n\n protected constructor(options: AptosBindOptions) {\n this.config = configure(options)\n AptosAccountProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n private onInterval(\n handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,\n timeInterval: HandleInterval | undefined,\n versionInterval: HandleInterval | undefined,\n type: string | undefined\n ) {\n const processor = this\n this.resourcesHandlers.push({\n handler: async function (data) {\n if (data.timestampMicros > Number.MAX_SAFE_INTEGER) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'timestamp is too large')\n }\n const timestamp = Number(data.timestampMicros)\n\n const ctx = new AptosResourceContext(\n processor.config.network,\n processor.config.address,\n data.version,\n timestamp\n )\n await handler(data.resources as MoveResource[], ctx)\n return ctx.getProcessResult()\n },\n timeIntervalInMinutes: timeInterval,\n versionInterval: versionInterval,\n type: type,\n })\n return this\n }\n\n public onTimeInterval(\n handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n type?: string\n ) {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes,\n },\n undefined,\n type\n )\n }\n\n public onVersionInterval(\n handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,\n versionInterval = 100000,\n backfillVersionInterval = 400000,\n typePrefix?: string\n ) {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: versionInterval, backfillInterval: backfillVersionInterval },\n typePrefix\n )\n }\n}\n\nfunction configure(options: AptosBindOptions): IndexConfigure {\n let startVersion = 0n\n if (options.startVersion !== undefined) {\n if (typeof options.startVersion === 'number') {\n startVersion = BigInt(options.startVersion)\n } else {\n startVersion = options.startVersion\n }\n }\n\n return {\n startVersion: startVersion,\n address: options.address,\n network: options.network || AptosNetwork.MAIN_NET,\n }\n}\n"]}
1
+ {"version":3,"file":"aptos-processor.js","sourceRoot":"","sources":["../../src/aptos/aptos-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { MoveResource, Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from './move-types.js'\n\nimport { MOVE_CODER, MoveCoder } from './move-coder.js'\nimport { AptosBindOptions, AptosNetwork, getChainId } from './network.js'\nimport { AptosContext, AptosResourceContext } from './context.js'\nimport { EventInstance } from './models.js'\nimport { ListStateStorage } from '@sentio/runtime'\nimport {\n MoveFetchConfig,\n Data_AptResource,\n HandleInterval,\n ProcessResult,\n Data_AptEvent,\n Data_AptCall,\n} from '@sentio/protos'\nimport { ServerError, Status } from 'nice-grpc'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\n\ntype IndexConfigure = {\n address: string\n network: AptosNetwork\n startVersion: bigint\n // endSeqNumber?: Long\n}\n\nclass ResourceHandlder {\n type?: string\n versionInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (resource: Data_AptResource) => Promise<ProcessResult>\n}\n\nexport class AptosProcessorState extends ListStateStorage<AptosBaseProcessor> {\n static INSTANCE = new AptosProcessorState()\n}\n\nexport class AptosBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n eventHandlers: EventHandler<Data_AptEvent>[] = []\n callHandlers: CallHandler<Data_AptCall>[] = []\n\n constructor(moduleName: string, options: AptosBindOptions) {\n this.moduleName = moduleName\n this.config = configure(options)\n AptosProcessorState.INSTANCE.addValue(this)\n this.loadTypes(MOVE_CODER)\n }\n\n // getABI(): MoveModule | undefined {\n // return undefined\n // }\n\n public onTransaction(\n handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void,\n includedFailed = false,\n fetchConfig?: MoveFetchConfig\n ): AptosBaseProcessor {\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const call = data.transaction as Transaction_UserTransaction\n const ctx = new AptosContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n BigInt(data.transaction.version),\n call\n )\n await handler(call, ctx)\n return ctx.getProcessResult()\n },\n filters: [{ function: '', includeFailed: includedFailed }],\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEvent(\n handler: (event: EventInstance, ctx: AptosContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): AptosBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as Transaction_UserTransaction\n if (!txn.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new AptosContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n BigInt(txn.version),\n txn\n )\n\n const events = txn.events\n txn.events = []\n for (const evt of events) {\n const eventInstance = evt as EventInstance\n const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): AptosBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as Transaction_UserTransaction\n\n const ctx = new AptosContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n BigInt(tx.version),\n tx\n )\n if (tx) {\n const payload = tx.payload as TransactionPayload_EntryFunctionPayload\n const decoded = MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n loadTypes(registry: MoveCoder) {\n if (registry.contains(this.config.address, this.moduleName)) {\n return\n }\n this.loadTypesInternal(registry)\n }\n\n protected loadTypesInternal(registry: MoveCoder) {\n // should be override by subclass\n console.log('')\n }\n}\n\nexport class AptosAccountProcessorState extends ListStateStorage<AptosAccountProcessor> {\n static INSTANCE = new AptosAccountProcessorState()\n}\n\nexport class AptosAccountProcessor {\n config: IndexConfigure\n\n resourcesHandlers: ResourceHandlder[] = []\n\n static bind(options: AptosBindOptions): AptosAccountProcessor {\n return new AptosAccountProcessor(options)\n }\n\n protected constructor(options: AptosBindOptions) {\n this.config = configure(options)\n AptosAccountProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n private onInterval(\n handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,\n timeInterval: HandleInterval | undefined,\n versionInterval: HandleInterval | undefined,\n type: string | undefined\n ) {\n const processor = this\n this.resourcesHandlers.push({\n handler: async function (data) {\n if (data.timestampMicros > Number.MAX_SAFE_INTEGER) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'timestamp is too large')\n }\n const timestamp = Number(data.timestampMicros)\n\n const ctx = new AptosResourceContext(\n processor.config.network,\n processor.config.address,\n data.version,\n timestamp\n )\n await handler(data.resources as MoveResource[], ctx)\n return ctx.getProcessResult()\n },\n timeIntervalInMinutes: timeInterval,\n versionInterval: versionInterval,\n type: type,\n })\n return this\n }\n\n public onTimeInterval(\n handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n type?: string\n ) {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes,\n },\n undefined,\n type\n )\n }\n\n public onVersionInterval(\n handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,\n versionInterval = 100000,\n backfillVersionInterval = 400000,\n typePrefix?: string\n ) {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: versionInterval, backfillInterval: backfillVersionInterval },\n typePrefix\n )\n }\n}\n\nfunction configure(options: AptosBindOptions): IndexConfigure {\n let startVersion = 0n\n if (options.startVersion !== undefined) {\n if (typeof options.startVersion === 'number') {\n startVersion = BigInt(options.startVersion)\n } else {\n startVersion = options.startVersion\n }\n }\n\n return {\n startVersion: startVersion,\n address: options.address,\n network: options.network || AptosNetwork.MAIN_NET,\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Data_AptCall, Data_AptEvent, MoveFetchConfig, ProcessResult } from '@sentio/protos';
1
+ import { MoveFetchConfig, ProcessResult } from '@sentio/protos';
2
2
  export interface EventFilter {
3
3
  type: string;
4
4
  account?: string;
@@ -13,13 +13,13 @@ export interface CallFilter {
13
13
  export interface ArgumentsFilter {
14
14
  arguments?: string[];
15
15
  }
16
- export declare class EventHandler {
16
+ export declare class EventHandler<T> {
17
17
  filters: EventFilter[];
18
- handler: (event: Data_AptEvent) => Promise<ProcessResult>;
18
+ handler: (event: T) => Promise<ProcessResult>;
19
19
  fetchConfig: MoveFetchConfig;
20
20
  }
21
- export declare class CallHandler {
21
+ export declare class CallHandler<T> {
22
22
  filters: FunctionNameAndCallFilter[];
23
- handler: (call: Data_AptCall) => Promise<ProcessResult>;
23
+ handler: (call: T) => Promise<ProcessResult>;
24
24
  fetchConfig: MoveFetchConfig;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/move/index.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,YAAY;IACvB,OAAO,CAAe;IACtB,OAAO,CAAkD;IACzD,WAAW,CAAiB;CAC7B;AAED,MAAM,OAAO,WAAW;IACtB,OAAO,CAA6B;IACpC,OAAO,CAAgD;IACvD,WAAW,CAAiB;CAC7B","sourcesContent":["// TODO extends ArgumentsFilter\nimport { Data_AptCall, Data_AptEvent, MoveFetchConfig, ProcessResult } from '@sentio/protos'\n\nexport interface EventFilter {\n type: string\n account?: string\n}\n\nexport interface FunctionNameAndCallFilter extends CallFilter {\n function: string\n}\n\n// TODO extends ArgumentsFilter\nexport interface CallFilter {\n includeFailed?: boolean\n typeArguments?: string[]\n}\n\nexport interface ArgumentsFilter {\n arguments?: string[]\n}\n\nexport class EventHandler {\n filters: EventFilter[]\n handler: (event: Data_AptEvent) => Promise<ProcessResult>\n fetchConfig: MoveFetchConfig\n}\n\nexport class CallHandler {\n filters: FunctionNameAndCallFilter[]\n handler: (call: Data_AptCall) => Promise<ProcessResult>\n fetchConfig: MoveFetchConfig\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/move/index.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,YAAY;IACvB,OAAO,CAAe;IACtB,OAAO,CAAsC;IAC7C,WAAW,CAAiB;CAC7B;AAED,MAAM,OAAO,WAAW;IACtB,OAAO,CAA6B;IACpC,OAAO,CAAqC;IAC5C,WAAW,CAAiB;CAC7B","sourcesContent":["// TODO extends ArgumentsFilter\nimport { Data_AptCall, Data_AptEvent, MoveFetchConfig, ProcessResult } from '@sentio/protos'\n\nexport interface EventFilter {\n type: string\n account?: string\n}\n\nexport interface FunctionNameAndCallFilter extends CallFilter {\n function: string\n}\n\n// TODO extends ArgumentsFilter\nexport interface CallFilter {\n includeFailed?: boolean\n typeArguments?: string[]\n}\n\nexport interface ArgumentsFilter {\n arguments?: string[]\n}\n\nexport class EventHandler<T> {\n filters: EventFilter[]\n handler: (event: T) => Promise<ProcessResult>\n fetchConfig: MoveFetchConfig\n}\n\nexport class CallHandler<T> {\n filters: FunctionNameAndCallFilter[]\n handler: (call: T) => Promise<ProcessResult>\n fetchConfig: MoveFetchConfig\n}\n"]}
@@ -6,8 +6,10 @@ export declare class SuiContext extends BaseContext {
6
6
  address: string;
7
7
  network: SuiNetwork;
8
8
  moduleName: string;
9
- timestamp: number;
9
+ timestamp: Date;
10
+ slot: bigint;
10
11
  transaction: SuiTransactionResponse;
11
- constructor(moduleName: string, network: SuiNetwork, address: string, version: number, transaction?: SuiTransactionResponse);
12
+ sequence: bigint;
13
+ constructor(moduleName: string, network: SuiNetwork, address: string, timestamp: Date, slot: bigint, transaction?: SuiTransactionResponse);
12
14
  getMetaData(name: string, labels: Labels): RecordMetaData;
13
15
  }
@@ -5,13 +5,16 @@ export class SuiContext extends BaseContext {
5
5
  network;
6
6
  moduleName;
7
7
  timestamp;
8
+ slot;
8
9
  transaction;
9
- constructor(moduleName, network, address, version, transaction) {
10
+ sequence;
11
+ constructor(moduleName, network, address, timestamp, slot, transaction) {
10
12
  super();
11
13
  this.address = address;
12
14
  this.network = network;
13
15
  this.moduleName = moduleName;
14
- this.timestamp = version;
16
+ this.timestamp = timestamp;
17
+ this.slot = slot;
15
18
  if (transaction) {
16
19
  this.transaction = transaction;
17
20
  }
@@ -20,7 +23,7 @@ export class SuiContext extends BaseContext {
20
23
  return {
21
24
  address: this.address,
22
25
  contractName: this.moduleName,
23
- blockNumber: BigInt(this.timestamp),
26
+ blockNumber: this.slot,
24
27
  transactionIndex: 0,
25
28
  transactionHash: this.transaction?.certificate.transactionDigest || '',
26
29
  logIndex: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/sui/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAQ;IACf,OAAO,CAAY;IACnB,UAAU,CAAQ;IAClB,SAAS,CAAQ;IACjB,WAAW,CAAwB;IAEnC,YACE,UAAkB,EAClB,OAAmB,EACnB,OAAe,EACf,OAAe,EACf,WAAoC;QAEpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAA;QACxB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;YACtE,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF","sourcesContent":["import { RecordMetaData } from '@sentio/protos'\nimport { type Labels, BaseContext, normalizeLabels } from '@sentio/sdk'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { SuiTransactionResponse } from '@mysten/sui.js'\n\nexport class SuiContext extends BaseContext {\n address: string\n network: SuiNetwork\n moduleName: string\n timestamp: number\n transaction: SuiTransactionResponse\n\n constructor(\n moduleName: string,\n network: SuiNetwork,\n address: string,\n version: number,\n transaction?: SuiTransactionResponse\n ) {\n super()\n this.address = address\n this.network = network\n this.moduleName = moduleName\n this.timestamp = version\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.moduleName,\n blockNumber: BigInt(this.timestamp),\n transactionIndex: 0,\n transactionHash: this.transaction?.certificate.transactionDigest || '', // TODO\n logIndex: 0,\n chainId: getChainId(this.network),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/sui/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAQ;IACf,OAAO,CAAY;IACnB,UAAU,CAAQ;IAClB,SAAS,CAAM;IACf,IAAI,CAAQ;IACZ,WAAW,CAAwB;IACnC,QAAQ,CAAQ;IAEhB,YACE,UAAkB,EAClB,OAAmB,EACnB,OAAe,EACf,SAAe,EACf,IAAY,EACZ,WAAoC;QAEpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;YACtE,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF","sourcesContent":["import { RecordMetaData } from '@sentio/protos'\nimport { type Labels, BaseContext, normalizeLabels } from '@sentio/sdk'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { SuiTransactionResponse } from '@mysten/sui.js'\n\nexport class SuiContext extends BaseContext {\n address: string\n network: SuiNetwork\n moduleName: string\n timestamp: Date\n slot: bigint\n transaction: SuiTransactionResponse\n sequence: bigint\n\n constructor(\n moduleName: string,\n network: SuiNetwork,\n address: string,\n timestamp: Date,\n slot: bigint,\n transaction?: SuiTransactionResponse\n ) {\n super()\n this.address = address\n this.network = network\n this.moduleName = moduleName\n this.timestamp = timestamp\n this.slot = slot\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.moduleName,\n blockNumber: this.slot,\n transactionIndex: 0,\n transactionHash: this.transaction?.certificate.transactionDigest || '', // TODO\n logIndex: 0,\n chainId: getChainId(this.network),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { MoveFetchConfig } from '@sentio/protos';
1
+ import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos';
2
2
  import { ListStateStorage } from '@sentio/runtime';
3
3
  import { SuiNetwork } from './network.js';
4
4
  import { SuiContext } from './context.js';
@@ -20,8 +20,8 @@ export declare class SuiProcessorState extends ListStateStorage<SuiBaseProcessor
20
20
  export declare class SuiBaseProcessor {
21
21
  readonly moduleName: string;
22
22
  config: IndexConfigure;
23
- eventHandlers: EventHandler[];
24
- callHandlers: CallHandler[];
23
+ eventHandlers: EventHandler<Data_SuiEvent>[];
24
+ callHandlers: CallHandler<Data_SuiCall>[];
25
25
  constructor(name: string, options: SuiBindOptions);
26
26
  getChainId(): string;
27
27
  onMoveEvent(handler: (event: MoveEvent, ctx: SuiContext) => void, filter: EventFilter | EventFilter[], fetchConfig?: MoveFetchConfig): SuiBaseProcessor;
@@ -50,7 +50,7 @@ export class SuiBaseProcessor {
50
50
  if (!txn.effects.events || !txn.effects.events.length) {
51
51
  throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions');
52
52
  }
53
- const ctx = new SuiContext(processor.moduleName, processor.config.network, processor.config.address, txn.timestamp_ms || 0, txn);
53
+ const ctx = new SuiContext(processor.moduleName, processor.config.network, processor.config.address, data.timestamp || new Date(0), data.slot, txn);
54
54
  const events = txn.effects.events;
55
55
  txn.effects.events = [];
56
56
  for (const evt of events) {
@@ -86,7 +86,7 @@ export class SuiBaseProcessor {
86
86
  throw new ServerError(Status.INVALID_ARGUMENT, 'call is null');
87
87
  }
88
88
  const tx = data.transaction;
89
- const ctx = new SuiContext(processor.moduleName, processor.config.network, processor.config.address, tx.timestamp_ms || 0, tx);
89
+ const ctx = new SuiContext(processor.moduleName, processor.config.network, processor.config.address, data.timestamp || new Date(0), data.slot, tx);
90
90
  if (tx) {
91
91
  const calls = tx.certificate.data.transactions.flatMap((tx) => {
92
92
  const call = getMoveCallTransaction(tx);
@@ -1 +1 @@
1
- {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler[] = []\n callHandlers: CallHandler[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n txn.timestamp_ms || 0,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = eventInstance // TODO\n // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n tx.timestamp_ms || 0,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = tx.certificate.data.transactions.flatMap((tx) => {\n const call = getMoveCallTransaction(tx)\n if (call) {\n return [call]\n }\n return []\n })\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = payload // MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}
1
+ {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = eventInstance // TODO\n // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = tx.certificate.data.transactions.flatMap((tx) => {\n const call = getMoveCallTransaction(tx)\n if (call) {\n return [call]\n }\n return []\n })\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = payload // MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sui.test.js","sourceRoot":"","sources":["../../../src/sui/tests/sui.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { SuiBaseProcessor, SuiBindOptions } from '../index.js'\n\nimport { TestProcessorServer } from '@sentio/sdk/testing'\nimport { DataBinding, HandlerType } from '@sentio/protos'\n\ndescribe('Test Sui Example', () => {\n const service = new TestProcessorServer(async () => {\n class SwapProcessor extends SuiBaseProcessor {\n static bind(options: SuiBindOptions): SwapProcessor {\n return new SwapProcessor('TicTacToe', options)\n }\n }\n\n SwapProcessor.bind({\n startTimestamp: 0,\n address: '0x8235459df815e77668b4a49bb36e229f3321f432',\n }).onMoveEvent(\n (evt, ctx) => {\n const amount = parseInt(evt.fields?.x_amount)\n ctx.meter.Counter('amount').add(amount)\n },\n {\n type: 'pool::LiquidityEvent',\n }\n )\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(1)\n })\n\n test('Check transaction dispatch', async () => {\n const data = testData\n data.effects.events = [data.effects.events[data.effects.events.length - 1]]\n const request: DataBinding = {\n data: {\n suiEvent: {\n transaction: data,\n },\n },\n handlerIds: [0],\n handlerType: HandlerType.SUI_EVENT,\n }\n const res = await service.processBinding(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n // expect(res.result?.counters[0].metadata?.toInt()).equal(12345)\n })\n})\n\nconst testData = {\n certificate: {\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n data: {\n transactions: [\n {\n Call: {\n package: {\n objectId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n version: 1,\n digest: 'THgI2ZcsS4aU5UNvLjB1huyOTXZ+QEavMOWGPC1UnHE=',\n },\n module: 'pool',\n function: 'add_liquidity',\n typeArguments: ['0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL', '0x2::sui::SUI'],\n arguments: [\n '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n [64, 13, 3, 0, 0, 0, 0, 0],\n [16, 0, 0, 0, 0, 0, 0, 0],\n ],\n },\n },\n ],\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n gasPayment: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n digest: '+AVDN5/rqB755p9bU4Qh0gpn8FlaA6+ZRO//VPUSTVA=',\n },\n gasPrice: 618,\n gasBudget: 1000,\n },\n txSignature:\n 'ANprZ/tjWOt7YBpfksRHlcRfMzHFNd1flhkSs6ld/CX8h6CYkdctIXPrcyLrUpwEDqM7XLJ1v4x/1670E6sfngv83dcb+0vmesdX0PdnU6Mte4NGe5+0kTZ3/sb71VTMNA==',\n authSignInfo: {\n epoch: 22,\n signature: 'AZKQTmXsBGPz0Z3IKNXJCiCuIkFEqmGfQnm6R+umm34ppHHMSIvre1ThTcwSAnp3zQ==',\n signers_map: [\n 58, 48, 0, 0, 1, 0, 0, 0, 0, 0, 27, 0, 16, 0, 0, 0, 0, 0, 1, 0, 3, 0, 4, 0, 7, 0, 8, 0, 9, 0, 10, 0, 13, 0, 15,\n 0, 16, 0, 18, 0, 19, 0, 21, 0, 22, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 35,\n 0, 36, 0, 40, 0,\n ],\n },\n },\n effects: {\n status: {\n status: 'success',\n },\n gasUsed: {\n computationCost: 268212,\n storageCost: 95,\n storageRebate: 73,\n },\n sharedObjects: [\n {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493761,\n digest: 'SoxFXUfrWjtkqQ2zfCFxykkM0epbShSqc/5JfSAJgB4=',\n },\n ],\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n created: [\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n digest: '6HGSh1X72r21XbHg0zEo43uIkEfyVVALbASxB7N1eIs=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n digest: 'pTWwShZgjwZAZrVDI/i0xV25TTWEPBRbsCBBVZJsiXc=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n digest: '0Wo2uSBUhqNGI6mveDBAwlckVKBFkW9MjPjjTiiKBHU=',\n },\n },\n ],\n mutated: [\n {\n owner: {\n Shared: {\n initial_shared_version: 1020,\n },\n },\n reference: {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n digest: 'Y7lbJv2OkIe+awkSaZn6RGw6ga1IhklP1/Ij+vhu1Ns=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n ],\n deleted: [\n {\n objectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n {\n objectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n ],\n gasObject: {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n events: [\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Gas',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -268234,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n amount: 199999984,\n },\n },\n {\n mutateObject: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n objectType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::Pool<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LSP<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n coinObjectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n amount: 741,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n amount: 800000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -1,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 5624,\n amount: -200000000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2492561,\n amount: -1000000,\n },\n },\n {\n moveEvent: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n type: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LiquidityEvent',\n fields: {\n is_added: true,\n lsp_amount: '741',\n pool_id: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n x_amount: '200000',\n y_amount: '16',\n },\n bcs: 'SBqcMTqnJ15vyf9g66kZVks4UIYBQA0DAAAAAAAQAAAAAAAAAOUCAAAAAAAA',\n },\n },\n ],\n dependencies: [\n '4EXKjF3vTnoDEz54pDk6d2njs8roWwq3cfFAg2kUgKU4',\n '791GgUyLfBEhdsPSJ2HrHBPTm2599JLBnjbn6ySZhK3z',\n '8rq48ohgYu2QAHbwNHv1bLh8ZMgwiyghx1rzTzbWUB5B',\n 'CN8EG4p7x2mWuX8Tt82kWuSWLC43Vjfgp1nDzRLkibYE',\n 'DYUqe5hDjvyhG2EF2WsShTYAauVuC8oavB9U3eABScu3',\n ],\n },\n timestamp_ms: 1676013644266,\n parsed_data: null,\n}\n"]}
1
+ {"version":3,"file":"sui.test.js","sourceRoot":"","sources":["../../../src/sui/tests/sui.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { SuiBaseProcessor, SuiBindOptions } from '../index.js'\n\nimport { TestProcessorServer } from '@sentio/sdk/testing'\nimport { DataBinding, HandlerType } from '@sentio/protos'\n\ndescribe('Test Sui Example', () => {\n const service = new TestProcessorServer(async () => {\n class SwapProcessor extends SuiBaseProcessor {\n static bind(options: SuiBindOptions): SwapProcessor {\n return new SwapProcessor('TicTacToe', options)\n }\n }\n\n SwapProcessor.bind({\n startTimestamp: 0,\n address: '0x8235459df815e77668b4a49bb36e229f3321f432',\n }).onMoveEvent(\n (evt, ctx) => {\n const amount = parseInt(evt.fields?.x_amount)\n ctx.meter.Counter('amount').add(amount)\n },\n {\n type: 'pool::LiquidityEvent',\n }\n )\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(1)\n })\n\n test('Check transaction dispatch', async () => {\n const data = testData\n data.effects.events = [data.effects.events[data.effects.events.length - 1]]\n const request: DataBinding = {\n data: {\n suiEvent: {\n transaction: data,\n timestamp: new Date(),\n slot: 10000n,\n },\n },\n handlerIds: [0],\n handlerType: HandlerType.SUI_EVENT,\n }\n const res = await service.processBinding(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n // expect(res.result?.counters[0].metadata?.toInt()).equal(12345)\n })\n})\n\nconst testData = {\n certificate: {\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n data: {\n transactions: [\n {\n Call: {\n package: {\n objectId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n version: 1,\n digest: 'THgI2ZcsS4aU5UNvLjB1huyOTXZ+QEavMOWGPC1UnHE=',\n },\n module: 'pool',\n function: 'add_liquidity',\n typeArguments: ['0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL', '0x2::sui::SUI'],\n arguments: [\n '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n [64, 13, 3, 0, 0, 0, 0, 0],\n [16, 0, 0, 0, 0, 0, 0, 0],\n ],\n },\n },\n ],\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n gasPayment: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n digest: '+AVDN5/rqB755p9bU4Qh0gpn8FlaA6+ZRO//VPUSTVA=',\n },\n gasPrice: 618,\n gasBudget: 1000,\n },\n txSignature:\n 'ANprZ/tjWOt7YBpfksRHlcRfMzHFNd1flhkSs6ld/CX8h6CYkdctIXPrcyLrUpwEDqM7XLJ1v4x/1670E6sfngv83dcb+0vmesdX0PdnU6Mte4NGe5+0kTZ3/sb71VTMNA==',\n authSignInfo: {\n epoch: 22,\n signature: 'AZKQTmXsBGPz0Z3IKNXJCiCuIkFEqmGfQnm6R+umm34ppHHMSIvre1ThTcwSAnp3zQ==',\n signers_map: [\n 58, 48, 0, 0, 1, 0, 0, 0, 0, 0, 27, 0, 16, 0, 0, 0, 0, 0, 1, 0, 3, 0, 4, 0, 7, 0, 8, 0, 9, 0, 10, 0, 13, 0, 15,\n 0, 16, 0, 18, 0, 19, 0, 21, 0, 22, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 35,\n 0, 36, 0, 40, 0,\n ],\n },\n },\n effects: {\n status: {\n status: 'success',\n },\n gasUsed: {\n computationCost: 268212,\n storageCost: 95,\n storageRebate: 73,\n },\n sharedObjects: [\n {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493761,\n digest: 'SoxFXUfrWjtkqQ2zfCFxykkM0epbShSqc/5JfSAJgB4=',\n },\n ],\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n created: [\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n digest: '6HGSh1X72r21XbHg0zEo43uIkEfyVVALbASxB7N1eIs=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n digest: 'pTWwShZgjwZAZrVDI/i0xV25TTWEPBRbsCBBVZJsiXc=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n digest: '0Wo2uSBUhqNGI6mveDBAwlckVKBFkW9MjPjjTiiKBHU=',\n },\n },\n ],\n mutated: [\n {\n owner: {\n Shared: {\n initial_shared_version: 1020,\n },\n },\n reference: {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n digest: 'Y7lbJv2OkIe+awkSaZn6RGw6ga1IhklP1/Ij+vhu1Ns=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n ],\n deleted: [\n {\n objectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n {\n objectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n ],\n gasObject: {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n events: [\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Gas',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -268234,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n amount: 199999984,\n },\n },\n {\n mutateObject: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n objectType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::Pool<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LSP<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n coinObjectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n amount: 741,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n amount: 800000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -1,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 5624,\n amount: -200000000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2492561,\n amount: -1000000,\n },\n },\n {\n moveEvent: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n type: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LiquidityEvent',\n fields: {\n is_added: true,\n lsp_amount: '741',\n pool_id: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n x_amount: '200000',\n y_amount: '16',\n },\n bcs: 'SBqcMTqnJ15vyf9g66kZVks4UIYBQA0DAAAAAAAQAAAAAAAAAOUCAAAAAAAA',\n },\n },\n ],\n dependencies: [\n '4EXKjF3vTnoDEz54pDk6d2njs8roWwq3cfFAg2kUgKU4',\n '791GgUyLfBEhdsPSJ2HrHBPTm2599JLBnjbn6ySZhK3z',\n '8rq48ohgYu2QAHbwNHv1bLh8ZMgwiyghx1rzTzbWUB5B',\n 'CN8EG4p7x2mWuX8Tt82kWuSWLC43Vjfgp1nDzRLkibYE',\n 'DYUqe5hDjvyhG2EF2WsShTYAauVuC8oavB9U3eABScu3',\n ],\n },\n timestamp_ms: 1676013644266,\n parsed_data: null,\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
3
  "license": "Apache-2.0",
4
- "version": "2.3.1",
4
+ "version": "2.3.2-rc.1",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "compile": "tsc && cp src/utils/*.csv lib/utils && cp src/tsup.config.ts lib",
@@ -19,9 +19,9 @@
19
19
  "@project-serum/anchor": "^0.26.0",
20
20
  "@sentio/bigdecimal": "^9.1.1-patch.3",
21
21
  "@sentio/ethers-v6": "^1.0.25",
22
- "@sentio/protos": "^2.3.1",
23
- "@sentio/runtime": "^2.3.1",
24
- "@sentio/sdk": "^2.3.1",
22
+ "@sentio/protos": "^2.3.2-rc.1",
23
+ "@sentio/runtime": "^2.3.2-rc.1",
24
+ "@sentio/sdk": "^2.3.2-rc.1",
25
25
  "@solana/web3.js": "^1.47.3",
26
26
  "@types/prettier": "^2.7.2",
27
27
  "aptos-sdk": "npm:@sentio/aptos@^1.6.0",
@@ -78,5 +78,5 @@
78
78
  "typedoc": {
79
79
  "entryPoint": "./src/index.ts"
80
80
  },
81
- "gitHead": "563d5df7771eb677356142ebd83836e469eb246e"
81
+ "gitHead": "e009009439a4b3cec12aa9cc6ac7e869a1cac1ef"
82
82
  }
@@ -5,7 +5,14 @@ import { AptosBindOptions, AptosNetwork, getChainId } from './network.js'
5
5
  import { AptosContext, AptosResourceContext } from './context.js'
6
6
  import { EventInstance } from './models.js'
7
7
  import { ListStateStorage } from '@sentio/runtime'
8
- import { MoveFetchConfig, Data_AptResource, HandleInterval, ProcessResult } from '@sentio/protos'
8
+ import {
9
+ MoveFetchConfig,
10
+ Data_AptResource,
11
+ HandleInterval,
12
+ ProcessResult,
13
+ Data_AptEvent,
14
+ Data_AptCall,
15
+ } from '@sentio/protos'
9
16
  import { ServerError, Status } from 'nice-grpc'
10
17
  import { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'
11
18
 
@@ -30,8 +37,8 @@ export class AptosProcessorState extends ListStateStorage<AptosBaseProcessor> {
30
37
  export class AptosBaseProcessor {
31
38
  readonly moduleName: string
32
39
  config: IndexConfigure
33
- eventHandlers: EventHandler[] = []
34
- callHandlers: CallHandler[] = []
40
+ eventHandlers: EventHandler<Data_AptEvent>[] = []
41
+ callHandlers: CallHandler<Data_AptCall>[] = []
35
42
 
36
43
  constructor(moduleName: string, options: AptosBindOptions) {
37
44
  this.moduleName = moduleName
package/src/move/index.ts CHANGED
@@ -20,14 +20,14 @@ export interface ArgumentsFilter {
20
20
  arguments?: string[]
21
21
  }
22
22
 
23
- export class EventHandler {
23
+ export class EventHandler<T> {
24
24
  filters: EventFilter[]
25
- handler: (event: Data_AptEvent) => Promise<ProcessResult>
25
+ handler: (event: T) => Promise<ProcessResult>
26
26
  fetchConfig: MoveFetchConfig
27
27
  }
28
28
 
29
- export class CallHandler {
29
+ export class CallHandler<T> {
30
30
  filters: FunctionNameAndCallFilter[]
31
- handler: (call: Data_AptCall) => Promise<ProcessResult>
31
+ handler: (call: T) => Promise<ProcessResult>
32
32
  fetchConfig: MoveFetchConfig
33
33
  }
@@ -7,21 +7,25 @@ export class SuiContext extends BaseContext {
7
7
  address: string
8
8
  network: SuiNetwork
9
9
  moduleName: string
10
- timestamp: number
10
+ timestamp: Date
11
+ slot: bigint
11
12
  transaction: SuiTransactionResponse
13
+ sequence: bigint
12
14
 
13
15
  constructor(
14
16
  moduleName: string,
15
17
  network: SuiNetwork,
16
18
  address: string,
17
- version: number,
19
+ timestamp: Date,
20
+ slot: bigint,
18
21
  transaction?: SuiTransactionResponse
19
22
  ) {
20
23
  super()
21
24
  this.address = address
22
25
  this.network = network
23
26
  this.moduleName = moduleName
24
- this.timestamp = version
27
+ this.timestamp = timestamp
28
+ this.slot = slot
25
29
  if (transaction) {
26
30
  this.transaction = transaction
27
31
  }
@@ -31,7 +35,7 @@ export class SuiContext extends BaseContext {
31
35
  return {
32
36
  address: this.address,
33
37
  contractName: this.moduleName,
34
- blockNumber: BigInt(this.timestamp),
38
+ blockNumber: this.slot,
35
39
  transactionIndex: 0,
36
40
  transactionHash: this.transaction?.certificate.transactionDigest || '', // TODO
37
41
  logIndex: 0,
@@ -1,4 +1,4 @@
1
- import { MoveFetchConfig } from '@sentio/protos'
1
+ import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'
2
2
  import { ListStateStorage } from '@sentio/runtime'
3
3
  import { SuiNetwork, getChainId } from './network.js'
4
4
  import { ServerError, Status } from 'nice-grpc'
@@ -26,8 +26,8 @@ export class SuiBaseProcessor {
26
26
  readonly moduleName: string
27
27
  config: IndexConfigure
28
28
 
29
- eventHandlers: EventHandler[] = []
30
- callHandlers: CallHandler[] = []
29
+ eventHandlers: EventHandler<Data_SuiEvent>[] = []
30
+ callHandlers: CallHandler<Data_SuiCall>[] = []
31
31
 
32
32
  constructor(name: string, options: SuiBindOptions) {
33
33
  this.config = configure(options)
@@ -71,7 +71,8 @@ export class SuiBaseProcessor {
71
71
  processor.moduleName,
72
72
  processor.config.network,
73
73
  processor.config.address,
74
- txn.timestamp_ms || 0,
74
+ data.timestamp || new Date(0),
75
+ data.slot,
75
76
  txn
76
77
  )
77
78
 
@@ -123,7 +124,8 @@ export class SuiBaseProcessor {
123
124
  processor.moduleName,
124
125
  processor.config.network,
125
126
  processor.config.address,
126
- tx.timestamp_ms || 0,
127
+ data.timestamp || new Date(0),
128
+ data.slot,
127
129
  tx
128
130
  )
129
131
  if (tx) {