@sentio/sdk 3.9.0-rc.9 → 4.0.0-rc.2
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 +4 -4
- package/lib/aptos/aptos-processor.d.ts.map +1 -1
- package/lib/aptos/aptos-processor.js +25 -25
- package/lib/aptos/aptos-processor.js.map +1 -1
- package/lib/aptos/aptos-resource-processor-template.d.ts +1 -1
- package/lib/aptos/aptos-resource-processor-template.d.ts.map +1 -1
- package/lib/aptos/aptos-resource-processor-template.js +10 -5
- package/lib/aptos/aptos-resource-processor-template.js.map +1 -1
- package/lib/aptos/context.d.ts +1 -1
- package/lib/aptos/context.d.ts.map +1 -1
- package/lib/aptos/context.js +8 -6
- package/lib/aptos/context.js.map +1 -1
- package/lib/aptos/data.d.ts +4 -4
- package/lib/aptos/data.d.ts.map +1 -1
- package/lib/core/base-context.d.ts +3 -2
- package/lib/core/base-context.d.ts.map +1 -1
- package/lib/core/base-context.js +12 -11
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/core-plugin.d.ts.map +1 -1
- package/lib/core/core-plugin.js +6 -4
- package/lib/core/core-plugin.js.map +1 -1
- package/lib/core/event-logger.d.ts +10 -2
- package/lib/core/event-logger.d.ts.map +1 -1
- package/lib/core/event-logger.js +42 -26
- package/lib/core/event-logger.js.map +1 -1
- package/lib/core/exporter.d.ts.map +1 -1
- package/lib/core/exporter.js +5 -3
- package/lib/core/exporter.js.map +1 -1
- package/lib/core/handler-options.d.ts +1 -1
- package/lib/core/handler-options.d.ts.map +1 -1
- package/lib/core/handler-register.d.ts +1 -1
- package/lib/core/handler-register.d.ts.map +1 -1
- package/lib/core/handler-register.js +2 -2
- package/lib/core/handler-register.js.map +1 -1
- package/lib/core/meter.d.ts +4 -3
- package/lib/core/meter.d.ts.map +1 -1
- package/lib/core/meter.js +5 -4
- package/lib/core/meter.js.map +1 -1
- package/lib/core/normalization.d.ts +1 -1
- package/lib/core/normalization.d.ts.map +1 -1
- package/lib/core/normalization.js +41 -31
- package/lib/core/normalization.js.map +1 -1
- package/lib/core/numberish.d.ts +1 -1
- package/lib/core/numberish.d.ts.map +1 -1
- package/lib/core/numberish.js +35 -30
- package/lib/core/numberish.js.map +1 -1
- package/lib/core/partition-handler-manager.d.ts +1 -1
- package/lib/core/partition-handler-manager.d.ts.map +1 -1
- package/lib/core/partition-handler-manager.js +10 -9
- package/lib/core/partition-handler-manager.js.map +1 -1
- package/lib/cosmos/context.d.ts.map +1 -1
- package/lib/cosmos/context.js +4 -2
- package/lib/cosmos/context.js.map +1 -1
- package/lib/cosmos/cosmos-plugin.d.ts.map +1 -1
- package/lib/cosmos/cosmos-plugin.js +11 -10
- package/lib/cosmos/cosmos-plugin.js.map +1 -1
- package/lib/cosmos/cosmos-processor.js.map +1 -1
- package/lib/eth/abi-decoder/decode-worker.js +2 -2
- package/lib/eth/abi-decoder/decode-worker.js.map +1 -1
- package/lib/eth/account-processor.d.ts +2 -2
- package/lib/eth/account-processor.d.ts.map +1 -1
- package/lib/eth/account-processor.js +10 -9
- package/lib/eth/account-processor.js.map +1 -1
- package/lib/eth/base-processor-template.d.ts +3 -3
- package/lib/eth/base-processor-template.d.ts.map +1 -1
- package/lib/eth/base-processor-template.js +14 -8
- package/lib/eth/base-processor-template.js.map +1 -1
- package/lib/eth/base-processor.d.ts +3 -3
- 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 +12 -10
- package/lib/eth/context.js.map +1 -1
- package/lib/eth/eth-plugin.d.ts.map +1 -1
- package/lib/eth/eth-plugin.js +83 -75
- package/lib/eth/eth-plugin.js.map +1 -1
- package/lib/eth/eth.d.ts +6 -6
- package/lib/eth/eth.d.ts.map +1 -1
- package/lib/eth/eth.js +22 -14
- package/lib/eth/eth.js.map +1 -1
- package/lib/eth/index.d.ts +1 -1
- package/lib/eth/index.d.ts.map +1 -1
- package/lib/eth/index.js +0 -1
- package/lib/eth/index.js.map +1 -1
- package/lib/fuel/asset-processor.d.ts +2 -2
- package/lib/fuel/asset-processor.d.ts.map +1 -1
- package/lib/fuel/asset-processor.js +5 -3
- package/lib/fuel/asset-processor.js.map +1 -1
- package/lib/fuel/context.d.ts.map +1 -1
- package/lib/fuel/context.js +4 -2
- package/lib/fuel/context.js.map +1 -1
- package/lib/fuel/fuel-plugin.d.ts.map +1 -1
- package/lib/fuel/fuel-plugin.js +41 -53
- package/lib/fuel/fuel-plugin.js.map +1 -1
- package/lib/fuel/fuel-processor-template.d.ts.map +1 -1
- package/lib/fuel/fuel-processor-template.js +9 -5
- package/lib/fuel/fuel-processor-template.js.map +1 -1
- package/lib/fuel/fuel-processor.d.ts.map +1 -1
- package/lib/fuel/fuel-processor.js +30 -20
- package/lib/fuel/fuel-processor.js.map +1 -1
- package/lib/fuel/global-processor.d.ts.map +1 -1
- package/lib/fuel/global-processor.js +2 -1
- package/lib/fuel/global-processor.js.map +1 -1
- package/lib/fuel/types.d.ts +10 -4
- package/lib/fuel/types.d.ts.map +1 -1
- package/lib/fuel/types.js.map +1 -1
- package/lib/iota/context.d.ts +1 -1
- package/lib/iota/context.d.ts.map +1 -1
- package/lib/iota/context.js +8 -6
- package/lib/iota/context.js.map +1 -1
- package/lib/iota/iota-object-processor-template.d.ts +1 -1
- package/lib/iota/iota-object-processor-template.d.ts.map +1 -1
- package/lib/iota/iota-object-processor-template.js +17 -12
- package/lib/iota/iota-object-processor-template.js.map +1 -1
- package/lib/iota/iota-object-processor.d.ts +1 -1
- package/lib/iota/iota-object-processor.d.ts.map +1 -1
- package/lib/iota/iota-object-processor.js +23 -16
- package/lib/iota/iota-object-processor.js.map +1 -1
- package/lib/iota/iota-plugin-part.d.ts +1 -1
- package/lib/iota/iota-plugin-part.d.ts.map +1 -1
- package/lib/iota/iota-plugin-part.js +16 -15
- package/lib/iota/iota-plugin-part.js.map +1 -1
- package/lib/iota/iota-processor.d.ts +3 -3
- package/lib/iota/iota-processor.d.ts.map +1 -1
- package/lib/iota/iota-processor.js +20 -19
- package/lib/iota/iota-processor.js.map +1 -1
- package/lib/iota/network.js +2 -2
- package/lib/iota/network.js.map +1 -1
- package/lib/move/filter.d.ts +1 -1
- package/lib/move/filter.d.ts.map +1 -1
- package/lib/move/index.d.ts +1 -1
- package/lib/move/index.d.ts.map +1 -1
- package/lib/move/index.js +0 -1
- package/lib/move/index.js.map +1 -1
- package/lib/solana/builtin/types.d.ts +4 -4
- package/lib/solana/codegen/codegen.d.ts +1 -1
- package/lib/solana/codegen/codegen.d.ts.map +1 -1
- package/lib/solana/codegen/codegen.js +2 -2
- package/lib/solana/codegen/codegen.js.map +1 -1
- 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 +2 -2
- 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/codegen.js +2 -2
- package/lib/store/codegen.js.map +1 -1
- package/lib/store/convert.d.ts +1 -1
- package/lib/store/convert.d.ts.map +1 -1
- package/lib/store/convert.js +67 -104
- package/lib/store/convert.js.map +1 -1
- package/lib/store/decorators.d.ts +1 -1
- package/lib/store/decorators.d.ts.map +1 -1
- package/lib/store/decorators.js +3 -1
- package/lib/store/decorators.js.map +1 -1
- package/lib/store/store.d.ts.map +1 -1
- package/lib/store/store.js +24 -16
- package/lib/store/store.js.map +1 -1
- package/lib/store/types.js +24 -32
- package/lib/store/types.js.map +1 -1
- package/lib/store/util.d.ts +1 -1
- package/lib/store/util.d.ts.map +1 -1
- package/lib/store/util.js +13 -17
- package/lib/store/util.js.map +1 -1
- package/lib/sui/context.d.ts +1 -1
- package/lib/sui/context.d.ts.map +1 -1
- package/lib/sui/context.js +8 -6
- package/lib/sui/context.js.map +1 -1
- package/lib/sui/sui-object-processor-template.d.ts +1 -1
- package/lib/sui/sui-object-processor-template.d.ts.map +1 -1
- package/lib/sui/sui-object-processor-template.js +17 -12
- package/lib/sui/sui-object-processor-template.js.map +1 -1
- package/lib/sui/sui-object-processor.d.ts +1 -1
- package/lib/sui/sui-object-processor.d.ts.map +1 -1
- package/lib/sui/sui-object-processor.js +23 -16
- package/lib/sui/sui-object-processor.js.map +1 -1
- package/lib/sui/sui-plugin-part.d.ts +1 -1
- package/lib/sui/sui-plugin-part.d.ts.map +1 -1
- package/lib/sui/sui-plugin-part.js +16 -15
- package/lib/sui/sui-plugin-part.js.map +1 -1
- package/lib/sui/sui-plugin.d.ts +1 -1
- package/lib/sui/sui-plugin.d.ts.map +1 -1
- package/lib/sui/sui-plugin.js +35 -34
- package/lib/sui/sui-plugin.js.map +1 -1
- package/lib/sui/sui-processor.d.ts +3 -3
- package/lib/sui/sui-processor.d.ts.map +1 -1
- package/lib/sui/sui-processor.js +20 -19
- package/lib/sui/sui-processor.js.map +1 -1
- package/lib/testing/aptos-facet.d.ts.map +1 -1
- package/lib/testing/aptos-facet.js +18 -11
- package/lib/testing/aptos-facet.js.map +1 -1
- package/lib/testing/cosmos-facet.d.ts.map +1 -1
- package/lib/testing/cosmos-facet.js +10 -6
- package/lib/testing/cosmos-facet.js.map +1 -1
- package/lib/testing/eth-facet.d.ts +1 -1
- package/lib/testing/eth-facet.d.ts.map +1 -1
- package/lib/testing/eth-facet.js +34 -18
- package/lib/testing/eth-facet.js.map +1 -1
- package/lib/testing/fuel-facet.d.ts.map +1 -1
- package/lib/testing/fuel-facet.js +28 -18
- package/lib/testing/fuel-facet.js.map +1 -1
- package/lib/testing/iota-facet.d.ts.map +1 -1
- package/lib/testing/iota-facet.js +32 -20
- package/lib/testing/iota-facet.js.map +1 -1
- package/lib/testing/memory-database.d.ts +1 -1
- package/lib/testing/memory-database.d.ts.map +1 -1
- package/lib/testing/memory-database.js +82 -69
- 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 +19 -13
- package/lib/testing/test-processor-server.d.ts.map +1 -1
- package/lib/testing/test-processor-server.js +22 -20
- package/lib/testing/test-processor-server.js.map +1 -1
- package/lib/utils/price.d.ts +1 -1
- package/lib/utils/price.d.ts.map +1 -1
- package/lib/utils/price.js +19 -12
- package/lib/utils/price.js.map +1 -1
- package/package.json +10 -12
- package/src/aptos/aptos-plugin.ts +105 -91
- package/src/aptos/aptos-processor.ts +42 -34
- package/src/aptos/aptos-resource-processor-template.ts +15 -6
- package/src/aptos/context.ts +8 -7
- package/src/aptos/data.ts +4 -4
- package/src/core/base-context.ts +19 -12
- package/src/core/core-plugin.ts +10 -7
- package/src/core/event-logger.ts +63 -34
- package/src/core/exporter.ts +5 -4
- package/src/core/handler-options.ts +1 -1
- package/src/core/handler-register.ts +3 -3
- package/src/core/meter.ts +9 -7
- package/src/core/normalization.ts +53 -31
- package/src/core/numberish.ts +46 -30
- package/src/core/partition-handler-manager.ts +13 -11
- package/src/cosmos/context.ts +4 -3
- package/src/cosmos/cosmos-plugin.ts +19 -15
- package/src/cosmos/cosmos-processor.ts +2 -2
- package/src/eth/abi-decoder/decode-worker.ts +2 -2
- package/src/eth/account-processor.ts +21 -12
- package/src/eth/base-processor-template.ts +27 -11
- package/src/eth/base-processor.ts +77 -65
- 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 +18 -11
- package/src/eth/eth-plugin.ts +135 -118
- package/src/eth/eth.ts +29 -20
- package/src/eth/index.ts +1 -1
- package/src/fuel/asset-processor.ts +16 -8
- package/src/fuel/context.ts +4 -3
- package/src/fuel/fuel-plugin.ts +71 -73
- package/src/fuel/fuel-processor-template.ts +10 -7
- package/src/fuel/fuel-processor.ts +35 -23
- package/src/fuel/global-processor.ts +3 -3
- package/src/fuel/types.ts +10 -4
- package/src/iota/context.ts +8 -7
- package/src/iota/iota-object-processor-template.ts +25 -15
- package/src/iota/iota-object-processor.ts +33 -22
- package/src/iota/iota-plugin-part.ts +41 -34
- package/src/iota/iota-processor.ts +35 -27
- package/src/iota/network.ts +2 -2
- package/src/move/filter.ts +1 -1
- package/src/move/index.ts +1 -1
- package/src/solana/codegen/codegen.ts +2 -2
- package/src/solana/solana-context.ts +4 -3
- package/src/solana/solana-plugin.ts +27 -24
- package/src/solana/solana-processor.ts +23 -11
- package/src/store/cache.ts +22 -18
- package/src/store/codegen.ts +2 -2
- package/src/store/convert.ts +68 -104
- package/src/store/decorators.ts +3 -2
- package/src/store/store.ts +31 -23
- package/src/store/types.ts +24 -33
- package/src/store/util.ts +13 -18
- package/src/sui/context.ts +8 -7
- package/src/sui/sui-object-processor-template.ts +25 -15
- package/src/sui/sui-object-processor.ts +33 -22
- package/src/sui/sui-plugin-part.ts +41 -34
- package/src/sui/sui-plugin.ts +49 -47
- package/src/sui/sui-processor.ts +35 -27
- 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 +109 -82
- 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 +64 -58
- package/src/utils/price.ts +20 -13
package/src/testing/eth-facet.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
type DataBinding,
|
|
4
|
+
DataBindingSchema,
|
|
5
|
+
HandlerType,
|
|
6
|
+
type ProcessBindingResponse,
|
|
7
|
+
timestampNow
|
|
8
|
+
} from '@sentio/protos'
|
|
9
|
+
import { create } from '@bufbuild/protobuf'
|
|
3
10
|
import { Trace } from '../eth/eth.js'
|
|
4
11
|
import { BlockParams, LogParams, TransactionResponseParams } from 'ethers/providers'
|
|
5
12
|
import { ChainId, EthChainId } from '@sentio/chain'
|
|
@@ -48,17 +55,20 @@ export class EthFacet {
|
|
|
48
55
|
}
|
|
49
56
|
for (const config of contract.traceConfigs) {
|
|
50
57
|
if (config.signature == signature) {
|
|
51
|
-
return {
|
|
58
|
+
return create(DataBindingSchema, {
|
|
52
59
|
data: {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
value: {
|
|
61
|
+
case: 'ethTrace',
|
|
62
|
+
value: {
|
|
63
|
+
rawTrace: JSON.stringify(trace),
|
|
64
|
+
timestamp: timestampNow()
|
|
65
|
+
}
|
|
56
66
|
}
|
|
57
67
|
},
|
|
58
68
|
handlerIds: [config.handlerId],
|
|
59
69
|
handlerType: HandlerType.ETH_TRACE,
|
|
60
70
|
chainId: network
|
|
61
|
-
}
|
|
71
|
+
})
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
}
|
|
@@ -116,14 +126,17 @@ export class EthFacet {
|
|
|
116
126
|
break
|
|
117
127
|
}
|
|
118
128
|
if (match) {
|
|
119
|
-
return {
|
|
129
|
+
return create(DataBindingSchema, {
|
|
120
130
|
data: {
|
|
121
|
-
|
|
131
|
+
value: {
|
|
132
|
+
case: 'ethLog',
|
|
133
|
+
value: { timestamp: timestampNow(), rawLog: JSON.stringify(log) }
|
|
134
|
+
}
|
|
122
135
|
},
|
|
123
136
|
handlerIds: [config.handlerId],
|
|
124
137
|
handlerType: HandlerType.ETH_LOG,
|
|
125
138
|
chainId: network
|
|
126
|
-
}
|
|
139
|
+
})
|
|
127
140
|
}
|
|
128
141
|
}
|
|
129
142
|
}
|
|
@@ -190,14 +203,17 @@ export class EthFacet {
|
|
|
190
203
|
break
|
|
191
204
|
}
|
|
192
205
|
if (match) {
|
|
193
|
-
return {
|
|
206
|
+
return create(DataBindingSchema, {
|
|
194
207
|
data: {
|
|
195
|
-
|
|
208
|
+
value: {
|
|
209
|
+
case: 'ethLog',
|
|
210
|
+
value: { timestamp: timestampNow(), rawLog: JSON.stringify(log) }
|
|
211
|
+
}
|
|
196
212
|
},
|
|
197
213
|
handlerIds: [config.handlerId],
|
|
198
214
|
handlerType: HandlerType.ETH_LOG,
|
|
199
215
|
chainId: network
|
|
200
|
-
}
|
|
216
|
+
})
|
|
201
217
|
}
|
|
202
218
|
}
|
|
203
219
|
}
|
|
@@ -230,14 +246,17 @@ export class EthFacet {
|
|
|
230
246
|
block: Partial<BlockParams> & { number: number },
|
|
231
247
|
network: EthChainId = EthChainId.ETHEREUM
|
|
232
248
|
): DataBinding {
|
|
233
|
-
const binding: DataBinding = {
|
|
249
|
+
const binding: DataBinding = create(DataBindingSchema, {
|
|
234
250
|
data: {
|
|
235
|
-
|
|
251
|
+
value: {
|
|
252
|
+
case: 'ethBlock',
|
|
253
|
+
value: { rawBlock: JSON.stringify(block) }
|
|
254
|
+
}
|
|
236
255
|
},
|
|
237
256
|
handlerType: HandlerType.ETH_BLOCK,
|
|
238
257
|
handlerIds: [],
|
|
239
258
|
chainId: network
|
|
240
|
-
}
|
|
259
|
+
})
|
|
241
260
|
for (const contract of this.server.contractConfigs) {
|
|
242
261
|
if (contract.contract?.chainId !== network) {
|
|
243
262
|
continue
|
|
@@ -282,14 +301,17 @@ export class EthFacet {
|
|
|
282
301
|
transaction: Partial<TransactionResponseParams>,
|
|
283
302
|
network: EthChainId = EthChainId.ETHEREUM
|
|
284
303
|
): DataBinding {
|
|
285
|
-
const binding: DataBinding = {
|
|
304
|
+
const binding: DataBinding = create(DataBindingSchema, {
|
|
286
305
|
data: {
|
|
287
|
-
|
|
306
|
+
value: {
|
|
307
|
+
case: 'ethTransaction',
|
|
308
|
+
value: { timestamp: timestampNow(), rawTransaction: JSON.stringify(transaction) }
|
|
309
|
+
}
|
|
288
310
|
},
|
|
289
311
|
handlerType: HandlerType.ETH_TRANSACTION,
|
|
290
312
|
handlerIds: [],
|
|
291
313
|
chainId: network
|
|
292
|
-
}
|
|
314
|
+
})
|
|
293
315
|
for (const contract of this.server.contractConfigs) {
|
|
294
316
|
if (contract.contract?.chainId !== network) {
|
|
295
317
|
continue
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
2
2
|
import { FuelChainId } from '@sentio/chain'
|
|
3
|
-
import { DataBinding, HandlerType } from '@sentio/protos'
|
|
3
|
+
import { type DataBinding, DataBindingSchema, HandlerType, timestampNow } from '@sentio/protos'
|
|
4
|
+
import { create } from '@bufbuild/protobuf'
|
|
4
5
|
import { FuelNetwork } from '../fuel/index.js'
|
|
5
6
|
import { getRpcEndpoint } from '../fuel/network.js'
|
|
6
7
|
|
|
@@ -47,33 +48,39 @@ export class FuelFacet {
|
|
|
47
48
|
continue
|
|
48
49
|
}
|
|
49
50
|
for (const callConfig of config.fuelTransactionConfigs) {
|
|
50
|
-
const binding = {
|
|
51
|
+
const binding = create(DataBindingSchema, {
|
|
51
52
|
data: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
value: {
|
|
54
|
+
case: 'fuelTransaction',
|
|
55
|
+
value: {
|
|
56
|
+
transaction,
|
|
57
|
+
timestamp: timestampNow()
|
|
58
|
+
}
|
|
55
59
|
}
|
|
56
60
|
},
|
|
57
61
|
handlerIds: [callConfig.handlerId],
|
|
58
62
|
handlerType: HandlerType.FUEL_TRANSACTION,
|
|
59
63
|
chainId: network
|
|
60
|
-
}
|
|
64
|
+
})
|
|
61
65
|
|
|
62
66
|
res.push(binding)
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
for (const assetConfig of config.assetConfigs) {
|
|
66
|
-
const binding = {
|
|
70
|
+
const binding = create(DataBindingSchema, {
|
|
67
71
|
data: {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
value: {
|
|
73
|
+
case: 'fuelTransaction',
|
|
74
|
+
value: {
|
|
75
|
+
transaction,
|
|
76
|
+
timestamp: timestampNow()
|
|
77
|
+
}
|
|
71
78
|
}
|
|
72
79
|
},
|
|
73
80
|
handlerIds: [assetConfig.handlerId],
|
|
74
81
|
handlerType: HandlerType.FUEL_TRANSACTION,
|
|
75
82
|
chainId: network
|
|
76
|
-
}
|
|
83
|
+
})
|
|
77
84
|
|
|
78
85
|
res.push(binding)
|
|
79
86
|
}
|
|
@@ -89,20 +96,23 @@ export class FuelFacet {
|
|
|
89
96
|
|
|
90
97
|
for (const config of this.server.contractConfigs) {
|
|
91
98
|
for (const logConfig of config.fuelReceiptConfigs) {
|
|
92
|
-
const logIds = logConfig.log
|
|
99
|
+
const logIds = logConfig.receiptFilter?.case === 'log' ? logConfig.receiptFilter.value.logIds : []
|
|
93
100
|
if (logIds.includes(receipt.rb)) {
|
|
94
|
-
const binding = {
|
|
101
|
+
const binding = create(DataBindingSchema, {
|
|
95
102
|
data: {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
value: {
|
|
104
|
+
case: 'fuelLog',
|
|
105
|
+
value: {
|
|
106
|
+
transaction,
|
|
107
|
+
timestamp: timestampNow(),
|
|
108
|
+
receiptIndex: BigInt(i)
|
|
109
|
+
}
|
|
100
110
|
}
|
|
101
111
|
},
|
|
102
112
|
handlerIds: [logConfig.handlerId],
|
|
103
113
|
handlerType: HandlerType.FUEL_RECEIPT,
|
|
104
114
|
chainId: network
|
|
105
|
-
}
|
|
115
|
+
})
|
|
106
116
|
res.push(binding)
|
|
107
117
|
}
|
|
108
118
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MoveCallIotaTransaction, IotaTransactionBlockResponse } from '@iota/iota-sdk/client'
|
|
2
|
-
import { DataBinding, HandlerType } from '@sentio/protos'
|
|
2
|
+
import { type DataBinding, DataBindingSchema, HandlerType, timestampFromDate, timestampNow } from '@sentio/protos'
|
|
3
|
+
import { create } from '@bufbuild/protobuf'
|
|
3
4
|
import { TestProcessorServer } from './test-processor-server.js'
|
|
4
5
|
import { accountTypeString, parseMoveType, SPLITTER } from '../move/index.js'
|
|
5
6
|
import { IotaNetwork } from '../iota/index.js'
|
|
@@ -47,18 +48,21 @@ export class IotaFacet {
|
|
|
47
48
|
for (const callConfig of config.moveCallConfigs) {
|
|
48
49
|
for (const callFilter of callConfig.filters) {
|
|
49
50
|
if (accountTypeString(config.contract.address) + '::' + callFilter.function === functionType) {
|
|
50
|
-
return {
|
|
51
|
+
return create(DataBindingSchema, {
|
|
51
52
|
data: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
value: {
|
|
54
|
+
case: 'suiCall',
|
|
55
|
+
value: {
|
|
56
|
+
rawTransaction: JSON.stringify(transaction),
|
|
57
|
+
timestamp: timestampNow(),
|
|
58
|
+
slot: 10000n
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
},
|
|
58
62
|
handlerIds: [callConfig.handlerId],
|
|
59
63
|
handlerType: HandlerType.SUI_CALL,
|
|
60
64
|
chainId: network
|
|
61
|
-
}
|
|
65
|
+
})
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
}
|
|
@@ -91,18 +95,23 @@ export class IotaFacet {
|
|
|
91
95
|
throw Error('Invalid test global transaction: ' + JSON.stringify(transaction))
|
|
92
96
|
}
|
|
93
97
|
|
|
94
|
-
const binding: DataBinding = {
|
|
98
|
+
const binding: DataBinding = create(DataBindingSchema, {
|
|
95
99
|
handlerIds,
|
|
96
100
|
handlerType: HandlerType.SUI_CALL,
|
|
97
101
|
data: {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
value: {
|
|
103
|
+
case: 'suiCall',
|
|
104
|
+
value: {
|
|
105
|
+
rawTransaction: JSON.stringify(transaction),
|
|
106
|
+
timestamp: transaction.timestampMs
|
|
107
|
+
? timestampFromDate(new Date(Number(transaction.timestampMs)))
|
|
108
|
+
: timestampNow(),
|
|
109
|
+
slot: BigInt(transaction.checkpoint || 0)
|
|
110
|
+
}
|
|
102
111
|
}
|
|
103
112
|
},
|
|
104
113
|
chainId: network
|
|
105
|
-
}
|
|
114
|
+
})
|
|
106
115
|
return this.server.processBinding(binding)
|
|
107
116
|
}
|
|
108
117
|
|
|
@@ -123,19 +132,22 @@ export class IotaFacet {
|
|
|
123
132
|
accountTypeString(config.contract.address) + '::' + eventFilter.type ===
|
|
124
133
|
parseMoveType(event.type).qname
|
|
125
134
|
) {
|
|
126
|
-
return {
|
|
135
|
+
return create(DataBindingSchema, {
|
|
127
136
|
data: {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
137
|
+
value: {
|
|
138
|
+
case: 'suiEvent',
|
|
139
|
+
value: {
|
|
140
|
+
rawEvent: JSON.stringify(event),
|
|
141
|
+
rawTransaction: JSON.stringify(transaction),
|
|
142
|
+
timestamp: timestampFromDate(new Date(Number(transaction.timestampMs || 0))),
|
|
143
|
+
slot: 10000n
|
|
144
|
+
}
|
|
133
145
|
}
|
|
134
146
|
},
|
|
135
147
|
handlerIds: [eventConfig.handlerId],
|
|
136
148
|
handlerType: HandlerType.SUI_EVENT,
|
|
137
149
|
chainId: network
|
|
138
|
-
}
|
|
150
|
+
})
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
153
|
}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { StoreContext } from '../store/context.js'
|
|
2
2
|
import {
|
|
3
|
-
DBRequest,
|
|
4
|
-
DBRequest_DBFilter,
|
|
3
|
+
type DBRequest,
|
|
4
|
+
type DBRequest_DBFilter,
|
|
5
5
|
DBRequest_DBOperator,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
DBResponseSchema,
|
|
7
|
+
type ProcessStreamResponse,
|
|
8
|
+
type RichStruct,
|
|
9
|
+
type RichValue,
|
|
10
|
+
RichValueSchema,
|
|
11
|
+
type RichValueList,
|
|
12
|
+
RichValueListSchema,
|
|
13
|
+
timestampNow
|
|
10
14
|
} from '@sentio/protos'
|
|
15
|
+
import { create } from '@bufbuild/protobuf'
|
|
11
16
|
import { GraphQLField, GraphQLSchema, parse, StringValueNode } from 'graphql/index.js'
|
|
12
17
|
import { DatabaseSchemaState } from '../core/database-schema.js'
|
|
13
18
|
import { buildSchema } from '../store/schema.js'
|
|
@@ -43,7 +48,9 @@ export class MemoryDatabase {
|
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
start() {
|
|
46
|
-
|
|
51
|
+
// The subject is typed as the `ProcessStreamResponse` init-shape, but at runtime it always carries a
|
|
52
|
+
// full response (the store context emits the complete oneof). Treat it as a full message and narrow inside.
|
|
53
|
+
this.dbContext.subject.subscribe((request) => this.processRequest(request as unknown as ProcessStreamResponse))
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
stop() {
|
|
@@ -111,20 +118,25 @@ export class MemoryDatabase {
|
|
|
111
118
|
if (elemDb) {
|
|
112
119
|
for (const elemID of Object.keys(elemDb)) {
|
|
113
120
|
const value = elemDb[elemID]
|
|
114
|
-
const deriveField = value.fields[derivedFrom]
|
|
121
|
+
const deriveField: RichValue | undefined = value.fields[derivedFrom]
|
|
115
122
|
let hasRelation = false
|
|
116
|
-
if (deriveField?.stringValue === id) {
|
|
123
|
+
if (deriveField?.value.case === 'stringValue' && deriveField.value.value === id) {
|
|
117
124
|
hasRelation = true
|
|
118
125
|
}
|
|
119
|
-
if (deriveField?.listValue) {
|
|
120
|
-
hasRelation = deriveField.
|
|
126
|
+
if (deriveField?.value.case === 'listValue') {
|
|
127
|
+
hasRelation = deriveField.value.value.values.some(
|
|
128
|
+
(v) => v.value.case === 'stringValue' && v.value.value === id
|
|
129
|
+
)
|
|
121
130
|
}
|
|
122
131
|
if (hasRelation) {
|
|
123
|
-
const arr = result.fields[field.name]
|
|
124
|
-
|
|
125
|
-
|
|
132
|
+
const arr: RichValue | undefined = result.fields[field.name]
|
|
133
|
+
const elem = create(RichValueSchema, { value: { case: 'stringValue', value: elemID } })
|
|
134
|
+
if (arr && arr.value.case === 'listValue') {
|
|
135
|
+
arr.value.value.values.push(elem)
|
|
126
136
|
} else {
|
|
127
|
-
result.fields[field.name] =
|
|
137
|
+
result.fields[field.name] = create(RichValueSchema, {
|
|
138
|
+
value: { case: 'listValue', value: { values: [elem] } }
|
|
139
|
+
})
|
|
128
140
|
}
|
|
129
141
|
}
|
|
130
142
|
}
|
|
@@ -138,7 +150,7 @@ export class MemoryDatabase {
|
|
|
138
150
|
}
|
|
139
151
|
|
|
140
152
|
private processRequest(request: ProcessStreamResponse) {
|
|
141
|
-
const req = request.dbRequest
|
|
153
|
+
const req = request.value.case === 'dbRequest' ? request.value.value : undefined
|
|
142
154
|
|
|
143
155
|
// Check if schema is required for this request
|
|
144
156
|
const requiresSchema = this.requestRequiresSchema(req)
|
|
@@ -149,58 +161,63 @@ export class MemoryDatabase {
|
|
|
149
161
|
|
|
150
162
|
this.lastDbRequest = req
|
|
151
163
|
if (req) {
|
|
152
|
-
if (req.upsert) {
|
|
153
|
-
const { entityData, entity } = req.
|
|
164
|
+
if (req.op.case === 'upsert') {
|
|
165
|
+
const { entityData, entity } = req.op.value
|
|
154
166
|
entityData.forEach((d, i) => {
|
|
155
|
-
const
|
|
167
|
+
const idField = d.fields['id']
|
|
168
|
+
const id = idField?.value.case === 'stringValue' ? idField.value.value : ''
|
|
156
169
|
const entityName = entity[i]
|
|
157
170
|
this.upsert(entityName, id, d)
|
|
158
171
|
})
|
|
159
172
|
|
|
160
|
-
this.dbContext.result({
|
|
161
|
-
opId: req.opId
|
|
162
|
-
})
|
|
173
|
+
this.dbContext.result(create(DBResponseSchema, { opId: req.opId }))
|
|
163
174
|
}
|
|
164
|
-
if (req.delete) {
|
|
165
|
-
const { id, entity } = req.
|
|
175
|
+
if (req.op.case === 'delete') {
|
|
176
|
+
const { id, entity } = req.op.value
|
|
166
177
|
id.forEach((i, idx) => {
|
|
167
178
|
const entityName = entity[idx]
|
|
168
179
|
this.delete(entityName, i)
|
|
169
180
|
})
|
|
170
|
-
this.dbContext.result({
|
|
171
|
-
opId: req.opId
|
|
172
|
-
})
|
|
181
|
+
this.dbContext.result(create(DBResponseSchema, { opId: req.opId }))
|
|
173
182
|
}
|
|
174
183
|
|
|
175
|
-
if (req.get) {
|
|
176
|
-
const { entity, id } = req.
|
|
184
|
+
if (req.op.case === 'get') {
|
|
185
|
+
const { entity, id } = req.op.value
|
|
177
186
|
const data = this.getById(entity, id)
|
|
178
|
-
this.dbContext.result(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
187
|
+
this.dbContext.result(
|
|
188
|
+
create(DBResponseSchema, {
|
|
189
|
+
opId: req.opId,
|
|
190
|
+
value: {
|
|
191
|
+
case: 'entityList',
|
|
192
|
+
value: {
|
|
193
|
+
entities: data ? [toEntity(data)] : []
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
})
|
|
197
|
+
)
|
|
185
198
|
}
|
|
186
|
-
if (req.list) {
|
|
187
|
-
const { entity, cursor, filters } = req.
|
|
199
|
+
if (req.op.case === 'list') {
|
|
200
|
+
const { entity, cursor, filters } = req.op.value
|
|
188
201
|
const list = this.listEntities(entity, filters)
|
|
189
202
|
|
|
190
203
|
if (cursor) {
|
|
191
204
|
const idx = parseInt(cursor)
|
|
192
205
|
|
|
193
|
-
this.dbContext.result(
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
this.dbContext.result(
|
|
207
|
+
create(DBResponseSchema, {
|
|
208
|
+
opId: req.opId,
|
|
209
|
+
value: { case: 'entityList', value: { entities: list.slice(idx, idx + 1).map((d) => toEntity(d)) } },
|
|
210
|
+
nextCursor: idx + 1 < list.length ? `${idx + 1}` : undefined
|
|
211
|
+
})
|
|
212
|
+
)
|
|
198
213
|
} else {
|
|
199
|
-
this.dbContext.result(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
214
|
+
this.dbContext.result(
|
|
215
|
+
create(DBResponseSchema, {
|
|
216
|
+
opId: req.opId,
|
|
217
|
+
value: { case: 'entityList', value: { entities: list.length ? [toEntity(list[0])] : [] } },
|
|
218
|
+
nextCursor: '1'
|
|
219
|
+
})
|
|
220
|
+
)
|
|
204
221
|
}
|
|
205
222
|
}
|
|
206
223
|
}
|
|
@@ -215,19 +232,18 @@ export class MemoryDatabase {
|
|
|
215
232
|
if (!req) return false
|
|
216
233
|
|
|
217
234
|
// Check if all entities in the request are MemoryCacheItem
|
|
218
|
-
|
|
219
|
-
|
|
235
|
+
switch (req.op.case) {
|
|
236
|
+
case 'upsert':
|
|
237
|
+
return !req.op.value.entity.every((e) => e === MEMORY_CACHE_ITEM_ENTITY)
|
|
238
|
+
case 'delete':
|
|
239
|
+
return !req.op.value.entity.every((e) => e === MEMORY_CACHE_ITEM_ENTITY)
|
|
240
|
+
case 'get':
|
|
241
|
+
return req.op.value.entity !== MEMORY_CACHE_ITEM_ENTITY
|
|
242
|
+
case 'list':
|
|
243
|
+
return req.op.value.entity !== MEMORY_CACHE_ITEM_ENTITY
|
|
244
|
+
default:
|
|
245
|
+
return false
|
|
220
246
|
}
|
|
221
|
-
if (req.delete) {
|
|
222
|
-
return !req.delete.entity.every((e) => e === MEMORY_CACHE_ITEM_ENTITY)
|
|
223
|
-
}
|
|
224
|
-
if (req.get) {
|
|
225
|
-
return req.get.entity !== MEMORY_CACHE_ITEM_ENTITY
|
|
226
|
-
}
|
|
227
|
-
if (req.list) {
|
|
228
|
-
return req.list.entity !== MEMORY_CACHE_ITEM_ENTITY
|
|
229
|
-
}
|
|
230
|
-
return false
|
|
231
247
|
}
|
|
232
248
|
|
|
233
249
|
private listEntities(entity: string, filters?: DBRequest_DBFilter[]) {
|
|
@@ -268,37 +284,46 @@ function filter(entity: RichStruct, filter: DBRequest_DBFilter) {
|
|
|
268
284
|
case DBRequest_DBOperator.LE:
|
|
269
285
|
return lessThan(value, filter.value) || equal(value, filter.value)
|
|
270
286
|
case DBRequest_DBOperator.IN:
|
|
271
|
-
return filter.value?.values.some((v) => equal(value,
|
|
287
|
+
return filter.value?.values.some((v) => equal(value, singleList(v)))
|
|
272
288
|
case DBRequest_DBOperator.NOT_IN:
|
|
273
|
-
return !filter.value?.values.some((v) => equal(value,
|
|
289
|
+
return !filter.value?.values.some((v) => equal(value, singleList(v)))
|
|
274
290
|
case DBRequest_DBOperator.HAS_ALL:
|
|
275
|
-
return filter.value?.values.every((v) => equal(value,
|
|
291
|
+
return filter.value?.values.every((v) => equal(value, singleList(v)))
|
|
276
292
|
case DBRequest_DBOperator.HAS_ANY:
|
|
277
293
|
for (const a of filter.value?.values ?? []) {
|
|
278
|
-
|
|
294
|
+
const listValues = value.value.case === 'listValue' ? value.value.value.values : []
|
|
295
|
+
if (listValues.some((v) => equal(a, singleList(v)))) {
|
|
279
296
|
return true
|
|
280
297
|
}
|
|
281
298
|
}
|
|
282
299
|
return false
|
|
283
300
|
case DBRequest_DBOperator.LIKE:
|
|
284
|
-
return like(value
|
|
301
|
+
return like(richString(value), filter.value?.values[0] ? richString(filter.value.values[0]) : undefined)
|
|
285
302
|
default:
|
|
286
303
|
return false
|
|
287
304
|
}
|
|
288
305
|
}
|
|
289
306
|
|
|
307
|
+
function singleList(v: RichValue): RichValueList {
|
|
308
|
+
return create(RichValueListSchema, { values: [v] })
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
function richString(v?: RichValue): string | undefined {
|
|
312
|
+
return v?.value.case === 'stringValue' ? v.value.value : undefined
|
|
313
|
+
}
|
|
314
|
+
|
|
290
315
|
function getValue(entity: RichStruct, field: string) {
|
|
291
316
|
return entity.fields[field]
|
|
292
317
|
}
|
|
293
318
|
|
|
294
319
|
function equal(field: RichValue, value?: RichValueList): boolean {
|
|
295
|
-
if (field.
|
|
296
|
-
return field.
|
|
320
|
+
if (field.value.case === 'stringValue') {
|
|
321
|
+
return field.value.value === richString(value?.values[0])
|
|
297
322
|
}
|
|
298
|
-
if (field.listValue) {
|
|
299
|
-
return field.
|
|
323
|
+
if (field.value.case === 'listValue') {
|
|
324
|
+
return field.value.value.values.every((v, i) => {
|
|
300
325
|
const vv = value?.values[i]
|
|
301
|
-
return equal(v, vv ?
|
|
326
|
+
return equal(v, vv ? singleList(vv) : undefined)
|
|
302
327
|
})
|
|
303
328
|
}
|
|
304
329
|
const a = toNumber(field)
|
|
@@ -335,19 +360,21 @@ function lessThan(field: RichValue, value: RichValueList | undefined) {
|
|
|
335
360
|
}
|
|
336
361
|
|
|
337
362
|
function toNumber(value?: RichValue) {
|
|
338
|
-
if (value
|
|
339
|
-
return
|
|
340
|
-
}
|
|
341
|
-
if (value?.floatValue !== undefined) {
|
|
342
|
-
return value.floatValue
|
|
343
|
-
}
|
|
344
|
-
if (value?.bigintValue !== undefined) {
|
|
345
|
-
return BigIntConverter.to(value) as bigint
|
|
363
|
+
if (value === undefined) {
|
|
364
|
+
return undefined
|
|
346
365
|
}
|
|
347
|
-
|
|
348
|
-
|
|
366
|
+
switch (value.value.case) {
|
|
367
|
+
case 'intValue':
|
|
368
|
+
return value.value.value
|
|
369
|
+
case 'floatValue':
|
|
370
|
+
return value.value.value
|
|
371
|
+
case 'bigintValue':
|
|
372
|
+
return BigIntConverter.to(value) as bigint
|
|
373
|
+
case 'bigdecimalValue':
|
|
374
|
+
return BigDecimalConverter.to(value) as BigDecimal
|
|
375
|
+
default:
|
|
376
|
+
return undefined
|
|
349
377
|
}
|
|
350
|
-
return undefined
|
|
351
378
|
}
|
|
352
379
|
|
|
353
380
|
function toEntity(data: any) {
|
|
@@ -355,7 +382,7 @@ function toEntity(data: any) {
|
|
|
355
382
|
entity: data.entity,
|
|
356
383
|
genBlockChain: '',
|
|
357
384
|
genBlockNumber: 0n,
|
|
358
|
-
genBlockTime:
|
|
385
|
+
genBlockTime: timestampNow(),
|
|
359
386
|
data: { fields: data.fields }
|
|
360
387
|
}
|
|
361
388
|
}
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import { MetricValue, ProcessResult } from '@sentio/protos'
|
|
1
|
+
import type { MetricValue, ProcessResult } from '@sentio/protos'
|
|
2
2
|
import { Numberish, BigDecimal } from '../core/index.js'
|
|
3
3
|
import { bytesToBigInt } from '../utils/conversion.js'
|
|
4
4
|
|
|
5
|
-
export function MetricValueToNumber(v:
|
|
5
|
+
export function MetricValueToNumber(v: MetricValue | undefined): Numberish | undefined {
|
|
6
6
|
if (v === undefined) {
|
|
7
7
|
return undefined
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
switch (v.value.case) {
|
|
11
|
+
case 'doubleValue':
|
|
12
|
+
return v.value.value
|
|
13
|
+
case 'bigInteger': {
|
|
14
|
+
let intValue = bytesToBigInt(v.value.value.data)
|
|
15
|
+
if (v.value.value.negative) {
|
|
16
|
+
intValue = -intValue
|
|
17
|
+
}
|
|
18
|
+
return intValue
|
|
17
19
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
case 'bigDecimal':
|
|
21
|
+
return new BigDecimal(v.value.value)
|
|
22
|
+
default:
|
|
23
|
+
return undefined
|
|
22
24
|
}
|
|
23
|
-
return undefined
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
export function firstCounterValue(result: ProcessResult | undefined, name: string): Numberish | undefined {
|