@sentio/sdk-bundle 4.0.0-rc.4 → 4.0.0-rc.6

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 (81) hide show
  1. package/lib/aptos/builtin/0x1.js +6 -6
  2. package/lib/aptos/builtin/0x3.js +7 -7
  3. package/lib/aptos/builtin/0x4.js +7 -7
  4. package/lib/aptos/builtin/index.js +8 -8
  5. package/lib/aptos/ext/index.js +6 -6
  6. package/lib/aptos/index.js +6 -6
  7. package/lib/{chunk-HJFLTWNH.js → chunk-3S3QHLEF.js} +4 -4
  8. package/lib/{chunk-IEDFDBJU.js → chunk-4KTODWEJ.js} +4 -4
  9. package/lib/{chunk-IQNHEJLA.js → chunk-7UJXQFW2.js} +80 -14
  10. package/lib/chunk-7UJXQFW2.js.map +1 -0
  11. package/lib/{chunk-TWK53OHY.js → chunk-ABYLG2DR.js} +3 -3
  12. package/lib/{chunk-X6UU7BKN.js → chunk-ACDVDKUV.js} +4 -4
  13. package/lib/{chunk-DRM2VJ3T.js → chunk-DOEX4Q4T.js} +2 -3
  14. package/lib/{chunk-DRM2VJ3T.js.map → chunk-DOEX4Q4T.js.map} +1 -1
  15. package/lib/{chunk-QWAHDWYI.js → chunk-DTKXJKBG.js} +5 -5
  16. package/lib/{chunk-64VJOTAV.js → chunk-E7PKEV3B.js} +4 -4
  17. package/lib/{chunk-BY3BQT7D.js → chunk-FAGBUWXZ.js} +6 -6
  18. package/lib/{chunk-EU6ZNQRA.js → chunk-GD6LGLPR.js} +2 -2
  19. package/lib/{chunk-ZB3ENFMP.js → chunk-H7UT4BTD.js} +3 -3
  20. package/lib/{chunk-55LHDIMU.js → chunk-NHCW2Z4Y.js} +5 -5
  21. package/lib/chunk-NHCW2Z4Y.js.map +1 -0
  22. package/lib/{chunk-CMAMXSG5.js → chunk-PHOMFD5C.js} +5 -5
  23. package/lib/{chunk-5TTNJF6G.js → chunk-RME7OHSQ.js} +2 -2
  24. package/lib/{chunk-Y64ROJ5H.js → chunk-RULTARSI.js} +2 -2
  25. package/lib/{chunk-ZXKOL2ZE.js → chunk-SQMYHP2A.js} +3 -3
  26. package/lib/{chunk-ICMARO4X.js → chunk-WZUPXZRK.js} +3 -3
  27. package/lib/{chunk-ODKKD6SE.js → chunk-YPX6BLLX.js} +5 -5
  28. package/lib/{chunk-KO6HMGBS.js → chunk-ZB32JU5U.js} +6 -6
  29. package/lib/{chunk-73XDTOXQ.js → chunk-ZF36Q7ES.js} +4 -4
  30. package/lib/{chunk-GEI3YMIY.js → chunk-ZFAUPMEN.js} +2 -2
  31. package/lib/core/index.js +1 -1
  32. package/lib/eth/abi-decoder/decode-worker.js +2 -2
  33. package/lib/eth/builtin/eacaggregatorproxy.js +4 -4
  34. package/lib/eth/builtin/erc1155.js +5 -5
  35. package/lib/eth/builtin/erc20.js +4 -4
  36. package/lib/eth/builtin/erc721.js +4 -4
  37. package/lib/eth/builtin/index.js +6 -6
  38. package/lib/eth/builtin/weth9.js +5 -5
  39. package/lib/eth/index.js +4 -4
  40. package/lib/fuel/index.js +3 -3
  41. package/lib/index.js +1 -1
  42. package/lib/iota/builtin/0x1.js +9 -9
  43. package/lib/iota/builtin/0x2.js +10 -10
  44. package/lib/iota/builtin/0x3.js +11 -11
  45. package/lib/iota/builtin/index.js +11 -11
  46. package/lib/iota/ext/index.js +6 -6
  47. package/lib/iota/index.js +8 -8
  48. package/lib/move/index.js +2 -2
  49. package/lib/solana/builtin/index.js +2 -2
  50. package/lib/solana/index.js +2 -2
  51. package/lib/store/index.js +1 -1
  52. package/lib/sui/builtin/0x1.js +9 -9
  53. package/lib/sui/builtin/0x2.js +10 -10
  54. package/lib/sui/builtin/0x3.js +11 -11
  55. package/lib/sui/builtin/index.js +11 -11
  56. package/lib/sui/ext/index.js +6 -6
  57. package/lib/sui/index.js +8 -8
  58. package/lib/testing/index.js +11 -11
  59. package/lib/testing/index.js.map +1 -1
  60. package/lib/utils/index.js +4 -4
  61. package/package.json +2 -2
  62. package/lib/chunk-55LHDIMU.js.map +0 -1
  63. package/lib/chunk-IQNHEJLA.js.map +0 -1
  64. /package/lib/{chunk-HJFLTWNH.js.map → chunk-3S3QHLEF.js.map} +0 -0
  65. /package/lib/{chunk-IEDFDBJU.js.map → chunk-4KTODWEJ.js.map} +0 -0
  66. /package/lib/{chunk-TWK53OHY.js.map → chunk-ABYLG2DR.js.map} +0 -0
  67. /package/lib/{chunk-X6UU7BKN.js.map → chunk-ACDVDKUV.js.map} +0 -0
  68. /package/lib/{chunk-QWAHDWYI.js.map → chunk-DTKXJKBG.js.map} +0 -0
  69. /package/lib/{chunk-64VJOTAV.js.map → chunk-E7PKEV3B.js.map} +0 -0
  70. /package/lib/{chunk-BY3BQT7D.js.map → chunk-FAGBUWXZ.js.map} +0 -0
  71. /package/lib/{chunk-EU6ZNQRA.js.map → chunk-GD6LGLPR.js.map} +0 -0
  72. /package/lib/{chunk-ZB3ENFMP.js.map → chunk-H7UT4BTD.js.map} +0 -0
  73. /package/lib/{chunk-CMAMXSG5.js.map → chunk-PHOMFD5C.js.map} +0 -0
  74. /package/lib/{chunk-5TTNJF6G.js.map → chunk-RME7OHSQ.js.map} +0 -0
  75. /package/lib/{chunk-Y64ROJ5H.js.map → chunk-RULTARSI.js.map} +0 -0
  76. /package/lib/{chunk-ZXKOL2ZE.js.map → chunk-SQMYHP2A.js.map} +0 -0
  77. /package/lib/{chunk-ICMARO4X.js.map → chunk-WZUPXZRK.js.map} +0 -0
  78. /package/lib/{chunk-ODKKD6SE.js.map → chunk-YPX6BLLX.js.map} +0 -0
  79. /package/lib/{chunk-KO6HMGBS.js.map → chunk-ZB32JU5U.js.map} +0 -0
  80. /package/lib/{chunk-73XDTOXQ.js.map → chunk-ZF36Q7ES.js.map} +0 -0
  81. /package/lib/{chunk-GEI3YMIY.js.map → chunk-ZFAUPMEN.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
2
  import {
3
3
  loadAllTypes
4
- } from "./chunk-73XDTOXQ.js";
4
+ } from "./chunk-ZF36Q7ES.js";
5
5
  import {
6
6
  IotaBaseProcessor,
7
7
  ZERO_ADDRESS,
@@ -18,15 +18,15 @@ import {
18
18
  transactionArgumentOrPureU64,
19
19
  transactionArgumentOrPureU8,
20
20
  transactionArgumentOrVec
21
- } from "./chunk-IQNHEJLA.js";
21
+ } from "./chunk-7UJXQFW2.js";
22
22
  import {
23
23
  IotaNetwork,
24
24
  Transaction
25
- } from "./chunk-ZB3ENFMP.js";
25
+ } from "./chunk-H7UT4BTD.js";
26
26
  import {
27
27
  ANY_TYPE,
28
28
  TypeDescriptor
29
- } from "./chunk-Y64ROJ5H.js";
29
+ } from "./chunk-RULTARSI.js";
30
30
  import {
31
31
  __export,
32
32
  __name
@@ -21267,4 +21267,4 @@ export {
21267
21267
  loadAllTypes2 as loadAllTypes,
21268
21268
  x2_exports
21269
21269
  };
21270
- //# sourceMappingURL=chunk-QWAHDWYI.js.map
21270
+ //# sourceMappingURL=chunk-DTKXJKBG.js.map
@@ -13,7 +13,7 @@ import {
13
13
  transactionArgumentOrPureU642 as transactionArgumentOrPureU64,
14
14
  transactionArgumentOrPureU82 as transactionArgumentOrPureU8,
15
15
  transactionArgumentOrVec2 as transactionArgumentOrVec
16
- } from "./chunk-IQNHEJLA.js";
16
+ } from "./chunk-7UJXQFW2.js";
17
17
  import {
18
18
  ArgumentSchema,
19
19
  BCSBytes,
@@ -54,7 +54,7 @@ import {
54
54
  toBase58,
55
55
  toBase64,
56
56
  toHex
57
- } from "./chunk-TWK53OHY.js";
57
+ } from "./chunk-ABYLG2DR.js";
58
58
  import {
59
59
  array,
60
60
  bigint,
@@ -79,7 +79,7 @@ import {
79
79
  import {
80
80
  ANY_TYPE,
81
81
  TypeDescriptor
82
- } from "./chunk-Y64ROJ5H.js";
82
+ } from "./chunk-RULTARSI.js";
83
83
  import {
84
84
  __export,
85
85
  __name
@@ -9629,4 +9629,4 @@ export {
9629
9629
  loadAllTypes,
9630
9630
  x1_exports
9631
9631
  };
9632
- //# sourceMappingURL=chunk-64VJOTAV.js.map
9632
+ //# sourceMappingURL=chunk-E7PKEV3B.js.map
@@ -1,11 +1,11 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
2
  import {
3
3
  loadAllTypes as loadAllTypes2
4
- } from "./chunk-CMAMXSG5.js";
4
+ } from "./chunk-PHOMFD5C.js";
5
5
  import {
6
6
  Transaction,
7
7
  loadAllTypes
8
- } from "./chunk-64VJOTAV.js";
8
+ } from "./chunk-E7PKEV3B.js";
9
9
  import {
10
10
  SuiBaseProcessor,
11
11
  ZERO_ADDRESS2 as ZERO_ADDRESS,
@@ -18,13 +18,13 @@ import {
18
18
  transactionArgumentOrPureU642 as transactionArgumentOrPureU64,
19
19
  transactionArgumentOrPureU82 as transactionArgumentOrPureU8,
20
20
  transactionArgumentOrVec2 as transactionArgumentOrVec
21
- } from "./chunk-IQNHEJLA.js";
21
+ } from "./chunk-7UJXQFW2.js";
22
22
  import {
23
23
  SuiNetwork
24
- } from "./chunk-TWK53OHY.js";
24
+ } from "./chunk-ABYLG2DR.js";
25
25
  import {
26
26
  TypeDescriptor
27
- } from "./chunk-Y64ROJ5H.js";
27
+ } from "./chunk-RULTARSI.js";
28
28
  import {
29
29
  __export,
30
30
  __name
@@ -8501,4 +8501,4 @@ export {
8501
8501
  loadAllTypes3 as loadAllTypes,
8502
8502
  x3_exports
8503
8503
  };
8504
- //# sourceMappingURL=chunk-BY3BQT7D.js.map
8504
+ //# sourceMappingURL=chunk-FAGBUWXZ.js.map
@@ -69,7 +69,7 @@ import {
69
69
  normalizeLabels,
70
70
  require_bn,
71
71
  require_node_ponyfill
72
- } from "./chunk-DRM2VJ3T.js";
72
+ } from "./chunk-DOEX4Q4T.js";
73
73
  import {
74
74
  __commonJS,
75
75
  __esm,
@@ -36368,4 +36368,4 @@ buffer-layout/lib/Layout.js:
36368
36368
  pako/dist/pako.esm.mjs:
36369
36369
  (*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
36370
36370
  */
36371
- //# sourceMappingURL=chunk-EU6ZNQRA.js.map
36371
+ //# sourceMappingURL=chunk-GD6LGLPR.js.map
@@ -27,11 +27,11 @@ import {
27
27
  } from "./chunk-742S42NO.js";
28
28
  import {
29
29
  getPriceByType
30
- } from "./chunk-X6UU7BKN.js";
30
+ } from "./chunk-ACDVDKUV.js";
31
31
  import {
32
32
  SPLITTER,
33
33
  accountTypeString
34
- } from "./chunk-Y64ROJ5H.js";
34
+ } from "./chunk-RULTARSI.js";
35
35
  import {
36
36
  Hash,
37
37
  abytes,
@@ -6703,4 +6703,4 @@ export {
6703
6703
  @scure/base/lib/esm/index.js:
6704
6704
  (*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
6705
6705
  */
6706
- //# sourceMappingURL=chunk-ZB3ENFMP.js.map
6706
+ //# sourceMappingURL=chunk-H7UT4BTD.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
2
  import {
3
3
  HandlerRegister
4
- } from "./chunk-5TTNJF6G.js";
4
+ } from "./chunk-RME7OHSQ.js";
5
5
  import {
6
6
  getHandlerName,
7
7
  proxyProcessor
@@ -40,7 +40,7 @@ import {
40
40
  deserializeReceipt,
41
41
  normalizeLabels,
42
42
  timestampDate
43
- } from "./chunk-DRM2VJ3T.js";
43
+ } from "./chunk-DOEX4Q4T.js";
44
44
  import {
45
45
  __name
46
46
  } from "./chunk-R7PMHHKJ.js";
@@ -972,7 +972,7 @@ var FuelPlugin = class extends Plugin {
972
972
  data = request.data.value.value;
973
973
  break;
974
974
  case HandlerType.FUEL_RECEIPT:
975
- if (request.data?.value.case !== "fuelLog") {
975
+ if (request.data?.value.case !== "fuelReceipt") {
976
976
  throw new ConnectError("fuelReceipt can't be empty", Code.InvalidArgument);
977
977
  }
978
978
  data = request.data.value.value;
@@ -1005,7 +1005,7 @@ var FuelPlugin = class extends Plugin {
1005
1005
  }
1006
1006
  }
1007
1007
  async processReceipt(binding) {
1008
- const receipt = binding?.data?.value.case === "fuelLog" ? binding.data.value.value : void 0;
1008
+ const receipt = binding?.data?.value.case === "fuelReceipt" ? binding.data.value.value : void 0;
1009
1009
  if (!receipt?.transaction) {
1010
1010
  throw new ConnectError("transaction can't be null", Code.InvalidArgument);
1011
1011
  }
@@ -1266,4 +1266,4 @@ export {
1266
1266
  FuelAbstractProcessor,
1267
1267
  TypedCall
1268
1268
  };
1269
- //# sourceMappingURL=chunk-55LHDIMU.js.map
1269
+ //# sourceMappingURL=chunk-NHCW2Z4Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fuel/fuel-plugin.ts","../src/fuel/types.ts","../src/fuel/network.ts","../src/fuel/context.ts","../src/fuel/transaction.ts","../src/fuel/fuel-processor.ts","../src/fuel/asset-processor.ts","../src/fuel/global-processor.ts","../src/fuel/fuel-processor-template.ts","../src/fuel/base-processor.ts","../src/fuel/index.ts"],"sourcesContent":["import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport { PartitionHandlerManager } from '../core/index.js'\nimport { HandlerRegister } from '../core/handler-register.js'\nimport {\n ContractConfigSchema,\n DataBinding,\n FuelAssetHandlerConfigSchema,\n FuelReceiptHandlerConfigSchema,\n FuelTransactionHandlerConfigSchema,\n HandlerType,\n InitResponse,\n OnIntervalConfigSchema,\n ProcessConfigResponse,\n ProcessResult,\n ProcessStreamResponse_Partitions,\n ProcessStreamResponse_PartitionsSchema,\n StartRequest\n} from '@sentio/protos'\nimport { create } from '@bufbuild/protobuf'\nimport { ConnectError, Code } from '@connectrpc/connect'\nimport { FuelAssetProcessor } from './asset-processor.js'\nimport { FuelProcessorState } from './types.js'\nimport { FuelProcessor } from './fuel-processor.js'\nimport { FuelGlobalProcessor } from './global-processor.js'\n\nexport class FuelPlugin extends Plugin {\n name: string = 'FuelPlugin'\n handlerRegister = new HandlerRegister()\n partitionManager = new PartitionHandlerManager()\n\n async init(config: InitResponse) {\n for (const fuelProcessor of FuelProcessorState.INSTANCE.getValues()) {\n const chainId = fuelProcessor.config.chainId\n config.chainIds.push(chainId)\n }\n }\n\n async configure(config: ProcessConfigResponse, forChainId?: string) {\n this.handlerRegister.clear(forChainId as any)\n\n for (const processor of FuelProcessorState.INSTANCE.getValues()) {\n const chainId = processor.config.chainId\n if (forChainId !== undefined && forChainId !== chainId.toString()) {\n continue\n }\n const processorConfig = processor.config\n const contractConfig = create(ContractConfigSchema, {\n processorType: USER_PROCESSOR,\n contract: {\n name: processorConfig.name,\n chainId: processorConfig.chainId.toString(),\n address: processorConfig.address || '*',\n abi: ''\n },\n startBlock: processorConfig.startBlock,\n endBlock: processorConfig.endBlock\n })\n for (const txHandler of processor.txHandlers) {\n const handlerId = this.handlerRegister.register(txHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(\n HandlerType.FUEL_TRANSACTION,\n handlerId,\n txHandler.partitionHandler\n )\n const handlerName = txHandler.handlerName\n if (processor instanceof FuelProcessor) {\n // on transaction\n const fetchConfig = create(FuelTransactionHandlerConfigSchema, {\n handlerId,\n handlerName\n })\n contractConfig.fuelTransactionConfigs.push(fetchConfig)\n } else if (processor instanceof FuelAssetProcessor) {\n const assetConfig = txHandler.assetConfig\n contractConfig.assetConfigs.push(\n create(FuelAssetHandlerConfigSchema, {\n filters: assetConfig?.filters || [],\n handlerId,\n handlerName\n })\n )\n } else if (processor instanceof FuelGlobalProcessor) {\n const fetchConfig = create(FuelTransactionHandlerConfigSchema, {\n handlerId,\n handlerName\n })\n contractConfig.fuelTransactionConfigs.push(fetchConfig)\n contractConfig.contract!.address = '*'\n }\n }\n\n for (const receiptHandler of processor.receiptHandlers ?? []) {\n const handlerId = this.handlerRegister.register(receiptHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(\n HandlerType.FUEL_RECEIPT,\n handlerId,\n receiptHandler.partitionHandler\n )\n const handlerName = receiptHandler.handlerName\n if (processor instanceof FuelProcessor) {\n contractConfig.fuelReceiptConfigs.push(\n create(FuelReceiptHandlerConfigSchema, {\n ...receiptHandler.receiptConfig,\n handlerId,\n handlerName\n })\n )\n }\n }\n\n for (const blockHandler of processor.blockHandlers) {\n const handlerId = this.handlerRegister.register(blockHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(HandlerType.FUEL_BLOCK, handlerId, blockHandler.partitionHandler)\n contractConfig.intervalConfigs.push(\n create(OnIntervalConfigSchema, {\n slot: 0,\n slotInterval: blockHandler.blockInterval,\n minutes: 0,\n minutesInterval: blockHandler.timeIntervalInMinutes,\n handlerId: handlerId,\n handlerName: blockHandler.handlerName,\n fetchConfig: undefined\n // fetchConfig: blockHandler.fetchConfig\n })\n )\n }\n\n config.contractConfigs.push(contractConfig)\n }\n }\n\n supportedHandlers = [HandlerType.FUEL_TRANSACTION, HandlerType.FUEL_RECEIPT, HandlerType.FUEL_BLOCK]\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.FUEL_TRANSACTION:\n return this.processTransaction(request)\n case HandlerType.FUEL_RECEIPT:\n return this.processReceipt(request)\n case HandlerType.FUEL_BLOCK:\n return this.processBlock(request)\n default:\n throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument)\n }\n }\n\n async partition(request: DataBinding): Promise<ProcessStreamResponse_Partitions> {\n let data: any\n switch (request.handlerType) {\n case HandlerType.FUEL_TRANSACTION:\n if (request.data?.value.case !== 'fuelTransaction') {\n throw new ConnectError(\"fuelTransaction can't be empty\", Code.InvalidArgument)\n }\n data = request.data.value.value\n break\n case HandlerType.FUEL_RECEIPT:\n if (request.data?.value.case !== 'fuelReceipt') {\n throw new ConnectError(\"fuelReceipt can't be empty\", Code.InvalidArgument)\n }\n data = request.data.value.value\n break\n case HandlerType.FUEL_BLOCK:\n if (request.data?.value.case !== 'fuelBlock') {\n throw new ConnectError(\"fuelBlock can't be empty\", Code.InvalidArgument)\n }\n data = request.data.value.value\n break\n default:\n throw new ConnectError('No handle type registered ' + request.handlerType, Code.InvalidArgument)\n }\n const partitions = await this.partitionManager.processPartitionForHandlerType(\n request.handlerType,\n request.handlerIds,\n data\n )\n return create(ProcessStreamResponse_PartitionsSchema, {\n partitions\n })\n }\n\n async start(request: StartRequest) {\n try {\n for (const processor of FuelProcessorState.INSTANCE.getValues()) {\n await processor.configure()\n }\n } catch (e) {\n throw new ConnectError('error starting FuelPlugin: ' + errorString(e), Code.Internal)\n }\n }\n\n async processReceipt(binding: DataBinding): Promise<ProcessResult> {\n const receipt = binding?.data?.value.case === 'fuelReceipt' ? binding.data.value.value : undefined\n\n if (!receipt?.transaction) {\n throw new ConnectError(\"transaction can't be null\", Code.InvalidArgument)\n }\n\n const promises: Promise<ProcessResult>[] = []\n\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n binding.chainId,\n handlerId\n )(receipt)\n .catch((e: any) => {\n throw new ConnectError(\n 'error processing transaction: ' + JSON.stringify(receipt) + '\\n' + errorString(e),\n Code.Internal\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 async processTransaction(binding: DataBinding): Promise<ProcessResult> {\n if (binding.data?.value.case !== 'fuelTransaction' || !binding.data.value.value.transaction) {\n throw new ConnectError(\"transaction can't be null\", Code.InvalidArgument)\n }\n const fuelTransaction = binding.data.value.value\n\n const promises: Promise<ProcessResult>[] = []\n\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n binding.chainId,\n handlerId\n )(fuelTransaction)\n .catch((e: any) => {\n throw new ConnectError(\n 'error processing transaction: ' + JSON.stringify(fuelTransaction.transaction) + '\\n' + errorString(e),\n Code.Internal\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 async processBlock(binding: DataBinding): Promise<ProcessResult> {\n if (binding.data?.value.case !== 'fuelBlock' || !binding.data.value.value.block) {\n throw new ConnectError(\"Block can't be empty\", Code.InvalidArgument)\n }\n const ethBlock = binding.data.value.value\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n binding.chainId,\n handlerId\n )(ethBlock)\n .catch((e: any) => {\n console.error('error processing block: ', e)\n throw new ConnectError(\n 'error processing block: ' + (ethBlock.block as any)?.height + '\\n' + errorString(e),\n Code.Internal\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 FuelPlugin())\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { MapStateStorage } from '@sentio/runtime'\nimport {\n Data_FuelBlock,\n Data_FuelReceipt,\n Data_FuelTransaction,\n FuelAssetHandlerConfig,\n FuelReceiptHandlerConfig,\n HandleInterval,\n OnIntervalConfig,\n ProcessResult\n} from '@sentio/protos'\nimport { Block, TransactionSummary } from 'fuels'\n\n// Client-side only filter for `onCall`. Fuel calls are delivered as FUEL_TRANSACTION\n// data and filtered in-handler, so this never reaches the backend.\nexport interface FuelCallFilter {\n function: string\n includeFailed: boolean\n}\n\nexport interface FuelBaseProcessor<T> {\n configure(): Promise<void>\n config: T\n txHandlers: CallHandler<Data_FuelTransaction>[]\n blockHandlers: BlockHandler[]\n receiptHandlers?: ReceiptHandler[]\n}\n\nexport class FuelProcessorState extends MapStateStorage<FuelBaseProcessor<any>> {\n static INSTANCE = new FuelProcessorState()\n}\n\nexport type CallHandler<T> = {\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n fetchConfig?: { filters: FuelCallFilter[] }\n assetConfig?: Omit<Partial<FuelAssetHandlerConfig>, '$typeName' | '$unknown'>\n partitionHandler?: (call: T) => Promise<string | undefined>\n}\n\nexport type ReceiptHandler = {\n handlerName: string\n handler: (receipt: Data_FuelReceipt) => Promise<ProcessResult>\n receiptConfig?: Omit<Partial<FuelReceiptHandlerConfig>, '$typeName' | '$unknown'>\n partitionHandler?: (receipt: Data_FuelReceipt) => Promise<string | undefined>\n}\n\nexport type BlockHandler = {\n blockInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (block: Data_FuelBlock) => Promise<ProcessResult>\n handlerName: string\n fetchConfig?: Partial<OnIntervalConfig>\n partitionHandler?: (block: Data_FuelBlock) => Promise<string | undefined>\n}\n\nexport interface FuelLog<T> {\n logId: string\n data: T\n receiptIndex: number\n}\n\nexport type FuelTransaction = TransactionSummary & {\n blockNumber?: string\n logs?: FuelLog<any>[]\n sender?: string\n}\n\nexport type FuelBlock = Omit<Block, 'transactionIds'>\n\nexport type ContractTransferFilter = {\n assetId?: string\n from?: string\n to?: string\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { FuelChainId } from '@sentio/chain'\nimport { Endpoints } from '@sentio/runtime'\nimport { Provider } from 'fuels'\n\nexport type FuelNetwork = FuelChainId\nexport const FuelNetwork = <const>{\n MAIN_NET: FuelChainId.FUEL_MAINNET,\n TEST_NET: FuelChainId.FUEL_TESTNET\n}\n\nexport function getRpcEndpoint(network: FuelNetwork): string {\n switch (network) {\n case FuelNetwork.TEST_NET:\n return 'https://testnet.fuel.network/v1/graphql'\n }\n return 'https://mainnet.fuel.network/v1/graphql'\n}\n\nexport async function getProvider(network: FuelNetwork): Promise<Provider> {\n let chainServer = Endpoints.INSTANCE.chainServer.get(network)\n if (!chainServer) {\n chainServer = getRpcEndpoint(network)\n // throw new ServerError(Status.INTERNAL, 'RPC endpoint not provided')\n }\n return new Provider(chainServer)\n // return Provider.create(chainServer)\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { BaseContext, Labels, normalizeLabels } from '../core/index.js'\nimport { FuelChainId } from '@sentio/chain'\nimport { RecordMetaData, RecordMetaDataSchema } from '@sentio/protos'\nimport { create } from '@bufbuild/protobuf'\nimport type { CallResult, Contract } from 'fuels'\nimport { InvocationScopeLike } from 'fuels'\nimport { FuelBlock, FuelLog, FuelTransaction } from './types.js'\n\nexport class FuelCall {\n constructor(\n funcScopes: InvocationScopeLike | Array<InvocationScopeLike>,\n callResult: CallResult,\n isMultiCall: boolean,\n readonly args?: Record<string, any>,\n readonly logs?: FuelLog<unknown>[]\n ) {\n // super(funcScopes, callResult, isMultiCall)\n }\n}\n\nexport class FuelContext extends BaseContext {\n private logIndex: number = -1\n constructor(\n readonly chainId: FuelChainId,\n readonly contractAddress: string,\n readonly contractName: string,\n readonly timestamp: Date,\n readonly transaction: FuelTransaction | null,\n readonly block: FuelBlock | null\n ) {\n super({})\n }\n\n getChainId(): FuelChainId {\n return this.chainId\n }\n\n setLogIndex(logIndex: number): void {\n this.logIndex = logIndex\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return create(RecordMetaDataSchema, {\n address: this.contractAddress,\n contractName: this.contractName,\n blockNumber: BigInt(this.block?.height?.toString() ?? (this.transaction?.blockNumber || 0)),\n transactionIndex: 0,\n transactionHash: this.transaction?.id || '', // TODO\n chainId: this.getChainId(),\n name: name,\n logIndex: this.logIndex,\n labels: normalizeLabels(labels)\n })\n }\n}\n\nexport class FuelContractContext<TContract extends Contract> extends FuelContext {\n constructor(\n chainId: FuelChainId,\n readonly contract: TContract | undefined,\n contractAddress: string,\n contractName: string,\n timestamp: Date,\n transaction: FuelTransaction | null,\n block: FuelBlock | null\n ) {\n super(chainId, contract?.id?.toString() ?? contractAddress, contractName, timestamp, transaction, block)\n }\n\n get provider() {\n return this.contract?.provider\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n AbiMap,\n arrayify,\n assembleTransactionSummary,\n BigNumberCoder,\n bn,\n Input,\n InputType,\n Interface,\n JsonAbi,\n deserializeReceipt,\n Provider,\n ReceiptType,\n TransactionCoder,\n TransactionResponse\n} from 'fuels'\nimport { FuelLog, FuelTransaction } from './types.js'\n\nexport type FuelFetchConfig = {\n includeFailed?: boolean\n}\n\nexport const DEFAULT_FUEL_FETCH_CONFIG: FuelFetchConfig = {\n includeFailed: false\n}\n\nfunction findSenderFromInputs(inputs: Input[] | undefined, baseAssetId: string): string | undefined {\n for (const input of inputs || []) {\n if (input.type == InputType.Coin && input.assetId == baseAssetId) {\n return input.owner\n }\n }\n return undefined\n}\n\nexport async function decodeFuelTransaction(gqlTransaction: any, provider: Provider): Promise<FuelTransaction> {\n const rawPayload = arrayify(gqlTransaction.rawPayload)\n const receipts = gqlTransaction?.status.receipts?.map(deserializeReceipt) || []\n let decodedTransaction: any\n try {\n const [d] = new TransactionCoder().decode(rawPayload, 0)\n decodedTransaction = d\n } catch (e) {\n // If the transaction cannot be decoded, we log the payload in hex and rethrow it\n console.error('Failed to decode transaction payload:', e, 'payload', Buffer.from(rawPayload).toString('hex'))\n throw e\n }\n const { gasCosts, feeParameters, txParameters, baseAssetId } = (await provider.getChain()).consensusParameters\n const blockNumber = gqlTransaction.status?.block?.header?.height\n const { gasPriceFactor, gasPerByte } = feeParameters\n const { maxInputs, maxGasPerTx } = txParameters\n const gqlTransactionStatus = {\n type: gqlTransaction.status?.__typename,\n ...gqlTransaction.status\n }\n return {\n ...assembleTransactionSummary({\n id: gqlTransaction.id,\n receipts,\n transaction: decodedTransaction,\n transactionBytes: rawPayload,\n gqlTransactionStatus,\n gasPerByte: bn(gasPerByte),\n gasPriceFactor: bn(gasPriceFactor),\n maxInputs,\n gasCosts,\n gasPrice: bn(gqlTransaction.gasPrice),\n maxGasPerTx,\n baseAssetId\n }),\n blockNumber,\n sender: findSenderFromInputs(decodedTransaction.inputs, baseAssetId)\n }\n}\n\nexport function decodeLog(receipt: any | undefined, abi: JsonAbi) {\n try {\n if (receipt && (receipt.type === ReceiptType.LogData || receipt.type === ReceiptType.Log)) {\n const interfaceToUse = new Interface(abi)\n const data = receipt.type === ReceiptType.Log ? new BigNumberCoder('u64').encode(receipt.val0) : receipt.data\n const logId: string = receipt.rb.toString()\n const [decodedLog] = interfaceToUse.decodeLog(data, logId)\n return { logId, data: decodedLog }\n }\n return null\n } catch (e) {\n console.error(\n 'Failed to decode log',\n e,\n 'Please make sure you provide the correct abi.',\n e,\n 'receipt',\n receipt,\n 'abi',\n abi\n )\n throw e\n }\n}\n\nexport async function decodeFuelTransactionWithAbi(\n gqlTransaction: any,\n abiMap: AbiMap,\n provider: Provider\n): Promise<FuelTransaction> {\n const rawPayload = arrayify(gqlTransaction.rawPayload)\n const [decodedTransaction] = new TransactionCoder().decode(rawPayload, 0)\n\n const receipts = gqlTransaction?.status.receipts?.map(deserializeReceipt) || []\n\n // const {\n // consensusParameters: {\n // feeParameters: { gasPerByte, gasPriceFactor },\n // txParameters: { maxInputs, maxGasPerTx },\n // gasCosts\n // }\n // } = provider.getChain()\n //\n const gqlTransactionStatus = {\n type: gqlTransaction.status?.__typename,\n ...gqlTransaction.status\n }\n\n const blockNumber = gqlTransactionStatus?.block?.header?.height\n const abi = Object.values(abiMap)[0]\n const logs = [] as FuelLog<any>[]\n ;(receipts as any[]).forEach((receipt, idx) => {\n try {\n const log = decodeLog(receipt, abi)\n if (log) {\n logs.push({ ...log, receiptIndex: idx })\n }\n } catch (e) {\n console.warn('Failed to decode log', e)\n }\n })\n const txResponse = new TransactionResponse({\n transactionRequestOrId: gqlTransaction.status.transactionId,\n provider,\n chainId: await provider.getChainId(),\n abis: {\n main: Object.values(abiMap)[0],\n otherContractsAbis: {}\n }\n })\n\n // @ts-ignore - hack\n txResponse.gqlTransaction = {\n ...gqlTransaction,\n status: gqlTransactionStatus\n }\n const summary = await txResponse.getTransactionSummary()\n\n return {\n /*...assembleTransactionSummary({\n id: gqlTransaction.id,\n receipts,\n transaction: decodedTransaction,\n transactionBytes: rawPayload,\n gqlTransactionStatus,\n gasPerByte: bn(gasPerByte),\n gasPriceFactor: bn(gasPriceFactor),\n abiMap,\n maxInputs,\n gasCosts,\n maxGasPerTx,\n gasPrice: bn(gqlTransaction.gasPrice)\n }),*/\n ...summary,\n blockNumber,\n logs,\n sender: findSenderFromInputs(decodedTransaction.inputs, (await provider.getChain()).consensusParameters.baseAssetId)\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n Data_FuelBlock,\n Data_FuelTransaction,\n Data_FuelReceipt,\n HandleInterval,\n HandleIntervalSchema,\n ProcessResultSchema,\n timestampDate\n} from '@sentio/protos'\nimport { create } from '@bufbuild/protobuf'\nimport { FuelCall, FuelContext, FuelContractContext } from './context.js'\nimport { bn, Contract, InputType, Interface, JsonAbi, Provider, ReceiptTransfer, ReceiptTransferOut } from 'fuels'\nimport { FuelNetwork, getProvider } from './network.js'\nimport {\n decodeFuelTransaction,\n decodeFuelTransactionWithAbi,\n decodeLog,\n DEFAULT_FUEL_FETCH_CONFIG,\n FuelFetchConfig\n} from './transaction.js'\nimport {\n BlockHandler,\n CallHandler,\n ContractTransferFilter,\n FuelBaseProcessor,\n FuelBlock,\n FuelCallFilter,\n FuelLog,\n FuelProcessorState,\n FuelTransaction,\n ReceiptHandler\n} from './types.js'\nimport { PromiseOrVoid, HandlerOptions } from '../core/index.js'\nimport { ConnectError, Code } from '@connectrpc/connect'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nexport class FuelProcessor<TContract extends Contract> implements FuelBaseProcessor<FuelProcessorConfig> {\n txHandlers: CallHandler<Data_FuelTransaction>[] = []\n blockHandlers: BlockHandler[] = []\n receiptHandlers: ReceiptHandler[] = []\n\n private provider: Provider\n\n static bind(config: FuelProcessorConfig): FuelProcessor<any> {\n const processor = new FuelProcessor(config)\n addFuelProcessor(config, processor)\n return processor\n }\n\n constructor(readonly config: FuelProcessorConfig) {\n return proxyProcessor(this)\n }\n\n latestGasPrice: string | undefined\n\n async configure() {\n this.provider = await getProvider(this.config.chainId)\n this.provider.getLatestGasPrice = async () => {\n // avoid flood the endpoint, cache the latest gas price\n if (this.latestGasPrice) {\n return bn(this.latestGasPrice)\n }\n const { latestGasPrice } = await this.provider.operations.getLatestGasPrice()\n this.latestGasPrice = latestGasPrice?.gasPrice\n return bn(latestGasPrice.gasPrice)\n }\n if (this.config.address === '*') {\n return\n }\n }\n\n private getContract(tx?: FuelTransaction) {\n let contract: undefined | TContract\n let contractId = tx?.transaction?.inputContract?.contractID\n if (!contractId) {\n for (const input of tx?.transaction?.inputs ?? []) {\n if (input.type == InputType.Contract) {\n contractId = input.contractID\n break\n }\n }\n }\n\n if (contractId) {\n contract = new Contract(contractId, this.config.abi, this.provider) as TContract\n } else if (this.config.address != '*') {\n contract = new Contract(this.config.address, this.config.abi!, this.provider) as TContract\n }\n return contract\n }\n\n public onTransaction(\n handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n handlerOptions?: HandlerOptions<FuelFetchConfig, FuelTransaction>,\n handlerName = getHandlerName()\n ) {\n const callHandler = {\n handlerName,\n handler: async (call: Data_FuelTransaction) => {\n const abiMap = this.config.abi\n ? {\n [this.config.address]: this.config.abi\n }\n : {}\n const tx = await decodeFuelTransactionWithAbi(call.transaction, abiMap, this.provider)\n\n const ctx = new FuelContractContext(\n this.config.chainId,\n this.getContract(tx),\n this.config.address,\n this.config.name ?? this.config.address,\n call.timestamp ? timestampDate(call.timestamp) : new Date(0),\n tx,\n null\n )\n await handler(tx, ctx)\n return ctx.stopAndGetResult()\n },\n fetchConfig: {\n filters: [],\n ...handlerOptions\n },\n partitionHandler: async (call: Data_FuelTransaction): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const abiMap = this.config.abi\n ? {\n [this.config.address]: this.config.abi\n }\n : {}\n const tx = await decodeFuelTransactionWithAbi(call.transaction, abiMap, this.provider)\n return p(tx)\n }\n return p\n }\n }\n this.txHandlers.push(callHandler)\n return this\n }\n\n // hide onCall for now\n private onCall(\n nameFilter: string | string[],\n handler: (call: FuelCall, ctx: FuelContext) => void | Promise<void>,\n config: FuelFetchConfig = DEFAULT_FUEL_FETCH_CONFIG\n ) {\n const names = new Set(Array.isArray(nameFilter) ? nameFilter : [nameFilter])\n\n if (!this.config.abi) {\n throw new Error('ABI must be provided to use onCall')\n }\n const abi = this.config.abi\n\n const filters: Record<string, FuelCallFilter> = {}\n const abiInterface = new Interface(abi)\n for (const name of names) {\n try {\n const func = abiInterface.functions[name]\n const filter = bn(func.selector, 'hex').toString()\n filters[func.name] = {\n function: filter,\n includeFailed: !!config.includeFailed\n }\n } catch (e) {\n console.error(e)\n }\n }\n\n const callHandler = {\n handlerName: getHandlerName(),\n handler: async (call: Data_FuelTransaction) => {\n try {\n // const contract = new Contract(this.config.address, abi, this.provider)\n const gqlTransaction = call.transaction\n const tx = await decodeFuelTransactionWithAbi(gqlTransaction, { [this.config.address]: abi }, this.provider)\n\n const ctx = new FuelContext(\n this.config.chainId,\n this.config.address,\n this.config.name ?? this.config.address,\n call.timestamp ? timestampDate(call.timestamp) : new Date(0),\n tx,\n null\n )\n for (const op of tx.operations) {\n for (const call of op.calls || []) {\n if (names.has(call.functionName)) {\n const fn = this.getContract(tx)?.functions[call.functionName]\n if (!fn) {\n continue\n }\n const args = Object.values(call.argumentsProvided || {})\n const scope = fn(...args)\n const invocationResult = new FuelCall(scope, tx, false, call.argumentsProvided, tx.logs)\n await handler(invocationResult, ctx)\n }\n }\n }\n\n return ctx.stopAndGetResult()\n } catch (e) {\n console.error(e)\n return create(ProcessResultSchema)\n }\n },\n fetchConfig: {\n filters: Object.values(filters)\n }\n }\n this.txHandlers.push(callHandler)\n return this\n }\n\n public onLog<T>(\n logIdFilter: string | string[],\n handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n handlerOptions?: HandlerOptions<object, FuelLog<T>>,\n handlerName = getHandlerName()\n ) {\n const logIds = new Set(Array.isArray(logIdFilter) ? logIdFilter : [logIdFilter])\n\n const logHandler = {\n handlerName,\n handler: async ({ transaction, receiptIndex, timestamp }: Data_FuelReceipt) => {\n try {\n const tx = await decodeFuelTransaction(transaction, this.provider)\n const index = Number(receiptIndex)\n const receipt = tx.receipts[index]\n const log = decodeLog(receipt, this.config.abi)\n if (log) {\n const ctx = new FuelContractContext(\n this.config.chainId,\n this.getContract(tx),\n this.config.address,\n this.config.name ?? this.config.address,\n timestamp ? timestampDate(timestamp) : new Date(0),\n tx,\n null\n )\n ctx.setLogIndex(index)\n await handler({ receiptIndex: index, ...log }, ctx)\n return ctx.stopAndGetResult()\n } else {\n console.error(`Log with receipt index ${receiptIndex} not found in tx`)\n }\n } catch (e) {\n console.error(e)\n }\n\n return create(ProcessResultSchema)\n },\n receiptConfig: {\n receiptFilter: {\n case: 'log',\n value: {\n logIds: Array.from(logIds)\n }\n }\n },\n partitionHandler: async (data: Data_FuelReceipt): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n try {\n const tx = await decodeFuelTransaction(data.transaction, this.provider)\n const index = Number(data.receiptIndex)\n const receipt = tx.receipts[index]\n const log = decodeLog(receipt, this.config.abi)\n if (log) {\n return p({ receiptIndex: index, ...log })\n }\n } catch (e) {\n console.error(e)\n }\n return undefined\n }\n return p\n }\n } as ReceiptHandler\n this.receiptHandlers.push(logHandler)\n return this\n }\n\n /*\n * handle 'Transfer' and 'TransferOut' receipt for a specific contract id\n */\n public onTransfer(\n filter: ContractTransferFilter,\n handler: (transfer: ReceiptTransfer | ReceiptTransferOut, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n handlerOptions?: HandlerOptions<object, ReceiptTransfer | ReceiptTransferOut>\n ) {\n const { from, to, assetId } = filter\n const h = {\n handlerName: getHandlerName(),\n handler: async ({ transaction, receiptIndex, timestamp }: Data_FuelReceipt) => {\n try {\n const tx = await decodeFuelTransaction(transaction, this.provider)\n const index = Number(receiptIndex)\n const receipt = tx.receipts[index] as ReceiptTransfer | ReceiptTransferOut\n const ctx = new FuelContractContext(\n this.config.chainId,\n this.getContract(tx),\n this.config.address,\n this.config.name ?? this.config.address,\n timestamp ? timestampDate(timestamp) : new Date(0),\n tx,\n null\n )\n ctx.setLogIndex(index)\n await handler(receipt, ctx)\n } catch (e) {\n console.error(e)\n }\n\n return create(ProcessResultSchema)\n },\n receiptConfig: {\n receiptFilter: {\n case: 'transfer',\n value: {\n from,\n to,\n assetId\n }\n }\n },\n partitionHandler: async (data: Data_FuelReceipt): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n try {\n const tx = await decodeFuelTransaction(data.transaction, this.provider)\n const index = Number(data.receiptIndex)\n const receipt = tx.receipts[index] as ReceiptTransfer | ReceiptTransferOut\n return p(receipt)\n } catch (e) {\n console.error(e)\n }\n return undefined\n }\n return p\n }\n } as ReceiptHandler\n this.receiptHandlers.push(h)\n return this\n }\n\n public onInterval(\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n blockInterval: HandleInterval | undefined,\n handlerOptions?: HandlerOptions<object, FuelBlock>,\n handlerName = getHandlerName()\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,\n handler: async function (data: Data_FuelBlock) {\n const header = data.block as any\n if (!header) {\n throw new ConnectError('Block is empty', Code.InvalidArgument)\n }\n\n const block: FuelBlock = {\n id: header.id,\n height: bn(header.height),\n time: header.time,\n header: {\n applicationHash: header.applicationHash,\n daHeight: bn(header.daHeight),\n eventInboxRoot: header.eventInboxRoot,\n messageOutboxRoot: header.messageOutboxRoot,\n prevRoot: header.prevRoot,\n stateTransitionBytecodeVersion: header.stateTransitionBytecodeVersion,\n transactionsCount: header.transactionsCount,\n transactionsRoot: header.transactionsRoot\n }\n }\n const contract = processor.getContract()\n const ctx = new FuelContractContext(\n processor.config.chainId,\n contract,\n processor.config.address,\n processor.config.name ?? processor.config.address,\n data.timestamp ? timestampDate(data.timestamp) : new Date(0),\n null,\n block\n )\n await handler(block, ctx)\n return ctx.stopAndGetResult()\n },\n partitionHandler: async (data: Data_FuelBlock): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const header = data.block as any\n if (!header) return undefined\n const block: FuelBlock = {\n id: header.id,\n height: bn(header.height),\n time: header.time,\n header: {\n applicationHash: header.applicationHash,\n daHeight: bn(header.daHeight),\n eventInboxRoot: header.eventInboxRoot,\n messageOutboxRoot: header.messageOutboxRoot,\n prevRoot: header.prevRoot,\n stateTransitionBytecodeVersion: header.stateTransitionBytecodeVersion,\n transactionsCount: header.transactionsCount,\n transactionsRoot: header.transactionsRoot\n }\n }\n return p(block)\n }\n return p\n }\n })\n return this\n }\n\n public onBlockInterval(\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n blockInterval = 250,\n backfillBlockInterval = 1000,\n handlerOptions?: HandlerOptions<object, FuelBlock>\n ): this {\n return this.onInterval(\n handler,\n undefined,\n create(HandleIntervalSchema, {\n recentInterval: blockInterval,\n backfillInterval: backfillBlockInterval\n }),\n handlerOptions\n )\n }\n\n public onTimeInterval(\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n handlerOptions?: HandlerOptions<object, FuelBlock>\n ): this {\n return this.onInterval(\n handler,\n create(HandleIntervalSchema, {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes\n }),\n undefined,\n handlerOptions\n )\n }\n}\n\nexport type FuelProcessorConfig = {\n address: string\n name?: string\n chainId: FuelNetwork\n startBlock?: bigint\n endBlock?: bigint\n abi: JsonAbi\n}\n\nexport function getOptionsSignature(opts: Omit<FuelProcessorConfig, 'abi'>): string {\n const sig = [opts.address]\n if (opts.chainId) {\n sig.push(opts.chainId)\n }\n if (opts.name) {\n sig.push(opts.name)\n }\n if (opts.startBlock) {\n sig.push(opts.startBlock.toString())\n }\n if (opts.endBlock) {\n sig.push(opts.endBlock.toString())\n }\n return sig.join('_')\n}\n\n// Dedup processor that bind multiple times\nexport function getFuelProcessor(opts: Omit<FuelProcessorConfig, 'abi'>) {\n const sig = getOptionsSignature(opts)\n return FuelProcessorState.INSTANCE.getValue(sig)\n}\n\nexport function addFuelProcessor(opts: Omit<FuelProcessorConfig, 'abi'>, processor: FuelBaseProcessor<any>) {\n const sig = getOptionsSignature(opts)\n\n FuelProcessorState.INSTANCE.getOrSetValue(sig, processor)\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { CallHandler, FuelBaseProcessor, FuelProcessorState } from './types.js'\nimport {\n Data_FuelTransaction,\n FuelAssetHandlerConfig_AssetFilter,\n FuelAssetHandlerConfig_AssetFilterSchema,\n timestampDate\n} from '@sentio/protos'\nimport { create } from '@bufbuild/protobuf'\nimport { FuelNetwork, getProvider } from './network.js'\nimport { FuelContext } from './context.js'\nimport { decodeFuelTransaction } from './transaction.js'\nimport { Provider, InputType, OutputType } from 'fuels'\nimport { getOptionsSignature } from './fuel-processor.js'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nexport class FuelAssetProcessor implements FuelBaseProcessor<FuelAssetProcessorConfig> {\n txHandlers: CallHandler<Data_FuelTransaction>[] = []\n blockHandlers = []\n private provider: Provider\n\n static bind(config: FuelAssetProcessorConfig): FuelAssetProcessor {\n const processor = new FuelAssetProcessor(config)\n const sig =\n 'assets_' +\n getOptionsSignature({\n ...config,\n address: '*'\n })\n FuelProcessorState.INSTANCE.getOrSetValue(sig, processor)\n return processor\n }\n\n constructor(readonly config: FuelAssetProcessorConfig) {\n return proxyProcessor(this)\n }\n\n async configure(): Promise<void> {\n this.provider = await getProvider(this.config.chainId)\n }\n\n onTransfer(filter: TransferFilter, handler: (transfers: FuelTransfer, ctx: FuelContext) => void | Promise<void>) {\n const filters: FuelAssetHandlerConfig_AssetFilter[] = []\n\n const assetIds = arrayify(filter.assetId)\n const froms = arrayify(filter.from)\n const tos = arrayify(filter.to)\n\n for (const assetId of assetIds) {\n for (const from of froms) {\n for (const to of tos) {\n filters.push(\n create(FuelAssetHandlerConfig_AssetFilterSchema, {\n assetId: assetId,\n fromAddress: from,\n toAddress: to\n })\n )\n }\n }\n }\n\n const callHandler = {\n handlerName: getHandlerName(),\n handler: async (call: Data_FuelTransaction) => {\n const gqlTransaction = call.transaction\n const tx = await decodeFuelTransaction(gqlTransaction, this.provider)\n\n const transfer: FuelTransfer = {\n from: [],\n to: []\n }\n let assetId = ''\n for (const input of tx.transaction.inputs || []) {\n if (input.type == InputType.Coin) {\n transfer.from.push({\n address: input.owner,\n assetId: input.assetId,\n amount: BigInt(input.amount.toString(10))\n })\n assetId = input.assetId\n }\n }\n\n for (const output of tx.transaction.outputs || []) {\n switch (output.type) {\n case OutputType.Change:\n case OutputType.Coin:\n case OutputType.Variable:\n const value = output.amount.toString(10)\n transfer.to.push({\n address: output.to,\n amount: BigInt(value),\n assetId: output.assetId\n })\n if (assetId == '') {\n assetId = output.assetId\n }\n }\n }\n\n const ctx = new FuelContext(\n this.config.chainId,\n assetId,\n this.config.name ?? '',\n call.timestamp ? timestampDate(call.timestamp) : new Date(0),\n tx,\n null\n )\n await handler(transfer, ctx)\n return ctx.stopAndGetResult()\n },\n assetConfig: {\n filters\n }\n }\n this.txHandlers.push(callHandler)\n return this\n }\n}\n\nexport type FuelAssetProcessorConfig = {\n name?: string\n chainId: FuelNetwork\n startBlock?: bigint\n endBlock?: bigint\n}\n\nexport type TransferFilter = {\n // The account address that is sending the asset\n from?: string | string[]\n // The account address that is receiving the asset\n to?: string | string[]\n // The asset id of the asset being transferred\n assetId?: string | string[]\n}\n\nexport type FuelTransfer = {\n from: {\n assetId: string\n address: string\n amount: bigint\n }[]\n to: {\n address: string\n amount: bigint\n assetId: string\n }[]\n}\n\nfunction arrayify(value?: string | string[]): Array<string | undefined> {\n if (value) {\n if (Array.isArray(value)) {\n return value.length > 0 ? value : [undefined]\n }\n return [value]\n }\n return [undefined]\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { CallHandler, FuelBaseProcessor, FuelBlock, FuelProcessorState, FuelTransaction } from './types.js'\nimport { Data_FuelTransaction, timestampDate } from '@sentio/protos'\nimport { Provider, bn } from 'fuels'\nimport { getProvider } from './network.js'\nimport { decodeFuelTransaction, DEFAULT_FUEL_FETCH_CONFIG, FuelFetchConfig } from './transaction.js'\nimport { FuelContext } from './context.js'\nimport { FuelProcessorConfig, getOptionsSignature } from './fuel-processor.js'\nimport { mergeProcessResults } from '@sentio/runtime'\nimport { ALL_ADDRESS } from '../core/index.js'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\ntype GlobalFuelProcessorConfig = Omit<FuelProcessorConfig, 'address' | 'abi'>\n\nexport class FuelGlobalProcessor implements FuelBaseProcessor<GlobalFuelProcessorConfig> {\n txHandlers: CallHandler<Data_FuelTransaction>[] = []\n blockHandlers = []\n\n private provider: Provider\n\n static bind(config: GlobalFuelProcessorConfig): FuelGlobalProcessor {\n const processor = new FuelGlobalProcessor(config)\n const sig =\n 'global_' +\n getOptionsSignature({\n ...config,\n address: ALL_ADDRESS\n })\n FuelProcessorState.INSTANCE.getOrSetValue(sig, processor)\n return processor\n }\n\n constructor(readonly config: GlobalFuelProcessorConfig) {\n return proxyProcessor(this)\n }\n\n async configure() {\n this.provider = await getProvider(this.config.chainId)\n }\n\n public onTransaction(\n handler: (transaction: FuelTransaction, ctx: FuelContext) => void | Promise<void>,\n config: FuelFetchConfig = DEFAULT_FUEL_FETCH_CONFIG\n ) {\n const callHandler = {\n handlerName: getHandlerName(),\n handler: async (call: Data_FuelTransaction) => {\n let tx: FuelTransaction\n try {\n tx = await decodeFuelTransaction(call.transaction, this.provider)\n } catch (e) {\n console.error('error decoding transaction', e)\n return mergeProcessResults([])\n }\n const header = (call.transaction as any)?.status.block.header\n const ctx = new FuelContext(\n this.config.chainId,\n ALL_ADDRESS,\n this.config.name ?? '*',\n call.timestamp ? timestampDate(call.timestamp) : new Date(0),\n tx,\n header\n ? ({\n header: {\n daHeight: bn(header.daHeight)\n }\n } as FuelBlock)\n : null\n )\n await handler(tx, ctx)\n return ctx.stopAndGetResult()\n },\n fetchConfig: {\n filters: [],\n ...config\n }\n }\n this.txHandlers.push(callHandler)\n return this\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { FuelContext, FuelContractContext } from './context.js'\nimport { HandleInterval, HandleIntervalSchema, TemplateInstance, TemplateInstanceSchema } from '@sentio/protos'\nimport { create } from '@bufbuild/protobuf'\nimport { PromiseOrVoid } from '../core/promises.js'\nimport { ListStateStorage, processMetrics } from '@sentio/runtime'\nimport { Contract } from 'fuels'\nimport { FuelBlock, FuelLog, FuelTransaction } from './types.js'\nimport { DEFAULT_FUEL_FETCH_CONFIG, FuelFetchConfig } from './transaction.js'\nimport { FuelProcessor, FuelProcessorConfig, getOptionsSignature } from './fuel-processor.js'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\nimport { HandlerOptions } from '../core/index.js'\n\nexport class FuelProcessorTemplateProcessorState extends ListStateStorage<FuelBaseProcessorTemplate<Contract>> {\n static INSTANCE = new FuelProcessorTemplateProcessorState()\n}\n\nexport abstract class FuelBaseProcessorTemplate<TContract extends Contract> {\n id: number\n instances = new Set<string>()\n blockHandlers: {\n handlerName: string\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid\n blockInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handlerOptions?: HandlerOptions<object, FuelBlock>\n // fetchConfig?: FuelFetchConfig\n }[] = []\n\n logHandlers: {\n logIdFilter: string | string[]\n handlerName: string\n handler: (logs: FuelLog<any>, ctx: FuelContractContext<TContract>) => PromiseOrVoid\n handlerOptions?: HandlerOptions<object, FuelLog<any>>\n // fetchConfig?: FuelFetchConfig\n }[] = []\n\n transactionHandlers: {\n handlerName: string\n handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid\n handlerOptions?: HandlerOptions<FuelFetchConfig, FuelTransaction>\n }[] = []\n\n constructor() {\n this.id = FuelProcessorTemplateProcessorState.INSTANCE.getValues().length\n // Stored type-erased as the base instantiation; the concrete type parameter only appears in\n // handler parameter positions, which `strictFunctionTypes` checks contravariantly.\n FuelProcessorTemplateProcessorState.INSTANCE.addValue(this as unknown as FuelBaseProcessorTemplate<Contract>)\n return proxyProcessor(this)\n }\n\n /**\n * Bind template using {@param options}, using {@param ctx}'s network value if not provided in the option\n * @param options\n * @param ctx\n */\n public bind(options: Omit<Omit<FuelProcessorConfig, 'chainId'>, 'abi'>, ctx: FuelContext): void {\n const instance: TemplateInstance = create(TemplateInstanceSchema, {\n templateId: this.id,\n contract: {\n address: options.address,\n name: options.name || '',\n chainId: ctx.chainId,\n abi: ''\n },\n startBlock: BigInt(options.startBlock || 0),\n endBlock: BigInt(options.endBlock || 0),\n baseLabels: {}\n // baseLabels: options.baseLabels\n })\n\n ctx.sendTemplateInstance(instance)\n\n ctx.update({\n states: {\n configUpdated: true\n }\n })\n\n processMetrics.processor_template_instance_count.add(1, {\n chain_id: ctx.chainId,\n template: this.constructor.name\n })\n }\n\n public startInstance(options: Omit<Omit<FuelProcessorConfig, 'chainId'>, 'abi'>, ctx: FuelContext): void {\n const sig = getOptionsSignature({\n address: options.address,\n chainId: ctx.chainId\n })\n if (this.instances.has(sig)) {\n console.debug(`Same address can be bind to one template only once, ignore duplicate bind: ${sig}`)\n return\n }\n this.instances.add(sig)\n\n const processor = this.bindInternal({ ...options, chainId: ctx.chainId })\n\n for (const eh of this.logHandlers) {\n processor.onLog(eh.logIdFilter, eh.handler, eh.handlerOptions, eh.handlerName)\n }\n for (const bh of this.blockHandlers) {\n processor.onInterval(bh.handler, bh.timeIntervalInMinutes, bh.blockInterval, bh.handlerOptions, bh.handlerName)\n }\n for (const th of this.transactionHandlers) {\n processor.onTransaction(th.handler, th.handlerOptions, th.handlerName)\n }\n }\n\n protected onLog<T>(\n logIdFilter: string | string[],\n handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n handlerOptions: HandlerOptions<object, FuelLog<T>> = {}\n // fetchConfig?: Partial<FuelFetchConfig>\n ) {\n this.logHandlers.push({\n logIdFilter,\n handlerName: getHandlerName(),\n handler,\n handlerOptions\n // fetchConfig: { ...fetchConfig}\n })\n return this\n }\n\n public onBlockInterval(\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n blockInterval = 1000,\n backfillBlockInterval = 4000\n // fetchConfig?: Partial<FuelFetchConfig>\n ) {\n return this.onInterval(\n handler,\n undefined,\n create(HandleIntervalSchema, {\n recentInterval: blockInterval,\n backfillInterval: backfillBlockInterval\n })\n // fetchConfig\n )\n }\n\n public onTimeInterval(\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n timeIntervalInMinutes = 60,\n backfillBlockInterval = 240\n // fetchConfig?: Partial<FuelFetchConfig>\n ) {\n return this.onInterval(\n handler,\n create(HandleIntervalSchema, { recentInterval: timeIntervalInMinutes, backfillInterval: backfillBlockInterval }),\n undefined\n // fetchConfig\n )\n }\n\n public onInterval(\n handler: (block: FuelBlock, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n blockInterval: HandleInterval | undefined,\n handlerOptions: HandlerOptions<object, FuelBlock> = {}\n // fetchConfig?: FuelFetchConfig\n ) {\n this.blockHandlers.push({\n handlerName: getHandlerName(),\n handler,\n timeIntervalInMinutes: timeInterval,\n blockInterval,\n handlerOptions\n // fetchConfig: { ...fetchConfig }\n })\n return this\n }\n\n protected onTransaction(\n handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => PromiseOrVoid,\n handlerOptions: HandlerOptions<FuelFetchConfig, FuelTransaction> = DEFAULT_FUEL_FETCH_CONFIG\n ) {\n this.transactionHandlers.push({\n handlerName: getHandlerName(),\n handler,\n handlerOptions\n })\n return this\n }\n\n protected abstract bindInternal(options: Omit<FuelProcessorConfig, 'abi'>): FuelProcessor<TContract>\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { FuelProcessor, FuelProcessorConfig } from './fuel-processor.js'\nimport { Contract, JsonAbi } from 'fuels'\n// import { FuelCall } from './context.js'\nimport { FuelChainId } from '@sentio/chain'\nimport { FuelLog } from './types.js'\nimport { proxyProcessor } from '../utils/metrics.js'\n\nexport abstract class FuelAbstractProcessor<TContract extends Contract> extends FuelProcessor<TContract> {\n protected constructor(abi: JsonAbi, config?: Omit<FuelProcessorConfig, 'abi'>) {\n if (!config) {\n config = {\n chainId: FuelChainId.FUEL_MAINNET,\n address: '*'\n }\n }\n super({\n ...config,\n abi\n })\n return proxyProcessor(this)\n }\n}\n\nexport class TypedCall<T extends Array<any>, R> {\n args: T\n returnValue: R\n argsObject?: Record<string, any>\n logs?: FuelLog<unknown>[]\n\n // constructor(call: FuelCall) {\n // this.args = call.args as T\n // this.returnValue = call.value as R\n // this.argsObject = call.args\n // this.logs = call.logs\n // }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","export { FuelPlugin } from './fuel-plugin.js'\nexport * from './context.js'\nexport * from './fuel-processor.js'\nexport * from './fuel-processor-template.js'\nexport * from './network.js'\nexport * from './transaction.js'\nexport * from './base-processor.js'\nexport * from './asset-processor.js'\nexport * from './types.js'\nexport * from './global-processor.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":"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","names":["mergeProcessResults","call","arrayify","mergeProcessResults","FuelChainId","FuelChainId"]}
@@ -2,7 +2,7 @@ import { createRequire as createRequireSdkShim } from 'module'; const require =
2
2
  import {
3
3
  Transaction,
4
4
  loadAllTypes
5
- } from "./chunk-64VJOTAV.js";
5
+ } from "./chunk-E7PKEV3B.js";
6
6
  import {
7
7
  SuiBaseProcessor,
8
8
  ZERO_ADDRESS2 as ZERO_ADDRESS,
@@ -19,14 +19,14 @@ import {
19
19
  transactionArgumentOrPureU642 as transactionArgumentOrPureU64,
20
20
  transactionArgumentOrPureU82 as transactionArgumentOrPureU8,
21
21
  transactionArgumentOrVec2 as transactionArgumentOrVec
22
- } from "./chunk-IQNHEJLA.js";
22
+ } from "./chunk-7UJXQFW2.js";
23
23
  import {
24
24
  SuiNetwork
25
- } from "./chunk-TWK53OHY.js";
25
+ } from "./chunk-ABYLG2DR.js";
26
26
  import {
27
27
  ANY_TYPE,
28
28
  TypeDescriptor
29
- } from "./chunk-Y64ROJ5H.js";
29
+ } from "./chunk-RULTARSI.js";
30
30
  import {
31
31
  __export,
32
32
  __name
@@ -24057,4 +24057,4 @@ export {
24057
24057
  loadAllTypes2 as loadAllTypes,
24058
24058
  x2_exports
24059
24059
  };
24060
- //# sourceMappingURL=chunk-CMAMXSG5.js.map
24060
+ //# sourceMappingURL=chunk-PHOMFD5C.js.map
@@ -2,7 +2,7 @@ import { createRequire as createRequireSdkShim } from 'module'; const require =
2
2
  import {
3
3
  Code,
4
4
  ConnectError
5
- } from "./chunk-DRM2VJ3T.js";
5
+ } from "./chunk-DOEX4Q4T.js";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-R7PMHHKJ.js";
@@ -52,4 +52,4 @@ import("node:process").then((p) => p.stdout.write(""));
52
52
  export {
53
53
  HandlerRegister
54
54
  };
55
- //# sourceMappingURL=chunk-5TTNJF6G.js.map
55
+ //# sourceMappingURL=chunk-RME7OHSQ.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
2
  import {
3
3
  BaseContext
4
- } from "./chunk-DRM2VJ3T.js";
4
+ } from "./chunk-DOEX4Q4T.js";
5
5
  import {
6
6
  __name
7
7
  } from "./chunk-R7PMHHKJ.js";
