@sentio/sdk 4.0.0-rc.1 → 4.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/lib/aptos/aptos-plugin.d.ts +1 -1
  2. package/lib/aptos/aptos-plugin.d.ts.map +1 -1
  3. package/lib/aptos/aptos-plugin.js +43 -42
  4. package/lib/aptos/aptos-plugin.js.map +1 -1
  5. package/lib/aptos/aptos-processor.d.ts +1 -1
  6. package/lib/aptos/aptos-processor.d.ts.map +1 -1
  7. package/lib/aptos/aptos-processor.js +25 -25
  8. package/lib/aptos/aptos-processor.js.map +1 -1
  9. package/lib/aptos/aptos-resource-processor-template.d.ts +1 -1
  10. package/lib/aptos/aptos-resource-processor-template.d.ts.map +1 -1
  11. package/lib/aptos/aptos-resource-processor-template.js +10 -5
  12. package/lib/aptos/aptos-resource-processor-template.js.map +1 -1
  13. package/lib/aptos/context.d.ts +1 -1
  14. package/lib/aptos/context.d.ts.map +1 -1
  15. package/lib/aptos/context.js +8 -6
  16. package/lib/aptos/context.js.map +1 -1
  17. package/lib/aptos/data.d.ts +4 -4
  18. package/lib/aptos/data.d.ts.map +1 -1
  19. package/lib/core/base-context.d.ts +3 -2
  20. package/lib/core/base-context.d.ts.map +1 -1
  21. package/lib/core/base-context.js +12 -11
  22. package/lib/core/base-context.js.map +1 -1
  23. package/lib/core/core-plugin.d.ts.map +1 -1
  24. package/lib/core/core-plugin.js +6 -4
  25. package/lib/core/core-plugin.js.map +1 -1
  26. package/lib/core/event-logger.d.ts +10 -2
  27. package/lib/core/event-logger.d.ts.map +1 -1
  28. package/lib/core/event-logger.js +42 -26
  29. package/lib/core/event-logger.js.map +1 -1
  30. package/lib/core/exporter.d.ts.map +1 -1
  31. package/lib/core/exporter.js +5 -3
  32. package/lib/core/exporter.js.map +1 -1
  33. package/lib/core/handler-options.d.ts +1 -1
  34. package/lib/core/handler-options.d.ts.map +1 -1
  35. package/lib/core/handler-register.d.ts +1 -1
  36. package/lib/core/handler-register.d.ts.map +1 -1
  37. package/lib/core/handler-register.js +2 -2
  38. package/lib/core/handler-register.js.map +1 -1
  39. package/lib/core/meter.d.ts +4 -3
  40. package/lib/core/meter.d.ts.map +1 -1
  41. package/lib/core/meter.js +5 -4
  42. package/lib/core/meter.js.map +1 -1
  43. package/lib/core/normalization.d.ts +1 -1
  44. package/lib/core/normalization.d.ts.map +1 -1
  45. package/lib/core/normalization.js +41 -31
  46. package/lib/core/normalization.js.map +1 -1
  47. package/lib/core/numberish.d.ts +1 -1
  48. package/lib/core/numberish.d.ts.map +1 -1
  49. package/lib/core/numberish.js +35 -30
  50. package/lib/core/numberish.js.map +1 -1
  51. package/lib/core/partition-handler-manager.d.ts +1 -1
  52. package/lib/core/partition-handler-manager.d.ts.map +1 -1
  53. package/lib/core/partition-handler-manager.js +10 -9
  54. package/lib/core/partition-handler-manager.js.map +1 -1
  55. package/lib/cosmos/context.d.ts.map +1 -1
  56. package/lib/cosmos/context.js +4 -2
  57. package/lib/cosmos/context.js.map +1 -1
  58. package/lib/cosmos/cosmos-plugin.d.ts.map +1 -1
  59. package/lib/cosmos/cosmos-plugin.js +11 -10
  60. package/lib/cosmos/cosmos-plugin.js.map +1 -1
  61. package/lib/cosmos/cosmos-processor.js.map +1 -1
  62. package/lib/eth/abi-decoder/decode-worker.js +2 -2
  63. package/lib/eth/abi-decoder/decode-worker.js.map +1 -1
  64. package/lib/eth/account-processor.d.ts +2 -2
  65. package/lib/eth/account-processor.d.ts.map +1 -1
  66. package/lib/eth/account-processor.js +10 -9
  67. package/lib/eth/account-processor.js.map +1 -1
  68. package/lib/eth/base-processor-template.d.ts +3 -3
  69. package/lib/eth/base-processor-template.d.ts.map +1 -1
  70. package/lib/eth/base-processor-template.js +12 -8
  71. package/lib/eth/base-processor-template.js.map +1 -1
  72. package/lib/eth/base-processor.d.ts +1 -1
  73. package/lib/eth/base-processor.d.ts.map +1 -1
  74. package/lib/eth/base-processor.js +53 -46
  75. package/lib/eth/base-processor.js.map +1 -1
  76. package/lib/eth/builtin/internal/eacaggregatorproxy-processor.d.ts.map +1 -1
  77. package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js +48 -46
  78. package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -1
  79. package/lib/eth/builtin/internal/erc1155-processor.d.ts.map +1 -1
  80. package/lib/eth/builtin/internal/erc1155-processor.js +18 -16
  81. package/lib/eth/builtin/internal/erc1155-processor.js.map +1 -1
  82. package/lib/eth/builtin/internal/erc20-processor.d.ts.map +1 -1
  83. package/lib/eth/builtin/internal/erc20-processor.js +38 -36
  84. package/lib/eth/builtin/internal/erc20-processor.js.map +1 -1
  85. package/lib/eth/builtin/internal/erc20bytes-processor.d.ts.map +1 -1
  86. package/lib/eth/builtin/internal/erc20bytes-processor.js +20 -18
  87. package/lib/eth/builtin/internal/erc20bytes-processor.js.map +1 -1
  88. package/lib/eth/builtin/internal/erc721-processor.d.ts.map +1 -1
  89. package/lib/eth/builtin/internal/erc721-processor.js +30 -28
  90. package/lib/eth/builtin/internal/erc721-processor.js.map +1 -1
  91. package/lib/eth/builtin/internal/weth9-processor.d.ts.map +1 -1
  92. package/lib/eth/builtin/internal/weth9-processor.js +24 -22
  93. package/lib/eth/builtin/internal/weth9-processor.js.map +1 -1
  94. package/lib/eth/codegen/file.d.ts.map +1 -1
  95. package/lib/eth/codegen/file.js +2 -1
  96. package/lib/eth/codegen/file.js.map +1 -1
  97. package/lib/eth/codegen/function-calls.js +1 -1
  98. package/lib/eth/context.d.ts +1 -1
  99. package/lib/eth/context.d.ts.map +1 -1
  100. package/lib/eth/context.js +17 -11
  101. package/lib/eth/context.js.map +1 -1
  102. package/lib/eth/eth-plugin.d.ts.map +1 -1
  103. package/lib/eth/eth-plugin.js +83 -75
  104. package/lib/eth/eth-plugin.js.map +1 -1
  105. package/lib/eth/eth.d.ts +6 -6
  106. package/lib/eth/eth.d.ts.map +1 -1
  107. package/lib/eth/eth.js +39 -26
  108. package/lib/eth/eth.js.map +1 -1
  109. package/lib/eth/index.d.ts +1 -1
  110. package/lib/eth/index.d.ts.map +1 -1
  111. package/lib/eth/index.js +0 -1
  112. package/lib/eth/index.js.map +1 -1
  113. package/lib/fuel/asset-processor.d.ts +2 -2
  114. package/lib/fuel/asset-processor.d.ts.map +1 -1
  115. package/lib/fuel/asset-processor.js +5 -3
  116. package/lib/fuel/asset-processor.js.map +1 -1
  117. package/lib/fuel/context.d.ts.map +1 -1
  118. package/lib/fuel/context.js +4 -2
  119. package/lib/fuel/context.js.map +1 -1
  120. package/lib/fuel/fuel-plugin.d.ts.map +1 -1
  121. package/lib/fuel/fuel-plugin.js +41 -53
  122. package/lib/fuel/fuel-plugin.js.map +1 -1
  123. package/lib/fuel/fuel-processor-template.d.ts.map +1 -1
  124. package/lib/fuel/fuel-processor-template.js +7 -5
  125. package/lib/fuel/fuel-processor-template.js.map +1 -1
  126. package/lib/fuel/fuel-processor.d.ts.map +1 -1
  127. package/lib/fuel/fuel-processor.js +30 -20
  128. package/lib/fuel/fuel-processor.js.map +1 -1
  129. package/lib/fuel/global-processor.d.ts.map +1 -1
  130. package/lib/fuel/global-processor.js +2 -1
  131. package/lib/fuel/global-processor.js.map +1 -1
  132. package/lib/fuel/types.d.ts +10 -4
  133. package/lib/fuel/types.d.ts.map +1 -1
  134. package/lib/fuel/types.js.map +1 -1
  135. package/lib/iota/context.d.ts +1 -1
  136. package/lib/iota/context.d.ts.map +1 -1
  137. package/lib/iota/context.js +8 -6
  138. package/lib/iota/context.js.map +1 -1
  139. package/lib/iota/iota-object-processor-template.d.ts +1 -1
  140. package/lib/iota/iota-object-processor-template.d.ts.map +1 -1
  141. package/lib/iota/iota-object-processor-template.js +17 -12
  142. package/lib/iota/iota-object-processor-template.js.map +1 -1
  143. package/lib/iota/iota-object-processor.d.ts +1 -1
  144. package/lib/iota/iota-object-processor.d.ts.map +1 -1
  145. package/lib/iota/iota-object-processor.js +23 -16
  146. package/lib/iota/iota-object-processor.js.map +1 -1
  147. package/lib/iota/iota-plugin-part.d.ts +1 -1
  148. package/lib/iota/iota-plugin-part.d.ts.map +1 -1
  149. package/lib/iota/iota-plugin-part.js +16 -15
  150. package/lib/iota/iota-plugin-part.js.map +1 -1
  151. package/lib/iota/iota-processor.d.ts +1 -1
  152. package/lib/iota/iota-processor.d.ts.map +1 -1
  153. package/lib/iota/iota-processor.js +18 -17
  154. package/lib/iota/iota-processor.js.map +1 -1
  155. package/lib/iota/network.js +2 -2
  156. package/lib/iota/network.js.map +1 -1
  157. package/lib/move/filter.d.ts +1 -1
  158. package/lib/move/filter.d.ts.map +1 -1
  159. package/lib/move/index.d.ts +1 -1
  160. package/lib/move/index.d.ts.map +1 -1
  161. package/lib/move/index.js +0 -1
  162. package/lib/move/index.js.map +1 -1
  163. package/lib/solana/builtin/types.d.ts +4 -4
  164. package/lib/solana/solana-context.d.ts.map +1 -1
  165. package/lib/solana/solana-context.js +4 -3
  166. package/lib/solana/solana-context.js.map +1 -1
  167. package/lib/solana/solana-plugin.d.ts.map +1 -1
  168. package/lib/solana/solana-plugin.js +19 -18
  169. package/lib/solana/solana-plugin.js.map +1 -1
  170. package/lib/solana/solana-processor.d.ts.map +1 -1
  171. package/lib/solana/solana-processor.js +8 -3
  172. package/lib/solana/solana-processor.js.map +1 -1
  173. package/lib/store/cache.d.ts.map +1 -1
  174. package/lib/store/cache.js +22 -17
  175. package/lib/store/cache.js.map +1 -1
  176. package/lib/store/convert.d.ts +1 -1
  177. package/lib/store/convert.d.ts.map +1 -1
  178. package/lib/store/convert.js +67 -104
  179. package/lib/store/convert.js.map +1 -1
  180. package/lib/store/decorators.d.ts +1 -1
  181. package/lib/store/decorators.d.ts.map +1 -1
  182. package/lib/store/decorators.js +3 -1
  183. package/lib/store/decorators.js.map +1 -1
  184. package/lib/store/store.d.ts.map +1 -1
  185. package/lib/store/store.js +24 -16
  186. package/lib/store/store.js.map +1 -1
  187. package/lib/store/types.js +24 -32
  188. package/lib/store/types.js.map +1 -1
  189. package/lib/store/util.d.ts +1 -1
  190. package/lib/store/util.d.ts.map +1 -1
  191. package/lib/store/util.js +13 -17
  192. package/lib/store/util.js.map +1 -1
  193. package/lib/sui/context.d.ts +1 -1
  194. package/lib/sui/context.d.ts.map +1 -1
  195. package/lib/sui/context.js +8 -6
  196. package/lib/sui/context.js.map +1 -1
  197. package/lib/sui/sui-object-processor-template.d.ts +1 -1
  198. package/lib/sui/sui-object-processor-template.d.ts.map +1 -1
  199. package/lib/sui/sui-object-processor-template.js +17 -12
  200. package/lib/sui/sui-object-processor-template.js.map +1 -1
  201. package/lib/sui/sui-object-processor.d.ts +1 -1
  202. package/lib/sui/sui-object-processor.d.ts.map +1 -1
  203. package/lib/sui/sui-object-processor.js +23 -16
  204. package/lib/sui/sui-object-processor.js.map +1 -1
  205. package/lib/sui/sui-plugin-part.d.ts +1 -1
  206. package/lib/sui/sui-plugin-part.d.ts.map +1 -1
  207. package/lib/sui/sui-plugin-part.js +16 -15
  208. package/lib/sui/sui-plugin-part.js.map +1 -1
  209. package/lib/sui/sui-plugin.d.ts +1 -1
  210. package/lib/sui/sui-plugin.d.ts.map +1 -1
  211. package/lib/sui/sui-plugin.js +35 -34
  212. package/lib/sui/sui-plugin.js.map +1 -1
  213. package/lib/sui/sui-processor.d.ts +1 -1
  214. package/lib/sui/sui-processor.d.ts.map +1 -1
  215. package/lib/sui/sui-processor.js +18 -17
  216. package/lib/sui/sui-processor.js.map +1 -1
  217. package/lib/testing/aptos-facet.d.ts.map +1 -1
  218. package/lib/testing/aptos-facet.js +18 -11
  219. package/lib/testing/aptos-facet.js.map +1 -1
  220. package/lib/testing/cosmos-facet.d.ts.map +1 -1
  221. package/lib/testing/cosmos-facet.js +10 -6
  222. package/lib/testing/cosmos-facet.js.map +1 -1
  223. package/lib/testing/eth-facet.d.ts +1 -1
  224. package/lib/testing/eth-facet.d.ts.map +1 -1
  225. package/lib/testing/eth-facet.js +34 -18
  226. package/lib/testing/eth-facet.js.map +1 -1
  227. package/lib/testing/fuel-facet.d.ts.map +1 -1
  228. package/lib/testing/fuel-facet.js +28 -18
  229. package/lib/testing/fuel-facet.js.map +1 -1
  230. package/lib/testing/iota-facet.d.ts.map +1 -1
  231. package/lib/testing/iota-facet.js +32 -20
  232. package/lib/testing/iota-facet.js.map +1 -1
  233. package/lib/testing/memory-database.d.ts +11 -3
  234. package/lib/testing/memory-database.d.ts.map +1 -1
  235. package/lib/testing/memory-database.js +84 -71
  236. package/lib/testing/memory-database.js.map +1 -1
  237. package/lib/testing/metric-utils.d.ts +2 -2
  238. package/lib/testing/metric-utils.d.ts.map +1 -1
  239. package/lib/testing/metric-utils.js +13 -12
  240. package/lib/testing/metric-utils.js.map +1 -1
  241. package/lib/testing/solana-facet.d.ts +3 -2
  242. package/lib/testing/solana-facet.d.ts.map +1 -1
  243. package/lib/testing/solana-facet.js +8 -5
  244. package/lib/testing/solana-facet.js.map +1 -1
  245. package/lib/testing/sui-facet.d.ts.map +1 -1
  246. package/lib/testing/sui-facet.js +30 -20
  247. package/lib/testing/sui-facet.js.map +1 -1
  248. package/lib/testing/test-processor-server.d.ts +1453 -16
  249. package/lib/testing/test-processor-server.d.ts.map +1 -1
  250. package/lib/testing/test-processor-server.js +108 -45
  251. package/lib/testing/test-processor-server.js.map +1 -1
  252. package/lib/utils/price.d.ts +1 -1
  253. package/lib/utils/price.d.ts.map +1 -1
  254. package/lib/utils/price.js +19 -12
  255. package/lib/utils/price.js.map +1 -1
  256. package/package.json +5 -7
  257. package/src/aptos/aptos-plugin.ts +105 -91
  258. package/src/aptos/aptos-processor.ts +33 -25
  259. package/src/aptos/aptos-resource-processor-template.ts +15 -6
  260. package/src/aptos/context.ts +8 -7
  261. package/src/aptos/data.ts +4 -4
  262. package/src/core/base-context.ts +19 -12
  263. package/src/core/core-plugin.ts +10 -7
  264. package/src/core/event-logger.ts +63 -34
  265. package/src/core/exporter.ts +5 -4
  266. package/src/core/handler-options.ts +1 -1
  267. package/src/core/handler-register.ts +3 -3
  268. package/src/core/meter.ts +9 -7
  269. package/src/core/normalization.ts +53 -31
  270. package/src/core/numberish.ts +46 -30
  271. package/src/core/partition-handler-manager.ts +13 -11
  272. package/src/cosmos/context.ts +4 -3
  273. package/src/cosmos/cosmos-plugin.ts +19 -15
  274. package/src/cosmos/cosmos-processor.ts +2 -2
  275. package/src/eth/abi-decoder/decode-worker.ts +2 -2
  276. package/src/eth/account-processor.ts +21 -12
  277. package/src/eth/base-processor-template.ts +22 -10
  278. package/src/eth/base-processor.ts +66 -54
  279. package/src/eth/builtin/internal/eacaggregatorproxy-processor.ts +177 -116
  280. package/src/eth/builtin/internal/erc1155-processor.ts +73 -38
  281. package/src/eth/builtin/internal/erc20-processor.ts +152 -91
  282. package/src/eth/builtin/internal/erc20bytes-processor.ts +80 -46
  283. package/src/eth/builtin/internal/erc721-processor.ts +109 -65
  284. package/src/eth/builtin/internal/weth9-processor.ts +95 -56
  285. package/src/eth/codegen/file.ts +2 -1
  286. package/src/eth/codegen/function-calls.ts +1 -1
  287. package/src/eth/context.ts +29 -13
  288. package/src/eth/eth-plugin.ts +135 -118
  289. package/src/eth/eth.ts +46 -32
  290. package/src/eth/index.ts +1 -1
  291. package/src/fuel/asset-processor.ts +16 -8
  292. package/src/fuel/context.ts +4 -3
  293. package/src/fuel/fuel-plugin.ts +71 -73
  294. package/src/fuel/fuel-processor-template.ts +7 -6
  295. package/src/fuel/fuel-processor.ts +35 -23
  296. package/src/fuel/global-processor.ts +3 -3
  297. package/src/fuel/types.ts +10 -4
  298. package/src/iota/context.ts +8 -7
  299. package/src/iota/iota-object-processor-template.ts +25 -15
  300. package/src/iota/iota-object-processor.ts +33 -22
  301. package/src/iota/iota-plugin-part.ts +41 -34
  302. package/src/iota/iota-processor.ts +25 -17
  303. package/src/iota/network.ts +2 -2
  304. package/src/move/filter.ts +1 -1
  305. package/src/move/index.ts +1 -1
  306. package/src/solana/solana-context.ts +4 -3
  307. package/src/solana/solana-plugin.ts +27 -24
  308. package/src/solana/solana-processor.ts +14 -6
  309. package/src/store/cache.ts +22 -18
  310. package/src/store/convert.ts +68 -104
  311. package/src/store/decorators.ts +3 -2
  312. package/src/store/store.ts +30 -22
  313. package/src/store/types.ts +24 -33
  314. package/src/store/util.ts +13 -18
  315. package/src/sui/context.ts +8 -7
  316. package/src/sui/sui-object-processor-template.ts +25 -15
  317. package/src/sui/sui-object-processor.ts +33 -22
  318. package/src/sui/sui-plugin-part.ts +41 -34
  319. package/src/sui/sui-plugin.ts +49 -47
  320. package/src/sui/sui-processor.ts +25 -17
  321. package/src/testing/aptos-facet.ts +18 -11
  322. package/src/testing/cosmos-facet.ts +10 -6
  323. package/src/testing/eth-facet.ts +40 -18
  324. package/src/testing/fuel-facet.ts +28 -18
  325. package/src/testing/iota-facet.ts +32 -20
  326. package/src/testing/memory-database.ts +126 -88
  327. package/src/testing/metric-utils.ts +15 -14
  328. package/src/testing/solana-facet.ts +11 -6
  329. package/src/testing/sui-facet.ts +30 -20
  330. package/src/testing/test-processor-server.ts +169 -79
  331. package/src/utils/price.ts +20 -13
