@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
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Data_SuiCall,
|
|
3
|
-
Data_SuiObject,
|
|
4
|
-
Data_SuiObjectChange,
|
|
5
|
-
HandleInterval,
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
type Data_SuiCall,
|
|
3
|
+
type Data_SuiObject,
|
|
4
|
+
type Data_SuiObjectChange,
|
|
5
|
+
type HandleInterval,
|
|
6
|
+
HandleIntervalSchema,
|
|
7
|
+
type MoveAccountFetchConfig,
|
|
8
|
+
MoveAccountFetchConfigSchema,
|
|
9
|
+
type MoveFetchConfig,
|
|
10
|
+
MoveFetchConfigSchema,
|
|
8
11
|
MoveOwnerType,
|
|
9
|
-
ProcessResult
|
|
12
|
+
type ProcessResult,
|
|
13
|
+
timestampDate
|
|
10
14
|
} from '@sentio/protos'
|
|
15
|
+
import { create } from '@bufbuild/protobuf'
|
|
11
16
|
import { ListStateStorage } from '@sentio/runtime'
|
|
12
17
|
import { SuiNetwork } from './network.js'
|
|
13
18
|
import { SuiAddressContext, SuiContext, SuiObjectChangeContext, SuiObjectContext } from './context.js'
|
|
@@ -17,9 +22,10 @@ import type { SuiMoveObjectInput } from '@typemove/sui'
|
|
|
17
22
|
import { ALL_ADDRESS, PromiseOrVoid } from '../core/index.js'
|
|
18
23
|
import { configure, DEFAULT_FETCH_CONFIG, IndexConfigure, SuiBindOptions } from './sui-processor.js'
|
|
19
24
|
import { CallHandler, TransactionFilter, accountTypeString, ObjectChangeHandler } from '../move/index.js'
|
|
20
|
-
import {
|
|
25
|
+
import { ConnectError, Code } from '@connectrpc/connect'
|
|
21
26
|
import { TypeDescriptor } from '@typemove/move'
|
|
22
27
|
import { TypedSuiMoveObject } from './models.js'
|
|
28
|
+
import { toSuiClientObject } from './to-client-types.js'
|
|
23
29
|
import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
|
|
24
30
|
|
|
25
31
|
export interface SuiObjectBindOptions {
|
|
@@ -47,9 +53,9 @@ interface ObjectHandler {
|
|
|
47
53
|
handlerName: string
|
|
48
54
|
}
|
|
49
55
|
|
|
50
|
-
export const DEFAULT_ACCOUNT_FETCH_CONFIG: MoveAccountFetchConfig = {
|
|
56
|
+
export const DEFAULT_ACCOUNT_FETCH_CONFIG: MoveAccountFetchConfig = create(MoveAccountFetchConfigSchema, {
|
|
51
57
|
owned: false
|
|
52
|
-
}
|
|
58
|
+
})
|
|
53
59
|
|
|
54
60
|
export class SuiAccountProcessorState extends ListStateStorage<SuiBaseObjectOrAddressProcessor<any>> {
|
|
55
61
|
static INSTANCE = new SuiAccountProcessorState()
|
|
@@ -114,7 +120,7 @@ export abstract class SuiBaseObjectOrAddressProcessor<HandlerType> {
|
|
|
114
120
|
data.objectId,
|
|
115
121
|
data.objectVersion,
|
|
116
122
|
data.slot,
|
|
117
|
-
data.timestamp
|
|
123
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
118
124
|
processor.config.baseLabels
|
|
119
125
|
)
|
|
120
126
|
await processor.doHandle(handler, data, ctx)
|
|
@@ -141,10 +147,10 @@ abstract class SuiBaseObjectOrAddressProcessorInternal<
|
|
|
141
147
|
): this {
|
|
142
148
|
return this.onInterval(
|
|
143
149
|
handler,
|
|
144
|
-
{
|
|
150
|
+
create(HandleIntervalSchema, {
|
|
145
151
|
recentInterval: timeIntervalInMinutes,
|
|
146
152
|
backfillInterval: backfillTimeIntervalInMinutes
|
|
147
|
-
},
|
|
153
|
+
}),
|
|
148
154
|
undefined,
|
|
149
155
|
type,
|
|
150
156
|
fetchConfig
|
|
@@ -161,7 +167,10 @@ abstract class SuiBaseObjectOrAddressProcessorInternal<
|
|
|
161
167
|
return this.onInterval(
|
|
162
168
|
handler,
|
|
163
169
|
undefined,
|
|
164
|
-
|
|
170
|
+
create(HandleIntervalSchema, {
|
|
171
|
+
recentInterval: checkpointInterval,
|
|
172
|
+
backfillInterval: backfillCheckpointInterval
|
|
173
|
+
}),
|
|
165
174
|
type,
|
|
166
175
|
fetchConfig
|
|
167
176
|
)
|
|
@@ -182,7 +191,10 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
|
|
|
182
191
|
data: Data_SuiObject,
|
|
183
192
|
ctx: SuiObjectContext
|
|
184
193
|
) {
|
|
185
|
-
return handler(
|
|
194
|
+
return handler(
|
|
195
|
+
data.rawObjects.map((o) => toSuiClientObject(JSON.parse(o))),
|
|
196
|
+
ctx
|
|
197
|
+
)
|
|
186
198
|
}
|
|
187
199
|
|
|
188
200
|
onTransactionBlock(
|
|
@@ -190,7 +202,7 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
|
|
|
190
202
|
filter?: TransactionFilter,
|
|
191
203
|
fetchConfig?: Partial<MoveFetchConfig>
|
|
192
204
|
) {
|
|
193
|
-
const _fetchConfig =
|
|
205
|
+
const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...fetchConfig })
|
|
194
206
|
const _filter: TransactionFilter = {
|
|
195
207
|
fromAndToAddress: {
|
|
196
208
|
from: '',
|
|
@@ -205,7 +217,7 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
|
|
|
205
217
|
handlerName: getHandlerName(),
|
|
206
218
|
handler: async function (data) {
|
|
207
219
|
if (!data.rawTransaction) {
|
|
208
|
-
throw new
|
|
220
|
+
throw new ConnectError('transaction is null', Code.InvalidArgument)
|
|
209
221
|
}
|
|
210
222
|
const tx = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
|
|
211
223
|
|
|
@@ -213,7 +225,7 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
|
|
|
213
225
|
'object',
|
|
214
226
|
processor.config.network,
|
|
215
227
|
processor.config.address,
|
|
216
|
-
data.timestamp
|
|
228
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
217
229
|
data.slot,
|
|
218
230
|
tx,
|
|
219
231
|
0,
|
|
@@ -259,8 +271,8 @@ export class SuiObjectProcessor extends SuiBaseObjectOrAddressProcessorInternal<
|
|
|
259
271
|
return
|
|
260
272
|
}
|
|
261
273
|
return handler(
|
|
262
|
-
JSON.parse(data.rawSelf)
|
|
263
|
-
data.rawObjects.map((o) => JSON.parse(o))
|
|
274
|
+
toSuiClientObject(JSON.parse(data.rawSelf)),
|
|
275
|
+
data.rawObjects.map((o) => toSuiClientObject(JSON.parse(o))),
|
|
264
276
|
ctx
|
|
265
277
|
)
|
|
266
278
|
}
|
|
@@ -298,14 +310,18 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
|
|
|
298
310
|
return
|
|
299
311
|
}
|
|
300
312
|
const object = await ctx.coder.filterAndDecodeObjects(this.objectType, [
|
|
301
|
-
JSON.parse(data.rawSelf)
|
|
313
|
+
toSuiClientObject(JSON.parse(data.rawSelf))
|
|
302
314
|
])
|
|
303
|
-
return handler(
|
|
315
|
+
return handler(
|
|
316
|
+
object[0],
|
|
317
|
+
data.rawObjects.map((o) => toSuiClientObject(JSON.parse(o))),
|
|
318
|
+
ctx
|
|
319
|
+
)
|
|
304
320
|
}
|
|
305
321
|
|
|
306
322
|
public onObjectChange(handler: (changes: SuiObjectChange[], ctx: SuiObjectChangeContext) => PromiseOrVoid): this {
|
|
307
323
|
if (this.config.network === SuiNetwork.TEST_NET) {
|
|
308
|
-
throw new
|
|
324
|
+
throw new ConnectError('object change not supported in testnet', Code.InvalidArgument)
|
|
309
325
|
}
|
|
310
326
|
const processor = this
|
|
311
327
|
this.objectChangeHandlers.push({
|
|
@@ -314,7 +330,7 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
|
|
|
314
330
|
const ctx = new SuiObjectChangeContext(
|
|
315
331
|
processor.config.network,
|
|
316
332
|
processor.config.address,
|
|
317
|
-
data.timestamp
|
|
333
|
+
data.timestamp ? timestampDate(data.timestamp) : new Date(0),
|
|
318
334
|
data.slot,
|
|
319
335
|
data.txDigest,
|
|
320
336
|
processor.config.baseLabels
|
|
@@ -340,10 +356,10 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
|
|
|
340
356
|
): this {
|
|
341
357
|
return this.onInterval(
|
|
342
358
|
handler,
|
|
343
|
-
{
|
|
359
|
+
create(HandleIntervalSchema, {
|
|
344
360
|
recentInterval: timeIntervalInMinutes,
|
|
345
361
|
backfillInterval: backfillTimeIntervalInMinutes
|
|
346
|
-
},
|
|
362
|
+
}),
|
|
347
363
|
undefined,
|
|
348
364
|
this.objectType.getSignature(),
|
|
349
365
|
fetchConfig
|
|
@@ -363,7 +379,10 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
|
|
|
363
379
|
return this.onInterval(
|
|
364
380
|
handler,
|
|
365
381
|
undefined,
|
|
366
|
-
|
|
382
|
+
create(HandleIntervalSchema, {
|
|
383
|
+
recentInterval: checkpointInterval,
|
|
384
|
+
backfillInterval: backfillCheckpointInterval
|
|
385
|
+
}),
|
|
367
386
|
this.objectType.qname,
|
|
368
387
|
fetchConfig
|
|
369
388
|
)
|
|
@@ -389,6 +408,9 @@ export class SuiWrappedObjectProcessor extends SuiBaseObjectOrAddressProcessorIn
|
|
|
389
408
|
data: Data_SuiObject,
|
|
390
409
|
ctx: SuiObjectContext
|
|
391
410
|
) {
|
|
392
|
-
return handler(
|
|
411
|
+
return handler(
|
|
412
|
+
data.rawObjects.map((o) => toSuiClientObject(JSON.parse(o))),
|
|
413
|
+
ctx
|
|
414
|
+
)
|
|
393
415
|
}
|
|
394
416
|
}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { USER_PROCESSOR } from '@sentio/runtime'
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
AccountConfigSchema,
|
|
4
|
+
ContractConfigSchema,
|
|
5
5
|
HandlerType,
|
|
6
|
-
InitResponse,
|
|
7
|
-
MoveCallHandlerConfig,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
type InitResponse,
|
|
7
|
+
type MoveCallHandlerConfig,
|
|
8
|
+
MoveCallHandlerConfigSchema,
|
|
9
|
+
type MoveEventHandlerConfig,
|
|
10
|
+
MoveEventHandlerConfigSchema,
|
|
11
|
+
MoveOnIntervalConfigSchema,
|
|
12
|
+
type MoveResourceChangeConfig,
|
|
13
|
+
MoveResourceChangeConfigSchema,
|
|
14
|
+
type ProcessConfigResponse,
|
|
15
|
+
type StartRequest
|
|
12
16
|
} from '@sentio/protos'
|
|
17
|
+
import { create } from '@bufbuild/protobuf'
|
|
13
18
|
|
|
14
19
|
import { PartitionHandlerManager } from '../core/index.js'
|
|
15
20
|
import { HandlerRegister } from '../core/handler-register.js'
|
|
@@ -75,7 +80,7 @@ export class SuiPluginPart {
|
|
|
75
80
|
if (forChainId !== undefined && forChainId !== chainId.toString()) {
|
|
76
81
|
continue
|
|
77
82
|
}
|
|
78
|
-
const contractConfig =
|
|
83
|
+
const contractConfig = create(ContractConfigSchema, {
|
|
79
84
|
transactionConfig: [],
|
|
80
85
|
processorType: USER_PROCESSOR,
|
|
81
86
|
contract: {
|
|
@@ -90,7 +95,7 @@ export class SuiPluginPart {
|
|
|
90
95
|
for (const handler of suiProcessor.eventHandlers) {
|
|
91
96
|
const handlerId = this.handlerRegister.register(handler.handler, chainId)
|
|
92
97
|
this.partitionManager.registerPartitionHandler(HandlerType.SUI_EVENT, handlerId, handler.partitionHandler)
|
|
93
|
-
const eventHandlerConfig: MoveEventHandlerConfig = {
|
|
98
|
+
const eventHandlerConfig: MoveEventHandlerConfig = create(MoveEventHandlerConfigSchema, {
|
|
94
99
|
filters: handler.filters.map((f) => {
|
|
95
100
|
return {
|
|
96
101
|
type: f.type,
|
|
@@ -101,13 +106,13 @@ export class SuiPluginPart {
|
|
|
101
106
|
fetchConfig: handler.fetchConfig,
|
|
102
107
|
handlerId,
|
|
103
108
|
handlerName: handler.handlerName
|
|
104
|
-
}
|
|
109
|
+
})
|
|
105
110
|
contractConfig.moveEventConfigs.push(eventHandlerConfig)
|
|
106
111
|
}
|
|
107
112
|
for (const handler of suiProcessor.callHandlers) {
|
|
108
113
|
const handlerId = this.handlerRegister.register(handler.handler, chainId)
|
|
109
114
|
this.partitionManager.registerPartitionHandler(HandlerType.SUI_CALL, handlerId, handler.partitionHandler)
|
|
110
|
-
const functionHandlerConfig: MoveCallHandlerConfig = {
|
|
115
|
+
const functionHandlerConfig: MoveCallHandlerConfig = create(MoveCallHandlerConfigSchema, {
|
|
111
116
|
filters: handler.filters.map((filter) => {
|
|
112
117
|
return {
|
|
113
118
|
function: filter.function,
|
|
@@ -121,18 +126,18 @@ export class SuiPluginPart {
|
|
|
121
126
|
fetchConfig: handler.fetchConfig,
|
|
122
127
|
handlerId,
|
|
123
128
|
handlerName: handler.handlerName
|
|
124
|
-
}
|
|
129
|
+
})
|
|
125
130
|
contractConfig.moveCallConfigs.push(functionHandlerConfig)
|
|
126
131
|
}
|
|
127
132
|
// deprecated, use objectType processor instead
|
|
128
133
|
for (const handler of suiProcessor.objectChangeHandlers) {
|
|
129
134
|
const handlerId = this.handlerRegister.register(handler.handler, chainId)
|
|
130
|
-
const objectChangeHandler: MoveResourceChangeConfig = {
|
|
135
|
+
const objectChangeHandler: MoveResourceChangeConfig = create(MoveResourceChangeConfigSchema, {
|
|
131
136
|
types: typeof handler.type === 'string' ? [handler.type] : handler.type,
|
|
132
137
|
handlerId,
|
|
133
138
|
handlerName: handler.handlerName,
|
|
134
139
|
includeDeleted: false
|
|
135
|
-
}
|
|
140
|
+
})
|
|
136
141
|
contractConfig.moveResourceChangeConfigs.push(objectChangeHandler)
|
|
137
142
|
}
|
|
138
143
|
config.contractConfigs.push(contractConfig)
|
|
@@ -143,7 +148,7 @@ export class SuiPluginPart {
|
|
|
143
148
|
if (forChainId !== undefined && forChainId !== chainId.toString()) {
|
|
144
149
|
continue
|
|
145
150
|
}
|
|
146
|
-
const accountConfig =
|
|
151
|
+
const accountConfig = create(AccountConfigSchema, {
|
|
147
152
|
address: processor.config.address,
|
|
148
153
|
chainId: processor.getChainId(),
|
|
149
154
|
startBlock: processor.config.startCheckpoint, // TODO maybe use another field
|
|
@@ -152,39 +157,41 @@ export class SuiPluginPart {
|
|
|
152
157
|
|
|
153
158
|
for (const handler of processor.objectChangeHandlers) {
|
|
154
159
|
const handlerId = this.handlerRegister.register(handler.handler, chainId)
|
|
155
|
-
const objectChangeHandler: MoveResourceChangeConfig = {
|
|
160
|
+
const objectChangeHandler: MoveResourceChangeConfig = create(MoveResourceChangeConfigSchema, {
|
|
156
161
|
types: typeof handler.type === 'string' ? [handler.type] : handler.type,
|
|
157
162
|
handlerId,
|
|
158
163
|
handlerName: handler.handlerName,
|
|
159
164
|
includeDeleted: false
|
|
160
|
-
}
|
|
165
|
+
})
|
|
161
166
|
accountConfig.moveResourceChangeConfigs.push(objectChangeHandler)
|
|
162
167
|
}
|
|
163
168
|
|
|
164
169
|
for (const handler of processor.objectHandlers) {
|
|
165
170
|
const handlerId = this.handlerRegister.register(handler.handler, chainId)
|
|
166
171
|
|
|
167
|
-
accountConfig.moveIntervalConfigs.push(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
172
|
+
accountConfig.moveIntervalConfigs.push(
|
|
173
|
+
create(MoveOnIntervalConfigSchema, {
|
|
174
|
+
intervalConfig: {
|
|
175
|
+
handlerId: handlerId,
|
|
176
|
+
handlerName: handler.handlerName,
|
|
177
|
+
minutes: 0,
|
|
178
|
+
minutesInterval: handler.timeIntervalInMinutes,
|
|
179
|
+
slot: 0,
|
|
180
|
+
slotInterval: handler.checkPointInterval,
|
|
181
|
+
fetchConfig: undefined
|
|
182
|
+
},
|
|
183
|
+
type: handler.type || '',
|
|
184
|
+
ownerType: processor.ownerType,
|
|
185
|
+
resourceFetchConfig: handler.fetchConfig,
|
|
175
186
|
fetchConfig: undefined
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
ownerType: processor.ownerType,
|
|
179
|
-
resourceFetchConfig: handler.fetchConfig,
|
|
180
|
-
fetchConfig: undefined
|
|
181
|
-
})
|
|
187
|
+
})
|
|
188
|
+
)
|
|
182
189
|
}
|
|
183
190
|
|
|
184
191
|
if (processor instanceof SuiAddressProcessor) {
|
|
185
192
|
for (const handler of processor.callHandlers) {
|
|
186
193
|
const handlerId = this.handlerRegister.register(handler.handler, chainId)
|
|
187
|
-
const functionHandlerConfig: MoveCallHandlerConfig = {
|
|
194
|
+
const functionHandlerConfig: MoveCallHandlerConfig = create(MoveCallHandlerConfigSchema, {
|
|
188
195
|
filters: handler.filters.map((filter) => {
|
|
189
196
|
return {
|
|
190
197
|
function: filter.function,
|
|
@@ -198,7 +205,7 @@ export class SuiPluginPart {
|
|
|
198
205
|
fetchConfig: handler.fetchConfig,
|
|
199
206
|
handlerId,
|
|
200
207
|
handlerName: handler.handlerName
|
|
201
|
-
}
|
|
208
|
+
})
|
|
202
209
|
accountConfig.moveCallConfigs.push(functionHandlerConfig)
|
|
203
210
|
}
|
|
204
211
|
}
|
package/src/sui/sui-plugin.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { errorString, mergeProcessResults, Plugin, PluginManager } from '@sentio/runtime'
|
|
2
2
|
import {
|
|
3
|
-
DataBinding,
|
|
3
|
+
type DataBinding,
|
|
4
4
|
HandlerType,
|
|
5
|
-
InitResponse,
|
|
6
|
-
ProcessConfigResponse,
|
|
7
|
-
ProcessResult,
|
|
8
|
-
ProcessStreamResponse_Partitions,
|
|
9
|
-
|
|
5
|
+
type InitResponse,
|
|
6
|
+
type ProcessConfigResponse,
|
|
7
|
+
type ProcessResult,
|
|
8
|
+
type ProcessStreamResponse_Partitions,
|
|
9
|
+
ProcessStreamResponse_PartitionsSchema,
|
|
10
|
+
type StartRequest
|
|
10
11
|
} from '@sentio/protos'
|
|
12
|
+
import { create } from '@bufbuild/protobuf'
|
|
11
13
|
|
|
12
|
-
import {
|
|
14
|
+
import { ConnectError, Code } from '@connectrpc/connect'
|
|
13
15
|
import { PartitionHandlerManager } from '../core/index.js'
|
|
14
16
|
import { HandlerRegister } from '../core/handler-register.js'
|
|
15
17
|
|
|
@@ -60,7 +62,7 @@ export class SuiPlugin extends Plugin {
|
|
|
60
62
|
case HandlerType.SUI_OBJECT_CHANGE:
|
|
61
63
|
return this.processSuiObjectChange(request)
|
|
62
64
|
default:
|
|
63
|
-
throw new
|
|
65
|
+
throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument)
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
|
|
@@ -68,48 +70,48 @@ export class SuiPlugin extends Plugin {
|
|
|
68
70
|
let data: any
|
|
69
71
|
switch (request.handlerType) {
|
|
70
72
|
case HandlerType.SUI_EVENT:
|
|
71
|
-
if (
|
|
72
|
-
throw new
|
|
73
|
+
if (request.data?.value.case !== 'suiEvent') {
|
|
74
|
+
throw new ConnectError("suiEvent can't be empty", Code.InvalidArgument)
|
|
73
75
|
}
|
|
74
|
-
data = request.data.
|
|
76
|
+
data = request.data.value.value
|
|
75
77
|
break
|
|
76
78
|
case HandlerType.SUI_CALL:
|
|
77
|
-
if (
|
|
78
|
-
throw new
|
|
79
|
+
if (request.data?.value.case !== 'suiCall') {
|
|
80
|
+
throw new ConnectError("suiCall can't be empty", Code.InvalidArgument)
|
|
79
81
|
}
|
|
80
|
-
data = request.data.
|
|
82
|
+
data = request.data.value.value
|
|
81
83
|
break
|
|
82
84
|
case HandlerType.SUI_OBJECT:
|
|
83
|
-
if (
|
|
84
|
-
throw new
|
|
85
|
+
if (request.data?.value.case !== 'suiObject') {
|
|
86
|
+
throw new ConnectError("suiObject can't be empty", Code.InvalidArgument)
|
|
85
87
|
}
|
|
86
|
-
data = request.data.
|
|
88
|
+
data = request.data.value.value
|
|
87
89
|
break
|
|
88
90
|
case HandlerType.SUI_OBJECT_CHANGE:
|
|
89
|
-
if (
|
|
90
|
-
throw new
|
|
91
|
+
if (request.data?.value.case !== 'suiObjectChange') {
|
|
92
|
+
throw new ConnectError("suiObjectChange can't be empty", Code.InvalidArgument)
|
|
91
93
|
}
|
|
92
|
-
data = request.data.
|
|
94
|
+
data = request.data.value.value
|
|
93
95
|
break
|
|
94
96
|
default:
|
|
95
|
-
throw new
|
|
97
|
+
throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument)
|
|
96
98
|
}
|
|
97
99
|
const partitions = await this.partitionManager.processPartitionForHandlerType(
|
|
98
100
|
request.handlerType,
|
|
99
101
|
request.handlerIds,
|
|
100
102
|
data
|
|
101
103
|
)
|
|
102
|
-
return {
|
|
104
|
+
return create(ProcessStreamResponse_PartitionsSchema, {
|
|
103
105
|
partitions
|
|
104
|
-
}
|
|
106
|
+
})
|
|
105
107
|
}
|
|
106
108
|
|
|
107
109
|
async processSuiEvent(binding: DataBinding): Promise<ProcessResult> {
|
|
108
|
-
if (
|
|
109
|
-
throw new
|
|
110
|
+
if (binding.data?.value.case !== 'suiEvent') {
|
|
111
|
+
throw new ConnectError("Event can't be empty", Code.InvalidArgument)
|
|
110
112
|
}
|
|
111
113
|
const promises: Promise<ProcessResult>[] = []
|
|
112
|
-
const event = binding.data.
|
|
114
|
+
const event = binding.data.value.value
|
|
113
115
|
|
|
114
116
|
for (const handlerId of binding.handlerIds) {
|
|
115
117
|
promises.push(
|
|
@@ -119,9 +121,9 @@ export class SuiPlugin extends Plugin {
|
|
|
119
121
|
handlerId
|
|
120
122
|
)(event)
|
|
121
123
|
.catch((e: any) => {
|
|
122
|
-
throw new
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
throw new ConnectError(
|
|
125
|
+
'error processing event: ' + JSON.stringify(event) + '\n' + errorString(e),
|
|
126
|
+
Code.Internal
|
|
125
127
|
)
|
|
126
128
|
})
|
|
127
129
|
)
|
|
@@ -130,10 +132,10 @@ export class SuiPlugin extends Plugin {
|
|
|
130
132
|
}
|
|
131
133
|
|
|
132
134
|
async processSuiFunctionCall(binding: DataBinding): Promise<ProcessResult> {
|
|
133
|
-
if (
|
|
134
|
-
throw new
|
|
135
|
+
if (binding.data?.value.case !== 'suiCall') {
|
|
136
|
+
throw new ConnectError("Call can't be empty", Code.InvalidArgument)
|
|
135
137
|
}
|
|
136
|
-
const call = binding.data.
|
|
138
|
+
const call = binding.data.value.value
|
|
137
139
|
|
|
138
140
|
const promises: Promise<ProcessResult>[] = []
|
|
139
141
|
for (const handlerId of binding.handlerIds) {
|
|
@@ -143,9 +145,9 @@ export class SuiPlugin extends Plugin {
|
|
|
143
145
|
handlerId
|
|
144
146
|
)(call)
|
|
145
147
|
.catch((e: any) => {
|
|
146
|
-
throw new
|
|
147
|
-
|
|
148
|
-
|
|
148
|
+
throw new ConnectError(
|
|
149
|
+
'error processing call: ' + JSON.stringify(call) + '\n' + errorString(e),
|
|
150
|
+
Code.Internal
|
|
149
151
|
)
|
|
150
152
|
})
|
|
151
153
|
promises.push(promise)
|
|
@@ -154,10 +156,10 @@ export class SuiPlugin extends Plugin {
|
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
async processSuiObject(binding: DataBinding): Promise<ProcessResult> {
|
|
157
|
-
if (
|
|
158
|
-
throw new
|
|
159
|
+
if (binding.data?.value.case !== 'suiObject') {
|
|
160
|
+
throw new ConnectError("Object can't be empty", Code.InvalidArgument)
|
|
159
161
|
}
|
|
160
|
-
const object = binding.data.
|
|
162
|
+
const object = binding.data.value.value
|
|
161
163
|
|
|
162
164
|
const promises: Promise<ProcessResult>[] = []
|
|
163
165
|
for (const handlerId of binding.handlerIds) {
|
|
@@ -168,9 +170,9 @@ export class SuiPlugin extends Plugin {
|
|
|
168
170
|
handlerId
|
|
169
171
|
)(object)
|
|
170
172
|
.catch((e: any) => {
|
|
171
|
-
throw new
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
throw new ConnectError(
|
|
174
|
+
'error processing object: ' + JSON.stringify(object) + '\n' + errorString(e),
|
|
175
|
+
Code.Internal
|
|
174
176
|
)
|
|
175
177
|
})
|
|
176
178
|
)
|
|
@@ -179,10 +181,10 @@ export class SuiPlugin extends Plugin {
|
|
|
179
181
|
}
|
|
180
182
|
|
|
181
183
|
async processSuiObjectChange(binding: DataBinding): Promise<ProcessResult> {
|
|
182
|
-
if (
|
|
183
|
-
throw new
|
|
184
|
+
if (binding.data?.value.case !== 'suiObjectChange') {
|
|
185
|
+
throw new ConnectError("Object change can't be empty", Code.InvalidArgument)
|
|
184
186
|
}
|
|
185
|
-
const objectChange = binding.data.
|
|
187
|
+
const objectChange = binding.data.value.value
|
|
186
188
|
|
|
187
189
|
const promises: Promise<ProcessResult>[] = []
|
|
188
190
|
for (const handlerId of binding.handlerIds) {
|
|
@@ -193,9 +195,9 @@ export class SuiPlugin extends Plugin {
|
|
|
193
195
|
handlerId
|
|
194
196
|
)(objectChange)
|
|
195
197
|
.catch((e: any) => {
|
|
196
|
-
throw new
|
|
197
|
-
|
|
198
|
-
|
|
198
|
+
throw new ConnectError(
|
|
199
|
+
'error processing object change: ' + JSON.stringify(objectChange) + '\n' + errorString(e),
|
|
200
|
+
Code.Internal
|
|
199
201
|
)
|
|
200
202
|
})
|
|
201
203
|
)
|