@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,4 +1,11 @@
1
- import { HandleInterval, MoveAccountFetchConfig, MoveFetchConfig, TemplateInstance } from '@sentio/protos'
1
+ import {
2
+ type HandleInterval,
3
+ HandleIntervalSchema,
4
+ type MoveAccountFetchConfig,
5
+ type MoveFetchConfig,
6
+ TemplateInstanceSchema
7
+ } from '@sentio/protos'
8
+ import { create } from '@bufbuild/protobuf'
2
9
  import { ListStateStorage, processMetrics } from '@sentio/runtime'
3
10
  import { SuiAddressContext, SuiContext, SuiObjectContext } from './context.js'
4
11
  import type { GrpcTypes } from '@mysten/sui/grpc'
@@ -15,7 +22,7 @@ import {
15
22
  } from './sui-object-processor.js'
16
23
  import { SuiBindOptions } from './sui-processor.js'
17
24
  import { accountAddressString, TransactionFilter } from '../move/index.js'
18
- import { ServerError, Status } from 'nice-grpc'
25
+ import { ConnectError, Code } from '@connectrpc/connect'
19
26
  import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
20
27
 
21
28
  class ObjectHandler<HandlerType> {
@@ -56,11 +63,11 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
56
63
  let id = (options as SuiObjectBindOptions).objectId || (options as SuiBindOptions).address
57
64
 
58
65
  if (id === '*') {
59
- throw new ServerError(Status.INVALID_ARGUMENT, "can't bind template instance with *")
66
+ throw new ConnectError("can't bind template instance with *", Code.InvalidArgument)
60
67
  }
61
68
  id = accountAddressString(id)
62
69
 
63
- const instance: TemplateInstance = {
70
+ const instance = create(TemplateInstanceSchema, {
64
71
  templateId: this.id,
65
72
  contract: {
66
73
  name: '',
@@ -71,7 +78,7 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
71
78
  startBlock: options.startCheckpoint || 0n,
72
79
  endBlock: options.endCheckpoint || 0n,
73
80
  baseLabels: options.baseLabels
74
- }
81
+ })
75
82
 
76
83
  ctx.sendTemplateInstance(instance)
77
84
 
@@ -93,7 +100,7 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
93
100
  let id = (options as SuiObjectBindOptions).objectId || (options as SuiBindOptions).address
94
101
 
95
102
  if (id === '*') {
96
- throw new ServerError(Status.INVALID_ARGUMENT, "can't bind template instance with *")
103
+ throw new ConnectError("can't bind template instance with *", Code.InvalidArgument)
97
104
  }
98
105
  id = accountAddressString(id)
99
106
 
@@ -124,7 +131,7 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
124
131
  let id = (options as SuiObjectBindOptions).objectId || (options as SuiBindOptions).address
125
132
 
126
133
  if (id === '*') {
127
- throw new ServerError(Status.INVALID_ARGUMENT, "can't delete template instance bind with *")
134
+ throw new ConnectError("can't delete template instance bind with *", Code.InvalidArgument)
128
135
  }
129
136
  id = accountAddressString(id)
130
137
 
@@ -148,9 +155,9 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
148
155
  }
149
156
 
150
157
  if (deleted !== 1) {
151
- throw new ServerError(
152
- Status.INVALID_ARGUMENT,
153
- `Failed to delete processor for template ${this.id}, ${sig}. deleted ${deleted} times`
158
+ throw new ConnectError(
159
+ `Failed to delete processor for template ${this.id}, ${sig}. deleted ${deleted} times`,
160
+ Code.InvalidArgument
154
161
  )
155
162
  }
156
163
 
@@ -163,7 +170,7 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
163
170
  })
164
171
 
165
172
  ctx.sendTemplateInstance(
166
- {
173
+ create(TemplateInstanceSchema, {
167
174
  templateId: this.id,
168
175
  contract: {
169
176
  name: '',
@@ -174,7 +181,7 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
174
181
  startBlock: options.startCheckpoint || 0n,
175
182
  endBlock: options.endCheckpoint || 0n,
176
183
  baseLabels: options.baseLabels
177
- },
184
+ }),
178
185
  true
179
186
  )
180
187
  }