@@ -952,4 +952,4 @@ export {
952
952
  MoveContext,
953
953
  MoveAccountContext
954
954
  };
955
- //# sourceMappingURL=chunk-Y64ROJ5H.js.map
955
+ //# sourceMappingURL=chunk-RULTARSI.js.map
@@ -5,11 +5,11 @@ import {
5
5
  defaultMoveCoder,
6
6
  defaultMoveCoderForClient,
7
7
  loadAllTypes
8
- } from "./chunk-ODKKD6SE.js";
8
+ } from "./chunk-YPX6BLLX.js";
9
9
  import {
10
10
  ANY_TYPE,
11
11
  TypeDescriptor
12
- } from "./chunk-Y64ROJ5H.js";
12
+ } from "./chunk-RULTARSI.js";
13
13
  import {
14
14
  __export,
15
15
  __name
@@ -1794,4 +1794,4 @@ export {
1794
1794
  loadAllTypes2 as loadAllTypes,
1795
1795
  x3_exports
1796
1796
  };
1797
- //# sourceMappingURL=chunk-ZXKOL2ZE.js.map
1797
+ //# sourceMappingURL=chunk-SQMYHP2A.js.map
@@ -5,10 +5,10 @@ import {
5
5
  defaultMoveCoder,
6
6
  defaultMoveCoderForClient,
7
7
  loadAllTypes
8
- } from "./chunk-ODKKD6SE.js";
8
+ } from "./chunk-YPX6BLLX.js";
9
9
  import {
10
10
  TypeDescriptor
11
- } from "./chunk-Y64ROJ5H.js";
11
+ } from "./chunk-RULTARSI.js";
12
12
  import {
13
13
  __export,
14
14
  __name
@@ -1402,4 +1402,4 @@ export {
1402
1402
  loadAllTypes2 as loadAllTypes,
1403
1403
  x4_exports
1404
1404
  };
1405
- //# sourceMappingURL=chunk-ICMARO4X.js.map
1405
+ //# sourceMappingURL=chunk-WZUPXZRK.js.map
@@ -154,10 +154,10 @@ import {
154
154
  } from "./chunk-742S42NO.js";
155
155
  import {
156
156
  getPriceByType
157
- } from "./chunk-X6UU7BKN.js";
157
+ } from "./chunk-ACDVDKUV.js";
158
158
  import {
159
159
  HandlerRegister
160
- } from "./chunk-5TTNJF6G.js";
160
+ } from "./chunk-RME7OHSQ.js";
161
161
  import {
162
162
  ANY_TYPE,
163
163
  AbstractMoveCoder,
@@ -171,7 +171,7 @@ import {
171
171
  matchType,
172
172
  moduleQname,
173
173
  parseMoveType
174
- } from "./chunk-Y64ROJ5H.js";
174
+ } from "./chunk-RULTARSI.js";
175
175
  import {
176
176
  import_index,
177
177
  init_eventemitter3
@@ -201,7 +201,7 @@ import {
201
201
  TemplateInstanceSchema,
202
202
  create,
203
203
  normalizeLabels
204
- } from "./chunk-DRM2VJ3T.js";
204
+ } from "./chunk-DOEX4Q4T.js";
205
205
  import {
206
206
  __commonJS,
207
207
  __export,
@@ -47530,4 +47530,4 @@ cacheable-request/dist/index.js:
47530
47530
  (* c8 ignore next -- @preserve *)
47531
47531
  (* v8 ignore next -- @preserve *)
47532
47532
  */
47533
- //# sourceMappingURL=chunk-ODKKD6SE.js.map
47533
+ //# sourceMappingURL=chunk-YPX6BLLX.js.map
@@ -1,10 +1,10 @@
1
1
  import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
2
  import {
3
3
  loadAllTypes as loadAllTypes2
4
- } from "./chunk-QWAHDWYI.js";
4
+ } from "./chunk-DTKXJKBG.js";
5
5
  import {
6
6
  loadAllTypes
7
- } from "./chunk-73XDTOXQ.js";
7
+ } from "./chunk-ZF36Q7ES.js";
8
8
  import {
9
9
  IotaBaseProcessor,
10
10
  ZERO_ADDRESS,
@@ -17,14 +17,14 @@ import {
17
17
  transactionArgumentOrPureU64,
18
18
  transactionArgumentOrPureU8,
19
19
  transactionArgumentOrVec
20
- } from "./chunk-IQNHEJLA.js";
20
+ } from "./chunk-7UJXQFW2.js";
21
21
  import {
22
22
  IotaNetwork,
23
23
  Transaction
24
- } from "./chunk-ZB3ENFMP.js";
24
+ } from "./chunk-H7UT4BTD.js";
25
25
  import {
26
26
  TypeDescriptor
27
- } from "./chunk-Y64ROJ5H.js";
27
+ } from "./chunk-RULTARSI.js";
28
28
  import {
29
29
  __export,
30
30
  __name
@@ -7647,4 +7647,4 @@ export {
7647
7647
  loadAllTypes3 as loadAllTypes,
7648
7648
  x3_exports
7649
7649
  };
7650
- //# sourceMappingURL=chunk-KO6HMGBS.js.map
7650
+ //# sourceMappingURL=chunk-ZB32JU5U.js.map
@@ -13,15 +13,15 @@ import {
13
13
  transactionArgumentOrPureU64,
14
14
  transactionArgumentOrPureU8,
15
15
  transactionArgumentOrVec
16
- } from "./chunk-IQNHEJLA.js";
16
+ } from "./chunk-7UJXQFW2.js";
17
17
  import {
18
18
  IotaNetwork,
19
19
  Transaction
20
- } from "./chunk-ZB3ENFMP.js";
20
+ } from "./chunk-H7UT4BTD.js";
21
21
  import {
22
22
  ANY_TYPE,
23
23
  TypeDescriptor
24
- } from "./chunk-Y64ROJ5H.js";
24
+ } from "./chunk-RULTARSI.js";
25
25
  import {
26
26
  __export,
27
27
  __name
@@ -4891,4 +4891,4 @@ export {
4891
4891
  loadAllTypes,
4892
4892
  x1_exports
4893
4893
  };
4894
- //# sourceMappingURL=chunk-73XDTOXQ.js.map
4894
+ //# sourceMappingURL=chunk-ZF36Q7ES.js.map
@@ -5,7 +5,7 @@ import {
5
5
  ConnectError,
6
6
  EthCallParamSchema,
7
7
  create
8
- } from "./chunk-DRM2VJ3T.js";
8
+ } from "./chunk-DOEX4Q4T.js";
9
9
  import {
10
10
  __name
11
11
  } from "./chunk-R7PMHHKJ.js";
