@sentio/sdk 0.3.9 → 0.3.12

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.
Files changed (75) hide show
  1. package/dist/base-processor-template.d.ts +4 -4
  2. package/dist/base-processor-template.js +10 -16
  3. package/dist/base-processor-template.js.map +1 -1
  4. package/dist/base-processor.js +2 -39
  5. package/dist/base-processor.js.map +1 -1
  6. package/dist/binds.d.ts +10 -0
  7. package/dist/binds.js +55 -0
  8. package/dist/binds.js.map +1 -0
  9. package/dist/cli/build.js +2 -2
  10. package/dist/cli/cli.js.map +1 -1
  11. package/dist/cli/key.js.map +1 -1
  12. package/dist/context.d.ts +3 -1
  13. package/dist/context.js +3 -1
  14. package/dist/context.js.map +1 -1
  15. package/dist/contracts.d.ts +1 -0
  16. package/dist/contracts.js +3 -0
  17. package/dist/contracts.js.map +1 -0
  18. package/dist/gen/builtin.d.ts +1 -1
  19. package/dist/gen/processor/protos/processor.d.ts +16 -2
  20. package/dist/gen/processor/protos/processor.js +118 -21
  21. package/dist/gen/processor/protos/processor.js.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.js +9 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/meter.d.ts +1 -1
  26. package/dist/meter.js +9 -6
  27. package/dist/meter.js.map +1 -1
  28. package/dist/numberish.js +3 -3
  29. package/dist/numberish.js.map +1 -1
  30. package/dist/numberish.test.js +5 -4
  31. package/dist/numberish.test.js.map +1 -1
  32. package/dist/processor-state.d.ts +16 -0
  33. package/dist/processor-state.js +20 -0
  34. package/dist/processor-state.js.map +1 -0
  35. package/dist/processor.js +4 -4
  36. package/dist/processor.js.map +1 -1
  37. package/dist/provider.js +4 -4
  38. package/dist/provider.js.map +1 -1
  39. package/dist/service.d.ts +2 -2
  40. package/dist/service.js +51 -52
  41. package/dist/service.js.map +1 -1
  42. package/dist/solana/builtin/spl-token-processor.d.ts +2 -2
  43. package/dist/solana/builtin/spl-token-processor.js +17 -18
  44. package/dist/solana/builtin/spl-token-processor.js.map +1 -1
  45. package/dist/solana-processor.d.ts +4 -3
  46. package/dist/solana-processor.js +26 -21
  47. package/dist/solana-processor.js.map +1 -1
  48. package/dist/target-ethers-sentio/codegen.js +40 -16
  49. package/dist/target-ethers-sentio/codegen.js.map +1 -1
  50. package/dist/test-case/clean-test.js +2 -4
  51. package/dist/test-case/clean-test.js.map +1 -1
  52. package/dist/test-case/erc20.js +3 -1
  53. package/dist/test-case/erc20.js.map +1 -1
  54. package/dist/test-case/erc20.test.js +5 -3
  55. package/dist/test-case/erc20.test.js.map +1 -1
  56. package/dist/test-case/mirrorworld.js.map +1 -1
  57. package/dist/test-case/types/erc20_processor.d.ts +7 -4
  58. package/dist/test-case/types/erc20_processor.js +55 -31
  59. package/dist/test-case/types/erc20_processor.js.map +1 -1
  60. package/dist/test-case/types/game_wallet_processor.d.ts +1 -1
  61. package/dist/test-case/types/game_wallet_processor.js +3 -3
  62. package/dist/test-case/types/game_wallet_processor.js.map +1 -1
  63. package/dist/test-case/types/wormhole_processor.d.ts +3 -3
  64. package/dist/test-case/types/wormhole_processor.js +8 -8
  65. package/dist/test-case/types/wormhole_processor.js.map +1 -1
  66. package/dist/utils/chainmap.d.ts +4 -0
  67. package/dist/utils/chainmap.js +95 -0
  68. package/dist/utils/chainmap.js.map +1 -0
  69. package/dist/utils/contracts.d.ts +0 -0
  70. package/dist/utils/contracts.js +2 -0
  71. package/dist/utils/contracts.js.map +1 -0
  72. package/dist/utils/index.d.ts +1 -0
  73. package/dist/utils/index.js +6 -0
  74. package/dist/utils/index.js.map +1 -0
  75. package/package.json +2 -2
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessorState = void 0;
4
+ class ProcessorState {
5
+ // from abiName_address_chainId => contract wrapper
6
+ contracts = new Map();
7
+ // all evm processors
8
+ processors = [];
9
+ // from abiName_options to contracts
10
+ processorMap = new Map();
11
+ // evm providers
12
+ providers = new Map();
13
+ // evm processor templates
14
+ templates = [];
15
+ // evm processor template instances spec
16
+ templatesInstances = [];
17
+ solanaProcessors = [];
18
+ }
19
+ exports.ProcessorState = ProcessorState;
20
+ //# sourceMappingURL=processor-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor-state.js","sourceRoot":"","sources":["../src/processor-state.ts"],"names":[],"mappings":";;;AAQA,MAAa,cAAc;IACzB,mDAAmD;IACnD,SAAS,GAAG,IAAI,GAAG,EAAyC,CAAA;IAC5D,qBAAqB;IACrB,UAAU,GAAiE,EAAE,CAAA;IAC7E,oCAAoC;IACpC,YAAY,GAAG,IAAI,GAAG,EAAmC,CAAA;IACzD,gBAAgB;IAChB,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;IACvC,0BAA0B;IAC1B,SAAS,GAAyE,EAAE,CAAA;IACpF,wCAAwC;IACxC,kBAAkB,GAAuB,EAAE,CAAA;IAE3C,gBAAgB,GAA0B,EAAE,CAAA;CAC7C;AAfD,wCAeC"}
package/dist/processor.js CHANGED
@@ -11,8 +11,10 @@ const service_1 = require("./service");
11
11
  const provider_1 = require("./provider");