@@ -1,7 +1,15 @@
1
- import { Data_SuiCall, Data_SuiEvent, Data_SuiObjectChange, MoveFetchConfig } from '@sentio/protos'
1
+ import {
2
+ type Data_SuiCall,
3
+ type Data_SuiEvent,
4
+ type Data_SuiObjectChange,
5
+ type MoveFetchConfig,
6
+ MoveFetchConfigSchema,
7
+ timestampDate
8
+ } from '@sentio/protos'
9
+ import { create } from '@bufbuild/protobuf'
2
10
  import { ListStateStorage } from '@sentio/runtime'
3
11
  import { SuiNetwork } from './network.js'
4
- import { ServerError, Status } from 'nice-grpc'
12
+ import { ConnectError, Code } from '@connectrpc/connect'
5
13
  import { SuiContext, SuiObjectChangeContext } from './context.js'
6
14
  import type { SuiObjectChange } from '@mysten/sui/jsonRpc'
7
15
  import type { GrpcTypes } from '@mysten/sui/grpc'
@@ -23,11 +31,11 @@ import { Required } from 'utility-types'
23
31
  import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
24
32
  import { HandlerOptions } from './models.js'
25
33
 
26
- export const DEFAULT_FETCH_CONFIG: MoveFetchConfig = {
34
+ export const DEFAULT_FETCH_CONFIG: MoveFetchConfig = create(MoveFetchConfigSchema, {
27
35
  resourceChanges: false,
28
36
  allEvents: true,
29
37
  inputs: true
30
- }
38
+ })
31
39
 
