@sentio/sdk-bundle 2.61.0-rc.2 → 2.61.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/aptos/builtin/0x1.js +5 -7
- package/lib/aptos/builtin/0x3.js +6 -8
- package/lib/aptos/builtin/0x4.js +6 -8
- package/lib/aptos/builtin/index.js +7 -9
- package/lib/aptos/builtin/index.js.map +1 -1
- package/lib/aptos/ext/index.js +5 -7
- package/lib/aptos/ext/index.js.map +1 -1
- package/lib/aptos/index.js +5 -7
- package/lib/btc/index.js +2 -3
- package/lib/btc/index.js.map +1 -1
- package/lib/{chunk-OD6FL4VS.js → chunk-3U72IHGI.js} +3 -5
- package/lib/{chunk-OD6FL4VS.js.map → chunk-3U72IHGI.js.map} +1 -1
- package/lib/{chunk-4BUIMDJ2.js → chunk-63C2SM23.js} +3 -5
- package/lib/{chunk-4BUIMDJ2.js.map → chunk-63C2SM23.js.map} +1 -1
- package/lib/{chunk-43HP4DQZ.js → chunk-B4NQDXHJ.js} +51 -3
- package/lib/chunk-B4NQDXHJ.js.map +1 -0
- package/lib/{chunk-SA6EVEF3.js → chunk-FSFHO32Q.js} +8 -12
- package/lib/{chunk-SA6EVEF3.js.map → chunk-FSFHO32Q.js.map} +1 -1
- package/lib/{chunk-DHPXVIOI.js → chunk-GXWFPPVN.js} +3 -5
- package/lib/{chunk-DHPXVIOI.js.map → chunk-GXWFPPVN.js.map} +1 -1
- package/lib/{chunk-742S42NO.js → chunk-HFODIGHI.js} +449 -1
- package/lib/chunk-HFODIGHI.js.map +1 -0
- package/lib/{chunk-63RPKHNV.js → chunk-JM77GOBI.js} +5 -5
- package/lib/{chunk-GNJ4FJ6M.js → chunk-NEDO74L4.js} +2 -2
- package/lib/{chunk-AIRBHETL.js → chunk-NF66PTSR.js} +4 -4
- package/lib/{chunk-Y4VWRXPJ.js → chunk-O2FX3ST4.js} +2 -2
- package/lib/{chunk-5LEP7IFP.js → chunk-OUQN675E.js} +16 -16
- package/lib/{chunk-2UBTY7RU.js → chunk-P4MCMQEQ.js} +2 -2
- package/lib/{chunk-LP3F7TLM.js → chunk-PSLT5TLU.js} +554 -3
- package/lib/chunk-PSLT5TLU.js.map +1 -0
- package/lib/{chunk-C33DZMWZ.js → chunk-RNKAUU7M.js} +3 -3
- package/lib/{chunk-KORR4KWH.js → chunk-RQEJ6VYV.js} +1684 -267
- package/lib/chunk-RQEJ6VYV.js.map +1 -0
- package/lib/{chunk-DNXKWX3C.js → chunk-TBCNZKOI.js} +15 -15
- package/lib/{chunk-23ATGE5K.js → chunk-V7GMUFEU.js} +11 -11
- package/lib/{chunk-GQ543QK7.js → chunk-VOZ7XW36.js} +2 -2
- package/lib/{chunk-XBLI6KNQ.js → chunk-W5VWFQZQ.js} +18 -18
- package/lib/{chunk-6RTCDLBK.js → chunk-XLNIFS5I.js} +2 -2
- package/lib/eth/builtin/eacaggregatorproxy.js +2 -3
- package/lib/eth/builtin/erc1155.js +3 -4
- package/lib/eth/builtin/erc20.js +2 -3
- package/lib/eth/builtin/erc721.js +2 -3
- package/lib/eth/builtin/index.js +4 -5
- package/lib/eth/builtin/index.js.map +1 -1
- package/lib/eth/builtin/weth9.js +3 -4
- package/lib/eth/index.js +2 -3
- package/lib/fuel/index.js +2 -3
- package/lib/iota/builtin/0x1.js +11 -6
- package/lib/iota/builtin/0x2.js +12 -7
- package/lib/iota/builtin/0x3.js +13 -8
- package/lib/iota/builtin/index.js +13 -8
- package/lib/iota/builtin/index.js.map +1 -1
- package/lib/iota/ext/index.js +5 -8
- package/lib/iota/ext/index.js.map +1 -1
- package/lib/iota/index.js +10 -5
- package/lib/stark/index.js +2 -4
- package/lib/stark/index.js.map +1 -1
- package/lib/sui/builtin/0x1.js +9 -13
- package/lib/sui/builtin/0x2.js +10 -14
- package/lib/sui/builtin/0x3.js +11 -15
- package/lib/sui/builtin/index.js +11 -15
- package/lib/sui/builtin/index.js.map +1 -1
- package/lib/sui/ext/index.js +5 -7
- package/lib/sui/ext/index.js.map +1 -1
- package/lib/sui/index.js +10 -14
- package/lib/testing/index.js +18 -23
- package/lib/testing/index.js.map +1 -1
- package/lib/utils/index.js +2 -3
- package/package.json +2 -2
- package/lib/chunk-43HP4DQZ.js.map +0 -1
- package/lib/chunk-742S42NO.js.map +0 -1
- package/lib/chunk-KORR4KWH.js.map +0 -1
- package/lib/chunk-LP3F7TLM.js.map +0 -1
- package/lib/chunk-OZTZ5YWM.js +0 -456
- package/lib/chunk-OZTZ5YWM.js.map +0 -1
- package/lib/chunk-P7O6NN6M.js +0 -562
- package/lib/chunk-P7O6NN6M.js.map +0 -1
- package/lib/chunk-XEXUSO2Q.js +0 -1469
- package/lib/chunk-XEXUSO2Q.js.map +0 -1
- package/lib/chunk-Z2CE3JTO.js +0 -56
- package/lib/chunk-Z2CE3JTO.js.map +0 -1
- /package/lib/{chunk-63RPKHNV.js.map → chunk-JM77GOBI.js.map} +0 -0
- /package/lib/{chunk-GNJ4FJ6M.js.map → chunk-NEDO74L4.js.map} +0 -0
- /package/lib/{chunk-AIRBHETL.js.map → chunk-NF66PTSR.js.map} +0 -0
- /package/lib/{chunk-Y4VWRXPJ.js.map → chunk-O2FX3ST4.js.map} +0 -0
- /package/lib/{chunk-5LEP7IFP.js.map → chunk-OUQN675E.js.map} +0 -0
- /package/lib/{chunk-2UBTY7RU.js.map → chunk-P4MCMQEQ.js.map} +0 -0
- /package/lib/{chunk-C33DZMWZ.js.map → chunk-RNKAUU7M.js.map} +0 -0
- /package/lib/{chunk-DNXKWX3C.js.map → chunk-TBCNZKOI.js.map} +0 -0
- /package/lib/{chunk-23ATGE5K.js.map → chunk-V7GMUFEU.js.map} +0 -0
- /package/lib/{chunk-GQ543QK7.js.map → chunk-VOZ7XW36.js.map} +0 -0
- /package/lib/{chunk-XBLI6KNQ.js.map → chunk-W5VWFQZQ.js.map} +0 -0
- /package/lib/{chunk-6RTCDLBK.js.map → chunk-XLNIFS5I.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/iota/iota-processor.ts","../../../node_modules/.pnpm/@typemove+iota@1.11.0_typescript@5.5.2/node_modules/@typemove/iota/src/models.ts","../../../node_modules/.pnpm/@typemove+iota@1.11.0_typescript@5.5.2/node_modules/@typemove/iota/src/transaction.ts","../../../node_modules/.pnpm/@typemove+iota@1.11.0_typescript@5.5.2/node_modules/@typemove/iota/src/to-internal.ts","../../../node_modules/.pnpm/@typemove+iota@1.11.0_typescript@5.5.2/node_modules/@typemove/iota/src/sui-chain-adapter.ts","../../../node_modules/.pnpm/@typemove+iota@1.11.0_typescript@5.5.2/node_modules/@typemove/iota/src/move-coder.ts","../src/iota/move-coder.ts","../src/iota/context.ts","../src/iota/utils.ts","../src/iota/iota-object-processor.ts","../src/iota/iota-object-processor-template.ts","../src/iota/models.ts","../src/iota/iota-plugin.ts","../src/iota/index.ts"],"sourcesContent":["import { Data_SuiCall, Data_SuiEvent, Data_SuiObjectChange, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { IotaNetwork } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { IotaContext, IotaObjectChangeContext } from './context.js'\nimport {\n MoveCallIotaTransaction,\n IotaEvent,\n IotaTransactionBlockResponse,\n IotaObjectChange\n} from '@iota/iota-sdk/client'\nimport {\n accountAddressString,\n CallHandler,\n EventFilter,\n EventHandler,\n FunctionNameAndCallFilter,\n ObjectChangeHandler,\n SPLITTER,\n TransactionFilter\n} from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\nimport { defaultMoveCoder, MoveCoder } from './index.js'\nimport { ALL_ADDRESS, Labels, PromiseOrVoid } from '../core/index.js'\nimport { Required } from 'utility-types'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\nimport { HandlerOptions } from './models.js'\n\nexport const DEFAULT_FETCH_CONFIG: MoveFetchConfig = {\n resourceChanges: false,\n allEvents: true,\n inputs: true\n}\n\nexport type IndexConfigure = Required<IotaBindOptions, 'startCheckpoint' | 'network'>\n\nexport function configure(options: IotaBindOptions): IndexConfigure {\n return {\n startCheckpoint: options.startCheckpoint || 0n,\n endCheckpoint: options.endCheckpoint,\n address: options.address === ALL_ADDRESS ? ALL_ADDRESS : accountAddressString(options.address),\n network: options.network || IotaNetwork.MAIN_NET,\n baseLabels: options.baseLabels\n }\n}\n\nexport interface IotaBindOptions {\n address: string\n network?: IotaNetwork\n startCheckpoint?: bigint\n endCheckpoint?: bigint\n baseLabels?: Labels\n}\n\nexport class IotaProcessorState extends ListStateStorage<IotaBaseProcessor> {\n static INSTANCE = new IotaProcessorState()\n}\n\nexport class IotaBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n objectChangeHandlers: ObjectChangeHandler<Data_SuiObjectChange>[] = []\n\n coder: MoveCoder\n\n constructor(name: string, options: IotaBindOptions) {\n this.moduleName = name\n this.config = configure(options)\n IotaProcessorState.INSTANCE.addValue(this)\n this.coder = defaultMoveCoder(this.config.network)\n\n return proxyProcessor(this)\n }\n\n getChainId(): string {\n return this.config.network\n }\n\n protected onMoveEvent(\n handler: (event: IotaEvent, ctx: IotaContext) => PromiseOrVoid,\n filter: EventFilter | EventFilter[],\n handlerOptions?: HandlerOptions<MoveFetchConfig, IotaEvent>\n ): IotaBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handlerName: getHandlerName(),\n handler: async function (data) {\n if (!data.rawTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = JSON.parse(data.rawTransaction) as IotaTransactionBlockResponse\n if (txn.events == null) {\n txn.events = []\n }\n\n const evt = JSON.parse(data.rawEvent) as IotaEvent\n const idx = Number(evt.id.eventSeq) || 0\n\n const ctx = new IotaContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn,\n idx,\n processor.config.baseLabels\n )\n\n const decoded = await processor.coder.decodeEvent<any>(evt)\n await handler(decoded || evt, ctx)\n\n return ctx.stopAndGetResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n partitionHandler: async (data: Data_SuiEvent): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const evt = JSON.parse(data.rawEvent) as IotaEvent\n const decoded = await processor.coder.decodeEvent<any>(evt)\n return p(decoded || evt)\n }\n return p\n }\n })\n return this\n }\n\n protected onEntryFunctionCall(\n handler: (call: MoveCallIotaTransaction, ctx: IotaContext) => PromiseOrVoid,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n handlerOptions?: HandlerOptions<MoveFetchConfig, MoveCallIotaTransaction>\n ): IotaBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const processor = this\n const allFunctionType = new Set(_filters.map((f) => f.function))\n\n this.callHandlers.push({\n handlerName: getHandlerName(),\n handler: async function (data) {\n if (!data.rawTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = JSON.parse(data.rawTransaction) as IotaTransactionBlockResponse\n\n const ctx = new IotaContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx,\n 0,\n processor.config.baseLabels\n )\n if (tx) {\n const calls: MoveCallIotaTransaction[] = getMoveCalls(tx)\n const txKind = tx.transaction?.data?.transaction\n if (!txKind) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected getTransactionKind get empty')\n }\n\n // getProgrammableTransaction(txKind)\n const programmableTx = txKind.kind === 'ProgrammableTransaction' ? txKind : undefined\n\n // TODO potential pass index\n for (const call of calls) {\n const functionType = [call.module, call.function].join(SPLITTER)\n if (!allFunctionType.has(functionType)) {\n continue\n }\n\n // TODO maybe do in parallel\n const decoded = await processor.coder.decodeFunctionPayload(call, programmableTx?.inputs || [])\n await handler(decoded, ctx)\n }\n }\n return ctx.stopAndGetResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n partitionHandler: async (data: Data_SuiCall): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const tx = JSON.parse(data.rawTransaction) as IotaTransactionBlockResponse\n const calls: MoveCallIotaTransaction[] = getMoveCalls(tx)\n // For simplicity, use the first call for partitioning\n if (calls.length > 0) {\n return p(calls[0])\n }\n return undefined\n }\n return p\n }\n })\n return this\n }\n\n onEvent(\n handler: (event: IotaEvent, ctx: IotaContext) => void,\n handlerOptions?: HandlerOptions<MoveFetchConfig, IotaEvent>\n ): this {\n this.onMoveEvent(handler, { type: '' }, handlerOptions)\n return this\n }\n\n onTransactionBlock(\n handler: (transaction: IotaTransactionBlockResponse, ctx: IotaContext) => PromiseOrVoid,\n filter?: TransactionFilter,\n handlerOptions?: HandlerOptions<MoveFetchConfig, IotaTransactionBlockResponse>\n ): this {\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...handlerOptions })\n\n const processor = this\n\n this.callHandlers.push({\n handlerName: getHandlerName(),\n handler: async function (data) {\n if (!data.rawTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'transaction is null')\n }\n const tx = JSON.parse(data.rawTransaction) as IotaTransactionBlockResponse\n\n const ctx = new IotaContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx,\n 0,\n processor.config.baseLabels\n )\n if (tx) {\n await handler(tx, ctx)\n }\n return ctx.stopAndGetResult()\n },\n filters: [{ ...filter, function: '' }],\n fetchConfig: _fetchConfig,\n partitionHandler: async (data: Data_SuiCall): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const tx = JSON.parse(data.rawTransaction) as IotaTransactionBlockResponse\n return p(tx)\n }\n return p\n }\n })\n return this\n }\n\n protected onObjectChange(\n handler: (changes: IotaObjectChange[], ctx: IotaObjectChangeContext) => PromiseOrVoid,\n type: string\n ): this {\n if (this.config.network === IotaNetwork.TEST_NET) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'object change not supported in testnet')\n }\n const processor = this\n this.objectChangeHandlers.push({\n handlerName: getHandlerName(),\n handler: async function (data: Data_SuiObjectChange) {\n const ctx = new IotaObjectChangeContext(\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n data.txDigest,\n processor.config.baseLabels\n )\n await handler(data.rawChanges.map((r) => JSON.parse(r)) as IotaObjectChange[], ctx)\n return ctx.stopAndGetResult()\n },\n type\n })\n\n return this\n }\n}\n\nexport class IotaModulesProcessor extends IotaBaseProcessor {\n static bind(options: IotaBindOptions): IotaModulesProcessor {\n return new IotaModulesProcessor(ALL_ADDRESS, options)\n }\n}\n\nexport class IotaGlobalProcessor extends IotaBaseProcessor {\n static bind(options: Omit<IotaBindOptions, 'address'>): IotaGlobalProcessor {\n return new IotaGlobalProcessor(ALL_ADDRESS, { ...options, address: ALL_ADDRESS })\n }\n onTransactionBlock(\n handler: (transaction: IotaTransactionBlockResponse, ctx: IotaContext) => void,\n filter: TransactionFilter,\n fetchConfig?: Partial<MoveFetchConfig>\n ): this {\n // TODO enable more strict check\n // if (!filter.publicKeyPrefix || filter.publicKeyPrefix.length < 2) {\n // throw new ServerError(Status.INVALID_ARGUMENT, 'restriction too low for global processor')\n // }\n return super.onTransactionBlock(handler, filter, fetchConfig)\n }\n\n // deprecated,, use object type processor\n public onObjectChange(\n handler: (changes: IotaObjectChange[], ctx: IotaObjectChangeContext) => void,\n type: string\n ): this {\n return super.onObjectChange(handler, type)\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import type { IotaEvent, MoveCallIotaTransaction, IotaMoveObject, DevInspectResults } from '@iota/iota-sdk/client'\nimport { DecodedStruct } from '@typemove/move'\n\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\nexport type TypedEventInstance<T> = DecodedStruct<IotaEvent, T>\nexport type TypedIotaMoveObject<T> = DecodedStruct<IotaMoveObject, T>\n\nexport type TypedFunctionPayload<T extends Array<any>> = MoveCallIotaTransaction & {\n /**\n * decoded argument data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n arguments_decoded: T\n}\n\nexport type TypedDevInspectResults<T extends Array<any>> = DevInspectResults & {\n /**\n * Decoded return values using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n results_decoded?: T\n}\n","import { Transaction, TransactionArgument, TransactionObjectInput } from '@iota/iota-sdk/transactions'\n\nexport function isTransactionArgument(value: any): boolean {\n if (typeof value !== 'object') return false\n if (value === null || value === undefined) return false\n\n return (\n value.$kind === 'GasCoin' || value.$kind === 'Result' || value.$kind === 'NestedResult' || value.$kind === 'Input'\n )\n}\n\nexport function transactionArgumentOrObject(\n value: TransactionArgument | TransactionObjectInput,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.object(value)\n}\n\nexport function transactionArgumentOrPure(value: any, transactionBlock: Transaction): any {\n if (isTransactionArgument(value)) {\n return value\n }\n return typeof value == 'string' ? transactionBlock.pure.string(value) : transactionBlock.pure.u64(value)\n}\n\nexport function transactionArgumentOrPureString(\n value: TransactionArgument | string,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.string(value as string)\n}\n\nexport function transactionArgumentOrPureAddress(\n value: TransactionArgument | string,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.address(value as string)\n}\n\nexport function transactionArgumentOrPureU8(\n value: TransactionArgument | number,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.u8(value as number)\n}\n\nexport function transactionArgumentOrPureU16(\n value: TransactionArgument | number,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.u16(value as number)\n}\n\nexport function transactionArgumentOrPureU32(\n value: TransactionArgument | number,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.u32(value as number)\n}\n\nexport function transactionArgumentOrPureU64(\n value: TransactionArgument | bigint | number | string,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.u64(value as number)\n}\n\nexport function transactionArgumentOrPureU128(\n value: TransactionArgument | bigint | number | string,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.u128(value as number)\n}\n\nexport function transactionArgumentOrPureU256(\n value: TransactionArgument | bigint | number | string,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.u256(value as number)\n}\n\nexport function transactionArgumentOrPureBool(\n value: TransactionArgument | boolean,\n transactionBlock: Transaction\n): TransactionArgument {\n if (isTransactionArgument(value)) {\n return value as TransactionArgument\n }\n return transactionBlock.pure.bool(value as boolean)\n}\n\n// TODO vector might be nested\nexport function transactionArgumentOrVec(value: any, transactionBlock: Transaction): any {\n if (isTransactionArgument(value)) {\n return value\n }\n return transactionBlock.makeMoveVec({\n elements: value.map((a: any) => transactionBlock.object(a))\n })\n}\n","import type {\n // IotaMoveNormalizedEnum,\n IotaMoveNormalizedField,\n IotaMoveNormalizedFunction,\n IotaMoveNormalizedModule,\n IotaMoveNormalizedStruct,\n IotaMoveNormalizedType\n} from '@iota/iota-sdk/client'\nimport {\n // InternalMoveEnum,\n InternalMoveFunction,\n InternalMoveFunctionVisibility,\n InternalMoveModule,\n InternalMoveStruct,\n InternalMoveStructField,\n SPLITTER,\n TypeDescriptor\n} from '@typemove/move'\n\nexport function toInternalModule(module: IotaMoveNormalizedModule): InternalMoveModule {\n return {\n address: module.address,\n exposedFunctions: Object.entries(module.exposedFunctions).map(([n, f]) => toInternalFunction(n, f)),\n name: module.name,\n structs: Object.entries(module.structs).map(([n, s]) => toInternalStruct(n, s)),\n enums: []\n }\n}\n\nfunction toInternalFunction(name: string, func: IotaMoveNormalizedFunction): InternalMoveFunction {\n let visibility\n switch (func.visibility) {\n case 'Private':\n visibility = InternalMoveFunctionVisibility.PRIVATE\n break\n case 'Public':\n visibility = InternalMoveFunctionVisibility.PUBLIC\n break\n case 'Friend':\n visibility = InternalMoveFunctionVisibility.FRIEND\n break\n default:\n throw Error('No visibility for function' + name)\n }\n return {\n typeParams: func.typeParameters.map((p: any) => {\n return { constraints: p.abilities }\n }),\n isEntry: func.isEntry,\n name: name,\n params: func.parameters.map(toTypeDescriptor),\n return: func.return.map(toTypeDescriptor),\n visibility: visibility\n }\n}\n\nfunction toInternalStruct(name: string, struct: IotaMoveNormalizedStruct): InternalMoveStruct {\n return {\n abilities: struct.abilities.abilities,\n fields: struct.fields.map(toInternalField),\n typeParams: struct.typeParameters.map((p: any) => {\n return { constraints: p.constraints.abilities }\n }),\n isNative: false,\n isEvent: false,\n name: name\n }\n}\n\n// function toInternalEnum(name: string, enumType: IotaMoveNormalizedEnum): InternalMoveEnum {\n// return {\n// name: name,\n// abilities: enumType.abilities.abilities,\n// typeParams: enumType.typeParameters.map((p: any) => {\n// return { constraints: p.constraints.abilities }\n// }),\n// variants: Object.entries(enumType.variants).reduce((acc: { [key: string]: InternalMoveStructField[] }, [k, v]) => {\n// acc[k] = v.map(toInternalField)\n// return acc\n// }, {})\n// }\n// }\n\nfunction toInternalField(module: IotaMoveNormalizedField): InternalMoveStructField {\n return {\n name: module.name,\n type: toTypeDescriptor(module.type)\n }\n}\n\nfunction toTypeDescriptor(normalizedType: IotaMoveNormalizedType): TypeDescriptor {\n if (typeof normalizedType === 'string') {\n return new TypeDescriptor(normalizedType)\n }\n\n if ('Struct' in normalizedType) {\n const qname = [normalizedType.Struct.address, normalizedType.Struct.module, normalizedType.Struct.name].join(\n SPLITTER\n )\n\n const args = normalizedType.Struct.typeArguments.map(toTypeDescriptor)\n\n return new TypeDescriptor(qname, args)\n }\n\n if ('Vector' in normalizedType) {\n return new TypeDescriptor('Vector', [toTypeDescriptor(normalizedType.Vector)])\n }\n if ('TypeParameter' in normalizedType) {\n return new TypeDescriptor('T' + normalizedType.TypeParameter)\n }\n\n if ('Reference' in normalizedType) {\n const res = toTypeDescriptor(normalizedType.Reference)\n res.reference = true\n return res\n }\n\n if ('MutableReference' in normalizedType) {\n const res = toTypeDescriptor(normalizedType.MutableReference)\n res.reference = true\n res.mutable = true\n return res\n }\n\n throw new Error('Unexpected sui type')\n}\n","import { toInternalModule } from './to-internal.js'\nimport {\n InternalMoveModule,\n InternalMoveStruct,\n ChainAdapter,\n moduleQname,\n SPLITTER,\n TypeDescriptor\n} from '@typemove/move'\n\nimport { IotaMoveNormalizedModule, IotaEvent, IotaMoveObject, IotaClient } from '@iota/iota-sdk/client'\n\nexport class IotaChainAdapter extends ChainAdapter<\n // IotaNetwork,\n IotaMoveNormalizedModule,\n IotaEvent | IotaMoveObject\n> {\n async getChainId() {\n return this.client.getChainIdentifier()\n }\n // static INSTANCE = new IotaChainAdapter()\n\n client: IotaClient\n constructor(client: IotaClient) {\n super()\n this.client = client\n }\n\n async fetchModule(\n account: string,\n module: string\n // network: IotaNetwork\n ): Promise<IotaMoveNormalizedModule> {\n return await this.client.getNormalizedMoveModule({ package: account, module })\n }\n\n async fetchModules(\n account: string\n // network: IotaNetwork\n ): Promise<IotaMoveNormalizedModule[]> {\n const modules = await this.client.getNormalizedMoveModulesByPackage({\n package: account\n })\n return Object.values(modules)\n }\n\n getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[] {\n return params\n // if (params.length === 0) {\n // return params\n // }\n // return params.slice(0, params.length - 1)\n }\n\n toInternalModules(modules: IotaMoveNormalizedModule[]): InternalMoveModule[] {\n return Object.values(modules).map(toInternalModule)\n }\n\n getAllEventStructs(modules: InternalMoveModule[]): Map<string, InternalMoveStruct> {\n const eventMap = new Map<string, InternalMoveStruct>()\n\n for (const module of modules) {\n const qname = moduleQname(module)\n\n for (const struct of module.structs) {\n const abilities = new Set(struct.abilities)\n if (abilities.has('Drop') && abilities.has('Copy')) {\n eventMap.set(qname + SPLITTER + struct.name, struct)\n }\n }\n }\n return eventMap\n }\n\n getType(base: IotaEvent | IotaMoveObject): string {\n return base.type\n }\n\n getData(val: IotaEvent | IotaMoveObject) {\n // if (val.parsedJson) {\n // return val.parsedJson as any\n // }\n if (val === undefined) {\n throw Error('val is undefined')\n }\n if ('parsedJson' in val) {\n return val.parsedJson as any\n }\n // if (IotaParsedData.is(val)) {\n // return val.fields as any\n // }\n if (val.dataType === 'moveObject') {\n return val.fields as any\n }\n // if (IotaMoveObject.is(val)) {\n // return val.fields as any\n // }\n // This may not be perfect, just think everything has\n if ('fields' in val) {\n if ('type' in val && Object.keys(val).length === 2) {\n return val.fields as any\n }\n }\n return val as any\n }\n // validateAndNormalizeAddress(address: string) {\n // return validateAndNormalizeAddress(address)\n // }\n}\n\nfunction getRpcClient(endpoint: string): IotaClient {\n return new IotaClient({ url: endpoint })\n}\n","import { TypedDevInspectResults, TypedEventInstance, TypedFunctionPayload } from './models.js'\nimport {\n AbstractMoveCoder,\n ANY_TYPE,\n DecodedStruct,\n parseMoveType,\n SPLITTER,\n TypeDescriptor,\n InternalMoveModule\n} from '@typemove/move'\nimport {\n MoveCallIotaTransaction,\n IotaCallArg,\n IotaEvent,\n IotaMoveNormalizedModule,\n IotaMoveObject,\n DevInspectResults,\n IotaClient\n} from '@iota/iota-sdk/client'\nimport { toInternalModule } from './to-internal.js'\nimport { IotaChainAdapter } from './sui-chain-adapter.js'\nimport { dynamic_field } from './builtin/0x2.js'\nimport { BcsType, bcs } from '@iota/iota-sdk/bcs'\n\n// import { Encoding } from '@mysten/bcs/types', this doesn't get exported correctly\nexport type Encoding = 'base58' | 'base64' | 'hex'\n\nimport { normalizeIotaObjectId, normalizeIotaAddress } from '@iota/iota-sdk/utils'\n\nexport class MoveCoder extends AbstractMoveCoder<\n // IotaNetwork,\n IotaMoveNormalizedModule,\n IotaEvent | IotaMoveObject\n> {\n constructor(client: IotaClient) {\n super(new IotaChainAdapter(client))\n }\n\n async maybeGetMoveEnum(type: string) {\n return undefined\n }\n\n load(module: IotaMoveNormalizedModule, address: string): InternalMoveModule {\n let m = this.moduleMapping.get(module.address + '::' + module.name)\n const mDeclared = this.moduleMapping.get(address + '::' + module.name)\n if (m && mDeclared) {\n return m\n }\n this.accounts.add(module.address)\n m = toInternalModule(module)\n this.loadInternal(m, address)\n return m\n }\n\n protected async decode(data: any, type: TypeDescriptor): Promise<any> {\n switch (type.qname) {\n case '0x1::ascii::Char':\n if (data !== undefined && typeof data !== 'string') {\n // bcs\n const byte = (await super.decode(data, type)).byte as number\n return String.fromCharCode(byte)\n }\n case '0x1::ascii::String':\n if (data !== undefined && typeof data !== 'string') {\n // bcs verified\n const bytes = (await super.decode(data, type)).bytes as number[]\n return new TextDecoder().decode(new Uint8Array(bytes))\n }\n case '0x2::object::ID':\n if (data !== undefined && typeof data !== 'string') {\n // bcs verified\n const bytes = (await super.decode(data, type)).bytes as string\n return normalizeIotaObjectId(bytes)\n }\n case '0x2::url::Url':\n if (data !== undefined && typeof data !== 'string') {\n // bcs\n return (await super.decode(data, type)).url\n }\n case '0x2::coin::Coin':\n if (data !== undefined && typeof data !== 'string') {\n // bcs\n const bytes = (await super.decode(data, type)).id.id.bytes as number[]\n return new TextDecoder().decode(new Uint8Array(bytes))\n }\n return data\n case '0x2::balance::Balance':\n if (data.value) {\n // bcs verfied\n const balance = await super.decode(data, type)\n return balance.value\n }\n return BigInt(data)\n case '0x1::option::Option':\n if (data === null) {\n return data\n }\n if (data.vec) {\n // bcs verifed\n let vec = await super.decode(data, type)\n vec = vec.vec\n if (vec.length === 0) {\n return null\n }\n return vec[0]\n }\n return this.decode(data, type.typeArgs[0])\n case 'Address':\n const str = data as string\n return normalizeIotaAddress(str)\n case '0x1::string::String':\n if (typeof data !== 'string') {\n // bcs\n return new TextDecoder().decode(new Uint8Array(data.bytes))\n }\n default:\n return super.decode(data, type)\n }\n }\n\n decodeEvent<T>(event: IotaEvent): Promise<TypedEventInstance<T> | undefined> {\n return this.decodedStruct(event)\n }\n filterAndDecodeEvents<T>(type: TypeDescriptor<T> | string, resources: IotaEvent[]): Promise<TypedEventInstance<T>[]> {\n if (typeof type === 'string') {\n type = parseMoveType(type)\n }\n return this.filterAndDecodeStruct(type, resources)\n }\n\n async getDynamicFields<T1, T2>(\n objects: IotaMoveObject[],\n keyType: TypeDescriptor<T1> = ANY_TYPE,\n valueType: TypeDescriptor<T2> = ANY_TYPE\n ): Promise<dynamic_field.Field<T1, T2>[]> {\n // const type = dynamic_field.Field.TYPE\n // Not using the code above to avoid cycle initialize failed\n const type = new TypeDescriptor<dynamic_field.Field<T1, T2>>('0x2::dynamic_field::Field')\n type.typeArgs = [keyType, valueType]\n const res = await this.filterAndDecodeObjects(type, objects)\n return res.map((o) => o.data_decoded)\n }\n\n filterAndDecodeObjects<T>(\n type: TypeDescriptor<T>,\n objects: IotaMoveObject[]\n ): Promise<DecodedStruct<IotaMoveObject, T>[]> {\n return this.filterAndDecodeStruct(type, objects)\n }\n\n async decodeFunctionPayload(\n payload: MoveCallIotaTransaction,\n inputs: IotaCallArg[]\n ): Promise<MoveCallIotaTransaction> {\n const functionType = [payload.package, payload.module, payload.function].join(SPLITTER)\n const func = await this.getMoveFunction(functionType)\n const params = this.adapter.getMeaningfulFunctionParams(func.params)\n const args = []\n for (const value of payload.arguments || []) {\n const argValue = value as any\n if ('Input' in (argValue as any)) {\n const idx = argValue.Input\n const arg = inputs[idx]\n if (arg.type === 'pure') {\n args.push(arg.value)\n } else if (arg.type === 'object') {\n // object is not there\n args.push(undefined)\n } else {\n console.error('unexpected function arg value')\n args.push(undefined)\n }\n // args.push(arg) // TODO check why ts not work using arg.push(arg)\n } else {\n args.push(undefined)\n }\n }\n\n const argumentsTyped = await this.decodeArray(args, params, false)\n return {\n ...payload,\n arguments_decoded: argumentsTyped\n } as TypedFunctionPayload<any>\n }\n\n private bcsRegistered = new Set<string>()\n private bcsRegistry = new Map<string, BcsType<any>>()\n\n private async getBCSTypeWithArgs(type: TypeDescriptor, args: BcsType<any>[] = []): Promise<BcsType<any>> {\n const qname = type.qname\n const sig = type.getNormalizedSignature()\n const cached = this.bcsRegistry.get(sig)\n if (cached) {\n return cached\n }\n const lowerQname = qname.toLowerCase()\n switch (lowerQname) {\n case 'u8':\n case 'u16':\n case 'u32':\n case 'u64':\n case 'u128':\n case 'u256':\n case 'bool':\n return bcs[lowerQname]()\n case 'address':\n return bcs.Address\n case 'vector':\n return bcs.vector(args[0])\n default:\n if (!qname.includes('::')) {\n throw `Unimplemented builtin type ${qname}`\n }\n }\n let moveStruct\n try {\n moveStruct = await this.getMoveStruct(qname)\n } catch (e) {\n console.error('Invalid move address', qname)\n throw e\n }\n const structDef: Record<string, any> = {}\n for (const field of moveStruct.fields) {\n if (field.type.qname.startsWith('T') && args.length) {\n const index = +field.type.qname.slice(1)\n structDef[field.name] = args[index]\n } else if (field.type.typeArgs.length && args.length) {\n structDef[field.name] = await this.getBCSTypeWithArgs(field.type, args)\n } else {\n structDef[field.name] = await this.getBCSType(field.type)\n }\n }\n return bcs.struct(qname, structDef)\n }\n\n async getBCSType(type: TypeDescriptor): Promise<BcsType<any>> {\n const args = await Promise.all(type.typeArgs.map((x) => this.getBCSType(x)))\n const bcsType = await this.getBCSTypeWithArgs(type, args)\n this.bcsRegistry.set(type.getNormalizedSignature(), bcsType)\n return bcsType\n }\n\n async registerBCSTypes(type: TypeDescriptor): Promise<void> {\n const sig = type.getNormalizedSignature()\n if (this.bcsRegistered.has(sig)) {\n return\n }\n this.bcsRegistered.add(sig)\n\n const bcsType = await this.getBCSType(type)\n this.bcsRegistry.set(type.getNormalizedSignature(), bcsType)\n }\n\n async decodeBCS(type: TypeDescriptor, data: Uint8Array | string, encoding?: Encoding): Promise<any> {\n await this.registerBCSTypes(type)\n if (typeof data == 'string') {\n const buf = Buffer.from(data, encoding as any)\n data = new Uint8Array(buf, buf.byteOffset, buf.byteLength)\n }\n const bcsType = this.bcsRegistry.get(type.getNormalizedSignature())\n return bcsType?.parse(data)\n }\n\n async decodeDevInspectResult<T extends any[]>(inspectRes: DevInspectResults): Promise<TypedDevInspectResults<T>> {\n const returnValues = []\n if (inspectRes.results != null) {\n for (const r of inspectRes.results) {\n if (r.returnValues) {\n for (const returnValue of r.returnValues) {\n const type = parseMoveType(returnValue[1])\n const bcsDecoded = await this.decodeBCS(type, new Uint8Array(returnValue[0]))\n const decoded = await this.decodeType(bcsDecoded, type)\n returnValues.push(decoded)\n }\n } else {\n returnValues.push(null)\n }\n }\n }\n return { ...inspectRes, results_decoded: returnValues as any }\n }\n}\n\nconst DEFAULT_ENDPOINT = 'https://api.mainnet.iota.cafe/'\nconst CODER_MAP = new Map<string, MoveCoder>()\nconst CHAIN_ID_CODER_MAP = new Map<string, MoveCoder>()\n\nexport function defaultMoveCoder(endpoint: string = DEFAULT_ENDPOINT): MoveCoder {\n let coder = CODER_MAP.get(endpoint)\n if (!coder) {\n coder = new MoveCoder(new IotaClient({ url: endpoint }))\n CODER_MAP.set(endpoint, coder)\n }\n return coder\n}\n\nconst PROVIDER_CODER_MAP = new Map<IotaClient, MoveCoder>()\n\nlet DEFAULT_CHAIN_ID: string | undefined\n\nexport async function getMoveCoder(client: IotaClient): Promise<MoveCoder> {\n let coder = PROVIDER_CODER_MAP.get(client)\n if (!coder) {\n coder = new MoveCoder(client)\n // TODO how to dedup\n const id = await client.getChainIdentifier()\n const defaultCoder = defaultMoveCoder()\n if (!DEFAULT_CHAIN_ID) {\n DEFAULT_CHAIN_ID = await defaultCoder.adapter.getChainId()\n }\n if (id === DEFAULT_CHAIN_ID) {\n coder = defaultCoder\n }\n\n PROVIDER_CODER_MAP.set(client, coder)\n }\n return coder\n}\n","import { MoveCoder } from '@typemove/iota'\n\nimport { getClient, IotaNetwork } from './network.js'\n\nconst CODERS = new Map<IotaNetwork, MoveCoder>()\n\nexport function defaultMoveCoder(network: IotaNetwork = IotaNetwork.MAIN_NET): MoveCoder {\n let coder = CODERS.get(network)\n if (!coder) {\n coder = new MoveCoder(getClient(network))\n CODERS.set(network, coder)\n }\n\n return coder\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { RecordMetaData } from '@sentio/protos'\nimport { type Labels, normalizeLabels } from '../index.js'\nimport { getClient, IotaNetwork } from './network.js'\nimport {\n IotaTransactionBlockResponse,\n IotaEvent,\n IotaMoveNormalizedModule,\n IotaMoveObject,\n IotaClient\n} from '@iota/iota-sdk/client'\nimport { MoveCoder } from './index.js'\nimport { defaultMoveCoder } from './move-coder.js'\nimport { MoveAccountContext, MoveContext } from '../move/index.js'\n\nexport class IotaContext extends MoveContext<IotaNetwork, IotaMoveNormalizedModule, IotaEvent | IotaMoveObject> {\n moduleName: string\n timestamp: Date\n checkpoint: bigint\n transaction: IotaTransactionBlockResponse\n eventIndex: number\n coder: MoveCoder\n\n constructor(\n moduleName: string,\n network: IotaNetwork,\n address: string,\n timestamp: Date,\n checkpoint: bigint,\n transaction: IotaTransactionBlockResponse,\n eventIndex: number,\n baseLabels: Labels | undefined\n ) {\n super(baseLabels)\n this.address = address.toLowerCase()\n this.network = network\n this.moduleName = moduleName\n this.timestamp = timestamp\n this.checkpoint = checkpoint\n this.eventIndex = eventIndex\n this.coder = defaultMoveCoder(network)\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getChainId() {\n return this.network\n }\n\n getTimestamp(): number {\n return this.timestamp.getDate()\n }\n\n getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.moduleName,\n blockNumber: this.checkpoint,\n transactionIndex: 0,\n transactionHash: this.transaction?.digest || '', // TODO\n logIndex: this.eventIndex,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels)\n }\n }\n\n get client(): IotaClient {\n return getClient(this.network)\n }\n}\n\nexport class IotaObjectChangeContext extends MoveContext<\n IotaNetwork,\n IotaMoveNormalizedModule,\n IotaEvent | IotaMoveObject\n> {\n timestamp: Date\n checkpoint: bigint\n coder: MoveCoder\n txDigest: string\n\n constructor(\n network: IotaNetwork,\n address: string,\n timestamp: Date,\n checkpoint: bigint,\n txDigest: string,\n baseLabels: Labels | undefined\n ) {\n super(baseLabels)\n this.address = address\n this.network = network\n this.timestamp = timestamp\n this.checkpoint = checkpoint\n this.txDigest = txDigest\n this.coder = defaultMoveCoder(network)\n }\n\n getChainId() {\n return this.network\n }\n\n getTimestamp(): number {\n return this.timestamp.getDate()\n }\n\n getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: '*',\n blockNumber: this.checkpoint,\n transactionIndex: -1,\n transactionHash: this.txDigest,\n logIndex: 0,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels)\n }\n }\n\n get client(): IotaClient {\n return getClient(this.network)\n }\n}\n\n// TODO address handler should use this context\nexport class IotaAddressContext extends MoveAccountContext<\n IotaNetwork,\n IotaMoveNormalizedModule,\n IotaEvent | IotaMoveObject\n> {\n address: string\n network: IotaNetwork\n checkpoint: bigint\n timestamp: Date\n coder: MoveCoder\n\n protected contractName = 'address'\n\n constructor(\n network: IotaNetwork,\n address: string,\n checkpoint: bigint,\n timestamp: Date,\n baseLabels: Labels | undefined\n ) {\n super(baseLabels)\n this.address = address\n this.network = network\n this.checkpoint = checkpoint\n this.timestamp = timestamp\n this.coder = defaultMoveCoder(network)\n }\n\n getChainId() {\n return this.network\n }\n\n getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.contractName,\n blockNumber: this.checkpoint,\n transactionIndex: 0,\n transactionHash: '',\n logIndex: 0,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels)\n }\n }\n\n get client(): IotaClient {\n return getClient(this.network)\n }\n\n getTimestamp(): number {\n return this.timestamp.getDate()\n }\n}\n\nexport class IotaObjectContext extends IotaAddressContext {\n contractName = 'object'\n objectId: string\n objectVersion: bigint\n\n constructor(\n network: IotaNetwork,\n objectId: string,\n objectVersion: bigint,\n checkpoint: bigint,\n timestamp: Date,\n baseLabels: Labels | undefined\n ) {\n super(network, objectId, checkpoint, timestamp, baseLabels)\n this.objectId = objectId\n this.objectVersion = objectVersion\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n IotaTransactionBlockResponse,\n MoveCallIotaTransaction,\n ProgrammableTransaction,\n IotaTransaction\n} from '@iota/iota-sdk/client'\nimport { accountTypeString } from '@typemove/move'\n\nexport function getMoveCalls(txBlock: IotaTransactionBlockResponse) {\n const txKind = txBlock.transaction?.data.transaction\n if (!txKind) {\n return []\n }\n const programmableTx: ProgrammableTransaction | undefined =\n txKind.kind === 'ProgrammableTransaction' ? txKind : undefined\n if (!programmableTx) {\n return []\n }\n\n return programmableTx.transactions.flatMap((tx: IotaTransaction) => {\n if ('MoveCall' in tx) {\n const call = tx.MoveCall as MoveCallIotaTransaction\n call.package = accountTypeString(call.package)\n\n return [call]\n }\n return []\n })\n}\n\n// function isHex(value: string): boolean {\n// return /^(0x|0X)?[a-fA-F0-9]+$/.test(value)\n// }\n//\n// function getHexByteLength(value: string): number {\n// return /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2\n// }\n//\n// export function isValidIotaAddress(value: string): value is IotaAddress {\n// return isHex(value) && getHexByteLength(value) <= SUI_ADDRESS_LENGTH\n// }\n\n// export function validateAndNormalizeAddress(address: string): string {\n// // if (isFrameworkAccount(address)) {\n// // const n = parseInt(address, 16)\n// // return `0x${n.toString(16)}`\n// // }\n// if (!isValidIotaAddress(address)) {\n// throw Error('Not valid Address')\n// }\n// return normalizeIotaAddress(address)\n// }\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n Data_SuiCall,\n Data_SuiObject,\n Data_SuiObjectChange,\n HandleInterval,\n MoveAccountFetchConfig,\n MoveFetchConfig,\n MoveOwnerType,\n ProcessResult\n} from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { IotaNetwork } from './network.js'\nimport { IotaAddressContext, IotaContext, IotaObjectChangeContext, IotaObjectContext } from './context.js'\nimport { IotaMoveObject, IotaObjectChange, IotaTransactionBlockResponse } from '@iota/iota-sdk/client'\nimport { ALL_ADDRESS, PromiseOrVoid } from '../core/index.js'\nimport { configure, DEFAULT_FETCH_CONFIG, IndexConfigure, IotaBindOptions } from './iota-processor.js'\nimport { CallHandler, TransactionFilter, accountTypeString, ObjectChangeHandler } from '../move/index.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { TypeDescriptor } from '@typemove/move'\nimport { TypedIotaMoveObject } from './models.js'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nexport interface IotaObjectBindOptions {\n objectId: string\n network?: IotaNetwork\n startCheckpoint?: bigint\n endCheckpoint?: bigint\n baseLabels?: { [key: string]: string }\n}\n\nexport interface IotaObjectTypeBindOptions<T> {\n objectType: TypeDescriptor<T>\n network?: IotaNetwork\n startCheckpoint?: bigint\n endCheckpoint?: bigint\n baseLabels?: { [key: string]: string }\n}\n\ninterface ObjectHandler {\n type?: string\n checkPointInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n fetchConfig: MoveAccountFetchConfig\n handler: (resource: Data_SuiObject) => Promise<ProcessResult>\n handlerName: string\n}\n\nexport const DEFAULT_ACCOUNT_FETCH_CONFIG: MoveAccountFetchConfig = {\n owned: false\n}\n\nexport class IotaAccountProcessorState extends ListStateStorage<IotaBaseObjectOrAddressProcessor<any>> {\n static INSTANCE = new IotaAccountProcessorState()\n}\n\nexport interface IotaInternalObjectsBindOptions extends IotaBindOptions {\n ownerType: MoveOwnerType\n}\n\nexport abstract class IotaBaseObjectOrAddressProcessor<HandlerType> {\n config: IndexConfigure\n ownerType: MoveOwnerType\n templateId: number | undefined\n\n objectHandlers: ObjectHandler[] = []\n objectChangeHandlers: ObjectChangeHandler<Data_SuiObjectChange>[] = []\n\n // static bind(options: IotaObjectsBindOptions): IotaBaseObjectsProcessor<any> {\n // return new IotaBaseObjectsProcessor(options)\n // }\n\n protected constructor(options: IotaInternalObjectsBindOptions) {\n if (options.ownerType === MoveOwnerType.TYPE) {\n this.config = {\n startCheckpoint: options.startCheckpoint || 0n,\n endCheckpoint: options.endCheckpoint,\n address: options.address === '*' ? '*' : accountTypeString(options.address),\n network: options.network || IotaNetwork.MAIN_NET,\n baseLabels: options.baseLabels\n }\n } else {\n this.config = configure(options)\n }\n this.ownerType = options.ownerType\n IotaAccountProcessorState.INSTANCE.addValue(this)\n\n return proxyProcessor(this)\n }\n\n getChainId(): string {\n return this.config.network\n }\n\n // protected abstract transformObjects(objects: IotaMoveObject[]): IotaMoveObject[]\n\n protected abstract doHandle(handler: HandlerType, data: Data_SuiObject, ctx: IotaObjectContext): Promise<any>\n\n public onInterval(\n handler: HandlerType, //(resources: IotaMoveObject[], ctx: IotaObjectsContext) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n checkpointInterval: HandleInterval | undefined,\n type: string | undefined,\n fetchConfig: Partial<MoveAccountFetchConfig> | undefined,\n handlerName = getHandlerName()\n ): this {\n const processor = this\n this.objectHandlers.push({\n handlerName,\n handler: async function (data) {\n const ctx = new IotaObjectContext(\n processor.config.network,\n data.objectId,\n data.objectVersion,\n data.slot,\n data.timestamp || new Date(0),\n processor.config.baseLabels\n )\n await processor.doHandle(handler, data, ctx)\n return ctx.stopAndGetResult()\n },\n timeIntervalInMinutes: timeInterval,\n checkPointInterval: checkpointInterval,\n type,\n fetchConfig: { ...DEFAULT_ACCOUNT_FETCH_CONFIG, ...fetchConfig }\n })\n return this\n }\n}\n\nabstract class IotaBaseObjectOrAddressProcessorInternal<\n HandlerType\n> extends IotaBaseObjectOrAddressProcessor<HandlerType> {\n public onTimeInterval(\n handler: HandlerType,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n type?: string,\n fetchConfig?: Partial<MoveAccountFetchConfig>\n ): this {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes\n },\n undefined,\n type,\n fetchConfig\n )\n }\n\n public onCheckpointInterval(\n handler: HandlerType,\n checkpointInterval = 100000,\n backfillCheckpointInterval = 400000,\n type?: string,\n fetchConfig?: Partial<MoveAccountFetchConfig>\n ): this {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },\n type,\n fetchConfig\n )\n }\n}\n\nexport class IotaAddressProcessor extends IotaBaseObjectOrAddressProcessorInternal<\n (objects: IotaMoveObject[], ctx: IotaAddressContext) => PromiseOrVoid\n> {\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n static bind(options: IotaBindOptions): IotaAddressProcessor {\n return new IotaAddressProcessor({ ...options, ownerType: MoveOwnerType.ADDRESS })\n }\n\n protected async doHandle(\n handler: (objects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: IotaObjectContext\n ) {\n return handler(data.rawObjects.map((o) => JSON.parse(o)) as IotaMoveObject[], ctx)\n }\n\n onTransactionBlock(\n handler: (transaction: IotaTransactionBlockResponse, ctx: IotaContext) => PromiseOrVoid,\n filter?: TransactionFilter,\n fetchConfig?: Partial<MoveFetchConfig>\n ) {\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...fetchConfig })\n const _filter: TransactionFilter = {\n fromAndToAddress: {\n from: '',\n to: this.config.address\n },\n ...filter\n }\n\n const processor = this\n\n this.callHandlers.push({\n handlerName: getHandlerName(),\n handler: async function (data) {\n if (!data.rawTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'transaction is null')\n }\n const tx = JSON.parse(data.rawTransaction) as IotaTransactionBlockResponse\n\n const ctx = new IotaContext(\n 'object',\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx,\n 0,\n processor.config.baseLabels\n )\n if (tx) {\n await handler(tx, ctx)\n }\n return ctx.stopAndGetResult()\n },\n filters: [{ ..._filter, function: '' }],\n fetchConfig: _fetchConfig\n })\n return this\n }\n}\n\nexport class IotaObjectProcessor extends IotaBaseObjectOrAddressProcessorInternal<\n (self: IotaMoveObject, dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid\n> {\n static bind(options: IotaObjectBindOptions): IotaObjectProcessor {\n return new IotaObjectProcessor({\n address: options.objectId,\n network: options.network,\n startCheckpoint: options.startCheckpoint,\n endCheckpoint: options.endCheckpoint,\n ownerType: MoveOwnerType.OBJECT,\n baseLabels: options.baseLabels\n })\n }\n\n protected async doHandle(\n handler: (self: IotaMoveObject, dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: IotaObjectContext\n ) {\n if (!data.rawSelf) {\n console.log(`Iota object not existed in ${ctx.checkpoint}, please specific a start time`)\n return\n }\n return handler(\n JSON.parse(data.rawSelf) as IotaMoveObject,\n data.rawObjects.map((o) => JSON.parse(o)) as IotaMoveObject[],\n ctx\n )\n }\n}\n\nexport class IotaObjectTypeProcessor<T> extends IotaBaseObjectOrAddressProcessor<\n (self: TypedIotaMoveObject<T>, dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid\n> {\n objectType: TypeDescriptor<T>\n\n static bind<T>(options: IotaObjectTypeBindOptions<T>): IotaObjectTypeProcessor<T> {\n const processor = new IotaObjectTypeProcessor<T>({\n address: ALL_ADDRESS, // current only support on all address\n network: options.network,\n startCheckpoint: options.startCheckpoint,\n endCheckpoint: options.endCheckpoint,\n ownerType: MoveOwnerType.TYPE,\n baseLabels: options.baseLabels\n })\n processor.objectType = options.objectType\n return processor\n }\n\n protected async doHandle(\n handler: (\n self: TypedIotaMoveObject<T>,\n dynamicFieldObjects: IotaMoveObject[],\n ctx: IotaObjectContext\n ) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: IotaObjectContext\n ) {\n if (!data.rawSelf) {\n console.log(`Iota object not existed in ${ctx.checkpoint}, please specific a start time`)\n return\n }\n const object = await ctx.coder.filterAndDecodeObjects(this.objectType, [JSON.parse(data.rawSelf) as IotaMoveObject])\n return handler(object[0], data.rawObjects.map((o) => JSON.parse(o)) as IotaMoveObject[], ctx)\n }\n\n public onObjectChange(handler: (changes: IotaObjectChange[], ctx: IotaObjectChangeContext) => PromiseOrVoid): this {\n if (this.config.network === IotaNetwork.TEST_NET) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'object change not supported in testnet')\n }\n const processor = this\n this.objectChangeHandlers.push({\n handlerName: getHandlerName(),\n handler: async function (data: Data_SuiObjectChange) {\n const ctx = new IotaObjectChangeContext(\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n data.txDigest,\n processor.config.baseLabels\n )\n await handler(data.rawChanges.map((r) => JSON.parse(r)) as IotaObjectChange[], ctx)\n return ctx.stopAndGetResult()\n },\n type: this.objectType.getSignature()\n })\n\n return this\n }\n\n public onTimeInterval(\n handler: (\n self: TypedIotaMoveObject<T>,\n dynamicFieldObjects: IotaMoveObject[],\n ctx: IotaObjectContext\n ) => PromiseOrVoid,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n fetchConfig?: Partial<MoveAccountFetchConfig>\n ): this {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes\n },\n undefined,\n this.objectType.getSignature(),\n fetchConfig\n )\n }\n\n public onCheckpointInterval(\n handler: (\n self: TypedIotaMoveObject<T>,\n dynamicFieldObjects: IotaMoveObject[],\n ctx: IotaObjectContext\n ) => PromiseOrVoid,\n checkpointInterval = 100000,\n backfillCheckpointInterval = 400000,\n fetchConfig?: Partial<MoveAccountFetchConfig>\n ): this {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },\n this.objectType.qname,\n fetchConfig\n )\n }\n}\n\nexport class IotaWrappedObjectProcessor extends IotaBaseObjectOrAddressProcessorInternal<\n (dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid\n> {\n static bind(options: IotaObjectBindOptions): IotaWrappedObjectProcessor {\n return new IotaWrappedObjectProcessor({\n address: options.objectId,\n network: options.network,\n startCheckpoint: options.startCheckpoint,\n endCheckpoint: options.endCheckpoint,\n ownerType: MoveOwnerType.WRAPPED_OBJECT,\n baseLabels: options.baseLabels\n })\n }\n\n protected async doHandle(\n handler: (dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: IotaObjectContext\n ) {\n return handler(data.rawObjects.map((o) => JSON.parse(o)) as IotaMoveObject[], ctx)\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { HandleInterval, MoveAccountFetchConfig, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { IotaAddressContext, IotaContext, IotaObjectContext } from './context.js'\nimport { IotaMoveObject, IotaTransactionBlockResponse } from '@iota/iota-sdk/client'\nimport { PromiseOrVoid } from '../core/index.js'\nimport {\n DEFAULT_ACCOUNT_FETCH_CONFIG,\n IotaAccountProcessorState,\n IotaAddressProcessor,\n IotaBaseObjectOrAddressProcessor,\n IotaObjectBindOptions,\n IotaObjectProcessor,\n IotaWrappedObjectProcessor\n} from './iota-object-processor.js'\nimport { TemplateInstanceState } from '../core/template.js'\nimport { IotaBindOptions } from './iota-processor.js'\nimport { TransactionFilter, accountAddressString } from '../move/index.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nclass ObjectHandler<HandlerType> {\n type?: string\n checkpointInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handlerName: string\n handler: HandlerType\n fetchConfig: MoveAccountFetchConfig\n}\n\nexport class IotaAccountProcessorTemplateState extends ListStateStorage<\n IotaObjectOrAddressProcessorTemplate<any, any, any>\n> {\n static INSTANCE = new IotaAccountProcessorTemplateState()\n}\n\nexport abstract class IotaObjectOrAddressProcessorTemplate<\n HandlerType,\n OptionType extends IotaObjectBindOptions | IotaBindOptions,\n ProcessorType extends IotaBaseObjectOrAddressProcessor<HandlerType>\n> {\n id: number\n objectHandlers: ObjectHandler<HandlerType>[] = []\n binds = new Set<string>()\n\n constructor() {\n this.id = IotaAccountProcessorTemplateState.INSTANCE.getValues().length\n IotaAccountProcessorTemplateState.INSTANCE.addValue(this)\n return proxyProcessor(this)\n }\n\n protected abstract createProcessor(options: IotaObjectBindOptions | IotaBindOptions): ProcessorType\n\n bind(options: OptionType, ctx: IotaContext): void {\n options.network = options.network || ctx.network\n options.startCheckpoint = options.startCheckpoint || ctx.checkpoint\n let id = (options as IotaObjectBindOptions).objectId || (options as IotaBindOptions).address\n\n if (id === '*') {\n throw new ServerError(Status.INVALID_ARGUMENT, \"can't bind template instance with *\")\n }\n id = accountAddressString(id)\n\n const sig = [options.network, id].join('_')\n if (this.binds.has(sig)) {\n console.log(`Same object id can be bind to one template only once, ignore duplicate bind: ${sig}`)\n return\n }\n this.binds.add(sig)\n\n const processor = this.createProcessor(options)\n for (const h of this.objectHandlers) {\n processor.onInterval(\n h.handler,\n h.timeIntervalInMinutes,\n h.checkpointInterval,\n h.type,\n h.fetchConfig,\n h.handlerName\n )\n }\n const config = processor.config\n\n ctx.update({\n states: {\n configUpdated: true\n }\n })\n TemplateInstanceState.INSTANCE.addValue({\n templateId: this.id,\n contract: {\n name: '',\n chainId: config.network,\n address: config.address,\n abi: ''\n },\n startBlock: config.startCheckpoint,\n endBlock: config.endCheckpoint || 0n,\n baseLabels: config.baseLabels\n })\n console.log(`successfully bind template ${sig}`)\n }\n\n unbind(options: OptionType, ctx: IotaContext): void {\n options.network = options.network || ctx.network\n options.startCheckpoint = options.startCheckpoint || ctx.checkpoint\n let id = (options as IotaObjectBindOptions).objectId || (options as IotaBindOptions).address\n\n if (id === '*') {\n throw new ServerError(Status.INVALID_ARGUMENT, \"can't delete template instance bind with *\")\n }\n id = accountAddressString(id)\n\n const sig = [options.network, id].join('_')\n if (!this.binds.has(sig)) {\n console.log(`the template instance ${sig} not existed or already unbind`)\n return\n }\n this.binds.delete(sig)\n\n let deleted = 0\n const oldTemplateInstances = TemplateInstanceState.INSTANCE.unregister()\n for (const templateInstance of oldTemplateInstances) {\n if (templateInstance.contract?.chainId === options.network && templateInstance.contract.address == id) {\n deleted++\n continue\n }\n TemplateInstanceState.INSTANCE.addValue(templateInstance)\n }\n\n if (deleted !== 1) {\n throw new ServerError(\n Status.INVALID_ARGUMENT,\n `Failed to delete template instance ${sig}, deleted ${deleted} times`\n )\n }\n\n const oldProcessors = IotaAccountProcessorState.INSTANCE.unregister()\n deleted = 0\n for (const processor of oldProcessors) {\n if (processor.templateId === this.id) {\n if (processor.config.network == options.network && processor.config.address === id) {\n deleted++\n continue\n }\n }\n IotaAccountProcessorState.INSTANCE.addValue(processor)\n }\n\n if (deleted !== 1) {\n throw new ServerError(\n Status.INVALID_ARGUMENT,\n `Failed to delete processor for template ${this.id}, ${sig}. deleted ${deleted} times`\n )\n }\n\n console.log(`successfully unbind template ${sig}`)\n\n ctx.update({\n states: {\n configUpdated: true\n }\n })\n }\n\n protected onInterval(\n handler: HandlerType,\n timeInterval: HandleInterval | undefined,\n checkpointInterval: HandleInterval | undefined,\n type: string | undefined,\n fetchConfig: Partial<MoveAccountFetchConfig> | undefined\n ): this {\n this.objectHandlers.push({\n handlerName: getHandlerName(),\n handler: handler,\n timeIntervalInMinutes: timeInterval,\n checkpointInterval: checkpointInterval,\n type,\n fetchConfig: { ...DEFAULT_ACCOUNT_FETCH_CONFIG, ...fetchConfig }\n })\n return this\n }\n\n public onTimeInterval(\n handler: HandlerType,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n type?: string,\n fetchConfig?: Partial<MoveAccountFetchConfig>\n ): this {\n return this.onInterval(\n handler,\n {\n recentInterval: timeIntervalInMinutes,\n backfillInterval: backfillTimeIntervalInMinutes\n },\n undefined,\n type,\n fetchConfig\n )\n }\n\n public onCheckpointInterval(\n handler: HandlerType,\n checkpointInterval = 100000,\n backfillCheckpointInterval = 400000,\n type?: string,\n fetchConfig?: Partial<MoveAccountFetchConfig>\n ): this {\n return this.onInterval(\n handler,\n undefined,\n { recentInterval: checkpointInterval, backfillInterval: backfillCheckpointInterval },\n type,\n fetchConfig\n )\n }\n}\n\nclass AddressTransactionHandler {\n handler: (transaction: IotaTransactionBlockResponse, ctx: IotaContext) => void\n filter?: TransactionFilter\n fetchConfig?: Partial<MoveFetchConfig>\n}\n\nexport class IotaAddressProcessorTemplate extends IotaObjectOrAddressProcessorTemplate<\n (objects: IotaMoveObject[], ctx: IotaAddressContext) => PromiseOrVoid,\n IotaBindOptions,\n IotaAddressProcessor\n> {\n private handlers: AddressTransactionHandler[] = []\n\n createProcessor(options: IotaBindOptions): IotaAddressProcessor {\n const p = IotaAddressProcessor.bind(options)\n for (const handler of this.handlers) {\n p.onTransactionBlock(handler.handler, handler.filter, handler.fetchConfig)\n }\n p.templateId = this.id\n return p\n }\n\n onTransactionBlock(\n handler: (transaction: IotaTransactionBlockResponse, ctx: IotaContext) => void,\n filter?: TransactionFilter,\n fetchConfig?: Partial<MoveFetchConfig>\n ): this {\n this.handlers.push({\n handler,\n filter,\n fetchConfig\n })\n return this\n }\n}\n\nexport class IotaObjectProcessorTemplate extends IotaObjectOrAddressProcessorTemplate<\n (self: IotaMoveObject, dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid,\n IotaObjectBindOptions,\n IotaObjectProcessor\n> {\n createProcessor(options: IotaObjectBindOptions): IotaObjectProcessor {\n const p = IotaObjectProcessor.bind(options)\n p.templateId = this.id\n return p\n }\n}\n\nexport class IotaWrappedObjectProcessorTemplate extends IotaObjectOrAddressProcessorTemplate<\n (dynamicFieldObjects: IotaMoveObject[], ctx: IotaObjectContext) => PromiseOrVoid,\n IotaObjectBindOptions,\n IotaWrappedObjectProcessor\n> {\n createProcessor(options: IotaObjectBindOptions): IotaWrappedObjectProcessor {\n const p = IotaWrappedObjectProcessor.bind(options)\n p.templateId = this.id\n return p\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import type { IotaEvent, MoveCallIotaTransaction, IotaMoveObject } from '@iota/iota-sdk/client'\nimport { DecodedStruct } from '@typemove/move'\n\nexport type TypedEventInstance<T> = DecodedStruct<IotaEvent, T>\nexport type TypedIotaMoveObject<T> = DecodedStruct<IotaMoveObject, T>\n\nexport type TypedFunctionPayload<T extends Array<any>> = MoveCallIotaTransaction & {\n /**\n * decoded argument data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n arguments_decoded: T\n}\n\nexport type { PartitionHandler, HandlerOptions } from '../core/index.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","// real plugin is in src/sui/sui-plugin.ts\nexport class IotaPlugin {}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","export { IotaBaseProcessor, IotaGlobalProcessor, IotaModulesProcessor, type IotaBindOptions } from './iota-processor.js'\nexport {\n IotaAddressProcessor,\n IotaObjectProcessor,\n IotaObjectTypeProcessor,\n IotaWrappedObjectProcessor,\n type IotaObjectBindOptions,\n type IotaObjectTypeBindOptions\n} from './iota-object-processor.js'\n\nexport {\n IotaAddressProcessorTemplate,\n IotaObjectProcessorTemplate,\n IotaWrappedObjectProcessorTemplate\n} from './iota-object-processor-template.js'\n\nexport * from './network.js'\nexport * from './context.js'\nexport * from './models.js'\n\nexport * from './move-coder.js'\n\nexport { IotaPlugin } from './iota-plugin.js'\n\nexport { BUILTIN_TYPES } from '@typemove/move'\n\nexport { MoveCoder } from '@typemove/iota'\n\n// export { validateAndNormalizeAddress, isValidIotaAddress } from './utils.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":"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","names":["defaultMoveCoder","defaultMoveCoder","defaultMoveCoder","ListStateStorage","import_nice_grpc","ListStateStorage","ListStateStorage","import_nice_grpc","ListStateStorage"]}
|
package/lib/chunk-Z2CE3JTO.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
require_lib
|
|
4
|
-
} from "./chunk-5GXMJVJP.js";
|
|
5
|
-
import {
|
|
6
|
-
__name,
|
|
7
|
-
__toESM
|
|
8
|
-
} from "./chunk-R7PMHHKJ.js";
|
|
9
|
-
|
|
10
|
-
// src/core/handler-register.ts
|
|
11
|
-
var import_nice_grpc = __toESM(require_lib(), 1);
|
|
12
|
-
var HandlerRegister = class {
|
|
13
|
-
static {
|
|
14
|
-
__name(this, "HandlerRegister");
|
|
15
|
-
}
|
|
16
|
-
handlerByChain = /* @__PURE__ */ new Map();
|
|
17
|
-
/**
|
|
18
|
-
* Register a handler function with chain ID and handle type
|
|
19
|
-
* @returns handler ID
|
|
20
|
-
*/
|
|
21
|
-
register(handler, chainId) {
|
|
22
|
-
const entries = this.handlerByChain.get(chainId) || [];
|
|
23
|
-
const id = entries.length;
|
|
24
|
-
const entry = {
|
|
25
|
-
id,
|
|
26
|
-
handler,
|
|
27
|
-
chainId
|
|
28
|
-
};
|
|
29
|
-
entries.push(entry);
|
|
30
|
-
this.handlerByChain.set(chainId, entries);
|
|
31
|
-
return id;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get handler function by ID
|
|
35
|
-
*/
|
|
36
|
-
getHandlerById(chainId, id) {
|
|
37
|
-
const entries = this.handlerByChain.get(chainId);
|
|
38
|
-
if (!entries || id < 0 || id >= entries.length) {
|
|
39
|
-
throw new import_nice_grpc.ServerError(import_nice_grpc.Status.INTERNAL, `Handler with ID ${id} not found.`);
|
|
40
|
-
}
|
|
41
|
-
return entries[id].handler;
|
|
42
|
-
}
|
|
43
|
-
clear(chainId) {
|
|
44
|
-
if (chainId) {
|
|
45
|
-
this.handlerByChain.delete(chainId);
|
|
46
|
-
} else {
|
|
47
|
-
this.handlerByChain.clear();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
import("node:process").then((p) => p.stdout.write(""));
|
|
52
|
-
|
|
53
|
-
export {
|
|
54
|
-
HandlerRegister
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=chunk-Z2CE3JTO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/handler-register.ts"],"sourcesContent":["import { ServerError, Status } from 'nice-grpc'\nimport { ChainId } from '@sentio/chain'\nimport { ProcessResult } from '@sentio/protos'\n\nexport type HandlerFunction = (...args: any[]) => Promise<ProcessResult>\n\ninterface HandlerEntry {\n id: number\n handler: HandlerFunction\n chainId: ChainId | string\n}\n\nexport class HandlerRegister {\n private handlerByChain: Map<ChainId | string, HandlerEntry[]> = new Map()\n\n /**\n * Register a handler function with chain ID and handle type\n * @returns handler ID\n */\n register(handler: HandlerFunction, chainId: ChainId | string): number {\n const entries = this.handlerByChain.get(chainId) || []\n const id = entries.length\n\n const entry: HandlerEntry = {\n id,\n handler,\n chainId\n }\n entries.push(entry)\n this.handlerByChain.set(chainId, entries)\n return id\n }\n\n /**\n * Get handler function by ID\n */\n getHandlerById(chainId: ChainId | string, id: number): HandlerFunction {\n const entries = this.handlerByChain.get(chainId)\n if (!entries || id < 0 || id >= entries.length) {\n throw new ServerError(Status.INTERNAL, `Handler with ID ${id} not found.`)\n }\n return entries[id].handler\n }\n\n clear(chainId?: ChainId): void {\n if (chainId) {\n this.handlerByChain.delete(chainId)\n } else {\n this.handlerByChain.clear()\n }\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";;;;;;;;;;AAAA,uBAAoC;AAY7B,IAAM,kBAAN,MAAsB;AAAA,EAZ7B,OAY6B;AAAA;AAAA;AAAA,EACnB,iBAAwD,oBAAI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxE,SAAS,SAA0B,SAAmC;AACpE,UAAM,UAAU,KAAK,eAAe,IAAI,OAAO,KAAK,CAAC;AACrD,UAAM,KAAK,QAAQ;AAEnB,UAAM,QAAsB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,YAAQ,KAAK,KAAK;AAClB,SAAK,eAAe,IAAI,SAAS,OAAO;AACxC,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,SAA2B,IAA6B;AACrE,UAAM,UAAU,KAAK,eAAe,IAAI,OAAO;AAC/C,QAAI,CAAC,WAAW,KAAK,KAAK,MAAM,QAAQ,QAAQ;AAC9C,YAAM,IAAI,6BAAY,wBAAO,UAAU,mBAAmB,EAAE,aAAa;AAAA,IAC3E;AACA,WAAO,QAAQ,EAAE,EAAE;AAAA,EACrB;AAAA,EAEA,MAAM,SAAyB;AAC7B,QAAI,SAAS;AACX,WAAK,eAAe,OAAO,OAAO;AAAA,IACpC,OAAO;AACL,WAAK,eAAe,MAAM;AAAA,IAC5B;AAAA,EACF;AACF;AACC,OAAO,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|