@sentio/sdk 2.12.3-rc.1 → 2.13.0-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.
@@ -29,8 +29,8 @@ export declare class SuiBaseProcessor {
29
29
  callHandlers: CallHandler<Data_SuiCall>[];
30
30
  constructor(name: string, options: SuiBindOptions);
31
31
  getChainId(): string;
32
- onMoveEvent(handler: (event: SuiEvent, ctx: SuiContext) => void, filter: EventFilter | EventFilter[], fetchConfig?: MoveFetchConfig): SuiBaseProcessor;
33
- onEntryFunctionCall(handler: (call: MoveCallSuiTransaction, ctx: SuiContext) => void, filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[], fetchConfig?: MoveFetchConfig): SuiBaseProcessor;
32
+ onMoveEvent(handler: (event: SuiEvent, ctx: SuiContext) => void, filter: EventFilter | EventFilter[], fetchConfig?: Partial<MoveFetchConfig>): SuiBaseProcessor;
33
+ onEntryFunctionCall(handler: (call: MoveCallSuiTransaction, ctx: SuiContext) => void, filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[], fetchConfig?: Partial<MoveFetchConfig>): SuiBaseProcessor;
34
34
  }
35
35
  declare class ObjectHandler {
36
36
  type?: string;
@@ -41,7 +41,7 @@ export class SuiBaseProcessor {
41
41
  }
42
42
  onMoveEvent(handler, filter, fetchConfig) {
43
43
  let _filters = [];
44
- const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({});
44
+ const _fetchConfig = MoveFetchConfig.fromPartial(fetchConfig || {});
45
45
  if (Array.isArray(filter)) {
46
46
  _filters = filter;
47
47
  }
@@ -79,7 +79,7 @@ export class SuiBaseProcessor {
79
79
  }
80
80
  onEntryFunctionCall(handler, filter, fetchConfig) {
81
81
  let _filters = [];
82
- const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({});
82
+ const _fetchConfig = MoveFetchConfig.fromPartial(fetchConfig || {});
83
83
  if (Array.isArray(filter)) {
84
84
  _filters = filter;
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Data_SuiCall,\n Data_SuiEvent,\n Data_SuiObject,\n HandleInterval,\n MoveFetchConfig,\n MoveOnIntervalConfig_OwnerType,\n ProcessResult,\n} from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { getChainId, SuiNetwork } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext, SuiObjectsContext } from './context.js'\nimport {\n getProgrammableTransaction,\n getTransactionKind,\n MoveCallSuiTransaction,\n SuiEvent,\n SuiMoveObject,\n SuiTransactionBlockResponse,\n} from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\nimport { defaultMoveCoder } from './move-coder.js'\n// import { dynamic_field } from './builtin/0x2.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 SuiObjectBindOptions {\n objectId: 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.moduleName = name\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: SuiEvent, 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 SuiTransactionBlockResponse\n if (!txn.events || !txn.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.events\n txn.events = []\n for (const evt of events) {\n // if ('moveEvent' in evt) {\n // const eventInstance = evt.moveEvent as SuiEvent\n const decoded = defaultMoveCoder().decodeEvent<any>(evt)\n await handler(decoded || evt, 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: MoveCallSuiTransaction, 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 SuiTransactionBlockResponse\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: MoveCallSuiTransaction[] = getMoveCalls(tx)\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const txKind = getTransactionKind(tx)\n if (!txKind) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected getTransactionKind get empty')\n }\n const programmableTx = getProgrammableTransaction(txKind)\n\n const payload = calls[0]\n const decoded = defaultMoveCoder().decodeFunctionPayload(payload, programmableTx?.inputs || [])\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nclass ObjectHandler {\n type?: string\n versionInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (resource: Data_SuiObject) => Promise<ProcessResult>\n}\n\nexport class SuiAccountProcessorState extends ListStateStorage<SuiBaseObjectsProcessor<any>> {\n static INSTANCE = new SuiAccountProcessorState()\n}\n\nclass SuiObjectsBindOptions extends SuiBindOptions {\n ownerType: MoveOnIntervalConfig_OwnerType\n}\n\nabstract class SuiBaseObjectsProcessor<HandlerType> {\n config: IndexConfigure\n ownerType: MoveOnIntervalConfig_OwnerType\n\n objectHandlers: ObjectHandler[] = []\n\n // static bind(options: SuiObjectsBindOptions): SuiBaseObjectsProcessor<any> {\n // return new SuiBaseObjectsProcessor(options)\n // }\n\n protected constructor(options: SuiObjectsBindOptions) {\n this.config = configure(options)\n this.ownerType = options.ownerType\n SuiAccountProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n protected abstract transformObjects(objects: SuiMoveObject[]): HandlerType[]\n\n protected onInterval(\n handler: (resources: HandlerType[], ctx: SuiObjectsContext) => void,\n timeInterval: HandleInterval | undefined,\n versionInterval: HandleInterval | undefined,\n type: string | undefined\n ): this {\n const processor = this\n this.objectHandlers.push({\n handler: async function (data) {\n const ctx = new SuiObjectsContext(\n processor.config.network,\n processor.config.address,\n data.slot,\n data.timestamp || new Date(0)\n )\n await handler(processor.transformObjects(data.objects as SuiMoveObject[]), ctx)\n return ctx.getProcessResult()\n },\n timeIntervalInMinutes: timeInterval,\n versionInterval: versionInterval,\n type,\n })\n return this\n }\n\n public onTimeInterval(\n handler: (objects: HandlerType[], ctx: SuiObjectsContext) => void,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n type?: string\n ): this {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes,\n },\n undefined,\n type\n )\n }\n\n public onSlotInterval(\n handler: (objects: HandlerType[], ctx: SuiObjectsContext) => void,\n slotInterval = 100000,\n backfillSlotInterval = 400000,\n type?: string\n ): this {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: slotInterval, backfillInterval: backfillSlotInterval },\n type\n )\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\nexport class SuiAddressObjectsProcessor extends SuiBaseObjectsProcessor<SuiMoveObject> {\n static bind(options: SuiBindOptions): SuiAddressObjectsProcessor {\n return new SuiAddressObjectsProcessor({ ...options, ownerType: MoveOnIntervalConfig_OwnerType.ADDRESS })\n }\n\n protected transformObjects(objects: SuiMoveObject[]): SuiMoveObject[] {\n return objects\n }\n}\n// export class SuiDynamicFieldObjectsProcessor extends SuiBaseObjectsProcessor<dynamic_field.Field<any, any>> {\nexport class SuiDynamicFieldObjectsProcessor extends SuiBaseObjectsProcessor<SuiMoveObject> {\n static bind(options: SuiObjectBindOptions): SuiDynamicFieldObjectsProcessor {\n return new SuiDynamicFieldObjectsProcessor({\n address: options.objectId,\n network: options.network,\n startTimestamp: options.startTimestamp,\n ownerType: MoveOnIntervalConfig_OwnerType.OBJECT,\n })\n }\n\n protected transformObjects(objects: SuiMoveObject[]) {\n return objects\n // return defaultMoveCoder().getObjectsFromDynamicFields(objects)\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 {\n Data_SuiCall,\n Data_SuiEvent,\n Data_SuiObject,\n HandleInterval,\n MoveFetchConfig,\n MoveOnIntervalConfig_OwnerType,\n ProcessResult,\n} from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { getChainId, SuiNetwork } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext, SuiObjectsContext } from './context.js'\nimport {\n getProgrammableTransaction,\n getTransactionKind,\n MoveCallSuiTransaction,\n SuiEvent,\n SuiMoveObject,\n SuiTransactionBlockResponse,\n} from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\nimport { defaultMoveCoder } from './move-coder.js'\n// import { dynamic_field } from './builtin/0x2.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 SuiObjectBindOptions {\n objectId: 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.moduleName = name\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: SuiEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: Partial<MoveFetchConfig>\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = MoveFetchConfig.fromPartial(fetchConfig || {})\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 SuiTransactionBlockResponse\n if (!txn.events || !txn.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.events\n txn.events = []\n for (const evt of events) {\n // if ('moveEvent' in evt) {\n // const eventInstance = evt.moveEvent as SuiEvent\n const decoded = defaultMoveCoder().decodeEvent<any>(evt)\n await handler(decoded || evt, 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: MoveCallSuiTransaction, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: Partial<MoveFetchConfig>\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = MoveFetchConfig.fromPartial(fetchConfig || {})\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 SuiTransactionBlockResponse\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: MoveCallSuiTransaction[] = getMoveCalls(tx)\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const txKind = getTransactionKind(tx)\n if (!txKind) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected getTransactionKind get empty')\n }\n const programmableTx = getProgrammableTransaction(txKind)\n\n const payload = calls[0]\n const decoded = defaultMoveCoder().decodeFunctionPayload(payload, programmableTx?.inputs || [])\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nclass ObjectHandler {\n type?: string\n versionInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (resource: Data_SuiObject) => Promise<ProcessResult>\n}\n\nexport class SuiAccountProcessorState extends ListStateStorage<SuiBaseObjectsProcessor<any>> {\n static INSTANCE = new SuiAccountProcessorState()\n}\n\nclass SuiObjectsBindOptions extends SuiBindOptions {\n ownerType: MoveOnIntervalConfig_OwnerType\n}\n\nabstract class SuiBaseObjectsProcessor<HandlerType> {\n config: IndexConfigure\n ownerType: MoveOnIntervalConfig_OwnerType\n\n objectHandlers: ObjectHandler[] = []\n\n // static bind(options: SuiObjectsBindOptions): SuiBaseObjectsProcessor<any> {\n // return new SuiBaseObjectsProcessor(options)\n // }\n\n protected constructor(options: SuiObjectsBindOptions) {\n this.config = configure(options)\n this.ownerType = options.ownerType\n SuiAccountProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n protected abstract transformObjects(objects: SuiMoveObject[]): HandlerType[]\n\n protected onInterval(\n handler: (resources: HandlerType[], ctx: SuiObjectsContext) => void,\n timeInterval: HandleInterval | undefined,\n versionInterval: HandleInterval | undefined,\n type: string | undefined\n ): this {\n const processor = this\n this.objectHandlers.push({\n handler: async function (data) {\n const ctx = new SuiObjectsContext(\n processor.config.network,\n processor.config.address,\n data.slot,\n data.timestamp || new Date(0)\n )\n await handler(processor.transformObjects(data.objects as SuiMoveObject[]), ctx)\n return ctx.getProcessResult()\n },\n timeIntervalInMinutes: timeInterval,\n versionInterval: versionInterval,\n type,\n })\n return this\n }\n\n public onTimeInterval(\n handler: (objects: HandlerType[], ctx: SuiObjectsContext) => void,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n type?: string\n ): this {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes,\n },\n undefined,\n type\n )\n }\n\n public onSlotInterval(\n handler: (objects: HandlerType[], ctx: SuiObjectsContext) => void,\n slotInterval = 100000,\n backfillSlotInterval = 400000,\n type?: string\n ): this {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: slotInterval, backfillInterval: backfillSlotInterval },\n type\n )\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\nexport class SuiAddressObjectsProcessor extends SuiBaseObjectsProcessor<SuiMoveObject> {\n static bind(options: SuiBindOptions): SuiAddressObjectsProcessor {\n return new SuiAddressObjectsProcessor({ ...options, ownerType: MoveOnIntervalConfig_OwnerType.ADDRESS })\n }\n\n protected transformObjects(objects: SuiMoveObject[]): SuiMoveObject[] {\n return objects\n }\n}\n// export class SuiDynamicFieldObjectsProcessor extends SuiBaseObjectsProcessor<dynamic_field.Field<any, any>> {\nexport class SuiDynamicFieldObjectsProcessor extends SuiBaseObjectsProcessor<SuiMoveObject> {\n static bind(options: SuiObjectBindOptions): SuiDynamicFieldObjectsProcessor {\n return new SuiDynamicFieldObjectsProcessor({\n address: options.objectId,\n network: options.network,\n startTimestamp: options.startTimestamp,\n ownerType: MoveOnIntervalConfig_OwnerType.OBJECT,\n })\n }\n\n protected transformObjects(objects: SuiMoveObject[]) {\n return objects\n // return defaultMoveCoder().getObjectsFromDynamicFields(objects)\n }\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  import { Transaction_UserTransaction } from '../aptos/index.js';
2
2
  import { TestProcessorServer } from './test-processor-server.js';
3
- import { AptosNetwork, Event } from '@sentio/sdk/aptos';
3
+ import { AptosNetwork } from '@sentio/sdk/aptos';
4
4
  export declare class AptosFacet {
5
5
  server: TestProcessorServer;
6
6
  constructor(server: TestProcessorServer);
7
7
  testEntryFunctionCall(transaction: Transaction_UserTransaction, network?: AptosNetwork): Promise<import("@sentio/protos").ProcessBindingResponse>;
8
8
  testEntryFunctionCalls(transactions: Transaction_UserTransaction[], network?: AptosNetwork): Promise<import("@sentio/protos").ProcessBindingResponse>;
9
9
  private buildEntryFunctionCallBinding;
10
- testEvent(transaction: Transaction_UserTransaction, event: number | Event, network?: AptosNetwork): Promise<import("@sentio/protos").ProcessBindingResponse>;
10
+ testEvent(transaction: Transaction_UserTransaction, network?: AptosNetwork): Promise<import("@sentio/protos").ProcessBindingResponse>;
11
11
  private buildEventBinding;
12
12
  }
@@ -47,21 +47,14 @@ export class AptosFacet {
47
47
  }
48
48
  return undefined;
49
49
  }
50
- testEvent(transaction, event, network = AptosNetwork.MAIN_NET) {
51
- if (typeof event !== 'number') {
52
- const transaction2 = {};
53
- Object.assign(transaction2, transaction);
54
- transaction = transaction2;
55
- transaction.events = [event];
56
- event = 0;
57
- }
58
- const binding = this.buildEventBinding(transaction, event, network);
50
+ testEvent(transaction, network = AptosNetwork.MAIN_NET) {
51
+ const binding = this.buildEventBinding(transaction, network);
59
52
  if (!binding) {
60
53
  throw Error('Invalid test event: ' + JSON.stringify(transaction));
61
54
  }
62
55
  return this.server.processBinding(binding);
63
56
  }
64
- buildEventBinding(transaction, eventIdx, network = AptosNetwork.MAIN_NET) {
57
+ buildEventBinding(transaction, network = AptosNetwork.MAIN_NET) {
65
58
  // const allEvents = new Set(transaction.events.map(e => e.type))
66
59
  for (const config of this.server.contractConfigs) {
67
60
  if (config.contract?.chainId !== getChainId(network)) {
@@ -69,18 +62,18 @@ export class AptosFacet {
69
62
  }
70
63
  for (const eventConfig of config.moveEventConfigs) {
71
64
  for (const eventFilter of eventConfig.filters) {
72
- if (config.contract.address + '::' + eventFilter.type ===
73
- parseMoveType(transaction.events[eventIdx].type).qname) {
74
- transaction.events = [transaction.events[eventIdx]];
75
- return {
76
- data: {
77
- aptEvent: {
78
- transaction,
65
+ for (const event of transaction.events) {
66
+ if (config.contract.address + '::' + eventFilter.type === parseMoveType(event.type).qname) {
67
+ return {
68
+ data: {
69
+ aptEvent: {
70
+ transaction,
71
+ },
79
72
  },
80
- },
81
- handlerIds: [eventConfig.handlerId],
82
- handlerType: HandlerType.APT_EVENT,
83
- };
73
+ handlerIds: [eventConfig.handlerId],
74
+ handlerType: HandlerType.APT_EVENT,
75
+ };
76
+ }
84
77
  }
85
78
  }
86
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aptos-facet.js","sourceRoot":"","sources":["../../src/testing/aptos-facet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from '../aptos/index.js'\nimport { DataBinding, HandlerType } from '@sentio/protos'\nimport { getChainId } from '../aptos/network.js'\nimport { TestProcessorServer } from './test-processor-server.js'\nimport { AptosNetwork, Event } from '@sentio/sdk/aptos'\nimport { parseMoveType } from '../move/types.js'\n\nexport class AptosFacet {\n server: TestProcessorServer\n constructor(server: TestProcessorServer) {\n this.server = server\n }\n\n testEntryFunctionCall(transaction: Transaction_UserTransaction, network: AptosNetwork = AptosNetwork.MAIN_NET) {\n return this.testEntryFunctionCalls([transaction], network)\n }\n\n testEntryFunctionCalls(transactions: Transaction_UserTransaction[], network: AptosNetwork = AptosNetwork.MAIN_NET) {\n const bindings = []\n for (const trans of transactions) {\n const binding = this.buildEntryFunctionCallBinding(trans, network)\n if (!binding) {\n throw Error('Invalid test transaction: ' + JSON.stringify(trans))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n private buildEntryFunctionCallBinding(\n transaction: Transaction_UserTransaction,\n network: AptosNetwork = AptosNetwork.MAIN_NET\n ): DataBinding | undefined {\n const payload = transaction.payload as TransactionPayload_EntryFunctionPayload\n for (const config of this.server.contractConfigs) {\n if (config.contract?.chainId !== getChainId(network)) {\n continue\n }\n for (const callConfig of config.moveCallConfigs) {\n for (const callFilter of callConfig.filters) {\n if (config.contract.address + '::' + callFilter.function === payload.function) {\n return {\n data: {\n aptCall: {\n transaction,\n },\n },\n handlerIds: [callConfig.handlerId],\n handlerType: HandlerType.APT_CALL,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testEvent(\n transaction: Transaction_UserTransaction,\n event: number | Event,\n network: AptosNetwork = AptosNetwork.MAIN_NET\n ) {\n if (typeof event !== 'number') {\n const transaction2: Transaction_UserTransaction = {} as any\n Object.assign(transaction2, transaction)\n transaction = transaction2\n transaction.events = [event]\n event = 0\n }\n const binding = this.buildEventBinding(transaction, event, network)\n if (!binding) {\n throw Error('Invalid test event: ' + JSON.stringify(transaction))\n }\n return this.server.processBinding(binding)\n }\n\n private buildEventBinding(\n transaction: Transaction_UserTransaction,\n eventIdx: number,\n network: AptosNetwork = AptosNetwork.MAIN_NET\n ): DataBinding | undefined {\n // const allEvents = new Set(transaction.events.map(e => e.type))\n for (const config of this.server.contractConfigs) {\n if (config.contract?.chainId !== getChainId(network)) {\n continue\n }\n for (const eventConfig of config.moveEventConfigs) {\n for (const eventFilter of eventConfig.filters) {\n if (\n config.contract.address + '::' + eventFilter.type ===\n parseMoveType(transaction.events[eventIdx].type).qname\n ) {\n transaction.events = [transaction.events[eventIdx]]\n return {\n data: {\n aptEvent: {\n transaction,\n },\n },\n handlerIds: [eventConfig.handlerId],\n handlerType: HandlerType.APT_EVENT,\n }\n }\n }\n }\n }\n return undefined\n }\n}\n"]}
1
+ {"version":3,"file":"aptos-facet.js","sourceRoot":"","sources":["../../src/testing/aptos-facet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from '../aptos/index.js'\nimport { DataBinding, HandlerType } from '@sentio/protos'\nimport { getChainId } from '../aptos/network.js'\nimport { TestProcessorServer } from './test-processor-server.js'\nimport { AptosNetwork } from '@sentio/sdk/aptos'\nimport { parseMoveType } from '../move/types.js'\n\nexport class AptosFacet {\n server: TestProcessorServer\n constructor(server: TestProcessorServer) {\n this.server = server\n }\n\n testEntryFunctionCall(transaction: Transaction_UserTransaction, network: AptosNetwork = AptosNetwork.MAIN_NET) {\n return this.testEntryFunctionCalls([transaction], network)\n }\n\n testEntryFunctionCalls(transactions: Transaction_UserTransaction[], network: AptosNetwork = AptosNetwork.MAIN_NET) {\n const bindings = []\n for (const trans of transactions) {\n const binding = this.buildEntryFunctionCallBinding(trans, network)\n if (!binding) {\n throw Error('Invalid test transaction: ' + JSON.stringify(trans))\n }\n bindings.push(binding)\n }\n return this.server.processBindings({\n bindings: bindings,\n })\n }\n\n private buildEntryFunctionCallBinding(\n transaction: Transaction_UserTransaction,\n network: AptosNetwork = AptosNetwork.MAIN_NET\n ): DataBinding | undefined {\n const payload = transaction.payload as TransactionPayload_EntryFunctionPayload\n for (const config of this.server.contractConfigs) {\n if (config.contract?.chainId !== getChainId(network)) {\n continue\n }\n for (const callConfig of config.moveCallConfigs) {\n for (const callFilter of callConfig.filters) {\n if (config.contract.address + '::' + callFilter.function === payload.function) {\n return {\n data: {\n aptCall: {\n transaction,\n },\n },\n handlerIds: [callConfig.handlerId],\n handlerType: HandlerType.APT_CALL,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testEvent(transaction: Transaction_UserTransaction, network: AptosNetwork = AptosNetwork.MAIN_NET) {\n const binding = this.buildEventBinding(transaction, network)\n if (!binding) {\n throw Error('Invalid test event: ' + JSON.stringify(transaction))\n }\n return this.server.processBinding(binding)\n }\n\n private buildEventBinding(\n transaction: Transaction_UserTransaction,\n network: AptosNetwork = AptosNetwork.MAIN_NET\n ): DataBinding | undefined {\n // const allEvents = new Set(transaction.events.map(e => e.type))\n for (const config of this.server.contractConfigs) {\n if (config.contract?.chainId !== getChainId(network)) {\n continue\n }\n for (const eventConfig of config.moveEventConfigs) {\n for (const eventFilter of eventConfig.filters) {\n for (const event of transaction.events) {\n if (config.contract.address + '::' + eventFilter.type === parseMoveType(event.type).qname) {\n return {\n data: {\n aptEvent: {\n transaction,\n },\n },\n handlerIds: [eventConfig.handlerId],\n handlerType: HandlerType.APT_EVENT,\n }\n }\n }\n }\n }\n }\n return undefined\n }\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.12.3-rc.1",
4
+ "version": "2.13.0-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",
@@ -23,8 +23,8 @@
23
23
  "@project-serum/anchor": "^0.26.0",
24
24
  "@sentio/bigdecimal": "^9.1.1-patch.3",
25
25
  "@sentio/ethers-v6": "^1.0.28",
26
- "@sentio/protos": "^2.12.3-rc.1",
27
- "@sentio/runtime": "^2.12.3-rc.1",
26
+ "@sentio/protos": "^2.13.0-rc.1",
27
+ "@sentio/runtime": "^2.13.0-rc.1",
28
28
  "@solana/web3.js": "^1.74.0",
29
29
  "@types/prettier": "^2.7.2",
30
30
  "aptos-sdk": "npm:aptos@^1.8.3",
@@ -88,5 +88,5 @@
88
88
  "engines": {
89
89
  "node": ">=16"
90
90
  },
91
- "gitHead": "31647299254a4570dd6b9321ab42683d74e1f36d"
91
+ "gitHead": "5cb79084e93f7452fe85f1dbda684ff6a037973a"
92
92
  }
@@ -4,7 +4,7 @@ import { MOVE_CODER, MoveCoder } from './move-coder.js'
4
4
  import { AptosBindOptions, AptosNetwork, getChainId } from './network.js'
5
5
  import { AptosContext, AptosResourcesContext } from './context.js'
6
6
  import { EventInstance } from './models.js'
7
- import { ListStateStorage } from '@sentio/runtime'
7
+ import { ListStateStorage, mergeProcessResults } from '@sentio/runtime'
8
8
  import {
9
9
  MoveFetchConfig,
10
10
  Data_AptResource,
@@ -14,7 +14,7 @@ import {
14
14
  Data_AptCall,
15
15
  } from '@sentio/protos'
16
16
  import { ServerError, Status } from 'nice-grpc'
17
- import { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'
17
+ import { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter, parseMoveType } from '../move/index.js'
18
18
 
19
19
  type IndexConfigure = {
20
20
  address: string
@@ -72,7 +72,8 @@ export class AptosBaseProcessor {
72
72
  processor.config.network,
73
73
  processor.config.address,
74
74
  BigInt(data.transaction.version),
75
- call
75
+ call,
76
+ 0
76
77
  )
77
78
  await handler(call, ctx)
78
79
  return ctx.getProcessResult()
@@ -97,10 +98,11 @@ export class AptosBaseProcessor {
97
98
  _filters.push(filter)
98
99
  }
99
100
 
100
- // const address = this.config.address
101
+ const address = this.config.address
101
102
  // const moduleName = this.moduleName
102
103
 
103
104
  const processor = this
105
+ const allEventType = new Set(_filters.map((f) => address + '::' + f.type))
104
106
 
105
107
  this.eventHandlers.push({
106
108
  handler: async function (data) {
@@ -112,23 +114,31 @@ export class AptosBaseProcessor {
112
114
  throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')
113
115
  }
114
116
 
115
- const ctx = new AptosContext(
116
- processor.moduleName,
117
- processor.config.network,
118
- processor.config.address,
119
- BigInt(txn.version),
120
- txn
121
- )
122
-
123
117
  const events = txn.events
124
118
  txn.events = []
125
- for (const evt of events) {
119
+ const processResults = []
120
+
121
+ for (const [idx, evt] of events.entries()) {
122
+ const typeQname = parseMoveType(evt.type).qname
123
+ if (!allEventType.has(typeQname)) {
124
+ continue
125
+ }
126
+
127
+ const ctx = new AptosContext(
128
+ processor.moduleName,
129
+ processor.config.network,
130
+ processor.config.address,
131
+ BigInt(txn.version),
132
+ txn,
133
+ idx
134
+ )
126
135
  const eventInstance = evt as EventInstance
127
136
  const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)
128
137
  await handler(decoded || eventInstance, ctx)
138
+ processResults.push(ctx.getProcessResult())
129
139
  }
130
140
 
131
- return ctx.getProcessResult()
141
+ return mergeProcessResults(processResults)
132
142
  },
133
143
  filters: _filters,
134
144
  fetchConfig: _fetchConfig,
@@ -139,10 +149,10 @@ export class AptosBaseProcessor {
139
149
  public onEntryFunctionCall(
140
150
  handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,
141
151
  filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],
142
- fetchConfig?: MoveFetchConfig
152
+ fetchConfig?: Partial<MoveFetchConfig>
143
153
  ): this {
144
154
  let _filters: FunctionNameAndCallFilter[] = []
145
- const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})
155
+ const _fetchConfig = MoveFetchConfig.fromPartial(fetchConfig || {})
146
156
 
147
157
  if (Array.isArray(filter)) {
148
158
  _filters = filter
@@ -166,7 +176,8 @@ export class AptosBaseProcessor {
166
176
  processor.config.network,
167
177
  processor.config.address,
168
178
  BigInt(tx.version),
169
- tx
179
+ tx,
180
+ 0
170
181
  )
171
182
  if (tx) {
172
183
  const payload = tx.payload as TransactionPayload_EntryFunctionPayload