32
40
  export type IndexConfigure = Required<SuiBindOptions, 'startCheckpoint' | 'network'>
33
41
 
@@ -82,7 +90,7 @@ export class SuiBaseProcessor {
82
90
  handlerOptions?: HandlerOptions<MoveFetchConfig, T>
83
91
  ): SuiBaseProcessor {
84
92
  let _filters: EventFilter[] = []
85
- const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
93
+ const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
86
94
 
87
95
  if (Array.isArray(filter)) {
88
96
  _filters = filter
@@ -99,7 +107,7 @@ export class SuiBaseProcessor {
99
107
  handlerName: getHandlerName(),
100
108
  handler: async function (data) {
101
109
  if (!data.rawTransaction) {
102
- throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')
110
+ throw new ConnectError('event is null', Code.InvalidArgument)
103
111
  }
104
112
  const txn = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
105
113
 
@@ -111,7 +119,7 @@ export class SuiBaseProcessor {
111
119
  processor.moduleName,
112
120
  processor.config.network,
113
121
  processor.config.address,
114
- data.timestamp || new Date(0),
122
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
115
123
  data.slot,
116
124
  txn,
117
125
  idx,
@@ -145,7 +153,7 @@ export class SuiBaseProcessor {
145
153
  handlerOptions?: HandlerOptions<MoveFetchConfig, T>
146
154
  ): SuiBaseProcessor {
147
155
  let _filters: FunctionNameAndCallFilter[] = []
148
- const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
156
+ const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
149
157
 
150
158
  if (Array.isArray(filter)) {
151
159
  _filters = filter
@@ -160,7 +168,7 @@ export class SuiBaseProcessor {
160
168
  handlerName: getHandlerName(),
161
169
  handler: async function (data) {
162
170
  if (!data.rawTransaction) {
163
- throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
171
+ throw new ConnectError('call is null', Code.InvalidArgument)
164
172
  }
165
173
  const tx = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
166
174
 
@@ -168,7 +176,7 @@ export class SuiBaseProcessor {
168
176
  processor.moduleName,
169
177
  processor.config.network,
170
178
  processor.config.address,
171
- data.timestamp || new Date(0),
179
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
172
180
  data.slot,
173
181
  tx,
174
182
  0,
@@ -178,7 +186,7 @@ export class SuiBaseProcessor {
178
186
  const calls = getMoveCalls(tx)
179
187
  const programmableTx = getProgrammableTransaction(tx)
180
188
  if (!programmableTx) {
181
- throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected getTransactionKind get empty')
189
+ throw new ConnectError('Unexpected getTransactionKind get empty', Code.InvalidArgument)
182
190
  }
183
191
 
184
192
  // TODO potential pass index
@@ -228,7 +236,7 @@ export class SuiBaseProcessor {
228
236
  filter?: TransactionFilter,
229
237
  handlerOptions?: HandlerOptions<MoveFetchConfig, GrpcTypes.ExecutedTransaction>
230
238
  ): this {
231
- const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
239
+ const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...handlerOptions })
232
240
 
233
241
  const processor = this
234
242
 
@@ -236,7 +244,7 @@ export class SuiBaseProcessor {
236
244
  handlerName: getHandlerName(),
237
245
  handler: async function (data) {
238
246
  if (!data.rawTransaction) {
239
- throw new ServerError(Status.INVALID_ARGUMENT, 'transaction is null')
247
+ throw new ConnectError('transaction is null', Code.InvalidArgument)
240
248
  }
241
249
  const tx = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
242
250
 
@@ -244,7 +252,7 @@ export class SuiBaseProcessor {
244
252
  processor.moduleName,
245
253
  processor.config.network,
246
254
  processor.config.address,
247
- data.timestamp || new Date(0),
255
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
248
256
  data.slot,
249
257
  tx,
250
258
  0,
@@ -275,7 +283,7 @@ export class SuiBaseProcessor {
275
283
  type: string | string[]
276
284
  ): this {
277
285
  if (this.config.network === SuiNetwork.TEST_NET) {
278
- throw new ServerError(Status.INVALID_ARGUMENT, 'object change not supported in testnet')
286
+ throw new ConnectError('object change not supported in testnet', Code.InvalidArgument)
279
287
  }
280
288
  const processor = this
281
289
  this.objectChangeHandlers.push({
@@ -284,7 +292,7 @@ export class SuiBaseProcessor {
284
292
  const ctx = new SuiObjectChangeContext(
285
293
  processor.config.network,
286
294
  processor.config.address,
287
- data.timestamp || new Date(0),
295
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
288
296
  data.slot,
289
297
  data.txDigest,
290
298
  processor.config.baseLabels
@@ -316,7 +324,7 @@ export class SuiGlobalProcessor extends SuiBaseProcessor {
316
324
  ): this {
317
325
  // TODO enable more strict check
318
326
  // if (!filter.publicKeyPrefix || filter.publicKeyPrefix.length < 2) {
319
- // throw new ServerError(Status.INVALID_ARGUMENT, 'restriction too low for global processor')
327
+ // throw new ConnectError('restriction too low for global processor', Code.InvalidArgument)
320
328
  // }
321
329
  return super.onTransactionBlock(handler, filter, fetchConfig)
322
330
  }
@@ -1,5 +1,6 @@
1
1
  import { UserTransactionResponse, EntryFunctionPayloadResponse } from '@aptos-labs/ts-sdk'
2
- import { DataBinding, HandlerType } from '@sentio/protos'
2
+ import { type DataBinding, DataBindingSchema, HandlerType } from '@sentio/protos'
3
+ import { create } from '@bufbuild/protobuf'
3
4
  import { TestProcessorServer } from './test-processor-server.js'
4
5
  import { AptosNetwork } from '../aptos/index.js'
5
6
  import { parseMoveType, accountTypeString } from '../move/index.js'
@@ -40,16 +41,19 @@ export class AptosFacet {
40
41
  for (const callConfig of config.moveCallConfigs) {
41
42
  for (const callFilter of callConfig.filters) {
42
43
  if (accountTypeString(config.contract.address) + '::' + callFilter.function === payload.function) {
43
- return {
44
+ return create(DataBindingSchema, {
44
45
  data: {
45
- aptCall: {
46
- rawTransaction: JSON.stringify(transaction)
46
+ value: {
47
+ case: 'aptCall',
48
+ value: {
49
+ rawTransaction: JSON.stringify(transaction)
50
+ }
47
51
  }
48
52
  },
49
53
  handlerIds: [callConfig.handlerId],
50
54
  handlerType: HandlerType.APT_CALL,
51
55
  chainId: network
52
- }
56
+ })
53
57
  }
54
58
  }
55
59
  }
@@ -81,18 +85,21 @@ export class AptosFacet {
81
85
  accountTypeString(config.contract.address) + '::' + eventFilter.type ===
82
86
  parseMoveType(event.type).qname
83
87
  ) {
84
- return {
88
+ return create(DataBindingSchema, {
85
89
  data: {
86
- aptEvent: {
87
- rawEvent: JSON.stringify(event),
88
- eventIndex: idx,
89
- rawTransaction: JSON.stringify(transaction)
90
+ value: {
91
+ case: 'aptEvent',
92
+ value: {
93
+ rawEvent: JSON.stringify(event),
94
+ eventIndex: idx,
95
+ rawTransaction: JSON.stringify(transaction)
96
+ }
90
97
  }
91
98
  },
92
99
  handlerIds: [eventConfig.handlerId],
93
100
  handlerType: HandlerType.APT_EVENT,
94
101
  chainId: network
95
- }
102
+ })
96
103
  }
97
104
  }
98
105
  }
@@ -1,5 +1,6 @@
1
1
  import { TestProcessorServer } from './test-processor-server.js'
2
- import { DataBinding, HandlerType } from '@sentio/protos'
2
+ import { type DataBinding, DataBindingSchema, HandlerType, timestampNow } from '@sentio/protos'
3
+ import { create } from '@bufbuild/protobuf'
3
4
  import { CosmosNetwork } from '../cosmos/network.js'
4
5
 
5
6
  export class CosmosFacet {
@@ -28,17 +29,20 @@ export class CosmosFacet {
28
29
  }
29
30
 
30
31
  for (const logConfig of config.cosmosLogConfigs) {
31
- const binding = {
32
+ const binding = create(DataBindingSchema, {
32
33
  data: {
33
- cosmosCall: {
34
- transaction,
35
- timestamp: new Date()
34
+ value: {
35
+ case: 'cosmosCall',
36
+ value: {
37
+ transaction,
38
+ timestamp: timestampNow()
39
+ }
36
40
  }
37
41
  },
38
42
  handlerIds: [logConfig.handlerId],
39
43
  handlerType: HandlerType.COSMOS_CALL,
40
44
  chainId: network
41
- }
45
+ })
42
46
 
43
47
  const logFilters = logConfig.logFilters
44
48
  for (const log of transaction.logs || []) {
@@ -1,5 +1,12 @@
1
1
  import { TestProcessorServer } from './test-processor-server.js'
2
- import { DataBinding, HandlerType, ProcessBindingResponse } from '@sentio/protos'
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
- ethTrace: {
54
- trace,
55
- timestamp: new Date()
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
- ethLog: { log, timestamp: new Date(), rawLog: JSON.stringify(log) }
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
- ethLog: { log, timestamp: new Date(), rawLog: JSON.stringify(log) }
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
- ethBlock: { block }
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
- ethTransaction: { transaction, timestamp: new Date(), rawTransaction: JSON.stringify(transaction) }
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
- fuelTransaction: {
53
- transaction,
54
- timestamp: new Date()
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
- fuelTransaction: {
69
- transaction,
70
- timestamp: new Date()
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?.logIds ?? []
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
- fuelLog: {
97
- transaction,
98
- timestamp: new Date(),
99
- receiptIndex: BigInt(i)
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
- suiCall: {
53
- rawTransaction: JSON.stringify(transaction),
54
- timestamp: new Date(),
55
- slot: 10000n
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
- suiCall: {
99
- rawTransaction: JSON.stringify(transaction),
100
- timestamp: transaction.timestampMs ? new Date(transaction.timestampMs) : new Date(),
101
- slot: BigInt(transaction.checkpoint || 0)
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
- suiEvent: {
129
- rawEvent: JSON.stringify(event),
130
- rawTransaction: JSON.stringify(transaction),
131
- timestamp: new Date(transaction.timestampMs || 0),
132
- slot: 10000n
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
  }