@sentio/sdk 0.1.6 → 0.1.10
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/dist/base-processor.d.ts +34 -0
- package/dist/base-processor.js +110 -0
- package/dist/base-processor.js.map +1 -0
- package/dist/baseprocessor.d.ts +34 -0
- package/dist/baseprocessor.js +110 -0
- package/dist/baseprocessor.js.map +1 -0
- package/dist/cli/build.d.ts +1 -1
- package/dist/cli/build.js +47 -9
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/cli.d.ts +2 -1
- package/dist/cli/cli.js +17 -3
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/config.d.ts +1 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/upload.js +4 -3
- package/dist/cli/upload.js.map +1 -1
- package/dist/cli/webpack.config.js +14 -5
- package/dist/contract-namer.d.ts +6 -0
- package/dist/contract-namer.js +20 -0
- package/dist/contract-namer.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/processor.d.ts +1 -33
- package/dist/processor.js +52 -95
- package/dist/processor.js.map +1 -1
- package/dist/processor_server.js +2 -1
- package/dist/processor_server.js.map +1 -1
- package/dist/service.js +97 -79
- package/dist/service.js.map +1 -1
- package/dist/solana-processor.d.ts +25 -0
- package/dist/solana-processor.js +84 -0
- package/dist/solana-processor.js.map +1 -0
- package/dist/solana_processor.d.ts +1 -1
- package/dist/solana_processor.js +3 -3
- package/dist/solana_processor.js.map +1 -1
- package/dist/target-ethers-sentio/codegen.js +8 -4
- package/dist/target-ethers-sentio/codegen.js.map +1 -1
- package/dist/target-ethers-sentio/index.js +1 -1
- package/dist/target-ethers-sentio/index.js.map +1 -1
- package/dist/test-case/erc20.d.ts +1 -0
- package/dist/test-case/erc20.js +24 -0
- package/dist/test-case/erc20.js.map +1 -0
- package/dist/test-case/mirrorworld.d.ts +4 -0
- package/dist/test-case/mirrorworld.js +62 -0
- package/dist/test-case/mirrorworld.js.map +1 -0
- package/dist/test-case/types/ERC20.d.ts +150 -0
- package/dist/test-case/types/ERC20.js +3 -0
- package/dist/test-case/types/ERC20.js.map +1 -0
- package/dist/test-case/types/common.d.ts +22 -0
- package/dist/test-case/types/common.js +3 -0
- package/dist/test-case/types/common.js.map +1 -0
- package/dist/test-case/types/erc20_processor.d.ts +28 -0
- package/dist/test-case/types/erc20_processor.js +58 -0
- package/dist/test-case/types/erc20_processor.js.map +1 -0
- package/dist/test-case/types/factories/ERC20__factory.d.ts +35 -0
- package/dist/test-case/types/factories/ERC20__factory.js +216 -0
- package/dist/test-case/types/factories/ERC20__factory.js.map +1 -0
- package/dist/test-case/types/factories/index.d.ts +1 -0
- package/dist/test-case/types/factories/index.js +9 -0
- package/dist/test-case/types/factories/index.js.map +1 -0
- package/dist/test-case/types/game_wallet.d.ts +45 -0
- package/dist/test-case/types/game_wallet.js +1396 -0
- package/dist/test-case/types/game_wallet.js.map +1 -0
- package/dist/test-case/types/index.d.ts +3 -0
- package/dist/test-case/types/index.js +30 -0
- package/dist/test-case/types/index.js.map +1 -0
- package/dist/test_case/mirrorworld.d.ts +1 -1
- package/dist/test_case/mirrorworld.js +8 -35
- package/dist/test_case/mirrorworld.js.map +1 -1
- package/dist/test_case/types/erc20_processor.d.ts +2 -1
- package/dist/test_case/types/erc20_processor.js +4 -0
- package/dist/test_case/types/erc20_processor.js.map +1 -1
- package/dist/test_case/types/game_wallet.d.ts +45 -0
- package/dist/test_case/types/game_wallet.js +1396 -0
- package/dist/test_case/types/game_wallet.js.map +1 -0
- package/package.json +8 -7
package/dist/processor.d.ts
CHANGED
|
@@ -1,34 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { Block, Log } from '@ethersproject/abstract-provider';
|
|
3
|
-
import { BaseContract, EventFilter } from 'ethers';
|
|
4
|
-
import { Networkish } from '@ethersproject/networks';
|
|
5
|
-
import { Event } from '@ethersproject/contracts';
|
|
6
|
-
import { O11yResult } from './gen/processor/protos/processor';
|
|
7
|
-
import Long from 'long';
|
|
8
|
-
import { Network } from '@ethersproject/providers';
|
|
9
|
-
declare type IndexConfigure = {
|
|
10
|
-
startBlock: Long;
|
|
11
|
-
endBlock?: Long;
|
|
12
|
-
chunkSize?: number;
|
|
13
|
-
};
|
|
14
|
-
declare class EventsHandler {
|
|
15
|
-
filters: EventFilter[];
|
|
16
|
-
handler: (event: Log) => Promise<O11yResult>;
|
|
17
|
-
}
|
|
18
|
-
export declare abstract class BaseProcessor<TContract extends BaseContract, TContractWrapper extends ContractWrapper<TContract>> {
|
|
19
|
-
blockHandlers: ((block: Block) => Promise<O11yResult>)[];
|
|
20
|
-
eventHandlers: EventsHandler[];
|
|
21
|
-
contract: TContractWrapper;
|
|
22
|
-
network: Network;
|
|
23
|
-
name: string;
|
|
24
|
-
config: IndexConfigure;
|
|
25
|
-
constructor(address: string, name: string, network?: Networkish);
|
|
26
|
-
protected abstract bindInternal(address: string, network: Networkish): TContractWrapper;
|
|
27
|
-
startBlock(startBlock: Long | number): this;
|
|
28
|
-
endBlock(endBlock: Long | number): this;
|
|
29
|
-
configure(option: IndexConfigure): void;
|
|
30
|
-
isBind(): boolean;
|
|
31
|
-
onEvent(handler: (event: Event, ctx: Context<TContract, TContractWrapper>) => void, filter: EventFilter | EventFilter[]): void;
|
|
32
|
-
onBlock(handler: (block: Block, ctx: Context<TContract, TContractWrapper>) => void): void;
|
|
33
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
34
2
|
export {};
|
package/dist/processor.js
CHANGED
|
@@ -1,109 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
5
|
};
|
|
5
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
constructor(address, name, network = 1) {
|
|
22
|
-
this.name = name;
|
|
23
|
-
this.network = (0, providers_1.getNetwork)(network);
|
|
24
|
-
this.contract = this.bindInternal(address, network);
|
|
25
|
-
if (!globalThis.Processors) {
|
|
26
|
-
globalThis.Processors = [];
|
|
7
|
+
const command_line_args_1 = __importDefault(require("command-line-args"));
|
|
8
|
+
const nice_grpc_1 = require("nice-grpc");
|
|
9
|
+
const processor_1 = require("./gen/processor/protos/processor");
|
|
10
|
+
const service_1 = require("./service");
|
|
11
|
+
const provider_1 = require("./provider");
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
14
|
+
// import 'log-timestamp'
|
|
15
|
+
global.sentio_sdk = require('.');
|
|
16
|
+
function tryRequire(name) {
|
|
17
|
+
const req = eval('require');
|
|
18
|
+
try {
|
|
19
|
+
let path;
|
|
20
|
+
try {
|
|
21
|
+
path = req.resolve(name, { paths: [process.cwd()] });
|
|
27
22
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
startBlock(startBlock) {
|
|
31
|
-
if (typeof startBlock === 'number') {
|
|
32
|
-
startBlock = long_1.default.fromNumber(startBlock);
|
|
23
|
+
catch {
|
|
24
|
+
path = req.resolve(name);
|
|
33
25
|
}
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
const module = { module: req(path), name, path };
|
|
27
|
+
console.log('Load successfully: ', name);
|
|
28
|
+
return module;
|
|
36
29
|
}
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return this;
|
|
43
|
-
}
|
|
44
|
-
configure(option) {
|
|
45
|
-
this.config = option;
|
|
46
|
-
}
|
|
47
|
-
isBind() {
|
|
48
|
-
return this.contract._underlineContract.address != '';
|
|
49
|
-
}
|
|
50
|
-
onEvent(handler, filter) {
|
|
51
|
-
if (!this.isBind()) {
|
|
52
|
-
throw new Error('processor not bind');
|
|
53
|
-
}
|
|
54
|
-
const contract = this.contract;
|
|
55
|
-
const chainId = this.network.chainId;
|
|
56
|
-
let _filters = [];
|
|
57
|
-
if (Array.isArray(filter)) {
|
|
58
|
-
_filters = filter;
|
|
30
|
+
catch (err) {
|
|
31
|
+
if (err instanceof Error && err.message.startsWith(`Cannot find module '${name}'`)) {
|
|
32
|
+
// this error is expected
|
|
33
|
+
console.log("Couldn't load (expected): ", name);
|
|
34
|
+
return undefined;
|
|
59
35
|
}
|
|
60
36
|
else {
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
this.eventHandlers.push({
|
|
64
|
-
filters: _filters,
|
|
65
|
-
handler: async function (log) {
|
|
66
|
-
const ctx = new context_1.Context(contract, chainId, undefined, log);
|
|
67
|
-
// let event: Event = <Event>deepCopy(log);
|
|
68
|
-
const event = log;
|
|
69
|
-
const parsed = contract._underlineContract.interface.parseLog(log);
|
|
70
|
-
if (parsed) {
|
|
71
|
-
event.args = parsed.args;
|
|
72
|
-
event.decode = (data, topics) => {
|
|
73
|
-
return contract._underlineContract.interface.decodeEventLog(parsed.eventFragment, data, topics);
|
|
74
|
-
};
|
|
75
|
-
event.event = parsed.name;
|
|
76
|
-
event.eventSignature = parsed.signature;
|
|
77
|
-
// TODO fix this bug
|
|
78
|
-
await handler(event, ctx);
|
|
79
|
-
return {
|
|
80
|
-
histograms: ctx.histograms,
|
|
81
|
-
counters: ctx.counters,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
histograms: [],
|
|
86
|
-
counters: [],
|
|
87
|
-
};
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
onBlock(handler) {
|
|
92
|
-
if (!this.isBind()) {
|
|
93
|
-
throw new Error('Registry not bind');
|
|
37
|
+
throw err;
|
|
94
38
|
}
|
|
95
|
-
const contract = this.contract;
|
|
96
|
-
const chainId = this.network.chainId;
|
|
97
|
-
this.blockHandlers.push(async function (block) {
|
|
98
|
-
contract.block = block;
|
|
99
|
-
const ctx = new context_1.Context(contract, chainId, block, undefined);
|
|
100
|
-
await handler(block, ctx);
|
|
101
|
-
return {
|
|
102
|
-
histograms: ctx.histograms,
|
|
103
|
-
counters: ctx.counters,
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
39
|
}
|
|
107
40
|
}
|
|
108
|
-
|
|
41
|
+
const optionDefinitions = [
|
|
42
|
+
{ name: 'target', type: String, defaultOption: true },
|
|
43
|
+
{ name: 'port', alias: 'p', type: Number, defaultValue: '4000' },
|
|
44
|
+
{
|
|
45
|
+
name: 'chains-config',
|
|
46
|
+
alias: 'c',
|
|
47
|
+
type: String,
|
|
48
|
+
defaultValue: 'chains-config.json',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
const options = (0, command_line_args_1.default)(optionDefinitions);
|
|
52
|
+
console.log('loading', options.target);
|
|
53
|
+
const fullPath = path_1.default.resolve(options['chains-config']);
|
|
54
|
+
const chainsConfig = fs_extra_1.default.readJsonSync(fullPath);
|
|
55
|
+
(0, provider_1.setProvider)(chainsConfig);
|
|
56
|
+
tryRequire(options.target);
|
|
57
|
+
console.log('Start Server', options);
|
|
58
|
+
if (globalThis.Processors)
|
|
59
|
+
console.log(globalThis.Processors.length, ' processors loaded');
|
|
60
|
+
if (globalThis.SolanaProcessors)
|
|
61
|
+
console.log(globalThis.SolanaProcessors.length, ' solana processors loaded');
|
|
62
|
+
const processor = (0, nice_grpc_1.createServer)();
|
|
63
|
+
const service = new service_1.ProcessorServiceImpl(processor.shutdown);
|
|
64
|
+
processor.add(processor_1.ProcessorDefinition, service);
|
|
65
|
+
processor.listen('0.0.0.0:' + options.port);
|
|
109
66
|
//# sourceMappingURL=processor.js.map
|
package/dist/processor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":";;;;;;AAEA,0EAA+C;AAC/C,yCAAwC;AACxC,gEAAsE;AACtE,uCAAgD;AAChD,yCAAwC;AAExC,gDAAuB;AACvB,wDAAyB;AAEzB,yBAAyB;AAEzB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AAEhC,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI;QACF,IAAI,IAAY,CAAA;QAChB,IAAI;YACF,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;SACrD;QAAC,MAAM;YACN,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACzB;QAED,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;QACxC,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,IAAI,GAAG,CAAC,EAAE;YAClF,yBAAyB;YACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,SAAS,CAAA;SACjB;aAAM;YACL,MAAM,GAAG,CAAA;SACV;KACF;AACH,CAAC;AAED,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;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,CAAC,CAAA;AAElD,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,CAAC,CAAA;AAEzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAE1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AAEpC,IAAI,UAAU,CAAC,UAAU;IAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAC1F,IAAI,UAAU,CAAC,gBAAgB;IAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;AAC7G,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAA;AAEhC,MAAM,OAAO,GAAG,IAAI,8BAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AAC5D,SAAS,CAAC,GAAG,CAAC,+BAAmB,EAAE,OAAO,CAAC,CAAA;AAE3C,SAAS,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/dist/processor_server.js
CHANGED
|
@@ -56,7 +56,8 @@ const chainsConfig = fs_extra_1.default.readJsonSync(fullPath);
|
|
|
56
56
|
(0, provider_1.setProvider)(chainsConfig);
|
|
57
57
|
tryRequire(options.target);
|
|
58
58
|
console.log('Start Server', options);
|
|
59
|
-
|
|
59
|
+
if (globalThis.Processors)
|
|
60
|
+
console.log(globalThis.Processors.length, ' processors loaded');
|
|
60
61
|
if (globalThis.SolanaProcessors)
|
|
61
62
|
console.log(globalThis.SolanaProcessors.length, ' solana processors loaded');
|
|
62
63
|
const processor_server = (0, nice_grpc_1.createServer)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor_server.js","sourceRoot":"","sources":["../src/processor_server.ts"],"names":[],"mappings":";;;;;;AAEA,0EAA+C;AAC/C,yCAAwC;AACxC,gEAAsE;AACtE,uCAAgD;AAChD,yCAAwC;AAExC,gDAAuB;AACvB,wDAAyB;AAEzB,yBAAyB;AAEzB,aAAa;AACb,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AAEhC,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI;QACF,IAAI,IAAY,CAAA;QAChB,IAAI;YACF,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;SACrD;QAAC,MAAM;YACN,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACzB;QAED,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;QACxC,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,IAAI,GAAG,CAAC,EAAE;YAClF,yBAAyB;YACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,SAAS,CAAA;SACjB;aAAM;YACL,MAAM,GAAG,CAAA;SACV;KACF;AACH,CAAC;AAED,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;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,CAAC,CAAA;AAElD,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,CAAC,CAAA;AAEzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAE1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AAEpC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"processor_server.js","sourceRoot":"","sources":["../src/processor_server.ts"],"names":[],"mappings":";;;;;;AAEA,0EAA+C;AAC/C,yCAAwC;AACxC,gEAAsE;AACtE,uCAAgD;AAChD,yCAAwC;AAExC,gDAAuB;AACvB,wDAAyB;AAEzB,yBAAyB;AAEzB,aAAa;AACb,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AAEhC,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI;QACF,IAAI,IAAY,CAAA;QAChB,IAAI;YACF,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;SACrD;QAAC,MAAM;YACN,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACzB;QAED,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;QACxC,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,IAAI,GAAG,CAAC,EAAE;YAClF,yBAAyB;YACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,SAAS,CAAA;SACjB;aAAM;YACL,MAAM,GAAG,CAAA;SACV;KACF;AACH,CAAC;AAED,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;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,CAAC,CAAA;AAElD,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,CAAC,CAAA;AAEzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAE1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AAEpC,IAAI,UAAU,CAAC,UAAU;IAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAC1F,IAAI,UAAU,CAAC,gBAAgB;IAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;AAC7G,MAAM,gBAAgB,GAAG,IAAA,wBAAY,GAAE,CAAA;AAEvC,MAAM,OAAO,GAAG,IAAI,8BAAoB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AACnE,gBAAgB,CAAC,GAAG,CAAC,+BAAmB,EAAE,OAAO,CAAC,CAAA;AAElD,gBAAgB,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/dist/service.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ProcessorServiceImpl = void 0;
|
|
7
|
+
const nice_grpc_1 = require("nice-grpc");
|
|
7
8
|
const long_1 = __importDefault(require("long"));
|
|
8
9
|
const MAX_BLOCK = new long_1.default(0);
|
|
9
10
|
class ProcessorServiceImpl {
|
|
@@ -17,7 +18,7 @@ class ProcessorServiceImpl {
|
|
|
17
18
|
}
|
|
18
19
|
async getConfig(request, context) {
|
|
19
20
|
if (!this.started) {
|
|
20
|
-
throw new
|
|
21
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
|
|
21
22
|
}
|
|
22
23
|
return {
|
|
23
24
|
// TODO project setting
|
|
@@ -28,73 +29,75 @@ class ProcessorServiceImpl {
|
|
|
28
29
|
if (this.started) {
|
|
29
30
|
return {};
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (processor.config.endBlock) {
|
|
51
|
-
contractConfig.endBlock = processor.config.endBlock;
|
|
52
|
-
}
|
|
53
|
-
if (processor.config.chunkSize) {
|
|
54
|
-
contractConfig.chunkSize = processor.config.chunkSize;
|
|
55
|
-
}
|
|
56
|
-
// Prepare all the event handlers
|
|
57
|
-
for (const eventsHandler of processor.eventHandlers) {
|
|
58
|
-
// associate id with filter
|
|
59
|
-
const handlerId = this.eventHandlers.push(eventsHandler.handler) - 1;
|
|
60
|
-
const logConfig = {
|
|
61
|
-
handlerId: handlerId,
|
|
62
|
-
conditions: [],
|
|
32
|
+
if (globalThis.Processors) {
|
|
33
|
+
for (const processor of globalThis.Processors) {
|
|
34
|
+
// Start basic config for contract
|
|
35
|
+
const chainId = processor.network.chainId;
|
|
36
|
+
const contractConfig = {
|
|
37
|
+
contract: {
|
|
38
|
+
name: processor.name,
|
|
39
|
+
chainId: chainId,
|
|
40
|
+
address: processor.contract._underlineContract.address,
|
|
41
|
+
},
|
|
42
|
+
blockConfig: {
|
|
43
|
+
numHandlers: processor.blockHandlers.length,
|
|
44
|
+
},
|
|
45
|
+
logConfigs: [],
|
|
46
|
+
startBlock: processor.config.startBlock,
|
|
47
|
+
endBlock: MAX_BLOCK,
|
|
48
|
+
chunkSize: 1,
|
|
49
|
+
instructionConfig: [],
|
|
50
|
+
transactionConfig: [],
|
|
63
51
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
52
|
+
if (processor.config.endBlock) {
|
|
53
|
+
contractConfig.endBlock = processor.config.endBlock;
|
|
54
|
+
}
|
|
55
|
+
if (processor.config.chunkSize) {
|
|
56
|
+
contractConfig.chunkSize = processor.config.chunkSize;
|
|
57
|
+
}
|
|
58
|
+
// Prepare all the event handlers
|
|
59
|
+
for (const eventsHandler of processor.eventHandlers) {
|
|
60
|
+
// associate id with filter
|
|
61
|
+
const handlerId = this.eventHandlers.push(eventsHandler.handler) - 1;
|
|
62
|
+
const logConfig = {
|
|
63
|
+
handlerId: handlerId,
|
|
64
|
+
conditions: [],
|
|
70
65
|
};
|
|
71
|
-
for (const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
hashes = hashes.concat(ts);
|
|
66
|
+
for (const filter of eventsHandler.filters) {
|
|
67
|
+
if (!filter.topics) {
|
|
68
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'Topic should not be null');
|
|
75
69
|
}
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
const condition = {
|
|
71
|
+
topics: [],
|
|
72
|
+
};
|
|
73
|
+
for (const ts of filter.topics) {
|
|
74
|
+
let hashes = [];
|
|
75
|
+
if (Array.isArray(ts)) {
|
|
76
|
+
hashes = hashes.concat(ts);
|
|
77
|
+
}
|
|
78
|
+
else if (ts) {
|
|
79
|
+
hashes.push(ts);
|
|
80
|
+
}
|
|
81
|
+
condition.topics.push({ hashes: hashes });
|
|
78
82
|
}
|
|
79
|
-
|
|
83
|
+
logConfig.conditions.push(condition);
|
|
80
84
|
}
|
|
81
|
-
|
|
85
|
+
contractConfig.logConfigs.push(logConfig);
|
|
82
86
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
// Prepare all the block handlers
|
|
88
|
+
let handlersForChain = this.blockHandlers.get(chainId);
|
|
89
|
+
if (handlersForChain === undefined) {
|
|
90
|
+
handlersForChain = [];
|
|
91
|
+
this.blockHandlers.set(chainId, handlersForChain);
|
|
92
|
+
}
|
|
93
|
+
for (const blockHandler of processor.blockHandlers) {
|
|
94
|
+
handlersForChain.push(blockHandler);
|
|
95
|
+
}
|
|
96
|
+
// Finish up a contract
|
|
97
|
+
this.contractConfigs.push(contractConfig);
|
|
93
98
|
}
|
|
94
|
-
// Finish up a contract
|
|
95
|
-
this.contractConfigs.push(contractConfig);
|
|
96
99
|
}
|
|
97
|
-
if (globalThis.SolanaProcessors
|
|
100
|
+
if (globalThis.SolanaProcessors) {
|
|
98
101
|
for (const solanaProcessor of globalThis.SolanaProcessors) {
|
|
99
102
|
const contractConfig = {
|
|
100
103
|
contract: {
|
|
@@ -125,7 +128,7 @@ class ProcessorServiceImpl {
|
|
|
125
128
|
}
|
|
126
129
|
async processLog(request, context) {
|
|
127
130
|
if (!this.started) {
|
|
128
|
-
throw new
|
|
131
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
|
|
129
132
|
}
|
|
130
133
|
const resp = {
|
|
131
134
|
histograms: [],
|
|
@@ -133,15 +136,20 @@ class ProcessorServiceImpl {
|
|
|
133
136
|
};
|
|
134
137
|
for (const l of request.logs) {
|
|
135
138
|
if (!l.log) {
|
|
136
|
-
throw new
|
|
139
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, "Log can't be null");
|
|
137
140
|
}
|
|
138
141
|
// const jsonString = Buffer.from(l.log.raw.buffer).toString("utf-8")
|
|
139
142
|
// const jsonString = String.fromCharCode.apply(null, l.log.raw)
|
|
140
143
|
const jsonString = Utf8ArrayToStr(l.log.raw);
|
|
141
144
|
const log = JSON.parse(jsonString);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
+
try {
|
|
146
|
+
const res = await this.eventHandlers[l.handlerId](log);
|
|
147
|
+
resp.counters = resp.counters.concat(res.counters);
|
|
148
|
+
resp.histograms = resp.histograms.concat(res.histograms);
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, e);
|
|
152
|
+
}
|
|
145
153
|
}
|
|
146
154
|
return {
|
|
147
155
|
result: resp,
|
|
@@ -149,10 +157,10 @@ class ProcessorServiceImpl {
|
|
|
149
157
|
}
|
|
150
158
|
async processTransaction(request, context) {
|
|
151
159
|
if (!this.started) {
|
|
152
|
-
throw new
|
|
160
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service not started.');
|
|
153
161
|
}
|
|
154
162
|
if (!request.transaction) {
|
|
155
|
-
throw new
|
|
163
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'Transaction cannot be empty');
|
|
156
164
|
}
|
|
157
165
|
// const txn = request.transaction.txHash
|
|
158
166
|
const result = {
|
|
@@ -160,7 +168,7 @@ class ProcessorServiceImpl {
|
|
|
160
168
|
counters: [],
|
|
161
169
|
};
|
|
162
170
|
// Only have transaction handlers for solana processors
|
|
163
|
-
if (globalThis.SolanaProcessors
|
|
171
|
+
if (globalThis.SolanaProcessors) {
|
|
164
172
|
for (const processor of globalThis.SolanaProcessors) {
|
|
165
173
|
if (processor.address === request.transaction.programAccountId) {
|
|
166
174
|
for (const transactionHandler of processor.transactionHandlers) {
|
|
@@ -177,23 +185,28 @@ class ProcessorServiceImpl {
|
|
|
177
185
|
}
|
|
178
186
|
async processInstruction(request, context) {
|
|
179
187
|
if (!this.started) {
|
|
180
|
-
throw new
|
|
188
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service not started.');
|
|
181
189
|
}
|
|
182
190
|
if (!request.instruction) {
|
|
183
|
-
throw new
|
|
191
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'instruction cannot be empty');
|
|
184
192
|
}
|
|
185
193
|
const result = {
|
|
186
194
|
histograms: [],
|
|
187
195
|
counters: [],
|
|
188
196
|
};
|
|
189
197
|
// Only have instruction handlers for solana processors
|
|
190
|
-
if (globalThis.SolanaProcessors
|
|
198
|
+
if (globalThis.SolanaProcessors) {
|
|
191
199
|
for (const processor of globalThis.SolanaProcessors) {
|
|
192
200
|
if (processor.address === request.instruction.programAccountId) {
|
|
193
201
|
for (const instructionHandler of processor.instructionHandlers) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
202
|
+
try {
|
|
203
|
+
const res = await instructionHandler(request.instruction.instructionData);
|
|
204
|
+
result.histograms = res.histograms;
|
|
205
|
+
result.counters = res.counters;
|
|
206
|
+
}
|
|
207
|
+
catch (e) {
|
|
208
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, e);
|
|
209
|
+
}
|
|
197
210
|
}
|
|
198
211
|
}
|
|
199
212
|
}
|
|
@@ -204,10 +217,10 @@ class ProcessorServiceImpl {
|
|
|
204
217
|
}
|
|
205
218
|
async processBlock(request, context) {
|
|
206
219
|
if (!this.started) {
|
|
207
|
-
throw new
|
|
220
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
|
|
208
221
|
}
|
|
209
222
|
if (!request.block) {
|
|
210
|
-
throw new
|
|
223
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, "Block can't be empty");
|
|
211
224
|
}
|
|
212
225
|
const jsonString = Utf8ArrayToStr(request.block.raw);
|
|
213
226
|
const block = JSON.parse(jsonString);
|
|
@@ -224,9 +237,14 @@ class ProcessorServiceImpl {
|
|
|
224
237
|
continue;
|
|
225
238
|
}
|
|
226
239
|
for (const handler of processor.blockHandlers) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
240
|
+
try {
|
|
241
|
+
const res = await handler(block);
|
|
242
|
+
resp.counters = resp.counters.concat(res.counters);
|
|
243
|
+
resp.histograms = resp.histograms.concat(res.histograms);
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, e.stack.toString());
|
|
247
|
+
}
|
|
230
248
|
}
|
|
231
249
|
}
|
|
232
250
|
return {
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { O11yResult, Transaction } from './gen/processor/protos/processor';
|
|
2
|
+
import { SolanaContext } from './context';
|
|
3
|
+
import { ParsedTransactionWithMeta, Connection } from '@solana/web3.js';
|
|
4
|
+
import Long from 'long';
|
|
5
|
+
declare type IndexConfigure = {
|
|
6
|
+
startSlot: Long;
|
|
7
|
+
endSlot?: Long;
|
|
8
|
+
};
|
|
9
|
+
export declare class SolanaBaseProcessor {
|
|
10
|
+
transactionHandlers: ((txn: Transaction) => Promise<O11yResult>)[];
|
|
11
|
+
instructionHandlers: ((instruction: string) => Promise<O11yResult>)[];
|
|
12
|
+
address: string;
|
|
13
|
+
endpoint: string;
|
|
14
|
+
connection: Connection;
|
|
15
|
+
contractName: string;
|
|
16
|
+
config: IndexConfigure;
|
|
17
|
+
constructor(contractName: string, address: string, endpoint: string);
|
|
18
|
+
bind(address: string): void;
|
|
19
|
+
onTransaction(handler: (txn: ParsedTransactionWithMeta, ctx: SolanaContext) => void): this;
|
|
20
|
+
onInstruction(handler: (instruction: string, ctx: SolanaContext) => void): this;
|
|
21
|
+
isBind(): boolean;
|
|
22
|
+
startSlot(startSlot: Long | number): this;
|
|
23
|
+
endBlock(endBlock: Long | number): this;
|
|
24
|
+
}
|
|
25
|
+
export {};
|