@sentio/sdk 2.59.0-rc.23 → 2.59.0-rc.25
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 +6 -5
- package/lib/aptos/aptos-plugin.d.ts.map +1 -1
- package/lib/aptos/aptos-plugin.js +31 -33
- package/lib/aptos/aptos-plugin.js.map +1 -1
- package/lib/aptos/aptos-processor.d.ts +19 -19
- package/lib/aptos/aptos-processor.d.ts.map +1 -1
- package/lib/aptos/aptos-processor.js +95 -44
- 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 +27 -0
- package/lib/aptos/codegen/codegen.js.map +1 -1
- package/lib/aptos/data.d.ts +28 -3
- package/lib/aptos/data.d.ts.map +1 -1
- package/lib/aptos/data.js +61 -0
- package/lib/aptos/data.js.map +1 -1
- 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/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/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 +2 -0
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -0
- package/lib/core/index.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 +18 -17
- package/lib/eth/base-processor.d.ts.map +1 -1
- package/lib/eth/base-processor.js +147 -26
- package/lib/eth/base-processor.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 +4 -1
- package/lib/eth/eth-plugin.d.ts.map +1 -1
- package/lib/eth/eth-plugin.js +42 -1
- 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 +90 -19
- 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 +4 -0
- package/lib/move/filter.d.ts.map +1 -1
- package/lib/move/filter.js +4 -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 +27 -2
- package/lib/stark/starknet-processor.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-plugin.d.ts +6 -3
- package/lib/sui/sui-plugin.d.ts.map +1 -1
- package/lib/sui/sui-plugin.js +59 -20
- package/lib/sui/sui-plugin.js.map +1 -1
- package/lib/sui/sui-processor.d.ts +5 -4
- package/lib/sui/sui-processor.d.ts.map +1 -1
- package/lib/sui/sui-processor.js +47 -11
- package/lib/sui/sui-processor.js.map +1 -1
- package/package.json +3 -3
- package/src/aptos/aptos-plugin.ts +35 -39
- package/src/aptos/aptos-processor.ts +104 -60
- package/src/aptos/aptos-resource-processor-template.ts +9 -8
- package/src/aptos/builtin/0x1.ts +1565 -664
- package/src/aptos/builtin/0x3.ts +302 -130
- package/src/aptos/builtin/0x4.ts +123 -56
- package/src/aptos/codegen/codegen.ts +34 -1
- package/src/aptos/data.ts +78 -3
- package/src/aptos/index.ts +2 -0
- package/src/aptos/models.ts +2 -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/handler-options.ts +40 -0
- package/src/core/index.ts +5 -0
- 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 +139 -33
- 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 +55 -3
- 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 +89 -13
- package/src/fuel/types.ts +3 -0
- package/src/move/filter.ts +4 -0
- package/src/move/shared-network-codegen.ts +5 -4
- package/src/solana/solana-processor.ts +28 -6
- package/src/stark/starknet-processor.ts +28 -2
- 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-plugin.ts +68 -22
- package/src/sui/sui-processor.ts +48 -11
@@ -1,18 +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 {
|
14
|
+
import { Data_AptResource, HandleInterval, MoveAccountFetchConfig, MoveFetchConfig } from '@sentio/protos'
|
16
15
|
import { ServerError, Status } from 'nice-grpc'
|
17
16
|
import {
|
18
17
|
accountTypeString,
|
@@ -26,11 +25,11 @@ import {
|
|
26
25
|
TransactionIntervalHandler
|
27
26
|
} from '../move/index.js'
|
28
27
|
import { ALL_ADDRESS, Labels, PromiseOrVoid } from '../core/index.js'
|
29
|
-
import {
|
30
|
-
import {
|
31
|
-
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'
|
32
31
|
import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
|
33
|
-
import { AptEvent } from './data.js'
|
32
|
+
import { AptCall, AptEvent, AptResource } from './data.js'
|
34
33
|
|
35
34
|
const DEFAULT_FETCH_CONFIG: MoveFetchConfig = {
|
36
35
|
resourceChanges: false,
|
@@ -61,8 +60,8 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
61
60
|
readonly moduleName: string
|
62
61
|
config: IndexConfigure
|
63
62
|
eventHandlers: EventHandler<AptEvent>[] = []
|
64
|
-
callHandlers: CallHandler<
|
65
|
-
resourceChangeHandlers: ResourceChangeHandler<
|
63
|
+
callHandlers: CallHandler<AptCall>[] = []
|
64
|
+
resourceChangeHandlers: ResourceChangeHandler<AptResource>[] = []
|
66
65
|
transactionIntervalHandlers: TransactionIntervalHandler[] = []
|
67
66
|
coder: MoveCoder
|
68
67
|
|
@@ -79,11 +78,10 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
79
78
|
protected onMoveEvent(
|
80
79
|
handler: (event: Event, ctx: AptosContext) => PromiseOrVoid,
|
81
80
|
filter: EventFilter | EventFilter[],
|
82
|
-
|
83
|
-
partitionHandler?: (evt: Event) => Promise<string | undefined>
|
81
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, Event>
|
84
82
|
): this {
|
85
83
|
let _filters: EventFilter[] = []
|
86
|
-
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...
|
84
|
+
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
87
85
|
|
88
86
|
if (Array.isArray(filter)) {
|
89
87
|
_filters = filter
|
@@ -120,8 +118,13 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
120
118
|
filters: _filters,
|
121
119
|
fetchConfig: _fetchConfig,
|
122
120
|
partitionHandler: async (data: AptEvent): Promise<string | undefined> => {
|
123
|
-
const
|
124
|
-
|
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
|
125
128
|
}
|
126
129
|
})
|
127
130
|
return this
|
@@ -130,10 +133,10 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
130
133
|
protected onEntryFunctionCall(
|
131
134
|
handler: (call: EntryFunctionPayloadResponse, ctx: AptosContext) => PromiseOrVoid,
|
132
135
|
filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],
|
133
|
-
|
136
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, EntryFunctionPayloadResponse>
|
134
137
|
): this {
|
135
138
|
let _filters: FunctionNameAndCallFilter[] = []
|
136
|
-
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...
|
139
|
+
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
|
137
140
|
|
138
141
|
if (Array.isArray(filter)) {
|
139
142
|
_filters = filter
|
@@ -151,7 +154,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
151
154
|
if (!data.rawTransaction) {
|
152
155
|
throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
|
153
156
|
}
|
154
|
-
const tx =
|
157
|
+
const tx = data.transaction
|
155
158
|
|
156
159
|
const ctx = new AptosContext(
|
157
160
|
processor.moduleName,
|
@@ -163,18 +166,22 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
163
166
|
processor.config.baseLabels
|
164
167
|
)
|
165
168
|
if (tx) {
|
166
|
-
|
167
|
-
if (payload.type === 'multisig_payload') {
|
168
|
-
payload = (payload as MultisigPayloadResponse).transaction_payload ?? payload
|
169
|
-
}
|
170
|
-
|
171
|
-
const decoded = await processor.coder.decodeFunctionPayload(payload as EntryFunctionPayloadResponse)
|
169
|
+
const decoded = await data.decodeCall(processor.coder)
|
172
170
|
await handler(decoded, ctx)
|
173
171
|
}
|
174
172
|
return ctx.stopAndGetResult()
|
175
173
|
},
|
176
174
|
filters: _filters,
|
177
|
-
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
|
+
}
|
178
185
|
})
|
179
186
|
return this
|
180
187
|
}
|
@@ -185,9 +192,9 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
185
192
|
includeFailed?: boolean
|
186
193
|
sender?: string
|
187
194
|
},
|
188
|
-
|
195
|
+
handleOptions?: HandlerOptions<MoveFetchConfig, UserTransactionResponse>
|
189
196
|
): this {
|
190
|
-
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...
|
197
|
+
const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handleOptions })
|
191
198
|
|
192
199
|
const processor = this
|
193
200
|
const filter: FunctionNameAndCallFilter = { function: '', includeFailed: transactionFilter?.includeFailed }
|
@@ -204,10 +211,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
204
211
|
if (!data.rawTransaction) {
|
205
212
|
throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
|
206
213
|
}
|
207
|
-
const call =
|
208
|
-
if (call.events == null) {
|
209
|
-
call.events = []
|
210
|
-
}
|
214
|
+
const call = data.transaction
|
211
215
|
const ctx = new AptosContext(
|
212
216
|
processor.moduleName,
|
213
217
|
processor.config.network,
|
@@ -221,19 +225,31 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
221
225
|
return ctx.stopAndGetResult()
|
222
226
|
},
|
223
227
|
filters: [filter],
|
224
|
-
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
|
+
}
|
225
237
|
})
|
226
238
|
return this
|
227
239
|
}
|
228
240
|
|
229
|
-
public onEvent(
|
230
|
-
|
241
|
+
public onEvent(
|
242
|
+
handler: (event: Event, ctx: AptosContext) => void,
|
243
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, Event>
|
244
|
+
): this {
|
245
|
+
this.onMoveEvent(handler, { type: '' }, handlerOptions)
|
231
246
|
return this
|
232
247
|
}
|
233
248
|
|
234
249
|
public onResourceChange<T>(
|
235
250
|
handler: (changes: ResourceChange<T>[], ctx: AptosResourcesContext) => PromiseOrVoid,
|
236
|
-
typeDesc: TypeDescriptor<T> | string
|
251
|
+
typeDesc: TypeDescriptor<T> | string,
|
252
|
+
handlerOptions?: HandlerOptions<object, ResourceChange<T>[]>
|
237
253
|
): this {
|
238
254
|
if (typeof typeDesc === 'string') {
|
239
255
|
typeDesc = parseMoveType(typeDesc)
|
@@ -248,6 +264,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
248
264
|
if (!data.rawResources || !data.version) {
|
249
265
|
throw new ServerError(Status.INVALID_ARGUMENT, 'resource is null')
|
250
266
|
}
|
267
|
+
const aptResource = new AptResource(data)
|
251
268
|
const timestamp = Number(data.timestampMicros)
|
252
269
|
const ctx = new AptosResourcesContext(
|
253
270
|
processor.config.network,
|
@@ -256,10 +273,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
256
273
|
timestamp,
|
257
274
|
processor.config.baseLabels
|
258
275
|
)
|
259
|
-
let resources = await
|
260
|
-
data.rawResources.map((r) => JSON.parse(r)),
|
261
|
-
ctx.coder
|
262
|
-
)
|
276
|
+
let resources = await aptResource.decodeResources<T>(processor.coder)
|
263
277
|
|
264
278
|
if (hasAny) {
|
265
279
|
resources = resources.filter((r) => {
|
@@ -273,7 +287,16 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
273
287
|
}
|
274
288
|
return ctx.stopAndGetResult()
|
275
289
|
},
|
276
|
-
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
|
+
}
|
277
300
|
})
|
278
301
|
return this
|
279
302
|
}
|
@@ -282,7 +305,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
282
305
|
handler: (transaction: T, ctx: CT) => PromiseOrVoid,
|
283
306
|
timeInterval: HandleInterval | undefined,
|
284
307
|
versionInterval: HandleInterval | undefined,
|
285
|
-
|
308
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
286
309
|
): this {
|
287
310
|
const processor = this
|
288
311
|
this.transactionIntervalHandlers.push({
|
@@ -311,7 +334,16 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
311
334
|
},
|
312
335
|
timeIntervalInMinutes: timeInterval,
|
313
336
|
versionInterval: versionInterval,
|
314
|
-
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
|
+
}
|
315
347
|
})
|
316
348
|
return this
|
317
349
|
}
|
@@ -320,7 +352,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
320
352
|
handler: (transaction: T, ctx: CT) => PromiseOrVoid,
|
321
353
|
timeIntervalInMinutes = 60,
|
322
354
|
backfillTimeIntervalInMinutes = 240,
|
323
|
-
|
355
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
324
356
|
): this {
|
325
357
|
return this.onInterval(
|
326
358
|
handler,
|
@@ -329,7 +361,7 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
329
361
|
backfillInterval: backfillTimeIntervalInMinutes
|
330
362
|
},
|
331
363
|
undefined,
|
332
|
-
|
364
|
+
handlerOptions
|
333
365
|
)
|
334
366
|
}
|
335
367
|
|
@@ -337,13 +369,13 @@ export class AptosTransactionProcessor<T extends GeneralTransactionResponse, CT
|
|
337
369
|
handler: (transaction: T, context: CT) => PromiseOrVoid,
|
338
370
|
versionInterval = 100000,
|
339
371
|
backfillVersionInterval = 400000,
|
340
|
-
|
372
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, T>
|
341
373
|
): this {
|
342
374
|
return this.onInterval(
|
343
375
|
handler,
|
344
376
|
undefined,
|
345
377
|
{ recentInterval: versionInterval, backfillInterval: backfillVersionInterval },
|
346
|
-
|
378
|
+
handlerOptions
|
347
379
|
)
|
348
380
|
}
|
349
381
|
|
@@ -399,9 +431,9 @@ export class AptosGlobalProcessor {
|
|
399
431
|
) => PromiseOrVoid,
|
400
432
|
timeIntervalInMinutes = 60,
|
401
433
|
backfillTimeIntervalInMinutes = 240,
|
402
|
-
|
434
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, GeneralTransactionResponse>
|
403
435
|
): this {
|
404
|
-
this.baseProcessor.onTimeInterval(handler, timeIntervalInMinutes, backfillTimeIntervalInMinutes,
|
436
|
+
this.baseProcessor.onTimeInterval(handler, timeIntervalInMinutes, backfillTimeIntervalInMinutes, handlerOptions)
|
405
437
|
return this
|
406
438
|
}
|
407
439
|
|
@@ -412,9 +444,9 @@ export class AptosGlobalProcessor {
|
|
412
444
|
) => PromiseOrVoid,
|
413
445
|
versionInterval = 100000,
|
414
446
|
backfillVersionInterval = 400000,
|
415
|
-
|
447
|
+
handlerOptions?: HandlerOptions<MoveFetchConfig, GeneralTransactionResponse>
|
416
448
|
): this {
|
417
|
-
this.baseProcessor.onVersionInterval(handler, versionInterval, backfillVersionInterval,
|
449
|
+
this.baseProcessor.onVersionInterval(handler, versionInterval, backfillVersionInterval, handlerOptions)
|
418
450
|
return this
|
419
451
|
}
|
420
452
|
}
|
@@ -448,7 +480,7 @@ export class AptosResourcesProcessor {
|
|
448
480
|
timeInterval: HandleInterval | undefined,
|
449
481
|
versionInterval: HandleInterval | undefined,
|
450
482
|
type: string | undefined,
|
451
|
-
|
483
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>,
|
452
484
|
handlerName = getHandlerName()
|
453
485
|
): this {
|
454
486
|
const processor = this
|
@@ -458,6 +490,7 @@ export class AptosResourcesProcessor {
|
|
458
490
|
if (data.timestampMicros > Number.MAX_SAFE_INTEGER) {
|
459
491
|
throw new ServerError(Status.INVALID_ARGUMENT, 'timestamp is too large')
|
460
492
|
}
|
493
|
+
const aptResource = new AptResource(data)
|
461
494
|
const timestamp = Number(data.timestampMicros)
|
462
495
|
|
463
496
|
const ctx = new AptosResourcesContext(
|
@@ -467,13 +500,22 @@ export class AptosResourcesProcessor {
|
|
467
500
|
timestamp,
|
468
501
|
processor.config.baseLabels
|
469
502
|
)
|
470
|
-
await handler(
|
503
|
+
await handler(aptResource.resources, ctx)
|
471
504
|
return ctx.stopAndGetResult()
|
472
505
|
},
|
473
506
|
timeIntervalInMinutes: timeInterval,
|
474
507
|
versionInterval: versionInterval,
|
475
508
|
type: type,
|
476
|
-
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
|
+
}
|
477
519
|
})
|
478
520
|
return this
|
479
521
|
}
|
@@ -483,7 +525,7 @@ export class AptosResourcesProcessor {
|
|
483
525
|
timeIntervalInMinutes = 60,
|
484
526
|
backfillTimeIntervalInMinutes = 240,
|
485
527
|
type?: string,
|
486
|
-
|
528
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
487
529
|
): this {
|
488
530
|
return this.onInterval(
|
489
531
|
handler,
|
@@ -493,7 +535,7 @@ export class AptosResourcesProcessor {
|
|
493
535
|
},
|
494
536
|
undefined,
|
495
537
|
type,
|
496
|
-
|
538
|
+
handlerOptions
|
497
539
|
)
|
498
540
|
}
|
499
541
|
|
@@ -502,14 +544,14 @@ export class AptosResourcesProcessor {
|
|
502
544
|
versionInterval = 100000,
|
503
545
|
backfillVersionInterval = 400000,
|
504
546
|
typePrefix?: string,
|
505
|
-
|
547
|
+
handlerOptions?: HandlerOptions<MoveAccountFetchConfig, MoveResource[]>
|
506
548
|
): this {
|
507
549
|
return this.onInterval(
|
508
550
|
handler,
|
509
551
|
undefined,
|
510
552
|
{ recentInterval: versionInterval, backfillInterval: backfillVersionInterval },
|
511
553
|
typePrefix,
|
512
|
-
|
554
|
+
handlerOptions
|
513
555
|
)
|
514
556
|
}
|
515
557
|
|
@@ -533,6 +575,7 @@ export class AptosResourcesProcessor {
|
|
533
575
|
if (!data.rawResources || !data.version) {
|
534
576
|
throw new ServerError(Status.INVALID_ARGUMENT, 'resource is null')
|
535
577
|
}
|
578
|
+
const aptResource = new AptResource(data)
|
536
579
|
const ctx = new AptosResourcesContext(
|
537
580
|
processor.config.network,
|
538
581
|
processor.config.address,
|
@@ -541,10 +584,11 @@ export class AptosResourcesProcessor {
|
|
541
584
|
processor.config.baseLabels
|
542
585
|
)
|
543
586
|
|
544
|
-
let resources = (await
|
545
|
-
|
546
|
-
|
547
|
-
|
587
|
+
let resources = (await aptResource.decodeResources<T>(ctx.coder)) as NestedDecodedStruct<
|
588
|
+
MoveResource,
|
589
|
+
WriteSetChangeWriteResource,
|
590
|
+
T
|
591
|
+
>[]
|
548
592
|
|
549
593
|
if (hasAny) {
|
550
594
|
resources = resources.filter((r) => {
|
@@ -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
|
}
|