@sentio/sdk 1.19.4 → 1.19.5
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 +40 -0
- package/lib/aptos/aptos-processor.js +126 -0
- package/lib/aptos/aptos-processor.js.map +1 -0
- package/lib/aptos/bind-options.d.ts +11 -0
- package/lib/aptos/bind-options.js +17 -0
- package/lib/aptos/bind-options.js.map +1 -0
- package/lib/aptos/context.d.ts +12 -0
- package/lib/aptos/context.js +33 -0
- package/lib/aptos/context.js.map +1 -0
- package/lib/aptos/index.d.ts +5 -0
- package/lib/aptos/index.js +11 -0
- package/lib/aptos/index.js.map +1 -0
- package/lib/core/base-processor-template.js.map +1 -1
- package/lib/core/base-processor.d.ts +1 -1
- package/lib/core/base-processor.js.map +1 -1
- package/lib/core/bind-options.d.ts +0 -2
- package/lib/core/bind-options.js +1 -4
- package/lib/core/bind-options.js.map +1 -1
- package/lib/core/context.d.ts +10 -10
- package/lib/core/context.js +65 -11
- package/lib/core/context.js.map +1 -1
- package/lib/core/index.d.ts +1 -2
- package/lib/core/index.js +1 -4
- package/lib/core/index.js.map +1 -1
- package/lib/core/logger.d.ts +1 -1
- package/lib/core/logger.js +5 -5
- package/lib/core/logger.js.map +1 -1
- package/lib/core/metadata.d.ts +1 -1
- package/lib/core/metadata.js +3 -79
- package/lib/core/metadata.js.map +1 -1
- package/lib/core/meter.d.ts +1 -1
- package/lib/core/meter.js +2 -2
- package/lib/core/meter.js.map +1 -1
- package/lib/core/numberish.d.ts +1 -1
- package/lib/core/numberish.js +7 -7
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/numberish.test.js.map +1 -1
- package/lib/core/solana-processor.d.ts +1 -1
- package/lib/core/solana-processor.js.map +1 -1
- package/lib/core/sui-processor.d.ts +1 -1
- package/lib/core/sui-processor.js.map +1 -1
- package/lib/gen/index.d.ts +1 -0
- package/lib/gen/index.js +18 -0
- package/lib/gen/index.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +15 -2
- package/lib/index.js.map +1 -1
- package/lib/processor-state.d.ts +2 -1
- package/lib/processor-state.js.map +1 -1
- package/lib/service.d.ts +2 -2
- package/lib/service.js +41 -36
- package/lib/service.js.map +1 -1
- package/lib/testing/metric-utils.d.ts +1 -1
- package/lib/testing/metric-utils.js +2 -2
- package/lib/testing/metric-utils.js.map +1 -1
- package/lib/testing/test-processor-server.d.ts +2 -1
- package/lib/testing/test-processor-server.js +11 -11
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/testing/test-provider.js +2 -2
- package/lib/testing/test-provider.js.map +1 -1
- package/lib/tests/aptos.test.js +44 -12
- package/lib/tests/aptos.test.js.map +1 -1
- package/lib/tests/souffl3.js +16 -4
- package/lib/tests/souffl3.js.map +1 -1
- package/lib/utils/chain.d.ts +1 -0
- package/lib/utils/chain.js +3 -1
- package/lib/utils/chain.js.map +1 -1
- package/package.json +3 -5
- package/src/aptos/aptos-processor.ts +156 -0
- package/src/aptos/bind-options.ts +15 -0
- package/src/aptos/context.ts +35 -0
- package/src/aptos/index.ts +8 -0
- package/src/core/base-processor-template.ts +1 -1
- package/src/core/base-processor.ts +1 -1
- package/src/core/bind-options.ts +0 -1
- package/src/core/context.ts +74 -15
- package/src/core/index.ts +2 -2
- package/src/core/logger.ts +1 -1
- package/src/core/metadata.ts +4 -76
- package/src/core/meter.ts +1 -1
- package/src/core/numberish.test.ts +1 -1
- package/src/core/numberish.ts +1 -1
- package/src/core/solana-processor.ts +1 -1
- package/src/core/sui-processor.ts +1 -1
- package/src/gen/index.ts +1 -0
- package/src/index.ts +4 -1
- package/src/processor-state.ts +3 -1
- package/src/service.ts +29 -29
- package/src/testing/metric-utils.ts +2 -2
- package/src/testing/test-processor-server.ts +5 -2
- package/src/testing/test-provider.ts +1 -1
- package/src/tests/aptos.test.ts +47 -11
- package/src/tests/souffl3.ts +30 -12
- package/src/utils/chain.ts +2 -0
- package/lib/core/aptos-processor.d.ts +0 -41
- package/lib/core/aptos-processor.js +0 -125
- package/lib/core/aptos-processor.js.map +0 -1
- package/src/core/aptos-processor.ts +0 -147
package/lib/tests/aptos.test.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
const chai_1 = require("chai");
|
|
7
|
-
const long_1 = __importDefault(require("long"));
|
|
8
4
|
const util_1 = require("util");
|
|
9
|
-
const
|
|
5
|
+
const __1 = require("..");
|
|
10
6
|
const testing_1 = require("../testing");
|
|
11
7
|
describe('Test Aptos Example', () => {
|
|
12
8
|
const service = new testing_1.TestProcessorServer(() => {
|
|
@@ -21,19 +17,54 @@ describe('Test Aptos Example', () => {
|
|
|
21
17
|
});
|
|
22
18
|
test('Check souffl3 transaction dispatch', async () => {
|
|
23
19
|
const request = {
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
bindings: [
|
|
21
|
+
{
|
|
22
|
+
data: {
|
|
23
|
+
raw: new util_1.TextEncoder().encode(JSON.stringify(testData)),
|
|
24
|
+
},
|
|
25
|
+
handlerId: 0,
|
|
26
|
+
handlerType: __1.HandlerType.APT_CALL,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
const res = await service.processBindings(request);
|
|
31
|
+
(0, chai_1.expect)(res.result?.counters).length(1);
|
|
32
|
+
(0, chai_1.expect)(res.result?.gauges).length(0);
|
|
33
|
+
(0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
|
|
34
|
+
});
|
|
35
|
+
test('Check souffl3 function call dispatch', async () => {
|
|
36
|
+
const request = {
|
|
37
|
+
bindings: [
|
|
26
38
|
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
data: {
|
|
40
|
+
raw: new util_1.TextEncoder().encode(JSON.stringify(testData)),
|
|
41
|
+
},
|
|
42
|
+
handlerId: 1,
|
|
43
|
+
handlerType: __1.HandlerType.APT_CALL,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
const res = await service.processBindings(request);
|
|
48
|
+
(0, chai_1.expect)(res.result?.counters).length(1);
|
|
49
|
+
(0, chai_1.expect)(res.result?.gauges).length(0);
|
|
50
|
+
(0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
|
|
51
|
+
});
|
|
52
|
+
test('Check souffl3 event dispatch', async () => {
|
|
53
|
+
const request = {
|
|
54
|
+
bindings: [
|
|
55
|
+
{
|
|
56
|
+
data: {
|
|
57
|
+
raw: new util_1.TextEncoder().encode(JSON.stringify(testData.events[1])),
|
|
58
|
+
},
|
|
59
|
+
handlerId: 0,
|
|
60
|
+
handlerType: __1.HandlerType.APT_EVENT,
|
|
30
61
|
},
|
|
31
62
|
],
|
|
32
63
|
};
|
|
33
|
-
const res = await service.
|
|
64
|
+
const res = await service.processBindings(request);
|
|
34
65
|
(0, chai_1.expect)(res.result?.counters).length(1);
|
|
35
66
|
(0, chai_1.expect)(res.result?.gauges).length(0);
|
|
36
|
-
(0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(
|
|
67
|
+
(0, chai_1.expect)(res.result?.counters[0].metadata?.blockNumber.toInt()).equal(18483034);
|
|
37
68
|
});
|
|
38
69
|
});
|
|
39
70
|
const testData = {
|
|
@@ -81,6 +112,7 @@ const testData = {
|
|
|
81
112
|
},
|
|
82
113
|
},
|
|
83
114
|
{
|
|
115
|
+
version: '18483034',
|
|
84
116
|
guid: {
|
|
85
117
|
creation_number: '2',
|
|
86
118
|
account_address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
|
|
@@ -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 Long from 'long'\nimport { TextEncoder } from 'util'\nimport { ProcessTransactionsRequest } from '..'\nimport { chain } from '../utils'\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: ProcessTransactionsRequest = {\n chainId: chain.APTOS_TESTNET_ID,\n transactions: [\n {\n raw: new TextEncoder().encode(JSON.stringify(testData)),\n programAccountId: '4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',\n slot: Long.fromNumber(12345),\n },\n ],\n }\n const res = await service.processTransactions(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(12345)\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 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(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"]}
|
package/lib/tests/souffl3.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const sdk_1 = require("@sentio/sdk");
|
|
4
|
-
class Souffl3 extends sdk_1.AptosBaseProcessor {
|
|
4
|
+
class Souffl3 extends sdk_1.aptos.AptosBaseProcessor {
|
|
5
5
|
static bind(options) {
|
|
6
6
|
if (options && !options.name) {
|
|
7
7
|
options.name = 'souffl3';
|
|
@@ -10,9 +10,10 @@ class Souffl3 extends sdk_1.AptosBaseProcessor {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
Souffl3.bind({
|
|
13
|
-
|
|
14
|
-
address: '
|
|
15
|
-
})
|
|
13
|
+
startVersion: 6604913,
|
|
14
|
+
address: '0x4188c8694687e844677c2aa87171019e23d61cac60de5082a278a8aa47e9d807',
|
|
15
|
+
})
|
|
16
|
+
.onTransaction((txn, ctx) => {
|
|
16
17
|
if (txn.events) {
|
|
17
18
|
for (const event of txn.events) {
|
|
18
19
|
if (event && event.type === '0x3::token::DepositEvent') {
|
|
@@ -20,5 +21,16 @@ Souffl3.bind({
|
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
}
|
|
24
|
+
})
|
|
25
|
+
.onFunctionCall((call, ctx) => {
|
|
26
|
+
ctx.meter.Counter('call_num').add(1);
|
|
27
|
+
}, {
|
|
28
|
+
function: 'SouffleChefCampaign::pull_token_v2',
|
|
29
|
+
typeArguments: undefined,
|
|
30
|
+
})
|
|
31
|
+
.onEvent((event, ctx) => {
|
|
32
|
+
ctx.meter.Counter('evt_num').add(1);
|
|
33
|
+
}, {
|
|
34
|
+
type: '0x1::coin::DepositEvent',
|
|
23
35
|
});
|
|
24
36
|
//# sourceMappingURL=souffl3.js.map
|
package/lib/tests/souffl3.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"souffl3.js","sourceRoot":"","sources":["../../src/tests/souffl3.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"souffl3.js","sourceRoot":"","sources":["../../src/tests/souffl3.ts"],"names":[],"mappings":";;AAAA,qCAAmC;AAEnC,MAAM,OAAQ,SAAQ,WAAK,CAAC,kBAAkB;IAC5C,MAAM,CAAC,IAAI,CAAC,OAA+B;QACzC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC5B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;SACzB;QACD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;CACF;AAED,OAAO,CAAC,IAAI,CAAC;IACX,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,cAAc,CACb,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACZ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC,EACD;IACE,QAAQ,EAAE,oCAAoC;IAC9C,aAAa,EAAE,SAAS;CACzB,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\nclass Souffl3 extends aptos.AptosBaseProcessor {\n static bind(options: aptos.AptosBindOptions): Souffl3 {\n if (options && !options.name) {\n options.name = 'souffl3'\n }\n return new Souffl3(options)\n }\n}\n\nSouffl3.bind({\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 .onFunctionCall(\n (call, ctx) => {\n ctx.meter.Counter('call_num').add(1)\n },\n {\n function: 'SouffleChefCampaign::pull_token_v2',\n typeArguments: undefined,\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/lib/utils/chain.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export declare const SOL_DEVNET_ID = "sol_devnet";
|
|
|
4
4
|
export declare const SOL_TESTNENT_ID = "sol_testnet";
|
|
5
5
|
export declare const SUI_DEVNET_ID = "sui_devnet";
|
|
6
6
|
export declare const APTOS_TESTNET_ID = "aptos_testnet";
|
|
7
|
+
export declare const APTOS_MAINNET_ID = "aptos_mainnet";
|
|
7
8
|
export declare function getChainName(chainId: string | number): string;
|
package/lib/utils/chain.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js
|
|
3
3
|
// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.getChainName = exports.APTOS_TESTNET_ID = exports.SUI_DEVNET_ID = exports.SOL_TESTNENT_ID = exports.SOL_DEVNET_ID = exports.SOL_MAINMET_ID = exports.CHAIN_MAP = void 0;
|
|
5
|
+
exports.getChainName = exports.APTOS_MAINNET_ID = exports.APTOS_TESTNET_ID = exports.SUI_DEVNET_ID = exports.SOL_TESTNENT_ID = exports.SOL_DEVNET_ID = exports.SOL_MAINMET_ID = exports.CHAIN_MAP = void 0;
|
|
6
6
|
exports.CHAIN_MAP = {
|
|
7
7
|
0: 'kardia',
|
|
8
8
|
1: 'ethereum',
|
|
@@ -90,7 +90,9 @@ exports.CHAIN_MAP[exports.SOL_TESTNENT_ID] = 'solana-test';
|
|
|
90
90
|
exports.SUI_DEVNET_ID = 'sui_devnet';
|
|
91
91
|
exports.CHAIN_MAP[exports.SUI_DEVNET_ID] = 'sui-dev';
|
|
92
92
|
exports.APTOS_TESTNET_ID = 'aptos_testnet';
|
|
93
|
+
exports.APTOS_MAINNET_ID = 'aptos_mainnet';
|
|
93
94
|
exports.CHAIN_MAP[exports.APTOS_TESTNET_ID] = 'aptos-test';
|
|
95
|
+
exports.CHAIN_MAP[exports.APTOS_MAINNET_ID] = 'aptos-mainnet';
|
|
94
96
|
function getChainName(chainId) {
|
|
95
97
|
if (typeof chainId === 'number') {
|
|
96
98
|
chainId = chainId.toString();
|
package/lib/utils/chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":";AAAA,mFAAmF;AACnF,6EAA6E;;;AAEhE,QAAA,SAAS,GAA2B;IAC/C,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,WAAW;IACf,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,OAAO;CACzB,CAAA;AAEY,QAAA,cAAc,GAAG,aAAa,CAAA;AAC9B,QAAA,aAAa,GAAG,YAAY,CAAA;AAC5B,QAAA,eAAe,GAAG,aAAa,CAAA;AAC5C,iBAAS,CAAC,sBAAc,CAAC,GAAG,QAAQ,CAAA;AACpC,iBAAS,CAAC,qBAAa,CAAC,GAAG,YAAY,CAAA;AACvC,iBAAS,CAAC,uBAAe,CAAC,GAAG,aAAa,CAAA;AAE7B,QAAA,aAAa,GAAG,YAAY,CAAA;AACzC,iBAAS,CAAC,qBAAa,CAAC,GAAG,SAAS,CAAA;AAEvB,QAAA,gBAAgB,GAAG,eAAe,CAAA;AAC/C,iBAAS,CAAC,wBAAgB,CAAC,GAAG,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":"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","sourcesContent":["// copy from https://github.com/DefiLlama/chainlist/blob/main/constants/chainIds.js\n// and https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/\n\nexport const CHAIN_MAP: Record<string, string> = {\n 0: 'kardia',\n 1: 'ethereum',\n 2: 'expanse',\n 3: 'ropsten',\n 4: 'rinkeby',\n 5: 'goerli',\n 6: 'kotti',\n 8: 'ubiq',\n 10: 'optimism',\n 19: 'songbird',\n 20: 'elastos',\n 25: 'cronos',\n 30: 'rsk',\n 40: 'telos',\n 50: 'xdc',\n 52: 'csc',\n 55: 'zyx',\n 56: 'binance',\n 57: 'syscoin',\n 60: 'gochain',\n 61: 'ethclassic',\n 63: 'mordor',\n 66: 'okexchain',\n 70: 'hoo',\n 82: 'meter',\n 88: 'tomochain',\n 100: 'xdai',\n 106: 'velas',\n 108: 'thundercore',\n 122: 'fuse',\n 128: 'heco',\n 137: 'polygon',\n 200: 'xdaiarb',\n 212: 'astor',\n 246: 'energyweb',\n 250: 'fantom',\n 269: 'hpb',\n 288: 'boba',\n 321: 'kucoin',\n 336: 'shiden',\n 361: 'theta',\n 416: 'sx',\n 534: 'candle',\n 592: 'astar',\n 820: 'callisto',\n 888: 'wanchain',\n 1088: 'metis',\n 1246: 'omchain',\n 1284: 'moonbeam',\n 1285: 'moonriver',\n 2018: 'dev',\n 2020: 'ronin',\n 2222: 'kava',\n 2612: 'ezchain',\n 4181: 'phi',\n 4689: 'iotex',\n 5050: 'xlc',\n 5551: 'nahmii',\n 7777: 'nmactest',\n 8217: 'klaytn',\n 9001: 'evmos',\n 10000: 'smartbch',\n 103090: 'crystaleum',\n 32659: 'fusion',\n 42161: 'arbitrum',\n 42220: 'celo',\n 42262: 'oasis',\n 43114: 'avalanche',\n 71402: 'godwoken',\n 200625: 'akroma',\n 333999: 'polis',\n 11155111: 'sepolia',\n 1313161554: 'aurora',\n 1666600000: 'harmony',\n 11297108109: 'palm',\n 836542336838601: 'curio',\n}\n\nexport const SOL_MAINMET_ID = 'sol_mainnet'\nexport const SOL_DEVNET_ID = 'sol_devnet'\nexport const SOL_TESTNENT_ID = 'sol_testnet'\nCHAIN_MAP[SOL_MAINMET_ID] = 'solana'\nCHAIN_MAP[SOL_DEVNET_ID] = 'solana-dev'\nCHAIN_MAP[SOL_TESTNENT_ID] = 'solana-test'\n\nexport const SUI_DEVNET_ID = 'sui_devnet'\nCHAIN_MAP[SUI_DEVNET_ID] = 'sui-dev'\n\nexport const APTOS_TESTNET_ID = 'aptos_testnet'\nexport const APTOS_MAINNET_ID = 'aptos_mainnet'\nCHAIN_MAP[APTOS_TESTNET_ID] = 'aptos-test'\nCHAIN_MAP[APTOS_MAINNET_ID] = 'aptos-mainnet'\n\nexport function getChainName(chainId: string | number): string {\n if (typeof chainId === 'number') {\n chainId = chainId.toString()\n }\n const name = CHAIN_MAP[chainId]\n if (name) {\n return name\n }\n return chainId\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": "1.19.
|
|
4
|
+
"version": "1.19.5",
|
|
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",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"@typechain/ethers-v5": "^10.0.0",
|
|
27
27
|
"@types/bn.js": "^5.1.0",
|
|
28
28
|
"@types/node-fetch": "^2.6.2",
|
|
29
|
+
"aptos": "^1.3.15",
|
|
29
30
|
"bignumber.js": "^9.1.0",
|
|
30
31
|
"bn.js": "^5.2.1",
|
|
31
32
|
"bs58": "^5.0.0",
|
|
@@ -52,17 +53,14 @@
|
|
|
52
53
|
"@types/expect": "^24.3.0",
|
|
53
54
|
"@types/fs-extra": "^9.0.13",
|
|
54
55
|
"@types/google-protobuf": "^3.15.6",
|
|
55
|
-
"@types/jest": "^29.0.0",
|
|
56
56
|
"@types/js-yaml": "^4.0.5",
|
|
57
57
|
"@types/mkdirp": "^1.0.2",
|
|
58
58
|
"@types/node": "^18.0.4",
|
|
59
59
|
"chai": "^4.3.6",
|
|
60
60
|
"clean-publish": "^4.0.1",
|
|
61
61
|
"conventional-changelog-conventionalcommits": "^5.0.0",
|
|
62
|
-
"jest": "^29.0.0",
|
|
63
62
|
"semantic-release": "^19.0.5",
|
|
64
|
-
"ts-
|
|
65
|
-
"ts-node": "^10.8.0",
|
|
63
|
+
"ts-node": "^10.9.1",
|
|
66
64
|
"tsconfig-paths": "^4.0.0",
|
|
67
65
|
"typedoc": "^0.23.15",
|
|
68
66
|
"typescript": "^4.8.0"
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { ProcessResult } from '../gen'
|
|
2
|
+
import { AptosBindOptions, AptosContext, AptosNetwork, FunctionPayload, UserTransaction } from '.'
|
|
3
|
+
import type { Event as OldEvent } from 'aptos/src/generated'
|
|
4
|
+
|
|
5
|
+
import Long from 'long'
|
|
6
|
+
import { APTOS_MAINNET_ID, APTOS_TESTNET_ID } from '../utils/chain'
|
|
7
|
+
|
|
8
|
+
export type Event = OldEvent & { version: string }
|
|
9
|
+
|
|
10
|
+
type IndexConfigure = {
|
|
11
|
+
address: string
|
|
12
|
+
network: AptosNetwork
|
|
13
|
+
startVersion: Long
|
|
14
|
+
// endSeqNumber?: Long
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface EventFilter {
|
|
18
|
+
type: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface CallFilter {
|
|
22
|
+
function: string
|
|
23
|
+
typeArguments: string[] | undefined
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
class EventHandler {
|
|
27
|
+
filters: EventFilter[]
|
|
28
|
+
handler: (event: Event) => Promise<ProcessResult>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
class CallHandler {
|
|
32
|
+
filters: CallFilter[]
|
|
33
|
+
handler: (call: UserTransaction) => Promise<ProcessResult>
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class AptosBaseProcessor {
|
|
37
|
+
name: string
|
|
38
|
+
config: IndexConfigure
|
|
39
|
+
eventHandlers: EventHandler[] = []
|
|
40
|
+
callHandlers: CallHandler[] = []
|
|
41
|
+
|
|
42
|
+
constructor(options: AptosBindOptions) {
|
|
43
|
+
this.name = options.name || options.address
|
|
44
|
+
this.configure(options)
|
|
45
|
+
global.PROCESSOR_STATE.aptosProcessors.push(this)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public onTransaction(handler: (transaction: UserTransaction, ctx: AptosContext) => void) {
|
|
49
|
+
const address = this.config.address
|
|
50
|
+
this.callHandlers.push({
|
|
51
|
+
handler: async function (tx) {
|
|
52
|
+
const ctx = new AptosContext(address, Long.fromString(tx.version), tx)
|
|
53
|
+
if (tx) {
|
|
54
|
+
handler(tx, ctx)
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
gauges: ctx.gauges,
|
|
58
|
+
counters: ctx.counters,
|
|
59
|
+
logs: ctx.logs,
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
filters: [],
|
|
63
|
+
})
|
|
64
|
+
return this
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public onEvent(handler: (event: Event, ctx: AptosContext) => void, filter: EventFilter | EventFilter[]) {
|
|
68
|
+
let _filters: EventFilter[] = []
|
|
69
|
+
|
|
70
|
+
if (Array.isArray(filter)) {
|
|
71
|
+
_filters = filter
|
|
72
|
+
} else {
|
|
73
|
+
_filters.push(filter)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const address = this.config.address
|
|
77
|
+
|
|
78
|
+
this.eventHandlers.push({
|
|
79
|
+
handler: async function (event) {
|
|
80
|
+
const ctx = new AptosContext(address, Long.fromString(event.version))
|
|
81
|
+
if (event) {
|
|
82
|
+
handler(event, ctx)
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
gauges: ctx.gauges,
|
|
86
|
+
counters: ctx.counters,
|
|
87
|
+
logs: ctx.logs,
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
filters: _filters,
|
|
91
|
+
})
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
public onFunctionCall(
|
|
95
|
+
handler: (call: FunctionPayload, ctx: AptosContext) => void,
|
|
96
|
+
filter: CallFilter | CallFilter[]
|
|
97
|
+
) {
|
|
98
|
+
let _filters: CallFilter[] = []
|
|
99
|
+
|
|
100
|
+
if (Array.isArray(filter)) {
|
|
101
|
+
_filters = filter
|
|
102
|
+
} else {
|
|
103
|
+
_filters.push(filter)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const address = this.config.address
|
|
107
|
+
|
|
108
|
+
this.callHandlers.push({
|
|
109
|
+
handler: async function (tx) {
|
|
110
|
+
const ctx = new AptosContext(address, Long.fromString(tx.version), tx)
|
|
111
|
+
if (tx) {
|
|
112
|
+
const payload = tx.payload as FunctionPayload
|
|
113
|
+
handler(payload, ctx)
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
gauges: ctx.gauges,
|
|
117
|
+
counters: ctx.counters,
|
|
118
|
+
logs: ctx.logs,
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
filters: _filters,
|
|
122
|
+
})
|
|
123
|
+
return this
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
private configure(options: AptosBindOptions) {
|
|
127
|
+
let startVersion = Long.ZERO
|
|
128
|
+
if (options.startVersion) {
|
|
129
|
+
startVersion = Long.fromValue(options.startVersion)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
this.config = {
|
|
133
|
+
startVersion: startVersion,
|
|
134
|
+
address: options.address,
|
|
135
|
+
network: options.network || AptosNetwork.TEST_NET,
|
|
136
|
+
}
|
|
137
|
+
return this
|
|
138
|
+
}
|
|
139
|
+
//
|
|
140
|
+
// public endBlock(endBlock: Long | number) {
|
|
141
|
+
// if (typeof endBlock === 'number') {
|
|
142
|
+
// endBlock = Long.fromNumber(endBlock)
|
|
143
|
+
// }
|
|
144
|
+
// this.config.endSeqNumber = endBlock
|
|
145
|
+
// return this
|
|
146
|
+
// }
|
|
147
|
+
|
|
148
|
+
getChainId(): string {
|
|
149
|
+
switch (this.config.network) {
|
|
150
|
+
case AptosNetwork.TEST_NET:
|
|
151
|
+
return APTOS_TESTNET_ID
|
|
152
|
+
case AptosNetwork.MAIN_NET:
|
|
153
|
+
return APTOS_MAINNET_ID
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Long from 'long'
|
|
2
|
+
|
|
3
|
+
export enum AptosNetwork {
|
|
4
|
+
MAIN_NET = 0,
|
|
5
|
+
TEST_NET = 1,
|
|
6
|
+
// DEV_NET,
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class AptosBindOptions {
|
|
10
|
+
address: string
|
|
11
|
+
network?: AptosNetwork = AptosNetwork.TEST_NET
|
|
12
|
+
name?: string
|
|
13
|
+
startVersion?: Long | number
|
|
14
|
+
// endBlock?: Long | number
|
|
15
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Long from 'long'
|
|
2
|
+
import { MetricDescriptor, RecordMetaData } from '../gen'
|
|
3
|
+
import { Labels } from '../core/metadata'
|
|
4
|
+
import { APTOS_TESTNET_ID } from '../utils/chain'
|
|
5
|
+
import { normalizeLabels } from '../core/meter'
|
|
6
|
+
import { BaseContext } from '../core/context'
|
|
7
|
+
import { UserTransaction } from './'
|
|
8
|
+
|
|
9
|
+
export class AptosContext extends BaseContext {
|
|
10
|
+
address: string
|
|
11
|
+
blockNumber: Long
|
|
12
|
+
transaction: UserTransaction
|
|
13
|
+
|
|
14
|
+
constructor(address: string, slot: Long, transaction?: UserTransaction) {
|
|
15
|
+
super()
|
|
16
|
+
this.address = address
|
|
17
|
+
this.blockNumber = slot
|
|
18
|
+
if (transaction) {
|
|
19
|
+
this.transaction = transaction
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData {
|
|
24
|
+
return {
|
|
25
|
+
contractAddress: this.address,
|
|
26
|
+
blockNumber: this.blockNumber,
|
|
27
|
+
transactionIndex: 0,
|
|
28
|
+
transactionHash: this.transaction?.hash || '', // TODO
|
|
29
|
+
logIndex: 0,
|
|
30
|
+
chainId: APTOS_TESTNET_ID, // TODO set in context
|
|
31
|
+
descriptor: descriptor,
|
|
32
|
+
labels: normalizeLabels(labels),
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type {
|
|
2
|
+
Transaction_UserTransaction as UserTransaction,
|
|
3
|
+
TransactionPayload_EntryFunctionPayload as FunctionPayload,
|
|
4
|
+
} from 'aptos/src/generated'
|
|
5
|
+
export type { Event, CallFilter, EventFilter } from './aptos-processor'
|
|
6
|
+
export { AptosBaseProcessor } from './aptos-processor'
|
|
7
|
+
export { AptosContext } from './context'
|
|
8
|
+
export { AptosBindOptions, AptosNetwork } from './bind-options'
|
|
@@ -4,7 +4,7 @@ import { BaseContract, EventFilter } from 'ethers'
|
|
|
4
4
|
import { Event } from '@ethersproject/contracts'
|
|
5
5
|
import { BaseProcessor } from './base-processor'
|
|
6
6
|
import { BindOptions, getOptionsSignature } from './bind-options'
|
|
7
|
-
import { TemplateInstance } from '../gen
|
|
7
|
+
import { TemplateInstance } from '../gen'
|
|
8
8
|
import Long from 'long'
|
|
9
9
|
import { getNetwork } from '@ethersproject/providers'
|
|
10
10
|
import { PromiseOrVoid } from '../promise-or-void'
|
|
@@ -5,7 +5,7 @@ import { BaseContract, EventFilter } from '@ethersproject/contracts'
|
|
|
5
5
|
import Long from 'long'
|
|
6
6
|
|
|
7
7
|
import { BoundContractView, Context, ContractView } from './context'
|
|
8
|
-
import { ProcessResult } from '../gen
|
|
8
|
+
import { ProcessResult } from '../gen'
|
|
9
9
|
import { BindInternalOptions, BindOptions } from './bind-options'
|
|
10
10
|
import { PromiseOrVoid } from '../promise-or-void'
|
|
11
11
|
import { Trace } from './trace'
|
package/src/core/bind-options.ts
CHANGED
package/src/core/context.ts
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import { CounterResult, GaugeResult, LogResult } from '../gen
|
|
1
|
+
import { CounterResult, GaugeResult, LogResult, MetricDescriptor, RecordMetaData } from '../gen'
|
|
2
2
|
import { BaseContract, EventFilter } from 'ethers'
|
|
3
3
|
import { Block, Log } from '@ethersproject/abstract-provider'
|
|
4
|
-
import { Meter } from './meter'
|
|
4
|
+
import { Meter, normalizeLabels } from './meter'
|
|
5
5
|
import Long from 'long'
|
|
6
6
|
import { Trace } from './trace'
|
|
7
7
|
import { Logger } from './logger'
|
|
8
|
+
import { Labels } from './metadata'
|
|
9
|
+
import { SOL_MAINMET_ID, SUI_DEVNET_ID } from '../utils/chain'
|
|
8
10
|
|
|
9
|
-
export class BaseContext {
|
|
11
|
+
export abstract class BaseContext {
|
|
10
12
|
gauges: GaugeResult[] = []
|
|
11
13
|
counters: CounterResult[] = []
|
|
12
14
|
logs: LogResult[] = []
|
|
13
15
|
meter: Meter
|
|
14
16
|
logger: Logger
|
|
15
17
|
|
|
16
|
-
constructor() {
|
|
18
|
+
protected constructor() {
|
|
17
19
|
this.meter = new Meter(this)
|
|
18
20
|
this.logger = new Logger(this)
|
|
19
21
|
}
|
|
22
|
+
|
|
23
|
+
abstract getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData
|
|
20
24
|
}
|
|
21
25
|
|
|
22
|
-
export class EthContext extends BaseContext {
|
|
26
|
+
export abstract class EthContext extends BaseContext {
|
|
23
27
|
chainId: number
|
|
24
28
|
log?: Log
|
|
25
29
|
block?: Block
|
|
@@ -27,7 +31,7 @@ export class EthContext extends BaseContext {
|
|
|
27
31
|
blockNumber: Long
|
|
28
32
|
transactionHash?: string
|
|
29
33
|
|
|
30
|
-
constructor(chainId: number, block?: Block, log?: Log, trace?: Trace) {
|
|
34
|
+
protected constructor(chainId: number, block?: Block, log?: Log, trace?: Trace) {
|
|
31
35
|
super()
|
|
32
36
|
this.chainId = chainId
|
|
33
37
|
this.log = log
|
|
@@ -58,6 +62,46 @@ export class Context<
|
|
|
58
62
|
this.contract = view
|
|
59
63
|
this.address = view.rawContract.address
|
|
60
64
|
}
|
|
65
|
+
|
|
66
|
+
getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData {
|
|
67
|
+
if (this.log) {
|
|
68
|
+
return {
|
|
69
|
+
contractAddress: this.contract.rawContract.address,
|
|
70
|
+
blockNumber: this.blockNumber,
|
|
71
|
+
transactionIndex: this.log.transactionIndex,
|
|
72
|
+
transactionHash: this.transactionHash || '',
|
|
73
|
+
logIndex: this.log.logIndex,
|
|
74
|
+
chainId: this.chainId.toString(),
|
|
75
|
+
descriptor: descriptor,
|
|
76
|
+
labels: normalizeLabels(labels),
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (this.block) {
|
|
80
|
+
return {
|
|
81
|
+
contractAddress: this.contract.rawContract.address,
|
|
82
|
+
blockNumber: this.blockNumber,
|
|
83
|
+
transactionIndex: -1,
|
|
84
|
+
transactionHash: '',
|
|
85
|
+
logIndex: -1,
|
|
86
|
+
chainId: this.chainId.toString(),
|
|
87
|
+
descriptor: descriptor,
|
|
88
|
+
labels: normalizeLabels(labels),
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (this.trace) {
|
|
92
|
+
return {
|
|
93
|
+
contractAddress: this.contract.rawContract.address,
|
|
94
|
+
blockNumber: this.blockNumber,
|
|
95
|
+
transactionIndex: this.trace.transactionPosition,
|
|
96
|
+
transactionHash: this.transactionHash || '',
|
|
97
|
+
logIndex: -1,
|
|
98
|
+
chainId: this.chainId.toString(),
|
|
99
|
+
descriptor: descriptor,
|
|
100
|
+
labels: normalizeLabels(labels),
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
throw new Error("Invaid ctx argument can't happen")
|
|
104
|
+
}
|
|
61
105
|
}
|
|
62
106
|
|
|
63
107
|
export class ContractView<TContract extends BaseContract> {
|
|
@@ -109,6 +153,19 @@ export class SolanaContext extends BaseContext {
|
|
|
109
153
|
this.address = address
|
|
110
154
|
this.blockNumber = slot
|
|
111
155
|
}
|
|
156
|
+
|
|
157
|
+
getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData {
|
|
158
|
+
return {
|
|
159
|
+
contractAddress: this.address,
|
|
160
|
+
blockNumber: this.blockNumber,
|
|
161
|
+
transactionIndex: 0,
|
|
162
|
+
transactionHash: '', // TODO add
|
|
163
|
+
logIndex: 0,
|
|
164
|
+
chainId: SOL_MAINMET_ID, // TODO set in context
|
|
165
|
+
descriptor: descriptor,
|
|
166
|
+
labels: normalizeLabels(labels),
|
|
167
|
+
}
|
|
168
|
+
}
|
|
112
169
|
}
|
|
113
170
|
|
|
114
171
|
export class SuiContext extends BaseContext {
|
|
@@ -120,15 +177,17 @@ export class SuiContext extends BaseContext {
|
|
|
120
177
|
this.address = address
|
|
121
178
|
this.blockNumber = slot
|
|
122
179
|
}
|
|
123
|
-
}
|
|
124
180
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
181
|
+
getMetaData(descriptor: MetricDescriptor | undefined, labels: Labels): RecordMetaData {
|
|
182
|
+
return {
|
|
183
|
+
contractAddress: this.address,
|
|
184
|
+
blockNumber: this.blockNumber,
|
|
185
|
+
transactionIndex: 0,
|
|
186
|
+
transactionHash: '', // TODO
|
|
187
|
+
logIndex: 0,
|
|
188
|
+
chainId: SUI_DEVNET_ID, // TODO set in context
|
|
189
|
+
descriptor: descriptor,
|
|
190
|
+
labels: normalizeLabels(labels),
|
|
191
|
+
}
|
|
133
192
|
}
|
|
134
193
|
}
|