@sentio/sdk 1.19.5 → 1.19.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/aptos/aptos-processor.d.ts +7 -6
- package/lib/aptos/aptos-processor.js +5 -2
- package/lib/aptos/aptos-processor.js.map +1 -1
- package/lib/aptos/context.d.ts +3 -3
- package/lib/aptos/context.js.map +1 -1
- package/lib/aptos/index.d.ts +1 -1
- package/lib/aptos/index.js.map +1 -1
- package/lib/cli/webpack.config.js +1 -0
- package/lib/processor-runner.js +2 -2
- package/lib/processor-runner.js.map +1 -1
- package/lib/tests/aptos.test.js +1 -1
- package/lib/tests/aptos.test.js.map +1 -1
- package/lib/tests/souffl3.js +6 -11
- package/lib/tests/souffl3.js.map +1 -1
- package/package.json +3 -3
- package/src/aptos/aptos-processor.ts +25 -10
- package/src/aptos/context.ts +3 -3
- package/src/aptos/index.ts +1 -4
- package/src/cli/webpack.config.js +1 -0
- package/src/processor-runner.ts +1 -1
- package/src/tests/aptos.test.ts +1 -1
- package/src/tests/souffl3.ts +6 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProcessResult } from '../gen';
|
|
2
|
-
import { AptosBindOptions, AptosContext, AptosNetwork,
|
|
2
|
+
import { AptosBindOptions, AptosContext, AptosNetwork, Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from '.';
|
|
3
3
|
import type { Event as OldEvent } from 'aptos/src/generated';
|
|
4
4
|
import Long from 'long';
|
|
5
5
|
export declare type Event = OldEvent & {
|
|
@@ -15,7 +15,7 @@ export interface EventFilter {
|
|
|
15
15
|
}
|
|
16
16
|
export interface CallFilter {
|
|
17
17
|
function: string;
|
|
18
|
-
typeArguments
|
|
18
|
+
typeArguments?: string[];
|
|
19
19
|
}
|
|
20
20
|
declare class EventHandler {
|
|
21
21
|
filters: EventFilter[];
|
|
@@ -23,7 +23,7 @@ declare class EventHandler {
|
|
|
23
23
|
}
|
|
24
24
|
declare class CallHandler {
|
|
25
25
|
filters: CallFilter[];
|
|
26
|
-
handler: (call:
|
|
26
|
+
handler: (call: Transaction_UserTransaction) => Promise<ProcessResult>;
|
|
27
27
|
}
|
|
28
28
|
export declare class AptosBaseProcessor {
|
|
29
29
|
name: string;
|
|
@@ -31,9 +31,10 @@ export declare class AptosBaseProcessor {
|
|
|
31
31
|
eventHandlers: EventHandler[];
|
|
32
32
|
callHandlers: CallHandler[];
|
|
33
33
|
constructor(options: AptosBindOptions);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
static bind(options: AptosBindOptions): AptosBaseProcessor;
|
|
35
|
+
onTransaction(handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void): AptosBaseProcessor;
|
|
36
|
+
onEvent(handler: (event: Event, ctx: AptosContext) => void, filter: EventFilter | EventFilter[]): AptosBaseProcessor;
|
|
37
|
+
onEntryFunctionCall(handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void, filter: CallFilter | CallFilter[]): AptosBaseProcessor;
|
|
37
38
|
private configure;
|
|
38
39
|
getChainId(): string;
|
|
39
40
|
}
|
|
@@ -25,6 +25,9 @@ class AptosBaseProcessor {
|
|
|
25
25
|
this.configure(options);
|
|
26
26
|
global.PROCESSOR_STATE.aptosProcessors.push(this);
|
|
27
27
|
}
|
|
28
|
+
static bind(options) {
|
|
29
|
+
return new AptosBaseProcessor(options);
|
|
30
|
+
}
|
|
28
31
|
onTransaction(handler) {
|
|
29
32
|
const address = this.config.address;
|
|
30
33
|
this.callHandlers.push({
|
|
@@ -66,8 +69,9 @@ class AptosBaseProcessor {
|
|
|
66
69
|
},
|
|
67
70
|
filters: _filters,
|
|
68
71
|
});
|
|
72
|
+
return this;
|
|
69
73
|
}
|
|
70
|
-
|
|
74
|
+
onEntryFunctionCall(handler, filter) {
|
|
71
75
|
let _filters = [];
|
|
72
76
|
if (Array.isArray(filter)) {
|
|
73
77
|
_filters = filter;
|
|
@@ -103,7 +107,6 @@ class AptosBaseProcessor {
|
|
|
103
107
|
address: options.address,
|
|
104
108
|
network: options.network || _1.AptosNetwork.TEST_NET,
|
|
105
109
|
};
|
|
106
|
-
return this;
|
|
107
110
|
}
|
|
108
111
|
//
|
|
109
112
|
// public endBlock(endBlock: Long | number) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptos-processor.js","sourceRoot":"","sources":["../../src/aptos/aptos-processor.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"aptos-processor.js","sourceRoot":"","sources":["../../src/aptos/aptos-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { ProcessResult } from '../gen'\nimport {\n AptosBindOptions,\n AptosContext,\n AptosNetwork,\n Transaction_UserTransaction,\n TransactionPayload_EntryFunctionPayload,\n} from '.'\nimport type { Event as OldEvent } from 'aptos/src/generated'\n\nimport Long from 'long'\nimport { APTOS_MAINNET_ID, APTOS_TESTNET_ID } from '../utils/chain'\n\nexport type Event = OldEvent & { version: string }\n\ntype IndexConfigure = {\n address: string\n network: AptosNetwork\n startVersion: Long\n // endSeqNumber?: Long\n}\n\nexport interface EventFilter {\n type: string\n}\n\nexport interface CallFilter {\n function: string\n typeArguments?: string[]\n}\n\nclass EventHandler {\n filters: EventFilter[]\n handler: (event: Event) => Promise<ProcessResult>\n}\n\nclass CallHandler {\n filters: CallFilter[]\n handler: (call: Transaction_UserTransaction) => Promise<ProcessResult>\n}\n\nexport class AptosBaseProcessor {\n name: string\n config: IndexConfigure\n eventHandlers: EventHandler[] = []\n callHandlers: CallHandler[] = []\n\n constructor(options: AptosBindOptions) {\n this.name = options.name || options.address\n this.configure(options)\n global.PROCESSOR_STATE.aptosProcessors.push(this)\n }\n\n static bind(options: AptosBindOptions): AptosBaseProcessor {\n return new AptosBaseProcessor(options)\n }\n\n public onTransaction(\n handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void\n ): AptosBaseProcessor {\n const address = this.config.address\n this.callHandlers.push({\n handler: async function (tx) {\n const ctx = new AptosContext(address, Long.fromString(tx.version), tx)\n if (tx) {\n handler(tx, ctx)\n }\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: ctx.logs,\n }\n },\n filters: [],\n })\n return this\n }\n\n public onEvent(\n handler: (event: Event, ctx: AptosContext) => void,\n filter: EventFilter | EventFilter[]\n ): AptosBaseProcessor {\n let _filters: EventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const address = this.config.address\n\n this.eventHandlers.push({\n handler: async function (event) {\n const ctx = new AptosContext(address, Long.fromString(event.version))\n if (event) {\n handler(event, ctx)\n }\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: ctx.logs,\n }\n },\n filters: _filters,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,\n filter: CallFilter | CallFilter[]\n ): AptosBaseProcessor {\n let _filters: CallFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const address = this.config.address\n\n this.callHandlers.push({\n handler: async function (tx) {\n const ctx = new AptosContext(address, Long.fromString(tx.version), tx)\n if (tx) {\n const payload = tx.payload as TransactionPayload_EntryFunctionPayload\n handler(payload, ctx)\n }\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: ctx.logs,\n }\n },\n filters: _filters,\n })\n return this\n }\n\n private configure(options: AptosBindOptions) {\n let startVersion = Long.ZERO\n if (options.startVersion) {\n startVersion = Long.fromValue(options.startVersion)\n }\n\n this.config = {\n startVersion: startVersion,\n address: options.address,\n network: options.network || AptosNetwork.TEST_NET,\n }\n }\n //\n // public endBlock(endBlock: Long | number) {\n // if (typeof endBlock === 'number') {\n // endBlock = Long.fromNumber(endBlock)\n // }\n // this.config.endSeqNumber = endBlock\n // return this\n // }\n\n getChainId(): string {\n switch (this.config.network) {\n case AptosNetwork.TEST_NET:\n return APTOS_TESTNET_ID\n case AptosNetwork.MAIN_NET:\n return APTOS_MAINNET_ID\n }\n }\n}\n"]}
|
package/lib/aptos/context.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import Long from 'long';
|
|
|
2
2
|
import { MetricDescriptor, RecordMetaData } from '../gen';
|
|
3
3
|
import { Labels } from '../core/metadata';
|
|
4
4
|
import { BaseContext } from '../core/context';
|
|
5
|
-
import {
|
|
5
|
+
import { Transaction_UserTransaction } from './';
|
|
6
6
|
export declare class AptosContext extends BaseContext {
|
|
7
7
|
address: string;
|
|
8
8
|
blockNumber: Long;
|
|
9
|
-
transaction:
|
|
10
|
-
constructor(address: string, slot: Long, transaction?:
|
|
9
|
+
transaction: Transaction_UserTransaction;
|
|
10
|
+
constructor(address: string, slot: Long, transaction?: Transaction_UserTransaction);
|
|
11
11
|
getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData;
|
|
12
12
|
}
|
package/lib/aptos/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/aptos/context.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AACjD,yCAA+C;AAC/C,6CAA6C;AAG7C,MAAa,YAAa,SAAQ,qBAAW;IAC3C,OAAO,CAAQ;IACf,WAAW,CAAM;IACjB,WAAW,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/aptos/context.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AACjD,yCAA+C;AAC/C,6CAA6C;AAG7C,MAAa,YAAa,SAAQ,qBAAW;IAC3C,OAAO,CAAQ;IACf,WAAW,CAAM;IACjB,WAAW,CAA6B;IAExC,YAAY,OAAe,EAAE,IAAU,EAAE,WAAyC;QAChF,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,WAAW,CAAC,UAAwC,EAAE,MAAc;QAClE,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;YAC7C,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,wBAAgB;YACzB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,IAAA,uBAAe,EAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF;AA1BD,oCA0BC","sourcesContent":["import Long from 'long'\nimport { MetricDescriptor, RecordMetaData } from '../gen'\nimport { Labels } from '../core/metadata'\nimport { APTOS_TESTNET_ID } from '../utils/chain'\nimport { normalizeLabels } from '../core/meter'\nimport { BaseContext } from '../core/context'\nimport { Transaction_UserTransaction } from './'\n\nexport class AptosContext extends BaseContext {\n address: string\n blockNumber: Long\n transaction: Transaction_UserTransaction\n\n constructor(address: string, slot: Long, transaction?: Transaction_UserTransaction) {\n super()\n this.address = address\n this.blockNumber = slot\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData {\n return {\n contractAddress: this.address,\n blockNumber: this.blockNumber,\n transactionIndex: 0,\n transactionHash: this.transaction?.hash || '', // TODO\n logIndex: 0,\n chainId: APTOS_TESTNET_ID, // TODO set in context\n descriptor: descriptor,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
|
package/lib/aptos/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { Transaction_UserTransaction
|
|
1
|
+
export type { Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from 'aptos/src/generated';
|
|
2
2
|
export type { Event, CallFilter, EventFilter } from './aptos-processor';
|
|
3
3
|
export { AptosBaseProcessor } from './aptos-processor';
|
|
4
4
|
export { AptosContext } from './context';
|
package/lib/aptos/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aptos/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aptos/index.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AAA7C,qHAAA,kBAAkB,OAAA;AAC3B,qCAAwC;AAA/B,uGAAA,YAAY,OAAA;AACrB,+CAA+D;AAAtD,gHAAA,gBAAgB,OAAA;AAAE,4GAAA,YAAY,OAAA","sourcesContent":["export type { Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from 'aptos/src/generated'\nexport type { Event, CallFilter, EventFilter } from './aptos-processor'\nexport { AptosBaseProcessor } from './aptos-processor'\nexport { AptosContext } from './context'\nexport { AptosBindOptions, AptosNetwork } from './bind-options'\n"]}
|
package/lib/processor-runner.js
CHANGED
|
@@ -6,7 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const command_line_args_1 = __importDefault(require("command-line-args"));
|
|
8
8
|
const nice_grpc_1 = require("nice-grpc");
|
|
9
|
-
const
|
|
9
|
+
const gen_1 = require("./gen");
|
|
10
10
|
const service_1 = require("./service");
|
|
11
11
|
const provider_1 = require("./provider");
|
|
12
12
|
const path_1 = __importDefault(require("path"));
|
|
@@ -39,6 +39,6 @@ const server = (0, nice_grpc_1.createServer)({
|
|
|
39
39
|
'grpc.default_compression_algorithm': compression_algorithms_1.CompressionAlgorithms.gzip,
|
|
40
40
|
});
|
|
41
41
|
const service = new service_1.ProcessorServiceImpl(() => (0, loader_1.load)(options.target), server.shutdown);
|
|
42
|
-
server.add(
|
|
42
|
+
server.add(gen_1.ProcessorDefinition, service);
|
|
43
43
|
server.listen('0.0.0.0:' + options.port);
|
|
44
44
|
//# sourceMappingURL=processor-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-runner.js","sourceRoot":"","sources":["../src/processor-runner.ts"],"names":[],"mappings":";;;;;;AAEA,0EAA+C;AAC/C,yCAAwC;AACxC
|
|
1
|
+
{"version":3,"file":"processor-runner.js","sourceRoot":"","sources":["../src/processor-runner.ts"],"names":[],"mappings":";;;;;;AAEA,0EAA+C;AAC/C,yCAAwC;AACxC,+BAA2C;AAC3C,uCAAgD;AAChD,yCAAwC;AAExC,gDAAuB;AACvB,wDAAyB;AACzB,uDAAkD;AAClD,qCAA+B;AAC/B,2FAAsF;AAEtF,MAAM,CAAC,eAAe,GAAG,IAAI,gCAAc,EAAE,CAAA;AAE7C,MAAM,iBAAiB,GAAG;IACxB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;IACrD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;IAChE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE;IACtD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;IAC/D;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,oBAAoB;KACnC;CACF,CAAA;AAED,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAErE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;AAEtC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;AACvD,MAAM,YAAY,GAAG,kBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE9C,IAAA,sBAAW,EAAC,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE1E,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AAEpC,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC;IAC1B,8BAA8B,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAChD,iCAAiC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnD,oCAAoC,EAAE,8CAAqB,CAAC,IAAI;CACjE,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,IAAI,8BAAoB,CAAC,GAAG,EAAE,CAAC,IAAA,aAAI,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;AACrF,MAAM,CAAC,GAAG,CAAC,yBAAmB,EAAE,OAAO,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA","sourcesContent":["#!/usr/bin/env node\n\nimport commandLineArgs from 'command-line-args'\nimport { createServer } from 'nice-grpc'\nimport { ProcessorDefinition } from './gen'\nimport { ProcessorServiceImpl } from './service'\nimport { setProvider } from './provider'\n\nimport path from 'path'\nimport fs from 'fs-extra'\nimport { ProcessorState } from './processor-state'\nimport { load } from './loader'\nimport { CompressionAlgorithms } from '@grpc/grpc-js/build/src/compression-algorithms'\n\nglobal.PROCESSOR_STATE = new ProcessorState()\n\nconst optionDefinitions = [\n { name: 'target', type: String, defaultOption: true },\n { name: 'port', alias: 'p', type: String, defaultValue: '4000' },\n { name: 'concurrency', type: Number, defaultValue: 4 },\n { name: 'use-chainserver', type: Boolean, defaultValue: false },\n {\n name: 'chains-config',\n alias: 'c',\n type: String,\n defaultValue: 'chains-config.json',\n },\n]\n\nconst options = commandLineArgs(optionDefinitions, { partial: true })\n\nconsole.log('loading', options.target)\n\nconst fullPath = path.resolve(options['chains-config'])\nconst chainsConfig = fs.readJsonSync(fullPath)\n\nsetProvider(chainsConfig, options.concurrency, options['use-chainserver'])\n\nconsole.log('Start Server', options)\n\nconst server = createServer({\n 'grpc.max_send_message_length': 64 * 1024 * 1024,\n 'grpc.max_receive_message_length': 64 * 1024 * 1024,\n 'grpc.default_compression_algorithm': CompressionAlgorithms.gzip,\n})\n\nconst service = new ProcessorServiceImpl(() => load(options.target), server.shutdown)\nserver.add(ProcessorDefinition, service)\n\nserver.listen('0.0.0.0:' + options.port)\n"]}
|
package/lib/tests/aptos.test.js
CHANGED
|
@@ -45,7 +45,7 @@ describe('Test Aptos Example', () => {
|
|
|
45
45
|
],
|
|
46
46
|
};
|
|
47
47
|
const res = await service.processBindings(request);
|
|
48
|
-
(0, chai_1.expect)(res.result?.counters).length(
|
|
48
|
+
(0, chai_1.expect)(res.result?.counters).length(2);
|
|
49
49
|
(0, chai_1.expect)(res.result?.gauges).length(0);
|
|
50
50
|
(0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
|
|
51
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptos.test.js","sourceRoot":"","sources":["../../src/tests/aptos.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { TextEncoder } from 'util'\nimport { HandlerType, ProcessBindingsRequest } from '..'\n\nimport { TestProcessorServer } from '../testing'\n\ndescribe('Test Aptos Example', () => {\n const service = new TestProcessorServer(() => {\n require('./souffl3')\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 souffl3 transaction dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n\n test('Check souffl3 function call dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n },\n handlerId: 1,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n\n test('Check souffl3 event dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData.events[1])),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_EVENT,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n})\n\nconst testData = {\n version: '18483034',\n hash: '0xbf4df6f390546a793ba9b7caff120002b3257986dbea9c697fd64acf7dfeb052',\n state_change_hash: '0x6063039cca5a1eb33d3986d3665fc783238579961eaa4746c41e25fa4f72aac6',\n event_root_hash: '0x425e39bcf994672108f83c34f637e84166af7ecedcbe26aed0dff0d62da8055d',\n state_checkpoint_hash: null,\n gas_used: '854',\n success: true,\n vm_status: 'Executed successfully',\n accumulator_root_hash: '0x47aa479d9e15993ea2abe04043c89186fb5da0b5eb8b5c6d18bd55d5f0c2c877',\n changes: [],\n sender: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n sequence_number: '30',\n max_gas_amount: '20000',\n gas_unit_price: '1',\n expiration_timestamp_secs: '1663144544',\n payload: {\n function: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::pull_token_v2',\n type_arguments: ['0x1::aptos_coin::AptosCoin'],\n arguments: [\n '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n 'Souffl3 BlueBerry',\n '1',\n ],\n type: 'entry_function_payload',\n },\n signature: {\n public_key: '0x6c3f579afbf8a728827385039f7604ec1d06e5c802d8f9689ee8ec9d349fedc5',\n signature:\n '0xd2db95052e774f095d924030a50c29325a17e8d69d35c748f45bb0e22eb7d3b9e47545c98bd7130fd3ef46cbedc30c9aaeaf39c2d922ee8e7d578c0b1e76f30b',\n type: 'ed25519_signature',\n },\n events: [\n {\n guid: {\n creation_number: '3',\n account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n },\n sequence_number: '10',\n type: '0x1::coin::WithdrawEvent',\n data: {\n amount: '1',\n },\n },\n {\n version: '18483034',\n guid: {\n creation_number: '2',\n account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n },\n sequence_number: '11',\n type: '0x1::coin::DepositEvent',\n data: {\n amount: '1',\n },\n },\n {\n guid: {\n creation_number: '9',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '9',\n type: '0x3::token::CreateTokenDataEvent',\n data: {\n description:\n 'Souffl3 offers a one-stop marketplace for the launch, listing, and trading of NFT assets on APTOS.\\nWebsite:https://souffl3.com/\\nEveryone can win through our Bake Off campaign on the Aptos Testnet, rewards including Souffl3 Genesis NFT and whitelists of other collab projects, everyone is welcome to participate!',\n id: {\n collection: 'Souffl3 BlueBerry',\n creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n name: 'Souffl3 BlueBerry #2',\n },\n maximum: '999999999999',\n mutability_config: {\n description: true,\n maximum: true,\n properties: true,\n royalty: true,\n uri: true,\n },\n name: 'Souffl3 BlueBerry #2',\n property_keys: ['author', 'point'],\n property_types: ['string', 'integer'],\n property_values: ['0x33454e4a4f59204c616273', '0x30'],\n royalty_payee_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n royalty_points_denominator: '100',\n royalty_points_numerator: '20',\n uri: 'https://y3x4txhvirx5zl57efzbl6dg7psaier5q35hhwuqwzjwuahrycya.arweave.net/xu_J3PVEb9yvvyFyFfhm--QEEj2G-nPakLZTagDxwLA',\n },\n },\n {\n guid: {\n creation_number: '2',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '27',\n type: '0x3::token::DepositEvent',\n data: {\n amount: '1',\n id: {\n property_version: '0',\n token_data_id: {\n collection: 'Souffl3 BlueBerry',\n creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n name: 'Souffl3 BlueBerry #2',\n },\n },\n },\n },\n ],\n timestamp: '1663143945131218',\n type: 'user_transaction',\n}\n"]}
|
|
1
|
+
{"version":3,"file":"aptos.test.js","sourceRoot":"","sources":["../../src/tests/aptos.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { TextEncoder } from 'util'\nimport { HandlerType, ProcessBindingsRequest } from '..'\n\nimport { TestProcessorServer } from '../testing'\n\ndescribe('Test Aptos Example', () => {\n const service = new TestProcessorServer(() => {\n require('./souffl3')\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 souffl3 transaction dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n\n test('Check souffl3 function call dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n },\n handlerId: 1,\n handlerType: HandlerType.APT_CALL,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(2)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n\n test('Check souffl3 event dispatch', async () => {\n const request: ProcessBindingsRequest = {\n bindings: [\n {\n data: {\n raw: new TextEncoder().encode(JSON.stringify(testData.events[1])),\n },\n handlerId: 0,\n handlerType: HandlerType.APT_EVENT,\n },\n ],\n }\n const res = await service.processBindings(request)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)\n })\n})\n\nconst testData = {\n version: '18483034',\n hash: '0xbf4df6f390546a793ba9b7caff120002b3257986dbea9c697fd64acf7dfeb052',\n state_change_hash: '0x6063039cca5a1eb33d3986d3665fc783238579961eaa4746c41e25fa4f72aac6',\n event_root_hash: '0x425e39bcf994672108f83c34f637e84166af7ecedcbe26aed0dff0d62da8055d',\n state_checkpoint_hash: null,\n gas_used: '854',\n success: true,\n vm_status: 'Executed successfully',\n accumulator_root_hash: '0x47aa479d9e15993ea2abe04043c89186fb5da0b5eb8b5c6d18bd55d5f0c2c877',\n changes: [],\n sender: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n sequence_number: '30',\n max_gas_amount: '20000',\n gas_unit_price: '1',\n expiration_timestamp_secs: '1663144544',\n payload: {\n function: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807::SouffleChefCampaign::pull_token_v2',\n type_arguments: ['0x1::aptos_coin::AptosCoin'],\n arguments: [\n '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n 'Souffl3 BlueBerry',\n '1',\n ],\n type: 'entry_function_payload',\n },\n signature: {\n public_key: '0x6c3f579afbf8a728827385039f7604ec1d06e5c802d8f9689ee8ec9d349fedc5',\n signature:\n '0xd2db95052e774f095d924030a50c29325a17e8d69d35c748f45bb0e22eb7d3b9e47545c98bd7130fd3ef46cbedc30c9aaeaf39c2d922ee8e7d578c0b1e76f30b',\n type: 'ed25519_signature',\n },\n events: [\n {\n guid: {\n creation_number: '3',\n account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n },\n sequence_number: '10',\n type: '0x1::coin::WithdrawEvent',\n data: {\n amount: '1',\n },\n },\n {\n version: '18483034',\n guid: {\n creation_number: '2',\n account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n },\n sequence_number: '11',\n type: '0x1::coin::DepositEvent',\n data: {\n amount: '1',\n },\n },\n {\n guid: {\n creation_number: '9',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '9',\n type: '0x3::token::CreateTokenDataEvent',\n data: {\n description:\n 'Souffl3 offers a one-stop marketplace for the launch, listing, and trading of NFT assets on APTOS.\\nWebsite:https://souffl3.com/\\nEveryone can win through our Bake Off campaign on the Aptos Testnet, rewards including Souffl3 Genesis NFT and whitelists of other collab projects, everyone is welcome to participate!',\n id: {\n collection: 'Souffl3 BlueBerry',\n creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n name: 'Souffl3 BlueBerry #2',\n },\n maximum: '999999999999',\n mutability_config: {\n description: true,\n maximum: true,\n properties: true,\n royalty: true,\n uri: true,\n },\n name: 'Souffl3 BlueBerry #2',\n property_keys: ['author', 'point'],\n property_types: ['string', 'integer'],\n property_values: ['0x33454e4a4f59204c616273', '0x30'],\n royalty_payee_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n royalty_points_denominator: '100',\n royalty_points_numerator: '20',\n uri: 'https://y3x4txhvirx5zl57efzbl6dg7psaier5q35hhwuqwzjwuahrycya.arweave.net/xu_J3PVEb9yvvyFyFfhm--QEEj2G-nPakLZTagDxwLA',\n },\n },\n {\n guid: {\n creation_number: '2',\n account_address: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n },\n sequence_number: '27',\n type: '0x3::token::DepositEvent',\n data: {\n amount: '1',\n id: {\n property_version: '0',\n token_data_id: {\n collection: 'Souffl3 BlueBerry',\n creator: '0x21d5fe032affa1c8b10d343e9ad5a5618bc13baf5ed4a674fafaa12c54f416cc',\n name: 'Souffl3 BlueBerry #2',\n },\n },\n },\n },\n ],\n timestamp: '1663143945131218',\n type: 'user_transaction',\n}\n"]}
|
package/lib/tests/souffl3.js
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const sdk_1 = require("@sentio/sdk");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (options && !options.name) {
|
|
7
|
-
options.name = 'souffl3';
|
|
8
|
-
}
|
|
9
|
-
return new Souffl3(options);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
Souffl3.bind({
|
|
4
|
+
sdk_1.aptos.AptosBaseProcessor.bind({
|
|
5
|
+
name: 'souffl3',
|
|
13
6
|
startVersion: 6604913,
|
|
14
7
|
address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
|
|
15
8
|
})
|
|
@@ -22,11 +15,13 @@ Souffl3.bind({
|
|
|
22
15
|
}
|
|
23
16
|
}
|
|
24
17
|
})
|
|
25
|
-
.
|
|
18
|
+
.onEntryFunctionCall((call, ctx) => {
|
|
26
19
|
ctx.meter.Counter('call_num').add(1);
|
|
20
|
+
if (call.arguments.length > 3 && call.type_arguments.length > 0) {
|
|
21
|
+
ctx.meter.Counter('arg').add(parseInt(call.arguments[3]), { type: call.type_arguments[0] });
|
|
22
|
+
}
|
|
27
23
|
}, {
|
|
28
24
|
function: 'SouffleChefCampaign::pull_token_v2',
|
|
29
|
-
typeArguments: undefined,
|
|
30
25
|
})
|
|
31
26
|
.onEvent((event, ctx) => {
|
|
32
27
|
ctx.meter.Counter('evt_num').add(1);
|
package/lib/tests/souffl3.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"souffl3.js","sourceRoot":"","sources":["../../src/tests/souffl3.ts"],"names":[],"mappings":";;AAAA,qCAAmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"souffl3.js","sourceRoot":"","sources":["../../src/tests/souffl3.ts"],"names":[],"mappings":";;AAAA,qCAAmC;AAEnC,WAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC;IAC5B,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,OAAO;IACrB,OAAO,EAAE,oEAAoE;CAC9E,CAAC;KACC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;YAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE;gBACtD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;aACxE;SACF;KACF;AACH,CAAC,CAAC;KACD,mBAAmB,CAClB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACZ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;KAC5F;AACH,CAAC,EACD;IACE,QAAQ,EAAE,oCAAoC;CAC/C,CACF;KACA,OAAO,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACrC,CAAC,EACD;IACE,IAAI,EAAE,yBAAyB;CAChC,CACF,CAAA","sourcesContent":["import { aptos } from '@sentio/sdk'\n\naptos.AptosBaseProcessor.bind({\n name: 'souffl3',\n startVersion: 6604913,\n address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n})\n .onTransaction((txn, ctx) => {\n if (txn.events) {\n for (const event of txn.events) {\n if (event && event.type === '0x3::token::DepositEvent') {\n ctx.meter.Counter('deposit_token_count').add(Number(event.data.amount))\n }\n }\n }\n })\n .onEntryFunctionCall(\n (call, ctx) => {\n ctx.meter.Counter('call_num').add(1)\n if (call.arguments.length > 3 && call.type_arguments.length > 0) {\n ctx.meter.Counter('arg').add(parseInt(call.arguments[3]), { type: call.type_arguments[0] })\n }\n },\n {\n function: 'SouffleChefCampaign::pull_token_v2',\n }\n )\n .onEvent(\n (event, ctx) => {\n ctx.meter.Counter('evt_num').add(1)\n },\n {\n type: '0x1::coin::DepositEvent',\n }\n )\n"]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentio/sdk",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.19.
|
|
4
|
+
"version": "1.19.6",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"compile_target": "yarn tsc -b src/target-ethers-sentio/tsconfig.json",
|
|
7
7
|
"compile": "tsc -p . && cp src/cli/webpack.config.js lib/cli && cp src/utils/*.csv lib/utils",
|
|
8
8
|
"build": "yarn gen && yarn compile",
|
|
9
9
|
"start_ts": "ts-node --files src/processor-runner.ts ../examples/x2y2/src/processor.ts",
|
|
10
|
-
"start": "ts-node --files src/processor-runner.ts ../examples/
|
|
11
|
-
"start_js": "node lib/processor.js ../examples/
|
|
10
|
+
"start": "ts-node --files src/processor-runner.ts ../examples/aptos/dist/lib.js",
|
|
11
|
+
"start_js": "node lib/processor-runner.js ../examples/aptos/dist/lib.js",
|
|
12
12
|
"ts-start": "ts-node --files src/processor-runner.ts ./src/anyswap/src/processor.ts",
|
|
13
13
|
"cli": "ts-node src/cli/cli.ts",
|
|
14
14
|
"test": "jest",
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { ProcessResult } from '../gen'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AptosBindOptions,
|
|
4
|
+
AptosContext,
|
|
5
|
+
AptosNetwork,
|
|
6
|
+
Transaction_UserTransaction,
|
|
7
|
+
TransactionPayload_EntryFunctionPayload,
|
|
8
|
+
} from '.'
|
|
3
9
|
import type { Event as OldEvent } from 'aptos/src/generated'
|
|
4
10
|
|
|
5
11
|
import Long from 'long'
|
|
@@ -20,7 +26,7 @@ export interface EventFilter {
|
|
|
20
26
|
|
|
21
27
|
export interface CallFilter {
|
|
22
28
|
function: string
|
|
23
|
-
typeArguments
|
|
29
|
+
typeArguments?: string[]
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
class EventHandler {
|
|
@@ -30,7 +36,7 @@ class EventHandler {
|
|
|
30
36
|
|
|
31
37
|
class CallHandler {
|
|
32
38
|
filters: CallFilter[]
|
|
33
|
-
handler: (call:
|
|
39
|
+
handler: (call: Transaction_UserTransaction) => Promise<ProcessResult>
|
|
34
40
|
}
|
|
35
41
|
|
|
36
42
|
export class AptosBaseProcessor {
|
|
@@ -45,7 +51,13 @@ export class AptosBaseProcessor {
|
|
|
45
51
|
global.PROCESSOR_STATE.aptosProcessors.push(this)
|
|
46
52
|
}
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
static bind(options: AptosBindOptions): AptosBaseProcessor {
|
|
55
|
+
return new AptosBaseProcessor(options)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public onTransaction(
|
|
59
|
+
handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void
|
|
60
|
+
): AptosBaseProcessor {
|
|
49
61
|
const address = this.config.address
|
|
50
62
|
this.callHandlers.push({
|
|
51
63
|
handler: async function (tx) {
|
|
@@ -64,7 +76,10 @@ export class AptosBaseProcessor {
|
|
|
64
76
|
return this
|
|
65
77
|
}
|
|
66
78
|
|
|
67
|
-
public onEvent(
|
|
79
|
+
public onEvent(
|
|
80
|
+
handler: (event: Event, ctx: AptosContext) => void,
|
|
81
|
+
filter: EventFilter | EventFilter[]
|
|
82
|
+
): AptosBaseProcessor {
|
|
68
83
|
let _filters: EventFilter[] = []
|
|
69
84
|
|
|
70
85
|
if (Array.isArray(filter)) {
|
|
@@ -89,12 +104,13 @@ export class AptosBaseProcessor {
|
|
|
89
104
|
},
|
|
90
105
|
filters: _filters,
|
|
91
106
|
})
|
|
107
|
+
return this
|
|
92
108
|
}
|
|
93
109
|
|
|
94
|
-
public
|
|
95
|
-
handler: (call:
|
|
110
|
+
public onEntryFunctionCall(
|
|
111
|
+
handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,
|
|
96
112
|
filter: CallFilter | CallFilter[]
|
|
97
|
-
) {
|
|
113
|
+
): AptosBaseProcessor {
|
|
98
114
|
let _filters: CallFilter[] = []
|
|
99
115
|
|
|
100
116
|
if (Array.isArray(filter)) {
|
|
@@ -109,7 +125,7 @@ export class AptosBaseProcessor {
|
|
|
109
125
|
handler: async function (tx) {
|
|
110
126
|
const ctx = new AptosContext(address, Long.fromString(tx.version), tx)
|
|
111
127
|
if (tx) {
|
|
112
|
-
const payload = tx.payload as
|
|
128
|
+
const payload = tx.payload as TransactionPayload_EntryFunctionPayload
|
|
113
129
|
handler(payload, ctx)
|
|
114
130
|
}
|
|
115
131
|
return {
|
|
@@ -134,7 +150,6 @@ export class AptosBaseProcessor {
|
|
|
134
150
|
address: options.address,
|
|
135
151
|
network: options.network || AptosNetwork.TEST_NET,
|
|
136
152
|
}
|
|
137
|
-
return this
|
|
138
153
|
}
|
|
139
154
|
//
|
|
140
155
|
// public endBlock(endBlock: Long | number) {
|
package/src/aptos/context.ts
CHANGED
|
@@ -4,14 +4,14 @@ import { Labels } from '../core/metadata'
|
|
|
4
4
|
import { APTOS_TESTNET_ID } from '../utils/chain'
|
|
5
5
|
import { normalizeLabels } from '../core/meter'
|
|
6
6
|
import { BaseContext } from '../core/context'
|
|
7
|
-
import {
|
|
7
|
+
import { Transaction_UserTransaction } from './'
|
|
8
8
|
|
|
9
9
|
export class AptosContext extends BaseContext {
|
|
10
10
|
address: string
|
|
11
11
|
blockNumber: Long
|
|
12
|
-
transaction:
|
|
12
|
+
transaction: Transaction_UserTransaction
|
|
13
13
|
|
|
14
|
-
constructor(address: string, slot: Long, transaction?:
|
|
14
|
+
constructor(address: string, slot: Long, transaction?: Transaction_UserTransaction) {
|
|
15
15
|
super()
|
|
16
16
|
this.address = address
|
|
17
17
|
this.blockNumber = slot
|
package/src/aptos/index.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
Transaction_UserTransaction as UserTransaction,
|
|
3
|
-
TransactionPayload_EntryFunctionPayload as FunctionPayload,
|
|
4
|
-
} from 'aptos/src/generated'
|
|
1
|
+
export type { Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from 'aptos/src/generated'
|
|
5
2
|
export type { Event, CallFilter, EventFilter } from './aptos-processor'
|
|
6
3
|
export { AptosBaseProcessor } from './aptos-processor'
|
|
7
4
|
export { AptosContext } from './context'
|
package/src/processor-runner.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import commandLineArgs from 'command-line-args'
|
|
4
4
|
import { createServer } from 'nice-grpc'
|
|
5
|
-
import { ProcessorDefinition } from './gen
|
|
5
|
+
import { ProcessorDefinition } from './gen'
|
|
6
6
|
import { ProcessorServiceImpl } from './service'
|
|
7
7
|
import { setProvider } from './provider'
|
|
8
8
|
|
package/src/tests/aptos.test.ts
CHANGED
|
@@ -49,7 +49,7 @@ describe('Test Aptos Example', () => {
|
|
|
49
49
|
],
|
|
50
50
|
}
|
|
51
51
|
const res = await service.processBindings(request)
|
|
52
|
-
expect(res.result?.counters).length(
|
|
52
|
+
expect(res.result?.counters).length(2)
|
|
53
53
|
expect(res.result?.gauges).length(0)
|
|
54
54
|
expect(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034)
|
|
55
55
|
})
|
package/src/tests/souffl3.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { aptos } from '@sentio/sdk'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (options && !options.name) {
|
|
6
|
-
options.name = 'souffl3'
|
|
7
|
-
}
|
|
8
|
-
return new Souffl3(options)
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
Souffl3.bind({
|
|
3
|
+
aptos.AptosBaseProcessor.bind({
|
|
4
|
+
name: 'souffl3',
|
|
13
5
|
startVersion: 6604913,
|
|
14
6
|
address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
|
|
15
7
|
})
|
|
@@ -22,13 +14,15 @@ Souffl3.bind({
|
|
|
22
14
|
}
|
|
23
15
|
}
|
|
24
16
|
})
|
|
25
|
-
.
|
|
17
|
+
.onEntryFunctionCall(
|
|
26
18
|
(call, ctx) => {
|
|
27
19
|
ctx.meter.Counter('call_num').add(1)
|
|
20
|
+
if (call.arguments.length > 3 && call.type_arguments.length > 0) {
|
|
21
|
+
ctx.meter.Counter('arg').add(parseInt(call.arguments[3]), { type: call.type_arguments[0] })
|
|
22
|
+
}
|
|
28
23
|
},
|
|
29
24
|
{
|
|
30
25
|
function: 'SouffleChefCampaign::pull_token_v2',
|
|
31
|
-
typeArguments: undefined,
|
|
32
26
|
}
|
|
33
27
|
)
|
|
34
28
|
.onEvent(
|