@@ -8360,4 +8360,4 @@ export {
8360
8360
  @noble/hashes/esm/utils.js:
8361
8361
  (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
8362
8362
  */
8363
- //# sourceMappingURL=chunk-GEI3YMIY.js.map
8363
+ //# sourceMappingURL=chunk-ZFAUPMEN.js.map
package/lib/core/index.js CHANGED
@@ -22,7 +22,7 @@ import {
22
22
  scaleDown,
23
23
  toBigInteger,
24
24
  toMetricValue
25
- } from "../chunk-DRM2VJ3T.js";
25
+ } from "../chunk-DOEX4Q4T.js";
26
26
  import {
27
27
  BigDecimal
28
28
  } from "../chunk-J5UEW4B7.js";
@@ -5,8 +5,8 @@ import {
5
5
  decode_worker_default,
6
6
  parseLog,
7
7
  parseLogInline
8
- } from "../../chunk-GEI3YMIY.js";
9
- import "../../chunk-DRM2VJ3T.js";
8
+ } from "../../chunk-ZFAUPMEN.js";
9
+ import "../../chunk-DOEX4Q4T.js";
10
10
  import "../../chunk-J5UEW4B7.js";
11
11
  import "../../chunk-R7PMHHKJ.js";
12
12
  export {
@@ -11,11 +11,11 @@ import {
11
11
  mockNewRoundLog,
12
12
  mockOwnershipTransferRequestedLog,
13
13
  mockOwnershipTransferredLog2 as mockOwnershipTransferredLog
14
- } from "../../chunk-X6UU7BKN.js";
15
- import "../../chunk-GEI3YMIY.js";
16
- import "../../chunk-5TTNJF6G.js";
14
+ } from "../../chunk-ACDVDKUV.js";
15
+ import "../../chunk-ZFAUPMEN.js";
16
+ import "../../chunk-RME7OHSQ.js";
17
17
  import "../../chunk-43HP4DQZ.js";
18
- import "../../chunk-DRM2VJ3T.js";
18
+ import "../../chunk-DOEX4Q4T.js";
19
19
  import "../../chunk-J5UEW4B7.js";
20
20
  import "../../chunk-R7PMHHKJ.js";
21
21
  export {