@sentio/sdk 4.0.0-rc.1 → 4.0.0-rc.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/lib/aptos/aptos-plugin.d.ts +1 -1
- package/lib/aptos/aptos-plugin.d.ts.map +1 -1
- package/lib/aptos/aptos-plugin.js +43 -42
- package/lib/aptos/aptos-plugin.js.map +1 -1
- package/lib/aptos/aptos-processor.d.ts +1 -1
- package/lib/aptos/aptos-processor.d.ts.map +1 -1
- package/lib/aptos/aptos-processor.js +25 -25
- package/lib/aptos/aptos-processor.js.map +1 -1
- package/lib/aptos/aptos-resource-processor-template.d.ts +1 -1
- package/lib/aptos/aptos-resource-processor-template.d.ts.map +1 -1
- package/lib/aptos/aptos-resource-processor-template.js +10 -5
- package/lib/aptos/aptos-resource-processor-template.js.map +1 -1
- package/lib/aptos/context.d.ts +1 -1
- package/lib/aptos/context.d.ts.map +1 -1
- package/lib/aptos/context.js +11 -9
- package/lib/aptos/context.js.map +1 -1
- package/lib/aptos/data.d.ts +4 -4
- package/lib/aptos/data.d.ts.map +1 -1
- package/lib/aptos/network.js +1 -1
- package/lib/aptos/network.js.map +1 -1
- package/lib/core/base-context.d.ts +3 -2
- package/lib/core/base-context.d.ts.map +1 -1
- package/lib/core/base-context.js +12 -11
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/core-plugin.d.ts.map +1 -1
- package/lib/core/core-plugin.js +6 -4
- package/lib/core/core-plugin.js.map +1 -1
- package/lib/core/event-logger.d.ts +10 -2
- package/lib/core/event-logger.d.ts.map +1 -1
- package/lib/core/event-logger.js +42 -27
- package/lib/core/event-logger.js.map +1 -1
- package/lib/core/exporter.d.ts.map +1 -1
- package/lib/core/exporter.js +5 -3
- package/lib/core/exporter.js.map +1 -1
- package/lib/core/handler-options.d.ts +1 -1
- package/lib/core/handler-options.d.ts.map +1 -1
- package/lib/core/handler-register.d.ts +1 -1
- package/lib/core/handler-register.d.ts.map +1 -1
- package/lib/core/handler-register.js +2 -2
- package/lib/core/handler-register.js.map +1 -1
- package/lib/core/meter.d.ts +4 -3
- package/lib/core/meter.d.ts.map +1 -1
- package/lib/core/meter.js +5 -4
- package/lib/core/meter.js.map +1 -1
- package/lib/core/normalization.d.ts +1 -1
- package/lib/core/normalization.d.ts.map +1 -1
- package/lib/core/normalization.js +41 -31
- package/lib/core/normalization.js.map +1 -1
- package/lib/core/numberish.d.ts +1 -1
- package/lib/core/numberish.d.ts.map +1 -1
- package/lib/core/numberish.js +35 -30
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/partition-handler-manager.d.ts +1 -1
- package/lib/core/partition-handler-manager.d.ts.map +1 -1
- package/lib/core/partition-handler-manager.js +10 -9
- package/lib/core/partition-handler-manager.js.map +1 -1
- package/lib/cosmos/context.d.ts.map +1 -1
- package/lib/cosmos/context.js +4 -2
- package/lib/cosmos/context.js.map +1 -1
- package/lib/cosmos/cosmos-plugin.d.ts.map +1 -1
- package/lib/cosmos/cosmos-plugin.js +11 -10
- package/lib/cosmos/cosmos-plugin.js.map +1 -1
- package/lib/cosmos/cosmos-processor.js.map +1 -1
- package/lib/eth/abi-decoder/decode-worker.js +2 -2
- package/lib/eth/abi-decoder/decode-worker.js.map +1 -1
- package/lib/eth/account-processor.d.ts +2 -2
- package/lib/eth/account-processor.d.ts.map +1 -1
- package/lib/eth/account-processor.js +10 -9
- package/lib/eth/account-processor.js.map +1 -1
- package/lib/eth/base-processor-template.d.ts +3 -3
- package/lib/eth/base-processor-template.d.ts.map +1 -1
- package/lib/eth/base-processor-template.js +12 -8
- package/lib/eth/base-processor-template.js.map +1 -1
- package/lib/eth/base-processor.d.ts +1 -1
- package/lib/eth/base-processor.d.ts.map +1 -1
- package/lib/eth/base-processor.js +53 -46
- package/lib/eth/base-processor.js.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js +48 -46
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc1155-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc1155-processor.js +18 -16
- package/lib/eth/builtin/internal/erc1155-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc20-processor.js +38 -36
- package/lib/eth/builtin/internal/erc20-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.js +20 -18
- package/lib/eth/builtin/internal/erc20bytes-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc721-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc721-processor.js +30 -28
- package/lib/eth/builtin/internal/erc721-processor.js.map +1 -1
- package/lib/eth/builtin/internal/weth9-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/weth9-processor.js +24 -22
- package/lib/eth/builtin/internal/weth9-processor.js.map +1 -1
- package/lib/eth/codegen/file.d.ts.map +1 -1
- package/lib/eth/codegen/file.js +2 -1
- package/lib/eth/codegen/file.js.map +1 -1
- package/lib/eth/codegen/function-calls.js +1 -1
- package/lib/eth/context.d.ts +1 -1
- package/lib/eth/context.d.ts.map +1 -1
- package/lib/eth/context.js +17 -11
- package/lib/eth/context.js.map +1 -1
- package/lib/eth/eth-plugin.d.ts.map +1 -1
- package/lib/eth/eth-plugin.js +85 -76
- package/lib/eth/eth-plugin.js.map +1 -1
- package/lib/eth/eth.d.ts +6 -6
- package/lib/eth/eth.d.ts.map +1 -1
- package/lib/eth/eth.js +39 -26
- package/lib/eth/eth.js.map +1 -1
- package/lib/eth/generic-processor.js +1 -1
- package/lib/eth/generic-processor.js.map +1 -1
- package/lib/eth/index.d.ts +2 -2
- package/lib/eth/index.d.ts.map +1 -1
- package/lib/eth/index.js +1 -2
- package/lib/eth/index.js.map +1 -1
- package/lib/eth/provider.d.ts +13 -0
- package/lib/eth/provider.d.ts.map +1 -0
- package/lib/eth/provider.js +164 -0
- package/lib/eth/provider.js.map +1 -0
- package/lib/fuel/asset-processor.d.ts +2 -2
- package/lib/fuel/asset-processor.d.ts.map +1 -1
- package/lib/fuel/asset-processor.js +5 -3
- package/lib/fuel/asset-processor.js.map +1 -1
- package/lib/fuel/context.d.ts.map +1 -1
- package/lib/fuel/context.js +4 -2
- package/lib/fuel/context.js.map +1 -1
- package/lib/fuel/fuel-plugin.d.ts.map +1 -1
- package/lib/fuel/fuel-plugin.js +41 -53
- package/lib/fuel/fuel-plugin.js.map +1 -1
- package/lib/fuel/fuel-processor-template.d.ts.map +1 -1
- package/lib/fuel/fuel-processor-template.js +7 -5
- package/lib/fuel/fuel-processor-template.js.map +1 -1
- package/lib/fuel/fuel-processor.d.ts.map +1 -1
- package/lib/fuel/fuel-processor.js +30 -20
- package/lib/fuel/fuel-processor.js.map +1 -1
- package/lib/fuel/global-processor.d.ts.map +1 -1
- package/lib/fuel/global-processor.js +2 -1
- package/lib/fuel/global-processor.js.map +1 -1
- package/lib/fuel/network.js +5 -5
- package/lib/fuel/network.js.map +1 -1
- package/lib/fuel/types.d.ts +10 -4
- package/lib/fuel/types.d.ts.map +1 -1
- package/lib/fuel/types.js.map +1 -1
- package/lib/iota/context.d.ts +1 -1
- package/lib/iota/context.d.ts.map +1 -1
- package/lib/iota/context.js +8 -6
- package/lib/iota/context.js.map +1 -1
- package/lib/iota/iota-object-processor-template.d.ts +1 -1
- package/lib/iota/iota-object-processor-template.d.ts.map +1 -1
- package/lib/iota/iota-object-processor-template.js +17 -12
- package/lib/iota/iota-object-processor-template.js.map +1 -1
- package/lib/iota/iota-object-processor.d.ts +1 -1
- package/lib/iota/iota-object-processor.d.ts.map +1 -1
- package/lib/iota/iota-object-processor.js +23 -16
- package/lib/iota/iota-object-processor.js.map +1 -1
- package/lib/iota/iota-plugin-part.d.ts +1 -1
- package/lib/iota/iota-plugin-part.d.ts.map +1 -1
- package/lib/iota/iota-plugin-part.js +16 -15
- package/lib/iota/iota-plugin-part.js.map +1 -1
- package/lib/iota/iota-processor.d.ts +1 -1
- package/lib/iota/iota-processor.d.ts.map +1 -1
- package/lib/iota/iota-processor.js +18 -17
- package/lib/iota/iota-processor.js.map +1 -1
- package/lib/iota/network.js +6 -6
- package/lib/iota/network.js.map +1 -1
- package/lib/move/filter.d.ts +1 -1
- package/lib/move/filter.d.ts.map +1 -1
- package/lib/move/index.d.ts +1 -1
- package/lib/move/index.d.ts.map +1 -1
- package/lib/move/index.js +0 -1
- package/lib/move/index.js.map +1 -1
- package/lib/solana/builtin/types.d.ts +4 -4
- package/lib/solana/solana-context.d.ts.map +1 -1
- package/lib/solana/solana-context.js +4 -3
- package/lib/solana/solana-context.js.map +1 -1
- package/lib/solana/solana-plugin.d.ts.map +1 -1
- package/lib/solana/solana-plugin.js +19 -18
- package/lib/solana/solana-plugin.js.map +1 -1
- package/lib/solana/solana-processor.d.ts.map +1 -1
- package/lib/solana/solana-processor.js +8 -3
- package/lib/solana/solana-processor.js.map +1 -1
- package/lib/store/cache.d.ts.map +1 -1
- package/lib/store/cache.js +22 -17
- package/lib/store/cache.js.map +1 -1
- package/lib/store/convert.d.ts +1 -1
- package/lib/store/convert.d.ts.map +1 -1
- package/lib/store/convert.js +67 -104
- package/lib/store/convert.js.map +1 -1
- package/lib/store/decorators.d.ts +1 -1
- package/lib/store/decorators.d.ts.map +1 -1
- package/lib/store/decorators.js +3 -1
- package/lib/store/decorators.js.map +1 -1
- package/lib/store/store.d.ts.map +1 -1
- package/lib/store/store.js +24 -16
- package/lib/store/store.js.map +1 -1
- package/lib/store/types.js +24 -32
- package/lib/store/types.js.map +1 -1
- package/lib/store/util.d.ts +1 -1
- package/lib/store/util.d.ts.map +1 -1
- package/lib/store/util.js +13 -17
- package/lib/store/util.js.map +1 -1
- package/lib/sui/context.d.ts +1 -1
- package/lib/sui/context.d.ts.map +1 -1
- package/lib/sui/context.js +8 -6
- package/lib/sui/context.js.map +1 -1
- package/lib/sui/network.d.ts.map +1 -1
- package/lib/sui/network.js +11 -6
- package/lib/sui/network.js.map +1 -1
- package/lib/sui/sui-object-processor-template.d.ts +1 -1
- package/lib/sui/sui-object-processor-template.d.ts.map +1 -1
- package/lib/sui/sui-object-processor-template.js +17 -12
- package/lib/sui/sui-object-processor-template.js.map +1 -1
- package/lib/sui/sui-object-processor.d.ts +1 -1
- package/lib/sui/sui-object-processor.d.ts.map +1 -1
- package/lib/sui/sui-object-processor.js +29 -21
- package/lib/sui/sui-object-processor.js.map +1 -1
- package/lib/sui/sui-plugin-part.d.ts +1 -1
- package/lib/sui/sui-plugin-part.d.ts.map +1 -1
- package/lib/sui/sui-plugin-part.js +16 -15
- package/lib/sui/sui-plugin-part.js.map +1 -1
- package/lib/sui/sui-plugin.d.ts +1 -1
- package/lib/sui/sui-plugin.d.ts.map +1 -1
- package/lib/sui/sui-plugin.js +35 -34
- package/lib/sui/sui-plugin.js.map +1 -1
- package/lib/sui/sui-processor.d.ts +1 -1
- package/lib/sui/sui-processor.d.ts.map +1 -1
- package/lib/sui/sui-processor.js +21 -19
- package/lib/sui/sui-processor.js.map +1 -1
- package/lib/sui/to-client-types.d.ts +4 -0
- package/lib/sui/to-client-types.d.ts.map +1 -0
- package/lib/sui/to-client-types.js +69 -0
- package/lib/sui/to-client-types.js.map +1 -0
- package/lib/testing/aptos-facet.d.ts.map +1 -1
- package/lib/testing/aptos-facet.js +18 -11
- package/lib/testing/aptos-facet.js.map +1 -1
- package/lib/testing/cosmos-facet.d.ts.map +1 -1
- package/lib/testing/cosmos-facet.js +10 -6
- package/lib/testing/cosmos-facet.js.map +1 -1
- package/lib/testing/eth-facet.d.ts +1 -1
- package/lib/testing/eth-facet.d.ts.map +1 -1
- package/lib/testing/eth-facet.js +34 -18
- package/lib/testing/eth-facet.js.map +1 -1
- package/lib/testing/fuel-facet.d.ts.map +1 -1
- package/lib/testing/fuel-facet.js +28 -18
- package/lib/testing/fuel-facet.js.map +1 -1
- package/lib/testing/iota-facet.d.ts.map +1 -1
- package/lib/testing/iota-facet.js +32 -20
- package/lib/testing/iota-facet.js.map +1 -1
- package/lib/testing/memory-database.d.ts +11 -3
- package/lib/testing/memory-database.d.ts.map +1 -1
- package/lib/testing/memory-database.js +84 -71
- package/lib/testing/memory-database.js.map +1 -1
- package/lib/testing/metric-utils.d.ts +2 -2
- package/lib/testing/metric-utils.d.ts.map +1 -1
- package/lib/testing/metric-utils.js +13 -12
- package/lib/testing/metric-utils.js.map +1 -1
- package/lib/testing/solana-facet.d.ts +3 -2
- package/lib/testing/solana-facet.d.ts.map +1 -1
- package/lib/testing/solana-facet.js +8 -5
- package/lib/testing/solana-facet.js.map +1 -1
- package/lib/testing/sui-facet.d.ts.map +1 -1
- package/lib/testing/sui-facet.js +30 -20
- package/lib/testing/sui-facet.js.map +1 -1
- package/lib/testing/test-processor-server.d.ts +1452 -16
- package/lib/testing/test-processor-server.d.ts.map +1 -1
- package/lib/testing/test-processor-server.js +109 -46
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/testing/test-provider.js +1 -1
- package/lib/testing/test-provider.js.map +1 -1
- package/lib/utils/price.d.ts +1 -1
- package/lib/utils/price.d.ts.map +1 -1
- package/lib/utils/price.js +19 -12
- package/lib/utils/price.js.map +1 -1
- package/package.json +5 -7
- package/src/aptos/aptos-plugin.ts +105 -91
- package/src/aptos/aptos-processor.ts +33 -25
- package/src/aptos/aptos-resource-processor-template.ts +15 -6
- package/src/aptos/context.ts +11 -10
- package/src/aptos/data.ts +4 -4
- package/src/aptos/network.ts +1 -1
- package/src/core/base-context.ts +19 -12
- package/src/core/core-plugin.ts +10 -7
- package/src/core/event-logger.ts +63 -35
- package/src/core/exporter.ts +5 -4
- package/src/core/handler-options.ts +1 -1
- package/src/core/handler-register.ts +3 -3
- package/src/core/meter.ts +9 -7
- package/src/core/normalization.ts +53 -31
- package/src/core/numberish.ts +46 -30
- package/src/core/partition-handler-manager.ts +13 -11
- package/src/cosmos/context.ts +4 -3
- package/src/cosmos/cosmos-plugin.ts +19 -15
- package/src/cosmos/cosmos-processor.ts +2 -2
- package/src/eth/abi-decoder/decode-worker.ts +2 -2
- package/src/eth/account-processor.ts +21 -12
- package/src/eth/base-processor-template.ts +22 -10
- package/src/eth/base-processor.ts +66 -54
- package/src/eth/builtin/internal/eacaggregatorproxy-processor.ts +177 -116
- package/src/eth/builtin/internal/erc1155-processor.ts +73 -38
- package/src/eth/builtin/internal/erc20-processor.ts +152 -91
- package/src/eth/builtin/internal/erc20bytes-processor.ts +80 -46
- package/src/eth/builtin/internal/erc721-processor.ts +109 -65
- package/src/eth/builtin/internal/weth9-processor.ts +95 -56
- package/src/eth/codegen/file.ts +2 -1
- package/src/eth/codegen/function-calls.ts +1 -1
- package/src/eth/context.ts +29 -13
- package/src/eth/eth-plugin.ts +137 -127
- package/src/eth/eth.ts +46 -32
- package/src/eth/generic-processor.ts +1 -1
- package/src/eth/index.ts +2 -2
- package/src/eth/provider.ts +193 -0
- package/src/fuel/asset-processor.ts +16 -8
- package/src/fuel/context.ts +4 -3
- package/src/fuel/fuel-plugin.ts +71 -73
- package/src/fuel/fuel-processor-template.ts +7 -6
- package/src/fuel/fuel-processor.ts +35 -23
- package/src/fuel/global-processor.ts +3 -3
- package/src/fuel/network.ts +5 -5
- package/src/fuel/types.ts +10 -4
- package/src/iota/context.ts +8 -7
- package/src/iota/iota-object-processor-template.ts +25 -15
- package/src/iota/iota-object-processor.ts +33 -22
- package/src/iota/iota-plugin-part.ts +41 -34
- package/src/iota/iota-processor.ts +25 -17
- package/src/iota/network.ts +6 -6
- package/src/move/filter.ts +1 -1
- package/src/move/index.ts +1 -1
- package/src/solana/solana-context.ts +4 -3
- package/src/solana/solana-plugin.ts +27 -24
- package/src/solana/solana-processor.ts +14 -6
- package/src/store/cache.ts +22 -18
- package/src/store/convert.ts +68 -104
- package/src/store/decorators.ts +3 -2
- package/src/store/store.ts +30 -22
- package/src/store/types.ts +24 -33
- package/src/store/util.ts +13 -18
- package/src/sui/context.ts +8 -7
- package/src/sui/network.ts +12 -7
- package/src/sui/sui-object-processor-template.ts +25 -15
- package/src/sui/sui-object-processor.ts +50 -28
- package/src/sui/sui-plugin-part.ts +41 -34
- package/src/sui/sui-plugin.ts +49 -47
- package/src/sui/sui-processor.ts +28 -19
- package/src/sui/to-client-types.ts +75 -0
- package/src/testing/aptos-facet.ts +18 -11
- package/src/testing/cosmos-facet.ts +10 -6
- package/src/testing/eth-facet.ts +40 -18
- package/src/testing/fuel-facet.ts +28 -18
- package/src/testing/iota-facet.ts +32 -20
- package/src/testing/memory-database.ts +126 -88
- package/src/testing/metric-utils.ts +15 -14
- package/src/testing/solana-facet.ts +11 -6
- package/src/testing/sui-facet.ts +30 -20
- package/src/testing/test-processor-server.ts +170 -80
- package/src/testing/test-provider.ts +1 -1
- package/src/utils/price.ts +20 -13
|
@@ -96,7 +96,7 @@ export function generateBoundFunctionCallEncoder(fn, includeArgTypes) {
|
|
|
96
96
|
${declName ?? fn.name}(${generateInputTypes(fn.inputs, {
|
|
97
97
|
useStructs: true
|
|
98
98
|
})}overrides?: Overrides): EthCallParam {
|
|
99
|
-
return this.view.encodeCall.${declName}(${fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''}{chainId: this.context.chainId.toString(), address: this.context.address, blockTag: this.context.getBlockTag(overrides)})
|
|
99
|
+
return this.view.encodeCall.${declName}(${fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''}create(EthCallContextSchema, {chainId: this.context.chainId.toString(), address: this.context.address, blockTag: this.context.getBlockTag(overrides)}))
|
|
100
100
|
}
|
|
101
101
|
`
|
|
102
102
|
];
|
package/lib/eth/context.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseContract, Overrides } from 'ethers';
|
|
2
2
|
import { LogParams, BlockParams, TransactionReceiptParams, TransactionResponseParams } from 'ethers/providers';
|
|
3
|
-
import { EthCallContext, PreparedData, RecordMetaData } from '@sentio/protos';
|
|
3
|
+
import { type EthCallContext, type PreparedData, type RecordMetaData } from '@sentio/protos';
|
|
4
4
|
import { Trace } from './eth.js';
|
|
5
5
|
import { Labels } from '../core/index.js';
|
|
6
6
|
import { BaseContext } from '../core/base-context.js';
|
package/lib/eth/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/eth/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/eth/context.ts"],"names":[],"mappings":"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"}
|
package/lib/eth/context.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { allowNull } from 'ethers/providers';
|
|
2
|
+
import { getNumber } from 'ethers/utils';
|
|
3
|
+
import { EthCallContextSchema, RecordMetaDataSchema } from '@sentio/protos';
|
|
4
|
+
import { create } from '@bufbuild/protobuf';
|
|
1
5
|
import { normalizeLabels } from '../core/index.js';
|
|
2
6
|
import { BaseContext } from '../core/base-context.js';
|
|
3
7
|
export class EthContext extends BaseContext {
|
|
@@ -43,7 +47,7 @@ export class EthContext extends BaseContext {
|
|
|
43
47
|
}
|
|
44
48
|
getMetaDataInternal(name, labels) {
|
|
45
49
|
if (this.log) {
|
|
46
|
-
return {
|
|
50
|
+
return create(RecordMetaDataSchema, {
|
|
47
51
|
address: this.address,
|
|
48
52
|
contractName: this.getContractName(),
|
|
49
53
|
blockNumber: BigInt(this.blockNumber),
|
|
@@ -53,23 +57,25 @@ export class EthContext extends BaseContext {
|
|
|
53
57
|
chainId: this.chainId,
|
|
54
58
|
name: name,
|
|
55
59
|
labels: normalizeLabels(labels)
|
|
56
|
-
};
|
|
60
|
+
});
|
|
57
61
|
}
|
|
58
62
|
if (this.trace) {
|
|
59
|
-
return {
|
|
63
|
+
return create(RecordMetaDataSchema, {
|
|
60
64
|
address: this.address,
|
|
61
65
|
contractName: this.getContractName(),
|
|
62
66
|
blockNumber: BigInt(this.blockNumber),
|
|
63
|
-
|
|
67
|
+
// Traces are used as a raw `as Trace` cast (no Formatted wrapper), so transactionPosition
|
|
68
|
+
// may be a hex string from raw RPC; coerce for the int32 field (default 0 when absent).
|
|
69
|
+
transactionIndex: allowNull(getNumber, 0)(this.trace.transactionPosition),
|
|
64
70
|
transactionHash: this.transactionHash || '',
|
|
65
71
|
logIndex: -1,
|
|
66
72
|
chainId: this.chainId.toString(),
|
|
67
73
|
name: name,
|
|
68
74
|
labels: normalizeLabels(labels)
|
|
69
|
-
};
|
|
75
|
+
});
|
|
70
76
|
}
|
|
71
77
|
if (this.transaction) {
|
|
72
|
-
return {
|
|
78
|
+
return create(RecordMetaDataSchema, {
|
|
73
79
|
address: this.address,
|
|
74
80
|
contractName: this.getContractName(),
|
|
75
81
|
blockNumber: BigInt(this.blockNumber),
|
|
@@ -79,10 +85,10 @@ export class EthContext extends BaseContext {
|
|
|
79
85
|
chainId: this.chainId.toString(),
|
|
80
86
|
name: name,
|
|
81
87
|
labels: normalizeLabels(labels)
|
|
82
|
-
};
|
|
88
|
+
});
|
|
83
89
|
}
|
|
84
90
|
if (this.block) {
|
|
85
|
-
return {
|
|
91
|
+
return create(RecordMetaDataSchema, {
|
|
86
92
|
address: this.address,
|
|
87
93
|
contractName: this.getContractName(),
|
|
88
94
|
blockNumber: BigInt(this.blockNumber),
|
|
@@ -92,7 +98,7 @@ export class EthContext extends BaseContext {
|
|
|
92
98
|
chainId: this.chainId.toString(),
|
|
93
99
|
name: name,
|
|
94
100
|
labels: normalizeLabels(labels)
|
|
95
|
-
};
|
|
101
|
+
});
|
|
96
102
|
}
|
|
97
103
|
throw new Error("Invaid ctx argument can't happen");
|
|
98
104
|
}
|
|
@@ -105,11 +111,11 @@ export class EthContext extends BaseContext {
|
|
|
105
111
|
return blockTagWithOverride;
|
|
106
112
|
}
|
|
107
113
|
getEthCallContext() {
|
|
108
|
-
return {
|
|
114
|
+
return create(EthCallContextSchema, {
|
|
109
115
|
chainId: this.chainId,
|
|
110
116
|
blockTag: '0x' + this.blockNumber.toString(16),
|
|
111
117
|
address: this.address
|
|
112
|
-
};
|
|
118
|
+
});
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
121
|
export class AccountContext extends EthContext {
|
package/lib/eth/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/eth/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/eth/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth-plugin.d.ts","sourceRoot":"","sources":["../../src/eth/eth-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"eth-plugin.d.ts","sourceRoot":"","sources":["../../src/eth/eth-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,MAAM,EAAiC,MAAM,iBAAiB,CAAA;AAExH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAGL,WAAW,EACX,WAAW,EACX,YAAY,EAIZ,YAAY,EAGZ,qBAAqB,EACrB,aAAa,EACb,gCAAgC,EAEhC,YAAY,EAIb,MAAM,gBAAgB,CAAA;AAWvB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,qBAAa,SAAU,SAAQ,MAAM;IACnC,IAAI,EAAE,MAAM,CAAc;IAC1B,eAAe,kBAAwB;IAEvC,gBAAgB,0BAAgC;IAE1C,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,EAAE,MAAM;IAsSlE,iBAAiB,gBAAmG;IAEpH,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAgB9F,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAwC1E,KAAK,CAAC,OAAO,EAAE,YAAY;IA6B3B,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBhG,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBlG,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAsBlG,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAwB/G"}
|
package/lib/eth/eth-plugin.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { errorString,
|
|
1
|
+
import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime';
|
|
2
|
+
import { getProvider } from './provider.js';
|
|
2
3
|
import { PartitionHandlerManager } from '../core/index.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { AccountConfigSchema, ContractConfigSchema, HandlerType, LogFilterSchema, LogHandlerConfigSchema, OnIntervalConfigSchema, PreprocessResultSchema, ProcessStreamResponse_PartitionsSchema, TopicSchema, TraceHandlerConfigSchema, TransactionHandlerConfigSchema } from '@sentio/protos';
|
|
5
|
+
import { create } from '@bufbuild/protobuf';
|
|
6
|
+
import { ConnectError, Code } from '@connectrpc/connect';
|
|
5
7
|
import { EthProcessorState } from './binds.js';
|
|
6
8
|
import { AccountProcessorState } from './account-processor-state.js';
|
|
7
9
|
import { ProcessorTemplateProcessorState } from './base-processor-template.js';
|
|
@@ -36,7 +38,7 @@ export class EthPlugin extends Plugin {
|
|
|
36
38
|
const provider = getProvider(chainId);
|
|
37
39
|
const startBlock = await timeOrBlockToBlockNumber(provider, processor.config.start);
|
|
38
40
|
const endBlock = processor.config.end ? await timeOrBlockToBlockNumber(provider, processor.config.end) : undefined;
|
|
39
|
-
const contractConfig =
|
|
41
|
+
const contractConfig = create(ContractConfigSchema, {
|
|
40
42
|
processorType: USER_PROCESSOR,
|
|
41
43
|
contract: {
|
|
42
44
|
name: processor.config.name,
|
|
@@ -52,7 +54,7 @@ export class EthPlugin extends Plugin {
|
|
|
52
54
|
const handlerId = this.handlerRegister.register(blockHandler.handler, chainId);
|
|
53
55
|
this.partitionManager.registerPartitionHandler(HandlerType.ETH_BLOCK, handlerId, blockHandler.partitionHandler);
|
|
54
56
|
// TODO wrap the block handler into one
|
|
55
|
-
contractConfig.intervalConfigs.push({
|
|
57
|
+
contractConfig.intervalConfigs.push(create(OnIntervalConfigSchema, {
|
|
56
58
|
slot: 0,
|
|
57
59
|
slotInterval: blockHandler.blockInterval,
|
|
58
60
|
minutes: 0,
|
|
@@ -60,19 +62,19 @@ export class EthPlugin extends Plugin {
|
|
|
60
62
|
handlerId: handlerId,
|
|
61
63
|
handlerName: blockHandler.handlerName,
|
|
62
64
|
fetchConfig: blockHandler.fetchConfig
|
|
63
|
-
});
|
|
65
|
+
}));
|
|
64
66
|
}
|
|
65
67
|
// Step 2. Prepare all trace handlers
|
|
66
68
|
for (const traceHandler of processor.traceHandlers) {
|
|
67
69
|
const handlerId = this.handlerRegister.register(traceHandler.handler, chainId);
|
|
68
70
|
this.partitionManager.registerPartitionHandler(HandlerType.ETH_TRACE, handlerId, traceHandler.partitionHandler);
|
|
69
71
|
for (const signature of traceHandler.signatures) {
|
|
70
|
-
contractConfig.traceConfigs.push({
|
|
72
|
+
contractConfig.traceConfigs.push(create(TraceHandlerConfigSchema, {
|
|
71
73
|
signature: signature,
|
|
72
74
|
handlerId: handlerId,
|
|
73
75
|
handlerName: traceHandler.handlerName,
|
|
74
76
|
fetchConfig: traceHandler.fetchConfig
|
|
75
|
-
});
|
|
77
|
+
}));
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
// Step 3. Prepare all the event handlers
|
|
@@ -80,22 +82,23 @@ export class EthPlugin extends Plugin {
|
|
|
80
82
|
// associate id with filter
|
|
81
83
|
const handlerId = this.handlerRegister.register(eventsHandler.handler, chainId);
|
|
82
84
|
this.partitionManager.registerPartitionHandler(HandlerType.ETH_LOG, handlerId, eventsHandler.partitionHandler);
|
|
83
|
-
const logConfig = {
|
|
85
|
+
const logConfig = create(LogHandlerConfigSchema, {
|
|
84
86
|
handlerId: handlerId,
|
|
85
87
|
handlerName: eventsHandler.handlerName,
|
|
86
88
|
filters: [],
|
|
87
89
|
fetchConfig: eventsHandler.fetchConfig
|
|
88
|
-
};
|
|
90
|
+
});
|
|
89
91
|
for (const filter of eventsHandler.filters) {
|
|
90
92
|
const topics = await filter.getTopicFilter();
|
|
91
93
|
// if (!filter.topics) {
|
|
92
|
-
// throw new
|
|
94
|
+
// throw new ConnectError('Topic should not be null', Code.InvalidArgument)
|
|
93
95
|
// }
|
|
94
|
-
const logFilter = {
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
const logFilter = create(LogFilterSchema, {
|
|
97
|
+
addressOrType: contractConfig.contract?.address
|
|
98
|
+
? { case: 'address', value: validateAndNormalizeAddress(contractConfig.contract.address) }
|
|
99
|
+
: undefined,
|
|
97
100
|
topics: []
|
|
98
|
-
};
|
|
101
|
+
});
|
|
99
102
|
for (const ts of topics) {
|
|
100
103
|
let hashes = [];
|
|
101
104
|
if (Array.isArray(ts)) {
|
|
@@ -104,7 +107,7 @@ export class EthPlugin extends Plugin {
|
|
|
104
107
|
else if (ts) {
|
|
105
108
|
hashes.push(ts);
|
|
106
109
|
}
|
|
107
|
-
logFilter.topics.push({ hashes: hashes });
|
|
110
|
+
logFilter.topics.push(create(TopicSchema, { hashes: hashes }));
|
|
108
111
|
}
|
|
109
112
|
logConfig.filters.push(logFilter);
|
|
110
113
|
}
|
|
@@ -129,7 +132,7 @@ export class EthPlugin extends Plugin {
|
|
|
129
132
|
startBlock = processor.config.start?.block != undefined ? BigInt(processor.config.start.block) : undefined;
|
|
130
133
|
endBlock = processor.config.end?.block != undefined ? BigInt(processor.config.end.block) : undefined;
|
|
131
134
|
}
|
|
132
|
-
const contractConfig =
|
|
135
|
+
const contractConfig = create(ContractConfigSchema, {
|
|
133
136
|
processorType: USER_PROCESSOR,
|
|
134
137
|
contract: {
|
|
135
138
|
name: processor.config.name,
|
|
@@ -142,7 +145,7 @@ export class EthPlugin extends Plugin {
|
|
|
142
145
|
});
|
|
143
146
|
for (const blockHandler of processor.blockHandlers) {
|
|
144
147
|
const handlerId = this.handlerRegister.register(blockHandler.handler, chainId);
|
|
145
|
-
contractConfig.intervalConfigs.push({
|
|
148
|
+
contractConfig.intervalConfigs.push(create(OnIntervalConfigSchema, {
|
|
146
149
|
slot: 0,
|
|
147
150
|
slotInterval: blockHandler.blockInterval,
|
|
148
151
|
minutes: 0,
|
|
@@ -150,58 +153,61 @@ export class EthPlugin extends Plugin {
|
|
|
150
153
|
handlerId: handlerId,
|
|
151
154
|
handlerName: blockHandler.handlerName,
|
|
152
155
|
fetchConfig: blockHandler.fetchConfig
|
|
153
|
-
});
|
|
156
|
+
}));
|
|
154
157
|
}
|
|
155
158
|
for (const transactionHandler of processor.transactionHandler) {
|
|
156
159
|
const handlerId = this.handlerRegister.register(transactionHandler.handler, chainId);
|
|
157
160
|
this.partitionManager.registerPartitionHandler(HandlerType.ETH_TRANSACTION, handlerId, transactionHandler.partitionHandler);
|
|
158
|
-
contractConfig.transactionConfig.push({
|
|
161
|
+
contractConfig.transactionConfig.push(create(TransactionHandlerConfigSchema, {
|
|
159
162
|
handlerId: handlerId,
|
|
160
163
|
handlerName: transactionHandler.handlerName,
|
|
161
164
|
fetchConfig: transactionHandler.fetchConfig
|
|
162
|
-
});
|
|
165
|
+
}));
|
|
163
166
|
}
|
|
164
167
|
for (const traceHandler of processor.traceHandlers) {
|
|
165
168
|
const handlerId = this.handlerRegister.register(traceHandler.handler, chainId);
|
|
166
169
|
for (const signature of traceHandler.signatures) {
|
|
167
|
-
contractConfig.traceConfigs.push({
|
|
170
|
+
contractConfig.traceConfigs.push(create(TraceHandlerConfigSchema, {
|
|
168
171
|
signature: signature,
|
|
169
172
|
handlerId: handlerId,
|
|
170
173
|
handlerName: traceHandler.handlerName,
|
|
171
174
|
fetchConfig: traceHandler.fetchConfig
|
|
172
|
-
});
|
|
175
|
+
}));
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
for (const eventsHandler of processor.eventHandlers) {
|
|
176
179
|
// associate id with filter
|
|
177
180
|
const handlerId = this.handlerRegister.register(eventsHandler.handler, processor.getChainId());
|
|
178
|
-
const logConfig = {
|
|
181
|
+
const logConfig = create(LogHandlerConfigSchema, {
|
|
179
182
|
handlerId: handlerId,
|
|
180
183
|
handlerName: eventsHandler.handlerName,
|
|
181
184
|
filters: [],
|
|
182
185
|
fetchConfig: eventsHandler.fetchConfig
|
|
183
|
-
};
|
|
186
|
+
});
|
|
184
187
|
if (!eventsHandler.filters || eventsHandler.filters.length === 0) {
|
|
185
188
|
// if no filter, then we assume all logs
|
|
186
|
-
logConfig.filters.push({
|
|
189
|
+
logConfig.filters.push(create(LogFilterSchema, {
|
|
187
190
|
topics: []
|
|
188
|
-
});
|
|
191
|
+
}));
|
|
189
192
|
}
|
|
190
193
|
else {
|
|
191
194
|
for (const filter of eventsHandler.filters) {
|
|
192
195
|
const topics = await filter.getTopicFilter();
|
|
193
196
|
// if (!filter.topics) {
|
|
194
|
-
// throw new
|
|
197
|
+
// throw new ConnectError('Topic should not be null', Code.InvalidArgument)
|
|
195
198
|
// }
|
|
196
199
|
let address = undefined;
|
|
197
200
|
if (filter.address) {
|
|
198
201
|
address = filter.address.toString();
|
|
199
202
|
}
|
|
200
|
-
const logFilter = {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
+
const logFilter = create(LogFilterSchema, {
|
|
204
|
+
addressOrType: filter.addressType != undefined
|
|
205
|
+
? { case: 'addressType', value: filter.addressType }
|
|
206
|
+
: address
|
|
207
|
+
? { case: 'address', value: validateAndNormalizeAddress(address) }
|
|
208
|
+
: undefined,
|
|
203
209
|
topics: []
|
|
204
|
-
};
|
|
210
|
+
});
|
|
205
211
|
for (const ts of topics) {
|
|
206
212
|
let hashes = [];
|
|
207
213
|
if (Array.isArray(ts)) {
|
|
@@ -210,7 +216,7 @@ export class EthPlugin extends Plugin {
|
|
|
210
216
|
else if (ts) {
|
|
211
217
|
hashes.push(ts);
|
|
212
218
|
}
|
|
213
|
-
logFilter.topics.push({ hashes: hashes });
|
|
219
|
+
logFilter.topics.push(create(TopicSchema, { hashes: hashes }));
|
|
214
220
|
}
|
|
215
221
|
logConfig.filters.push(logFilter);
|
|
216
222
|
}
|
|
@@ -224,7 +230,7 @@ export class EthPlugin extends Plugin {
|
|
|
224
230
|
if (forChainId !== undefined && forChainId !== processor.getChainId().toString()) {
|
|
225
231
|
continue;
|
|
226
232
|
}
|
|
227
|
-
const accountConfig =
|
|
233
|
+
const accountConfig = create(AccountConfigSchema, {
|
|
228
234
|
address: validateAndNormalizeAddress(processor.config.address),
|
|
229
235
|
chainId: processor.getChainId().toString(),
|
|
230
236
|
startBlock: processor.config.startBlock ? BigInt(processor.config.startBlock) : 0n
|
|
@@ -233,23 +239,26 @@ export class EthPlugin extends Plugin {
|
|
|
233
239
|
for (const eventsHandler of processor.eventHandlers) {
|
|
234
240
|
// associate id with filter
|
|
235
241
|
const handlerId = this.handlerRegister.register(eventsHandler.handler, processor.getChainId());
|
|
236
|
-
const logConfig = {
|
|
242
|
+
const logConfig = create(LogHandlerConfigSchema, {
|
|
237
243
|
handlerId: handlerId,
|
|
238
244
|
handlerName: eventsHandler.handlerName,
|
|
239
245
|
filters: [],
|
|
240
246
|
fetchConfig: eventsHandler.fetchConfig
|
|
241
|
-
};
|
|
247
|
+
});
|
|
242
248
|
for (const filter of eventsHandler.filters) {
|
|
243
249
|
const topics = await filter.getTopicFilter();
|
|
244
250
|
let address = undefined;
|
|
245
251
|
if (filter.address) {
|
|
246
252
|
address = filter.address.toString();
|
|
247
253
|
}
|
|
248
|
-
const logFilter = {
|
|
249
|
-
|
|
250
|
-
|
|
254
|
+
const logFilter = create(LogFilterSchema, {
|
|
255
|
+
addressOrType: filter.addressType
|
|
256
|
+
? { case: 'addressType', value: filter.addressType }
|
|
257
|
+
: address
|
|
258
|
+
? { case: 'address', value: validateAndNormalizeAddress(address) }
|
|
259
|
+
: undefined,
|
|
251
260
|
topics: []
|
|
252
|
-
};
|
|
261
|
+
});
|
|
253
262
|
for (const ts of topics) {
|
|
254
263
|
let hashes = [];
|
|
255
264
|
if (Array.isArray(ts)) {
|
|
@@ -258,7 +267,7 @@ export class EthPlugin extends Plugin {
|
|
|
258
267
|
else if (ts) {
|
|
259
268
|
hashes.push(ts);
|
|
260
269
|
}
|
|
261
|
-
logFilter.topics.push({ hashes: hashes });
|
|
270
|
+
logFilter.topics.push(create(TopicSchema, { hashes: hashes }));
|
|
262
271
|
}
|
|
263
272
|
logConfig.filters.push(logFilter);
|
|
264
273
|
}
|
|
@@ -282,43 +291,43 @@ export class EthPlugin extends Plugin {
|
|
|
282
291
|
case HandlerType.ETH_TRANSACTION:
|
|
283
292
|
return this.processTransaction(request, preparedData);
|
|
284
293
|
default:
|
|
285
|
-
throw new
|
|
294
|
+
throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument);
|
|
286
295
|
}
|
|
287
296
|
}
|
|
288
297
|
async partition(request) {
|
|
289
298
|
let data;
|
|
290
299
|
switch (request.handlerType) {
|
|
291
300
|
case HandlerType.ETH_LOG:
|
|
292
|
-
if (
|
|
293
|
-
throw new
|
|
301
|
+
if (request.data?.value.case !== 'ethLog' || !request.data.value.value) {
|
|
302
|
+
throw new ConnectError("ethLog can't be empty", Code.InvalidArgument);
|
|
294
303
|
}
|
|
295
|
-
data = request.data.
|
|
304
|
+
data = request.data.value.value;
|
|
296
305
|
break;
|
|
297
306
|
case HandlerType.ETH_TRACE:
|
|
298
|
-
if (
|
|
299
|
-
throw new
|
|
307
|
+
if (request.data?.value.case !== 'ethTrace' || !request.data.value.value) {
|
|
308
|
+
throw new ConnectError("ethTrace can't be empty", Code.InvalidArgument);
|
|
300
309
|
}
|
|
301
|
-
data = request.data.
|
|
310
|
+
data = request.data.value.value;
|
|
302
311
|
break;
|
|
303
312
|
case HandlerType.ETH_BLOCK:
|
|
304
|
-
if (
|
|
305
|
-
throw new
|
|
313
|
+
if (request.data?.value.case !== 'ethBlock' || !request.data.value.value) {
|
|
314
|
+
throw new ConnectError("ethBlock can't be empty", Code.InvalidArgument);
|
|
306
315
|
}
|
|
307
|
-
data = request.data.
|
|
316
|
+
data = request.data.value.value;
|
|
308
317
|
break;
|
|
309
318
|
case HandlerType.ETH_TRANSACTION:
|
|
310
|
-
if (
|
|
311
|
-
throw new
|
|
319
|
+
if (request.data?.value.case !== 'ethTransaction' || !request.data.value.value) {
|
|
320
|
+
throw new ConnectError("ethTransaction can't be empty", Code.InvalidArgument);
|
|
312
321
|
}
|
|
313
|
-
data = request.data.
|
|
322
|
+
data = request.data.value.value;
|
|
314
323
|
break;
|
|
315
324
|
default:
|
|
316
|
-
throw new
|
|
325
|
+
throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument);
|
|
317
326
|
}
|
|
318
327
|
const partitions = await this.partitionManager.processPartitionForHandlerType(request.handlerType, request.handlerIds, data);
|
|
319
|
-
return {
|
|
328
|
+
return create(ProcessStreamResponse_PartitionsSchema, {
|
|
320
329
|
partitions
|
|
321
|
-
};
|
|
330
|
+
});
|
|
322
331
|
}
|
|
323
332
|
async start(request) {
|
|
324
333
|
const allowedChainIds = new Set(Object.values(EthChainId));
|
|
@@ -328,10 +337,10 @@ export class EthPlugin extends Plugin {
|
|
|
328
337
|
}
|
|
329
338
|
const template = ProcessorTemplateProcessorState.INSTANCE.getValues()[instance.templateId];
|
|
330
339
|
if (!template) {
|
|
331
|
-
throw new
|
|
340
|
+
throw new ConnectError('Invalid template contract:' + instance, Code.InvalidArgument);
|
|
332
341
|
}
|
|
333
342
|
if (!instance.contract) {
|
|
334
|
-
throw new
|
|
343
|
+
throw new ConnectError('Contract Empty from:' + instance, Code.InvalidArgument);
|
|
335
344
|
}
|
|
336
345
|
const ctx = new NoopContext(instance.contract.chainId);
|
|
337
346
|
template.startInstance({
|
|
@@ -344,16 +353,16 @@ export class EthPlugin extends Plugin {
|
|
|
344
353
|
}
|
|
345
354
|
}
|
|
346
355
|
async processLog(request, preparedData) {
|
|
347
|
-
if (
|
|
348
|
-
throw new
|
|
356
|
+
if (request.data?.value.case !== 'ethLog' || !request.data.value.value.rawLog) {
|
|
357
|
+
throw new ConnectError("Log can't be null", Code.InvalidArgument);
|
|
349
358
|
}
|
|
350
|
-
const ethLog = request.data.
|
|
359
|
+
const ethLog = request.data.value.value;
|
|
351
360
|
const promises = [];
|
|
352
361
|
for (const handlerId of request.handlerIds) {
|
|
353
362
|
const handler = this.handlerRegister.getHandlerById(request.chainId, handlerId);
|
|
354
363
|
const promise = handler(ethLog, preparedData).catch((e) => {
|
|
355
364
|
console.error('error processing log: ', e);
|
|
356
|
-
throw new
|
|
365
|
+
throw new ConnectError('error processing log: ' + ethLog.rawLog + '\n' + errorString(e), Code.Internal);
|
|
357
366
|
});
|
|
358
367
|
if (GLOBAL_CONFIG.execution.sequential) {
|
|
359
368
|
await promise;
|
|
@@ -363,17 +372,17 @@ export class EthPlugin extends Plugin {
|
|
|
363
372
|
return mergeProcessResults(await Promise.all(promises));
|
|
364
373
|
}
|
|
365
374
|
async processTrace(binding, preparedData) {
|
|
366
|
-
if (
|
|
367
|
-
throw new
|
|
375
|
+
if (binding.data?.value.case !== 'ethTrace' || !binding.data.value.value.rawTrace) {
|
|
376
|
+
throw new ConnectError("Trace can't be null", Code.InvalidArgument);
|
|
368
377
|
}
|
|
369
|
-
const ethTrace = binding.data.
|
|
378
|
+
const ethTrace = binding.data.value.value;
|
|
370
379
|
const promises = [];
|
|
371
380
|
for (const handlerId of binding.handlerIds) {
|
|
372
381
|
const promise = this.handlerRegister
|
|
373
382
|
.getHandlerById(binding.chainId, handlerId)(ethTrace, preparedData)
|
|
374
383
|
.catch((e) => {
|
|
375
384
|
console.error('error processing trace: ', e);
|
|
376
|
-
throw new
|
|
385
|
+
throw new ConnectError('error processing trace: ' + ethTrace.rawTrace + '\n' + errorString(e), Code.Internal);
|
|
377
386
|
});
|
|
378
387
|
if (GLOBAL_CONFIG.execution.sequential) {
|
|
379
388
|
await promise;
|
|
@@ -383,17 +392,17 @@ export class EthPlugin extends Plugin {
|
|
|
383
392
|
return mergeProcessResults(await Promise.all(promises));
|
|
384
393
|
}
|
|
385
394
|
async processBlock(binding, preparedData) {
|
|
386
|
-
if (
|
|
387
|
-
throw new
|
|
395
|
+
if (binding.data?.value.case !== 'ethBlock' || !binding.data.value.value.rawBlock) {
|
|
396
|
+
throw new ConnectError("Block can't be empty", Code.InvalidArgument);
|
|
388
397
|
}
|
|
389
|
-
const ethBlock = binding.data.
|
|
398
|
+
const ethBlock = binding.data.value.value;
|
|
390
399
|
const promises = [];
|
|
391
400
|
for (const handlerId of binding.handlerIds) {
|
|
392
401
|
const promise = this.handlerRegister
|
|
393
402
|
.getHandlerById(binding.chainId, handlerId)(ethBlock, preparedData)
|
|
394
403
|
.catch((e) => {
|
|
395
404
|
console.error('error processing block: ', e);
|
|
396
|
-
throw new
|
|
405
|
+
throw new ConnectError('error processing block: ' + errorString(e), Code.Internal);
|
|
397
406
|
});
|
|
398
407
|
if (GLOBAL_CONFIG.execution.sequential) {
|
|
399
408
|
await promise;
|
|
@@ -403,16 +412,16 @@ export class EthPlugin extends Plugin {
|
|
|
403
412
|
return mergeProcessResults(await Promise.all(promises));
|
|
404
413
|
}
|
|
405
414
|
async processTransaction(binding, preparedData) {
|
|
406
|
-
if (
|
|
407
|
-
throw new
|
|
415
|
+
if (binding.data?.value.case !== 'ethTransaction' || !binding.data.value.value.rawTransaction) {
|
|
416
|
+
throw new ConnectError("transaction can't be null", Code.InvalidArgument);
|
|
408
417
|
}
|
|
409
|
-
const ethTransaction = binding.data.
|
|
418
|
+
const ethTransaction = binding.data.value.value;
|
|
410
419
|
const promises = [];
|
|
411
420
|
for (const handlerId of binding.handlerIds) {
|
|
412
421
|
const promise = this.handlerRegister
|
|
413
422
|
.getHandlerById(binding.chainId, handlerId)(ethTransaction, preparedData)
|
|
414
423
|
.catch((e) => {
|
|
415
|
-
throw new
|
|
424
|
+
throw new ConnectError('error processing transaction: ' + ethTransaction.rawTransaction + '\n' + errorString(e), Code.Internal);
|
|
416
425
|
});
|
|
417
426
|
if (GLOBAL_CONFIG.execution.sequential) {
|
|
418
427
|
await promise;
|
|
@@ -432,7 +441,7 @@ class NoopContext extends EthContext {
|
|
|
432
441
|
}
|
|
433
442
|
}
|
|
434
443
|
function mergePreprocessResults(results) {
|
|
435
|
-
const res = { ethCallParams: [] };
|
|
444
|
+
const res = create(PreprocessResultSchema, { ethCallParams: [] });
|
|
436
445
|
for (const r of results) {
|
|
437
446
|
res.ethCallParams = res.ethCallParams.concat(r.ethCallParams);
|
|
438
447
|
}
|