@sentio/sdk 2.57.12-rc.1 → 2.57.12-rc.a

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 (245) hide show
  1. package/lib/aptos/ext/token.d.ts.map +1 -1
  2. package/lib/aptos/ext/token.js +4 -6
  3. package/lib/aptos/ext/token.js.map +1 -1
  4. package/lib/chunk-24EEMT46.js +3 -0
  5. package/lib/chunk-24EEMT46.js.map +1 -0
  6. package/lib/chunk-2R7O6UGY.js +3 -0
  7. package/lib/chunk-2R7O6UGY.js.map +1 -0
  8. package/lib/chunk-4JXRK4YH.js +29 -0
  9. package/lib/chunk-4JXRK4YH.js.map +1 -0
  10. package/lib/chunk-7QZC3R57.js +3 -0
  11. package/lib/chunk-7QZC3R57.js.map +1 -0
  12. package/lib/chunk-AK5E6DKD.js +6 -0
  13. package/lib/chunk-AK5E6DKD.js.map +1 -0
  14. package/lib/chunk-ATZBHPQN.js +3 -0
  15. package/lib/chunk-ATZBHPQN.js.map +1 -0
  16. package/lib/chunk-B6U7F4GY.js +29 -0
  17. package/lib/chunk-B6U7F4GY.js.map +1 -0
  18. package/lib/chunk-DGKULIPW.js +3 -0
  19. package/lib/chunk-DGKULIPW.js.map +1 -0
  20. package/lib/chunk-DS2LOABN.js +3 -0
  21. package/lib/chunk-DS2LOABN.js.map +1 -0
  22. package/lib/chunk-FMBGZMT4.js +6 -0
  23. package/lib/chunk-FMBGZMT4.js.map +1 -0
  24. package/lib/chunk-FMZDKD72.js +8 -0
  25. package/lib/chunk-FMZDKD72.js.map +1 -0
  26. package/lib/chunk-G5BIPHMS.js +3 -0
  27. package/lib/chunk-G5BIPHMS.js.map +1 -0
  28. package/lib/chunk-G6XPDWDE.js +3 -0
  29. package/lib/chunk-G6XPDWDE.js.map +1 -0
  30. package/lib/chunk-GJX3DL4J.js +499 -0
  31. package/lib/chunk-GJX3DL4J.js.map +1 -0
  32. package/lib/chunk-GTITFWMU.js +259 -0
  33. package/lib/chunk-GTITFWMU.js.map +1 -0
  34. package/lib/chunk-J7Z2TKQE.js +33 -0
  35. package/lib/chunk-J7Z2TKQE.js.map +1 -0
  36. package/lib/chunk-JQ4LTUIX.js +995 -0
  37. package/lib/chunk-JQ4LTUIX.js.map +1 -0
  38. package/lib/chunk-LG2TF5WR.js +8 -0
  39. package/lib/chunk-LG2TF5WR.js.map +1 -0
  40. package/lib/chunk-LVWOFGF2.js +3 -0
  41. package/lib/chunk-LVWOFGF2.js.map +1 -0
  42. package/lib/chunk-O564J2U6.js +11 -0
  43. package/lib/chunk-O564J2U6.js.map +1 -0
  44. package/lib/chunk-QGIFUSFI.js +84 -0
  45. package/lib/chunk-QGIFUSFI.js.map +1 -0
  46. package/lib/chunk-QGPJOTWP.js +3 -0
  47. package/lib/chunk-QGPJOTWP.js.map +1 -0
  48. package/lib/chunk-RA75ESSD.js +3 -0
  49. package/lib/chunk-RA75ESSD.js.map +1 -0
  50. package/lib/chunk-RVAYZJ7X.js +5 -0
  51. package/lib/chunk-RVAYZJ7X.js.map +1 -0
  52. package/lib/chunk-SPY3PKUB.js +3 -0
  53. package/lib/chunk-SPY3PKUB.js.map +1 -0
  54. package/lib/chunk-SUCYR7EB.js +3 -0
  55. package/lib/chunk-SUCYR7EB.js.map +1 -0
  56. package/lib/chunk-TGIXVAHB.js +7 -0
  57. package/lib/chunk-TGIXVAHB.js.map +1 -0
  58. package/lib/chunk-TSEQGMTN.js +5 -0
  59. package/lib/chunk-TSEQGMTN.js.map +1 -0
  60. package/lib/chunk-ZHI6ULD5.js +3 -0
  61. package/lib/chunk-ZHI6ULD5.js.map +1 -0
  62. package/lib/multipart-parser-J6QPYJHT.js +4 -0
  63. package/lib/multipart-parser-J6QPYJHT.js.map +1 -0
  64. package/package.json +4 -4
  65. package/src/aptos/builtin/0x1.d.ts +6451 -0
  66. package/src/aptos/builtin/0x1.d.ts.map +1 -0
  67. package/src/aptos/builtin/0x1.js +7138 -0
  68. package/src/aptos/builtin/0x1.js.map +1 -0
  69. package/src/aptos/builtin/0x3.d.ts +1122 -0
  70. package/src/aptos/builtin/0x3.d.ts.map +1 -0
  71. package/src/aptos/builtin/0x3.js +937 -0
  72. package/src/aptos/builtin/0x3.js.map +1 -0
  73. package/src/aptos/builtin/0x4.d.ts +551 -0
  74. package/src/aptos/builtin/0x4.d.ts.map +1 -0
  75. package/src/aptos/builtin/0x4.js +529 -0
  76. package/src/aptos/builtin/0x4.js.map +1 -0
  77. package/src/aptos/builtin/index.d.ts +4 -0
  78. package/src/aptos/builtin/index.d.ts.map +1 -0
  79. package/src/aptos/builtin/index.js +7 -0
  80. package/src/aptos/builtin/index.js.map +1 -0
  81. package/src/aptos/ext/token.ts +4 -6
  82. package/src/eth/builtin/eacaggregatorproxy.d.ts +5 -0
  83. package/src/eth/builtin/eacaggregatorproxy.d.ts.map +1 -0
  84. package/src/eth/builtin/eacaggregatorproxy.js +8 -0
  85. package/src/eth/builtin/eacaggregatorproxy.js.map +1 -0
  86. package/src/eth/builtin/erc1155.d.ts +5 -0
  87. package/src/eth/builtin/erc1155.d.ts.map +1 -0
  88. package/src/eth/builtin/erc1155.js +8 -0
  89. package/src/eth/builtin/erc1155.js.map +1 -0
  90. package/src/eth/builtin/erc20.d.ts +5 -0
  91. package/src/eth/builtin/erc20.d.ts.map +1 -0
  92. package/src/eth/builtin/erc20.js +8 -0
  93. package/src/eth/builtin/erc20.js.map +1 -0
  94. package/src/eth/builtin/erc20bytes.d.ts +5 -0
  95. package/src/eth/builtin/erc20bytes.d.ts.map +1 -0
  96. package/src/eth/builtin/erc20bytes.js +8 -0
  97. package/src/eth/builtin/erc20bytes.js.map +1 -0
  98. package/src/eth/builtin/erc721.d.ts +5 -0
  99. package/src/eth/builtin/erc721.d.ts.map +1 -0
  100. package/src/eth/builtin/erc721.js +8 -0
  101. package/src/eth/builtin/erc721.js.map +1 -0
  102. package/src/eth/builtin/index.d.ts +13 -0
  103. package/src/eth/builtin/index.d.ts.map +1 -0
  104. package/src/eth/builtin/index.js +16 -0
  105. package/src/eth/builtin/index.js.map +1 -0
  106. package/src/eth/builtin/internal/EACAggregatorProxy.d.ts +50 -0
  107. package/src/eth/builtin/internal/EACAggregatorProxy.d.ts.map +1 -0
  108. package/src/eth/builtin/internal/EACAggregatorProxy.js +2 -0
  109. package/src/eth/builtin/internal/EACAggregatorProxy.js.map +1 -0
  110. package/src/eth/builtin/internal/ERC1155.d.ts +57 -0
  111. package/src/eth/builtin/internal/ERC1155.d.ts.map +1 -0
  112. package/src/eth/builtin/internal/ERC1155.js +2 -0
  113. package/src/eth/builtin/internal/ERC1155.js.map +1 -0
  114. package/src/eth/builtin/internal/ERC20.d.ts +41 -0
  115. package/src/eth/builtin/internal/ERC20.d.ts.map +1 -0
  116. package/src/eth/builtin/internal/ERC20.js +2 -0
  117. package/src/eth/builtin/internal/ERC20.js.map +1 -0
  118. package/src/eth/builtin/internal/ERC20Bytes.d.ts +32 -0
  119. package/src/eth/builtin/internal/ERC20Bytes.d.ts.map +1 -0
  120. package/src/eth/builtin/internal/ERC20Bytes.js +2 -0
  121. package/src/eth/builtin/internal/ERC20Bytes.js.map +1 -0
  122. package/src/eth/builtin/internal/ERC721.d.ts +43 -0
  123. package/src/eth/builtin/internal/ERC721.d.ts.map +1 -0
  124. package/src/eth/builtin/internal/ERC721.js +2 -0
  125. package/src/eth/builtin/internal/ERC721.js.map +1 -0
  126. package/src/eth/builtin/internal/WETH9.d.ts +47 -0
  127. package/src/eth/builtin/internal/WETH9.d.ts.map +1 -0
  128. package/src/eth/builtin/internal/WETH9.js +2 -0
  129. package/src/eth/builtin/internal/WETH9.js.map +1 -0
  130. package/src/eth/builtin/internal/common.d.ts +3 -0
  131. package/src/eth/builtin/internal/common.d.ts.map +1 -0
  132. package/src/eth/builtin/internal/common.js +8 -0
  133. package/src/eth/builtin/internal/common.js.map +1 -0
  134. package/src/eth/builtin/internal/eacaggregatorproxy-processor.d.ts +373 -0
  135. package/src/eth/builtin/internal/eacaggregatorproxy-processor.d.ts.map +1 -0
  136. package/src/eth/builtin/internal/eacaggregatorproxy-processor.js +1355 -0
  137. package/src/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -0
  138. package/src/eth/builtin/internal/eacaggregatorproxy-test-utils.d.ts +7 -0
  139. package/src/eth/builtin/internal/eacaggregatorproxy-test-utils.d.ts.map +1 -0
  140. package/src/eth/builtin/internal/eacaggregatorproxy-test-utils.js +55 -0
  141. package/src/eth/builtin/internal/eacaggregatorproxy-test-utils.js.map +1 -0
  142. package/src/eth/builtin/internal/erc1155-processor.d.ts +173 -0
  143. package/src/eth/builtin/internal/erc1155-processor.d.ts.map +1 -0
  144. package/src/eth/builtin/internal/erc1155-processor.js +596 -0
  145. package/src/eth/builtin/internal/erc1155-processor.js.map +1 -0
  146. package/src/eth/builtin/internal/erc1155-test-utils.d.ts +7 -0
  147. package/src/eth/builtin/internal/erc1155-test-utils.d.ts.map +1 -0
  148. package/src/eth/builtin/internal/erc1155-test-utils.js +55 -0
  149. package/src/eth/builtin/internal/erc1155-test-utils.js.map +1 -0
  150. package/src/eth/builtin/internal/erc20-processor.d.ts +244 -0
  151. package/src/eth/builtin/internal/erc20-processor.d.ts.map +1 -0
  152. package/src/eth/builtin/internal/erc20-processor.js +1109 -0
  153. package/src/eth/builtin/internal/erc20-processor.js.map +1 -0
  154. package/src/eth/builtin/internal/erc20-test-utils.d.ts +6 -0
  155. package/src/eth/builtin/internal/erc20-test-utils.d.ts.map +1 -0
  156. package/src/eth/builtin/internal/erc20-test-utils.js +44 -0
  157. package/src/eth/builtin/internal/erc20-test-utils.js.map +1 -0
  158. package/src/eth/builtin/internal/erc20bytes-processor.d.ts +144 -0
  159. package/src/eth/builtin/internal/erc20bytes-processor.d.ts.map +1 -0
  160. package/src/eth/builtin/internal/erc20bytes-processor.js +594 -0
  161. package/src/eth/builtin/internal/erc20bytes-processor.js.map +1 -0
  162. package/src/eth/builtin/internal/erc20bytes-test-utils.d.ts +5 -0
  163. package/src/eth/builtin/internal/erc20bytes-test-utils.d.ts.map +1 -0
  164. package/src/eth/builtin/internal/erc20bytes-test-utils.js +33 -0
  165. package/src/eth/builtin/internal/erc20bytes-test-utils.js.map +1 -0
  166. package/src/eth/builtin/internal/erc721-processor.d.ts +215 -0
  167. package/src/eth/builtin/internal/erc721-processor.d.ts.map +1 -0
  168. package/src/eth/builtin/internal/erc721-processor.js +895 -0
  169. package/src/eth/builtin/internal/erc721-processor.js.map +1 -0
  170. package/src/eth/builtin/internal/erc721-test-utils.d.ts +6 -0
  171. package/src/eth/builtin/internal/erc721-test-utils.d.ts.map +1 -0
  172. package/src/eth/builtin/internal/erc721-test-utils.js +44 -0
  173. package/src/eth/builtin/internal/erc721-test-utils.js.map +1 -0
  174. package/src/eth/builtin/internal/factories/EACAggregatorProxy__factory.d.ts +400 -0
  175. package/src/eth/builtin/internal/factories/EACAggregatorProxy__factory.d.ts.map +1 -0
  176. package/src/eth/builtin/internal/factories/EACAggregatorProxy__factory.js +524 -0
  177. package/src/eth/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -0
  178. package/src/eth/builtin/internal/factories/ERC1155__factory.d.ts +251 -0
  179. package/src/eth/builtin/internal/factories/ERC1155__factory.d.ts.map +1 -0
  180. package/src/eth/builtin/internal/factories/ERC1155__factory.js +329 -0
  181. package/src/eth/builtin/internal/factories/ERC1155__factory.js.map +1 -0
  182. package/src/eth/builtin/internal/factories/ERC20Bytes__factory.d.ts +185 -0
  183. package/src/eth/builtin/internal/factories/ERC20Bytes__factory.d.ts.map +1 -0
  184. package/src/eth/builtin/internal/factories/ERC20Bytes__factory.js +251 -0
  185. package/src/eth/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -0
  186. package/src/eth/builtin/internal/factories/ERC20__factory.d.ts +303 -0
  187. package/src/eth/builtin/internal/factories/ERC20__factory.d.ts.map +1 -0
  188. package/src/eth/builtin/internal/factories/ERC20__factory.js +401 -0
  189. package/src/eth/builtin/internal/factories/ERC20__factory.js.map +1 -0
  190. package/src/eth/builtin/internal/factories/ERC721__factory.d.ts +273 -0
  191. package/src/eth/builtin/internal/factories/ERC721__factory.d.ts.map +1 -0
  192. package/src/eth/builtin/internal/factories/ERC721__factory.js +361 -0
  193. package/src/eth/builtin/internal/factories/ERC721__factory.js.map +1 -0
  194. package/src/eth/builtin/internal/factories/WETH9__factory.d.ts +220 -0
  195. package/src/eth/builtin/internal/factories/WETH9__factory.d.ts.map +1 -0
  196. package/src/eth/builtin/internal/factories/WETH9__factory.js +294 -0
  197. package/src/eth/builtin/internal/factories/WETH9__factory.js.map +1 -0
  198. package/src/eth/builtin/internal/factories/index.d.ts +7 -0
  199. package/src/eth/builtin/internal/factories/index.d.ts.map +1 -0
  200. package/src/eth/builtin/internal/factories/index.js +10 -0
  201. package/src/eth/builtin/internal/factories/index.js.map +1 -0
  202. package/src/eth/builtin/internal/index.d.ts +14 -0
  203. package/src/eth/builtin/internal/index.d.ts.map +1 -0
  204. package/src/eth/builtin/internal/index.js +8 -0
  205. package/src/eth/builtin/internal/index.js.map +1 -0
  206. package/src/eth/builtin/internal/weth9-processor.d.ts +172 -0
  207. package/src/eth/builtin/internal/weth9-processor.d.ts.map +1 -0
  208. package/src/eth/builtin/internal/weth9-processor.js +729 -0
  209. package/src/eth/builtin/internal/weth9-processor.js.map +1 -0
  210. package/src/eth/builtin/internal/weth9-test-utils.d.ts +7 -0
  211. package/src/eth/builtin/internal/weth9-test-utils.d.ts.map +1 -0
  212. package/src/eth/builtin/internal/weth9-test-utils.js +55 -0
  213. package/src/eth/builtin/internal/weth9-test-utils.js.map +1 -0
  214. package/src/eth/builtin/weth9.d.ts +5 -0
  215. package/src/eth/builtin/weth9.d.ts.map +1 -0
  216. package/src/eth/builtin/weth9.js +8 -0
  217. package/src/eth/builtin/weth9.js.map +1 -0
  218. package/src/solana/builtin/index.d.ts +2 -0
  219. package/src/solana/builtin/index.d.ts.map +1 -0
  220. package/src/solana/builtin/index.js +2 -0
  221. package/src/solana/builtin/index.js.map +1 -0
  222. package/src/solana/builtin/spl-token-processor.d.ts +40 -0
  223. package/src/solana/builtin/spl-token-processor.d.ts.map +1 -0
  224. package/src/solana/builtin/spl-token-processor.js +254 -0
  225. package/src/solana/builtin/spl-token-processor.js.map +1 -0
  226. package/src/solana/builtin/types.d.ts +428 -0
  227. package/src/solana/builtin/types.d.ts.map +1 -0
  228. package/src/solana/builtin/types.js +201 -0
  229. package/src/solana/builtin/types.js.map +1 -0
  230. package/src/sui/builtin/0x1.d.ts +114 -0
  231. package/src/sui/builtin/0x1.d.ts.map +1 -0
  232. package/src/sui/builtin/0x1.js +159 -0
  233. package/src/sui/builtin/0x1.js.map +1 -0
  234. package/src/sui/builtin/0x2.d.ts +1250 -0
  235. package/src/sui/builtin/0x2.d.ts.map +1 -0
  236. package/src/sui/builtin/0x2.js +1511 -0
  237. package/src/sui/builtin/0x2.js.map +1 -0
  238. package/src/sui/builtin/0x3.d.ts +774 -0
  239. package/src/sui/builtin/0x3.d.ts.map +1 -0
  240. package/src/sui/builtin/0x3.js +720 -0
  241. package/src/sui/builtin/0x3.js.map +1 -0
  242. package/src/sui/builtin/index.d.ts +4 -0
  243. package/src/sui/builtin/index.d.ts.map +1 -0
  244. package/src/sui/builtin/index.js +7 -0
  245. package/src/sui/builtin/index.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/btc/types.ts","../src/btc/btc-processor.ts","../src/btc/filter.ts","../src/btc/btc-plugin.ts"],"sourcesContent":["import { BaseContext, Labels, normalizeLabels } from '../core/index.js'\nimport { Data_BTCBlock, HandleInterval, ProcessResult, RecordMetaData } from '@sentio/protos'\nimport { ChainId } from '@sentio/chain'\n\nexport type Transaction = {\n txid: string\n hash: string\n txindex: number\n blockhash: string\n blockheight: number\n blocktime: number\n size: number\n vsize: number\n version: number\n locktime: number\n vin: Vin[]\n vout: Vout[]\n}\n\nexport type Vin = {\n vin_index: number\n coinbase?: string\n txid?: string\n vout?: number\n sequence: number\n witness?: string[]\n scriptSig: {\n asm: string\n hex: string\n }\n pre_vout?: Vout\n pre_transaction?: Transaction\n}\n\nexport type Vout = {\n value: number\n n: number\n scriptPubKey: {\n asm: string\n hex: string\n reqSigs: number\n type: string\n address: string\n }\n}\n\nexport type BTCBlock = {\n hash: string\n confirmations: number\n strippedsize: number\n size: number\n weight: number\n height: number\n version: number\n merkleroot: string\n tx?: Transaction[]\n time: number\n nonce: number\n bits: string\n difficulty: number\n previousblockhash: string\n nextblockhash: string\n}\n\nexport class BTCContext extends BaseContext {\n constructor(\n readonly chainId: string,\n readonly name: string,\n readonly tx: Transaction,\n readonly address: string\n ) {\n super({})\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.name,\n blockNumber: BigInt(this.tx.blockheight ?? 0),\n transactionIndex: 0,\n transactionHash: this.tx.txid,\n chainId: this.getChainId(),\n name: name,\n logIndex: 0,\n labels: normalizeLabels(labels)\n }\n }\n\n getChainId(): ChainId {\n return this.chainId as ChainId\n }\n}\n\nexport class BTCBlockContext extends BaseContext {\n constructor(\n readonly chainId: string,\n readonly name: string,\n readonly block: BTCBlock,\n readonly address?: string\n ) {\n super({})\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address ?? '',\n contractName: this.name,\n blockNumber: BigInt(this.block.height ?? 0),\n transactionIndex: 0,\n transactionHash: '',\n chainId: this.getChainId(),\n name: name,\n logIndex: 0,\n labels: normalizeLabels(labels)\n }\n }\n\n getChainId(): ChainId {\n return this.chainId as ChainId\n }\n}\n\nexport type BlockHandler = {\n blockInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (block: Data_BTCBlock) => Promise<ProcessResult>\n handlerName: string\n fetchConfig?: BTCOnIntervalFetchConfig\n}\n\nexport type BTCOnIntervalFetchConfig = {\n getTransactions: boolean\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { ListStateStorage } from '@sentio/runtime'\nimport { BlockHandler, BTCBlock, BTCBlockContext, BTCContext, BTCOnIntervalFetchConfig, Transaction } from './types.js'\nimport { Data_BTCBlock, Data_BTCTransaction, HandleInterval, ProcessResult } from '@sentio/protos'\nimport { TransactionFilters } from './filter.js'\nimport { PromiseOrVoid } from '../core/index.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nexport class BTCProcessorState extends ListStateStorage<BTCProcessor> {\n static INSTANCE = new BTCProcessorState()\n}\n\nexport class BTCProcessor {\n callHandlers: CallHandler<Data_BTCTransaction>[] = []\n blockHandlers: BlockHandler[] = []\n\n constructor(readonly config: BTCProcessorConfig) {\n return proxyProcessor(this)\n }\n\n static bind(config: BTCProcessorConfig): BTCProcessor {\n const processor = new BTCProcessor(config)\n BTCProcessorState.INSTANCE.addValue(processor)\n return processor\n }\n\n public onTransaction(\n handler: (transaction: Transaction, ctx: BTCContext) => void | Promise<void>,\n filter?: TransactionFilters\n ) {\n const callHandler = {\n handlerName: getHandlerName(),\n handler: async (call: Data_BTCTransaction) => {\n const tx = call.transaction as Transaction\n\n const ctx = new BTCContext(\n this.config.chainId,\n this.config.name ?? this.config.address ?? '',\n tx,\n this.config.address ?? tx.vout?.[0]?.scriptPubKey?.address\n )\n await handler(tx, ctx)\n return ctx.stopAndGetResult()\n },\n filter\n }\n this.callHandlers.push(callHandler)\n return this\n }\n\n public onInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n blockInterval: HandleInterval | undefined,\n fetchConfig?: BTCOnIntervalFetchConfig\n ): this {\n if (timeInterval) {\n if (timeInterval.backfillInterval < timeInterval.recentInterval) {\n timeInterval.backfillInterval = timeInterval.recentInterval\n }\n }\n\n const processor = this\n\n this.blockHandlers.push({\n blockInterval,\n timeIntervalInMinutes: timeInterval,\n handlerName: getHandlerName(),\n handler: async function (data: Data_BTCBlock) {\n const header = data.block\n if (!header) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Block is empty')\n }\n\n const block = {\n ...header\n } as BTCBlock\n if (fetchConfig?.getTransactions) {\n block.tx = header.rawtx?.map((tx: any) => tx as Transaction)\n }\n\n const ctx = new BTCBlockContext(\n processor.config.chainId,\n processor.config.name ?? processor.config.address ?? '',\n block,\n processor.config.address\n )\n await handler(block, ctx)\n return ctx.stopAndGetResult()\n },\n fetchConfig\n })\n return this\n }\n\n public onBlockInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n blockInterval = 250,\n backfillBlockInterval = 1000,\n fetchConfig?: BTCOnIntervalFetchConfig\n ): this {\n return this.onInterval(\n handler,\n undefined,\n {\n recentInterval: blockInterval,\n backfillInterval: backfillBlockInterval\n },\n fetchConfig\n )\n }\n\n public onTimeInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n fetchConfig?: BTCOnIntervalFetchConfig\n ): this {\n return this.onInterval(\n handler,\n { recentInterval: timeIntervalInMinutes, backfillInterval: backfillTimeIntervalInMinutes },\n undefined,\n fetchConfig\n )\n }\n}\n\ninterface BTCProcessorConfig {\n chainId: string\n name?: string\n address?: string\n startBlock?: bigint\n endBlock?: bigint\n}\n\nexport type CallHandler<T> = {\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n filter?: TransactionFilters\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n BTCTransactionFilter,\n BTCTransactionFilter_Condition,\n BTCTransactionFilter_Filter,\n BTCTransactionFilter_Filters,\n BTCTransactionFilter_VinFilter,\n BTCTransactionFilter_VOutFilter\n} from '@sentio/protos'\nimport { serializeRichValue } from '../store/util.js'\nimport { BigDecimal } from '@sentio/bigdecimal'\nimport { Transaction, Vin, Vout } from './types.js'\n\nexport type TransactionFields = keyof Omit<Transaction, 'vin' | 'vout'>\n\nexport type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction' | 'scriptSig'> | 'script_asm' | 'script_hex'\n\nexport type VOutFields =\n | keyof Omit<Vout, 'scriptPubKey'>\n | 'script_asm'\n | 'script_hex'\n | 'script_type'\n | 'script_address'\n\nexport type Filter<F extends string> = {\n [K in F]?: Condition | Comparable\n}\n\nexport type Condition = {\n eq?: Comparable\n gt?: Comparable\n gte?: Comparable\n lt?: Comparable\n lte?: Comparable\n ne?: Comparable\n // string has the prefix\n prefix?: string\n // string contains\n contains?: string\n notContains?: string\n length?: number\n lengthGt?: number\n lengthLt?: number\n // array contains any of the values\n hasAny?: Array<Comparable>\n // array contains all the values\n hasAll?: Array<Comparable>\n in?: Array<Comparable>\n}\n\nexport type Filters<T extends string> = Filter<T> | Filter<T>[]\n\nexport type VinFilter = Filter<VinFields> & {\n preVOut?: Filter<VOutFields>\n preTransaction?: {\n filter?: Array<Filter<TransactionFields>>\n outputFilter?: Filters<VOutFields>\n // can't have inputFilter here, we can only support one level of nesting\n }\n}\n\nexport type VOutFilter = Filter<VOutFields>\n\nexport type TransactionFilter = {\n inputFilter?: VinFilter | VinFilter[]\n outputFilter?: VOutFilter | VOutFilter[]\n filter?: Array<Filter<TransactionFields>>\n}\n\nexport type Comparable = number | BigDecimal | bigint | Date | string | boolean\n\nexport type TransactionFilters = TransactionFilter | TransactionFilter[]\n\nfunction toVinFilter(inputFilter?: VinFilter | VinFilter[]): BTCTransactionFilter_VinFilter | undefined {\n if (inputFilter) {\n const ret = BTCTransactionFilter_VinFilter.create()\n const filters = []\n const vouts: Filter<VOutFields>[] = []\n const txs: TransactionFilters = []\n\n for (const f of Array.isArray(inputFilter) ? inputFilter : [inputFilter]) {\n const { preVOut, preTransaction, ...rest } = f\n filters.push(rest)\n if (preVOut) {\n vouts.push(preVOut)\n }\n if (preTransaction) {\n txs.push(preTransaction)\n }\n }\n ret.filters = BTCTransactionFilter_Filters.create({\n filters: convertFilters(filters)\n })\n\n if (vouts.length > 0) {\n const voutFilters = convertFilters(vouts)\n if (voutFilters && voutFilters.length > 0) {\n ret.preVOut = voutFilters[0]\n }\n }\n if (txs.length > 0) {\n ret.preTransaction = filters2Proto(txs)?.[0]\n }\n\n return ret\n }\n\n return undefined\n}\n\nfunction toVOutFilter(outputFilter?: VOutFilter | VOutFilter[]): BTCTransactionFilter_VOutFilter | undefined {\n if (outputFilter) {\n const ret = BTCTransactionFilter_VOutFilter.create()\n const filters = Array.isArray(outputFilter) ? outputFilter : ([outputFilter] as Filter<VOutFields>[])\n ret.filters = BTCTransactionFilter_Filters.create({\n filters: convertFilters(filters)\n })\n\n return ret\n }\n return undefined\n}\n\nexport function filters2Proto(filter: TransactionFilters): BTCTransactionFilter[] {\n const filters = Array.isArray(filter) ? filter : [filter]\n return filters.map((f) => {\n return {\n filter: convertFilters(f.filter),\n inputFilter: toVinFilter(f.inputFilter),\n outputFilter: toVOutFilter(f.outputFilter)\n } as BTCTransactionFilter\n })\n}\n\nfunction toCondition(value: Condition | Comparable): BTCTransactionFilter_Condition {\n const ret: BTCTransactionFilter_Condition = BTCTransactionFilter_Condition.create()\n if (value instanceof Date) {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'number') {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'string') {\n ret.eq = serializeRichValue(value)\n }\n if (value instanceof BigDecimal) {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'bigint') {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'boolean') {\n ret.eq = serializeRichValue(value)\n }\n if (Array.isArray(value)) {\n ret.in = { values: value.map((v) => serializeRichValue(v)) }\n }\n\n for (const [k, v] of Object.entries(value)) {\n switch (k) {\n case 'prefix':\n case 'contains':\n case 'notContains':\n ret[k] = v.toString()\n break\n case 'length':\n ret['lengthEq'] = v\n break\n case 'lengthGt':\n case 'lengthLt':\n ret[k] = v\n break\n case 'hasAny':\n case 'hasAll':\n case 'in':\n ret[k] = { values: v.map((v: any) => serializeRichValue(v)) }\n break\n case 'eq':\n case 'gt':\n case 'gte':\n case 'lt':\n case 'lte':\n case 'ne':\n ret[k] = serializeRichValue(v)\n break\n default:\n throw new Error('Unknown condition op: ' + k)\n }\n }\n\n return ret\n}\n\nfunction convertFilters<T extends string>(filters?: Array<Filter<T>>): BTCTransactionFilter_Filter[] | undefined {\n if (filters && filters.length > 0) {\n const ret: BTCTransactionFilter_Filter[] = []\n for (const filter of filters) {\n const f: BTCTransactionFilter_Filter = BTCTransactionFilter_Filter.create()\n for (const [key, value] of Object.entries(filter)) {\n f.conditions[key] = toCondition(value as any)\n }\n ret.push(f)\n }\n return ret\n }\n return []\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport {\n ContractConfig,\n Data_BTCBlock,\n Data_BTCTransaction,\n DataBinding,\n HandlerType,\n ProcessConfigResponse,\n ProcessResult,\n StartRequest\n} from '@sentio/protos'\n\nimport { ServerError, Status } from 'nice-grpc'\nimport { TemplateInstanceState } from '../core/template.js'\nimport { BTCProcessorState } from './btc-processor.js'\nimport { filters2Proto, TransactionFilter } from './filter.js'\n\ninterface Handlers {\n txHandlers: ((trace: Data_BTCTransaction) => Promise<ProcessResult>)[]\n blockHandlers: ((trace: Data_BTCBlock) => Promise<ProcessResult>)[]\n}\n\nexport class BTCPlugin extends Plugin {\n name: string = 'BTCPlugin'\n handlers: Handlers = {\n txHandlers: [],\n blockHandlers: []\n }\n\n async configure(config: ProcessConfigResponse) {\n const handlers: Handlers = {\n txHandlers: [],\n blockHandlers: []\n }\n\n for (const processor of BTCProcessorState.INSTANCE.getValues()) {\n const contractConfig = ContractConfig.fromPartial({\n processorType: USER_PROCESSOR,\n contract: {\n name: processor.config.name,\n chainId: processor.config.chainId.toString(),\n address: processor.config.address || '*',\n abi: ''\n },\n startBlock: processor.config.startBlock,\n endBlock: processor.config.endBlock\n })\n for (const callHandler of processor.callHandlers) {\n const handlerId = handlers.txHandlers.push(callHandler.handler) - 1\n const handlerName = callHandler.handlerName\n\n if (callHandler.filter) {\n contractConfig.btcTransactionConfigs.push({\n filters: filters2Proto(callHandler.filter),\n handlerId,\n handlerName\n })\n } else if (contractConfig.contract?.address != '*') {\n contractConfig.btcTransactionConfigs.push({\n filters: filters2Proto({\n outputFilter: {\n script_address: processor.config.address\n }\n } as TransactionFilter),\n handlerId,\n handlerName\n })\n }\n }\n\n for (const blockHandler of processor.blockHandlers) {\n const handlerId = handlers.blockHandlers.push(blockHandler.handler) - 1\n contractConfig.intervalConfigs.push({\n slot: 0,\n slotInterval: blockHandler.blockInterval,\n minutes: 0,\n minutesInterval: blockHandler.timeIntervalInMinutes,\n handlerId,\n handlerName: blockHandler.handlerName,\n fetchConfig: {\n transaction: blockHandler.fetchConfig?.getTransactions ?? false,\n trace: false,\n block: true,\n transactionReceipt: false,\n transactionReceiptLogs: false\n }\n })\n }\n\n // Finish up a contract\n config.contractConfigs.push(contractConfig)\n }\n\n this.handlers = handlers\n }\n\n supportedHandlers = [HandlerType.BTC_TRANSACTION, HandlerType.BTC_BLOCK]\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.BTC_TRANSACTION:\n return this.processTransaction(request)\n case HandlerType.BTC_BLOCK:\n return this.processBlock(request)\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n }\n\n async start(request: StartRequest) {}\n\n stateDiff(config: ProcessConfigResponse): boolean {\n return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length\n }\n\n async processTransaction(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.btcTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"BTCEvents can't be null\")\n }\n\n const promises: Promise<ProcessResult>[] = []\n\n const result = binding.data?.btcTransaction\n\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlers.txHandlers[handlerId](binding.data?.btcTransaction).catch((e) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing transaction: ' + JSON.stringify(result) + '\\n' + errorString(e)\n )\n })\n if (GLOBAL_CONFIG.execution.sequential) {\n await promise\n }\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n private async processBlock(request: DataBinding) {\n if (!request.data?.btcBlock) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Block can't be empty\")\n }\n\n const block = request.data.btcBlock\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of request.handlerIds) {\n const promise = this.handlers.blockHandlers[handlerId](block).catch((e) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing block: ' + JSON.stringify(block) + '\\n' + errorString(e)\n )\n })\n if (GLOBAL_CONFIG.execution.sequential) {\n await promise\n }\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n}\n\nPluginManager.INSTANCE.register(new BTCPlugin())\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":"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","names":["BTCContext","BaseContext","chainId","name","tx","address","__name","labels","normalizeLabels","BTCBlockContext","block","p","ListStateStorage","import_nice_grpc","BTCProcessorState","_BTCProcessorState","ListStateStorage","__name","BTCProcessor","_BTCProcessor","config","proxyProcessor","processor","handler","filter","callHandler","getHandlerName","call","tx","ctx","BTCContext","timeInterval","blockInterval","fetchConfig","data","header","block","BTCBlockContext","backfillBlockInterval","timeIntervalInMinutes","backfillTimeIntervalInMinutes","p","toVinFilter","inputFilter","ret","BTCTransactionFilter_VinFilter","filters","vouts","txs","f","preVOut","preTransaction","rest","BTCTransactionFilter_Filters","convertFilters","voutFilters","filters2Proto","__name","toVOutFilter","outputFilter","BTCTransactionFilter_VOutFilter","filter","toCondition","value","BTCTransactionFilter_Condition","serializeRichValue","BigDecimal","v","k","BTCTransactionFilter_Filter","key","p","errorString","GLOBAL_CONFIG","mergeProcessResults","Plugin","PluginManager","USER_PROCESSOR","import_nice_grpc","BTCPlugin","Plugin","__name","config","handlers","processor","BTCProcessorState","contractConfig","ContractConfig","USER_PROCESSOR","callHandler","handlerId","handlerName","filters2Proto","blockHandler","HandlerType","request","TemplateInstanceState","binding","promises","result","promise","e","errorString","GLOBAL_CONFIG","mergeProcessResults","block","PluginManager","p"]}
@@ -0,0 +1,3 @@
1
+ import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
+ import{de as T}from"./chunk-JQ4LTUIX.js";import{a}from"./chunk-G5BIPHMS.js";var E=class{static{a(this,"EventHandler")}filters;handlerName;handler;fetchConfig},C=class{static{a(this,"CallHandler")}filters;handlerName;handler;fetchConfig},S=class{static{a(this,"ObjectChangeHandler")}handlerName;handler;type},_=class{static{a(this,"ResourceChangeHandler")}handlerName;handler;type},v=class{static{a(this,"ResourceIntervalHandler")}type;versionInterval;timeIntervalInMinutes;handler;handlerName;fetchConfig},F=class{static{a(this,"TransactionIntervalHandler")}versionInterval;timeIntervalInMinutes;handler;handlerName;fetchConfig};import("node:process").then(t=>t.stdout.write(""));var P=class extends T{static{a(this,"MoveContext")}address;coder;network},I=class extends T{static{a(this,"MoveAccountContext")}address;coder;network};import("node:process").then(t=>t.stdout.write(""));var N=a(t=>{if(!t||t.length===0)return"";let e=t.toLowerCase();return e.substring(0,1).toUpperCase()+e.substring(1,e.length)},"capitalize"),x=a(t=>{let e=t?.replace(/([A-Z])+/g,N)?.split(/(?=[A-Z])|[\.\-\s_]/).map(r=>r.toLowerCase())??[];return e.length===0?"":e.length===1?e[0]:e.reduce((r,n)=>`${r}${n.charAt(0).toUpperCase()}${n.slice(1)}`)},"camel");var p="::",h="vector";function pe(t){let e=parseInt(t,16);return Number.isNaN(e)?!1:e>=0&&e<16}a(pe,"isFrameworkAccount");function g(t){return"0x"+t.toLowerCase().replace(/^(0x)/,"").replace(/^0*/,"")}a(g,"accountTypeString");var U=32;function Y(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)}a(Y,"isHex");function $(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}a($,"getHexByteLength");function z(t){return Y(t)&&$(t)<=U}a(z,"isValidMoveAddress");function d(t){if(!z(t))throw Error("Not valid move address");return`0x${t.toLowerCase().replace(/^(0x)/,"").padStart(U*2,"0")}`}a(d,"accountAddressString");var V=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","as","implements","interface","let","package","private","protected","public","static","yield","any","boolean","constructor","declare","module","number","string","symbol","type","from","async","await","bigint","object","volatile","namespace"]);function ue(t){return V.has(t)?t+"$":t}a(ue,"normalizeToJSName");function A(t){let e=t.split(p).slice(0,2);return[e[0],e[1]]}a(A,"moduleQnameForType");function m(t){return g(t.address)+p+t.name}a(m,"moduleQname");function le(t,e){return[g(t.address),t.name,e.name].join(p)}a(le,"structQname");function fe(t){return t.charAt(0).toUpperCase()+t.slice(1)}a(fe,"upperFirst");function de(t){let e=x(t);return t.endsWith("_")?e+"_":e}a(de,"camel");var l=class t{static{a(this,"TypeDescriptor")}qname;reference;mutable;typeArgs;constructor(e,r){this.qname=e,this.reference=!1,this.mutable=!1,this.typeArgs=r||[]}apply(...e){let r=this.clone();return r.typeArgs=e,r}clone(){let e=new t(this.qname,this.typeArgs);return e.reference=this.reference,e.mutable=this.mutable,e}compareQname(e){let r=this.qname;q.has(this.qname.toLowerCase())&&(r=this.qname.toLowerCase());let n=e.qname;return q.has(e.qname.toLowerCase())&&(n=e.qname),r===n}getSignature(){return this.typeArgs.length>0?this.qname+"<"+this.typeArgs.map(e=>e.getSignature()).join(", ")+">":this.qname}getNormalizedSignature(){let e=this.qname;switch(e){case"U8":case"U16":case"U32":case"U64":case"U128":case"U256":case"Vector":case"Bool":case"Address":e=e.toLowerCase()}return this.typeArgs.length>0?e+"<"+this.typeArgs.map(r=>r.getNormalizedSignature()).join(", ")+">":e}applyTypeArgs(e){let r=e.get(this.qname);if(r)return r;if(e.size===0||this.typeArgs.length===0)return this;let n=[];for(let s of this.typeArgs){let o=e.get(s.qname);o?n.push(o):n.push(s.applyTypeArgs(e))}return new t(this.qname,n)}dependedTypes(){if(this.qname.startsWith("&"))return console.error("Not expected &"),[];if(this.isVector())return this.typeArgs[0].dependedTypes();if(q.has(this.qname.toLowerCase()))return[];switch(this.qname){case"signer":case"0x1::string::String":return[]}if(this.qname.indexOf(p)==-1&&this.qname.startsWith("T"))return[];let e=new Set;for(let r of this.typeArgs)r.dependedTypes().forEach(n=>e.add(n));return e.add(this.qname),Array.from(e)}isVector(){return this.qname.toLowerCase()===h}existAnyType(){if(this.qname==="any")return!0;for(let e of this.typeArgs)if(e.existAnyType())return!0;return!1}name(){let e=this.qname.split(p);return e[e.length-1]}module(){let e=this.qname.split(p);return e[e.length-2]}};function y(t){let e=[new l("")],r=[];t===void 0&&console.log("");for(let s=0;s<t.length;s++){let o=t[s];if(o!==" "){if(o==="<"){let i=r.join("");r=[],e[e.length-1].qname=i,M(e[e.length-1]),e.push(new l(""));continue}if(o===">"||o===","){let i=e.pop();if(!i)throw Error("Unexpected stack size");r.length>0&&(i.qname=r.join(""),r=[]),M(i),e[e.length-1].typeArgs.push(i),o===","&&e.push(new l(""));continue}r.push(o)}}r.length>0&&(e[e.length-1].qname=r.join("")),M(e[e.length-1]);let n=e.pop();if(!n||e.length>0)throw Error("Unexpected stack size");return n}a(y,"parseMoveType");function M(t){t.qname.startsWith("&")&&(t.reference=!0,t.qname=t.qname.slice(1)),t.qname.startsWith("mut")&&(t.mutable=!0,t.qname=t.qname.slice(3));let e=t.qname.split(p);if(e.length>1){let[r,n,s]=e;t.qname=[g(r),n,s].join(p)}}a(M,"adjustType");var B=new l("any");function Q(t=B){return L.VECTOR_TYPE_ANY.apply(t)}a(Q,"vectorType");var L={ADDRESS_TYPE:new l("address"),VECTOR_TYPE_ANY:new l("vector"),VECTOR_TYPE:Q,BOOL_TYPE:new l("bool"),U8_TYPE:new l("u8"),U16_TYPE:new l("u16"),U32_TYPE:new l("u32"),U64_TYPE:new l("u64"),U128_TYPE:new l("u128"),U256_TYPE:new l("u256")},q=new Set(Object.values(L).flatMap(t=>typeof t=="object"?[t.qname.toLowerCase()]:[]));function w(t,e){if(t.qname==="any")return!0;if(!t.compareQname(e))return!1;for(let[r,n]of t.typeArgs.entries()){let s=e.typeArgs[r];if(!w(n,s))return!1}return!0}a(w,"matchType");var b=class{static{a(this,"AccountModulesImportInfo")}imports;account;moduleName;constructor(e,r){this.account=e,this.moduleName=r,this.imports=new Map}addImport(e,r){if(e===this.account)return;let n=this.imports.get(e);n||(n=new Set,this.imports.set(e,n)),n.add(r)}},R=class{static{a(this,"AccountRegister")}accountImports=new Map;pendingAccounts=new Set;register(e,r){let n=m(e),s=this.accountImports.get(e.address);return s||(s=new b(e.address,r),this.accountImports.set(e.address,s),this.pendingAccounts.delete(e.address)),this.registerStruct(e,s),this.registerFunctions(e,s),this.accountImports.set(n,s),s}registerFunctions(e,r){for(let n of e.exposedFunctions)for(let s of n.params.concat(n.return))for(let o of s.dependedTypes()){let[i,c]=A(o);r.addImport(i,c),this.accountImports.has(i)||this.pendingAccounts.add(i)}}registerStruct(e,r){for(let n of e.structs)for(let s of n.fields)for(let o of s.type.dependedTypes()){let[i,c]=A(o);r.addImport(i,c),this.accountImports.has(i)||this.pendingAccounts.add(i)}}};var j=class{static{a(this,"ChainAdapter")}};var k=class{static{a(this,"AbstractMoveCoder")}moduleMapping=new Map;accounts=new Set;typeMapping=new Map;enumMapping=new Map;funcMapping=new Map;adapter;constructor(e){this.adapter=e}contains(e,r){return this.moduleMapping.has(m({address:e,name:r}))}loadInternal(e,r){let n=d(e.address),s=d(r);this._loadInternal(e,n),n!==s&&this._loadInternal(e,s)}_loadInternal(e,r){if(!this.contains(r,e.name)){this.moduleMapping.set(m({address:r,name:e.name}),e);for(let n of e.enums){let s=[r,e.name,n.name].join(p);this.enumMapping.set(s,n)}for(let n of e.structs){let s=[r,e.name,n.name].join(p);this.typeMapping.set(s,n)}for(let n of e.exposedFunctions){let s=[r,e.name,n.name].join(p);this.funcMapping.set(s,n)}}}decodeBigInt(e){if(Array.isArray(e))throw new Error("data is in byte array");return BigInt(e)}requestMap=new Map;async getMoveStruct(e){let[r,n,s]=e.split(p),o=d(r);e=[o,n,s].join(p);let i=this.typeMapping.get(e);if(i)return i;if(this.accounts.has(o))throw new Error("Failed to load struct "+e+" for imported account");let c=this.requestMap.get(o);if(c||(c=this.adapter.fetchModules(o).then(u=>{for(let f of u)this.load(f,o)}),this.requestMap.set(o,c)),await c,i=this.typeMapping.get(e),i)return i;throw new Error("Failed to load function "+e+" type are not imported anywhere")}async maybeGetMoveEnum(e){let[r,n,s]=e.split(p),o=d(r);e=[o,n,s].join(p);let i=this.enumMapping.get(e);if(i)return i;if(this.accounts.has(o))return;let c=this.requestMap.get(o);if(c||(c=this.adapter.fetchModules(o).then(u=>{for(let f of u)this.load(f,o)}),this.requestMap.set(o,c)),await c,i=this.enumMapping.get(e),i)return i}async getMoveFunction(e){let[r,n,s]=e.split(p),o=d(r);e=[o,n,s].join(p);let i=this.funcMapping.get(e);if(i)return i;if(this.accounts.has(o))throw new Error("Failed to load function "+e+" for imported account");let c=this.requestMap.get(o);if(c||(c=this.adapter.fetchModules(o).then(u=>{for(let f of u)this.load(f,o)}).catch(u=>{this.requestMap.delete(o)}),this.requestMap.set(o,c)),await c,i=this.funcMapping.get(e),i)return i;throw new Error("Failed to load function "+e+" type are not imported anywhere")}async decode(e,r){if(r.reference)return e;switch(r.qname){case"signer":case"address":case"Address":case"0x1::string::String":case"bool":case"Bool":case"u8":case"U8":case"u16":case"U16":case"u32":case"U32":return e;case"u64":case"U64":case"u128":case"U128":case"u256":case"U256":return this.decodeBigInt(e)}if(r.qname.toLowerCase()===h){if(r.typeArgs[0].qname==="u8"||r.typeArgs[0].qname==="U8")return e;let c=[];for(let u of e)c.push(await this.decode(u,r.typeArgs[0]));return c}if(await this.maybeGetMoveEnum(r.qname))return e;let s=await this.getMoveStruct(r.qname),o=new Map;for(let[c,u]of r.typeArgs.entries())o.set("T"+c,u);let i={};for(let c of s.fields){let u=c.type;u=u.applyTypeArgs(o);let f=this.adapter.getData(e)[c.name],D=await this.decode(f,u);i[c.name]=D}return i}async decodeArray(e,r,n=!0){let s=[];for(let[o,i]of e.entries()){let c=r[o];try{!n&&i===void 0?s.push(i):s.push(await this.decode(i,c))}catch(u){throw Error("Decoding error for "+JSON.stringify(i)+"using type"+c+u.toString())}}return s}encode(e){if(e!=null){if(typeof e=="bigint")return e.toString();if(Array.isArray(e))return this.encodeArray(e);for(let[r,n]of Object.entries(e))n&&typeof n=="bigint"&&(e[r]=n.toString());return e}}encodeArray(e){let r=[];for(let[n,s]of e.entries())r.push(this.encode(s));return r}async decodeCallResult(e,r){let n=await this.getMoveFunction(r);return this.decodeArray(e,n.return)}async filterAndDecodeStruct(e,r){if(!r)return[];let n=[];for(let s of r){let o=this.adapter.getType(s),i=y(o);if(!w(e,i))continue;let c=await this.decodedStruct(s);c?n.push(c):console.error("decoding error")}return n}async decodedStruct(e){let r=y(this.adapter.getType(e)),n=r.typeArgs.map(o=>o.getSignature()),s;try{s=await this.decode(e,r)}catch(o){throw Error("Decoding error for struct"+JSON.stringify(e)+o.toString())}return{...e,data_decoded:s,type_arguments:n}}async decodeType(e,r){if(e===null||e==null)return e;if(typeof e=="object"&&"type"in e){let n=y(e.type.toString()||"");if(!w(r,n))return}return await this.decode(e,r)}};var O;(function(t){t.PRIVATE="private",t.PUBLIC="public",t.FRIEND="friend"})(O||(O={}));import("node:process").then(t=>t.stdout.write(""));export{p as a,h as b,pe as c,g as d,z as e,d as f,ue as g,A as h,m as i,le as j,fe as k,de as l,l as m,y as n,B as o,Q as p,L as q,w as r,b as s,R as t,j as u,k as v,O as w,E as x,C as y,S as z,_ as A,v as B,F as C,P as D,I as E};
3
+ //# sourceMappingURL=chunk-SPY3PKUB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/move/filter.ts","../src/move/move-context.ts","../../../node_modules/.pnpm/radash@12.1.0/node_modules/radash/src/string.ts","../../../node_modules/.pnpm/@typemove+move@1.9.0/node_modules/@typemove/move/src/utils.ts","../../../node_modules/.pnpm/@typemove+move@1.9.0/node_modules/@typemove/move/src/types.ts","../../../node_modules/.pnpm/@typemove+move@1.9.0/node_modules/@typemove/move/src/account.ts","../../../node_modules/.pnpm/@typemove+move@1.9.0/node_modules/@typemove/move/src/chain-adapter.ts","../../../node_modules/.pnpm/@typemove+move@1.9.0/node_modules/@typemove/move/src/abstract-move-coder.ts","../../../node_modules/.pnpm/@typemove+move@1.9.0/node_modules/@typemove/move/src/internal-models.ts","../src/move/index.ts"],"sourcesContent":["// TODO extends ArgumentsFilter\nimport {\n Data_AptCall,\n Data_AptResource,\n HandleInterval,\n MoveAccountFetchConfig,\n MoveFetchConfig,\n ProcessResult\n} from '@sentio/protos'\n\nexport interface EventFilter {\n type: string\n account?: string\n eventAccount?: string\n}\n\nexport interface FunctionNameAndCallFilter extends CallFilter {\n function: string\n}\n\nexport interface TransactionFilter {\n includeFailed?: boolean\n publicKeyPrefix?: string\n fromAndToAddress?: { from: string; to: string }\n}\n\n// TODO extends ArgumentsFilter\nexport interface CallFilter extends TransactionFilter {\n typeArguments?: string[]\n}\n\nexport interface ArgumentsFilter {\n arguments?: string[]\n}\n\nexport class EventHandler<T> {\n filters: EventFilter[]\n handlerName: string\n handler: (event: T) => Promise<ProcessResult>\n fetchConfig: MoveFetchConfig\n}\n\nexport class CallHandler<T> {\n filters: FunctionNameAndCallFilter[]\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n fetchConfig: MoveFetchConfig\n}\n\nexport class ObjectChangeHandler<T> {\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n type: string\n}\n\nexport class ResourceChangeHandler<T> {\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n type: string\n}\n\nexport class ResourceIntervalHandler {\n type?: string\n versionInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (resource: Data_AptResource) => Promise<ProcessResult>\n handlerName: string\n fetchConfig: MoveAccountFetchConfig\n}\n\nexport class TransactionIntervalHandler {\n versionInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (tx: Data_AptCall) => Promise<ProcessResult>\n handlerName: string\n fetchConfig: MoveFetchConfig\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { BaseContext } from '../core/index.js'\nimport { AbstractMoveCoder } from '@typemove/move'\n\nexport abstract class MoveContext<Network, ModuleType, StructType> extends BaseContext {\n address: string\n coder: AbstractMoveCoder<ModuleType, StructType>\n network: Network\n\n abstract getTimestamp(): number\n}\n\nexport abstract class MoveAccountContext<Network, ModuleType, StructType> extends BaseContext {\n address: string\n coder: AbstractMoveCoder<ModuleType, StructType>\n network: Network\n\n abstract getTimestamp(): number\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","/**\n * Capitalize the first word of the string\n *\n * capitalize('hello') -> 'Hello'\n * capitalize('va va voom') -> 'Va va voom'\n */\nexport const capitalize = (str: string): string => {\n if (!str || str.length === 0) return ''\n const lower = str.toLowerCase()\n return lower.substring(0, 1).toUpperCase() + lower.substring(1, lower.length)\n}\n\n/**\n * Formats the given string in camel case fashion\n *\n * camel('hello world') -> 'helloWorld'\n * camel('va va-VOOM') -> 'vaVaVoom'\n * camel('helloWorld') -> 'helloWorld'\n */\nexport const camel = (str: string): string => {\n const parts =\n str\n ?.replace(/([A-Z])+/g, capitalize)\n ?.split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n return parts.reduce((acc, part) => {\n return `${acc}${part.charAt(0).toUpperCase()}${part.slice(1)}`\n })\n}\n\n/**\n * Formats the given string in snake case fashion\n *\n * snake('hello world') -> 'hello_world'\n * snake('va va-VOOM') -> 'va_va_voom'\n * snake('helloWord') -> 'hello_world'\n */\nexport const snake = (\n str: string,\n options?: {\n splitOnNumber?: boolean\n }\n): string => {\n const parts =\n str\n ?.replace(/([A-Z])+/g, capitalize)\n .split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n const result = parts.reduce((acc, part) => {\n return `${acc}_${part.toLowerCase()}`\n })\n return options?.splitOnNumber === false\n ? result\n : result.replace(/([A-Za-z]{1}[0-9]{1})/, val => `${val[0]!}_${val[1]!}`)\n}\n\n/**\n * Formats the given string in dash case fashion\n *\n * dash('hello world') -> 'hello-world'\n * dash('va va_VOOM') -> 'va-va-voom'\n * dash('helloWord') -> 'hello-word'\n */\nexport const dash = (str: string): string => {\n const parts =\n str\n ?.replace(/([A-Z])+/g, capitalize)\n ?.split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n return parts.reduce((acc, part) => {\n return `${acc}-${part.toLowerCase()}`\n })\n}\n\n/**\n * Formats the given string in pascal case fashion\n *\n * pascal('hello world') -> 'HelloWorld'\n * pascal('va va boom') -> 'VaVaBoom'\n */\nexport const pascal = (str: string): string => {\n const parts = str?.split(/[\\.\\-\\s_]/).map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n return parts.map(str => str.charAt(0).toUpperCase() + str.slice(1)).join('')\n}\n\n/**\n * Formats the given string in title case fashion\n *\n * title('hello world') -> 'Hello World'\n * title('va_va_boom') -> 'Va Va Boom'\n * title('root-hook') -> 'Root Hook'\n * title('queryItems') -> 'Query Items'\n */\nexport const title = (str: string | null | undefined): string => {\n if (!str) return ''\n return str\n .split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(s => s.trim())\n .filter(s => !!s)\n .map(s => capitalize(s.toLowerCase()))\n .join(' ')\n}\n\n/**\n * template is used to replace data by name in template strings.\n * The default expression looks for {{name}} to identify names.\n *\n * Ex. template('Hello, {{name}}', { name: 'ray' })\n * Ex. template('Hello, <name>', { name: 'ray' }, /<(.+?)>/g)\n */\nexport const template = (\n str: string,\n data: Record<string, any>,\n regex = /\\{\\{(.+?)\\}\\}/g\n) => {\n return Array.from(str.matchAll(regex)).reduce((acc, match) => {\n return acc.replace(match[0], data[match[1]])\n }, str)\n}\n\n/**\n * Trims all prefix and suffix characters from the given\n * string. Like the builtin trim function but accepts\n * other characters you would like to trim and trims\n * multiple characters.\n *\n * ```typescript\n * trim(' hello ') // => 'hello'\n * trim('__hello__', '_') // => 'hello'\n * trim('/repos/:owner/:repo/', '/') // => 'repos/:owner/:repo'\n * trim('222222__hello__1111111', '12_') // => 'hello'\n * ```\n */\nexport const trim = (\n str: string | null | undefined,\n charsToTrim: string = ' '\n) => {\n if (!str) return ''\n const toTrim = charsToTrim.replace(/[\\W]{1}/g, '\\\\$&')\n const regex = new RegExp(`^[${toTrim}]+|[${toTrim}]+$`, 'g')\n return str.replace(regex, '')\n}\n","import { InternalMoveModule, InternalMoveStruct } from './internal-models.js'\nimport { camel as camelRadash } from 'radash'\n\nexport const SPLITTER = '::'\n\nexport const VECTOR_STR = 'vector'\n\nexport function isFrameworkAccount(account: string) {\n const n = parseInt(account, 16)\n if (Number.isNaN(n)) {\n return false\n }\n return n >= 0 && n < 16\n}\n\n// strip any lead 0\nexport function accountTypeString(account: string): string {\n const withoutPrefix = account.toLowerCase().replace(/^(0x)/, '')\n return '0x' + withoutPrefix.replace(/^0*/, '')\n}\n\nconst MOVE_ADDRESS_LENGTH = 32\n\nfunction isHex(value: string): boolean {\n return /^(0x|0X)?[a-fA-F0-9]+$/.test(value)\n}\n\nfunction getHexByteLength(value: string): number {\n return /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2\n}\n\nexport function isValidMoveAddress(value: string): boolean {\n return isHex(value) && getHexByteLength(value) <= MOVE_ADDRESS_LENGTH\n}\n\n// Get full address with 32 bytes\nexport function accountAddressString(account: string): string {\n if (!isValidMoveAddress(account)) {\n throw Error('Not valid move address')\n }\n\n const address = account.toLowerCase().replace(/^(0x)/, '')\n return `0x${address.padStart(MOVE_ADDRESS_LENGTH * 2, '0')}`\n}\n\n// https://github.com/microsoft/TypeScript/issues/2536\nconst KEYWORDS = new Set([\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'else',\n 'enum',\n 'export',\n 'extends',\n 'false',\n 'finally',\n 'for',\n 'function',\n 'if',\n 'import',\n 'in',\n 'instanceof',\n 'new',\n 'null',\n 'return',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'while',\n 'with',\n 'as',\n 'implements',\n 'interface',\n 'let',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'static',\n 'yield',\n 'any',\n 'boolean',\n 'constructor',\n 'declare',\n // 'get',\n 'module',\n // 'require',\n 'number',\n // 'set',\n 'string',\n 'symbol',\n 'type',\n 'from',\n // 'of',\n 'async',\n 'await',\n 'bigint',\n 'object',\n 'volatile',\n 'namespace'\n])\n\nexport function normalizeToJSName(name: string) {\n if (KEYWORDS.has(name)) {\n return name + '$'\n }\n return name\n}\n\nexport function moduleQnameForType(type: string): [string, string] {\n const parts = type.split(SPLITTER).slice(0, 2)\n return [parts[0], parts[1]]\n}\n\nexport function moduleQname(module: { address: string; name: string }): string {\n return accountTypeString(module.address) + SPLITTER + module.name\n}\n\nexport function structQname(module: InternalMoveModule, struct: InternalMoveStruct): string {\n return [accountTypeString(module.address), module.name, struct.name].join(SPLITTER)\n}\n\nexport function upperFirst(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function camel(str: string): string {\n const base = camelRadash(str)\n return str.endsWith('_') ? base + '_' : base\n}\n","import { accountTypeString, SPLITTER, VECTOR_STR } from './utils.js'\n\nexport type DecodedStruct<B, T> = B & {\n /**\n * decoded data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n data_decoded: T\n type_arguments: string[]\n}\n\nexport type NestedDecodedStruct<A, B extends { data: A }, T> = B & {\n data: DecodedStruct<A, T>\n}\n\nexport class TypeDescriptor<T = any> {\n qname: string\n reference: boolean\n mutable: boolean\n typeArgs: TypeDescriptor[]\n\n constructor(symbol: string, typeParams?: TypeDescriptor[]) {\n this.qname = symbol\n this.reference = false\n this.mutable = false\n this.typeArgs = typeParams || []\n }\n\n apply(...typeArgs: TypeDescriptor[]): TypeDescriptor {\n const newObj = this.clone()\n newObj.typeArgs = typeArgs\n return newObj\n }\n\n clone(): this {\n const newObj = new TypeDescriptor(this.qname, this.typeArgs)\n newObj.reference = this.reference\n newObj.mutable = this.mutable\n return newObj as any\n }\n\n // compare qname without consider case for system type\n compareQname(t: TypeDescriptor): boolean {\n let t1 = this.qname\n if (BUILTIN_TYPES_SET.has(this.qname.toLowerCase())) {\n t1 = this.qname.toLowerCase()\n }\n let t2 = t.qname\n if (BUILTIN_TYPES_SET.has(t.qname.toLowerCase())) {\n t2 = t.qname\n }\n return t1 === t2\n }\n\n getSignature(): string {\n if (this.typeArgs.length > 0) {\n return this.qname + '<' + this.typeArgs.map((t) => t.getSignature()).join(', ') + '>'\n }\n return this.qname\n }\n\n // Make U8, U16, etc => u8, u16\n getNormalizedSignature(): string {\n let qname = this.qname\n switch (qname) {\n case 'U8':\n case 'U16':\n case 'U32':\n case 'U64':\n case 'U128':\n case 'U256':\n case 'Vector':\n case 'Bool':\n case 'Address':\n qname = qname.toLowerCase()\n }\n\n if (this.typeArgs.length > 0) {\n return qname + '<' + this.typeArgs.map((t) => t.getNormalizedSignature()).join(', ') + '>'\n }\n return qname\n }\n\n // Replace T0, T1 with more concrete type\n applyTypeArgs(ctx: Map<string, TypeDescriptor>): TypeDescriptor {\n const replace = ctx.get(this.qname)\n if (replace) {\n return replace\n }\n if (ctx.size === 0 || this.typeArgs.length === 0) {\n return this\n }\n\n const typeArgs: TypeDescriptor[] = []\n for (const arg of this.typeArgs) {\n const replace = ctx.get(arg.qname)\n if (replace) {\n typeArgs.push(replace)\n } else {\n typeArgs.push(arg.applyTypeArgs(ctx))\n }\n }\n return new TypeDescriptor(this.qname, typeArgs)\n }\n\n // all depended types including itself, not include system type\n dependedTypes(): string[] {\n if (this.qname.startsWith('&')) {\n console.error('Not expected &')\n return []\n }\n\n if (this.isVector()) {\n return this.typeArgs[0].dependedTypes()\n }\n\n if (BUILTIN_TYPES_SET.has(this.qname.toLowerCase())) {\n return []\n }\n switch (this.qname) {\n case 'signer':\n case '0x1::string::String':\n return []\n }\n\n // Type parameters are not depended\n if (this.qname.indexOf(SPLITTER) == -1) {\n if (this.qname.startsWith('T')) {\n return []\n }\n }\n\n const types = new Set<string>()\n for (const param of this.typeArgs) {\n param.dependedTypes().forEach((t) => types.add(t))\n }\n\n types.add(this.qname)\n\n return Array.from(types)\n }\n\n isVector(): boolean {\n return this.qname.toLowerCase() === VECTOR_STR\n }\n\n existAnyType(): boolean {\n if (this.qname === 'any') {\n return true\n }\n for (const param of this.typeArgs) {\n if (param.existAnyType()) {\n return true\n }\n }\n return false\n }\n\n name(): string {\n const parts = this.qname.split(SPLITTER)\n return parts[parts.length - 1]\n }\n\n module(): string {\n const parts = this.qname.split(SPLITTER)\n return parts[parts.length - 2]\n }\n}\n\nexport function parseMoveType(type: string): TypeDescriptor {\n const stack: TypeDescriptor[] = [new TypeDescriptor('')]\n let buffer = []\n\n if (type === undefined) {\n console.log('')\n }\n\n // xxx:asdf<g1<a,<c,d>>, b, g2<a,b>, e>\n for (let i = 0; i < type.length; i++) {\n const ch = type[i]\n if (ch === ' ') {\n continue\n }\n if (ch === '<') {\n // const symbol = type.slice(symbolStart, i)\n // symbolStart =\n const symbol = buffer.join('')\n buffer = []\n stack[stack.length - 1].qname = symbol\n adjustType(stack[stack.length - 1])\n stack.push(new TypeDescriptor(''))\n continue\n }\n if (ch === '>' || ch === ',') {\n const typeParam = stack.pop()\n if (!typeParam) {\n throw Error('Unexpected stack size')\n }\n if (buffer.length > 0) {\n typeParam.qname = buffer.join('')\n buffer = []\n }\n adjustType(typeParam)\n stack[stack.length - 1].typeArgs.push(typeParam)\n if (ch === ',') {\n stack.push(new TypeDescriptor(''))\n }\n continue\n }\n buffer.push(ch)\n }\n\n if (buffer.length > 0) {\n stack[stack.length - 1].qname = buffer.join('')\n }\n adjustType(stack[stack.length - 1])\n\n const res = stack.pop()\n if (!res || stack.length > 0) {\n throw Error('Unexpected stack size')\n }\n return res\n}\n\nfunction adjustType(type: TypeDescriptor) {\n if (type.qname.startsWith('&')) {\n type.reference = true\n type.qname = type.qname.slice(1)\n }\n if (type.qname.startsWith('mut')) {\n type.mutable = true\n type.qname = type.qname.slice(3)\n }\n const parts = type.qname.split(SPLITTER)\n if (parts.length > 1) {\n const [account, module, name] = parts\n type.qname = [accountTypeString(account), module, name].join(SPLITTER)\n }\n}\n\nexport const ANY_TYPE = new TypeDescriptor<any>('any')\n\nexport function vectorType<T>(t: TypeDescriptor<T> = ANY_TYPE): TypeDescriptor<T[]> {\n return BUILTIN_TYPES.VECTOR_TYPE_ANY.apply(t)\n}\n\nexport const BUILTIN_TYPES = {\n ADDRESS_TYPE: new TypeDescriptor<string>('address'),\n // export const Address = new TypeDescriptor<string>(\"Address\")\n\n VECTOR_TYPE_ANY: new TypeDescriptor<any[]>('vector'),\n VECTOR_TYPE: vectorType,\n\n BOOL_TYPE: new TypeDescriptor<number>('bool'),\n\n U8_TYPE: new TypeDescriptor<number>('u8'),\n // export const U8 = new TypeDescriptor<number>(\"U8\")\n U16_TYPE: new TypeDescriptor<number>('u16'),\n // export const U16 = new TypeDescriptor<number>(\"U16\")\n U32_TYPE: new TypeDescriptor<number>('u32'),\n // export const U32 = new TypeDescriptor<number>(\"U32\")\n U64_TYPE: new TypeDescriptor<number>('u64'),\n // export const U64 = new TypeDescriptor<number>(\"U64\")\n U128_TYPE: new TypeDescriptor<number>('u128'),\n // export const U128 = new TypeDescriptor<number>(\"U128\")\n U256_TYPE: new TypeDescriptor<number>('u256')\n // export const U256 = new TypeDescriptor<number>(\"U256\")\n}\n\nconst BUILTIN_TYPES_SET = new Set(\n Object.values(BUILTIN_TYPES).flatMap((t) => {\n if (typeof t === 'object') {\n return [t.qname.toLowerCase()]\n }\n return []\n })\n)\n\n/**\n *\n * @param matcher\n * @param type\n */\nexport function matchType(matcher: TypeDescriptor, type: TypeDescriptor): boolean {\n if (matcher.qname === 'any') {\n return true\n }\n if (!matcher.compareQname(type)) {\n return false\n }\n for (const [idx, matcherTarg] of matcher.typeArgs.entries()) {\n const targ = type.typeArgs[idx]\n if (!matchType(matcherTarg, targ)) {\n return false\n }\n }\n return true\n}\n","import { moduleQname, moduleQnameForType } from './utils.js'\nimport { InternalMoveModule } from './internal-models.js'\n\nexport class AccountModulesImportInfo {\n // account to module\n imports: Map<string, Set<string>>\n account: string\n moduleName: string\n\n constructor(account: string, tsModuleName: string) {\n this.account = account\n this.moduleName = tsModuleName\n this.imports = new Map<string, Set<string>>()\n }\n\n addImport(account: string, module: string) {\n if (account === this.account) {\n return\n }\n let accountModules = this.imports.get(account)\n if (!accountModules) {\n accountModules = new Set<string>()\n this.imports.set(account, accountModules)\n }\n accountModules.add(module)\n }\n}\n\nexport class AccountRegister {\n accountImports = new Map<string, AccountModulesImportInfo>()\n pendingAccounts = new Set<string>()\n\n register(module: InternalMoveModule, tsModuleName: string): AccountModulesImportInfo {\n const currentModuleFqn = moduleQname(module)\n\n let accountModuleImports = this.accountImports.get(module.address)\n if (!accountModuleImports) {\n accountModuleImports = new AccountModulesImportInfo(module.address, tsModuleName)\n this.accountImports.set(module.address, accountModuleImports)\n // the account has already be processed, delete pending task\n this.pendingAccounts.delete(module.address)\n }\n\n this.registerStruct(module, accountModuleImports)\n this.registerFunctions(module, accountModuleImports)\n\n this.accountImports.set(currentModuleFqn, accountModuleImports)\n return accountModuleImports\n }\n\n private registerFunctions(module: InternalMoveModule, accountModuleImports: AccountModulesImportInfo): void {\n for (const func of module.exposedFunctions) {\n // if (!func.isEntry) {\n // continue\n // }\n for (const param of func.params.concat(func.return)) {\n for (const type of param.dependedTypes()) {\n const [account, module] = moduleQnameForType(type)\n accountModuleImports.addImport(account, module)\n if (!this.accountImports.has(account)) {\n this.pendingAccounts.add(account)\n }\n }\n }\n }\n }\n\n private registerStruct(module: InternalMoveModule, accountModuleImports: AccountModulesImportInfo): void {\n for (const struct of module.structs) {\n for (const field of struct.fields) {\n for (const type of field.type.dependedTypes()) {\n const [account, module] = moduleQnameForType(type)\n accountModuleImports.addImport(account, module)\n if (!this.accountImports.has(account)) {\n this.pendingAccounts.add(account)\n }\n }\n }\n }\n }\n}\n","import { InternalMoveModule, InternalMoveStruct } from './internal-models.js'\nimport { TypeDescriptor } from './types.js'\n\nexport abstract class ChainAdapter<ModuleType, StructType> {\n // endpoint: string\n //\n // constructor(endpoint: string) {\n // this.endpoint = endpoint\n // }\n abstract getChainId(): Promise<string>\n\n abstract fetchModule(account: string, module: string): Promise<ModuleType>\n\n abstract fetchModules(account: string): Promise<ModuleType[]>\n abstract toInternalModules(modules: ModuleType[]): InternalMoveModule[]\n\n // Get all structs that represent Events\n abstract getAllEventStructs(module: InternalMoveModule[]): Map<string, InternalMoveStruct>\n\n // Get the parameters that actually have arguments in runtime\n // Aptos first signer and Sui's last TxContext are no use\n abstract getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[]\n\n abstract getType(base: StructType): string\n abstract getData<T>(base: StructType): any\n}\n","import { accountAddressString, moduleQname, SPLITTER, VECTOR_STR } from './utils.js'\nimport { DecodedStruct, matchType, parseMoveType, TypeDescriptor } from './types.js'\nimport { InternalMoveEnum, InternalMoveFunction, InternalMoveModule, InternalMoveStruct } from './internal-models.js'\n// import { bytesToBigInt } from '../utils/index.js'\nimport { ChainAdapter } from './chain-adapter.js'\n\nexport abstract class AbstractMoveCoder<ModuleType, StructType> {\n protected moduleMapping = new Map<string, InternalMoveModule>()\n protected accounts = new Set<string>()\n private typeMapping = new Map<string, InternalMoveStruct>()\n private enumMapping = new Map<string, InternalMoveEnum>()\n\n private funcMapping = new Map<string, InternalMoveFunction>()\n // network: string\n adapter: ChainAdapter<ModuleType, StructType>\n\n protected constructor(adapter: ChainAdapter<ModuleType, StructType>) {\n this.adapter = adapter\n }\n\n contains(account: string, name: string) {\n return this.moduleMapping.has(moduleQname({ address: account, name }))\n }\n\n abstract load(module: ModuleType, address: string): InternalMoveModule\n\n protected loadInternal(module: InternalMoveModule, address: string) {\n const account = accountAddressString(module.address)\n const declareAccount = accountAddressString(address)\n\n this._loadInternal(module, account)\n if (account !== declareAccount) {\n this._loadInternal(module, declareAccount)\n }\n }\n\n private _loadInternal(module: InternalMoveModule, account: string) {\n if (this.contains(account, module.name)) {\n return\n }\n this.moduleMapping.set(moduleQname({ address: account, name: module.name }), module)\n for (const enumType of module.enums) {\n const key = [account, module.name, enumType.name].join(SPLITTER)\n this.enumMapping.set(key, enumType)\n }\n\n for (const struct of module.structs) {\n // TODO move to util\n const key = [account, module.name, struct.name].join(SPLITTER)\n this.typeMapping.set(key, struct)\n }\n\n for (const func of module.exposedFunctions) {\n // if (!func.isEntry) {\n // continue\n // }\n const key = [account, module.name, func.name].join(SPLITTER)\n this.funcMapping.set(key, func)\n }\n }\n\n protected decodeBigInt(data: any): bigint {\n if (Array.isArray(data)) {\n throw new Error('data is in byte array')\n // Only sui function need this, strange\n // const bytes = data as number[]\n // return bytesToBigInt(new Uint8Array(bytes.slice().reverse()))\n }\n\n return BigInt(data)\n }\n\n private requestMap = new Map<string, Promise<void>>()\n\n async getMoveStruct(type: string): Promise<InternalMoveStruct> {\n const [account_, module, typeName] = type.split(SPLITTER)\n const account = accountAddressString(account_)\n type = [account, module, typeName].join(SPLITTER)\n\n let struct = this.typeMapping.get(type)\n if (struct) {\n return struct\n }\n if (this.accounts.has(account)) {\n throw new Error('Failed to load struct ' + type + ' for imported account')\n }\n let resp = this.requestMap.get(account)\n if (!resp) {\n resp = this.adapter.fetchModules(account).then((modules) => {\n for (const m of modules) {\n this.load(m, account)\n }\n })\n this.requestMap.set(account, resp)\n }\n await resp\n struct = this.typeMapping.get(type)\n if (struct) {\n return struct\n }\n throw new Error('Failed to load function ' + type + ' type are not imported anywhere')\n }\n\n async maybeGetMoveEnum(type: string): Promise<InternalMoveEnum | undefined> {\n const [account_, module, typeName] = type.split(SPLITTER)\n const account = accountAddressString(account_)\n type = [account, module, typeName].join(SPLITTER)\n\n let enumType = this.enumMapping.get(type)\n if (enumType) {\n return enumType\n }\n if (this.accounts.has(account)) {\n return undefined\n }\n let resp = this.requestMap.get(account)\n if (!resp) {\n resp = this.adapter.fetchModules(account).then((modules) => {\n for (const m of modules) {\n this.load(m, account)\n }\n })\n this.requestMap.set(account, resp)\n }\n await resp\n enumType = this.enumMapping.get(type)\n if (enumType) {\n return enumType\n }\n return undefined\n }\n\n async getMoveFunction(type: string): Promise<InternalMoveFunction> {\n const [account_, module, typeName] = type.split(SPLITTER)\n const account = accountAddressString(account_)\n type = [account, module, typeName].join(SPLITTER)\n\n let func = this.funcMapping.get(type)\n if (func) {\n return func\n }\n if (this.accounts.has(account)) {\n throw new Error('Failed to load function ' + type + ' for imported account')\n }\n let resp = this.requestMap.get(account)\n if (!resp) {\n resp = this.adapter\n .fetchModules(account)\n .then((modules) => {\n for (const m of modules) {\n this.load(m, account)\n }\n })\n .catch((e) => {\n this.requestMap.delete(account)\n })\n this.requestMap.set(account, resp)\n }\n await resp\n func = this.funcMapping.get(type)\n if (func) {\n return func\n }\n throw new Error('Failed to load function ' + type + ' type are not imported anywhere')\n }\n\n protected async decode<T>(data: any, type: TypeDescriptor<T>): Promise<T> {\n // process simple type\n if (type.reference) {\n return data\n }\n switch (type.qname) {\n case 'signer': // TODO check this, aptos only\n case 'address':\n case 'Address':\n case '0x1::string::String':\n case 'bool':\n case 'Bool':\n case 'u8':\n case 'U8':\n case 'u16':\n case 'U16':\n case 'u32':\n case 'U32':\n return data\n case 'u64':\n case 'U64':\n case 'u128':\n case 'U128':\n case 'u256':\n case 'U256':\n return this.decodeBigInt(data) as any\n }\n\n // process vector\n if (type.qname.toLowerCase() === VECTOR_STR) {\n // vector<u8> as hex string\n if (type.typeArgs[0].qname === 'u8' || type.typeArgs[0].qname === 'U8') {\n return data\n }\n\n const res = []\n for (const entry of data) {\n res.push(await this.decode(entry, type.typeArgs[0]))\n }\n return res as any\n }\n\n // try enum type first\n const enumType = await this.maybeGetMoveEnum(type.qname)\n if (enumType) {\n return data\n }\n\n // Process complex type\n const struct = await this.getMoveStruct(type.qname)\n\n const typeCtx = new Map<string, TypeDescriptor>()\n for (const [idx, typeArg] of type.typeArgs.entries()) {\n typeCtx.set('T' + idx, typeArg)\n }\n\n const typedData: any = {}\n\n for (const field of struct.fields) {\n let filedType = field.type\n filedType = filedType.applyTypeArgs(typeCtx)\n const fieldValue = this.adapter.getData(data)[field.name]\n const value = await this.decode(fieldValue, filedType)\n typedData[field.name] = value\n }\n return typedData\n }\n\n async decodeArray(entries: any[], types: TypeDescriptor[], strict = true): Promise<any[]> {\n const entriesDecoded: any[] = []\n for (const [idx, arg] of entries.entries()) {\n // TODO consider apply payload.type_arguments, but this might be hard since we don't code gen for them\n const argType = types[idx]\n try {\n if (!strict && arg === undefined) {\n entriesDecoded.push(arg)\n } else {\n entriesDecoded.push(await this.decode(arg, argType))\n }\n } catch (e) {\n throw Error('Decoding error for ' + JSON.stringify(arg) + 'using type' + argType + e.toString())\n }\n }\n return entriesDecoded\n }\n\n public encode(data: any): any {\n if (data === undefined || data === null) {\n return undefined\n }\n if (typeof data === 'bigint') {\n return data.toString()\n }\n if (Array.isArray(data)) {\n return this.encodeArray(data)\n }\n for (const [key, value] of Object.entries(data)) {\n if (!value) {\n continue\n }\n if (typeof value === 'bigint') {\n data[key] = value.toString()\n }\n }\n return data\n }\n\n encodeArray(entriesDecoded: any[]): any[] {\n const entries: any[] = []\n for (const [idx, arg] of entriesDecoded.entries()) {\n entries.push(this.encode(arg))\n }\n return entries\n }\n\n async decodeCallResult(res: any[], func: string): Promise<any[]> {\n const f = await this.getMoveFunction(func)\n return this.decodeArray(res, f.return)\n }\n\n async filterAndDecodeStruct<T, ST extends StructType>(\n typeMatcher: TypeDescriptor<T>,\n structsWithTags: ST[]\n ): Promise<DecodedStruct<ST, T>[]> {\n if (!structsWithTags) {\n return [] as any\n }\n // const typeMatcherDescriptor = parseMoveType(typeMatcher)\n const results: DecodedStruct<ST, T>[] = []\n for (const resource of structsWithTags) {\n const resourceType = this.adapter.getType(resource)\n const resourceTypeDescriptor = parseMoveType(resourceType)\n if (!matchType(typeMatcher, resourceTypeDescriptor)) {\n continue\n }\n\n const result = await this.decodedStruct<T, ST>(resource)\n if (result) {\n results.push(result)\n } else {\n console.error('decoding error')\n }\n }\n return results\n }\n\n protected async decodedStruct<T, ST extends StructType>(typeStruct: ST): Promise<DecodedStruct<ST, T> | undefined> {\n const typeDescriptor = parseMoveType(this.adapter.getType(typeStruct))\n const typeArguments = typeDescriptor.typeArgs.map((t) => t.getSignature())\n\n let dataTyped = undefined\n try {\n dataTyped = await this.decode(typeStruct, typeDescriptor)\n } catch (e) {\n throw Error('Decoding error for struct' + JSON.stringify(typeStruct) + e.toString())\n // return undefined\n }\n return {\n ...typeStruct,\n data_decoded: dataTyped,\n type_arguments: typeArguments\n }\n }\n\n public async decodeType<T, ST>(typeStruct: ST, type: TypeDescriptor<T>): Promise<T | undefined> {\n if (typeStruct === null || typeStruct == undefined) {\n return typeStruct as any\n }\n if (typeof typeStruct === 'object') {\n if ('type' in typeStruct) {\n const typeInStruct = parseMoveType((typeStruct.type as any).toString() || '')\n if (!matchType(type, typeInStruct)) {\n return undefined\n }\n }\n }\n\n return await this.decode(typeStruct, type)\n }\n}\n","import { TypeDescriptor } from './types.js'\n\nexport interface InternalMoveModule {\n address: string\n name: string\n exposedFunctions: InternalMoveFunction[]\n structs: InternalMoveStruct[]\n enums: InternalMoveEnum[]\n}\n\nexport interface InternalMoveFunction {\n name: string\n visibility: InternalMoveFunctionVisibility\n isEntry: boolean\n isView?: boolean\n typeParams: InternalMoveTypeParam[]\n params: TypeDescriptor[]\n return: TypeDescriptor[]\n}\n\nexport interface InternalMoveStruct {\n name: string\n isNative: boolean\n isEvent: boolean\n abilities: string[]\n typeParams: InternalMoveTypeParam[]\n fields: InternalMoveStructField[]\n}\n\nexport interface InternalMoveEnum {\n name: string\n abilities: string[]\n typeParams: InternalMoveTypeParam[]\n variants: {\n [key: string]: InternalMoveStructField[]\n }\n}\n\nexport interface InternalMoveStructField {\n name: string\n type: TypeDescriptor\n}\n\nexport enum InternalMoveFunctionVisibility {\n PRIVATE = 'private',\n PUBLIC = 'public',\n FRIEND = 'friend'\n}\n\nexport type InternalMoveTypeParam = {\n constraints: string[]\n}\n","export * from './filter.js'\nexport * from './move-context.js'\n\nexport * from '@typemove/move'\n\nexport { MoveFetchConfig } from '@sentio/protos'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":"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","names":["EventHandler","__name","CallHandler","ObjectChangeHandler","ResourceChangeHandler","ResourceIntervalHandler","TransactionIntervalHandler","p","MoveContext","BaseContext","__name","MoveAccountContext","p","capitalize","__name","str","lower","camel","parts","x","acc","part","SPLITTER","VECTOR_STR","isFrameworkAccount","account","n","__name","accountTypeString","MOVE_ADDRESS_LENGTH","isHex","value","getHexByteLength","isValidMoveAddress","accountAddressString","KEYWORDS","normalizeToJSName","name","moduleQnameForType","type","parts","moduleQname","module","structQname","struct","upperFirst","str","camel","base","TypeDescriptor","_TypeDescriptor","__name","symbol","typeParams","typeArgs","newObj","t","t1","BUILTIN_TYPES_SET","t2","qname","ctx","replace","arg","SPLITTER","types","param","VECTOR_STR","parts","parseMoveType","type","stack","buffer","i","ch","adjustType","typeParam","res","account","module","name","accountTypeString","ANY_TYPE","vectorType","BUILTIN_TYPES","matchType","matcher","idx","matcherTarg","targ","AccountModulesImportInfo","__name","account","tsModuleName","module","accountModules","AccountRegister","currentModuleFqn","moduleQname","accountModuleImports","func","param","type","moduleQnameForType","struct","field","ChainAdapter","__name","AbstractMoveCoder","__name","adapter","account","name","moduleQname","module","address","accountAddressString","declareAccount","enumType","key","SPLITTER","struct","func","data","type","account_","typeName","resp","modules","m","e","VECTOR_STR","res","entry","typeCtx","idx","typeArg","typedData","field","filedType","fieldValue","value","entries","types","strict","entriesDecoded","arg","argType","f","typeMatcher","structsWithTags","results","resource","resourceType","resourceTypeDescriptor","parseMoveType","matchType","result","typeStruct","typeDescriptor","typeArguments","t","dataTyped","typeInStruct","InternalMoveFunctionVisibility","p"]}
@@ -0,0 +1,3 @@
1
+ import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
+ import("node:process").then(t=>t.stdout.write(""));
3
+ //# sourceMappingURL=chunk-SUCYR7EB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @module .\n */\nexport * from '@sentio/protos'\n\nexport * from './core/index.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";AAMC,OAAO,cAAc,EAAE,KAAMA,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC","names":["p"]}
@@ -0,0 +1,7 @@
1
+ import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
+ import{a as ye,b as je,c as F,e as xe,f as m,g as P,i as Ne}from"./chunk-7QZC3R57.js";import{a as f,b as M}from"./chunk-DS2LOABN.js";import{D as ce,E as ve,a as T,d as Q,f as B,i as we,m as y,n as ie,o as ae,u as Te,v as Ie,w as Z}from"./chunk-SPY3PKUB.js";import{E as S,Ea as A,Nd as W,Y as Ce,ha as Oe,ie as Y,ke as w,y as N}from"./chunk-JQ4LTUIX.js";import{b as K}from"./chunk-QGIFUSFI.js";import{a,f as q}from"./chunk-G5BIPHMS.js";import{ListStateStorage as Je}from"@sentio/runtime";var p=q(K(),1);var Ze="0x0000000000000000000000000000000000000000000000000000000000000000";function h(n){return typeof n!="object"||n==null?!1:n.$kind==="GasCoin"||n.$kind==="Result"||n.$kind==="NestedResult"||n.$kind==="Input"}a(h,"isTransactionArgument");function Xe(n,e){return h(n)?n:e.object(n)}a(Xe,"transactionArgumentOrObject");function et(n,e){return h(n)?n:typeof n=="string"?e.pure.string(n):e.pure.u64(n)}a(et,"transactionArgumentOrPure");function tt(n,e){return h(n)?n:e.pure.address(n)}a(tt,"transactionArgumentOrPureAddress");function nt(n,e){return h(n)?n:e.pure.u8(n)}a(nt,"transactionArgumentOrPureU8");function rt(n,e){return h(n)?n:e.pure.u16(n)}a(rt,"transactionArgumentOrPureU16");function st(n,e){return h(n)?n:e.pure.u32(n)}a(st,"transactionArgumentOrPureU32");function ot(n,e){return h(n)?n:e.pure.u64(n)}a(ot,"transactionArgumentOrPureU64");function it(n,e){return h(n)?n:e.pure.u128(n)}a(it,"transactionArgumentOrPureU128");function at(n,e){return h(n)?n:e.pure.u256(n)}a(at,"transactionArgumentOrPureU256");function ct(n,e){return h(n)?n:e.pure.bool(n)}a(ct,"transactionArgumentOrPureBool");function ut(n,e){return h(n)?n:e.makeMoveVec({elements:n.map(t=>e.object(t))})}a(ut,"transactionArgumentOrVec");function z(n){return{address:n.address,exposedFunctions:Object.entries(n.exposedFunctions).map(([e,t])=>_e(e,t)),name:n.name,structs:Object.entries(n.structs).map(([e,t])=>Le(e,t)),enums:Object.entries(n.enums||{}).map(([e,t])=>Ve(e,t))}}a(z,"toInternalModule");function _e(n,e){let t;switch(e.visibility){case"Private":t=Z.PRIVATE;break;case"Public":t=Z.PUBLIC;break;case"Friend":t=Z.FRIEND;break;default:throw Error("No visibility for function"+n)}return{typeParams:e.typeParameters.map(r=>({constraints:r.abilities})),isEntry:e.isEntry,name:n,params:e.parameters.map(j),return:e.return.map(j),visibility:t}}a(_e,"toInternalFunction");function Le(n,e){return{abilities:e.abilities.abilities,fields:e.fields.map(Ae),typeParams:e.typeParameters.map(t=>({constraints:t.constraints.abilities})),isNative:!1,isEvent:!1,name:n}}a(Le,"toInternalStruct");function Ve(n,e){return{name:n,abilities:e.abilities.abilities,typeParams:e.typeParameters.map(t=>({constraints:t.constraints.abilities})),variants:Object.entries(e.variants).reduce((t,[r,s])=>(t[r]=s.map(Ae),t),{})}}a(Ve,"toInternalEnum");function Ae(n){return{name:n.name,type:j(n.type)}}a(Ae,"toInternalField");function j(n){if(typeof n=="string")return new y(n);if("Struct"in n){let e=[n.Struct.address,n.Struct.module,n.Struct.name].join(T),t=n.Struct.typeArguments.map(j);return new y(e,t)}if("Vector"in n)return new y("Vector",[j(n.Vector)]);if("TypeParameter"in n)return new y("T"+n.TypeParameter);if("Reference"in n){let e=j(n.Reference);return e.reference=!0,e}if("MutableReference"in n){let e=j(n.MutableReference);return e.reference=!0,e.mutable=!0,e}throw new Error("Unexpected sui type")}a(j,"toTypeDescriptor");var X=class extends Te{static{a(this,"SuiChainAdapter")}async getChainId(){return this.client.getChainIdentifier()}client;constructor(e){super(),this.client=e}async fetchModule(e,t){return await this.client.getNormalizedMoveModule({package:e,module:t})}async fetchModules(e){let t=await this.client.getNormalizedMoveModulesByPackage({package:e});return Object.values(t)}getMeaningfulFunctionParams(e){return e}toInternalModules(e){return Object.values(e).map(z)}getAllEventStructs(e){let t=new Map;for(let r of e){let s=we(r);for(let o of r.structs){let i=new Set(o.abilities);i.has("Drop")&&i.has("Copy")&&t.set(s+T+o.name,o)}}return t}getType(e){return e.type}getData(e){if(e===void 0)throw Error("val is undefined");return"parsedJson"in e?e.parsedJson:e.dataType==="moveObject"||"fields"in e&&"type"in e&&Object.keys(e).length===2?e.fields:e}};var I=class extends Ie{static{a(this,"MoveCoder")}constructor(e){super(new X(e))}load(e,t){let r=this.moduleMapping.get(e.address+"::"+e.name),s=this.moduleMapping.get(t+"::"+e.name);return r&&s||(this.accounts.add(e.address),r=z(e),this.loadInternal(r,t)),r}async decode(e,t){switch(t.qname){case"0x1::ascii::Char":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).byte;return String.fromCharCode(s)}case"0x1::ascii::String":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).bytes;return new TextDecoder().decode(new Uint8Array(s))}case"0x2::object::ID":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).bytes;return je(s)}case"0x2::url::Url":if(e!==void 0&&typeof e!="string")return(await super.decode(e,t)).url;case"0x2::coin::Coin":if(e!==void 0&&typeof e!="string"){let s=(await super.decode(e,t)).id.id.bytes;return new TextDecoder().decode(new Uint8Array(s))}return e;case"0x2::balance::Balance":return e.value?(await super.decode(e,t)).value:BigInt(e);case"0x1::option::Option":if(e===null)return e;if(e.vec){let s=await super.decode(e,t);return s=s.vec,s.length===0?null:s[0]}return this.decode(e,t.typeArgs[0]);case"Address":return ye(e);case"0x1::string::String":if(typeof e!="string")return new TextDecoder().decode(new Uint8Array(e.bytes));default:return super.decode(e,t)}}decodeEvent(e){return this.decodedStruct(e)}filterAndDecodeEvents(e,t){return typeof e=="string"&&(e=ie(e)),this.filterAndDecodeStruct(e,t)}async getDynamicFields(e,t=ae,r=ae){let s=new y("0x2::dynamic_field::Field");return s.typeArgs=[t,r],(await this.filterAndDecodeObjects(s,e)).map(i=>i.data_decoded)}filterAndDecodeObjects(e,t){return this.filterAndDecodeStruct(e,t)}async decodeFunctionPayload(e,t){let r=[e.package,e.module,e.function].join(T),s=await this.getMoveFunction(r),o=this.adapter.getMeaningfulFunctionParams(s.params),i=[];for(let c of e.arguments||[]){let d=c;if("Input"in d){let C=d.Input,O=t[C];O.type==="pure"?i.push(O.value):(O.type==="object"||console.error("unexpected function arg value"),i.push(void 0))}else i.push(void 0)}let u=await this.decodeArray(i,o,!1);return{...e,arguments_decoded:u}}bcsRegistered=new Set;bcsRegistry=new Map;async getBCSTypeWithArgs(e,t=[]){let r=e.qname,s=e.getNormalizedSignature(),o=this.bcsRegistry.get(s);if(o)return o;let i=r.toLowerCase();switch(i){case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"bool":return F[i]();case"address":return F.Address;case"vector":return F.vector(t[0]);default:if(!r.includes("::"))throw`Unimplemented builtin type ${r}`}let u;try{u=await this.getMoveStruct(r)}catch(d){throw console.error("Invalid move address",r),d}let c={};for(let d of u.fields)if(d.type.qname.startsWith("T")&&t.length){let C=+d.type.qname.slice(1);c[d.name]=t[C]}else d.type.typeArgs.length&&t.length?c[d.name]=await this.getBCSTypeWithArgs(d.type,t):c[d.name]=await this.getBCSType(d.type);return F.struct(r,c)}async getBCSType(e){let t=await Promise.all(e.typeArgs.map(s=>this.getBCSType(s))),r=await this.getBCSTypeWithArgs(e,t);return this.bcsRegistry.set(e.getNormalizedSignature(),r),r}async registerBCSTypes(e){let t=e.getNormalizedSignature();if(this.bcsRegistered.has(t))return;this.bcsRegistered.add(t);let r=await this.getBCSType(e);this.bcsRegistry.set(e.getNormalizedSignature(),r)}async decodeBCS(e,t,r){if(await this.registerBCSTypes(e),typeof t=="string"){let o=Buffer.from(t,r);t=new Uint8Array(o,o.byteOffset,o.byteLength)}return this.bcsRegistry.get(e.getNormalizedSignature())?.parse(t)}async decodeDevInspectResult(e){let t=[];if(e.results!=null)for(let r of e.results)if(r.returnValues)for(let s of r.returnValues){let o=ie(s[1]),i=await this.decodeBCS(o,new Uint8Array(s[0])),u=await this.decodeType(i,o);t.push(u)}else t.push(null);return{...e,results_decoded:t}}},Ue="https://fullnode.mainnet.sui.io/",Me=new Map;function ke(n=Ue){let e=Me.get(n);return e||(e=new I(new xe({url:n})),Me.set(n,e)),e}a(ke,"defaultMoveCoder");var Pe=new Map,ue;async function Ge(n){let e=Pe.get(n);if(!e){e=new I(n);let t=await n.getChainIdentifier(),r=ke();ue||(ue=await r.adapter.getChainId()),t===ue&&(e=r),Pe.set(n,e)}return e}a(Ge,"getMoveCoder");var Ee=new Map;function k(n=m.MAIN_NET){let e=Ee.get(n);return e||(e=new I(P(n)),Ee.set(n,e)),e}a(k,"defaultMoveCoder");import("node:process").then(n=>n.stdout.write(""));var g=class extends ce{static{a(this,"SuiContext")}moduleName;timestamp;checkpoint;transaction;eventIndex;coder;constructor(e,t,r,s,o,i,u,c){super(c),this.address=r.toLowerCase(),this.network=t,this.moduleName=e,this.timestamp=s,this.checkpoint=o,this.eventIndex=u,this.coder=k(t),i&&(this.transaction=i)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:this.moduleName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:this.transaction?.digest||"",logIndex:this.eventIndex,chainId:this.getChainId(),name:e,labels:W(t)}}get client(){return P(this.network)}},E=class extends ce{static{a(this,"SuiObjectChangeContext")}timestamp;checkpoint;coder;txDigest;constructor(e,t,r,s,o,i){super(i),this.address=t,this.network=e,this.timestamp=r,this.checkpoint=s,this.txDigest=o,this.coder=k(e)}getChainId(){return this.network}getTimestamp(){return this.timestamp.getDate()}getMetaDataInternal(e,t){return{address:this.address,contractName:"*",blockNumber:this.checkpoint,transactionIndex:-1,transactionHash:this.txDigest,logIndex:0,chainId:this.getChainId(),name:e,labels:W(t)}}get client(){return P(this.network)}},de=class extends ve{static{a(this,"SuiAddressContext")}address;network;checkpoint;timestamp;coder;contractName="address";constructor(e,t,r,s,o){super(o),this.address=t,this.network=e,this.checkpoint=r,this.timestamp=s,this.coder=k(e)}getChainId(){return this.network}getMetaDataInternal(e,t){return{address:this.address,contractName:this.contractName,blockNumber:this.checkpoint,transactionIndex:0,transactionHash:"",logIndex:0,chainId:this.getChainId(),name:e,labels:W(t)}}get client(){return P(this.network)}getTimestamp(){return this.timestamp.getDate()}},ee=class extends de{static{a(this,"SuiObjectContext")}contractName="object";objectId;objectVersion;constructor(e,t,r,s,o,i){super(e,t,s,o,i),this.objectId=t,this.objectVersion=r}};import("node:process").then(n=>n.stdout.write(""));function De(n){let e=n.transaction?.data.transaction;if(!e)return[];let t=e.kind==="ProgrammableTransaction"?e:void 0;return t?t.transactions.flatMap(r=>{if("MoveCall"in r){let s=r.MoveCall;return s.package=Q(s.package),[s]}return[]}):[]}a(De,"getMoveCalls");import("node:process").then(n=>n.stdout.write(""));var _={resourceChanges:!1,allEvents:!0,inputs:!0};function fe(n){return{startCheckpoint:n.startCheckpoint||0n,address:n.address===w?w:B(n.address),network:n.network||m.MAIN_NET,baseLabels:n.baseLabels}}a(fe,"configure");var L=class n extends Je{static{a(this,"SuiProcessorState")}static INSTANCE=new n},V=class{static{a(this,"SuiBaseProcessor")}moduleName;config;eventHandlers=[];callHandlers=[];objectChangeHandlers=[];coder;constructor(e,t){return this.moduleName=e,this.config=fe(t),L.INSTANCE.addValue(this),this.coder=k(this.config.network),M(this)}getChainId(){return this.config.network}onMoveEvent(e,t,r){let s=[],o=A.fromPartial({..._,...r});Array.isArray(t)?s=t:s.push(t);let i=this;return this.eventHandlers.push({handlerName:f(),handler:a(async function(u){if(!u.rawTransaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"event is null");let c=JSON.parse(u.rawTransaction);c.events==null&&(c.events=[]);let d=JSON.parse(u.rawEvent),C=Number(d.id.eventSeq)||0,O=new g(i.moduleName,i.config.network,i.config.address,u.timestamp||new Date(0),u.slot,c,C,i.config.baseLabels),R=await i.coder.decodeEvent(d);return await e(R||d,O),O.stopAndGetResult()},"handler"),filters:s,fetchConfig:o}),this}onEntryFunctionCall(e,t,r){let s=[],o=A.fromPartial({..._,...r});Array.isArray(t)?s=t:s.push(t);let i=this,u=new Set(s.map(c=>c.function));return this.callHandlers.push({handlerName:f(),handler:a(async function(c){if(!c.rawTransaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"call is null");let d=JSON.parse(c.rawTransaction),C=new g(i.moduleName,i.config.network,i.config.address,c.timestamp||new Date(0),c.slot,d,0,i.config.baseLabels);if(d){let O=De(d),R=d.transaction?.data?.transaction;if(!R)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"Unexpected getTransactionKind get empty");let Re=R.kind==="ProgrammableTransaction"?R:void 0;for(let oe of O){let Be=[oe.module,oe.function].join(T);if(!u.has(Be))continue;let Fe=await i.coder.decodeFunctionPayload(oe,Re?.inputs||[]);await e(Fe,C)}}return C.stopAndGetResult()},"handler"),filters:s,fetchConfig:o}),this}onEvent(e,t){return this.onMoveEvent(e,{type:""},t),this}onTransactionBlock(e,t,r){let s=A.fromPartial({..._,...r}),o=this;return this.callHandlers.push({handlerName:f(),handler:a(async function(i){if(!i.rawTransaction)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"transaction is null");let u=JSON.parse(i.rawTransaction),c=new g(o.moduleName,o.config.network,o.config.address,i.timestamp||new Date(0),i.slot,u,0,o.config.baseLabels);return u&&await e(u,c),c.stopAndGetResult()},"handler"),filters:[{...t,function:""}],fetchConfig:s}),this}onObjectChange(e,t){if(this.config.network===m.TEST_NET)throw new p.ServerError(p.Status.INVALID_ARGUMENT,"object change not supported in testnet");let r=this;return this.objectChangeHandlers.push({handlerName:f(),handler:a(async function(s){let o=new E(r.config.network,r.config.address,s.timestamp||new Date(0),s.slot,s.txDigest,r.config.baseLabels);return await e(s.rawChanges.map(i=>JSON.parse(i)),o),o.stopAndGetResult()},"handler"),type:t}),this}},le=class n extends V{static{a(this,"SuiModulesProcessor")}static bind(e){return new n(w,e)}},pe=class n extends V{static{a(this,"SuiGlobalProcessor")}static bind(e){return new n(w,{...e,address:w})}onTransactionBlock(e,t,r){return super.onTransactionBlock(e,t,r)}onObjectChange(e,t){return super.onObjectChange(e,t)}};import("node:process").then(n=>n.stdout.write(""));import{ListStateStorage as $e}from"@sentio/runtime";var D=q(K(),1);var me={owned:!1},v=class n extends $e{static{a(this,"SuiAccountProcessorState")}static INSTANCE=new n},te=class{static{a(this,"SuiBaseObjectOrAddressProcessor")}config;ownerType;templateId;objectHandlers=[];objectChangeHandlers=[];constructor(e){return e.ownerType===N.TYPE?this.config={startCheckpoint:e.startCheckpoint||0n,address:e.address==="*"?"*":Q(e.address),network:e.network||m.MAIN_NET,baseLabels:e.baseLabels}:this.config=fe(e),this.ownerType=e.ownerType,v.INSTANCE.addValue(this),M(this)}getChainId(){return this.config.network}onInterval(e,t,r,s,o,i=f()){let u=this;return this.objectHandlers.push({handlerName:i,handler:a(async function(c){let d=new ee(u.config.network,c.objectId,c.objectVersion,c.slot,c.timestamp||new Date(0),u.config.baseLabels);return await u.doHandle(e,c,d),d.stopAndGetResult()},"handler"),timeIntervalInMinutes:t,checkPointInterval:r,type:s,fetchConfig:{...me,...o}}),this}},U=class extends te{static{a(this,"SuiBaseObjectOrAddressProcessorInternal")}onTimeInterval(e,t=60,r=240,s,o){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,s,o)}onCheckpointInterval(e,t=1e5,r=4e5,s,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},s,o)}},x=class n extends U{static{a(this,"SuiAddressProcessor")}callHandlers=[];static bind(e){return new n({...e,ownerType:N.ADDRESS})}async doHandle(e,t,r){return e(t.rawObjects.map(s=>JSON.parse(s)),r)}onTransactionBlock(e,t,r){let s=A.fromPartial({..._,...r}),o={fromAndToAddress:{from:"",to:this.config.address},...t},i=this;return this.callHandlers.push({handlerName:f(),handler:a(async function(u){if(!u.rawTransaction)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"transaction is null");let c=JSON.parse(u.rawTransaction),d=new g("object",i.config.network,i.config.address,u.timestamp||new Date(0),u.slot,c,0,i.config.baseLabels);return c&&await e(c,d),d.stopAndGetResult()},"handler"),filters:[{...o,function:""}],fetchConfig:s}),this}},G=class n extends U{static{a(this,"SuiObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:N.OBJECT,baseLabels:e.baseLabels})}async doHandle(e,t,r){if(!t.rawSelf){console.log(`Sui object not existed in ${r.checkpoint}, please specific a start time`);return}return e(JSON.parse(t.rawSelf),t.rawObjects.map(s=>JSON.parse(s)),r)}},he=class n extends te{static{a(this,"SuiObjectTypeProcessor")}objectType;static bind(e){let t=new n({address:w,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:N.TYPE,baseLabels:e.baseLabels});return t.objectType=e.objectType,t}async doHandle(e,t,r){if(!t.rawSelf){console.log(`Sui object not existed in ${r.checkpoint}, please specific a start time`);return}let s=await r.coder.filterAndDecodeObjects(this.objectType,[JSON.parse(t.rawSelf)]);return e(s[0],t.rawObjects.map(o=>JSON.parse(o)),r)}onObjectChange(e){if(this.config.network===m.TEST_NET)throw new D.ServerError(D.Status.INVALID_ARGUMENT,"object change not supported in testnet");let t=this;return this.objectChangeHandlers.push({handlerName:f(),handler:a(async function(r){let s=new E(t.config.network,t.config.address,r.timestamp||new Date(0),r.slot,r.txDigest,t.config.baseLabels);return await e(r.rawChanges.map(o=>JSON.parse(o)),s),s.stopAndGetResult()},"handler"),type:this.objectType.qname}),this}onTimeInterval(e,t=60,r=240,s){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,this.objectType.qname,s)}onCheckpointInterval(e,t=1e5,r=4e5,s){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},this.objectType.qname,s)}},J=class n extends U{static{a(this,"SuiWrappedObjectProcessor")}static bind(e){return new n({address:e.objectId,network:e.network,startCheckpoint:e.startCheckpoint,ownerType:N.WRAPPED_OBJECT,baseLabels:e.baseLabels})}async doHandle(e,t,r){return e(t.rawObjects.map(s=>JSON.parse(s)),r)}};import("node:process").then(n=>n.stdout.write(""));import{ListStateStorage as qe}from"@sentio/runtime";var b=q(K(),1);var H=class n extends qe{static{a(this,"SuiAccountProcessorTemplateState")}static INSTANCE=new n},$=class{static{a(this,"SuiObjectOrAddressProcessorTemplate")}id;objectHandlers=[];binds=new Set;constructor(){return this.id=H.INSTANCE.getValues().length,H.INSTANCE.addValue(this),M(this)}bind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let r=e.objectId||e.address;if(r==="*")throw new b.ServerError(b.Status.INVALID_ARGUMENT,"can't bind template instance with *");r=B(r);let s=[e.network,r].join("_");if(this.binds.has(s)){console.log(`Same object id can be bind to one template only once, ignore duplicate bind: ${s}`);return}this.binds.add(s);let o=this.createProcessor(e);for(let u of this.objectHandlers)o.onInterval(u.handler,u.timeIntervalInMinutes,u.checkpointInterval,u.type,u.fetchConfig,u.handlerName);let i=o.config;t.update({states:{configUpdated:!0}}),Y.INSTANCE.addValue({templateId:this.id,contract:{name:"",chainId:i.network,address:i.address,abi:""},startBlock:i.startCheckpoint,endBlock:0n,baseLabels:i.baseLabels}),console.log(`successfully bind template ${s}`)}unbind(e,t){e.network=e.network||t.network,e.startCheckpoint=e.startCheckpoint||t.checkpoint;let r=e.objectId||e.address;if(r==="*")throw new b.ServerError(b.Status.INVALID_ARGUMENT,"can't delete template instance bind with *");r=B(r);let s=[e.network,r].join("_");if(!this.binds.has(s)){console.log(`the template instance ${s} not existed or already unbind`);return}this.binds.delete(s);let o=0,i=Y.INSTANCE.unregister();for(let c of i){if(c.contract?.chainId===e.network&&c.contract.address==r){o++;continue}Y.INSTANCE.addValue(c)}if(o!==1)throw new b.ServerError(b.Status.INVALID_ARGUMENT,`Failed to delete template instance ${s}, deleted ${o} times`);let u=v.INSTANCE.unregister();o=0;for(let c of u){if(c.templateId===this.id&&c.config.network==e.network&&c.config.address===r){o++;continue}v.INSTANCE.addValue(c)}if(o!==1)throw new b.ServerError(b.Status.INVALID_ARGUMENT,`Failed to delete processor for template ${this.id}, ${s}. deleted ${o} times`);console.log(`successfully unbind template ${s}`),t.update({states:{configUpdated:!0}})}onInterval(e,t,r,s,o){return this.objectHandlers.push({handlerName:f(),handler:e,timeIntervalInMinutes:t,checkpointInterval:r,type:s,fetchConfig:{...me,...o}}),this}onTimeInterval(e,t=60,r=240,s,o){return this.onInterval(e,{recentInterval:t,backfillInterval:r},void 0,s,o)}onCheckpointInterval(e,t=1e5,r=4e5,s,o){return this.onInterval(e,void 0,{recentInterval:t,backfillInterval:r},s,o)}};var ge=class extends ${static{a(this,"SuiAddressProcessorTemplate")}handlers=[];createProcessor(e){let t=x.bind(e);for(let r of this.handlers)t.onTransactionBlock(r.handler,r.filter,r.fetchConfig);return t.templateId=this.id,t}onTransactionBlock(e,t,r){return this.handlers.push({handler:e,filter:t,fetchConfig:r}),this}},be=class extends ${static{a(this,"SuiObjectProcessorTemplate")}createProcessor(e){let t=G.bind(e);return t.templateId=this.id,t}},Se=class extends ${static{a(this,"SuiWrappedObjectProcessorTemplate")}createProcessor(e){let t=J.bind(e);return t.templateId=this.id,t}};import("node:process").then(n=>n.stdout.write(""));import("node:process").then(n=>n.stdout.write(""));import{errorString as ne,mergeProcessResults as re,Plugin as We,PluginManager as Ke,USER_PROCESSOR as Ye}from"@sentio/runtime";var l=q(K(),1);import{SuiChainId as He}from"@sentio/chain";var se=class extends We{static{a(this,"SuiPlugin")}name="SuiPlugin";handlers={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};async start(e){await Ne(),console.log("total instances:",e.templateInstances.length);let t=new Set(Object.values(He));for(let r of e.templateInstances){if(!t.has(r.contract?.chainId||""))continue;console.log("start template instance",r.templateId),H.INSTANCE.getValues()[r.templateId].bind({address:r.contract?.address||"",objectId:r.contract?.address||"",network:r.contract?.chainId||m.MAIN_NET,startCheckpoint:r.startBlock||0n,baseLabels:r.baseLabels},Qe)}}async configure(e){let t={suiCallHandlers:[],suiEventHandlers:[],suiObjectHandlers:[],suiObjectChangeHandlers:[]};for(let r of L.INSTANCE.getValues()){let s=Ce.fromPartial({transactionConfig:[],processorType:Ye,contract:{name:r.moduleName,chainId:r.config.network,address:r.config.address,abi:""},startBlock:r.config.startCheckpoint});for(let o of r.eventHandlers){let i=t.suiEventHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({type:c.type,account:c.account||"",eventAccount:c.eventAccount||""})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveEventConfigs.push(u)}for(let o of r.callHandlers){let i=t.suiCallHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({function:c.function,typeArguments:c.typeArguments||[],withTypeArguments:!!c.typeArguments,includeFailed:c.includeFailed||!1,publicKeyPrefix:c.publicKeyPrefix||"",fromAndToAddress:c.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveCallConfigs.push(u)}for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i,handlerName:o.handlerName};s.moveResourceChangeConfigs.push(u)}e.contractConfigs.push(s)}for(let r of v.INSTANCE.getValues()){let s=Oe.fromPartial({address:r.config.address,chainId:r.getChainId(),startBlock:r.config.startCheckpoint});for(let o of r.objectChangeHandlers){let i=t.suiObjectChangeHandlers.push(o.handler)-1,u={type:o.type,handlerId:i,handlerName:o.handlerName};s.moveResourceChangeConfigs.push(u)}for(let o of r.objectHandlers){let i=t.suiObjectHandlers.push(o.handler)-1;s.moveIntervalConfigs.push({intervalConfig:{handlerId:i,handlerName:o.handlerName,minutes:0,minutesInterval:o.timeIntervalInMinutes,slot:0,slotInterval:o.checkPointInterval,fetchConfig:void 0},type:o.type||"",ownerType:r.ownerType,resourceFetchConfig:o.fetchConfig,fetchConfig:void 0})}if(r instanceof x)for(let o of r.callHandlers){let i=t.suiCallHandlers.push(o.handler)-1,u={filters:o.filters.map(c=>({function:c.function,typeArguments:c.typeArguments||[],withTypeArguments:!!c.typeArguments,includeFailed:c.includeFailed||!1,publicKeyPrefix:c.publicKeyPrefix||"",fromAndToAddress:c.fromAndToAddress})),fetchConfig:o.fetchConfig,handlerId:i,handlerName:o.handlerName};s.moveCallConfigs.push(u)}e.accountConfigs.push(s)}this.handlers=t}async processSuiEvent(e){if(!e.data?.suiEvent)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Event can't be empty");let t=[],r=e.data.suiEvent;for(let s of e.handlerIds)t.push(this.handlers.suiEventHandlers[s](r).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing event: "+JSON.stringify(r)+`
3
+ `+ne(o))}));return re(await Promise.all(t))}async processSuiFunctionCall(e){if(!e.data?.suiCall)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Call can't be empty");let t=e.data.suiCall,r=[];for(let s of e.handlerIds){let o=this.handlers.suiCallHandlers[s](t).catch(i=>{throw new l.ServerError(l.Status.INTERNAL,"error processing call: "+JSON.stringify(t)+`
4
+ `+ne(i))});r.push(o)}return re(await Promise.all(r))}async processSuiObject(e){if(!e.data?.suiObject)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Object can't be empty");let t=e.data.suiObject,r=[];for(let s of e.handlerIds)r.push(this.handlers.suiObjectHandlers[s](t).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing object: "+JSON.stringify(t)+`
5
+ `+ne(o))}));return re(await Promise.all(r))}async processSuiObjectChange(e){if(!e.data?.suiObjectChange)throw new l.ServerError(l.Status.INVALID_ARGUMENT,"Object change can't be empty");let t=e.data.suiObjectChange,r=[];for(let s of e.handlerIds)r.push(this.handlers.suiObjectChangeHandlers[s](t).catch(o=>{throw new l.ServerError(l.Status.INTERNAL,"error processing object change: "+JSON.stringify(t)+`
6
+ `+ne(o))}));return re(await Promise.all(r))}supportedHandlers=[S.SUI_EVENT,S.SUI_CALL,S.SUI_OBJECT,S.SUI_OBJECT_CHANGE];processBinding(e){switch(e.handlerType){case S.SUI_EVENT:return this.processSuiEvent(e);case S.SUI_CALL:return this.processSuiFunctionCall(e);case S.SUI_OBJECT:return this.processSuiObject(e);case S.SUI_OBJECT_CHANGE:return this.processSuiObjectChange(e);default:throw new l.ServerError(l.Status.INVALID_ARGUMENT,"No handle type registered "+e.handlerType)}}};Ke.INSTANCE.register(new se);var Qe=new g("",He.SUI_MAINNET,"",new Date,0n,{},0,{});import("node:process").then(n=>n.stdout.write(""));import("node:process").then(n=>n.stdout.write(""));export{Ze as a,Xe as b,et as c,tt as d,nt as e,rt as f,st as g,ot as h,it as i,at as j,ct as k,ut as l,I as m,Ge as n,k as o,g as p,E as q,de as r,ee as s,De as t,V as u,le as v,pe as w,x,G as y,he as z,J as A,ge as B,be as C,Se as D,se as E};
7
+ //# sourceMappingURL=chunk-TGIXVAHB.js.map