@@ -206,10 +213,10 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
206
213
  ): this {
207
214
  return this.onInterval(
208
215
  handler,
209
- {
216
+ create(HandleIntervalSchema, {
210
217
  recentInterval: timeIntervalInMinutes,
211
218
  backfillInterval: backfillTimeIntervalInMinutes
212
- },
219
+ }),
213
220
  undefined,
214
221
  type,
215
222
  fetchConfig
@@ -226,7 +233,10 @@ export abstract class SuiObjectOrAddressProcessorTemplate<
226
233
  return this.onInterval(
227
234
  handler,
228
235
  undefined,
229
- { recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },
236
+ create(HandleIntervalSchema, {
237
+ recentInterval: checkpointInterval,
238
+ backfillInterval: backfillCheckpointInterval
239
+ }),
230
240
  type,
231
241
  fetchConfig
232
242
  )
@@ -1,13 +1,18 @@
1
1
  import {
2
- Data_SuiCall,
3
- Data_SuiObject,
4
- Data_SuiObjectChange,
5
- HandleInterval,
6
- MoveAccountFetchConfig,
7
- MoveFetchConfig,
2
+ type Data_SuiCall,
3
+ type Data_SuiObject,
4
+ type Data_SuiObjectChange,
5
+ type HandleInterval,
6
+ HandleIntervalSchema,
7
+ type MoveAccountFetchConfig,
8
+ MoveAccountFetchConfigSchema,
9
+ type MoveFetchConfig,
10
+ MoveFetchConfigSchema,
8
11
  MoveOwnerType,
9
- ProcessResult
12
+ type ProcessResult,
13
+ timestampDate
10
14
  } from '@sentio/protos'
15
+ import { create } from '@bufbuild/protobuf'
11
16
  import { ListStateStorage } from '@sentio/runtime'
12
17
  import { SuiNetwork } from './network.js'
13
18
  import { SuiAddressContext, SuiContext, SuiObjectChangeContext, SuiObjectContext } from './context.js'
@@ -17,7 +22,7 @@ import type { SuiMoveObjectInput } from '@typemove/sui'
17
22
  import { ALL_ADDRESS, PromiseOrVoid } from '../core/index.js'
18
23
  import { configure, DEFAULT_FETCH_CONFIG, IndexConfigure, SuiBindOptions } from './sui-processor.js'
19
24
  import { CallHandler, TransactionFilter, accountTypeString, ObjectChangeHandler } from '../move/index.js'
20
- import { ServerError, Status } from 'nice-grpc'
25
+ import { ConnectError, Code } from '@connectrpc/connect'
21
26
  import { TypeDescriptor } from '@typemove/move'
22
27
  import { TypedSuiMoveObject } from './models.js'
23
28
  import { getHandlerName, proxyProcessor } from '../utils/metrics.js'
@@ -47,9 +52,9 @@ interface ObjectHandler {
47
52
  handlerName: string
48
53
  }
49
54
 
50
- export const DEFAULT_ACCOUNT_FETCH_CONFIG: MoveAccountFetchConfig = {
55
+ export const DEFAULT_ACCOUNT_FETCH_CONFIG: MoveAccountFetchConfig = create(MoveAccountFetchConfigSchema, {
51
56
  owned: false
52
- }
57
+ })
53
58
 
54
59
  export class SuiAccountProcessorState extends ListStateStorage<SuiBaseObjectOrAddressProcessor<any>> {
55
60
  static INSTANCE = new SuiAccountProcessorState()
@@ -114,7 +119,7 @@ export abstract class SuiBaseObjectOrAddressProcessor<HandlerType> {
114
119
  data.objectId,
115
120
  data.objectVersion,
116
121
  data.slot,
117
- data.timestamp || new Date(0),
122
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
118
123
  processor.config.baseLabels
119
124
  )
120
125
  await processor.doHandle(handler, data, ctx)
@@ -141,10 +146,10 @@ abstract class SuiBaseObjectOrAddressProcessorInternal<
141
146
  ): this {
142
147
  return this.onInterval(
143
148
  handler,
144
- {
149
+ create(HandleIntervalSchema, {
145
150
  recentInterval: timeIntervalInMinutes,
146
151
  backfillInterval: backfillTimeIntervalInMinutes
147
- },
152
+ }),
148
153
  undefined,
149
154
  type,
150
155
  fetchConfig
@@ -161,7 +166,10 @@ abstract class SuiBaseObjectOrAddressProcessorInternal<
161
166
  return this.onInterval(
162
167
  handler,
163
168
  undefined,
164
- { recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },
169
+ create(HandleIntervalSchema, {
170
+ recentInterval: checkpointInterval,
171
+ backfillInterval: backfillCheckpointInterval
172
+ }),
165
173
  type,
166
174
  fetchConfig
167
175
  )
@@ -190,7 +198,7 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
190
198
  filter?: TransactionFilter,
191
199
  fetchConfig?: Partial<MoveFetchConfig>
192
200
  ) {
193
- const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...fetchConfig })
201
+ const _fetchConfig = create(MoveFetchConfigSchema, { ...DEFAULT_FETCH_CONFIG, ...fetchConfig })
194
202
  const _filter: TransactionFilter = {
195
203
  fromAndToAddress: {
196
204
  from: '',
@@ -205,7 +213,7 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
205
213
  handlerName: getHandlerName(),
206
214
  handler: async function (data) {
207
215
  if (!data.rawTransaction) {
208
- throw new ServerError(Status.INVALID_ARGUMENT, 'transaction is null')
216
+ throw new ConnectError('transaction is null', Code.InvalidArgument)
209
217
  }
210
218
  const tx = JSON.parse(data.rawTransaction) as GrpcTypes.ExecutedTransaction
211
219
 
@@ -213,7 +221,7 @@ export class SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal
213
221
  'object',
214
222
  processor.config.network,
215
223
  processor.config.address,
216
- data.timestamp || new Date(0),
224
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
217
225
  data.slot,
218
226
  tx,
219
227
  0,
@@ -305,7 +313,7 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
305
313
 
306
314
  public onObjectChange(handler: (changes: SuiObjectChange[], ctx: SuiObjectChangeContext) => PromiseOrVoid): this {
307
315
  if (this.config.network === SuiNetwork.TEST_NET) {
308
- throw new ServerError(Status.INVALID_ARGUMENT, 'object change not supported in testnet')
316
+ throw new ConnectError('object change not supported in testnet', Code.InvalidArgument)
309
317
  }
310
318
  const processor = this
311
319
  this.objectChangeHandlers.push({
@@ -314,7 +322,7 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
314
322
  const ctx = new SuiObjectChangeContext(
315
323
  processor.config.network,
316
324
  processor.config.address,
317
- data.timestamp || new Date(0),
325
+ data.timestamp ? timestampDate(data.timestamp) : new Date(0),
318
326
  data.slot,
319
327
  data.txDigest,
320
328
  processor.config.baseLabels
@@ -340,10 +348,10 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
340
348
  ): this {
341
349
  return this.onInterval(
342
350
  handler,
343
- {
351
+ create(HandleIntervalSchema, {
344
352
  recentInterval: timeIntervalInMinutes,
345
353
  backfillInterval: backfillTimeIntervalInMinutes
346
- },
354
+ }),
347
355
  undefined,
348
356
  this.objectType.getSignature(),
349
357
  fetchConfig
@@ -363,7 +371,10 @@ export class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<
363
371
  return this.onInterval(
364
372
  handler,
365
373
  undefined,
366
- { recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },
374
+ create(HandleIntervalSchema, {
375
+ recentInterval: checkpointInterval,
376
+ backfillInterval: backfillCheckpointInterval
377
+ }),
367
378
  this.objectType.qname,
368
379
  fetchConfig
369
380
  )
@@ -1,15 +1,20 @@
1
1
  import { USER_PROCESSOR } from '@sentio/runtime'
2
2
  import {
3
- AccountConfig,
4
- ContractConfig,
3
+ AccountConfigSchema,
4
+ ContractConfigSchema,
5
5
  HandlerType,
6
- InitResponse,
7
- MoveCallHandlerConfig,
8
- MoveEventHandlerConfig,
9
- MoveResourceChangeConfig,
10
- ProcessConfigResponse,
11
- StartRequest
6
+ type InitResponse,
7
+ type MoveCallHandlerConfig,
8
+ MoveCallHandlerConfigSchema,
9
+ type MoveEventHandlerConfig,
10
+ MoveEventHandlerConfigSchema,
11
+ MoveOnIntervalConfigSchema,
12
+ type MoveResourceChangeConfig,
13
+ MoveResourceChangeConfigSchema,
14
+ type ProcessConfigResponse,
15
+ type StartRequest
12
16
  } from '@sentio/protos'
17
+ import { create } from '@bufbuild/protobuf'
13
18
 
14
19
  import { PartitionHandlerManager } from '../core/index.js'
15
20
  import { HandlerRegister } from '../core/handler-register.js'
@@ -75,7 +80,7 @@ export class SuiPluginPart {
75
80
  if (forChainId !== undefined && forChainId !== chainId.toString()) {
76
81
  continue
77
82
  }
78
- const contractConfig = ContractConfig.fromPartial({
83
+ const contractConfig = create(ContractConfigSchema, {
79
84
  transactionConfig: [],
80
85
  processorType: USER_PROCESSOR,
81
86
  contract: {
@@ -90,7 +95,7 @@ export class SuiPluginPart {
90
95
  for (const handler of suiProcessor.eventHandlers) {
91
96
  const handlerId = this.handlerRegister.register(handler.handler, chainId)
92
97
  this.partitionManager.registerPartitionHandler(HandlerType.SUI_EVENT, handlerId, handler.partitionHandler)
93
- const eventHandlerConfig: MoveEventHandlerConfig = {
98
+ const eventHandlerConfig: MoveEventHandlerConfig = create(MoveEventHandlerConfigSchema, {
94
99
  filters: handler.filters.map((f) => {
95
100
  return {
96
101
  type: f.type,
@@ -101,13 +106,13 @@ export class SuiPluginPart {
101
106
  fetchConfig: handler.fetchConfig,
102
107
  handlerId,
103
108
  handlerName: handler.handlerName
104
- }
109
+ })
105
110
  contractConfig.moveEventConfigs.push(eventHandlerConfig)
106
111
  }
107
112
  for (const handler of suiProcessor.callHandlers) {
108
113
  const handlerId = this.handlerRegister.register(handler.handler, chainId)
109
114
  this.partitionManager.registerPartitionHandler(HandlerType.SUI_CALL, handlerId, handler.partitionHandler)
110
- const functionHandlerConfig: MoveCallHandlerConfig = {
115
+ const functionHandlerConfig: MoveCallHandlerConfig = create(MoveCallHandlerConfigSchema, {
111
116
  filters: handler.filters.map((filter) => {
112
117
  return {
113
118
  function: filter.function,
@@ -121,18 +126,18 @@ export class SuiPluginPart {
121
126
  fetchConfig: handler.fetchConfig,
122
127
  handlerId,
123
128
  handlerName: handler.handlerName
124
- }
129
+ })
125
130
  contractConfig.moveCallConfigs.push(functionHandlerConfig)
126
131
  }
127
132
  // deprecated, use objectType processor instead
128
133
  for (const handler of suiProcessor.objectChangeHandlers) {
129
134
  const handlerId = this.handlerRegister.register(handler.handler, chainId)
130
- const objectChangeHandler: MoveResourceChangeConfig = {
135
+ const objectChangeHandler: MoveResourceChangeConfig = create(MoveResourceChangeConfigSchema, {
131
136
  types: typeof handler.type === 'string' ? [handler.type] : handler.type,
132
137
  handlerId,
133
138
  handlerName: handler.handlerName,
134
139
  includeDeleted: false
135
- }
140
+ })
136
141
  contractConfig.moveResourceChangeConfigs.push(objectChangeHandler)
137
142
  }
138
143
  config.contractConfigs.push(contractConfig)
@@ -143,7 +148,7 @@ export class SuiPluginPart {
143
148
  if (forChainId !== undefined && forChainId !== chainId.toString()) {
144
149
  continue
145
150
  }
146
- const accountConfig = AccountConfig.fromPartial({
151
+ const accountConfig = create(AccountConfigSchema, {
147
152
  address: processor.config.address,
148
153
  chainId: processor.getChainId(),
149
154
  startBlock: processor.config.startCheckpoint, // TODO maybe use another field
@@ -152,39 +157,41 @@ export class SuiPluginPart {
152
157
 
153
158
  for (const handler of processor.objectChangeHandlers) {
154
159
  const handlerId = this.handlerRegister.register(handler.handler, chainId)
155
- const objectChangeHandler: MoveResourceChangeConfig = {
160
+ const objectChangeHandler: MoveResourceChangeConfig = create(MoveResourceChangeConfigSchema, {
156
161
  types: typeof handler.type === 'string' ? [handler.type] : handler.type,
157
162
  handlerId,
158
163
  handlerName: handler.handlerName,
159
164
  includeDeleted: false
160
- }
165
+ })
161
166
  accountConfig.moveResourceChangeConfigs.push(objectChangeHandler)
162
167
  }
163
168
 
164
169
  for (const handler of processor.objectHandlers) {
165
170
  const handlerId = this.handlerRegister.register(handler.handler, chainId)
166
171
 
167
- accountConfig.moveIntervalConfigs.push({
168
- intervalConfig: {
169
- handlerId: handlerId,
170
- handlerName: handler.handlerName,
171
- minutes: 0,
172
- minutesInterval: handler.timeIntervalInMinutes,
173
- slot: 0,
174
- slotInterval: handler.checkPointInterval,
172
+ accountConfig.moveIntervalConfigs.push(
173
+ create(MoveOnIntervalConfigSchema, {
174
+ intervalConfig: {
175
+ handlerId: handlerId,
176
+ handlerName: handler.handlerName,
177
+ minutes: 0,
178
+ minutesInterval: handler.timeIntervalInMinutes,
179
+ slot: 0,
180
+ slotInterval: handler.checkPointInterval,
181
+ fetchConfig: undefined
182
+ },
183
+ type: handler.type || '',
184
+ ownerType: processor.ownerType,
185
+ resourceFetchConfig: handler.fetchConfig,
175
186
  fetchConfig: undefined
176
- },
177
- type: handler.type || '',
178
- ownerType: processor.ownerType,
179
- resourceFetchConfig: handler.fetchConfig,
180
- fetchConfig: undefined
181
- })
187
+ })
188
+ )
182
189
  }
183
190
 
184
191
  if (processor instanceof SuiAddressProcessor) {
185
192
  for (const handler of processor.callHandlers) {
186
193
  const handlerId = this.handlerRegister.register(handler.handler, chainId)
187
- const functionHandlerConfig: MoveCallHandlerConfig = {
194
+ const functionHandlerConfig: MoveCallHandlerConfig = create(MoveCallHandlerConfigSchema, {
188
195
  filters: handler.filters.map((filter) => {
189
196
  return {
190
197
  function: filter.function,
@@ -198,7 +205,7 @@ export class SuiPluginPart {
198
205
  fetchConfig: handler.fetchConfig,
199
206
  handlerId,
200
207
  handlerName: handler.handlerName
201
- }
208
+ })
202
209
  accountConfig.moveCallConfigs.push(functionHandlerConfig)
203
210
  }
204
211
  }
@@ -1,15 +1,17 @@
1
1
  import { errorString, mergeProcessResults, Plugin, PluginManager } from '@sentio/runtime'
2
2
  import {
3
- DataBinding,
3
+ type DataBinding,
4
4
  HandlerType,
5
- InitResponse,
6
- ProcessConfigResponse,
7
- ProcessResult,
8
- ProcessStreamResponse_Partitions,
9
- StartRequest
5
+ type InitResponse,
6
+ type ProcessConfigResponse,
7
+ type ProcessResult,
8
+ type ProcessStreamResponse_Partitions,
9
+ ProcessStreamResponse_PartitionsSchema,
10
+ type StartRequest
10
11
  } from '@sentio/protos'
12
+ import { create } from '@bufbuild/protobuf'
11
13
 
12
- import { ServerError, Status } from 'nice-grpc'
14
+ import { ConnectError, Code } from '@connectrpc/connect'
13
15
  import { PartitionHandlerManager } from '../core/index.js'
14
16
  import { HandlerRegister } from '../core/handler-register.js'
15
17
 
@@ -60,7 +62,7 @@ export class SuiPlugin extends Plugin {
60
62
  case HandlerType.SUI_OBJECT_CHANGE:
61
63
  return this.processSuiObjectChange(request)
62
64
  default:
63
- throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)
65
+ throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument)
64
66
  }
65
67
  }
66
68
 
@@ -68,48 +70,48 @@ export class SuiPlugin extends Plugin {
68
70
  let data: any
69
71
  switch (request.handlerType) {
70
72
  case HandlerType.SUI_EVENT:
71
- if (!request.data?.suiEvent) {
72
- throw new ServerError(Status.INVALID_ARGUMENT, "suiEvent can't be empty")
73
+ if (request.data?.value.case !== 'suiEvent') {
74
+ throw new ConnectError("suiEvent can't be empty", Code.InvalidArgument)
73
75
  }
74
- data = request.data.suiEvent
76
+ data = request.data.value.value
75
77
  break
76
78
  case HandlerType.SUI_CALL:
77
- if (!request.data?.suiCall) {
78
- throw new ServerError(Status.INVALID_ARGUMENT, "suiCall can't be empty")
79
+ if (request.data?.value.case !== 'suiCall') {
80
+ throw new ConnectError("suiCall can't be empty", Code.InvalidArgument)
79
81
  }
80
- data = request.data.suiCall
82
+ data = request.data.value.value
81
83
  break
82
84
  case HandlerType.SUI_OBJECT:
83
- if (!request.data?.suiObject) {
84
- throw new ServerError(Status.INVALID_ARGUMENT, "suiObject can't be empty")
85
+ if (request.data?.value.case !== 'suiObject') {
86
+ throw new ConnectError("suiObject can't be empty", Code.InvalidArgument)
85
87
  }
86
- data = request.data.suiObject
88
+ data = request.data.value.value
87
89
  break
88
90
  case HandlerType.SUI_OBJECT_CHANGE:
89
- if (!request.data?.suiObjectChange) {
90
- throw new ServerError(Status.INVALID_ARGUMENT, "suiObjectChange can't be empty")
91
+ if (request.data?.value.case !== 'suiObjectChange') {
92
+ throw new ConnectError("suiObjectChange can't be empty", Code.InvalidArgument)
91
93
  }
92
- data = request.data.suiObjectChange
94
+ data = request.data.value.value
93
95
  break
94
96
  default:
95
- throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)
97
+ throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument)
96
98
  }
97
99
  const partitions = await this.partitionManager.processPartitionForHandlerType(
98
100
  request.handlerType,
99
101
  request.handlerIds,
100
102
  data
101
103
  )
102
- return {
104
+ return create(ProcessStreamResponse_PartitionsSchema, {
103
105
  partitions
104
- }
106
+ })
105
107
  }
106
108
 
107
109
  async processSuiEvent(binding: DataBinding): Promise<ProcessResult> {
108
- if (!binding.data?.suiEvent) {
109
- throw new ServerError(Status.INVALID_ARGUMENT, "Event can't be empty")
110
+ if (binding.data?.value.case !== 'suiEvent') {
111
+ throw new ConnectError("Event can't be empty", Code.InvalidArgument)
110
112
  }
111
113
  const promises: Promise<ProcessResult>[] = []
112
- const event = binding.data.suiEvent
114
+ const event = binding.data.value.value
113
115
 
114
116
  for (const handlerId of binding.handlerIds) {
115
117
  promises.push(
@@ -119,9 +121,9 @@ export class SuiPlugin extends Plugin {
119
121
  handlerId
120
122
  )(event)
121
123
  .catch((e: any) => {
122
- throw new ServerError(
123
- Status.INTERNAL,
124
- 'error processing event: ' + JSON.stringify(event) + '\n' + errorString(e)
124
+ throw new ConnectError(
125
+ 'error processing event: ' + JSON.stringify(event) + '\n' + errorString(e),
126
+ Code.Internal
125
127
  )
126
128
  })
127
129
  )
@@ -130,10 +132,10 @@ export class SuiPlugin extends Plugin {
130
132
  }
131
133
 
132
134
  async processSuiFunctionCall(binding: DataBinding): Promise<ProcessResult> {
133
- if (!binding.data?.suiCall) {
134
- throw new ServerError(Status.INVALID_ARGUMENT, "Call can't be empty")
135
+ if (binding.data?.value.case !== 'suiCall') {
136
+ throw new ConnectError("Call can't be empty", Code.InvalidArgument)
135
137
  }
136
- const call = binding.data.suiCall
138
+ const call = binding.data.value.value
137
139
 
138
140
  const promises: Promise<ProcessResult>[] = []
139
141
  for (const handlerId of binding.handlerIds) {
@@ -143,9 +145,9 @@ export class SuiPlugin extends Plugin {
143
145
  handlerId
144
146
  )(call)
145
147
  .catch((e: any) => {
146
- throw new ServerError(
147
- Status.INTERNAL,
148
- 'error processing call: ' + JSON.stringify(call) + '\n' + errorString(e)
148
+ throw new ConnectError(
149
+ 'error processing call: ' + JSON.stringify(call) + '\n' + errorString(e),
150
+ Code.Internal
149
151
  )
150
152
  })
151
153
  promises.push(promise)
@@ -154,10 +156,10 @@ export class SuiPlugin extends Plugin {
154
156
  }
155
157
 
156
158
  async processSuiObject(binding: DataBinding): Promise<ProcessResult> {
157
- if (!binding.data?.suiObject) {
158
- throw new ServerError(Status.INVALID_ARGUMENT, "Object can't be empty")
159
+ if (binding.data?.value.case !== 'suiObject') {
160
+ throw new ConnectError("Object can't be empty", Code.InvalidArgument)
159
161
  }
160
- const object = binding.data.suiObject
162
+ const object = binding.data.value.value
161
163
 
162
164
  const promises: Promise<ProcessResult>[] = []
163
165
  for (const handlerId of binding.handlerIds) {
@@ -168,9 +170,9 @@ export class SuiPlugin extends Plugin {
168
170
  handlerId
169
171
  )(object)
170
172
  .catch((e: any) => {
171
- throw new ServerError(
172
- Status.INTERNAL,
173
- 'error processing object: ' + JSON.stringify(object) + '\n' + errorString(e)
173
+ throw new ConnectError(
174
+ 'error processing object: ' + JSON.stringify(object) + '\n' + errorString(e),
175
+ Code.Internal
174
176
  )
175
177
  })
176
178
  )
@@ -179,10 +181,10 @@ export class SuiPlugin extends Plugin {
179
181
  }
180
182
 
181
183
  async processSuiObjectChange(binding: DataBinding): Promise<ProcessResult> {
182
- if (!binding.data?.suiObjectChange) {
183
- throw new ServerError(Status.INVALID_ARGUMENT, "Object change can't be empty")
184
+ if (binding.data?.value.case !== 'suiObjectChange') {
185
+ throw new ConnectError("Object change can't be empty", Code.InvalidArgument)
184
186
  }
185
- const objectChange = binding.data.suiObjectChange
187
+ const objectChange = binding.data.value.value
186
188
 
187
189
  const promises: Promise<ProcessResult>[] = []
188
190
  for (const handlerId of binding.handlerIds) {
@@ -193,9 +195,9 @@ export class SuiPlugin extends Plugin {
193
195
  handlerId
194
196
  )(objectChange)
195
197
  .catch((e: any) => {
196
- throw new ServerError(
197
- Status.INTERNAL,
198
- 'error processing object change: ' + JSON.stringify(objectChange) + '\n' + errorString(e)
198
+ throw new ConnectError(
199
+ 'error processing object change: ' + JSON.stringify(objectChange) + '\n' + errorString(e),
200
+ Code.Internal
199
201
  )
200
202
  })
201
203
  )