12
12
  const path_1 = __importDefault(require("path"));
13
13
  const fs_extra_1 = __importDefault(require("fs-extra"));
14
+ const processor_state_1 = require("./processor-state");
14
15
  // import 'log-timestamp'
15
16
  global.sentio_sdk = require('.');
17
+ global.PROCESSOR_STATE = new processor_state_1.ProcessorState();
16
18
  function tryRequire(name) {
17
19
  const req = eval('require');
18
20
  try {
@@ -56,10 +58,8 @@ const chainsConfig = fs_extra_1.default.readJsonSync(fullPath);
56
58
  (0, provider_1.setProvider)(chainsConfig, options.concurrency);
57
59
  tryRequire(options.target);
58
60
  console.log('Start Server', options);
59
- if (globalThis.Processors)
60
- console.log(globalThis.Processors.length, ' processors loaded');
61
- if (globalThis.SolanaProcessors)
62
- console.log(globalThis.SolanaProcessors.length, ' solana processors loaded');
61
+ console.log(global.PROCESSOR_STATE.processors.length, ' processors loaded');
62
+ console.log(global.PROCESSOR_STATE.solanaProcessors.length, ' solana processors loaded');
63
63
  const processor = (0, nice_grpc_1.createServer)();
64
64
  const service = new service_1.ProcessorServiceImpl(processor.shutdown);
65
65
  processor.add(processor_1.ProcessorDefinition, service);
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"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"}
package/dist/provider.js CHANGED
@@ -12,10 +12,10 @@ function getProvider(networkish) {
12
12
  networkish = 1;
13
13
  }
14
14
  const network = (0, providers_1.getNetwork)(networkish);
15
- if (!globalThis.SentioProvider) {
15
+ if (!global.PROCESSOR_STATE.providers) {
16
16
  throw Error('Provider not found');
17
17
  }
18
- const value = globalThis.SentioProvider.get(network.chainId);
18
+ const value = global.PROCESSOR_STATE.providers.get(network.chainId);
19
19
  if (value === undefined) {
20
20
  throw Error('Provider not found');
21
21
  }
@@ -23,7 +23,7 @@ function getProvider(networkish) {
23
23
  }
24
24
  exports.getProvider = getProvider;
25
25
  function setProvider(config, concurrency = 4) {
26
- globalThis.SentioProvider = new Map();
26
+ global.PROCESSOR_STATE.providers = new Map();
27
27
  for (const chainIdStr in config) {
28
28
  if (isNaN(Number.parseInt(chainIdStr))) {
29
29
  continue;
@@ -39,7 +39,7 @@ function setProvider(config, concurrency = 4) {
39
39
  // const provider = new FallbackProvider(providers)
40
40
  const idx = Math.floor(Math.random() * chainConfig.Https.length);
41
41
  const provider = new QueuedStaticJsonRpcProvider(chainConfig.Https[idx], chainId, concurrency);
42
- globalThis.SentioProvider.set(chainId, provider);
42
+ global.PROCESSOR_STATE.providers.set(chainId, provider);
43
43
  }
44
44
  }
45
45
  exports.setProvider = setProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAsH;AAEtH,sDAA4B;AAGf,QAAA,aAAa,GAAG,IAAI,iCAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AAEpE,SAAgB,WAAW,CAAC,UAAuB;IACjD,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,CAAC,CAAA;KACf;IACD,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,UAAU,CAAC,CAAA;IAEtC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;QAC9B,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;KAClC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;KAClC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAdD,kCAcC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,WAAW,GAAG,CAAC;IACtD,UAAU,CAAC,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEvD,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE;YACtC,SAAQ;SACT;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QAElC,8CAA8C;QAC9C,0CAA0C;QAC1C,6DAA6D;QAC7D,IAAI;QACJ,iBAAiB;QACjB,wDAAwD;QAExD,mDAAmD;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAE9F,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KACjD;AACH,CAAC;AAxBD,kCAwBC;AAED,MAAM,2BAA4B,SAAQ,iCAAqB;IAC7D,QAAQ,CAAQ;IAEhB,YAAY,GAA4B,EAAE,OAAmB,EAAE,WAAmB;QAChF,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAsF;AAEtF,sDAA4B;AAGf,QAAA,aAAa,GAAG,IAAI,iCAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AAEpE,SAAgB,WAAW,CAAC,UAAuB;IACjD,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,CAAC,CAAA;KACf;IACD,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,UAAU,CAAC,CAAA;IAEtC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;QACrC,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;KAClC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;KAClC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAdD,kCAcC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,WAAW,GAAG,CAAC;IACtD,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;IAE9D,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE;YACtC,SAAQ;SACT;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QAElC,8CAA8C;QAC9C,0CAA0C;QAC1C,6DAA6D;QAC7D,IAAI;QACJ,iBAAiB;QACjB,wDAAwD;QAExD,mDAAmD;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAE9F,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KACxD;AACH,CAAC;AAxBD,kCAwBC;AAED,MAAM,2BAA4B,SAAQ,iCAAqB;IAC7D,QAAQ,CAAQ;IAEhB,YAAY,GAA4B,EAAE,OAAmB,EAAE,WAAmB;QAChF,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,CAAC;CACF"}
package/dist/service.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { CallContext } from 'nice-grpc';
2
- import { ProcessBlockRequest, ProcessBlockResponse, ProcessConfigRequest, ProcessConfigResponse, ProcessLogRequest, ProcessLogResponse, ProcessorServiceImplementation, ProcessTransactionRequest, ProcessTransactionResponse, ProcessInstructionResponse, ProcessInstructionRequest, StartRequest, ProcessBlocksResponse, ProcessBlocksRequest } from './gen/processor/protos/processor';
2
+ import { ProcessBlockRequest, ProcessBlockResponse, ProcessBlocksRequest, ProcessBlocksResponse, ProcessConfigRequest, ProcessConfigResponse, ProcessInstructionRequest, ProcessInstructionResponse, ProcessLogRequest, ProcessLogResponse, ProcessorServiceImplementation, ProcessTransactionRequest, ProcessTransactionResponse, StartRequest } from './gen/processor/protos/processor';
3
3
  import { DeepPartial } from './gen/builtin';
4
4
  import { Empty } from './gen/google/protobuf/empty';
5
5
  export declare class ProcessorServiceImpl implements ProcessorServiceImplementation {
6
6
  private eventHandlers;
7
- private blockHandlers;
7
+ private processorsByChainId;
8
8
  private started;
9
9
  private contractConfigs;
10
10
  private templateInstances;
package/dist/service.js CHANGED
@@ -5,11 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ProcessorServiceImpl = void 0;
7
7
  const nice_grpc_1 = require("nice-grpc");
8
+ const processor_1 = require("./gen/processor/protos/processor");
8
9
  const long_1 = __importDefault(require("long"));
9
- const MAX_BLOCK = new long_1.default(0);
10
+ const DEFAULT_MAX_BLOCK = long_1.default.ZERO;
10
11
  class ProcessorServiceImpl {
11
12
  eventHandlers = [];
12
- blockHandlers = new Map();
13
+ // map from chain id to list of processors
14
+ // private blockHandlers = new Map<string, ((block: Block) => Promise<O11yResult>)[]>()
15
+ processorsByChainId = new Map();
13
16
  started = false;
14
17
  contractConfigs;
15
18
  templateInstances;
@@ -30,17 +33,17 @@ class ProcessorServiceImpl {
30
33
  async configure() {
31
34
  this.eventHandlers = [];
32
35
  this.templateInstances = [];
33
- // copy without reference array
34
- this.blockHandlers.clear();
36
+ this.processorsByChainId.clear();
35
37
  this.contractConfigs = [];
36
- if (globalThis.TemplatesInstances) {
37
- this.templateInstances = [...globalThis.TemplatesInstances];
38
+ if (global.PROCESSOR_STATE.templatesInstances) {
39
+ this.templateInstances = [...global.PROCESSOR_STATE.templatesInstances];
38
40
  }
39
- if (globalThis.Processors) {
40
- for (const processor of globalThis.Processors) {
41
+ if (global.PROCESSOR_STATE.processors) {
42
+ for (const processor of global.PROCESSOR_STATE.processors) {
41
43
  // If server favor incremental update this need to change
42
44
  // Start basic config for contract
43
- const chainId = await processor.getChainId();
45
+ const chainId = processor.getChainId();
46
+ this.processorsByChainId.set(chainId, processor);
44
47
  const contractConfig = {
45
48
  contract: {
46
49
  name: processor.config.name,
@@ -53,7 +56,7 @@ class ProcessorServiceImpl {
53
56
  },
54
57
  logConfigs: [],
55
58
  startBlock: processor.config.startBlock,
56
- endBlock: MAX_BLOCK,
59
+ endBlock: DEFAULT_MAX_BLOCK,
57
60
  instructionConfig: undefined,
58
61
  };
59
62
  if (processor.config.endBlock) {
@@ -88,21 +91,12 @@ class ProcessorServiceImpl {
88
91
  }
89
92
  contractConfig.logConfigs.push(logConfig);
90
93
  }
91
- // Prepare all the block handlers
92
- let handlersForChain = this.blockHandlers.get(chainId);
93
- if (handlersForChain === undefined) {
94
- handlersForChain = [];
95
- this.blockHandlers.set(chainId, handlersForChain);
96
- }
97
- for (const blockHandler of processor.blockHandlers) {
98
- handlersForChain.push(blockHandler);
99
- }
100
94
  // Finish up a contract
101
95
  this.contractConfigs.push(contractConfig);
102
96
  }
103
97
  }
104
- if (globalThis.SolanaProcessors) {
105
- for (const solanaProcessor of globalThis.SolanaProcessors) {
98
+ if (global.PROCESSOR_STATE.solanaProcessors) {
99
+ for (const solanaProcessor of global.PROCESSOR_STATE.solanaProcessors) {
106
100
  const contractConfig = {
107
101
  contract: {
108
102
  name: solanaProcessor.contractName,
@@ -113,9 +107,11 @@ class ProcessorServiceImpl {
113
107
  blockConfig: undefined,
114
108
  logConfigs: [],
115
109
  startBlock: solanaProcessor.config.startSlot,
116
- endBlock: MAX_BLOCK,
110
+ endBlock: DEFAULT_MAX_BLOCK,
117
111
  instructionConfig: {
118
- processInnerInstruction: solanaProcessor.processInnerInstruction,
112
+ innerInstruction: solanaProcessor.processInnerInstruction,
113
+ parsedInstruction: solanaProcessor.fromParsedInstruction != null ? true : false,
114
+ rawDataInstruction: solanaProcessor.decodeInstruction != null ? true : false,
119
115
  },
120
116
  };
121
117
  this.contractConfigs.push(contractConfig);
@@ -127,7 +123,7 @@ class ProcessorServiceImpl {
127
123
  return {};
128
124
  }
129
125
  for (const instance of request.templateInstances) {
130
- const template = globalThis.Templates[instance.templateId];
126
+ const template = global.PROCESSOR_STATE.templates[instance.templateId];
131
127
  if (!template) {
132
128
  throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'Invalid template contract:' + instance);
133
129
  }
@@ -179,10 +175,13 @@ class ProcessorServiceImpl {
179
175
  }
180
176
  }
181
177
  let updated = false;
182
- if (global.TemplatesInstances && this.templateInstances.length != global.TemplatesInstances.length) {
178
+ if (global.PROCESSOR_STATE.templatesInstances &&
179
+ this.templateInstances.length != global.PROCESSOR_STATE.templatesInstances.length) {
183
180
  await this.configure();
184
181
  updated = true;
185
182
  }
183
+ resp.gauges?.forEach((e) => (e.from = processor_1.HandlerType.LOG));
184
+ resp.counters?.forEach((e) => (e.from = processor_1.HandlerType.LOG));
186
185
  return {
187
186
  result: resp,
188
187
  configUpdated: updated,
@@ -203,41 +202,37 @@ class ProcessorServiceImpl {
203
202
  counters: [],
204
203
  };
205
204
  // Only have instruction handlers for solana processors
206
- if (globalThis.SolanaProcessors) {
205
+ if (global.PROCESSOR_STATE.solanaProcessors) {
207
206
  for (const instruction of request.instructions) {
208
207
  if (!instruction) {
209
208
  throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'instruction cannot be null');
210
209
  }
211
- for (const processor of globalThis.SolanaProcessors) {
210
+ for (const processor of global.PROCESSOR_STATE.solanaProcessors) {
212
211
  if (processor.address === instruction.programAccountId) {
213
- let decodedIns;
212
+ let res;
214
213
  if (instruction.parsed) {
215
- decodedIns = processor.fromParsedInstruction(JSON.parse(instruction.parsed.toString()));
214
+ res = processor.handleInstruction(JSON.parse(instruction.parsed.toString()));
216
215
  }
217
216
  else {
218
- decodedIns = processor.decodeInstruction(instruction.instructionData);
217
+ res = processor.handleInstruction(instruction.instructionData);
219
218
  }
220
- if (decodedIns) {
221
- const handler = processor.instructionHanlderMap.get(decodedIns.name);
222
- if (handler !== undefined) {
223
- try {
224
- const res = await handler(decodedIns);
225
- res.gauges.forEach((h) => {
226
- if (h.metadata) {
227
- h.metadata.blockNumber = instruction.slot;
228
- }
229
- result.gauges.push(h);
230
- });
231
- res.counters.forEach((c) => {
232
- if (c.metadata) {
233
- c.metadata.blockNumber = instruction.slot;
234
- }
235
- result.counters.push(c);
236
- });
237
- }
238
- catch (e) {
239
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, e);
240
- }
219
+ if (res) {
220
+ try {
221
+ res.gauges.forEach((g) => {
222
+ if (g.metadata) {
223
+ g.metadata.blockNumber = instruction.slot;
224
+ }
225
+ result.gauges.push(g);
226
+ });
227
+ res.counters.forEach((c) => {
228
+ if (c.metadata) {
229
+ c.metadata.blockNumber = instruction.slot;
230
+ }
231
+ result.counters.push(c);
232
+ });
233
+ }
234
+ catch (e) {
235
+ throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, e);
241
236
  }
242
237
  }
243
238
  else {
@@ -247,6 +242,8 @@ class ProcessorServiceImpl {
247
242
  }
248
243
  }
249
244
  }
245
+ result.gauges?.forEach((e) => (e.from = processor_1.HandlerType.INSTRUCTION));
246
+ result.counters?.forEach((e) => (e.from = processor_1.HandlerType.INSTRUCTION));
250
247
  return {
251
248
  result,
252
249
  };
@@ -272,7 +269,7 @@ class ProcessorServiceImpl {
272
269
  counters: [],
273
270
  };
274
271
  const promises = [];
275
- for (const processor of globalThis.Processors) {
272
+ for (const processor of global.PROCESSOR_STATE.processors) {
276
273
  if (long_1.default.fromNumber(block.number) < processor.config.startBlock) {
277
274
  continue;
278
275
  }
@@ -301,6 +298,8 @@ class ProcessorServiceImpl {
301
298
  catch (e) {
302
299
  throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, e.stack.toString());
303
300
  }
301
+ resp.gauges?.forEach((e) => (e.from = processor_1.HandlerType.BLOCK));
302
+ resp.counters?.forEach((e) => (e.from = processor_1.HandlerType.BLOCK));
304
303
  return {
305
304
  result: resp,
306
305
  };
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@ import { Instruction } from '@project-serum/anchor';
6
6
  export declare class SPLTokenProcessor extends SolanaBaseProcessor {
7
7
  private TokenInstructionMapCache;
8
8
  static bind(address: string, endpoint: string, name?: string): SPLTokenProcessor;
9
- fromParsedInstruction(instruction: ParsedInstruction): Instruction | null;
10
- private instructionTypeToTokenInstruction;
9
+ fromParsedInstruction: (instruction: ParsedInstruction) => Instruction | null;
11
10
  onInitializeMint(handler: (data: InitializeMintInstructionData, ctx: SolanaContext) => void): SPLTokenProcessor;
12
11
  onInitializeAccount(hanlder: (data: InitializeAccountInstructionData, ctx: SolanaContext) => void): SPLTokenProcessor;
13
12
  onInitializeAccount2(hanlder: (data: InitializeAccount2InstructionData, ctx: SolanaContext) => void): SPLTokenProcessor;
@@ -22,4 +21,5 @@ export declare class SPLTokenProcessor extends SolanaBaseProcessor {
22
21
  onCloseAccount(handler: (data: CloseAccountInstructionData, ctx: SolanaContext) => void): SPLTokenProcessor;
23
22
  onFreezeAccount(handler: (data: FreezeAccountInstructionData, ctx: SolanaContext) => void): SPLTokenProcessor;
24
23
  onThawAccount(handler: (data: ThawAccountInstructionData, ctx: SolanaContext) => void): SPLTokenProcessor;
24
+ private instructionTypeToTokenInstruction;
25
25
  }
@@ -8,10 +8,9 @@ class SPLTokenProcessor extends solana_processor_1.SolanaBaseProcessor {
8
8
  static bind(address, endpoint, name = 'Token Program') {
9
9
  return new SPLTokenProcessor(name, address, endpoint);
10
10
  }
11
- fromParsedInstruction(instruction) {
11
+ fromParsedInstruction = (instruction) => {
12
12
  const instructionType = instruction.parsed.type;
13
- if (!instructionType ||
14
- !this.instructionTypeToTokenInstruction(instructionType)) {
13
+ if (!instructionType || !this.instructionTypeToTokenInstruction(instructionType)) {
15
14
  return null;
16
15
  }
17
16
  return {
@@ -21,21 +20,7 @@ class SPLTokenProcessor extends solana_processor_1.SolanaBaseProcessor {
21
20
  ...instruction.parsed.info,
22
21
  },
23
22
  };
24
- }
25
- instructionTypeToTokenInstruction(type) {
26
- const findTokenInstruction = () => {
27
- const camelCaseType = type[0].toLowerCase() + type.substring(1);
28
- const index = Object.keys(spl_token_1.TokenInstruction).indexOf(camelCaseType);
29
- if (index !== -1) {
30
- return Object.values(spl_token_1.TokenInstruction)[index];
31
- }
32
- return undefined;
33
- };
34
- if (!this.TokenInstructionMapCache.has(type)) {
35
- this.TokenInstructionMapCache.set(type, findTokenInstruction());
36
- }
37
- return this.TokenInstructionMapCache.get(type);
38
- }
23
+ };
39
24
  onInitializeMint(handler) {
40
25
  this.onInstruction('initializeMint', (ins, ctx) => {
41
26
  if (ins) {
@@ -148,6 +133,20 @@ class SPLTokenProcessor extends solana_processor_1.SolanaBaseProcessor {
148
133
  });
149
134
  return this;
150
135
  }
136
+ instructionTypeToTokenInstruction(type) {
137
+ const findTokenInstruction = () => {
138
+ const camelCaseType = type[0].toLowerCase() + type.substring(1);
139
+ const index = Object.keys(spl_token_1.TokenInstruction).indexOf(camelCaseType);
140
+ if (index !== -1) {
141
+ return Object.values(spl_token_1.TokenInstruction)[index];
142
+ }
143
+ return undefined;
144
+ };
145
+ if (!this.TokenInstructionMapCache.has(type)) {
146
+ this.TokenInstructionMapCache.set(type, findTokenInstruction());
147
+ }
148
+ return this.TokenInstructionMapCache.get(type);
149
+ }
151
150
  }
152
151
  exports.SPLTokenProcessor = SPLTokenProcessor;
153
152
  //# sourceMappingURL=spl-token-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spl-token-processor.js","sourceRoot":"","sources":["../../../src/solana/builtin/spl-token-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spl-token-processor.js","sourceRoot":"","sources":["../../../src/solana/builtin/spl-token-processor.ts"],"names":[],"mappings":"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"}
@@ -8,18 +8,19 @@ declare type IndexConfigure = {
8
8
  endSlot?: Long;
9
9
  };
10
10
  export declare class SolanaBaseProcessor {
11
- instructionHanlderMap: Map<string, (instruction: Instruction) => Promise<O11yResult>>;
11
+ instructionHanlderMap: Map<string, (instruction: Instruction, ctx: SolanaContext) => void>;
12
12
  address: string;
13
13
  endpoint: string;
14
14
  connection: Connection;
15
15
  contractName: string;
16
16
  processInnerInstruction: boolean;
17
17
  config: IndexConfigure;
18
+ decodeInstruction: (rawInstruction: string) => Instruction | null;
19
+ fromParsedInstruction: (instruction: ParsedInstruction) => Instruction | null;
18
20
  constructor(contractName: string, address: string, endpoint: string, processInnerInstruction?: boolean);
19
21
  bind(address: string): void;
20
- decodeInstruction(rawInstruction: string): Instruction | null;
21
- fromParsedInstruction(instruction: ParsedInstruction): Instruction | null;
22
22
  onInstruction(instructionName: string, handler: (instruction: Instruction, ctx: SolanaContext) => void): this;
23
+ handleInstruction(ins: string | ParsedInstruction): O11yResult;
23
24
  isBind(): boolean;
24
25
  startSlot(startSlot: Long | number): this;
25
26
  endBlock(endBlock: Long | number): this;
@@ -15,13 +15,12 @@ class SolanaBaseProcessor {
15
15
  contractName;
16
16
  processInnerInstruction;
17
17
  config = { startSlot: new long_1.default(0) };
18
+ decodeInstruction;
19
+ fromParsedInstruction;
18
20
  constructor(contractName, address, endpoint, processInnerInstruction = false) {
19
21
  this.endpoint = endpoint;
20
22
  this.address = address;
21
- if (!globalThis.SolanaProcessors) {
22
- globalThis.SolanaProcessors = [];
23
- }
24
- globalThis.SolanaProcessors.push(this);
23
+ global.PROCESSOR_STATE.solanaProcessors.push(this);
25
24
  this.connection = new web3_js_1.Connection(endpoint, 'confirmed');
26
25
  this.contractName = contractName;
27
26
  this.processInnerInstruction = processInnerInstruction;
@@ -29,29 +28,35 @@ class SolanaBaseProcessor {
29
28
  bind(address) {
30
29
  this.address = address;
31
30
  }
32
- decodeInstruction(rawInstruction) {
33
- throw new Error('decodeInstruction is not implemented.');
34
- }
35
- fromParsedInstruction(instruction) {
36
- throw new Error('fromParsedInstruction is not implemented.');
37
- }
38
31
  onInstruction(instructionName, handler) {
39
32
  if (!this.isBind()) {
40
33
  throw new Error("Processor doesn't bind to an address");
41
34
  }
42
- this.instructionHanlderMap.set(instructionName, async (ins) => {
43
- const ctx = new context_1.SolanaContext(this.address);
44
- // const parsedTransaction = await this.connection.getParsedTransaction(ins)
45
- if (ins) {
46
- await handler(ins, ctx);
47
- }
48
- return {
49
- gauges: ctx.gauges,
50
- counters: ctx.counters,
51
- };
52
- });
35
+ this.instructionHanlderMap.set(instructionName, handler);
53
36
  return this;
54
37
  }
38
+ handleInstruction(ins) {
39
+ const ctx = new context_1.SolanaContext(this.address);
40
+ let parsedInstruction = null;
41
+ if (ins) {
42
+ if (ins.parsed) {
43
+ parsedInstruction = this.fromParsedInstruction(ins);
44
+ }
45
+ else {
46
+ parsedInstruction = this.decodeInstruction(ins);
47
+ }
48
+ if (parsedInstruction) {
49
+ const handler = this.instructionHanlderMap.get(parsedInstruction.name);
50
+ if (handler) {
51
+ handler(parsedInstruction, ctx);
52
+ }
53
+ }
54
+ }
55
+ return {
56
+ gauges: ctx.gauges,
57
+ counters: ctx.counters,
58
+ };
59
+ }
55
60
  isBind() {
56
61
  return this.address !== null;
57
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solana-processor.js","sourceRoot":"","sources":["../src/solana-processor.ts"],"names":[],"mappings":";;;;;;AACA,uCAAyC;AACzC,6CAA+D;AAC/D,gDAAuB;AAQvB,MAAa,mBAAmB;IACvB,qBAAqB,GAAmE,IAAI,GAAG,EAAE,CAAA;IACxG,OAAO,CAAQ;IACf,QAAQ,CAAQ;IAChB,UAAU,CAAY;IACtB,YAAY,CAAQ;IACpB,uBAAuB,CAAS;IAChC,MAAM,GAAmB,EAAE,SAAS,EAAE,IAAI,cAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnD,YAAY,YAAoB,EAAE,OAAe,EAAE,QAAgB,EAAE,uBAAuB,GAAG,KAAK;QAClG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAChC,UAAU,CAAC,gBAAgB,GAAG,EAAE,CAAA;SACjC;QACD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,iBAAiB,CAAC,cAAsB;QAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAEM,qBAAqB,CAAC,WAA8B;QACzD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAEM,aAAa,CAAC,eAAuB,EAAE,OAA+D;QAC3G,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;YACzE,MAAM,GAAG,GAAG,IAAI,uBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC3C,4EAA4E;YAE5E,IAAI,GAAG,EAAE;gBACP,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;aACxB;YACD,OAAO;gBACL,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAA;IAC9B,CAAC;IAEM,SAAS,CAAC,SAAwB;QACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;SACvC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,QAAuB;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,QAAQ,GAAG,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;SACrC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAzED,kDAyEC"}
1
+ {"version":3,"file":"solana-processor.js","sourceRoot":"","sources":["../src/solana-processor.ts"],"names":[],"mappings":";;;;;;AACA,uCAAyC;AACzC,6CAA+D;AAC/D,gDAAuB;AAQvB,MAAa,mBAAmB;IACvB,qBAAqB,GAAwE,IAAI,GAAG,EAAE,CAAA;IAC7G,OAAO,CAAQ;IACf,QAAQ,CAAQ;IAChB,UAAU,CAAY;IACtB,YAAY,CAAQ;IACpB,uBAAuB,CAAS;IAChC,MAAM,GAAmB,EAAE,SAAS,EAAE,IAAI,cAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,iBAAiB,CAAgD;IACjE,qBAAqB,CAAwD;IAE7E,YAAY,YAAoB,EAAE,OAAe,EAAE,QAAgB,EAAE,uBAAuB,GAAG,KAAK;QAClG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,aAAa,CAAC,eAAuB,EAAE,OAA+D;QAC3G,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QAExD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,iBAAiB,CAAC,GAA+B;QACtD,MAAM,GAAG,GAAG,IAAI,uBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,iBAAiB,GAAuB,IAAI,CAAA;QAEhD,IAAI,GAAG,EAAE;YACP,IAAK,GAAyB,CAAC,MAAM,EAAE;gBACrC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAwB,CAAC,CAAA;aACzE;iBAAM;gBACL,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAa,CAAC,CAAA;aAC1D;YACD,IAAI,iBAAiB,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBACtE,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;iBAChC;aACF;SACF;QACD,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAA;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAA;IAC9B,CAAC;IAEM,SAAS,CAAC,SAAwB;QACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,SAAS,GAAG,cAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;SACvC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,QAAuB;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,QAAQ,GAAG,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;SACrC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA5ED,kDA4EC"}