@sentio/sdk 4.0.0-rc.1 → 4.0.0-rc.3
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 +8 -6
- 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/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 -26
- 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 +83 -75
- 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/index.d.ts +1 -1
- package/lib/eth/index.d.ts.map +1 -1
- package/lib/eth/index.js +0 -1
- package/lib/eth/index.js.map +1 -1
- 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/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 +2 -2
- 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/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 +23 -16
- 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 +18 -17
- package/lib/sui/sui-processor.js.map +1 -1
- 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 +1453 -16
- package/lib/testing/test-processor-server.d.ts.map +1 -1
- package/lib/testing/test-processor-server.js +108 -45
- package/lib/testing/test-processor-server.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 +8 -7
- package/src/aptos/data.ts +4 -4
- package/src/core/base-context.ts +19 -12
- package/src/core/core-plugin.ts +10 -7
- package/src/core/event-logger.ts +63 -34
- 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 +135 -118
- package/src/eth/eth.ts +46 -32
- package/src/eth/index.ts +1 -1
- 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/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 +2 -2
- 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/sui-object-processor-template.ts +25 -15
- package/src/sui/sui-object-processor.ts +33 -22
- package/src/sui/sui-plugin-part.ts +41 -34
- package/src/sui/sui-plugin.ts +49 -47
- package/src/sui/sui-processor.ts +25 -17
- 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 +169 -79
- package/src/utils/price.ts +20 -13
package/src/sui/sui-processor.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
type Data_SuiCall,
|
|
3
|
+
type Data_SuiEvent,
|
|
4
|
+
type Data_SuiObjectChange,
|
|
5
|
+
type MoveFetchConfig,
|
|
6
|
+
MoveFetchConfigSchema,
|
|
7
|
+
timestampDate
|
|
8
|
+
} from '@sentio/protos'
|
|
9
|
+
import { create } from '@bufbuild/protobuf'
|
|
2
10
|
import { ListStateStorage } from '@sentio/runtime'
|
|
3
11
|
import { SuiNetwork } from './network.js'
|
|
4
|
-
import {
|
|
12
|
+
import { ConnectError, Code } from '@connectrpc/connect'
|
|
5
13
|
import { SuiContext, SuiObjectChangeContext } from './context.js'
|
|
6
14
|
import type { SuiObjectChange } from '@mysten/sui/jsonRpc'
|
|
7
15
|
import type { GrpcTypes } from '@mysten/sui/grpc'
|
|
@@ -23,11 +31,11 @@ import { Required } from 'utility-types'
|
|
|
23
31
|
import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
|
|
24
32
|
import { HandlerOptions } from './models.js'
|
|
25
33
|
|
|
26
|
-
export const DEFAULT_FETCH_CONFIG: MoveFetchConfig = {
|
|
34
|
+
export const DEFAULT_FETCH_CONFIG: MoveFetchConfig = create(MoveFetchConfigSchema, {
|
|
27
35
|
resourceChanges: false,
|
|
28
36
|
allEvents: true,
|
|
29
37
|
inputs: true
|
|
30
|
-
}
|
|
38
|
+
})
|
|
31
39
|
|
|
32
40
|
export type IndexConfigure = Required<SuiBindOptions, 'startCheckpoint' | 'network'>
|
|
33
41
|
|
|
@@ -82,7 +90,7 @@ export class SuiBaseProcessor {
|
|
|
82
90
|
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
|
83
91
|
): SuiBaseProcessor {
|
|
84
92
|
let _filters: EventFilter[] = []
|
|
85
|
-
const _fetchConfig =
|
|
93
|
+
const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
|
86
94
|
|
|
87
95
|
if (Array.isArray(filter)) {
|
|
88
96
|
_filters = filter
|
|
@@ -99,7 +107,7 @@ export class SuiBaseProcessor {
|
|
|
99
107
|
handlerName: getHandlerName(),
|
|
100
108
|
handler: async function (data) {
|
|
101
109
|
if (!data.rawTransaction) {
|
|
102
|
-
throw new
|
|
110
|
+
throw new ConnectError('event is null', Code.InvalidArgument)
|
|
103
111
|
}
|
|
104
112
|
const txn = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
|
|
105
113
|
|
|
@@ -111,7 +119,7 @@ export class SuiBaseProcessor {
|
|
|
111
119
|
processor.moduleName,
|
|
112
120
|
processor.config.network,
|
|
113
121
|
processor.config.address,
|
|
114
|
-
data.timestamp
|
|
122
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
115
123
|
data.slot,
|
|
116
124
|
txn,
|
|
117
125
|
idx,
|
|
@@ -145,7 +153,7 @@ export class SuiBaseProcessor {
|
|
|
145
153
|
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
|
146
154
|
): SuiBaseProcessor {
|
|
147
155
|
let _filters: FunctionNameAndCallFilter[] = []
|
|
148
|
-
const _fetchConfig =
|
|
156
|
+
const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
|
149
157
|
|
|
150
158
|
if (Array.isArray(filter)) {
|
|
151
159
|
_filters = filter
|
|
@@ -160,7 +168,7 @@ export class SuiBaseProcessor {
|
|
|
160
168
|
handlerName: getHandlerName(),
|
|
161
169
|
handler: async function (data) {
|
|
162
170
|
if (!data.rawTransaction) {
|
|
163
|
-
throw new
|
|
171
|
+
throw new ConnectError('call is null', Code.InvalidArgument)
|
|
164
172
|
}
|
|
165
173
|
const tx = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
|
|
166
174
|
|
|
@@ -168,7 +176,7 @@ export class SuiBaseProcessor {
|
|
|
168
176
|
processor.moduleName,
|
|
169
177
|
processor.config.network,
|
|
170
178
|
processor.config.address,
|
|
171
|
-
data.timestamp
|
|
179
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
172
180
|
data.slot,
|
|
173
181
|
tx,
|
|
174
182
|
0,
|
|
@@ -178,7 +186,7 @@ export class SuiBaseProcessor {
|
|
|
178
186
|
const calls = getMoveCalls(tx)
|
|
179
187
|
const programmableTx = getProgrammableTransaction(tx)
|
|
180
188
|
if (!programmableTx) {
|
|
181
|
-
throw new
|
|
189
|
+
throw new ConnectError('Unexpected getTransactionKind get empty', Code.InvalidArgument)
|
|
182
190
|
}
|
|
183
191
|
|
|
184
192
|
// TODO potential pass index
|
|
@@ -228,7 +236,7 @@ export class SuiBaseProcessor {
|
|
|
228
236
|
filter?: TransactionFilter,
|
|
229
237
|
handlerOptions?: HandlerOptions<MoveFetchConfig, GrpcTypes.ExecutedTransaction>
|
|
230
238
|
): this {
|
|
231
|
-
const _fetchConfig =
|
|
239
|
+
const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
|
232
240
|
|
|
233
241
|
const processor = this
|
|
234
242
|
|
|
@@ -236,7 +244,7 @@ export class SuiBaseProcessor {
|
|
|
236
244
|
handlerName: getHandlerName(),
|
|
237
245
|
handler: async function (data) {
|
|
238
246
|
if (!data.rawTransaction) {
|
|
239
|
-
throw new
|
|
247
|
+
throw new ConnectError('transaction is null', Code.InvalidArgument)
|
|
240
248
|
}
|
|
241
249
|
const tx = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
|
|
242
250
|
|
|
@@ -244,7 +252,7 @@ export class SuiBaseProcessor {
|
|
|
244
252
|
processor.moduleName,
|
|
245
253
|
processor.config.network,
|
|
246
254
|
processor.config.address,
|
|
247
|
-
data.timestamp
|
|
255
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
248
256
|
data.slot,
|
|
249
257
|
tx,
|
|
250
258
|
0,
|
|
@@ -275,7 +283,7 @@ export class SuiBaseProcessor {
|
|
|
275
283
|
type: string | string[]
|
|
276
284
|
): this {
|
|
277
285
|
if (this.config.network === SuiNetwork.TEST_NET) {
|
|
278
|
-
throw new
|
|
286
|
+
throw new ConnectError('object change not supported in testnet', Code.InvalidArgument)
|
|
279
287
|
}
|
|
280
288
|
const processor = this
|
|
281
289
|
this.objectChangeHandlers.push({
|
|
@@ -284,7 +292,7 @@ export class SuiBaseProcessor {
|
|
|
284
292
|
const ctx = new SuiObjectChangeContext(
|
|
285
293
|
processor.config.network,
|
|
286
294
|
processor.config.address,
|
|
287
|
-
data.timestamp
|
|
295
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
288
296
|
data.slot,
|
|
289
297
|
data.txDigest,
|
|
290
298
|
processor.config.baseLabels
|
|
@@ -316,7 +324,7 @@ export class SuiGlobalProcessor extends SuiBaseProcessor {
|
|
|
316
324
|
): this {
|
|
317
325
|
// TODO enable more strict check
|
|
318
326
|
// if (!filter.publicKeyPrefix || filter.publicKeyPrefix.length < 2) {
|
|
319
|
-
// throw new
|
|
327
|
+
// throw new ConnectError('restriction too low for global processor', Code.InvalidArgument)
|
|
320
328
|
// }
|
|
321
329
|
return super.onTransactionBlock(handler, filter, fetchConfig)
|
|
322
330
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UserTransactionResponse, EntryFunctionPayloadResponse } from '@aptos-labs/ts-sdk'
|
|
2
|
-
import { DataBinding, HandlerType } from '@sentio/protos'
|
|
2
|
+
import { type DataBinding, DataBindingSchema, HandlerType } from '@sentio/protos'
|
|
3
|
+
import { create } from '@bufbuild/protobuf'
|
|
3
4
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
4
5
|
import { AptosNetwork } from '../aptos/index.js'
|
|
5
6
|
import { parseMoveType, accountTypeString } from '../move/index.js'
|
|
@@ -40,16 +41,19 @@ export class AptosFacet {
|
|
|
40
41
|
for (const callConfig of config.moveCallConfigs) {
|
|
41
42
|
for (const callFilter of callConfig.filters) {
|
|
42
43
|
if (accountTypeString(config.contract.address) + '::' + callFilter.function === payload.function) {
|
|
43
|
-
return {
|
|
44
|
+
return create(DataBindingSchema, {
|
|
44
45
|
data: {
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
value: {
|
|
47
|
+
case: 'aptCall',
|
|
48
|
+
value: {
|
|
49
|
+
rawTransaction: JSON.stringify(transaction)
|
|
50
|
+
}
|
|
47
51
|
}
|
|
48
52
|
},
|
|
49
53
|
handlerIds: [callConfig.handlerId],
|
|
50
54
|
handlerType: HandlerType.APT_CALL,
|
|
51
55
|
chainId: network
|
|
52
|
-
}
|
|
56
|
+
})
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
}
|
|
@@ -81,18 +85,21 @@ export class AptosFacet {
|
|
|
81
85
|
accountTypeString(config.contract.address) + '::' + eventFilter.type ===
|
|
82
86
|
parseMoveType(event.type).qname
|
|
83
87
|
) {
|
|
84
|
-
return {
|
|
88
|
+
return create(DataBindingSchema, {
|
|
85
89
|
data: {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
value: {
|
|
91
|
+
case: 'aptEvent',
|
|
92
|
+
value: {
|
|
93
|
+
rawEvent: JSON.stringify(event),
|
|
94
|
+
eventIndex: idx,
|
|
95
|
+
rawTransaction: JSON.stringify(transaction)
|
|
96
|
+
}
|
|
90
97
|
}
|
|
91
98
|
},
|
|
92
99
|
handlerIds: [eventConfig.handlerId],
|
|
93
100
|
handlerType: HandlerType.APT_EVENT,
|
|
94
101
|
chainId: network
|
|
95
|
-
}
|
|
102
|
+
})
|
|
96
103
|
}
|
|
97
104
|
}
|
|
98
105
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
2
|
-
import { DataBinding, HandlerType } from '@sentio/protos'
|
|
2
|
+
import { type DataBinding, DataBindingSchema, HandlerType, timestampNow } from '@sentio/protos'
|
|
3
|
+
import { create } from '@bufbuild/protobuf'
|
|
3
4
|
import { CosmosNetwork } from '../cosmos/network.js'
|
|
4
5
|
|
|
5
6
|
export class CosmosFacet {
|
|
@@ -28,17 +29,20 @@ export class CosmosFacet {
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
for (const logConfig of config.cosmosLogConfigs) {
|
|
31
|
-
const binding = {
|
|
32
|
+
const binding = create(DataBindingSchema, {
|
|
32
33
|
data: {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
value: {
|
|
35
|
+
case: 'cosmosCall',
|
|
36
|
+
value: {
|
|
37
|
+
transaction,
|
|
38
|
+
timestamp: timestampNow()
|
|
39
|
+
}
|
|
36
40
|
}
|
|
37
41
|
},
|
|
38
42
|
handlerIds: [logConfig.handlerId],
|
|
39
43
|
handlerType: HandlerType.COSMOS_CALL,
|
|
40
44
|
chainId: network
|
|
41
|
-
}
|
|
45
|
+
})
|
|
42
46
|
|
|
43
47
|
const logFilters = logConfig.logFilters
|
|
44
48
|
for (const log of transaction.logs || []) {
|
package/src/testing/eth-facet.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
type DataBinding,
|
|
4
|
+
DataBindingSchema,
|
|
5
|
+
HandlerType,
|
|
6
|
+
type ProcessBindingResponse,
|
|
7
|
+
timestampNow
|
|
8
|
+
} from '@sentio/protos'
|
|
9
|
+
import { create } from '@bufbuild/protobuf'
|
|
3
10
|
import { Trace } from '../eth/eth.js'
|
|
4
11
|
import { BlockParams, LogParams, TransactionResponseParams } from 'ethers/providers'
|
|
5
12
|
import { ChainId, EthChainId } from '@sentio/chain'
|
|
@@ -48,17 +55,20 @@ export class EthFacet {
|
|
|
48
55
|
}
|
|
49
56
|
for (const config of contract.traceConfigs) {
|
|
50
57
|
if (config.signature == signature) {
|
|
51
|
-
return {
|
|
58
|
+
return create(DataBindingSchema, {
|
|
52
59
|
data: {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
value: {
|
|
61
|
+
case: 'ethTrace',
|
|
62
|
+
value: {
|
|
63
|
+
rawTrace: JSON.stringify(trace),
|
|
64
|
+
timestamp: timestampNow()
|
|
65
|
+
}
|
|
56
66
|
}
|
|
57
67
|
},
|
|
58
68
|
handlerIds: [config.handlerId],
|
|
59
69
|
handlerType: HandlerType.ETH_TRACE,
|
|
60
70
|
chainId: network
|
|
61
|
-
}
|
|
71
|
+
})
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
}
|
|
@@ -116,14 +126,17 @@ export class EthFacet {
|
|
|
116
126
|
break
|
|
117
127
|
}
|
|
118
128
|
if (match) {
|
|
119
|
-
return {
|
|
129
|
+
return create(DataBindingSchema, {
|
|
120
130
|
data: {
|
|
121
|
-
|
|
131
|
+
value: {
|
|
132
|
+
case: 'ethLog',
|
|
133
|
+
value: { timestamp: timestampNow(), rawLog: JSON.stringify(log) }
|
|
134
|
+
}
|
|
122
135
|
},
|
|
123
136
|
handlerIds: [config.handlerId],
|
|
124
137
|
handlerType: HandlerType.ETH_LOG,
|
|
125
138
|
chainId: network
|
|
126
|
-
}
|
|
139
|
+
})
|
|
127
140
|
}
|
|
128
141
|
}
|
|
129
142
|
}
|
|
@@ -190,14 +203,17 @@ export class EthFacet {
|
|
|
190
203
|
break
|
|
191
204
|
}
|
|
192
205
|
if (match) {
|
|
193
|
-
return {
|
|
206
|
+
return create(DataBindingSchema, {
|
|
194
207
|
data: {
|
|
195
|
-
|
|
208
|
+
value: {
|
|
209
|
+
case: 'ethLog',
|
|
210
|
+
value: { timestamp: timestampNow(), rawLog: JSON.stringify(log) }
|
|
211
|
+
}
|
|
196
212
|
},
|
|
197
213
|
handlerIds: [config.handlerId],
|
|
198
214
|
handlerType: HandlerType.ETH_LOG,
|
|
199
215
|
chainId: network
|
|
200
|
-
}
|
|
216
|
+
})
|
|
201
217
|
}
|
|
202
218
|
}
|
|
203
219
|
}
|
|
@@ -230,14 +246,17 @@ export class EthFacet {
|
|
|
230
246
|
block: Partial<BlockParams> & { number: number },
|
|
231
247
|
network: EthChainId = EthChainId.ETHEREUM
|
|
232
248
|
): DataBinding {
|
|
233
|
-
const binding: DataBinding = {
|
|
249
|
+
const binding: DataBinding = create(DataBindingSchema, {
|
|
234
250
|
data: {
|
|
235
|
-
|
|
251
|
+
value: {
|
|
252
|
+
case: 'ethBlock',
|
|
253
|
+
value: { rawBlock: JSON.stringify(block) }
|
|
254
|
+
}
|
|
236
255
|
},
|
|
237
256
|
handlerType: HandlerType.ETH_BLOCK,
|
|
238
257
|
handlerIds: [],
|
|
239
258
|
chainId: network
|
|
240
|
-
}
|
|
259
|
+
})
|
|
241
260
|
for (const contract of this.server.contractConfigs) {
|
|
242
261
|
if (contract.contract?.chainId !== network) {
|
|
243
262
|
continue
|
|
@@ -282,14 +301,17 @@ export class EthFacet {
|
|
|
282
301
|
transaction: Partial<TransactionResponseParams>,
|
|
283
302
|
network: EthChainId = EthChainId.ETHEREUM
|
|
284
303
|
): DataBinding {
|
|
285
|
-
const binding: DataBinding = {
|
|
304
|
+
const binding: DataBinding = create(DataBindingSchema, {
|
|
286
305
|
data: {
|
|
287
|
-
|
|
306
|
+
value: {
|
|
307
|
+
case: 'ethTransaction',
|
|
308
|
+
value: { timestamp: timestampNow(), rawTransaction: JSON.stringify(transaction) }
|
|
309
|
+
}
|
|
288
310
|
},
|
|
289
311
|
handlerType: HandlerType.ETH_TRANSACTION,
|
|
290
312
|
handlerIds: [],
|
|
291
313
|
chainId: network
|
|
292
|
-
}
|
|
314
|
+
})
|
|
293
315
|
for (const contract of this.server.contractConfigs) {
|
|
294
316
|
if (contract.contract?.chainId !== network) {
|
|
295
317
|
continue
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
2
2
|
import { FuelChainId } from '@sentio/chain'
|
|
3
|
-
import { DataBinding, HandlerType } from '@sentio/protos'
|
|
3
|
+
import { type DataBinding, DataBindingSchema, HandlerType, timestampNow } from '@sentio/protos'
|
|
4
|
+
import { create } from '@bufbuild/protobuf'
|
|
4
5
|
import { FuelNetwork } from '../fuel/index.js'
|
|
5
6
|
import { getRpcEndpoint } from '../fuel/network.js'
|
|
6
7
|
|
|
@@ -47,33 +48,39 @@ export class FuelFacet {
|
|
|
47
48
|
continue
|
|
48
49
|
}
|
|
49
50
|
for (const callConfig of config.fuelTransactionConfigs) {
|
|
50
|
-
const binding = {
|
|
51
|
+
const binding = create(DataBindingSchema, {
|
|
51
52
|
data: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
value: {
|
|
54
|
+
case: 'fuelTransaction',
|
|
55
|
+
value: {
|
|
56
|
+
transaction,
|
|
57
|
+
timestamp: timestampNow()
|
|
58
|
+
}
|
|
55
59
|
}
|
|
56
60
|
},
|
|
57
61
|
handlerIds: [callConfig.handlerId],
|
|
58
62
|
handlerType: HandlerType.FUEL_TRANSACTION,
|
|
59
63
|
chainId: network
|
|
60
|
-
}
|
|
64
|
+
})
|
|
61
65
|
|
|
62
66
|
res.push(binding)
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
for (const assetConfig of config.assetConfigs) {
|
|
66
|
-
const binding = {
|
|
70
|
+
const binding = create(DataBindingSchema, {
|
|
67
71
|
data: {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
value: {
|
|
73
|
+
case: 'fuelTransaction',
|
|
74
|
+
value: {
|
|
75
|
+
transaction,
|
|
76
|
+
timestamp: timestampNow()
|
|
77
|
+
}
|
|
71
78
|
}
|
|
72
79
|
},
|
|
73
80
|
handlerIds: [assetConfig.handlerId],
|
|
74
81
|
handlerType: HandlerType.FUEL_TRANSACTION,
|
|
75
82
|
chainId: network
|
|
76
|
-
}
|
|
83
|
+
})
|
|
77
84
|
|
|
78
85
|
res.push(binding)
|
|
79
86
|
}
|
|
@@ -89,20 +96,23 @@ export class FuelFacet {
|
|
|
89
96
|
|
|
90
97
|
for (const config of this.server.contractConfigs) {
|
|
91
98
|
for (const logConfig of config.fuelReceiptConfigs) {
|
|
92
|
-
const logIds = logConfig.log
|
|
99
|
+
const logIds = logConfig.receiptFilter?.case === 'log' ? logConfig.receiptFilter.value.logIds : []
|
|
93
100
|
if (logIds.includes(receipt.rb)) {
|
|
94
|
-
const binding = {
|
|
101
|
+
const binding = create(DataBindingSchema, {
|
|
95
102
|
data: {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
value: {
|
|
104
|
+
case: 'fuelLog',
|
|
105
|
+
value: {
|
|
106
|
+
transaction,
|
|
107
|
+
timestamp: timestampNow(),
|
|
108
|
+
receiptIndex: BigInt(i)
|
|
109
|
+
}
|
|
100
110
|
}
|
|
101
111
|
},
|
|
102
112
|
handlerIds: [logConfig.handlerId],
|
|
103
113
|
handlerType: HandlerType.FUEL_RECEIPT,
|
|
104
114
|
chainId: network
|
|
105
|
-
}
|
|
115
|
+
})
|
|
106
116
|
res.push(binding)
|
|
107
117
|
}
|
|
108
118
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MoveCallIotaTransaction, IotaTransactionBlockResponse } from '@iota/iota-sdk/client'
|
|
2
|
-
import { DataBinding, HandlerType } from '@sentio/protos'
|
|
2
|
+
import { type DataBinding, DataBindingSchema, HandlerType, timestampFromDate, timestampNow } from '@sentio/protos'
|
|
3
|
+
import { create } from '@bufbuild/protobuf'
|
|
3
4
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
4
5
|
import { accountTypeString, parseMoveType, SPLITTER } from '../move/index.js'
|
|
5
6
|
import { IotaNetwork } from '../iota/index.js'
|
|
@@ -47,18 +48,21 @@ export class IotaFacet {
|
|
|
47
48
|
for (const callConfig of config.moveCallConfigs) {
|
|
48
49
|
for (const callFilter of callConfig.filters) {
|
|
49
50
|
if (accountTypeString(config.contract.address) + '::' + callFilter.function === functionType) {
|
|
50
|
-
return {
|
|
51
|
+
return create(DataBindingSchema, {
|
|
51
52
|
data: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
value: {
|
|
54
|
+
case: 'suiCall',
|
|
55
|
+
value: {
|
|
56
|
+
rawTransaction: JSON.stringify(transaction),
|
|
57
|
+
timestamp: timestampNow(),
|
|
58
|
+
slot: 10000n
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
},
|
|
58
62
|
handlerIds: [callConfig.handlerId],
|
|
59
63
|
handlerType: HandlerType.SUI_CALL,
|
|
60
64
|
chainId: network
|
|
61
|
-
}
|
|
65
|
+
})
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
}
|
|
@@ -91,18 +95,23 @@ export class IotaFacet {
|
|
|
91
95
|
throw Error('Invalid test global transaction: ' + JSON.stringify(transaction))
|
|
92
96
|
}
|
|
93
97
|
|
|
94
|
-
const binding: DataBinding = {
|
|
98
|
+
const binding: DataBinding = create(DataBindingSchema, {
|
|
95
99
|
handlerIds,
|
|
96
100
|
handlerType: HandlerType.SUI_CALL,
|
|
97
101
|
data: {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
value: {
|
|
103
|
+
case: 'suiCall',
|
|
104
|
+
value: {
|
|
105
|
+
rawTransaction: JSON.stringify(transaction),
|
|
106
|
+
timestamp: transaction.timestampMs
|
|
107
|
+
? timestampFromDate(new Date(Number(transaction.timestampMs)))
|
|
108
|
+
: timestampNow(),
|
|
109
|
+
slot: BigInt(transaction.checkpoint || 0)
|
|
110
|
+
}
|
|
102
111
|
}
|
|
103
112
|
},
|
|
104
113
|
chainId: network
|
|
105
|
-
}
|
|
114
|
+
})
|
|
106
115
|
return this.server.processBinding(binding)
|
|
107
116
|
}
|
|
108
117
|
|
|
@@ -123,19 +132,22 @@ export class IotaFacet {
|
|
|
123
132
|
accountTypeString(config.contract.address) + '::' + eventFilter.type ===
|
|
124
133
|
parseMoveType(event.type).qname
|
|
125
134
|
) {
|
|
126
|
-
return {
|
|
135
|
+
return create(DataBindingSchema, {
|
|
127
136
|
data: {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
137
|
+
value: {
|
|
138
|
+
case: 'suiEvent',
|
|
139
|
+
value: {
|
|
140
|
+
rawEvent: JSON.stringify(event),
|
|
141
|
+
rawTransaction: JSON.stringify(transaction),
|
|
142
|
+
timestamp: timestampFromDate(new Date(Number(transaction.timestampMs || 0))),
|
|
143
|
+
slot: 10000n
|
|
144
|
+
}
|
|
133
145
|
}
|
|
134
146
|
},
|
|
135
147
|
handlerIds: [eventConfig.handlerId],
|
|
136
148
|
handlerType: HandlerType.SUI_EVENT,
|
|
137
149
|
chainId: network
|
|
138
|
-
}
|
|
150
|
+
})
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
153
|
}
|