@sentio/sdk 2.59.0-rc.4 → 2.59.0-rc.40
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/api.d.ts +1 -0
- package/lib/aptos/api.d.ts.map +1 -1
- package/lib/aptos/api.js +13 -1
- package/lib/aptos/api.js.map +1 -1
- package/lib/aptos/aptos-plugin.d.ts +8 -4
- package/lib/aptos/aptos-plugin.d.ts.map +1 -1
- package/lib/aptos/aptos-plugin.js +51 -8
- package/lib/aptos/aptos-plugin.js.map +1 -1
- package/lib/aptos/aptos-processor.d.ts +21 -19
- package/lib/aptos/aptos-processor.d.ts.map +1 -1
- package/lib/aptos/aptos-processor.js +102 -50
- package/lib/aptos/aptos-processor.js.map +1 -1
- package/lib/aptos/aptos-resource-processor-template.d.ts +5 -4
- package/lib/aptos/aptos-resource-processor-template.d.ts.map +1 -1
- package/lib/aptos/aptos-resource-processor-template.js +8 -8
- package/lib/aptos/aptos-resource-processor-template.js.map +1 -1
- package/lib/aptos/builtin/0x1.d.ts +333 -332
- package/lib/aptos/builtin/0x1.d.ts.map +1 -1
- package/lib/aptos/builtin/0x1.js +664 -664
- package/lib/aptos/builtin/0x1.js.map +1 -1
- package/lib/aptos/builtin/0x3.d.ts +66 -65
- package/lib/aptos/builtin/0x3.d.ts.map +1 -1
- package/lib/aptos/builtin/0x3.js +130 -130
- package/lib/aptos/builtin/0x3.js.map +1 -1
- package/lib/aptos/builtin/0x4.d.ts +29 -28
- package/lib/aptos/builtin/0x4.d.ts.map +1 -1
- package/lib/aptos/builtin/0x4.js +56 -56
- package/lib/aptos/builtin/0x4.js.map +1 -1
- package/lib/aptos/codegen/codegen.js +31 -4
- package/lib/aptos/codegen/codegen.js.map +1 -1
- package/lib/aptos/data.d.ts +45 -0
- package/lib/aptos/data.d.ts.map +1 -0
- package/lib/aptos/data.js +99 -0
- package/lib/aptos/data.js.map +1 -0
- package/lib/aptos/index.d.ts +1 -0
- package/lib/aptos/index.d.ts.map +1 -1
- package/lib/aptos/index.js.map +1 -1
- package/lib/aptos/models.d.ts +1 -0
- package/lib/aptos/models.d.ts.map +1 -1
- package/lib/aptos/move-coder.d.ts +8 -2
- package/lib/aptos/move-coder.d.ts.map +1 -1
- package/lib/aptos/move-coder.js +84 -1
- package/lib/aptos/move-coder.js.map +1 -1
- package/lib/aptos/network.d.ts +1 -0
- package/lib/aptos/network.d.ts.map +1 -1
- package/lib/aptos/network.js +1 -0
- package/lib/aptos/network.js.map +1 -1
- package/lib/btc/btc-plugin.d.ts +4 -1
- package/lib/btc/btc-plugin.d.ts.map +1 -1
- package/lib/btc/btc-plugin.js +27 -0
- package/lib/btc/btc-plugin.js.map +1 -1
- package/lib/btc/btc-processor.d.ts +6 -5
- package/lib/btc/btc-processor.d.ts.map +1 -1
- package/lib/btc/btc-processor.js +35 -9
- package/lib/btc/btc-processor.js.map +1 -1
- package/lib/btc/types.d.ts +2 -1
- package/lib/btc/types.d.ts.map +1 -1
- package/lib/core/base-context.d.ts +4 -2
- package/lib/core/base-context.d.ts.map +1 -1
- package/lib/core/base-context.js +10 -5
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/event-logger.d.ts +5 -0
- package/lib/core/event-logger.d.ts.map +1 -1
- package/lib/core/event-logger.js +36 -1
- package/lib/core/event-logger.js.map +1 -1
- package/lib/core/handler-options.d.ts +25 -0
- package/lib/core/handler-options.d.ts.map +1 -0
- package/lib/core/handler-options.js +21 -0
- package/lib/core/handler-options.js.map +1 -0
- package/lib/core/index.d.ts +3 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +3 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/meter.d.ts +45 -2
- package/lib/core/meter.d.ts.map +1 -1
- package/lib/core/meter.js +124 -2
- package/lib/core/meter.js.map +1 -1
- package/lib/core/numberish.d.ts +2 -1
- package/lib/core/numberish.d.ts.map +1 -1
- package/lib/core/numberish.js +35 -1
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/partition-handler-manager.d.ts +44 -0
- package/lib/core/partition-handler-manager.d.ts.map +1 -0
- package/lib/core/partition-handler-manager.js +76 -0
- package/lib/core/partition-handler-manager.js.map +1 -0
- package/lib/cosmos/cosmos-processor.d.ts +3 -2
- package/lib/cosmos/cosmos-processor.d.ts.map +1 -1
- package/lib/cosmos/cosmos-processor.js +11 -1
- package/lib/cosmos/cosmos-processor.js.map +1 -1
- package/lib/cosmos/types.d.ts +1 -0
- package/lib/cosmos/types.d.ts.map +1 -1
- package/lib/eth/base-processor.d.ts +23 -17
- package/lib/eth/base-processor.d.ts.map +1 -1
- package/lib/eth/base-processor.js +173 -34
- package/lib/eth/base-processor.js.map +1 -1
- package/lib/eth/bind-options.d.ts +6 -0
- package/lib/eth/bind-options.d.ts.map +1 -1
- package/lib/eth/bind-options.js +2 -0
- package/lib/eth/bind-options.js.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.d.ts +32 -31
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js +62 -62
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc1155-processor.d.ts +17 -16
- package/lib/eth/builtin/internal/erc1155-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc1155-processor.js +32 -32
- package/lib/eth/builtin/internal/erc1155-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20-processor.d.ts +25 -24
- package/lib/eth/builtin/internal/erc20-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc20-processor.js +48 -48
- package/lib/eth/builtin/internal/erc20-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.d.ts +14 -13
- package/lib/eth/builtin/internal/erc20bytes-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.js +26 -26
- package/lib/eth/builtin/internal/erc20bytes-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc721-processor.d.ts +21 -20
- package/lib/eth/builtin/internal/erc721-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/erc721-processor.js +40 -40
- package/lib/eth/builtin/internal/erc721-processor.js.map +1 -1
- package/lib/eth/builtin/internal/weth9-processor.d.ts +20 -19
- package/lib/eth/builtin/internal/weth9-processor.d.ts.map +1 -1
- package/lib/eth/builtin/internal/weth9-processor.js +38 -38
- package/lib/eth/builtin/internal/weth9-processor.js.map +1 -1
- package/lib/eth/codegen/event-handler.js +2 -2
- package/lib/eth/codegen/event-handler.js.map +1 -1
- package/lib/eth/codegen/file.d.ts.map +1 -1
- package/lib/eth/codegen/file.js +1 -0
- package/lib/eth/codegen/file.js.map +1 -1
- package/lib/eth/codegen/functions-handler.js +2 -2
- package/lib/eth/codegen/functions-handler.js.map +1 -1
- package/lib/eth/eth-plugin.d.ts +5 -1
- package/lib/eth/eth-plugin.d.ts.map +1 -1
- package/lib/eth/eth-plugin.js +53 -5
- package/lib/eth/eth-plugin.js.map +1 -1
- package/lib/eth/eth.d.ts +2 -7
- package/lib/eth/eth.d.ts.map +1 -1
- package/lib/eth/eth.js +8 -1
- package/lib/eth/eth.js.map +1 -1
- package/lib/fuel/codegen/codegen.js +5 -5
- package/lib/fuel/codegen/codegen.js.map +1 -1
- package/lib/fuel/fuel-plugin.d.ts +4 -1
- package/lib/fuel/fuel-plugin.d.ts.map +1 -1
- package/lib/fuel/fuel-plugin.js +41 -0
- package/lib/fuel/fuel-plugin.js.map +1 -1
- package/lib/fuel/fuel-processor-template.d.ts +7 -4
- package/lib/fuel/fuel-processor-template.d.ts.map +1 -1
- package/lib/fuel/fuel-processor-template.js +11 -9
- package/lib/fuel/fuel-processor-template.js.map +1 -1
- package/lib/fuel/fuel-processor.d.ts +7 -7
- package/lib/fuel/fuel-processor.d.ts.map +1 -1
- package/lib/fuel/fuel-processor.js +91 -28
- package/lib/fuel/fuel-processor.js.map +1 -1
- package/lib/fuel/types.d.ts +3 -0
- package/lib/fuel/types.d.ts.map +1 -1
- package/lib/move/filter.d.ts +5 -0
- package/lib/move/filter.d.ts.map +1 -1
- package/lib/move/filter.js +5 -0
- package/lib/move/filter.js.map +1 -1
- package/lib/move/shared-network-codegen.d.ts.map +1 -1
- package/lib/move/shared-network-codegen.js +5 -4
- package/lib/move/shared-network-codegen.js.map +1 -1
- package/lib/solana/solana-processor.d.ts +10 -4
- package/lib/solana/solana-processor.d.ts.map +1 -1
- package/lib/solana/solana-processor.js +13 -4
- package/lib/solana/solana-processor.js.map +1 -1
- package/lib/stark/starknet-processor.d.ts +3 -1
- package/lib/stark/starknet-processor.d.ts.map +1 -1
- package/lib/stark/starknet-processor.js +32 -14
- package/lib/stark/starknet-processor.js.map +1 -1
- package/lib/store/codegen.d.ts.map +1 -1
- package/lib/store/codegen.js +36 -2
- package/lib/store/codegen.js.map +1 -1
- package/lib/store/schema.d.ts.map +1 -1
- package/lib/store/schema.js +3 -1
- package/lib/store/schema.js.map +1 -1
- package/lib/store/store.d.ts +4 -3
- package/lib/store/store.d.ts.map +1 -1
- package/lib/store/store.js +41 -1
- package/lib/store/store.js.map +1 -1
- package/lib/store/types.d.ts +20 -1
- package/lib/store/types.d.ts.map +1 -1
- package/lib/store/types.js +22 -0
- package/lib/store/types.js.map +1 -1
- package/lib/sui/builtin/0x1.d.ts +7 -6
- package/lib/sui/builtin/0x1.d.ts.map +1 -1
- package/lib/sui/builtin/0x1.js +12 -12
- package/lib/sui/builtin/0x1.js.map +1 -1
- package/lib/sui/builtin/0x2.d.ts +61 -60
- package/lib/sui/builtin/0x2.d.ts.map +1 -1
- package/lib/sui/builtin/0x2.js +120 -120
- package/lib/sui/builtin/0x2.js.map +1 -1
- package/lib/sui/builtin/0x3.d.ts +49 -48
- package/lib/sui/builtin/0x3.d.ts.map +1 -1
- package/lib/sui/builtin/0x3.js +96 -96
- package/lib/sui/builtin/0x3.js.map +1 -1
- package/lib/sui/models.d.ts +1 -0
- package/lib/sui/models.d.ts.map +1 -1
- package/lib/sui/sui-object-processor-template.js +1 -1
- package/lib/sui/sui-object-processor-template.js.map +1 -1
- package/lib/sui/sui-object-processor.d.ts +2 -0
- package/lib/sui/sui-object-processor.d.ts.map +1 -1
- package/lib/sui/sui-object-processor.js +4 -0
- package/lib/sui/sui-object-processor.js.map +1 -1
- package/lib/sui/sui-plugin.d.ts +6 -3
- package/lib/sui/sui-plugin.d.ts.map +1 -1
- package/lib/sui/sui-plugin.js +68 -24
- package/lib/sui/sui-plugin.js.map +1 -1
- package/lib/sui/sui-processor.d.ts +6 -4
- package/lib/sui/sui-processor.d.ts.map +1 -1
- package/lib/sui/sui-processor.js +48 -11
- package/lib/sui/sui-processor.js.map +1 -1
- package/lib/testing/eth-facet.d.ts +2 -1
- package/lib/testing/eth-facet.d.ts.map +1 -1
- package/lib/testing/eth-facet.js.map +1 -1
- package/lib/utils/block.d.ts +2 -0
- package/lib/utils/block.d.ts.map +1 -1
- package/lib/utils/block.js +13 -0
- package/lib/utils/block.js.map +1 -1
- package/package.json +7 -6
- package/src/aptos/api.ts +13 -1
- package/src/aptos/aptos-plugin.ts +62 -13
- package/src/aptos/aptos-processor.ts +114 -74
- package/src/aptos/aptos-resource-processor-template.ts +9 -8
- package/src/aptos/builtin/0x1.ts +1566 -664
- package/src/aptos/builtin/0x3.ts +303 -130
- package/src/aptos/builtin/0x4.ts +124 -56
- package/src/aptos/codegen/codegen.ts +40 -5
- package/src/aptos/data.ts +123 -0
- package/src/aptos/index.ts +2 -0
- package/src/aptos/models.ts +2 -0
- package/src/aptos/move-coder.ts +96 -3
- package/src/aptos/network.ts +1 -0
- package/src/btc/btc-plugin.ts +38 -0
- package/src/btc/btc-processor.ts +35 -10
- package/src/btc/types.ts +2 -1
- package/src/core/base-context.ts +10 -5
- package/src/core/event-logger.ts +45 -1
- package/src/core/handler-options.ts +40 -0
- package/src/core/index.ts +17 -1
- package/src/core/meter.ts +159 -4
- package/src/core/numberish.ts +34 -1
- package/src/core/partition-handler-manager.ts +94 -0
- package/src/cosmos/cosmos-processor.ts +12 -1
- package/src/cosmos/types.ts +1 -0
- package/src/eth/base-processor.ts +163 -41
- package/src/eth/bind-options.ts +7 -0
- package/src/eth/builtin/internal/eacaggregatorproxy-processor.ts +118 -62
- package/src/eth/builtin/internal/erc1155-processor.ts +76 -32
- package/src/eth/builtin/internal/erc20-processor.ts +79 -48
- package/src/eth/builtin/internal/erc20bytes-processor.ts +47 -26
- package/src/eth/builtin/internal/erc721-processor.ts +77 -40
- package/src/eth/builtin/internal/weth9-processor.ts +79 -38
- package/src/eth/codegen/event-handler.ts +2 -2
- package/src/eth/codegen/file.ts +1 -0
- package/src/eth/codegen/functions-handler.ts +2 -2
- package/src/eth/eth-plugin.ts +76 -10
- package/src/eth/eth.ts +12 -1
- package/src/fuel/codegen/codegen.ts +5 -5
- package/src/fuel/fuel-plugin.ts +56 -0
- package/src/fuel/fuel-processor-template.ts +17 -10
- package/src/fuel/fuel-processor.ts +90 -22
- package/src/fuel/types.ts +3 -0
- package/src/move/filter.ts +5 -0
- package/src/move/shared-network-codegen.ts +5 -4
- package/src/solana/solana-processor.ts +28 -6
- package/src/stark/starknet-processor.ts +31 -13
- package/src/store/codegen.ts +50 -2
- package/src/store/schema.ts +3 -1
- package/src/store/store.ts +57 -4
- package/src/store/types.ts +30 -1
- package/src/sui/builtin/0x1.ts +22 -12
- package/src/sui/builtin/0x2.ts +220 -120
- package/src/sui/builtin/0x3.ts +241 -96
- package/src/sui/models.ts +2 -0
- package/src/sui/sui-object-processor-template.ts +1 -1
- package/src/sui/sui-object-processor.ts +6 -0
- package/src/sui/sui-plugin.ts +77 -26
- package/src/sui/sui-processor.ts +50 -11
- package/src/testing/eth-facet.ts +2 -1
- package/src/utils/block.ts +15 -0
@@ -1,25 +1,17 @@
|
|
1
1
|
import { defaultMoveCoder, MoveCoder } from './index.js'
|
2
2
|
|
3
3
|
import {
|
4
|
+
EntryFunctionPayloadResponse,
|
4
5
|
Event,
|
5
6
|
MoveResource,
|
6
7
|
UserTransactionResponse,
|
7
|
-
EntryFunctionPayloadResponse,
|
8
|
-
MultisigPayloadResponse,
|
9
8
|
WriteSetChangeWriteResource
|
10
9
|
} from '@aptos-labs/ts-sdk'
|
11
10
|
|
12
11
|
import { AptosBindOptions, AptosNetwork } from './network.js'
|
13
12
|
import { AptosContext, AptosResourcesContext, AptosTransactionContext } from './context.js'
|
14
13
|
import { ListStateStorage } from '@sentio/runtime'
|
15
|
-
import {
|
16
|
-
MoveFetchConfig,
|
17
|
-
Data_AptResource,
|
18
|
-
HandleInterval,
|
19
|
-
Data_AptEvent,
|
20
|
-
Data_AptCall,
|
21
|
-
MoveAccountFetchConfig
|
22
|
-
} from '@sentio/protos'
|
14
|
+
import { Data_AptResource, HandleInterval, MoveAccountFetchConfig, MoveFetchConfig } from '@sentio/protos'
|
23
15
|
import { ServerError, Status } from 'nice-grpc'
|
24
16
|
import {
|
25
17
|
accountTypeString,
|
@@ -33,10 +25,11 @@ import {
|
|
33
25
|
TransactionIntervalHandler
|
34
26
|
} from '../move/index.js'
|
35
27
|
import { ALL_ADDRESS, Labels, PromiseOrVoid } from '../core/index.js'
|
36
|
-
import {
|
37
|
-
import {
|
38
|
-
import { GeneralTransactionResponse } from './models.js'
|
28
|
+
import { matchType, NestedDecodedStruct, TypeDescriptor } from '@typemove/move'
|
29
|
+
import { ResourceChange } from '@typemove/aptos'
|
30
|
+
import { GeneralTransactionResponse, HandlerOptions } from './models.js'
|
39
31
|
import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
|
32
|
+
import { AptCall, AptEvent, AptResource } from './data.js'
|
40
33
|
|
41
34
|
const DEFAULT_FETCH_CONFIG: MoveFetchConfig = {
|
42
35
|
resourceChanges: false,
|
@@ -54,6 +47,7 @@ type IndexConfigure = {
|
|
54
47
|
address: string
|
55
48
|
network: AptosNetwork
|
56
49
|
startVersion: bigint
|
50
|
+
endVersion?: bigint
|
57
51
|
baseLabels?: Labels
|
58
52
|
// endSeqNumber?: Long
|
59
53
|
}
|
@@ -65,9 +59,9 @@ export class AptosProcessorState extends ListStateStorage<AptosTransactionProces
|
|
65
59
|
export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT extends AptosTransactionContext<T>> {
|
66
60
|
readonly moduleName: string
|
67
61
|
config: IndexConfigure
|
68
|
-
eventHandlers: EventHandler<
|
69
|
-
callHandlers: CallHandler<
|
70
|
-
resourceChangeHandlers: ResourceChangeHandler<
|
62
|
+
eventHandlers: EventHandler<AptEvent>[] = []
|
63
|
+
callHandlers: CallHandler<AptCall>[] = []
|
64
|
+
resourceChangeHandlers: ResourceChangeHandler<AptResource>[] = []
|
71
65
|
transactionIntervalHandlers: TransactionIntervalHandler[] = []
|
72
66
|
coder: MoveCoder
|
73
67
|
|
@@ -84,10 +78,10 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
84
78
|
protected onMoveEvent(
|
85
79
|
handler: (event: Event, ctx: AptosContext) => PromiseOrVoid,
|
86
80
|
filter: EventFilter | EventFilter[],
|
87
|
-
|
81
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, Event>
|
88
82
|
): this {
|
89
83
|
let _filters: EventFilter[] = []
|
90
|
-
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...
|
84
|
+
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
91
85
|
|
92
86
|
if (Array.isArray(filter)) {
|
93
87
|
_filters = filter
|
@@ -105,12 +99,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
105
99
|
if (!data.rawTransaction) {
|
106
100
|
throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')
|
107
101
|
}
|
108
|
-
const txn =
|
109
|
-
if (txn.events == null) {
|
110
|
-
txn.events = []
|
111
|
-
}
|
112
|
-
|
113
|
-
const evt = JSON.parse(data.rawEvent)
|
102
|
+
const txn = data.transaction
|
114
103
|
|
115
104
|
const ctx = new AptosContext(
|
116
105
|
processor.moduleName,
|
@@ -122,13 +111,21 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
122
111
|
processor.config.baseLabels
|
123
112
|
)
|
124
113
|
|
125
|
-
const decoded = await processor.coder
|
126
|
-
await handler(decoded ||
|
127
|
-
|
114
|
+
const decoded = await data.decodeEvent(processor.coder)
|
115
|
+
await handler(decoded || data.event, ctx)
|
128
116
|
return ctx.stopAndGetResult()
|
129
117
|
},
|
130
118
|
filters: _filters,
|
131
|
-
fetchConfig: _fetchConfig
|
119
|
+
fetchConfig: _fetchConfig,
|
120
|
+
partitionHandler: async (data: AptEvent): Promise<string | undefined> => {
|
121
|
+
const p = handlerOptions?.partitionKey
|
122
|
+
if (!p) return undefined
|
123
|
+
if (typeof p === 'function') {
|
124
|
+
const decoded = await data.decodeEvent(processor.coder)
|
125
|
+
return p(decoded || data.event)
|
126
|
+
}
|
127
|
+
return p
|
128
|
+
}
|
132
129
|
})
|
133
130
|
return this
|
134
131
|
}
|
@@ -136,10 +133,10 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
136
133
|
protected onEntryFunctionCall(
|
137
134
|
handler: (call: EntryFunctionPayloadResponse, ctx: AptosContext) => PromiseOrVoid,
|
138
135
|
filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],
|
139
|
-
|
136
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, EntryFunctionPayloadResponse>
|
140
137
|
): this {
|
141
138
|
let _filters: FunctionNameAndCallFilter[] = []
|
142
|
-
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...
|
139
|
+
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
143
140
|
|
144
141
|
if (Array.isArray(filter)) {
|
145
142
|
_filters = filter
|
@@ -157,7 +154,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
157
154
|
if (!data.rawTransaction) {
|
158
155
|
throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
|
159
156
|
}
|
160
|
-
const tx =
|
157
|
+
const tx = data.transaction
|
161
158
|
|
162
159
|
const ctx = new AptosContext(
|
163
160
|
processor.moduleName,
|
@@ -169,18 +166,22 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
169
166
|
processor.config.baseLabels
|
170
167
|
)
|
171
168
|
if (tx) {
|
172
|
-
|
173
|
-
if (payload.type === 'multisig_payload') {
|
174
|
-
payload = (payload as MultisigPayloadResponse).transaction_payload ?? payload
|
175
|
-
}
|
176
|
-
|
177
|
-
const decoded = await processor.coder.decodeFunctionPayload(payload as EntryFunctionPayloadResponse)
|
169
|
+
const decoded = await data.decodeCall(processor.coder)
|
178
170
|
await handler(decoded, ctx)
|
179
171
|
}
|
180
172
|
return ctx.stopAndGetResult()
|
181
173
|
},
|
182
174
|
filters: _filters,
|
183
|
-
fetchConfig: _fetchConfig
|
175
|
+
fetchConfig: _fetchConfig,
|
176
|
+
partitionHandler: async (data: AptCall): Promise<string | undefined> => {
|
177
|
+
const p = handlerOptions?.partitionKey
|
178
|
+
if (!p) return undefined
|
179
|
+
if (typeof p === 'function') {
|
180
|
+
const decoded = await data.decodeCall(processor.coder)
|
181
|
+
return p(decoded)
|
182
|
+
}
|
183
|
+
return p
|
184
|
+
}
|
184
185
|
})
|
185
186
|
return this
|
186
187
|
}
|
@@ -191,9 +192,9 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
191
192
|
includeFailed?: boolean
|
192
193
|
sender?: string
|
193
194
|
},
|
194
|
-
|
195
|
+
handleOptions?: HandlerOptions<MoveFetchConfig, UserTransactionResponse>
|
195
196
|
): this {
|
196
|
-
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...
|
197
|
+
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handleOptions })
|
197
198
|
|
198
199
|
const processor = this
|
199
200
|
const filter: FunctionNameAndCallFilter = { function: '', includeFailed: transactionFilter?.includeFailed }
|
@@ -210,10 +211,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
210
211
|
if (!data.rawTransaction) {
|
211
212
|
throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
|
212
213
|
}
|
213
|
-
const call =
|
214
|
-
if (call.events == null) {
|
215
|
-
call.events = []
|
216
|
-
}
|
214
|
+
const call = data.transaction
|
217
215
|
const ctx = new AptosContext(
|
218
216
|
processor.moduleName,
|
219
217
|
processor.config.network,
|
@@ -227,19 +225,31 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
227
225
|
return ctx.stopAndGetResult()
|
228
226
|
},
|
229
227
|
filters: [filter],
|
230
|
-
fetchConfig: _fetchConfig
|
228
|
+
fetchConfig: _fetchConfig,
|
229
|
+
partitionHandler: async (data: AptCall): Promise<string | undefined> => {
|
230
|
+
const p = handleOptions?.partitionKey
|
231
|
+
if (!p) return undefined
|
232
|
+
if (typeof p === 'function') {
|
233
|
+
return p(data.transaction)
|
234
|
+
}
|
235
|
+
return p
|
236
|
+
}
|
231
237
|
})
|
232
238
|
return this
|
233
239
|
}
|
234
240
|
|
235
|
-
public onEvent(
|
236
|
-
|
241
|
+
public onEvent(
|
242
|
+
handler: (event: Event, ctx: AptosContext) => void,
|
243
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, Event>
|
244
|
+
): this {
|
245
|
+
this.onMoveEvent(handler, { type: '' }, handlerOptions)
|
237
246
|
return this
|
238
247
|
}
|
239
248
|
|
240
249
|
public onResourceChange<T>(
|
241
250
|
handler: (changes: ResourceChange<T>[], ctx: AptosResourcesContext) => PromiseOrVoid,
|
242
|
-
typeDesc: TypeDescriptor<T> | string
|
251
|
+
typeDesc: TypeDescriptor<T> | string,
|
252
|
+
handlerOptions?: HandlerOptions<object, ResourceChange<T>[]>
|
243
253
|
): this {
|
244
254
|
if (typeof typeDesc === 'string') {
|
245
255
|
typeDesc = parseMoveType(typeDesc)
|
@@ -254,6 +264,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
254
264
|
if (!data.rawResources || !data.version) {
|
255
265
|
throw new ServerError(Status.INVALID_ARGUMENT, 'resource is null')
|
256
266
|
}
|
267
|
+
const aptResource = new AptResource(data)
|
257
268
|
const timestamp = Number(data.timestampMicros)
|
258
269
|
const ctx = new AptosResourcesContext(
|
259
270
|
processor.config.network,
|
@@ -262,10 +273,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
262
273
|
timestamp,
|
263
274
|
processor.config.baseLabels
|
264
275
|
)
|
265
|
-
let resources = await
|
266
|
-
data.rawResources.map((r) => JSON.parse(r)),
|
267
|
-
ctx.coder
|
268
|
-
)
|
276
|
+
let resources = await aptResource.decodeResources<T>(processor.coder)
|
269
277
|
|
270
278
|
if (hasAny) {
|
271
279
|
resources = resources.filter((r) => {
|
@@ -279,7 +287,16 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
279
287
|
}
|
280
288
|
return ctx.stopAndGetResult()
|
281
289
|
},
|
282
|
-
type: hasAny ? typeDesc.qname : typeDesc.getNormalizedSignature()
|
290
|
+
type: hasAny ? typeDesc.qname : typeDesc.getNormalizedSignature(),
|
291
|
+
partitionHandler: async (data): Promise<string | undefined> => {
|
292
|
+
const p = handlerOptions?.partitionKey
|
293
|
+
if (!p) return undefined
|
294
|
+
if (typeof p === 'function') {
|
295
|
+
const resources = await data.decodeResources<T>(processor.coder)
|
296
|
+
return p(resources)
|
297
|
+
}
|
298
|
+
return p
|
299
|
+
}
|
283
300
|
})
|
284
301
|
return this
|
285
302
|
}
|
@@ -288,7 +305,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
288
305
|
handler: (transaction: T, ctx: CT) => PromiseOrVoid,
|
289
306
|
timeInterval: HandleInterval | undefined,
|
290
307
|
versionInterval: HandleInterval | undefined,
|
291
|
-
|
308
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
292
309
|
): this {
|
293
310
|
const processor = this
|
294
311
|
this.transactionIntervalHandlers.push({
|
@@ -317,7 +334,16 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
317
334
|
},
|
318
335
|
timeIntervalInMinutes: timeInterval,
|
319
336
|
versionInterval: versionInterval,
|
320
|
-
fetchConfig: { ...DEFAULT_FETCH_CONFIG, ...
|
337
|
+
fetchConfig: { ...DEFAULT_FETCH_CONFIG, ...handlerOptions },
|
338
|
+
partitionHandler: async (data): Promise<string | undefined> => {
|
339
|
+
const p = handlerOptions?.partitionKey
|
340
|
+
if (!p) return undefined
|
341
|
+
if (typeof p === 'function') {
|
342
|
+
const transaction = JSON.parse(data.rawTransaction) as T
|
343
|
+
return p(transaction)
|
344
|
+
}
|
345
|
+
return p
|
346
|
+
}
|
321
347
|
})
|
322
348
|
return this
|
323
349
|
}
|
@@ -326,7 +352,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
326
352
|
handler: (transaction: T, ctx: CT) => PromiseOrVoid,
|
327
353
|
timeIntervalInMinutes = 60,
|
328
354
|
backfillTimeIntervalInMinutes = 240,
|
329
|
-
|
355
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
330
356
|
): this {
|
331
357
|
return this.onInterval(
|
332
358
|
handler,
|
@@ -335,7 +361,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
335
361
|
backfillInterval: backfillTimeIntervalInMinutes
|
336
362
|
},
|
337
363
|
undefined,
|
338
|
-
|
364
|
+
handlerOptions
|
339
365
|
)
|
340
366
|
}
|
341
367
|
|
@@ -343,13 +369,13 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
343
369
|
handler: (transaction: T, context: CT) => PromiseOrVoid,
|
344
370
|
versionInterval = 100000,
|
345
371
|
backfillVersionInterval = 400000,
|
346
|
-
|
372
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
347
373
|
): this {
|
348
374
|
return this.onInterval(
|
349
375
|
handler,
|
350
376
|
undefined,
|
351
377
|
{ recentInterval: versionInterval, backfillInterval: backfillVersionInterval },
|
352
|
-
|
378
|
+
handlerOptions
|
353
379
|
)
|
354
380
|
}
|
355
381
|
|
@@ -376,6 +402,7 @@ export class AptosModulesProcessor extends AptosTransactionProcessor<
|
|
376
402
|
|
377
403
|
export class AptosGlobalProcessor {
|
378
404
|
private baseProcessor
|
405
|
+
|
379
406
|
private constructor(options: AptosBindOptions) {
|
380
407
|
this.baseProcessor = new AptosTransactionProcessor('*', options)
|
381
408
|
return proxyProcessor(this)
|
@@ -404,9 +431,9 @@ export class AptosGlobalProcessor {
|
|
404
431
|
) => PromiseOrVoid,
|
405
432
|
timeIntervalInMinutes = 60,
|
406
433
|
backfillTimeIntervalInMinutes = 240,
|
407
|
-
|
434
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, GeneralTransactionResponse>
|
408
435
|
): this {
|
409
|
-
this.baseProcessor.onTimeInterval(handler, timeIntervalInMinutes, backfillTimeIntervalInMinutes,
|
436
|
+
this.baseProcessor.onTimeInterval(handler, timeIntervalInMinutes, backfillTimeIntervalInMinutes, handlerOptions)
|
410
437
|
return this
|
411
438
|
}
|
412
439
|
|
@@ -417,9 +444,9 @@ export class AptosGlobalProcessor {
|
|
417
444
|
) => PromiseOrVoid,
|
418
445
|
versionInterval = 100000,
|
419
446
|
backfillVersionInterval = 400000,
|
420
|
-
|
447
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, GeneralTransactionResponse>
|
421
448
|
): this {
|
422
|
-
this.baseProcessor.onVersionInterval(handler, versionInterval, backfillVersionInterval,
|
449
|
+
this.baseProcessor.onVersionInterval(handler, versionInterval, backfillVersionInterval, handlerOptions)
|
423
450
|
return this
|
424
451
|
}
|
425
452
|
}
|
@@ -453,7 +480,7 @@ export class AptosResourcesProcessor {
|
|
453
480
|
timeInterval: HandleInterval | undefined,
|
454
481
|
versionInterval: HandleInterval | undefined,
|
455
482
|
type: string | undefined,
|
456
|
-
|
483
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>,
|
457
484
|
handlerName = getHandlerName()
|
458
485
|
): this {
|
459
486
|
const processor = this
|
@@ -463,6 +490,7 @@ export class AptosResourcesProcessor {
|
|
463
490
|
if (data.timestampMicros > Number.MAX_SAFE_INTEGER) {
|
464
491
|
throw new ServerError(Status.INVALID_ARGUMENT, 'timestamp is too large')
|
465
492
|
}
|
493
|
+
const aptResource = new AptResource(data)
|
466
494
|
const timestamp = Number(data.timestampMicros)
|
467
495
|
|
468
496
|
const ctx = new AptosResourcesContext(
|
@@ -472,13 +500,22 @@ export class AptosResourcesProcessor {
|
|
472
500
|
timestamp,
|
473
501
|
processor.config.baseLabels
|
474
502
|
)
|
475
|
-
await handler(
|
503
|
+
await handler(aptResource.resources, ctx)
|
476
504
|
return ctx.stopAndGetResult()
|
477
505
|
},
|
478
506
|
timeIntervalInMinutes: timeInterval,
|
479
507
|
versionInterval: versionInterval,
|
480
508
|
type: type,
|
481
|
-
fetchConfig: { ...DEFAULT_RESOURCE_FETCH_CONFIG, ...
|
509
|
+
fetchConfig: { ...DEFAULT_RESOURCE_FETCH_CONFIG, ...handlerOptions },
|
510
|
+
partitionHandler: async (data: Data_AptResource): Promise<string | undefined> => {
|
511
|
+
const p = handlerOptions?.partitionKey
|
512
|
+
if (!p) return undefined
|
513
|
+
if (typeof p === 'function') {
|
514
|
+
const aptResource = new AptResource(data)
|
515
|
+
return p(aptResource.resources)
|
516
|
+
}
|
517
|
+
return p
|
518
|
+
}
|
482
519
|
})
|
483
520
|
return this
|
484
521
|
}
|
@@ -488,7 +525,7 @@ export class AptosResourcesProcessor {
|
|
488
525
|
timeIntervalInMinutes = 60,
|
489
526
|
backfillTimeIntervalInMinutes = 240,
|
490
527
|
type?: string,
|
491
|
-
|
528
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
492
529
|
): this {
|
493
530
|
return this.onInterval(
|
494
531
|
handler,
|
@@ -498,7 +535,7 @@ export class AptosResourcesProcessor {
|
|
498
535
|
},
|
499
536
|
undefined,
|
500
537
|
type,
|
501
|
-
|
538
|
+
handlerOptions
|
502
539
|
)
|
503
540
|
}
|
504
541
|
|
@@ -507,14 +544,14 @@ export class AptosResourcesProcessor {
|
|
507
544
|
versionInterval = 100000,
|
508
545
|
backfillVersionInterval = 400000,
|
509
546
|
typePrefix?: string,
|
510
|
-
|
547
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
511
548
|
): this {
|
512
549
|
return this.onInterval(
|
513
550
|
handler,
|
514
551
|
undefined,
|
515
552
|
{ recentInterval: versionInterval, backfillInterval: backfillVersionInterval },
|
516
553
|
typePrefix,
|
517
|
-
|
554
|
+
handlerOptions
|
518
555
|
)
|
519
556
|
}
|
520
557
|
|
@@ -538,6 +575,7 @@ export class AptosResourcesProcessor {
|
|
538
575
|
if (!data.rawResources || !data.version) {
|
539
576
|
throw new ServerError(Status.INVALID_ARGUMENT, 'resource is null')
|
540
577
|
}
|
578
|
+
const aptResource = new AptResource(data)
|
541
579
|
const ctx = new AptosResourcesContext(
|
542
580
|
processor.config.network,
|
543
581
|
processor.config.address,
|
@@ -546,10 +584,11 @@ export class AptosResourcesProcessor {
|
|
546
584
|
processor.config.baseLabels
|
547
585
|
)
|
548
586
|
|
549
|
-
let resources = (await
|
550
|
-
|
551
|
-
|
552
|
-
|
587
|
+
let resources = (await aptResource.decodeResources<T>(ctx.coder)) as NestedDecodedStruct<
|
588
|
+
MoveResource,
|
589
|
+
WriteSetChangeWriteResource,
|
590
|
+
T
|
591
|
+
>[]
|
553
592
|
|
554
593
|
if (hasAny) {
|
555
594
|
resources = resources.filter((r) => {
|
@@ -581,6 +620,7 @@ function configure(options: AptosBindOptions): IndexConfigure {
|
|
581
620
|
|
582
621
|
return {
|
583
622
|
startVersion: startVersion,
|
623
|
+
endVersion: options.endVersion ? BigInt(options.endVersion) : undefined,
|
584
624
|
address: options.address === ALL_ADDRESS ? ALL_ADDRESS : accountTypeString(options.address), // aptos don't use address string in api, so only use type string
|
585
625
|
network: options.network || AptosNetwork.MAIN_NET,
|
586
626
|
baseLabels: options.baseLabels
|
@@ -7,6 +7,7 @@ import { HandleInterval, MoveAccountFetchConfig } from '@sentio/protos'
|
|
7
7
|
import { MoveResource } from '@aptos-labs/ts-sdk'
|
8
8
|
import { PromiseOrVoid } from '../core/index.js'
|
9
9
|
import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
|
10
|
+
import { HandlerOptions } from './models.js'
|
10
11
|
|
11
12
|
export class AptosResourceProcessorTemplateState extends ListStateStorage<AptosResourceProcessorTemplate> {
|
12
13
|
static INSTANCE = new AptosResourceProcessorTemplateState()
|
@@ -18,7 +19,7 @@ class Handler {
|
|
18
19
|
timeIntervalInMinutes?: HandleInterval
|
19
20
|
handlerName: string
|
20
21
|
handler: (resources: MoveResource[], ctx: AptosResourcesContext) => PromiseOrVoid
|
21
|
-
|
22
|
+
handlerOptions: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
22
23
|
}
|
23
24
|
|
24
25
|
export class AptosResourceProcessorTemplate {
|
@@ -55,7 +56,7 @@ export class AptosResourceProcessorTemplate {
|
|
55
56
|
h.timeIntervalInMinutes,
|
56
57
|
h.checkpointInterval,
|
57
58
|
h.type,
|
58
|
-
h.
|
59
|
+
h.handlerOptions,
|
59
60
|
h.handlerName
|
60
61
|
)
|
61
62
|
}
|
@@ -90,7 +91,7 @@ export class AptosResourceProcessorTemplate {
|
|
90
91
|
timeInterval: HandleInterval | undefined,
|
91
92
|
checkpointInterval: HandleInterval | undefined,
|
92
93
|
type: string | undefined,
|
93
|
-
|
94
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
94
95
|
): this {
|
95
96
|
this.handlers.push({
|
96
97
|
handlerName: getHandlerName(),
|
@@ -98,7 +99,7 @@ export class AptosResourceProcessorTemplate {
|
|
98
99
|
timeIntervalInMinutes: timeInterval,
|
99
100
|
checkpointInterval: checkpointInterval,
|
100
101
|
type,
|
101
|
-
|
102
|
+
handlerOptions: { ...DEFAULT_RESOURCE_FETCH_CONFIG, ...handlerOptions }
|
102
103
|
})
|
103
104
|
return this
|
104
105
|
}
|
@@ -108,7 +109,7 @@ export class AptosResourceProcessorTemplate {
|
|
108
109
|
timeIntervalInMinutes = 60,
|
109
110
|
backfillTimeIntervalInMinutes = 240,
|
110
111
|
type?: string,
|
111
|
-
|
112
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
112
113
|
): this {
|
113
114
|
return this.onInterval(
|
114
115
|
handler,
|
@@ -118,7 +119,7 @@ export class AptosResourceProcessorTemplate {
|
|
118
119
|
},
|
119
120
|
undefined,
|
120
121
|
type,
|
121
|
-
|
122
|
+
handlerOptions
|
122
123
|
)
|
123
124
|
}
|
124
125
|
|
@@ -127,14 +128,14 @@ export class AptosResourceProcessorTemplate {
|
|
127
128
|
checkpointInterval = 100000,
|
128
129
|
backfillCheckpointInterval = 400000,
|
129
130
|
type?: string,
|
130
|
-
|
131
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
131
132
|
): this {
|
132
133
|
return this.onInterval(
|
133
134
|
handler,
|
134
135
|
undefined,
|
135
136
|
{ recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },
|
136
137
|
type,
|
137
|
-
|
138
|
+
handlerOptions
|
138
139
|
)
|
139
140
|
}
|
140
141
|
}
|