@sentio/sdk-bundle 2.52.1 → 2.52.2

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 (65) hide show
  1. package/lib/aptos/builtin/0x1.js +1 -1
  2. package/lib/aptos/builtin/0x3.js +1 -1
  3. package/lib/aptos/builtin/index.js +1 -1
  4. package/lib/aptos/ext/index.js +1 -1
  5. package/lib/aptos/index.js +1 -1
  6. package/lib/{chunk-LS5ONP4K.js → chunk-3634LO26.js} +2 -2
  7. package/lib/{chunk-HU7476GK.js → chunk-44SNVBZO.js} +2 -2
  8. package/lib/chunk-44SNVBZO.js.map +1 -0
  9. package/lib/{chunk-CLSYYTRT.js → chunk-ATMZMMXQ.js} +1 -1
  10. package/lib/{chunk-CLSYYTRT.js.map → chunk-ATMZMMXQ.js.map} +1 -1
  11. package/lib/{chunk-BQ4EQVA4.js → chunk-B5LNOVX3.js} +2 -2
  12. package/lib/{chunk-D65UDVQD.js → chunk-DX3D2XZ3.js} +2 -2
  13. package/lib/{chunk-QLPYMSRX.js → chunk-ETUGBNCT.js} +2 -2
  14. package/lib/chunk-FK3BI3F2.js +3 -0
  15. package/lib/chunk-FK3BI3F2.js.map +1 -0
  16. package/lib/{chunk-YEV4EYDY.js → chunk-IK2PE6IH.js} +2 -2
  17. package/lib/{chunk-NTLEUEZI.js → chunk-JURNVTQE.js} +2 -2
  18. package/lib/{chunk-CCFVCRAB.js → chunk-KASA2EOQ.js} +2 -2
  19. package/lib/{chunk-CDLQI5ZO.js → chunk-KWR5UGTL.js} +2 -2
  20. package/lib/{chunk-K4KEQFTU.js → chunk-NIASZQ5Z.js} +2 -2
  21. package/lib/chunk-OCBJUHGM.js +3 -0
  22. package/lib/chunk-OCBJUHGM.js.map +1 -0
  23. package/lib/{chunk-4F62GJFK.js → chunk-PH74HXF3.js} +2 -2
  24. package/lib/{chunk-HV44MLJG.js → chunk-PRVQK7HO.js} +2 -2
  25. package/lib/{chunk-SR7XAINJ.js → chunk-VEG4HJOH.js} +2 -2
  26. package/lib/{chunk-SR7XAINJ.js.map → chunk-VEG4HJOH.js.map} +1 -1
  27. package/lib/{chunk-FKFODQAR.js → chunk-XJWATGGD.js} +2 -2
  28. package/lib/eth/builtin/eacaggregatorproxy.js +1 -1
  29. package/lib/eth/builtin/erc1155.js +1 -1
  30. package/lib/eth/builtin/erc20.js +1 -1
  31. package/lib/eth/builtin/erc721.js +1 -1
  32. package/lib/eth/builtin/index.js +1 -1
  33. package/lib/eth/builtin/weth9.js +1 -1
  34. package/lib/eth/index.js +1 -1
  35. package/lib/fuel/index.js +1 -1
  36. package/lib/move/index.js +1 -1
  37. package/lib/solana/builtin/index.js +1 -1
  38. package/lib/solana/index.js +1 -1
  39. package/lib/stark/index.js +1 -1
  40. package/lib/sui/builtin/0x1.js +1 -1
  41. package/lib/sui/builtin/0x2.js +1 -1
  42. package/lib/sui/builtin/0x3.js +1 -1
  43. package/lib/sui/builtin/index.js +1 -1
  44. package/lib/sui/ext/index.js +1 -1
  45. package/lib/sui/index.js +1 -1
  46. package/lib/testing/index.js +1 -1
  47. package/lib/utils/index.js +1 -1
  48. package/package.json +2 -2
  49. package/lib/chunk-2QI24JA5.js +0 -3
  50. package/lib/chunk-2QI24JA5.js.map +0 -1
  51. package/lib/chunk-HU7476GK.js.map +0 -1
  52. package/lib/chunk-XVOZ4ULD.js +0 -3
  53. package/lib/chunk-XVOZ4ULD.js.map +0 -1
  54. /package/lib/{chunk-LS5ONP4K.js.map → chunk-3634LO26.js.map} +0 -0
  55. /package/lib/{chunk-BQ4EQVA4.js.map → chunk-B5LNOVX3.js.map} +0 -0
  56. /package/lib/{chunk-D65UDVQD.js.map → chunk-DX3D2XZ3.js.map} +0 -0
  57. /package/lib/{chunk-QLPYMSRX.js.map → chunk-ETUGBNCT.js.map} +0 -0
  58. /package/lib/{chunk-YEV4EYDY.js.map → chunk-IK2PE6IH.js.map} +0 -0
  59. /package/lib/{chunk-NTLEUEZI.js.map → chunk-JURNVTQE.js.map} +0 -0
  60. /package/lib/{chunk-CCFVCRAB.js.map → chunk-KASA2EOQ.js.map} +0 -0
  61. /package/lib/{chunk-CDLQI5ZO.js.map → chunk-KWR5UGTL.js.map} +0 -0
  62. /package/lib/{chunk-K4KEQFTU.js.map → chunk-NIASZQ5Z.js.map} +0 -0
  63. /package/lib/{chunk-4F62GJFK.js.map → chunk-PH74HXF3.js.map} +0 -0
  64. /package/lib/{chunk-HV44MLJG.js.map → chunk-PRVQK7HO.js.map} +0 -0
  65. /package/lib/{chunk-FKFODQAR.js.map → chunk-XJWATGGD.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sui/sui-processor.ts","../../../node_modules/.pnpm/@typemove+sui@1.8.1_typescript@5.5.2/node_modules/@typemove/sui/src/models.ts","../../../node_modules/.pnpm/@typemove+sui@1.8.1_typescript@5.5.2/node_modules/@typemove/sui/src/transaction.ts","../../../node_modules/.pnpm/@typemove+sui@1.8.1_typescript@5.5.2/node_modules/@typemove/sui/src/to-internal.ts","../../../node_modules/.pnpm/@typemove+sui@1.8.1_typescript@5.5.2/node_modules/@typemove/sui/src/sui-chain-adapter.ts","../../../node_modules/.pnpm/@typemove+sui@1.8.1_typescript@5.5.2/node_modules/@typemove/sui/src/move-coder.ts","../src/sui/move-coder.ts","../src/sui/context.ts","../src/sui/utils.ts","../src/sui/sui-object-processor.ts","../src/sui/sui-object-processor-template.ts","../src/sui/models.ts","../src/sui/sui-plugin.ts","../src/sui/index.ts"],"sourcesContent":["import { Data_SuiCall, Data_SuiEvent, Data_SuiObjectChange, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage, mergeProcessResults } from '@sentio/runtime'\nimport { SuiNetwork } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext, SuiObjectChangeContext } from './context.js'\nimport { MoveCallSuiTransaction, SuiEvent, SuiTransactionBlockResponse, SuiObjectChange } from '@mysten/sui/client'\nimport {\n accountAddressString,\n CallHandler,\n EventFilter,\n EventHandler,\n FunctionNameAndCallFilter,\n ObjectChangeHandler,\n parseMoveType,\n SPLITTER,\n TransactionFilter\n} from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\nimport { defaultMoveCoder, MoveCoder } from './index.js'\nimport { ALL_ADDRESS, Labels } from '../core/index.js'\nimport { Required } from 'utility-types'\n\nexport const DEFAULT_FETCH_CONFIG: MoveFetchConfig = {\n resourceChanges: false,\n allEvents: false,\n inputs: false\n}\n\nexport type IndexConfigure = Required<SuiBindOptions, 'startCheckpoint' | 'network'>\n\nexport function configure(options: SuiBindOptions): IndexConfigure {\n return {\n startCheckpoint: options.startCheckpoint || 0n,\n address: options.address === ALL_ADDRESS ? ALL_ADDRESS : accountAddressString(options.address),\n network: options.network || SuiNetwork.MAIN_NET,\n baseLabels: options.baseLabels\n }\n}\n\nexport interface SuiBindOptions {\n address: string\n network?: SuiNetwork\n startCheckpoint?: bigint\n baseLabels?: Labels\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\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: SuiBindOptions) {\n this.moduleName = name\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n this.coder = defaultMoveCoder(this.config.network)\n }\n\n getChainId(): string {\n return this.config.network\n }\n\n protected onMoveEvent(\n handler: (event: SuiEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: Partial<MoveFetchConfig>\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...fetchConfig })\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 const allEventType = new Set(_filters.map((f) => f.type))\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionBlockResponse\n if (!txn.events || !txn.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const processResults = []\n for (const evt of txn.events) {\n const idx = Number(evt.id.eventSeq) || 0\n const [_, module, type] = parseMoveType(evt.type).qname.split(SPLITTER)\n if (!allEventType.has([module, type].join(SPLITTER))) {\n continue\n }\n\n const ctx = new SuiContext(\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 parts = typeQname.split(SPLITTER)\n // if (evt.packageId && parts[0] != evt.packageId) {\n // evt.type = evt.type.replace(parts[0], evt.packageId)\n // }\n const decoded = await processor.coder.decodeEvent<any>(evt)\n await handler(decoded || evt, ctx)\n processResults.push(ctx.stopAndGetResult())\n }\n\n return mergeProcessResults(processResults)\n },\n filters: _filters,\n fetchConfig: _fetchConfig\n })\n return this\n }\n\n protected onEntryFunctionCall(\n handler: (call: MoveCallSuiTransaction, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: Partial<MoveFetchConfig>\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...fetchConfig })\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 handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionBlockResponse\n\n const ctx = new SuiContext(\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: MoveCallSuiTransaction[] = 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 })\n return this\n }\n\n onEvent(handler: (event: SuiEvent, ctx: SuiContext) => void, fetchConfig?: Partial<MoveFetchConfig>): this {\n this.onMoveEvent(handler, { type: '' }, fetchConfig)\n return this\n }\n\n onTransactionBlock(\n handler: (transaction: SuiTransactionBlockResponse, ctx: SuiContext) => void,\n filter?: TransactionFilter,\n fetchConfig?: Partial<MoveFetchConfig>\n ): this {\n const _fetchConfig = MoveFetchConfig.fromPartial({ ...DEFAULT_FETCH_CONFIG, ...fetchConfig })\n\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'transaction is null')\n }\n const tx = data.transaction as SuiTransactionBlockResponse\n\n const ctx = new SuiContext(\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 })\n return this\n }\n\n protected onObjectChange(\n handler: (changes: SuiObjectChange[], ctx: SuiObjectChangeContext) => void,\n type: string\n ): this {\n if (this.config.network === SuiNetwork.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 handler: async function (data: Data_SuiObjectChange) {\n const ctx = new SuiObjectChangeContext(\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.changes as SuiObjectChange[], ctx)\n return ctx.stopAndGetResult()\n },\n type\n })\n\n return this\n }\n}\n\nexport class SuiModulesProcessor extends SuiBaseProcessor {\n static bind(options: SuiBindOptions): SuiModulesProcessor {\n return new SuiModulesProcessor(ALL_ADDRESS, options)\n }\n}\n\nexport class SuiGlobalProcessor extends SuiBaseProcessor {\n static bind(options: Omit<SuiBindOptions, 'address'>): SuiGlobalProcessor {\n return new SuiGlobalProcessor(ALL_ADDRESS, { ...options, address: ALL_ADDRESS })\n }\n onTransactionBlock(\n handler: (transaction: SuiTransactionBlockResponse, ctx: SuiContext) => 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: SuiObjectChange[], ctx: SuiObjectChangeContext) => 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 { SuiEvent, MoveCallSuiTransaction, SuiMoveObject, DevInspectResults } from '@mysten/sui/client'\nimport { DecodedStruct } from '@typemove/move'\n\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\nexport type TypedEventInstance<T> = DecodedStruct<SuiEvent, T>\nexport type TypedSuiMoveObject<T> = DecodedStruct<SuiMoveObject, T>\n\nexport type TypedFunctionPayload<T extends Array<any>> = MoveCallSuiTransaction & {\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 '@mysten/sui/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 SuiMoveNormalizedField,\n SuiMoveNormalizedFunction,\n SuiMoveNormalizedModule,\n SuiMoveNormalizedStruct,\n SuiMoveNormalizedType\n} from '@mysten/sui/client'\nimport {\n InternalMoveFunction,\n InternalMoveFunctionVisibility,\n InternalMoveModule,\n InternalMoveStruct,\n InternalMoveStructField,\n SPLITTER,\n TypeDescriptor\n} from '@typemove/move'\n\nexport function toInternalModule(module: SuiMoveNormalizedModule): 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 }\n}\n\nfunction toInternalFunction(name: string, func: SuiMoveNormalizedFunction): 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: SuiMoveNormalizedStruct): 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\nfunction toInternalField(module: SuiMoveNormalizedField): InternalMoveStructField {\n return {\n name: module.name,\n type: toTypeDescriptor(module.type)\n }\n}\n\nfunction toTypeDescriptor(normalizedType: SuiMoveNormalizedType): 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 { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject, SuiClient } from '@mysten/sui/client'\n\nexport class SuiChainAdapter extends ChainAdapter<\n // SuiNetwork,\n SuiMoveNormalizedModule,\n SuiEvent | SuiMoveObject\n> {\n async getChainId() {\n return this.client.getChainIdentifier()\n }\n // static INSTANCE = new SuiChainAdapter()\n\n client: SuiClient\n constructor(client: SuiClient) {\n super()\n this.client = client\n }\n\n async fetchModule(\n account: string,\n module: string\n // network: SuiNetwork\n ): Promise<SuiMoveNormalizedModule> {\n return await this.client.getNormalizedMoveModule({ package: account, module })\n }\n\n async fetchModules(\n account: string\n // network: SuiNetwork\n ): Promise<SuiMoveNormalizedModule[]> {\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: SuiMoveNormalizedModule[]): 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: SuiEvent | SuiMoveObject): string {\n return base.type\n }\n\n getData(val: SuiEvent | SuiMoveObject) {\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 (SuiParsedData.is(val)) {\n // return val.fields as any\n // }\n if (val.dataType === 'moveObject') {\n return val.fields as any\n }\n // if (SuiMoveObject.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\n// function getRpcEndpoint(network: SuiNetwork): string {\n// switch (network) {\n// case SuiNetwork.TEST_NET:\n// return 'https://fullnode.testnet.sui.io/'\n// }\n// return 'https://fullnode.mainnet.sui.io/'\n// }\n\nfunction getRpcClient(endpoint: string): SuiClient {\n return new SuiClient({ 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 MoveCallSuiTransaction,\n SuiCallArg,\n SuiEvent,\n SuiMoveNormalizedModule,\n SuiMoveObject,\n DevInspectResults,\n SuiClient\n} from '@mysten/sui/client'\nimport { toInternalModule } from './to-internal.js'\nimport { SuiChainAdapter } from './sui-chain-adapter.js'\nimport { dynamic_field } from './builtin/0x2.js'\nimport { BcsType, bcs } from '@mysten/sui/bcs'\n\n// import { Encoding } from '@mysten/bcs/types', this doesn't get exported correctly\nexport type Encoding = 'base58' | 'base64' | 'hex'\n\nimport { normalizeSuiObjectId, normalizeSuiAddress } from '@mysten/sui/utils'\n\nexport class MoveCoder extends AbstractMoveCoder<\n // SuiNetwork,\n SuiMoveNormalizedModule,\n SuiEvent | SuiMoveObject\n> {\n constructor(client: SuiClient) {\n super(new SuiChainAdapter(client))\n }\n\n load(module: SuiMoveNormalizedModule, 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 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 normalizeSuiObjectId(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 normalizeSuiAddress(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: SuiEvent): Promise<TypedEventInstance<T> | undefined> {\n return this.decodedStruct(event)\n }\n filterAndDecodeEvents<T>(type: TypeDescriptor<T> | string, resources: SuiEvent[]): 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: SuiMoveObject[],\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: SuiMoveObject[]\n ): Promise<DecodedStruct<SuiMoveObject, T>[]> {\n return this.filterAndDecodeStruct(type, objects)\n }\n\n async decodeFunctionPayload(payload: MoveCallSuiTransaction, inputs: SuiCallArg[]): Promise<MoveCallSuiTransaction> {\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://fullnode.mainnet.sui.io/'\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 SuiClient({ url: endpoint }))\n CODER_MAP.set(endpoint, coder)\n }\n return coder\n}\n\nconst PROVIDER_CODER_MAP = new Map<SuiClient, MoveCoder>()\n\nlet DEFAULT_CHAIN_ID: string | undefined\n\nexport async function getMoveCoder(client: SuiClient): 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/sui'\n\nimport { getClient, SuiNetwork } from './network.js'\n\nconst CODERS = new Map<SuiNetwork, MoveCoder>()\n\nexport function defaultMoveCoder(network: SuiNetwork = SuiNetwork.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, SuiNetwork } from './network.js'\nimport {\n SuiTransactionBlockResponse,\n SuiEvent,\n SuiMoveNormalizedModule,\n SuiMoveObject,\n SuiClient\n} from '@mysten/sui/client'\nimport { MoveCoder } from './index.js'\nimport { defaultMoveCoder } from './move-coder.js'\nimport { MoveAccountContext, MoveContext } from '../move/index.js'\n\nexport class SuiContext extends MoveContext<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {\n moduleName: string\n timestamp: Date\n checkpoint: bigint\n transaction: SuiTransactionBlockResponse\n eventIndex: number\n coder: MoveCoder\n\n constructor(\n moduleName: string,\n network: SuiNetwork,\n address: string,\n timestamp: Date,\n checkpoint: bigint,\n transaction: SuiTransactionBlockResponse,\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(): SuiClient {\n return getClient(this.network)\n }\n}\n\nexport class SuiObjectChangeContext extends MoveContext<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {\n timestamp: Date\n checkpoint: bigint\n coder: MoveCoder\n txDigest: string\n\n constructor(\n network: SuiNetwork,\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(): SuiClient {\n return getClient(this.network)\n }\n}\n\n// TODO address handler should use this context\nexport class SuiAddressContext extends MoveAccountContext<\n SuiNetwork,\n SuiMoveNormalizedModule,\n SuiEvent | SuiMoveObject\n> {\n address: string\n network: SuiNetwork\n checkpoint: bigint\n timestamp: Date\n coder: MoveCoder\n\n protected contractName = 'address'\n\n constructor(\n network: SuiNetwork,\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(): SuiClient {\n return getClient(this.network)\n }\n\n getTimestamp(): number {\n return this.timestamp.getDate()\n }\n}\n\nexport class SuiObjectContext extends SuiAddressContext {\n contractName = 'object'\n objectId: string\n\n constructor(\n network: SuiNetwork,\n objectId: string,\n checkpoint: bigint,\n timestamp: Date,\n baseLabels: Labels | undefined\n ) {\n super(network, objectId, checkpoint, timestamp, baseLabels)\n this.objectId = objectId\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n SuiTransactionBlockResponse,\n MoveCallSuiTransaction,\n ProgrammableTransaction,\n SuiTransaction\n} from '@mysten/sui/client'\nimport { accountTypeString } from '@typemove/move'\n\nexport function getMoveCalls(txBlock: SuiTransactionBlockResponse) {\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: SuiTransaction) => {\n if ('MoveCall' in tx) {\n const call = tx.MoveCall as MoveCallSuiTransaction\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 isValidSuiAddress(value: string): value is SuiAddress {\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 (!isValidSuiAddress(address)) {\n// throw Error('Not valid Address')\n// }\n// return normalizeSuiAddress(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 { SuiNetwork } from './network.js'\nimport { SuiAddressContext, SuiContext, SuiObjectChangeContext, SuiObjectContext } from './context.js'\nimport { SuiMoveObject, SuiObjectChange, SuiTransactionBlockResponse } from '@mysten/sui/client'\nimport { ALL_ADDRESS, PromiseOrVoid } from '../core/index.js'\nimport { configure, DEFAULT_FETCH_CONFIG, IndexConfigure, SuiBindOptions } from './sui-processor.js'\nimport { CallHandler, TransactionFilter, accountTypeString, ObjectChangeHandler } from '../move/index.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { TypeDescriptor } from '@typemove/move'\nimport { TypedSuiMoveObject } from './models.js'\n\nexport interface SuiObjectBindOptions {\n objectId: string\n network?: SuiNetwork\n startCheckpoint?: bigint\n baseLabels?: { [key: string]: string }\n}\n\nexport interface SuiObjectTypeBindOptions<T> {\n objectType: TypeDescriptor<T>\n network?: SuiNetwork\n startCheckpoint?: 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}\n\nexport const DEFAULT_ACCOUNT_FETCH_CONFIG: MoveAccountFetchConfig = {\n owned: false\n}\n\nexport class SuiAccountProcessorState extends ListStateStorage<SuiBaseObjectOrAddressProcessor<any>> {\n static INSTANCE = new SuiAccountProcessorState()\n}\n\nexport interface SuiInternalObjectsBindOptions extends SuiBindOptions {\n ownerType: MoveOwnerType\n}\n\nexport abstract class SuiBaseObjectOrAddressProcessor<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: SuiObjectsBindOptions): SuiBaseObjectsProcessor<any> {\n // return new SuiBaseObjectsProcessor(options)\n // }\n\n protected constructor(options: SuiInternalObjectsBindOptions) {\n if (options.ownerType === MoveOwnerType.TYPE) {\n this.config = {\n startCheckpoint: options.startCheckpoint || 0n,\n address: options.address === '*' ? '*' : accountTypeString(options.address),\n network: options.network || SuiNetwork.MAIN_NET,\n baseLabels: options.baseLabels\n }\n } else {\n this.config = configure(options)\n }\n this.ownerType = options.ownerType\n SuiAccountProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return this.config.network\n }\n\n // protected abstract transformObjects(objects: SuiMoveObject[]): SuiMoveObject[]\n\n protected abstract doHandle(handler: HandlerType, data: Data_SuiObject, ctx: SuiObjectContext): Promise<any>\n\n public onInterval(\n handler: HandlerType, //(resources: SuiMoveObject[], ctx: SuiObjectsContext) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n checkpointInterval: HandleInterval | undefined,\n type: string | undefined,\n fetchConfig: Partial<MoveAccountFetchConfig> | undefined\n ): this {\n const processor = this\n this.objectHandlers.push({\n handler: async function (data) {\n const ctx = new SuiObjectContext(\n processor.config.network,\n processor.config.address,\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 SuiBaseObjectOrAddressProcessorInternal<\n HandlerType\n> extends SuiBaseObjectOrAddressProcessor<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 SuiAddressProcessor extends SuiBaseObjectOrAddressProcessorInternal<\n (objects: SuiMoveObject[], ctx: SuiAddressContext) => PromiseOrVoid\n> {\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n static bind(options: SuiBindOptions): SuiAddressProcessor {\n return new SuiAddressProcessor({ ...options, ownerType: MoveOwnerType.ADDRESS })\n }\n\n protected async doHandle(\n handler: (objects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: SuiObjectContext\n ) {\n return handler(data.objects as SuiMoveObject[], ctx)\n }\n\n onTransactionBlock(\n handler: (transaction: SuiTransactionBlockResponse, ctx: SuiContext) => void,\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 handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'transaction is null')\n }\n const tx = data.transaction as SuiTransactionBlockResponse\n\n const ctx = new SuiContext(\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 SuiObjectProcessor extends SuiBaseObjectOrAddressProcessorInternal<\n (self: SuiMoveObject, dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid\n> {\n static bind(options: SuiObjectBindOptions): SuiObjectProcessor {\n return new SuiObjectProcessor({\n address: options.objectId,\n network: options.network,\n startCheckpoint: options.startCheckpoint,\n ownerType: MoveOwnerType.OBJECT,\n baseLabels: options.baseLabels\n })\n }\n\n protected async doHandle(\n handler: (self: SuiMoveObject, dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: SuiObjectContext\n ) {\n if (!data.self) {\n console.log(`Sui object not existed in ${ctx.checkpoint}, please specific a start time`)\n return\n }\n return handler(data.self as SuiMoveObject, data.objects as SuiMoveObject[], ctx)\n }\n}\n\nexport class SuiObjectTypeProcessor<T> extends SuiBaseObjectOrAddressProcessor<\n (self: TypedSuiMoveObject<T>, dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid\n> {\n objectType: TypeDescriptor<T>\n\n static bind<T>(options: SuiObjectTypeBindOptions<T>): SuiObjectTypeProcessor<T> {\n const processor = new SuiObjectTypeProcessor<T>({\n address: ALL_ADDRESS, // current only support on all address\n network: options.network,\n startCheckpoint: options.startCheckpoint,\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: TypedSuiMoveObject<T>,\n dynamicFieldObjects: SuiMoveObject[],\n ctx: SuiObjectContext\n ) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: SuiObjectContext\n ) {\n if (!data.self) {\n console.log(`Sui object not existed in ${ctx.checkpoint}, please specific a start time`)\n return\n }\n const object = await ctx.coder.filterAndDecodeObjects(this.objectType, [data.self as SuiMoveObject])\n return handler(object[0], data.objects as SuiMoveObject[], ctx)\n }\n\n public onObjectChange(handler: (changes: SuiObjectChange[], ctx: SuiObjectChangeContext) => void): this {\n if (this.config.network === SuiNetwork.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 handler: async function (data: Data_SuiObjectChange) {\n const ctx = new SuiObjectChangeContext(\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.changes as SuiObjectChange[], ctx)\n return ctx.stopAndGetResult()\n },\n type: this.objectType.qname\n })\n\n return this\n }\n\n public onTimeInterval(\n handler: (\n self: TypedSuiMoveObject<T>,\n dynamicFieldObjects: SuiMoveObject[],\n ctx: SuiObjectContext\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.qname,\n fetchConfig\n )\n }\n\n public onCheckpointInterval(\n handler: (\n self: TypedSuiMoveObject<T>,\n dynamicFieldObjects: SuiMoveObject[],\n ctx: SuiObjectContext\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 SuiWrappedObjectProcessor extends SuiBaseObjectOrAddressProcessor<\n (dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid\n> {\n static bind(options: SuiObjectBindOptions): SuiWrappedObjectProcessor {\n return new SuiWrappedObjectProcessor({\n address: options.objectId,\n network: options.network,\n startCheckpoint: options.startCheckpoint,\n ownerType: MoveOwnerType.WRAPPED_OBJECT,\n baseLabels: options.baseLabels\n })\n }\n\n protected async doHandle(\n handler: (dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid,\n data: Data_SuiObject,\n ctx: SuiObjectContext\n ) {\n return handler(data.objects as SuiMoveObject[], 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 { SuiAddressContext, SuiContext, SuiObjectContext } from './context.js'\nimport { SuiMoveObject, SuiTransactionBlockResponse } from '@mysten/sui/client'\nimport { PromiseOrVoid } from '../core/index.js'\nimport {\n DEFAULT_ACCOUNT_FETCH_CONFIG,\n SuiAccountProcessorState,\n SuiAddressProcessor,\n SuiBaseObjectOrAddressProcessor,\n SuiObjectBindOptions,\n SuiObjectProcessor,\n SuiWrappedObjectProcessor\n} from './sui-object-processor.js'\nimport { TemplateInstanceState } from '../core/template.js'\nimport { SuiBindOptions } from './sui-processor.js'\nimport { TransactionFilter, accountAddressString } from '../move/index.js'\nimport { ServerError, Status } from 'nice-grpc'\n\nclass ObjectHandler<HandlerType> {\n type?: string\n checkpointInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: HandlerType\n fetchConfig: MoveAccountFetchConfig\n}\n\nexport class SuiAccountProcessorTemplateState extends ListStateStorage<\n SuiObjectOrAddressProcessorTemplate<any, any, any>\n> {\n static INSTANCE = new SuiAccountProcessorTemplateState()\n}\n\nexport abstract class SuiObjectOrAddressProcessorTemplate<\n HandlerType,\n OptionType extends SuiObjectBindOptions | SuiBindOptions,\n ProcessorType extends SuiBaseObjectOrAddressProcessor<HandlerType>\n> {\n id: number\n objectHandlers: ObjectHandler<HandlerType>[] = []\n binds = new Set<string>()\n\n constructor() {\n this.id = SuiAccountProcessorTemplateState.INSTANCE.getValues().length\n SuiAccountProcessorTemplateState.INSTANCE.addValue(this)\n }\n\n protected abstract createProcessor(options: SuiObjectBindOptions | SuiBindOptions): ProcessorType\n\n bind(options: OptionType, ctx: SuiContext): void {\n options.network = options.network || ctx.network\n options.startCheckpoint = options.startCheckpoint || ctx.checkpoint\n let id = (options as SuiObjectBindOptions).objectId || (options as SuiBindOptions).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(h.handler, h.timeIntervalInMinutes, h.checkpointInterval, h.type, h.fetchConfig)\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: 0n,\n baseLabels: config.baseLabels\n })\n console.log(`successfully bind template ${sig}`)\n }\n\n unbind(options: OptionType, ctx: SuiContext): void {\n options.network = options.network || ctx.network\n options.startCheckpoint = options.startCheckpoint || ctx.checkpoint\n let id = (options as SuiObjectBindOptions).objectId || (options as SuiBindOptions).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 = SuiAccountProcessorState.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 SuiAccountProcessorState.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 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: SuiTransactionBlockResponse, ctx: SuiContext) => void\n filter?: TransactionFilter\n fetchConfig?: Partial<MoveFetchConfig>\n}\n\nexport class SuiAddressProcessorTemplate extends SuiObjectOrAddressProcessorTemplate<\n (objects: SuiMoveObject[], ctx: SuiAddressContext) => PromiseOrVoid,\n SuiBindOptions,\n SuiAddressProcessor\n> {\n private handlers: AddressTransactionHandler[] = []\n\n createProcessor(options: SuiBindOptions): SuiAddressProcessor {\n const p = SuiAddressProcessor.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: SuiTransactionBlockResponse, ctx: SuiContext) => 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 SuiObjectProcessorTemplate extends SuiObjectOrAddressProcessorTemplate<\n (self: SuiMoveObject, dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid,\n SuiObjectBindOptions,\n SuiObjectProcessor\n> {\n createProcessor(options: SuiObjectBindOptions): SuiObjectProcessor {\n const p = SuiObjectProcessor.bind(options)\n p.templateId = this.id\n return p\n }\n}\n\nexport class SuiWrappedObjectProcessorTemplate extends SuiObjectOrAddressProcessorTemplate<\n (dynamicFieldObjects: SuiMoveObject[], ctx: SuiObjectContext) => PromiseOrVoid,\n SuiObjectBindOptions,\n SuiWrappedObjectProcessor\n> {\n createProcessor(options: SuiObjectBindOptions): SuiWrappedObjectProcessor {\n const p = SuiWrappedObjectProcessor.bind(options)\n p.templateId = this.id\n return p\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import type { SuiEvent, MoveCallSuiTransaction, SuiMoveObject } from '@mysten/sui/client'\nimport { DecodedStruct } from '@typemove/move'\n\nexport type TypedEventInstance<T> = DecodedStruct<SuiEvent, T>\nexport type TypedSuiMoveObject<T> = DecodedStruct<SuiMoveObject, T>\n\nexport type TypedFunctionPayload<T extends Array<any>> = MoveCallSuiTransaction & {\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;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { errorString, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport {\n AccountConfig,\n ContractConfig,\n Data_SuiCall,\n Data_SuiEvent,\n Data_SuiObject,\n Data_SuiObjectChange,\n DataBinding,\n HandlerType,\n MoveCallHandlerConfig,\n MoveEventHandlerConfig,\n MoveResourceChangeConfig,\n ProcessConfigResponse,\n ProcessResult,\n StartRequest\n} from '@sentio/protos'\n\nimport { ServerError, Status } from 'nice-grpc'\n\nimport { SuiProcessorState } from './sui-processor.js'\nimport { SuiAccountProcessorState, SuiAddressProcessor } from './sui-object-processor.js'\nimport { initCoinList } from './ext/coin.js'\nimport { SuiChainId } from '@sentio/chain'\nimport {\n SuiAccountProcessorTemplateState,\n SuiObjectOrAddressProcessorTemplate\n} from './sui-object-processor-template.js'\nimport { SuiNetwork } from './network.js'\nimport { SuiContext } from './context.js'\n\ninterface Handlers {\n suiEventHandlers: ((event: Data_SuiEvent) => Promise<ProcessResult>)[]\n suiCallHandlers: ((func: Data_SuiCall) => Promise<ProcessResult>)[]\n suiObjectHandlers: ((object: Data_SuiObject) => Promise<ProcessResult>)[]\n suiObjectChangeHandlers: ((object: Data_SuiObjectChange) => Promise<ProcessResult>)[]\n}\n\nexport class SuiPlugin extends Plugin {\n name: string = 'SuiPlugin'\n handlers: Handlers = {\n suiCallHandlers: [],\n suiEventHandlers: [],\n suiObjectHandlers: [],\n suiObjectChangeHandlers: []\n }\n async start(request: StartRequest): Promise<void> {\n await initCoinList()\n\n console.log('total instances:', request.templateInstances.length)\n const allowedChainIds = new Set<string>(Object.values(SuiChainId))\n for (const instance of request.templateInstances) {\n if (!allowedChainIds.has(instance.contract?.chainId || '')) {\n continue\n }\n\n console.log('start template instance', instance.templateId)\n const template: SuiObjectOrAddressProcessorTemplate<any, any, any> =\n SuiAccountProcessorTemplateState.INSTANCE.getValues()[instance.templateId]\n\n template.bind(\n {\n address: instance.contract?.address || '',\n objectId: instance.contract?.address || '',\n network: <SuiNetwork>instance.contract?.chainId || SuiNetwork.MAIN_NET,\n startCheckpoint: instance.startBlock || 0n,\n baseLabels: instance.baseLabels\n },\n NoopContext\n )\n }\n }\n\n async configure(config: ProcessConfigResponse) {\n const handlers: Handlers = {\n suiCallHandlers: [],\n suiEventHandlers: [],\n suiObjectHandlers: [],\n suiObjectChangeHandlers: []\n }\n for (const suiProcessor of SuiProcessorState.INSTANCE.getValues()) {\n const contractConfig = ContractConfig.fromPartial({\n transactionConfig: [],\n processorType: USER_PROCESSOR,\n contract: {\n name: suiProcessor.moduleName,\n chainId: suiProcessor.config.network,\n address: suiProcessor.config.address,\n abi: ''\n },\n startBlock: suiProcessor.config.startCheckpoint\n })\n for (const handler of suiProcessor.eventHandlers) {\n const handlerId = handlers.suiEventHandlers.push(handler.handler) - 1\n const eventHandlerConfig: MoveEventHandlerConfig = {\n filters: handler.filters.map((f) => {\n return {\n type: f.type,\n account: f.account || ''\n }\n }),\n fetchConfig: handler.fetchConfig,\n handlerId\n }\n contractConfig.moveEventConfigs.push(eventHandlerConfig)\n }\n for (const handler of suiProcessor.callHandlers) {\n const handlerId = handlers.suiCallHandlers.push(handler.handler) - 1\n const functionHandlerConfig: MoveCallHandlerConfig = {\n filters: handler.filters.map((filter) => {\n return {\n function: filter.function,\n typeArguments: filter.typeArguments || [],\n withTypeArguments: !!filter.typeArguments,\n includeFailed: filter.includeFailed || false,\n publicKeyPrefix: filter.publicKeyPrefix || '',\n fromAndToAddress: filter.fromAndToAddress\n }\n }),\n fetchConfig: handler.fetchConfig,\n handlerId\n }\n contractConfig.moveCallConfigs.push(functionHandlerConfig)\n }\n // deprecated, use objectType processor instead\n for (const handler of suiProcessor.objectChangeHandlers) {\n const handlerId = handlers.suiObjectChangeHandlers.push(handler.handler) - 1\n const objectChangeHandler: MoveResourceChangeConfig = {\n type: handler.type,\n handlerId\n }\n contractConfig.moveResourceChangeConfigs.push(objectChangeHandler)\n }\n config.contractConfigs.push(contractConfig)\n }\n\n for (const processor of SuiAccountProcessorState.INSTANCE.getValues()) {\n const accountConfig = AccountConfig.fromPartial({\n address: processor.config.address,\n chainId: processor.getChainId(),\n startBlock: processor.config.startCheckpoint // TODO maybe use another field\n })\n for (const handler of processor.objectHandlers) {\n const handlerId = handlers.suiObjectHandlers.push(handler.handler) - 1\n\n for (const handler of processor.objectChangeHandlers) {\n const handlerId = handlers.suiObjectChangeHandlers.push(handler.handler) - 1\n const objectChangeHandler: MoveResourceChangeConfig = {\n type: handler.type,\n handlerId\n }\n accountConfig.moveResourceChangeConfigs.push(objectChangeHandler)\n }\n\n accountConfig.moveIntervalConfigs.push({\n intervalConfig: {\n handlerId: handlerId,\n minutes: 0,\n minutesInterval: handler.timeIntervalInMinutes,\n slot: 0,\n slotInterval: handler.checkPointInterval,\n fetchConfig: undefined\n },\n type: handler.type || '',\n ownerType: processor.ownerType,\n fetchConfig: handler.fetchConfig\n })\n }\n\n if (processor instanceof SuiAddressProcessor) {\n for (const handler of processor.callHandlers) {\n const handlerId = handlers.suiCallHandlers.push(handler.handler) - 1\n const functionHandlerConfig: MoveCallHandlerConfig = {\n filters: handler.filters.map((filter) => {\n return {\n function: filter.function,\n typeArguments: filter.typeArguments || [],\n withTypeArguments: !!filter.typeArguments,\n includeFailed: filter.includeFailed || false,\n publicKeyPrefix: filter.publicKeyPrefix || '',\n fromAndToAddress: filter.fromAndToAddress\n }\n }),\n fetchConfig: handler.fetchConfig,\n handlerId\n }\n accountConfig.moveCallConfigs.push(functionHandlerConfig)\n }\n }\n\n config.accountConfigs.push(accountConfig)\n }\n this.handlers = handlers\n }\n\n async processSuiEvent(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.suiEvent) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Event can't be empty\")\n }\n const promises: Promise<ProcessResult>[] = []\n const event = binding.data.suiEvent\n\n for (const handlerId of binding.handlerIds) {\n promises.push(\n this.handlers.suiEventHandlers[handlerId](event).catch((e) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing event: ' + JSON.stringify(event) + '\\n' + errorString(e)\n )\n })\n )\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n async processSuiFunctionCall(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.suiCall) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Call can't be empty\")\n }\n const call = binding.data.suiCall\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlers.suiCallHandlers[handlerId](call).catch((e) => {\n throw new ServerError(Status.INTERNAL, 'error processing call: ' + JSON.stringify(call) + '\\n' + errorString(e))\n })\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n async processSuiObject(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.suiObject) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Object can't be empty\")\n }\n const object = binding.data.suiObject\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of binding.handlerIds) {\n promises.push(\n this.handlers.suiObjectHandlers[handlerId](object).catch((e) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing object: ' + JSON.stringify(object) + '\\n' + errorString(e)\n )\n })\n )\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n async processSuiObjectChange(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.suiObjectChange) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Object change can't be empty\")\n }\n const objectChange = binding.data.suiObjectChange\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of binding.handlerIds) {\n promises.push(\n this.handlers.suiObjectChangeHandlers[handlerId](objectChange).catch((e) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing object change: ' + JSON.stringify(objectChange) + '\\n' + errorString(e)\n )\n })\n )\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n supportedHandlers = [\n HandlerType.SUI_EVENT,\n HandlerType.SUI_CALL,\n HandlerType.SUI_OBJECT,\n HandlerType.SUI_OBJECT_CHANGE\n ]\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.SUI_EVENT:\n return this.processSuiEvent(request)\n case HandlerType.SUI_CALL:\n return this.processSuiFunctionCall(request)\n case HandlerType.SUI_OBJECT:\n return this.processSuiObject(request)\n case HandlerType.SUI_OBJECT_CHANGE:\n return this.processSuiObjectChange(request)\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n }\n}\n\nPluginManager.INSTANCE.register(new SuiPlugin())\n\nconst NoopContext = new SuiContext('', SuiChainId.SUI_MAINNET, '', new Date(), 0n, {} as any, 0, {})\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","export { SuiBaseProcessor, SuiGlobalProcessor, SuiModulesProcessor, type SuiBindOptions } from './sui-processor.js'\nexport {\n SuiAddressProcessor,\n SuiObjectProcessor,\n SuiObjectTypeProcessor,\n SuiWrappedObjectProcessor,\n type SuiObjectBindOptions,\n type SuiObjectTypeBindOptions\n} from './sui-object-processor.js'\n\nexport {\n SuiAddressProcessorTemplate,\n SuiObjectProcessorTemplate,\n SuiWrappedObjectProcessorTemplate\n} from './sui-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 { SuiPlugin } from './sui-plugin.js'\n\nexport { BUILTIN_TYPES } from '@typemove/move'\n\nexport { MoveCoder } from '@typemove/sui'\n\n// export { validateAndNormalizeAddress, isValidSuiAddress } from './utils.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";4YACA,OAAS,oBAAAA,GAAkB,uBAAAC,OAA2B,kBAEtD,IAAAC,EAAoC,SCA7B,IAAMC,GAAe,qECDtB,SAAUC,EAAsBC,EAAU,CAE9C,OADI,OAAOA,GAAU,UACjBA,GAAU,KAAoC,GAGhDA,EAAM,QAAU,WAAaA,EAAM,QAAU,UAAYA,EAAM,QAAU,gBAAkBA,EAAM,QAAU,OAE/G,CAPgBC,EAAAF,EAAA,yBASV,SAAUG,GACdF,EACAG,EAA6B,CAE7B,OAAIJ,EAAsBC,CAAK,EACtBA,EAEFG,EAAiB,OAAOH,CAAK,CACtC,CARgBC,EAAAC,GAAA,+BAUV,SAAUE,GAA0BJ,EAAYG,EAA6B,CACjF,OAAIJ,EAAsBC,CAAK,EACtBA,EAEF,OAAOA,GAAS,SAAWG,EAAiB,KAAK,OAAOH,CAAK,EAAIG,EAAiB,KAAK,IAAIH,CAAK,CACzG,CALgBC,EAAAG,GAAA,6BAiBV,SAAUC,GACdC,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,QAAQD,CAAe,CACtD,CARgBG,EAAAJ,GAAA,oCAUV,SAAUK,GACdJ,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,GAAGD,CAAe,CACjD,CARgBG,EAAAC,GAAA,+BAUV,SAAUC,GACdL,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,IAAID,CAAe,CAClD,CARgBG,EAAAE,GAAA,gCAUV,SAAUC,GACdN,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,IAAID,CAAe,CAClD,CARgBG,EAAAG,GAAA,gCAUV,SAAUC,GACdP,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,IAAID,CAAe,CAClD,CARgBG,EAAAI,GAAA,gCAUV,SAAUC,GACdR,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,KAAKD,CAAe,CACnD,CARgBG,EAAAK,GAAA,iCAUV,SAAUC,GACdT,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,KAAKD,CAAe,CACnD,CARgBG,EAAAM,GAAA,iCAUV,SAAUC,GACdV,EACAC,EAA6B,CAE7B,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,KAAK,KAAKD,CAAgB,CACpD,CARgBG,EAAAO,GAAA,iCAWV,SAAUC,GAAyBX,EAAYC,EAA6B,CAChF,OAAIC,EAAsBF,CAAK,EACtBA,EAEFC,EAAiB,YAAY,CAClC,SAAUD,EAAM,IAAKY,GAAWX,EAAiB,OAAOW,CAAC,CAAC,EAC3D,CACH,CAPgBT,EAAAQ,GAAA,4BCtGV,SAAUE,EAAiBC,EAA+B,CAC9D,MAAO,CACL,QAASA,EAAO,QAChB,iBAAkB,OAAO,QAAQA,EAAO,gBAAgB,EAAE,IAAI,CAAC,CAACC,EAAGC,CAAC,IAAMC,GAAmBF,EAAGC,CAAC,CAAC,EAClG,KAAMF,EAAO,KACb,QAAS,OAAO,QAAQA,EAAO,OAAO,EAAE,IAAI,CAAC,CAACC,EAAGG,CAAC,IAAMC,GAAiBJ,EAAGG,CAAC,CAAC,EAElF,CAPgBE,EAAAP,EAAA,oBAShB,SAASI,GAAmBI,EAAcC,EAA+B,CACvE,IAAIC,EACJ,OAAQD,EAAK,WAAY,CACvB,IAAK,UACHC,EAAaC,EAA+B,QAC5C,MACF,IAAK,SACHD,EAAaC,EAA+B,OAC5C,MACF,IAAK,SACHD,EAAaC,EAA+B,OAC5C,MACF,QACE,MAAM,MAAM,6BAA+BH,CAAI,CACnD,CACA,MAAO,CACL,WAAYC,EAAK,eAAe,IAAKG,IAC5B,CAAE,YAAaA,EAAE,SAAS,EAClC,EACD,QAASH,EAAK,QACd,KAAMD,EACN,OAAQC,EAAK,WAAW,IAAII,CAAgB,EAC5C,OAAQJ,EAAK,OAAO,IAAII,CAAgB,EACxC,WAAYH,EAEhB,CAzBSH,EAAAH,GAAA,sBA2BT,SAASE,GAAiBE,EAAcM,EAA+B,CACrE,MAAO,CACL,UAAWA,EAAO,UAAU,UAC5B,OAAQA,EAAO,OAAO,IAAIC,EAAe,EACzC,WAAYD,EAAO,eAAe,IAAKF,IAC9B,CAAE,YAAaA,EAAE,YAAY,SAAS,EAC9C,EACD,SAAU,GACV,QAAS,GACT,KAAMJ,EAEV,CAXSD,EAAAD,GAAA,oBAaT,SAASS,GAAgBd,EAA8B,CACrD,MAAO,CACL,KAAMA,EAAO,KACb,KAAMY,EAAiBZ,EAAO,IAAI,EAEtC,CALSM,EAAAQ,GAAA,mBAOT,SAASF,EAAiBG,EAAqC,CAC7D,GAAI,OAAOA,GAAmB,SAC5B,OAAO,IAAIC,EAAeD,CAAc,EAG1C,GAAI,WAAYA,EAAgB,CAC9B,IAAME,EAAQ,CAACF,EAAe,OAAO,QAASA,EAAe,OAAO,OAAQA,EAAe,OAAO,IAAI,EAAE,KACtGG,CAAQ,EAGJC,EAAOJ,EAAe,OAAO,cAAc,IAAIH,CAAgB,EAErE,OAAO,IAAII,EAAeC,EAAOE,CAAI,CACvC,CAEA,GAAI,WAAYJ,EACd,OAAO,IAAIC,EAAe,SAAU,CAACJ,EAAiBG,EAAe,MAAM,CAAC,CAAC,EAE/E,GAAI,kBAAmBA,EACrB,OAAO,IAAIC,EAAe,IAAMD,EAAe,aAAa,EAG9D,GAAI,cAAeA,EAAgB,CACjC,IAAMK,EAAMR,EAAiBG,EAAe,SAAS,EACrD,OAAAK,EAAI,UAAY,GACTA,CACT,CAEA,GAAI,qBAAsBL,EAAgB,CACxC,IAAMK,EAAMR,EAAiBG,EAAe,gBAAgB,EAC5D,OAAAK,EAAI,UAAY,GAChBA,EAAI,QAAU,GACPA,CACT,CAEA,MAAM,IAAI,MAAM,qBAAqB,CACvC,CApCSd,EAAAM,EAAA,oBC7DH,IAAOS,GAAP,cAA+BC,EAIpC,CAhBD,MAgBC,CAAAC,EAAA,wBACC,MAAM,YAAU,CACd,OAAO,KAAK,OAAO,mBAAkB,CACvC,CAGA,OACA,YAAYC,EAAiB,CAC3B,MAAK,EACL,KAAK,OAASA,CAChB,CAEA,MAAM,YACJC,EACAC,GAGA,OAAO,MAAM,KAAK,OAAO,wBAAwB,CAAE,QAASD,EAAS,OAAAC,CAAM,CAAE,CAC/E,CAEA,MAAM,aACJD,GAGA,IAAME,EAAU,MAAM,KAAK,OAAO,kCAAkC,CAClE,QAASF,EACV,EACD,OAAO,OAAO,OAAOE,CAAO,CAC9B,CAEA,4BAA4BC,EAAwB,CAClD,OAAOA,CAKT,CAEA,kBAAkBD,EAAkC,CAClD,OAAO,OAAO,OAAOA,CAAO,EAAE,IAAIE,CAAgB,CACpD,CAEA,mBAAmBF,EAA6B,CAC9C,IAAMG,EAAW,IAAI,IAErB,QAAWJ,KAAUC,EAAS,CAC5B,IAAMI,EAAQC,GAAYN,CAAM,EAEhC,QAAWO,KAAUP,EAAO,QAAS,CACnC,IAAMQ,EAAY,IAAI,IAAID,EAAO,SAAS,EACtCC,EAAU,IAAI,MAAM,GAAKA,EAAU,IAAI,MAAM,GAC/CJ,EAAS,IAAIC,EAAQI,EAAWF,EAAO,KAAMA,CAAM,CAEvD,CACF,CACA,OAAOH,CACT,CAEA,QAAQM,EAA8B,CACpC,OAAOA,EAAK,IACd,CAEA,QAAQC,EAA6B,CAInC,GAAIA,IAAQ,OACV,MAAM,MAAM,kBAAkB,EAEhC,MAAI,eAAgBA,EACXA,EAAI,WAKTA,EAAI,WAAa,cAOjB,WAAYA,GACV,SAAUA,GAAO,OAAO,KAAKA,CAAG,EAAE,SAAW,EACxCA,EAAI,OAGRA,CACT,GC3EI,IAAOC,EAAP,cAAyBC,EAI9B,CAhCD,MAgCC,CAAAC,EAAA,kBACC,YAAYC,EAAiB,CAC3B,MAAM,IAAIC,GAAgBD,CAAM,CAAC,CACnC,CAEA,KAAKE,EAAiCC,EAAe,CACnD,IAAIC,EAAI,KAAK,cAAc,IAAIF,EAAO,QAAU,KAAOA,EAAO,IAAI,EAC5DG,EAAY,KAAK,cAAc,IAAIF,EAAU,KAAOD,EAAO,IAAI,EACrE,OAAIE,GAAKC,IAGTD,EAAIE,EAAiBJ,CAAM,EAC3B,KAAK,aAAaE,EAAGD,CAAO,GACrBC,CACT,CAEU,MAAM,OAAOG,EAAWC,EAAoB,CACpD,OAAQA,EAAK,MAAO,CAClB,IAAK,mBACH,GAAID,IAAS,QAAa,OAAOA,GAAS,SAAU,CAElD,IAAME,GAAQ,MAAM,MAAM,OAAOF,EAAMC,CAAI,GAAG,KAC9C,OAAO,OAAO,aAAaC,CAAI,CACjC,CACF,IAAK,qBACH,GAAIF,IAAS,QAAa,OAAOA,GAAS,SAAU,CAElD,IAAMG,GAAS,MAAM,MAAM,OAAOH,EAAMC,CAAI,GAAG,MAC/C,OAAO,IAAI,YAAW,EAAG,OAAO,IAAI,WAAWE,CAAK,CAAC,CACvD,CACF,IAAK,kBACH,GAAIH,IAAS,QAAa,OAAOA,GAAS,SAAU,CAElD,IAAMG,GAAS,MAAM,MAAM,OAAOH,EAAMC,CAAI,GAAG,MAC/C,OAAOG,GAAqBD,CAAK,CACnC,CACF,IAAK,gBACH,GAAIH,IAAS,QAAa,OAAOA,GAAS,SAExC,OAAQ,MAAM,MAAM,OAAOA,EAAMC,CAAI,GAAG,IAE5C,IAAK,kBACH,GAAID,IAAS,QAAa,OAAOA,GAAS,SAAU,CAElD,IAAMG,GAAS,MAAM,MAAM,OAAOH,EAAMC,CAAI,GAAG,GAAG,GAAG,MACrD,OAAO,IAAI,YAAW,EAAG,OAAO,IAAI,WAAWE,CAAK,CAAC,CACvD,CACA,OAAOH,EACT,IAAK,wBACH,OAAIA,EAAK,OAES,MAAM,MAAM,OAAOA,EAAMC,CAAI,GAC9B,MAEV,OAAOD,CAAI,EACpB,IAAK,sBACH,GAAIA,IAAS,KACX,OAAOA,EAET,GAAIA,EAAK,IAAK,CAEZ,IAAIK,EAAM,MAAM,MAAM,OAAOL,EAAMC,CAAI,EAEvC,OADAI,EAAMA,EAAI,IACNA,EAAI,SAAW,EACV,KAEFA,EAAI,CAAC,CACd,CACA,OAAO,KAAK,OAAOL,EAAMC,EAAK,SAAS,CAAC,CAAC,EAC3C,IAAK,UAEH,OAAOK,GADKN,CACkB,EAChC,IAAK,sBACH,GAAI,OAAOA,GAAS,SAElB,OAAO,IAAI,YAAW,EAAG,OAAO,IAAI,WAAWA,EAAK,KAAK,CAAC,EAE9D,QACE,OAAO,MAAM,OAAOA,EAAMC,CAAI,CAClC,CACF,CAEA,YAAeM,EAAe,CAC5B,OAAO,KAAK,cAAcA,CAAK,CACjC,CACA,sBAAyBN,EAAkCO,EAAqB,CAC9E,OAAI,OAAOP,GAAS,WAClBA,EAAOQ,EAAcR,CAAI,GAEpB,KAAK,sBAAsBA,EAAMO,CAAS,CACnD,CAEA,MAAM,iBACJE,EACAC,EAA8BC,GAC9BC,EAAgCD,GAAQ,CAIxC,IAAMX,EAAO,IAAIa,EAA4C,2BAA2B,EACxF,OAAAb,EAAK,SAAW,CAACU,EAASE,CAAS,GACvB,MAAM,KAAK,uBAAuBZ,EAAMS,CAAO,GAChD,IAAKK,GAAMA,EAAE,YAAY,CACtC,CAEA,uBACEd,EACAS,EAAwB,CAExB,OAAO,KAAK,sBAAsBT,EAAMS,CAAO,CACjD,CAEA,MAAM,sBAAsBM,EAAiCC,EAAoB,CAC/E,IAAMC,EAAe,CAACF,EAAQ,QAASA,EAAQ,OAAQA,EAAQ,QAAQ,EAAE,KAAKG,CAAQ,EAChFC,EAAO,MAAM,KAAK,gBAAgBF,CAAY,EAC9CG,EAAS,KAAK,QAAQ,4BAA4BD,EAAK,MAAM,EAC7DE,EAAO,CAAA,EACb,QAAWC,KAASP,EAAQ,WAAa,CAAA,EAAI,CAC3C,IAAMQ,EAAWD,EACjB,GAAI,UAAYC,EAAkB,CAChC,IAAMC,EAAMD,EAAS,MACfE,EAAMT,EAAOQ,CAAG,EAClBC,EAAI,OAAS,OACfJ,EAAK,KAAKI,EAAI,KAAK,GACVA,EAAI,OAAS,UAItB,QAAQ,MAAM,+BAA+B,EAC7CJ,EAAK,KAAK,MAAS,EAGvB,MACEA,EAAK,KAAK,MAAS,CAEvB,CAEA,IAAMK,EAAiB,MAAM,KAAK,YAAYL,EAAMD,EAAQ,EAAK,EACjE,MAAO,CACL,GAAGL,EACH,kBAAmBW,EAEvB,CAEQ,cAAgB,IAAI,IACpB,YAAc,IAAI,IAElB,MAAM,mBAAmB1B,EAAsBqB,EAAuB,CAAA,EAAE,CAC9E,IAAMM,EAAQ3B,EAAK,MACb4B,EAAM5B,EAAK,uBAAsB,EACjC6B,EAAS,KAAK,YAAY,IAAID,CAAG,EACvC,GAAIC,EACF,OAAOA,EAET,IAAMC,EAAaH,EAAM,YAAW,EACpC,OAAQG,EAAY,CAClB,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,OAAOC,EAAID,CAAU,EAAC,EACxB,IAAK,UACH,OAAOC,EAAI,QACb,IAAK,SACH,OAAOA,EAAI,OAAOV,EAAK,CAAC,CAAC,EAC3B,QACE,GAAI,CAACM,EAAM,SAAS,IAAI,EACtB,KAAM,8BAA8BA,CAAK,EAE/C,CACA,IAAIK,EACJ,GAAI,CACFA,EAAa,MAAM,KAAK,cAAcL,CAAK,CAC7C,OAASM,EAAG,CACV,cAAQ,MAAM,uBAAwBN,CAAK,EACrCM,CACR,CACA,IAAMC,EAAiC,CAAA,EACvC,QAAWC,KAASH,EAAW,OAC7B,GAAIG,EAAM,KAAK,MAAM,WAAW,GAAG,GAAKd,EAAK,OAAQ,CACnD,IAAMe,EAAQ,CAACD,EAAM,KAAK,MAAM,MAAM,CAAC,EACvCD,EAAUC,EAAM,IAAI,EAAId,EAAKe,CAAK,CACpC,MAAWD,EAAM,KAAK,SAAS,QAAUd,EAAK,OAC5Ca,EAAUC,EAAM,IAAI,EAAI,MAAM,KAAK,mBAAmBA,EAAM,KAAMd,CAAI,EAEtEa,EAAUC,EAAM,IAAI,EAAI,MAAM,KAAK,WAAWA,EAAM,IAAI,EAG5D,OAAOJ,EAAI,OAAOJ,EAAOO,CAAS,CACpC,CAEA,MAAM,WAAWlC,EAAoB,CACnC,IAAMqB,EAAO,MAAM,QAAQ,IAAIrB,EAAK,SAAS,IAAKqC,GAAM,KAAK,WAAWA,CAAC,CAAC,CAAC,EACrEC,EAAU,MAAM,KAAK,mBAAmBtC,EAAMqB,CAAI,EACxD,YAAK,YAAY,IAAIrB,EAAK,uBAAsB,EAAIsC,CAAO,EACpDA,CACT,CAEA,MAAM,iBAAiBtC,EAAoB,CACzC,IAAM4B,EAAM5B,EAAK,uBAAsB,EACvC,GAAI,KAAK,cAAc,IAAI4B,CAAG,EAC5B,OAEF,KAAK,cAAc,IAAIA,CAAG,EAE1B,IAAMU,EAAU,MAAM,KAAK,WAAWtC,CAAI,EAC1C,KAAK,YAAY,IAAIA,EAAK,uBAAsB,EAAIsC,CAAO,CAC7D,CAEA,MAAM,UAAUtC,EAAsBD,EAA2BwC,EAAmB,CAElF,GADA,MAAM,KAAK,iBAAiBvC,CAAI,EAC5B,OAAOD,GAAQ,SAAU,CAC3B,IAAMyC,EAAM,OAAO,KAAKzC,EAAMwC,CAAe,EAC7CxC,EAAO,IAAI,WAAWyC,EAAKA,EAAI,WAAYA,EAAI,UAAU,CAC3D,CAEA,OADgB,KAAK,YAAY,IAAIxC,EAAK,uBAAsB,CAAE,GAClD,MAAMD,CAAI,CAC5B,CAEA,MAAM,uBAAwC0C,EAA6B,CACzE,IAAMC,EAAe,CAAA,EACrB,GAAID,EAAW,SAAW,KACxB,QAAW,KAAKA,EAAW,QACzB,GAAI,EAAE,aACJ,QAAWE,KAAe,EAAE,aAAc,CACxC,IAAM3C,EAAOQ,EAAcmC,EAAY,CAAC,CAAC,EACnCC,EAAa,MAAM,KAAK,UAAU5C,EAAM,IAAI,WAAW2C,EAAY,CAAC,CAAC,CAAC,EACtEE,EAAU,MAAM,KAAK,WAAWD,EAAY5C,CAAI,EACtD0C,EAAa,KAAKG,CAAO,CAC3B,MAEAH,EAAa,KAAK,IAAI,EAI5B,MAAO,CAAE,GAAGD,EAAY,gBAAiBC,CAAmB,CAC9D,GAGII,GAAmB,mCACnBC,GAAY,IAAI,IAGhB,SAAUC,GAAiBC,EAAmBC,GAAgB,CAClE,IAAIC,EAAQC,GAAU,IAAIH,CAAQ,EAClC,OAAKE,IACHA,EAAQ,IAAIE,EAAU,IAAIC,GAAU,CAAE,IAAKL,CAAQ,CAAE,CAAC,EACtDG,GAAU,IAAIH,EAAUE,CAAK,GAExBA,CACT,CAPgBI,EAAAP,GAAA,oBAShB,IAAMQ,GAAqB,IAAI,IAE3BC,GAEJ,eAAsBC,GAAaC,EAAiB,CAClD,IAAIR,EAAQK,GAAmB,IAAIG,CAAM,EACzC,GAAI,CAACR,EAAO,CACVA,EAAQ,IAAIE,EAAUM,CAAM,EAE5B,IAAMC,EAAK,MAAMD,EAAO,mBAAkB,EACpCE,EAAeb,GAAgB,EAChCS,KACHA,GAAmB,MAAMI,EAAa,QAAQ,WAAU,GAEtDD,IAAOH,KACTN,EAAQU,GAGVL,GAAmB,IAAIG,EAAQR,CAAK,CACtC,CACA,OAAOA,CACT,CAjBsBI,EAAAG,GAAA,gBChStB,IAAMI,GAAS,IAAI,IAEZ,SAASC,EAAiBC,EAAsBC,EAAW,SAAqB,CACrF,IAAIC,EAAQJ,GAAO,IAAIE,CAAO,EAC9B,OAAKE,IACHA,EAAQ,IAAIC,EAAUC,EAAUJ,CAAO,CAAC,EACxCF,GAAO,IAAIE,EAASE,CAAK,GAGpBA,CACT,CARgBG,EAAAN,EAAA,oBASf,OAAO,cAAc,EAAE,KAAMO,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,ECD/C,IAAMC,EAAN,cAAyBC,EAA2E,CAd3G,MAc2G,CAAAC,EAAA,mBACzG,WACA,UACA,WACA,YACA,WACA,MAEA,YACEC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,MAAMA,CAAU,EAChB,KAAK,QAAUL,EAAQ,YAAY,EACnC,KAAK,QAAUD,EACf,KAAK,WAAaD,EAClB,KAAK,UAAYG,EACjB,KAAK,WAAaC,EAClB,KAAK,WAAaE,EAClB,KAAK,MAAQE,EAAiBP,CAAO,EACjCI,IACF,KAAK,YAAcA,EAEvB,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,cAAuB,CACrB,OAAO,KAAK,UAAU,QAAQ,CAChC,CAEA,oBAAoBI,EAAcC,EAAgC,CAChE,MAAO,CACL,QAAS,KAAK,QACd,aAAc,KAAK,WACnB,YAAa,KAAK,WAClB,iBAAkB,EAClB,gBAAiB,KAAK,aAAa,QAAU,GAC7C,SAAU,KAAK,WACf,QAAS,KAAK,WAAW,EACzB,KAAMD,EACN,OAAQE,EAAgBD,CAAM,CAChC,CACF,CAEA,IAAI,QAAoB,CACtB,OAAOE,EAAU,KAAK,OAAO,CAC/B,CACF,EAEaC,EAAN,cAAqCf,EAA2E,CAxEvH,MAwEuH,CAAAC,EAAA,+BACrH,UACA,WACA,MACA,SAEA,YACEE,EACAC,EACAC,EACAC,EACAU,EACAP,EACA,CACA,MAAMA,CAAU,EAChB,KAAK,QAAUL,EACf,KAAK,QAAUD,EACf,KAAK,UAAYE,EACjB,KAAK,WAAaC,EAClB,KAAK,SAAWU,EAChB,KAAK,MAAQN,EAAiBP,CAAO,CACvC,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,cAAuB,CACrB,OAAO,KAAK,UAAU,QAAQ,CAChC,CAEA,oBAAoBQ,EAAcC,EAAgC,CAChE,MAAO,CACL,QAAS,KAAK,QACd,aAAc,IACd,YAAa,KAAK,WAClB,iBAAkB,GAClB,gBAAiB,KAAK,SACtB,SAAU,EACV,QAAS,KAAK,WAAW,EACzB,KAAMD,EACN,OAAQE,EAAgBD,CAAM,CAChC,CACF,CAEA,IAAI,QAAoB,CACtB,OAAOE,EAAU,KAAK,OAAO,CAC/B,CACF,EAGaG,GAAN,cAAgCC,EAIrC,CA/HF,MA+HE,CAAAjB,EAAA,0BACA,QACA,QACA,WACA,UACA,MAEU,aAAe,UAEzB,YACEE,EACAC,EACAE,EACAD,EACAI,EACA,CACA,MAAMA,CAAU,EAChB,KAAK,QAAUL,EACf,KAAK,QAAUD,EACf,KAAK,WAAaG,EAClB,KAAK,UAAYD,EACjB,KAAK,MAAQK,EAAiBP,CAAO,CACvC,CAEA,YAAa,CACX,OAAO,KAAK,OACd,CAEA,oBAAoBQ,EAAcC,EAAgC,CAChE,MAAO,CACL,QAAS,KAAK,QACd,aAAc,KAAK,aACnB,YAAa,KAAK,WAClB,iBAAkB,EAClB,gBAAiB,GACjB,SAAU,EACV,QAAS,KAAK,WAAW,EACzB,KAAMD,EACN,OAAQE,EAAgBD,CAAM,CAChC,CACF,CAEA,IAAI,QAAoB,CACtB,OAAOE,EAAU,KAAK,OAAO,CAC/B,CAEA,cAAuB,CACrB,OAAO,KAAK,UAAU,QAAQ,CAChC,CACF,EAEaK,GAAN,cAA+BF,EAAkB,CAlLxD,MAkLwD,CAAAhB,EAAA,yBACtD,aAAe,SACf,SAEA,YACEE,EACAiB,EACAd,EACAD,EACAI,EACA,CACA,MAAMN,EAASiB,EAAUd,EAAYD,EAAWI,CAAU,EAC1D,KAAK,SAAWW,CAClB,CACF,EACC,OAAO,cAAc,EAAE,KAAMC,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,ECzL/C,SAASC,GAAaC,EAAsC,CACjE,IAAMC,EAASD,EAAQ,aAAa,KAAK,YACzC,GAAI,CAACC,EACH,MAAO,CAAC,EAEV,IAAMC,EACJD,EAAO,OAAS,0BAA4BA,EAAS,OACvD,OAAKC,EAIEA,EAAe,aAAa,QAASC,GAAuB,CACjE,GAAI,aAAcA,EAAI,CACpB,IAAMC,EAAOD,EAAG,SAChB,OAAAC,EAAK,QAAUC,EAAkBD,EAAK,OAAO,EAEtC,CAACA,CAAI,CACd,CACA,MAAO,CAAC,CACV,CAAC,EAXQ,CAAC,CAYZ,CApBgBE,EAAAP,GAAA,gBA4Cf,OAAO,cAAc,EAAE,KAAMQ,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,ER9B/C,IAAMC,EAAwC,CACnD,gBAAiB,GACjB,UAAW,GACX,OAAQ,EACV,EAIO,SAASC,GAAUC,EAAyC,CACjE,MAAO,CACL,gBAAiBA,EAAQ,iBAAmB,GAC5C,QAASA,EAAQ,UAAYC,EAAcA,EAAcC,EAAqBF,EAAQ,OAAO,EAC7F,QAASA,EAAQ,SAAWG,EAAW,SACvC,WAAYH,EAAQ,UACtB,CACF,CAPgBI,EAAAL,GAAA,aAgBT,IAAMM,EAAN,MAAMC,UAA0BC,EAAmC,CA9C1E,MA8C0E,CAAAH,EAAA,0BACxE,OAAO,SAAW,IAAIE,CACxB,EAEaE,EAAN,KAAuB,CAlD9B,MAkD8B,CAAAJ,EAAA,yBACnB,WACT,OAEA,cAA+C,CAAC,EAChD,aAA4C,CAAC,EAC7C,qBAAoE,CAAC,EAErE,MAEA,YAAYK,EAAcT,EAAyB,CACjD,KAAK,WAAaS,EAClB,KAAK,OAASV,GAAUC,CAAO,EAC/BK,EAAkB,SAAS,SAAS,IAAI,EACxC,KAAK,MAAQK,EAAiB,KAAK,OAAO,OAAO,CACnD,CAEA,YAAqB,CACnB,OAAO,KAAK,OAAO,OACrB,CAEU,YACRC,EACAC,EACAC,EACkB,CAClB,IAAIC,EAA0B,CAAC,EACzBC,EAAeC,EAAgB,YAAY,CAAE,GAAGlB,EAAsB,GAAGe,CAAY,CAAC,EAExF,MAAM,QAAQD,CAAM,EACtBE,EAAWF,EAEXE,EAAS,KAAKF,CAAM,EAMtB,IAAMK,EAAY,KACZC,EAAe,IAAI,IAAIJ,EAAS,IAAKK,GAAMA,EAAE,IAAI,CAAC,EAExD,YAAK,cAAc,KAAK,CACtB,QAASf,EAAA,eAAgBgB,EAAM,CAC7B,GAAI,CAACA,EAAK,YACR,MAAM,IAAI,cAAY,SAAO,iBAAkB,eAAe,EAEhE,IAAMC,EAAMD,EAAK,YACjB,GAAI,CAACC,EAAI,QAAU,CAACA,EAAI,OAAO,OAC7B,MAAM,IAAI,cAAY,SAAO,iBAAkB,8BAA8B,EAG/E,IAAMC,EAAiB,CAAC,EACxB,QAAWC,KAAOF,EAAI,OAAQ,CAC5B,IAAMG,EAAM,OAAOD,EAAI,GAAG,QAAQ,GAAK,EACjC,CAACE,GAAGC,EAAQC,EAAI,EAAIC,EAAcL,EAAI,IAAI,EAAE,MAAM,MAAMM,CAAQ,EACtE,GAAI,CAACX,EAAa,IAAI,CAACQ,EAAQC,EAAI,EAAE,KAAKE,CAAQ,CAAC,EACjD,SAGF,IAAMC,EAAM,IAAIC,EACdd,EAAU,WACVA,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBG,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BA,EAAK,KACLC,EACAG,EACAP,EAAU,OAAO,UACnB,EAMMe,GAAU,MAAMf,EAAU,MAAM,YAAiBM,CAAG,EAC1D,MAAMZ,EAAQqB,IAAWT,EAAKO,CAAG,EACjCR,EAAe,KAAKQ,EAAI,iBAAiB,CAAC,CAC5C,CAEA,OAAOG,GAAoBX,CAAc,CAC3C,EAtCS,WAuCT,QAASR,EACT,YAAaC,CACf,CAAC,EACM,IACT,CAEU,oBACRJ,EACAC,EACAC,EACkB,CAClB,IAAIC,EAAwC,CAAC,EACvCC,EAAeC,EAAgB,YAAY,CAAE,GAAGlB,EAAsB,GAAGe,CAAY,CAAC,EAExF,MAAM,QAAQD,CAAM,EACtBE,EAAWF,EAEXE,EAAS,KAAKF,CAAM,EAGtB,IAAMK,EAAY,KACZiB,EAAkB,IAAI,IAAIpB,EAAS,IAAKK,GAAMA,EAAE,QAAQ,CAAC,EAE/D,YAAK,aAAa,KAAK,CACrB,QAASf,EAAA,eAAgBgB,EAAM,CAC7B,GAAI,CAACA,EAAK,YACR,MAAM,IAAI,cAAY,SAAO,iBAAkB,cAAc,EAE/D,IAAMe,EAAKf,EAAK,YAEVU,EAAM,IAAIC,EACdd,EAAU,WACVA,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBG,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BA,EAAK,KACLe,EACA,EACAlB,EAAU,OAAO,UACnB,EACA,GAAIkB,EAAI,CACN,IAAMC,EAAkCC,GAAaF,CAAE,EACjDG,EAASH,EAAG,aAAa,MAAM,YACrC,GAAI,CAACG,EACH,MAAM,IAAI,cAAY,SAAO,iBAAkB,yCAAyC,EAI1F,IAAMC,GAAiBD,EAAO,OAAS,0BAA4BA,EAAS,OAG5E,QAAWE,KAAQJ,EAAO,CACxB,IAAMK,GAAe,CAACD,EAAK,OAAQA,EAAK,QAAQ,EAAE,KAAKX,CAAQ,EAC/D,GAAI,CAACK,EAAgB,IAAIO,EAAY,EACnC,SAIF,IAAMT,EAAU,MAAMf,EAAU,MAAM,sBAAsBuB,EAAMD,IAAgB,QAAU,CAAC,CAAC,EAC9F,MAAM5B,EAAQqB,EAASF,CAAG,CAC5B,CACF,CACA,OAAOA,EAAI,iBAAiB,CAC9B,EAvCS,WAwCT,QAAShB,EACT,YAAaC,CACf,CAAC,EACM,IACT,CAEA,QAAQJ,EAAqDE,EAA8C,CACzG,YAAK,YAAYF,EAAS,CAAE,KAAM,EAAG,EAAGE,CAAW,EAC5C,IACT,CAEA,mBACEF,EACAC,EACAC,EACM,CACN,IAAME,EAAeC,EAAgB,YAAY,CAAE,GAAGlB,EAAsB,GAAGe,CAAY,CAAC,EAEtFI,EAAY,KAElB,YAAK,aAAa,KAAK,CACrB,QAASb,EAAA,eAAgBgB,EAAM,CAC7B,GAAI,CAACA,EAAK,YACR,MAAM,IAAI,cAAY,SAAO,iBAAkB,qBAAqB,EAEtE,IAAMe,EAAKf,EAAK,YAEVU,EAAM,IAAIC,EACdd,EAAU,WACVA,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBG,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BA,EAAK,KACLe,EACA,EACAlB,EAAU,OAAO,UACnB,EACA,OAAIkB,GACF,MAAMxB,EAAQwB,EAAIL,CAAG,EAEhBA,EAAI,iBAAiB,CAC9B,EApBS,WAqBT,QAAS,CAAC,CAAE,GAAGlB,EAAQ,SAAU,EAAG,CAAC,EACrC,YAAaG,CACf,CAAC,EACM,IACT,CAEU,eACRJ,EACAgB,EACM,CACN,GAAI,KAAK,OAAO,UAAYxB,EAAW,SACrC,MAAM,IAAI,cAAY,SAAO,iBAAkB,wCAAwC,EAEzF,IAAMc,EAAY,KAClB,YAAK,qBAAqB,KAAK,CAC7B,QAASb,EAAA,eAAgBgB,EAA4B,CACnD,IAAMU,EAAM,IAAIY,EACdzB,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBG,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BA,EAAK,KACLA,EAAK,SACLH,EAAU,OAAO,UACnB,EACA,aAAMN,EAAQS,EAAK,QAA8BU,CAAG,EAC7CA,EAAI,iBAAiB,CAC9B,EAXS,WAYT,KAAAH,CACF,CAAC,EAEM,IACT,CACF,EAEagB,GAAN,MAAMC,UAA4BpC,CAAiB,CA/Q1D,MA+Q0D,CAAAJ,EAAA,4BACxD,OAAO,KAAKJ,EAA8C,CACxD,OAAO,IAAI4C,EAAoB3C,EAAaD,CAAO,CACrD,CACF,EAEa6C,GAAN,MAAMC,UAA2BtC,CAAiB,CArRzD,MAqRyD,CAAAJ,EAAA,2BACvD,OAAO,KAAKJ,EAA8D,CACxE,OAAO,IAAI8C,EAAmB7C,EAAa,CAAE,GAAGD,EAAS,QAASC,CAAY,CAAC,CACjF,CACA,mBACEU,EACAC,EACAC,EACM,CAKN,OAAO,MAAM,mBAAmBF,EAASC,EAAQC,CAAW,CAC9D,CAGO,eACLF,EACAgB,EACM,CACN,OAAO,MAAM,eAAehB,EAASgB,CAAI,CAC3C,CACF,EACC,OAAO,cAAc,EAAE,KAAMoB,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,ESnStD,OAAS,oBAAAC,OAAwB,kBAOjC,IAAAC,EAAoC,SA0B7B,IAAMC,GAAuD,CAClE,MAAO,EACT,EAEaC,EAAN,MAAMC,UAAiCC,EAAuD,CA/CrG,MA+CqG,CAAAC,EAAA,iCACnG,OAAO,SAAW,IAAIF,CACxB,EAMsBG,EAAf,KAA4D,CAvDnE,MAuDmE,CAAAD,EAAA,wCACjE,OACA,UACA,WAEA,eAAkC,CAAC,EACnC,qBAAoE,CAAC,EAM3D,YAAYE,EAAwC,CACxDA,EAAQ,YAAcC,EAAc,KACtC,KAAK,OAAS,CACZ,gBAAiBD,EAAQ,iBAAmB,GAC5C,QAASA,EAAQ,UAAY,IAAM,IAAME,EAAkBF,EAAQ,OAAO,EAC1E,QAASA,EAAQ,SAAWG,EAAW,SACvC,WAAYH,EAAQ,UACtB,EAEA,KAAK,OAASI,GAAUJ,CAAO,EAEjC,KAAK,UAAYA,EAAQ,UACzBL,EAAyB,SAAS,SAAS,IAAI,CACjD,CAEA,YAAqB,CACnB,OAAO,KAAK,OAAO,OACrB,CAMO,WACLU,EACAC,EACAC,EACAC,EACAC,EACM,CACN,IAAMC,EAAY,KAClB,YAAK,eAAe,KAAK,CACvB,QAASZ,EAAA,eAAgBa,EAAM,CAC7B,IAAMC,EAAM,IAAIC,GACdH,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBC,EAAK,KACLA,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BD,EAAU,OAAO,UACnB,EACA,aAAMA,EAAU,SAASL,EAASM,EAAMC,CAAG,EACpCA,EAAI,iBAAiB,CAC9B,EAVS,WAWT,sBAAuBN,EACvB,mBAAoBC,EACpB,KAAAC,EACA,YAAa,CAAE,GAAGd,GAA8B,GAAGe,CAAY,CACjE,CAAC,EACM,IACT,CACF,EAEeK,GAAf,cAEUf,CAA6C,CAzHvD,MAyHuD,CAAAD,EAAA,gDAC9C,eACLO,EACAU,EAAwB,GACxBC,EAAgC,IAChCR,EACAC,EACM,CACN,OAAO,KAAK,WACVJ,EACA,CACE,eAAgBU,EAChB,iBAAkBC,CACpB,EACA,OACAR,EACAC,CACF,CACF,CAEO,qBACLJ,EACAE,EAAqB,IACrBU,EAA6B,IAC7BT,EACAC,EACM,CACN,OAAO,KAAK,WACVJ,EACA,OACA,CAAE,eAAgBE,EAAoB,iBAAkBU,CAA2B,EACnFT,EACAC,CACF,CACF,CACF,EAEaS,EAAN,MAAMC,UAA4BL,EAEvC,CAhKF,MAgKE,CAAAhB,EAAA,4BACA,aAA4C,CAAC,EAE7C,OAAO,KAAKE,EAA8C,CACxD,OAAO,IAAImB,EAAoB,CAAE,GAAGnB,EAAS,UAAWC,EAAc,OAAQ,CAAC,CACjF,CAEA,MAAgB,SACdI,EACAM,EACAC,EACA,CACA,OAAOP,EAAQM,EAAK,QAA4BC,CAAG,CACrD,CAEA,mBACEP,EACAe,EACAX,EACA,CACA,IAAMY,EAAeC,EAAgB,YAAY,CAAE,GAAGC,EAAsB,GAAGd,CAAY,CAAC,EACtFe,EAA6B,CACjC,iBAAkB,CAChB,KAAM,GACN,GAAI,KAAK,OAAO,OAClB,EACA,GAAGJ,CACL,EAEMV,EAAY,KAElB,YAAK,aAAa,KAAK,CACrB,QAASZ,EAAA,eAAgBa,EAAM,CAC7B,GAAI,CAACA,EAAK,YACR,MAAM,IAAI,cAAY,SAAO,iBAAkB,qBAAqB,EAEtE,IAAMc,EAAKd,EAAK,YAEVC,EAAM,IAAIc,EACd,SACAhB,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBC,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BA,EAAK,KACLc,EACA,EACAf,EAAU,OAAO,UACnB,EACA,OAAIe,GACF,MAAMpB,EAAQoB,EAAIb,CAAG,EAEhBA,EAAI,iBAAiB,CAC9B,EApBS,WAqBT,QAAS,CAAC,CAAE,GAAGY,EAAS,SAAU,EAAG,CAAC,EACtC,YAAaH,CACf,CAAC,EACM,IACT,CACF,EAEaM,EAAN,MAAMC,UAA2Bd,EAEtC,CA9NF,MA8NE,CAAAhB,EAAA,2BACA,OAAO,KAAKE,EAAmD,CAC7D,OAAO,IAAI4B,EAAmB,CAC5B,QAAS5B,EAAQ,SACjB,QAASA,EAAQ,QACjB,gBAAiBA,EAAQ,gBACzB,UAAWC,EAAc,OACzB,WAAYD,EAAQ,UACtB,CAAC,CACH,CAEA,MAAgB,SACdK,EACAM,EACAC,EACA,CACA,GAAI,CAACD,EAAK,KAAM,CACd,QAAQ,IAAI,6BAA6BC,EAAI,UAAU,gCAAgC,EACvF,MACF,CACA,OAAOP,EAAQM,EAAK,KAAuBA,EAAK,QAA4BC,CAAG,CACjF,CACF,EAEaiB,GAAN,MAAMC,UAAkC/B,CAE7C,CAxPF,MAwPE,CAAAD,EAAA,+BACA,WAEA,OAAO,KAAQE,EAAiE,CAC9E,IAAMU,EAAY,IAAIoB,EAA0B,CAC9C,QAASC,EACT,QAAS/B,EAAQ,QACjB,gBAAiBA,EAAQ,gBACzB,UAAWC,EAAc,KACzB,WAAYD,EAAQ,UACtB,CAAC,EACD,OAAAU,EAAU,WAAaV,EAAQ,WACxBU,CACT,CAEA,MAAgB,SACdL,EAKAM,EACAC,EACA,CACA,GAAI,CAACD,EAAK,KAAM,CACd,QAAQ,IAAI,6BAA6BC,EAAI,UAAU,gCAAgC,EACvF,MACF,CACA,IAAMoB,EAAS,MAAMpB,EAAI,MAAM,uBAAuB,KAAK,WAAY,CAACD,EAAK,IAAqB,CAAC,EACnG,OAAON,EAAQ2B,EAAO,CAAC,EAAGrB,EAAK,QAA4BC,CAAG,CAChE,CAEO,eAAeP,EAAkF,CACtG,GAAI,KAAK,OAAO,UAAYF,EAAW,SACrC,MAAM,IAAI,cAAY,SAAO,iBAAkB,wCAAwC,EAEzF,IAAMO,EAAY,KAClB,YAAK,qBAAqB,KAAK,CAC7B,QAASZ,EAAA,eAAgBa,EAA4B,CACnD,IAAMC,EAAM,IAAIqB,EACdvB,EAAU,OAAO,QACjBA,EAAU,OAAO,QACjBC,EAAK,WAAa,IAAI,KAAK,CAAC,EAC5BA,EAAK,KACLA,EAAK,SACLD,EAAU,OAAO,UACnB,EACA,aAAML,EAAQM,EAAK,QAA8BC,CAAG,EAC7CA,EAAI,iBAAiB,CAC9B,EAXS,WAYT,KAAM,KAAK,WAAW,KACxB,CAAC,EAEM,IACT,CAEO,eACLP,EAKAU,EAAwB,GACxBC,EAAgC,IAChCP,EACM,CACN,OAAO,KAAK,WACVJ,EACA,CACE,eAAgBU,EAChB,iBAAkBC,CACpB,EACA,OACA,KAAK,WAAW,MAChBP,CACF,CACF,CAEO,qBACLJ,EAKAE,EAAqB,IACrBU,EAA6B,IAC7BR,EACM,CACN,OAAO,KAAK,WACVJ,EACA,OACA,CAAE,eAAgBE,EAAoB,iBAAkBU,CAA2B,EACnF,KAAK,WAAW,MAChBR,CACF,CACF,CACF,EAEayB,EAAN,MAAMC,UAAkCpC,CAE7C,CA5VF,MA4VE,CAAAD,EAAA,kCACA,OAAO,KAAKE,EAA0D,CACpE,OAAO,IAAImC,EAA0B,CACnC,QAASnC,EAAQ,SACjB,QAASA,EAAQ,QACjB,gBAAiBA,EAAQ,gBACzB,UAAWC,EAAc,eACzB,WAAYD,EAAQ,UACtB,CAAC,CACH,CAEA,MAAgB,SACdK,EACAM,EACAC,EACA,CACA,OAAOP,EAAQM,EAAK,QAA4BC,CAAG,CACrD,CACF,EACC,OAAO,cAAc,EAAE,KAAMwB,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,EC9WtD,OAAS,oBAAAC,OAAwB,kBAgBjC,IAAAC,EAAoC,SAU7B,IAAMC,EAAN,MAAMC,UAAyCC,EAEpD,CA7BF,MA6BE,CAAAC,EAAA,yCACA,OAAO,SAAW,IAAIF,CACxB,EAEsBG,EAAf,KAIL,CArCF,MAqCE,CAAAD,EAAA,4CACA,GACA,eAA+C,CAAC,EAChD,MAAQ,IAAI,IAEZ,aAAc,CACZ,KAAK,GAAKH,EAAiC,SAAS,UAAU,EAAE,OAChEA,EAAiC,SAAS,SAAS,IAAI,CACzD,CAIA,KAAKK,EAAqBC,EAAuB,CAC/CD,EAAQ,QAAUA,EAAQ,SAAWC,EAAI,QACzCD,EAAQ,gBAAkBA,EAAQ,iBAAmBC,EAAI,WACzD,IAAIC,EAAMF,EAAiC,UAAaA,EAA2B,QAEnF,GAAIE,IAAO,IACT,MAAM,IAAI,cAAY,SAAO,iBAAkB,qCAAqC,EAEtFA,EAAKC,EAAqBD,CAAE,EAE5B,IAAME,EAAM,CAACJ,EAAQ,QAASE,CAAE,EAAE,KAAK,GAAG,EAC1C,GAAI,KAAK,MAAM,IAAIE,CAAG,EAAG,CACvB,QAAQ,IAAI,gFAAgFA,CAAG,EAAE,EACjG,MACF,CACA,KAAK,MAAM,IAAIA,CAAG,EAElB,IAAMC,EAAY,KAAK,gBAAgBL,CAAO,EAC9C,QAAWM,KAAK,KAAK,eACnBD,EAAU,WAAWC,EAAE,QAASA,EAAE,sBAAuBA,EAAE,mBAAoBA,EAAE,KAAMA,EAAE,WAAW,EAEtG,IAAMC,EAASF,EAAU,OAEzBJ,EAAI,OAAO,CACT,OAAQ,CACN,cAAe,EACjB,CACF,CAAC,EACDO,EAAsB,SAAS,SAAS,CACtC,WAAY,KAAK,GACjB,SAAU,CACR,KAAM,GACN,QAASD,EAAO,QAChB,QAASA,EAAO,QAChB,IAAK,EACP,EACA,WAAYA,EAAO,gBACnB,SAAU,GACV,WAAYA,EAAO,UACrB,CAAC,EACD,QAAQ,IAAI,8BAA8BH,CAAG,EAAE,CACjD,CAEA,OAAOJ,EAAqBC,EAAuB,CACjDD,EAAQ,QAAUA,EAAQ,SAAWC,EAAI,QACzCD,EAAQ,gBAAkBA,EAAQ,iBAAmBC,EAAI,WACzD,IAAIC,EAAMF,EAAiC,UAAaA,EAA2B,QAEnF,GAAIE,IAAO,IACT,MAAM,IAAI,cAAY,SAAO,iBAAkB,4CAA4C,EAE7FA,EAAKC,EAAqBD,CAAE,EAE5B,IAAME,EAAM,CAACJ,EAAQ,QAASE,CAAE,EAAE,KAAK,GAAG,EAC1C,GAAI,CAAC,KAAK,MAAM,IAAIE,CAAG,EAAG,CACxB,QAAQ,IAAI,yBAAyBA,CAAG,gCAAgC,EACxE,MACF,CACA,KAAK,MAAM,OAAOA,CAAG,EAErB,IAAIK,EAAU,EACRC,EAAuBF,EAAsB,SAAS,WAAW,EACvE,QAAWG,KAAoBD,EAAsB,CACnD,GAAIC,EAAiB,UAAU,UAAYX,EAAQ,SAAWW,EAAiB,SAAS,SAAWT,EAAI,CACrGO,IACA,QACF,CACAD,EAAsB,SAAS,SAASG,CAAgB,CAC1D,CAEA,GAAIF,IAAY,EACd,MAAM,IAAI,cACR,SAAO,iBACP,sCAAsCL,CAAG,aAAaK,CAAO,QAC/D,EAGF,IAAMG,EAAgBC,EAAyB,SAAS,WAAW,EACnEJ,EAAU,EACV,QAAWJ,KAAaO,EAAe,CACrC,GAAIP,EAAU,aAAe,KAAK,IAC5BA,EAAU,OAAO,SAAWL,EAAQ,SAAWK,EAAU,OAAO,UAAYH,EAAI,CAClFO,IACA,QACF,CAEFI,EAAyB,SAAS,SAASR,CAAS,CACtD,CAEA,GAAII,IAAY,EACd,MAAM,IAAI,cACR,SAAO,iBACP,2CAA2C,KAAK,EAAE,KAAKL,CAAG,aAAaK,CAAO,QAChF,EAGF,QAAQ,IAAI,gCAAgCL,CAAG,EAAE,EAEjDH,EAAI,OAAO,CACT,OAAQ,CACN,cAAe,EACjB,CACF,CAAC,CACH,CAEU,WACRa,EACAC,EACAC,EACAC,EACAC,EACM,CACN,YAAK,eAAe,KAAK,CACvB,QAASJ,EACT,sBAAuBC,EACvB,mBAAoBC,EACpB,KAAAC,EACA,YAAa,CAAE,GAAGE,GAA8B,GAAGD,CAAY,CACjE,CAAC,EACM,IACT,CAEO,eACLJ,EACAM,EAAwB,GACxBC,EAAgC,IAChCJ,EACAC,EACM,CACN,OAAO,KAAK,WACVJ,EACA,CACE,eAAgBM,EAChB,iBAAkBC,CACpB,EACA,OACAJ,EACAC,CACF,CACF,CAEO,qBACLJ,EACAE,EAAqB,IACrBM,EAA6B,IAC7BL,EACAC,EACM,CACN,OAAO,KAAK,WACVJ,EACA,OACA,CAAE,eAAgBE,EAAoB,iBAAkBM,CAA2B,EACnFL,EACAC,CACF,CACF,CACF,EAQO,IAAMK,GAAN,cAA0CC,CAI/C,CAzNF,MAyNE,CAAAC,EAAA,oCACQ,SAAwC,CAAC,EAEjD,gBAAgBC,EAA8C,CAC5D,IAAMC,EAAIC,EAAoB,KAAKF,CAAO,EAC1C,QAAWG,KAAW,KAAK,SACzBF,EAAE,mBAAmBE,EAAQ,QAASA,EAAQ,OAAQA,EAAQ,WAAW,EAE3E,OAAAF,EAAE,WAAa,KAAK,GACbA,CACT,CAEA,mBACEE,EACAC,EACAC,EACM,CACN,YAAK,SAAS,KAAK,CACjB,QAAAF,EACA,OAAAC,EACA,YAAAC,CACF,CAAC,EACM,IACT,CACF,EAEaC,GAAN,cAAyCR,CAI9C,CAvPF,MAuPE,CAAAC,EAAA,mCACA,gBAAgBC,EAAmD,CACjE,IAAMC,EAAIM,EAAmB,KAAKP,CAAO,EACzC,OAAAC,EAAE,WAAa,KAAK,GACbA,CACT,CACF,EAEaO,GAAN,cAAgDV,CAIrD,CAnQF,MAmQE,CAAAC,EAAA,0CACA,gBAAgBC,EAA0D,CACxE,IAAMC,EAAIQ,EAA0B,KAAKT,CAAO,EAChD,OAAAC,EAAE,WAAa,KAAK,GACbA,CACT,CACF,EACC,OAAO,cAAc,EAAE,KAAMA,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,EC9PrD,OAAO,cAAc,EAAE,KAAMS,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,ECZtD,OAAS,eAAAC,GAAa,uBAAAC,GAAqB,UAAAC,GAAQ,iBAAAC,GAAe,kBAAAC,OAAsB,kBAkBxF,IAAAC,EAAoC,SAKpC,IAAAC,GAA2B,UAepB,IAAMC,GAAN,cAAwBC,EAAO,CAtCtC,MAsCsC,CAAAC,EAAA,kBACpC,KAAe,YACf,SAAqB,CACnB,gBAAiB,CAAC,EAClB,iBAAkB,CAAC,EACnB,kBAAmB,CAAC,EACpB,wBAAyB,CAAC,CAC5B,EACA,MAAM,MAAMC,EAAsC,CAChD,MAAMC,GAAa,EAEnB,QAAQ,IAAI,mBAAoBD,EAAQ,kBAAkB,MAAM,EAChE,IAAME,EAAkB,IAAI,IAAY,OAAO,OAAO,aAAU,CAAC,EACjE,QAAWC,KAAYH,EAAQ,kBAAmB,CAChD,GAAI,CAACE,EAAgB,IAAIC,EAAS,UAAU,SAAW,EAAE,EACvD,SAGF,QAAQ,IAAI,0BAA2BA,EAAS,UAAU,EAExDC,EAAiC,SAAS,UAAU,EAAED,EAAS,UAAU,EAElE,KACP,CACE,QAASA,EAAS,UAAU,SAAW,GACvC,SAAUA,EAAS,UAAU,SAAW,GACxC,QAAqBA,EAAS,UAAU,SAAWE,EAAW,SAC9D,gBAAiBF,EAAS,YAAc,GACxC,WAAYA,EAAS,UACvB,EACAG,EACF,CACF,CACF,CAEA,MAAM,UAAUC,EAA+B,CAC7C,IAAMC,EAAqB,CACzB,gBAAiB,CAAC,EAClB,iBAAkB,CAAC,EACnB,kBAAmB,CAAC,EACpB,wBAAyB,CAAC,CAC5B,EACA,QAAWC,KAAgBC,EAAkB,SAAS,UAAU,EAAG,CACjE,IAAMC,EAAiBC,GAAe,YAAY,CAChD,kBAAmB,CAAC,EACpB,cAAeC,GACf,SAAU,CACR,KAAMJ,EAAa,WACnB,QAASA,EAAa,OAAO,QAC7B,QAASA,EAAa,OAAO,QAC7B,IAAK,EACP,EACA,WAAYA,EAAa,OAAO,eAClC,CAAC,EACD,QAAWK,KAAWL,EAAa,cAAe,CAChD,IAAMM,EAAYP,EAAS,iBAAiB,KAAKM,EAAQ,OAAO,EAAI,EAC9DE,EAA6C,CACjD,QAASF,EAAQ,QAAQ,IAAKG,IACrB,CACL,KAAMA,EAAE,KACR,QAASA,EAAE,SAAW,EACxB,EACD,EACD,YAAaH,EAAQ,YACrB,UAAAC,CACF,EACAJ,EAAe,iBAAiB,KAAKK,CAAkB,CACzD,CACA,QAAWF,KAAWL,EAAa,aAAc,CAC/C,IAAMM,EAAYP,EAAS,gBAAgB,KAAKM,EAAQ,OAAO,EAAI,EAC7DI,EAA+C,CACnD,QAASJ,EAAQ,QAAQ,IAAKK,IACrB,CACL,SAAUA,EAAO,SACjB,cAAeA,EAAO,eAAiB,CAAC,EACxC,kBAAmB,CAAC,CAACA,EAAO,cAC5B,cAAeA,EAAO,eAAiB,GACvC,gBAAiBA,EAAO,iBAAmB,GAC3C,iBAAkBA,EAAO,gBAC3B,EACD,EACD,YAAaL,EAAQ,YACrB,UAAAC,CACF,EACAJ,EAAe,gBAAgB,KAAKO,CAAqB,CAC3D,CAEA,QAAWJ,KAAWL,EAAa,qBAAsB,CACvD,IAAMM,EAAYP,EAAS,wBAAwB,KAAKM,EAAQ,OAAO,EAAI,EACrEM,EAAgD,CACpD,KAAMN,EAAQ,KACd,UAAAC,CACF,EACAJ,EAAe,0BAA0B,KAAKS,CAAmB,CACnE,CACAb,EAAO,gBAAgB,KAAKI,CAAc,CAC5C,CAEA,QAAWU,KAAaC,EAAyB,SAAS,UAAU,EAAG,CACrE,IAAMC,EAAgBC,GAAc,YAAY,CAC9C,QAASH,EAAU,OAAO,QAC1B,QAASA,EAAU,WAAW,EAC9B,WAAYA,EAAU,OAAO,eAC/B,CAAC,EACD,QAAWP,KAAWO,EAAU,eAAgB,CAC9C,IAAMN,EAAYP,EAAS,kBAAkB,KAAKM,EAAQ,OAAO,EAAI,EAErE,QAAWA,KAAWO,EAAU,qBAAsB,CACpD,IAAMN,EAAYP,EAAS,wBAAwB,KAAKM,EAAQ,OAAO,EAAI,EACrEM,EAAgD,CACpD,KAAMN,EAAQ,KACd,UAAAC,CACF,EACAQ,EAAc,0BAA0B,KAAKH,CAAmB,CAClE,CAEAG,EAAc,oBAAoB,KAAK,CACrC,eAAgB,CACd,UAAWR,EACX,QAAS,EACT,gBAAiBD,EAAQ,sBACzB,KAAM,EACN,aAAcA,EAAQ,mBACtB,YAAa,MACf,EACA,KAAMA,EAAQ,MAAQ,GACtB,UAAWO,EAAU,UACrB,YAAaP,EAAQ,WACvB,CAAC,CACH,CAEA,GAAIO,aAAqBI,EACvB,QAAWX,KAAWO,EAAU,aAAc,CAC5C,IAAMN,EAAYP,EAAS,gBAAgB,KAAKM,EAAQ,OAAO,EAAI,EAC7DI,EAA+C,CACnD,QAASJ,EAAQ,QAAQ,IAAKK,IACrB,CACL,SAAUA,EAAO,SACjB,cAAeA,EAAO,eAAiB,CAAC,EACxC,kBAAmB,CAAC,CAACA,EAAO,cAC5B,cAAeA,EAAO,eAAiB,GACvC,gBAAiBA,EAAO,iBAAmB,GAC3C,iBAAkBA,EAAO,gBAC3B,EACD,EACD,YAAaL,EAAQ,YACrB,UAAAC,CACF,EACAQ,EAAc,gBAAgB,KAAKL,CAAqB,CAC1D,CAGFX,EAAO,eAAe,KAAKgB,CAAa,CAC1C,CACA,KAAK,SAAWf,CAClB,CAEA,MAAM,gBAAgBkB,EAA8C,CAClE,GAAI,CAACA,EAAQ,MAAM,SACjB,MAAM,IAAI,cAAY,SAAO,iBAAkB,sBAAsB,EAEvE,IAAMC,EAAqC,CAAC,EACtCC,EAAQF,EAAQ,KAAK,SAE3B,QAAWX,KAAaW,EAAQ,WAC9BC,EAAS,KACP,KAAK,SAAS,iBAAiBZ,CAAS,EAAEa,CAAK,EAAE,MAAOC,GAAM,CAC5D,MAAM,IAAI,cACR,SAAO,SACP,2BAA6B,KAAK,UAAUD,CAAK,EAAI;AAAA,EAAOE,GAAYD,CAAC,CAC3E,CACF,CAAC,CACH,EAEF,OAAOE,GAAoB,MAAM,QAAQ,IAAIJ,CAAQ,CAAC,CACxD,CAEA,MAAM,uBAAuBD,EAA8C,CACzE,GAAI,CAACA,EAAQ,MAAM,QACjB,MAAM,IAAI,cAAY,SAAO,iBAAkB,qBAAqB,EAEtE,IAAMM,EAAON,EAAQ,KAAK,QAEpBC,EAAqC,CAAC,EAC5C,QAAWZ,KAAaW,EAAQ,WAAY,CAC1C,IAAMO,EAAU,KAAK,SAAS,gBAAgBlB,CAAS,EAAEiB,CAAI,EAAE,MAAOH,GAAM,CAC1E,MAAM,IAAI,cAAY,SAAO,SAAU,0BAA4B,KAAK,UAAUG,CAAI,EAAI;AAAA,EAAOF,GAAYD,CAAC,CAAC,CACjH,CAAC,EACDF,EAAS,KAAKM,CAAO,CACvB,CACA,OAAOF,GAAoB,MAAM,QAAQ,IAAIJ,CAAQ,CAAC,CACxD,CAEA,MAAM,iBAAiBD,EAA8C,CACnE,GAAI,CAACA,EAAQ,MAAM,UACjB,MAAM,IAAI,cAAY,SAAO,iBAAkB,uBAAuB,EAExE,IAAMQ,EAASR,EAAQ,KAAK,UAEtBC,EAAqC,CAAC,EAC5C,QAAWZ,KAAaW,EAAQ,WAC9BC,EAAS,KACP,KAAK,SAAS,kBAAkBZ,CAAS,EAAEmB,CAAM,EAAE,MAAOL,GAAM,CAC9D,MAAM,IAAI,cACR,SAAO,SACP,4BAA8B,KAAK,UAAUK,CAAM,EAAI;AAAA,EAAOJ,GAAYD,CAAC,CAC7E,CACF,CAAC,CACH,EAEF,OAAOE,GAAoB,MAAM,QAAQ,IAAIJ,CAAQ,CAAC,CACxD,CAEA,MAAM,uBAAuBD,EAA8C,CACzE,GAAI,CAACA,EAAQ,MAAM,gBACjB,MAAM,IAAI,cAAY,SAAO,iBAAkB,8BAA8B,EAE/E,IAAMS,EAAeT,EAAQ,KAAK,gBAE5BC,EAAqC,CAAC,EAC5C,QAAWZ,KAAaW,EAAQ,WAC9BC,EAAS,KACP,KAAK,SAAS,wBAAwBZ,CAAS,EAAEoB,CAAY,EAAE,MAAON,GAAM,CAC1E,MAAM,IAAI,cACR,SAAO,SACP,mCAAqC,KAAK,UAAUM,CAAY,EAAI;AAAA,EAAOL,GAAYD,CAAC,CAC1F,CACF,CAAC,CACH,EAEF,OAAOE,GAAoB,MAAM,QAAQ,IAAIJ,CAAQ,CAAC,CACxD,CAEA,kBAAoB,CAClBS,EAAY,UACZA,EAAY,SACZA,EAAY,WACZA,EAAY,iBACd,EAEA,eAAepC,EAA8C,CAC3D,OAAQA,EAAQ,YAAa,CAC3B,KAAKoC,EAAY,UACf,OAAO,KAAK,gBAAgBpC,CAAO,EACrC,KAAKoC,EAAY,SACf,OAAO,KAAK,uBAAuBpC,CAAO,EAC5C,KAAKoC,EAAY,WACf,OAAO,KAAK,iBAAiBpC,CAAO,EACtC,KAAKoC,EAAY,kBACf,OAAO,KAAK,uBAAuBpC,CAAO,EAC5C,QACE,MAAM,IAAI,cAAY,SAAO,iBAAkB,6BAA+BA,EAAQ,WAAW,CACrG,CACF,CACF,EAEAqC,GAAc,SAAS,SAAS,IAAIxC,EAAW,EAE/C,IAAMS,GAAc,IAAIgC,EAAW,GAAI,cAAW,YAAa,GAAI,IAAI,KAAQ,GAAI,CAAC,EAAU,EAAG,CAAC,CAAC,EAClG,OAAO,cAAc,EAAE,KAAMC,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,EC5QrD,OAAO,cAAc,EAAE,KAAMC,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC","names":["ListStateStorage","mergeProcessResults","import_nice_grpc","ZERO_ADDRESS","isTransactionArgument","value","__name","transactionArgumentOrObject","transactionBlock","transactionArgumentOrPure","transactionArgumentOrPureAddress","value","transactionBlock","isTransactionArgument","__name","transactionArgumentOrPureU8","transactionArgumentOrPureU16","transactionArgumentOrPureU32","transactionArgumentOrPureU64","transactionArgumentOrPureU128","transactionArgumentOrPureU256","transactionArgumentOrPureBool","transactionArgumentOrVec","a","toInternalModule","module","n","f","toInternalFunction","s","toInternalStruct","__name","name","func","visibility","InternalMoveFunctionVisibility","p","toTypeDescriptor","struct","toInternalField","normalizedType","TypeDescriptor","qname","SPLITTER","args","res","SuiChainAdapter","ChainAdapter","__name","client","account","module","modules","params","toInternalModule","eventMap","qname","moduleQname","struct","abilities","SPLITTER","base","val","MoveCoder","AbstractMoveCoder","__name","client","SuiChainAdapter","module","address","m","mDeclared","toInternalModule","data","type","byte","bytes","normalizeSuiObjectId","vec","normalizeSuiAddress","event","resources","parseMoveType","objects","keyType","ANY_TYPE","valueType","TypeDescriptor","o","payload","inputs","functionType","SPLITTER","func","params","args","value","argValue","idx","arg","argumentsTyped","qname","sig","cached","lowerQname","suiBcs","moveStruct","e","structDef","field","index","x","bcsType","encoding","buf","inspectRes","returnValues","returnValue","bcsDecoded","decoded","DEFAULT_ENDPOINT","CODER_MAP","defaultMoveCoder","endpoint","DEFAULT_ENDPOINT","coder","CODER_MAP","MoveCoder","SuiClient","__name","PROVIDER_CODER_MAP","DEFAULT_CHAIN_ID","getMoveCoder","client","id","defaultCoder","CODERS","defaultMoveCoder","network","SuiNetwork","coder","MoveCoder","getClient","__name","p","SuiContext","MoveContext","__name","moduleName","network","address","timestamp","checkpoint","transaction","eventIndex","baseLabels","defaultMoveCoder","name","labels","normalizeLabels","getClient","SuiObjectChangeContext","txDigest","SuiAddressContext","MoveAccountContext","SuiObjectContext","objectId","p","getMoveCalls","txBlock","txKind","programmableTx","tx","call","accountTypeString","__name","p","DEFAULT_FETCH_CONFIG","configure","options","ALL_ADDRESS","accountAddressString","SuiNetwork","__name","SuiProcessorState","_SuiProcessorState","ListStateStorage","SuiBaseProcessor","name","defaultMoveCoder","handler","filter","fetchConfig","_filters","_fetchConfig","MoveFetchConfig","processor","allEventType","f","data","txn","processResults","evt","idx","_","module","type","parseMoveType","SPLITTER","ctx","SuiContext","decoded","mergeProcessResults","allFunctionType","tx","calls","getMoveCalls","txKind","programmableTx","call","functionType","SuiObjectChangeContext","SuiModulesProcessor","_SuiModulesProcessor","SuiGlobalProcessor","_SuiGlobalProcessor","p","ListStateStorage","import_nice_grpc","DEFAULT_ACCOUNT_FETCH_CONFIG","SuiAccountProcessorState","_SuiAccountProcessorState","ListStateStorage","__name","SuiBaseObjectOrAddressProcessor","options","MoveOwnerType","accountTypeString","SuiNetwork","configure","handler","timeInterval","checkpointInterval","type","fetchConfig","processor","data","ctx","SuiObjectContext","SuiBaseObjectOrAddressProcessorInternal","timeIntervalInMinutes","backfillTimeIntervalInMinutes","backfillCheckpointInterval","SuiAddressProcessor","_SuiAddressProcessor","filter","_fetchConfig","MoveFetchConfig","DEFAULT_FETCH_CONFIG","_filter","tx","SuiContext","SuiObjectProcessor","_SuiObjectProcessor","SuiObjectTypeProcessor","_SuiObjectTypeProcessor","ALL_ADDRESS","object","SuiObjectChangeContext","SuiWrappedObjectProcessor","_SuiWrappedObjectProcessor","p","ListStateStorage","import_nice_grpc","SuiAccountProcessorTemplateState","_SuiAccountProcessorTemplateState","ListStateStorage","__name","SuiObjectOrAddressProcessorTemplate","options","ctx","id","accountAddressString","sig","processor","h","config","TemplateInstanceState","deleted","oldTemplateInstances","templateInstance","oldProcessors","SuiAccountProcessorState","handler","timeInterval","checkpointInterval","type","fetchConfig","DEFAULT_ACCOUNT_FETCH_CONFIG","timeIntervalInMinutes","backfillTimeIntervalInMinutes","backfillCheckpointInterval","SuiAddressProcessorTemplate","SuiObjectOrAddressProcessorTemplate","__name","options","p","SuiAddressProcessor","handler","filter","fetchConfig","SuiObjectProcessorTemplate","SuiObjectProcessor","SuiWrappedObjectProcessorTemplate","SuiWrappedObjectProcessor","p","errorString","mergeProcessResults","Plugin","PluginManager","USER_PROCESSOR","import_nice_grpc","import_chain","SuiPlugin","Plugin","__name","request","initCoinList","allowedChainIds","instance","SuiAccountProcessorTemplateState","SuiNetwork","NoopContext","config","handlers","suiProcessor","SuiProcessorState","contractConfig","ContractConfig","USER_PROCESSOR","handler","handlerId","eventHandlerConfig","f","functionHandlerConfig","filter","objectChangeHandler","processor","SuiAccountProcessorState","accountConfig","AccountConfig","SuiAddressProcessor","binding","promises","event","e","errorString","mergeProcessResults","call","promise","object","objectChange","HandlerType","PluginManager","SuiContext","p","p"]}
@@ -1,3 +0,0 @@
1
- import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
2
- import{a as Yn}from"./chunk-TSEQGMTN.js";import{i as Jn}from"./chunk-YEV4EYDY.js";import{a as vt,d as Kn}from"./chunk-CLSYYTRT.js";import{a as Xn}from"./chunk-2QI24JA5.js";import{Tb as bt,Ub as qt,Vb as Ln,Wb as Wr,Xb as Ne,Yb as xe,Zb as Y,_b as Te,bc as ze,cc as Wn,ec as Fn,gc as Hn,nc as z,oc as Fr}from"./chunk-KFSMJYAT.js";import{a as i,f as Gn}from"./chunk-G5BIPHMS.js";function Hr(n){if(n.length>=255)throw new TypeError("Alphabet too long");let e=new Uint8Array(256);for(let f=0;f<e.length;f++)e[f]=255;for(let f=0;f<n.length;f++){let p=n.charAt(f),m=p.charCodeAt(0);if(e[m]!==255)throw new TypeError(p+" is ambiguous");e[m]=f}let t=n.length,r=n.charAt(0),s=Math.log(t)/Math.log(256),u=Math.log(256)/Math.log(t);function a(f){if(f instanceof Uint8Array||(ArrayBuffer.isView(f)?f=new Uint8Array(f.buffer,f.byteOffset,f.byteLength):Array.isArray(f)&&(f=Uint8Array.from(f))),!(f instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(f.length===0)return"";let p=0,m=0,S=0,_=f.length;for(;S!==_&&f[S]===0;)S++,p++;let g=(_-S)*u+1>>>0,I=new Uint8Array(g);for(;S!==_;){let L=f[S],Ee=0;for(let ce=g-1;(L!==0||Ee<m)&&ce!==-1;ce--,Ee++)L+=256*I[ce]>>>0,I[ce]=L%t>>>0,L=L/t>>>0;if(L!==0)throw new Error("Non-zero carry");m=Ee,S++}let B=g-m;for(;B!==g&&I[B]===0;)B++;let Pe=r.repeat(p);for(;B<g;++B)Pe+=n.charAt(I[B]);return Pe}i(a,"encode");function c(f){if(typeof f!="string")throw new TypeError("Expected String");if(f.length===0)return new Uint8Array;let p=0,m=0,S=0;for(;f[p]===r;)m++,p++;let _=(f.length-p)*s+1>>>0,g=new Uint8Array(_);for(;f[p];){let L=e[f.charCodeAt(p)];if(L===255)return;let Ee=0;for(let ce=_-1;(L!==0||Ee<S)&&ce!==-1;ce--,Ee++)L+=t*g[ce]>>>0,g[ce]=L%256>>>0,L=L/256>>>0;if(L!==0)throw new Error("Non-zero carry");S=Ee,p++}let I=_-S;for(;I!==_&&g[I]===0;)I++;let B=new Uint8Array(m+(_-I)),Pe=m;for(;I!==_;)B[Pe++]=g[I++];return B}i(c,"decodeUnsafe");function l(f){let p=c(f);if(p)return p;throw new Error("Non-base"+t+" character")}return i(l,"decode"),{encode:a,decodeUnsafe:c,decode:l}}i(Hr,"base");var Zn=Hr;var Xr="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Gt=Zn(Xr);var le=i(n=>Gt.encode(n),"toBase58"),Z=i(n=>Gt.decode(n),"fromBase58");function V(n){return Uint8Array.from(atob(n),e=>e.charCodeAt(0))}i(V,"fromBase64");var Lt=8192;function D(n){if(n.length<Lt)return btoa(String.fromCharCode(...n));let e="";for(var t=0;t<n.length;t+=Lt){let r=n.slice(t,t+Lt);e+=String.fromCharCode(...r)}return btoa(e)}i(D,"toBase64");function Ve(n){let e=n.startsWith("0x")?n.slice(2):n,t=e.length%2===0?e:`0${e}`,r=t.match(/[0-9a-fA-F]{2}/g)?.map(s=>parseInt(s,16))??[];if(r.length!==t.length/2)throw new Error(`Invalid hex string ${n}`);return Uint8Array.from(r)}i(Ve,"fromHex");function ue(n){return n.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}i(ue,"toHex");function qe(n){let e=[],t=0;if(n===0)return[0];for(;n>0;)e[t]=n&127,(n>>=7)&&(e[t]|=128),t+=1;return e}i(qe,"ulebEncode");function Qn(n){let e=0,t=0,r=0;for(;;){let s=n[r];if(r+=1,e|=(s&127)<<t,!(s&128))break;t+=7}return{value:e,length:r}}i(Qn,"ulebDecode");var gt=class{static{i(this,"BcsReader")}constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer)}shift(e){return this.bytePosition+=e,this}read8(){let e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){let e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){let e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){let e=this.read32(),r=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+r).toString(10)}read128(){let e=BigInt(this.read64()),r=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+r).toString(10)}read256(){let e=BigInt(this.read128()),r=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+r).toString(10)}readBytes(e){let t=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),r}readULEB(){let e=this.bytePosition+this.dataView.byteOffset,t=new Uint8Array(this.dataView.buffer,e),{value:r,length:s}=Qn(t);return this.shift(s),r}readVec(e){let t=this.readULEB(),r=[];for(let s=0;s<t;s++)r.push(e(this,s,t));return r}};function Wt(n,e){switch(e){case"base58":return le(n);case"base64":return D(n);case"hex":return ue(n);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}i(Wt,"encodeStr");function wt(n,e=["<",">"]){let[t,r]=e,s=[],u="",a=0;for(let c=0;c<n.length;c++){let l=n[c];if(l===t&&a++,l===r&&a--,a===0&&l===","){s.push(u.trim()),u="";continue}u+=l}return s.push(u.trim()),s}i(wt,"splitGenericParameters");var kt=class{static{i(this,"BcsWriter")}constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:r=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=r,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){let t=this.bytePosition+e;if(t>this.size){let r=Math.min(this.maxSize,this.size+this.allocateSize);if(t>r)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${t}`);this.size=r;let s=new ArrayBuffer(this.size);new Uint8Array(s).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(s)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return Ft(BigInt(e),8).forEach(t=>this.write8(t)),this}write128(e){return Ft(BigInt(e),16).forEach(t=>this.write8(t)),this}write256(e){return Ft(BigInt(e),32).forEach(t=>this.write8(t)),this}writeULEB(e){return qe(e).forEach(t=>this.write8(t)),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach((r,s)=>t(this,r,s,e.length)),this}*[Symbol.iterator](){for(let e=0;e<this.bytePosition;e++)yield this.dataView.getUint8(e);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(e){return Wt(this.toBytes(),e)}};function Ft(n,e){let t=new Uint8Array(e),r=0;for(;n>0;)t[r]=Number(n%BigInt(256)),n=n/BigInt(256),r+=1;return t}i(Ft,"toLittleEndian");var er=i(n=>{throw TypeError(n)},"__typeError"),tr=i((n,e,t)=>e.has(n)||er("Cannot "+t),"__accessCheck"),Q=i((n,e,t)=>(tr(n,e,"read from private field"),t?t.call(n):e.get(n)),"__privateGet"),_t=i((n,e,t)=>e.has(n)?er("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),"__privateAdd"),It=i((n,e,t,r)=>(tr(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),"__privateSet"),Ge,Ye,St,ve,Kr=class nr{static{i(this,"_BcsType")}constructor(e){_t(this,Ge),_t(this,Ye),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),It(this,Ge,e.write),It(this,Ye,e.serialize??((t,r)=>{let s=new kt({initialSize:this.serializedSize(t)??void 0,...r});return Q(this,Ge).call(this,t,s),s.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),Q(this,Ge).call(this,e,t)}serialize(e,t){return this.validate(e),new Et(this,Q(this,Ye).call(this,e,t))}parse(e){let t=new gt(e);return this.read(t)}fromHex(e){return this.parse(Ve(e))}fromBase58(e){return this.parse(Z(e))}fromBase64(e){return this.parse(V(e))}transform({name:e,input:t,output:r,validate:s}){return new nr({name:e??this.name,read:i(u=>r(this.read(u)),"read"),write:i((u,a)=>Q(this,Ge).call(this,t(u),a),"write"),serializedSize:i(u=>this.serializedSize(t(u)),"serializedSize"),serialize:i((u,a)=>Q(this,Ye).call(this,t(u),a),"serialize"),validate:i(u=>{s?.(u),this.validate(t(u))},"validate")})}};Ge=new WeakMap;Ye=new WeakMap;var ee=Kr,rr=Symbol.for("@mysten/serialized-bcs");function Le(n){return!!n&&typeof n=="object"&&n[rr]===!0}i(Le,"isSerializedBcs");var Et=class{static{i(this,"SerializedBcs")}constructor(e,t){_t(this,St),_t(this,ve),It(this,St,e),It(this,ve,t)}get[rr](){return!0}toBytes(){return Q(this,ve)}toHex(){return ue(Q(this,ve))}toBase64(){return D(Q(this,ve))}toBase58(){return le(Q(this,ve))}parse(){return Q(this,St).parse(Q(this,ve))}};St=new WeakMap;ve=new WeakMap;function Ze({size:n,...e}){return new ee({...e,serializedSize:i(()=>n,"serializedSize")})}i(Ze,"fixedSizeBcsType");function xt({readMethod:n,writeMethod:e,...t}){return Ze({...t,read:i(r=>r[n](),"read"),write:i((r,s)=>s[e](r),"write"),validate:i(r=>{if(r<0||r>t.maxValue)throw new TypeError(`Invalid ${t.name} value: ${r}. Expected value in range 0-${t.maxValue}`);t.validate?.(r)},"validate")})}i(xt,"uIntBcsType");function Tt({readMethod:n,writeMethod:e,...t}){return Ze({...t,read:i(r=>r[n](),"read"),write:i((r,s)=>s[e](BigInt(r)),"write"),validate:i(r=>{let s=BigInt(r);if(s<0||s>t.maxValue)throw new TypeError(`Invalid ${t.name} value: ${s}. Expected value in range 0-${t.maxValue}`);t.validate?.(s)},"validate")})}i(Tt,"bigUIntBcsType");function sr({serialize:n,...e}){let t=new ee({...e,serialize:n,write:i((r,s)=>{for(let u of t.serialize(r).toBytes())s.write8(u)},"write")});return t}i(sr,"dynamicSizeBcsType");function ir({toBytes:n,fromBytes:e,...t}){return new ee({...t,read:i(r=>{let s=r.readULEB(),u=r.readBytes(s);return e(u)},"read"),write:i((r,s)=>{let u=n(r);s.writeULEB(u.length);for(let a=0;a<u.length;a++)s.write8(u[a])},"write"),serialize:i(r=>{let s=n(r),u=qe(s.length),a=new Uint8Array(u.length+s.length);return a.set(u,0),a.set(s,u.length),a},"serialize"),validate:i(r=>{if(typeof r!="string")throw new TypeError(`Invalid ${t.name} value: ${r}. Expected string`);t.validate?.(r)},"validate")})}i(ir,"stringLikeBcsType");function or(n){let e=null;function t(){return e||(e=n()),e}return i(t,"getType"),new ee({name:"lazy",read:i(r=>t().read(r),"read"),serializedSize:i(r=>t().serializedSize(r),"serializedSize"),write:i((r,s)=>t().write(r,s),"write"),serialize:i((r,s)=>t().serialize(r,s).toBytes(),"serialize")})}i(or,"lazyBcsType");var o={u8(n){return xt({name:"u8",readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...n})},u16(n){return xt({name:"u16",readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...n})},u32(n){return xt({name:"u32",readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...n})},u64(n){return Tt({name:"u64",readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...n})},u128(n){return Tt({name:"u128",readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...n})},u256(n){return Tt({name:"u256",readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...n})},bool(n){return Ze({name:"bool",size:1,read:i(e=>e.read8()===1,"read"),write:i((e,t)=>t.write8(e?1:0),"write"),...n,validate:i(e=>{if(n?.validate?.(e),typeof e!="boolean")throw new TypeError(`Expected boolean, found ${typeof e}`)},"validate")})},uleb128(n){return sr({name:"uleb128",read:i(e=>e.readULEB(),"read"),serialize:i(e=>Uint8Array.from(qe(e)),"serialize"),...n})},bytes(n,e){return Ze({name:`bytes[${n}]`,size:n,read:i(t=>t.readBytes(n),"read"),write:i((t,r)=>{let s=new Uint8Array(t);for(let u=0;u<n;u++)r.write8(s[u]??0)},"write"),...e,validate:i(t=>{if(e?.validate?.(t),!t||typeof t!="object"||!("length"in t))throw new TypeError(`Expected array, found ${typeof t}`);if(t.length!==n)throw new TypeError(`Expected array of length ${n}, found ${t.length}`)},"validate")})},string(n){return ir({name:"string",toBytes:i(e=>new TextEncoder().encode(e),"toBytes"),fromBytes:i(e=>new TextDecoder().decode(e),"fromBytes"),...n})},fixedArray(n,e,t){return new ee({name:`${e.name}[${n}]`,read:i(r=>{let s=new Array(n);for(let u=0;u<n;u++)s[u]=e.read(r);return s},"read"),write:i((r,s)=>{for(let u of r)e.write(u,s)},"write"),...t,validate:i(r=>{if(t?.validate?.(r),!r||typeof r!="object"||!("length"in r))throw new TypeError(`Expected array, found ${typeof r}`);if(r.length!==n)throw new TypeError(`Expected array of length ${n}, found ${r.length}`)},"validate")})},option(n){return o.enum(`Option<${n.name}>`,{None:null,Some:n}).transform({input:i(e=>e==null?{None:!0}:{Some:e},"input"),output:i(e=>e.$kind==="Some"?e.Some:null,"output")})},vector(n,e){return new ee({name:`vector<${n.name}>`,read:i(t=>{let r=t.readULEB(),s=new Array(r);for(let u=0;u<r;u++)s[u]=n.read(t);return s},"read"),write:i((t,r)=>{r.writeULEB(t.length);for(let s of t)n.write(s,r)},"write"),...e,validate:i(t=>{if(e?.validate?.(t),!t||typeof t!="object"||!("length"in t))throw new TypeError(`Expected array, found ${typeof t}`)},"validate")})},tuple(n,e){return new ee({name:`(${n.map(t=>t.name).join(", ")})`,serializedSize:i(t=>{let r=0;for(let s=0;s<n.length;s++){let u=n[s].serializedSize(t[s]);if(u==null)return null;r+=u}return r},"serializedSize"),read:i(t=>{let r=[];for(let s of n)r.push(s.read(t));return r},"read"),write:i((t,r)=>{for(let s=0;s<n.length;s++)n[s].write(t[s],r)},"write"),...e,validate:i(t=>{if(e?.validate?.(t),!Array.isArray(t))throw new TypeError(`Expected array, found ${typeof t}`);if(t.length!==n.length)throw new TypeError(`Expected array of length ${n.length}, found ${t.length}`)},"validate")})},struct(n,e,t){let r=Object.entries(e);return new ee({name:n,serializedSize:i(s=>{let u=0;for(let[a,c]of r){let l=c.serializedSize(s[a]);if(l==null)return null;u+=l}return u},"serializedSize"),read:i(s=>{let u={};for(let[a,c]of r)u[a]=c.read(s);return u},"read"),write:i((s,u)=>{for(let[a,c]of r)c.write(s[a],u)},"write"),...t,validate:i(s=>{if(t?.validate?.(s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`)},"validate")})},enum(n,e,t){let r=Object.entries(e);return new ee({name:n,read:i(s=>{let u=s.readULEB(),a=r[u];if(!a)throw new TypeError(`Unknown value ${u} for enum ${n}`);let[c,l]=a;return{[c]:l?.read(s)??!0,$kind:c}},"read"),write:i((s,u)=>{let[a,c]=Object.entries(s).filter(([l])=>Object.hasOwn(e,l))[0];for(let l=0;l<r.length;l++){let[f,p]=r[l];if(f===a){u.writeULEB(l),p?.write(c,u);return}}},"write"),...t,validate:i(s=>{if(t?.validate?.(s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`);let u=Object.keys(s).filter(c=>s[c]!==void 0&&Object.hasOwn(e,c));if(u.length!==1)throw new TypeError(`Expected object with one key, but found ${u.length} for type ${n}}`);let[a]=u;if(!Object.hasOwn(e,a))throw new TypeError(`Invalid enum variant ${a}`)},"validate")})},map(n,e){return o.vector(o.tuple([n,e])).transform({name:`Map<${n.name}, ${e.name}>`,input:i(t=>[...t.entries()],"input"),output:i(t=>{let r=new Map;for(let[s,u]of t)r.set(s,u);return r},"output")})},lazy(n){return or(n)}};var Ht;function Jr(n){return{lang:n?.lang??Ht?.lang,message:n?.message,abortEarly:n?.abortEarly??Ht?.abortEarly,abortPipeEarly:n?.abortPipeEarly??Ht?.abortPipeEarly}}i(Jr,"getGlobalConfig");var Yr;function Zr(n){return Yr?.get(n)}i(Zr,"getGlobalMessage");var Qr;function es(n){return Qr?.get(n)}i(es,"getSchemaMessage");var ts;function ns(n,e){return ts?.get(n)?.get(e)}i(ns,"getSpecificMessage");function ar(n){let e=typeof n;return e==="string"?`"${n}"`:e==="number"||e==="bigint"||e==="boolean"?`${n}`:e==="object"||e==="function"?(n&&Object.getPrototypeOf(n)?.constructor?.name)??"null":e}i(ar,"_stringify");function H(n,e,t,r,s){let u=s&&"input"in s?s.input:t.value,a=s?.expected??n.expects??null,c=s?.received??ar(u),l={kind:n.kind,type:n.type,input:u,expected:a,received:c,message:`Invalid ${e}: ${a?`Expected ${a} but r`:"R"}eceived ${c}`,requirement:n.requirement,path:s?.path,issues:s?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},f=n.kind==="schema",p=s?.message??n.message??ns(n.reference,l.lang)??(f?es(l.lang):null)??r.message??Zr(l.lang);p&&(l.message=typeof p=="function"?p(l):p),f&&(t.typed=!1),t.issues?t.issues.push(l):t.issues=[l]}i(H,"_addIssue");function rs(n,e){return Object.hasOwn(n,e)&&e!=="__proto__"&&e!=="prototype"&&e!=="constructor"}i(rs,"_isValidObjectKey");var ss=class extends Error{static{i(this,"ValiError")}issues;constructor(n){super(n[0].message),this.name="ValiError",this.issues=n}};function Oe(n,e){return{kind:"validation",type:"check",reference:Oe,async:!1,expects:null,requirement:n,message:e,_run(t,r){return t.typed&&!this.requirement(t.value)&&H(this,"input",t,r),t}}}i(Oe,"check");function M(n){return{kind:"validation",type:"integer",reference:M,async:!1,expects:null,requirement:Number.isInteger,message:n,_run(e,t){return e.typed&&!this.requirement(e.value)&&H(this,"integer",e,t),e}}}i(M,"integer");function Qe(n){return{kind:"transformation",type:"transform",reference:Qe,async:!1,operation:n,_run(e){return e.value=this.operation(e.value),e}}}i(Qe,"transform");function Xt(n,e,t){return typeof n.default=="function"?n.default(e,t):n.default}i(Xt,"getDefault");function et(n,e){return!n._run({typed:!1,value:e},{abortEarly:!0}).issues}i(et,"is");function y(n,e){return{kind:"schema",type:"array",reference:y,expects:"Array",async:!1,item:n,message:e,_run(t,r){let s=t.value;if(Array.isArray(s)){t.typed=!0,t.value=[];for(let u=0;u<s.length;u++){let a=s[u],c=this.item._run({typed:!1,value:a},r);if(c.issues){let l={type:"array",origin:"value",input:s,key:u,value:a};for(let f of c.issues)f.path?f.path.unshift(l):f.path=[l],t.issues?.push(f);if(t.issues||(t.issues=c.issues),r.abortEarly){t.typed=!1;break}}c.typed||(t.typed=!1),t.value.push(c.value)}}else H(this,"type",t,r);return t}}}i(y,"array");function Ot(n){return{kind:"schema",type:"bigint",reference:Ot,expects:"bigint",async:!1,message:n,_run(e,t){return typeof e.value=="bigint"?e.typed=!0:H(this,"type",e,t),e}}}i(Ot,"bigint");function je(n){return{kind:"schema",type:"boolean",reference:je,expects:"boolean",async:!1,message:n,_run(e,t){return typeof e.value=="boolean"?e.typed=!0:H(this,"type",e,t),e}}}i(je,"boolean");function Ae(n){return{kind:"schema",type:"lazy",reference:Ae,expects:"unknown",async:!1,getter:n,_run(e,t){return this.getter(e.value)._run(e,t)}}}i(Ae,"lazy");function b(n,e){return{kind:"schema",type:"literal",reference:b,expects:ar(n),async:!1,literal:n,message:e,_run(t,r){return t.value===this.literal?t.typed=!0:H(this,"type",t,r),t}}}i(b,"literal");function x(n,...e){let t={kind:"schema",type:"nullable",reference:x,expects:`${n.expects} | null`,async:!1,wrapped:n,_run(r,s){return r.value===null&&("default"in this&&(r.value=Xt(this,r,s)),r.value===null)?(r.typed=!0,r):this.wrapped._run(r,s)}};return 0 in e&&(t.default=e[0]),t}i(x,"nullable");function fe(n,...e){let t={kind:"schema",type:"nullish",reference:fe,expects:`${n.expects} | null | undefined`,async:!1,wrapped:n,_run(r,s){return(r.value===null||r.value===void 0)&&("default"in this&&(r.value=Xt(this,r,s)),r.value===null||r.value===void 0)?(r.typed=!0,r):this.wrapped._run(r,s)}};return 0 in e&&(t.default=e[0]),t}i(fe,"nullish");function A(n){return{kind:"schema",type:"number",reference:A,expects:"number",async:!1,message:n,_run(e,t){return typeof e.value=="number"&&!isNaN(e.value)?e.typed=!0:H(this,"type",e,t),e}}}i(A,"number");function d(n,e){return{kind:"schema",type:"object",reference:d,expects:"Object",async:!1,entries:n,message:e,_run(t,r){let s=t.value;if(s&&typeof s=="object"){t.typed=!0,t.value={};for(let u in this.entries){let a=s[u],c=this.entries[u]._run({typed:!1,value:a},r);if(c.issues){let l={type:"object",origin:"value",input:s,key:u,value:a};for(let f of c.issues)f.path?f.path.unshift(l):f.path=[l],t.issues?.push(f);if(t.issues||(t.issues=c.issues),r.abortEarly){t.typed=!1;break}}c.typed||(t.typed=!1),(c.value!==void 0||u in s)&&(t.value[u]=c.value)}}else H(this,"type",t,r);return t}}}i(d,"object");function P(n,...e){let t={kind:"schema",type:"optional",reference:P,expects:`${n.expects} | undefined`,async:!1,wrapped:n,_run(r,s){return r.value===void 0&&("default"in this&&(r.value=Xt(this,r,s)),r.value===void 0)?(r.typed=!0,r):this.wrapped._run(r,s)}};return 0 in e&&(t.default=e[0]),t}i(P,"optional");function Ce(n,e,t){return{kind:"schema",type:"record",reference:Ce,expects:"Object",async:!1,key:n,value:e,message:t,_run(r,s){let u=r.value;if(u&&typeof u=="object"){r.typed=!0,r.value={};for(let a in u)if(rs(u,a)){let c=u[a],l=this.key._run({typed:!1,value:a},s);if(l.issues){let p={type:"object",origin:"key",input:u,key:a,value:c};for(let m of l.issues)m.path=[p],r.issues?.push(m);if(r.issues||(r.issues=l.issues),s.abortEarly){r.typed=!1;break}}let f=this.value._run({typed:!1,value:c},s);if(f.issues){let p={type:"object",origin:"value",input:u,key:a,value:c};for(let m of f.issues)m.path?m.path.unshift(p):m.path=[p],r.issues?.push(m);if(r.issues||(r.issues=f.issues),s.abortEarly){r.typed=!1;break}}(!l.typed||!f.typed)&&(r.typed=!1),l.typed&&(r.value[l.value]=f.value)}}else H(this,"type",r,s);return r}}}i(Ce,"record");function w(n){return{kind:"schema",type:"string",reference:w,expects:"string",async:!1,message:n,_run(e,t){return typeof e.value=="string"?e.typed=!0:H(this,"type",e,t),e}}}i(w,"string");function tt(n,e){return{kind:"schema",type:"tuple",reference:tt,expects:"Array",async:!1,items:n,message:e,_run(t,r){let s=t.value;if(Array.isArray(s)){t.typed=!0,t.value=[];for(let u=0;u<this.items.length;u++){let a=s[u],c=this.items[u]._run({typed:!1,value:a},r);if(c.issues){let l={type:"array",origin:"value",input:s,key:u,value:a};for(let f of c.issues)f.path?f.path.unshift(l):f.path=[l],t.issues?.push(f);if(t.issues||(t.issues=c.issues),r.abortEarly){t.typed=!1;break}}c.typed||(t.typed=!1),t.value.push(c.value)}}else H(this,"type",t,r);return t}}}i(tt,"tuple");function ur(n){let e;if(n)for(let t of n)e?e.push(...t.issues):e=t.issues;return e}i(ur,"_subIssues");function $(n,e){return{kind:"schema",type:"union",reference:$,expects:[...new Set(n.map(t=>t.expects))].join(" | ")||"never",async:!1,options:n,message:e,_run(t,r){let s,u,a;for(let c of this.options){let l=c._run({typed:!1,value:t.value},r);if(l.typed)if(l.issues)u?u.push(l):u=[l];else{s=l;break}else a?a.push(l):a=[l]}if(s)return s;if(u){if(u.length===1)return u[0];H(this,"type",t,r,{issues:ur(u)}),t.typed=!0}else{if(a?.length===1)return a[0];H(this,"type",t,r,{issues:ur(a)})}return t}}}i($,"union");function ae(){return{kind:"schema",type:"unknown",reference:ae,expects:"unknown",async:!1,_run(n){return n.typed=!0,n}}}i(ae,"unknown");function j(n,e,t){let r=n._run({typed:!1,value:e},Jr(t));if(r.issues)throw new ss(r.issues);return r.value}i(j,"parse");function O(...n){return{...n[0],pipe:n,_run(e,t){for(let r=0;r<n.length;r++){if(e.issues&&(n[r].kind==="schema"||n[r].kind==="transformation")){e.typed=!1;break}(!e.issues||!t.abortEarly&&!t.abortPipeEarly)&&(e=n[r]._run(e,t))}return e}}}i(O,"pipe");var is=32;function jt(n){try{return Z(n).length===is}catch{return!1}}i(jt,"isValidTransactionDigest");var nt=32;function X(n){return os(n)&&us(n)===nt}i(X,"isValidSuiAddress");function We(n){return X(n)}i(We,"isValidSuiObjectId");function k(n,e=!1){let t=n.toLowerCase();return!e&&t.startsWith("0x")&&(t=t.slice(2)),`0x${t.padStart(nt*2,"0")}`}i(k,"normalizeSuiAddress");function W(n,e=!1){return k(n,e)}i(W,"normalizeSuiObjectId");function os(n){return/^(0x|0X)?[a-fA-F0-9]+$/.test(n)&&n.length%2===0}i(os,"isHex");function us(n){return/^(0x|0X)/.test(n)?(n.length-2)/2:n.length/2}i(us,"getHexByteLength");function we(n){let e=Object.entries(n).map(([t,r])=>d({[t]:r}));return O($(e),Qe(t=>({...t,$kind:Object.keys(t)[0]})))}i(we,"safeEnum");var Me=O(w(),Qe(n=>k(n)),Oe(X)),G=Me,ge=w(),q=O($([w(),O(A(),M())]),Oe(n=>{try{return BigInt(n),BigInt(n)>=0&&BigInt(n)<=18446744073709551615n}catch{return!1}},"Invalid u64")),te=d({objectId:Me,version:q,digest:w()}),C=O($([d({GasCoin:b(!0)}),d({Input:O(A(),M()),type:P(b("pure"))}),d({Input:O(A(),M()),type:P(b("object"))}),d({Result:O(A(),M())}),d({NestedResult:tt([O(A(),M()),O(A(),M())])})]),Qe(n=>({...n,$kind:Object.keys(n)[0]}))),as=d({budget:x(q),price:x(q),owner:x(Me),payment:x(y(te))}),Ho=d({address:w(),module:w(),name:w(),typeParams:y(w())}),Kt=$([b("address"),b("bool"),b("u8"),b("u16"),b("u32"),b("u64"),b("u128"),b("u256"),d({vector:Ae(()=>Kt)}),d({datatype:d({package:w(),module:w(),type:w(),typeParameters:y(Ae(()=>Kt))})}),d({typeParameter:O(A(),M())})]),cs=d({ref:x($([b("&"),b("&mut")])),body:Kt}),ls=d({package:G,module:w(),function:w(),typeArguments:y(w()),arguments:y(C),_argumentTypes:P(x(y(cs)))}),fs=d({name:w(),inputs:Ce(w(),$([C,y(C)])),data:Ce(w(),ae())}),ps=we({MoveCall:ls,TransferObjects:d({objects:y(C),address:C}),SplitCoins:d({coin:C,amounts:y(C)}),MergeCoins:d({destination:C,sources:y(C)}),Publish:d({modules:y(ge),dependencies:y(G)}),MakeMoveVec:d({type:x(w()),elements:y(C)}),Upgrade:d({modules:y(ge),dependencies:y(G),package:G,ticket:C}),$Intent:fs}),cr=we({ImmOrOwnedObject:te,SharedObject:d({objectId:G,initialSharedVersion:q,mutable:je()}),Receiving:te}),ds=we({Object:cr,Pure:d({bytes:ge}),UnresolvedPure:d({value:ae()}),UnresolvedObject:d({objectId:G,version:P(x(q)),digest:P(x(w())),initialSharedVersion:P(x(q))})}),Jt=we({Object:cr,Pure:d({bytes:ge})}),Yt=we({None:b(!0),Epoch:q}),Fe=d({version:b(2),sender:fe(Me),expiration:fe(Yt),gasData:as,inputs:y(ds),commands:y(ps)});var ke={MoveCall(n){let[e,t="",r=""]="target"in n?n.target.split("::"):[n.package,n.module,n.function];return{$kind:"MoveCall",MoveCall:{package:e,module:t,function:r,typeArguments:n.typeArguments??[],arguments:n.arguments??[]}}},TransferObjects(n,e){return{$kind:"TransferObjects",TransferObjects:{objects:n.map(t=>j(C,t)),address:j(C,e)}}},SplitCoins(n,e){return{$kind:"SplitCoins",SplitCoins:{coin:j(C,n),amounts:e.map(t=>j(C,t))}}},MergeCoins(n,e){return{$kind:"MergeCoins",MergeCoins:{destination:j(C,n),sources:e.map(t=>j(C,t))}}},Publish({modules:n,dependencies:e}){return{$kind:"Publish",Publish:{modules:n.map(t=>typeof t=="string"?t:D(new Uint8Array(t))),dependencies:e.map(t=>W(t))}}},Upgrade({modules:n,dependencies:e,package:t,ticket:r}){return{$kind:"Upgrade",Upgrade:{modules:n.map(s=>typeof s=="string"?s:D(new Uint8Array(s))),dependencies:e.map(s=>W(s)),package:t,ticket:j(C,r)}}},MakeMoveVec({type:n,elements:e}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:n??null,elements:e.map(t=>j(C,t))}}},Intent({name:n,inputs:e={},data:t={}}){return{$kind:"$Intent",$Intent:{name:n,inputs:Object.fromEntries(Object.entries(e).map(([r,s])=>[r,Array.isArray(s)?s.map(u=>j(C,u)):j(C,s)])),data:t}}}};var hs=/^vector<(.+)>$/,ms=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/,pe=class n{static{i(this,"TypeTagSerializer")}static parseFromStr(e,t=!1){if(e==="address")return{address:null};if(e==="bool")return{bool:null};if(e==="u8")return{u8:null};if(e==="u16")return{u16:null};if(e==="u32")return{u32:null};if(e==="u64")return{u64:null};if(e==="u128")return{u128:null};if(e==="u256")return{u256:null};if(e==="signer")return{signer:null};let r=e.match(hs);if(r)return{vector:n.parseFromStr(r[1],t)};let s=e.match(ms);if(s)return{struct:{address:t?k(s[1]):s[1],module:s[2],name:s[3],typeParams:s[5]===void 0?[]:n.parseStructTypeArgs(s[5],t)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return wt(e).map(r=>n.parseFromStr(r,t))}static tagToString(e){if("bool"in e)return"bool";if("u8"in e)return"u8";if("u16"in e)return"u16";if("u32"in e)return"u32";if("u64"in e)return"u64";if("u128"in e)return"u128";if("u256"in e)return"u256";if("address"in e)return"address";if("signer"in e)return"signer";if("vector"in e)return`vector<${n.tagToString(e.vector)}>`;if("struct"in e){let t=e.struct,r=t.typeParams.map(n.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${r?`<${r}>`:""}`}throw new Error("Invalid TypeTag")}};function ys(n){return o.u64({name:"unsafe_u64",...n}).transform({input:i(e=>e,"input"),output:i(e=>Number(e),"output")})}i(ys,"unsafe_u64");function bs(n){return o.enum("Option",{None:null,Some:n})}i(bs,"optionEnum");var U=o.bytes(nt).transform({validate:i(n=>{let e=typeof n=="string"?n:ue(n);if(!e||!X(k(e)))throw new Error(`Invalid Sui address ${e}`)},"validate"),input:i(n=>typeof n=="string"?Ve(k(n)):n,"input"),output:i(n=>k(ue(n)),"output")}),K=o.vector(o.u8()).transform({name:"ObjectDigest",input:i(n=>Z(n),"input"),output:i(n=>le(new Uint8Array(n)),"output"),validate:i(n=>{if(Z(n).length!==32)throw new Error("ObjectDigest must be 32 bytes")},"validate")}),F=o.struct("SuiObjectRef",{objectId:U,version:o.u64(),digest:K}),Zt=o.struct("SharedObjectRef",{objectId:U,initialSharedVersion:o.u64(),mutable:o.bool()}),Qt=o.enum("ObjectArg",{ImmOrOwnedObject:F,SharedObject:Zt,Receiving:F}),en=o.enum("CallArg",{Pure:o.struct("Pure",{bytes:o.vector(o.u8()).transform({input:i(n=>typeof n=="string"?V(n):n,"input"),output:i(n=>D(new Uint8Array(n)),"output")})}),Object:Qt}),tn=o.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:o.lazy(()=>tn),struct:o.lazy(()=>an),u16:null,u32:null,u256:null}),At=tn.transform({input:i(n=>typeof n=="string"?pe.parseFromStr(n,!0):n,"input"),output:i(n=>pe.tagToString(n),"output")}),ne=o.enum("Argument",{GasCoin:null,Input:o.u16(),Result:o.u16(),NestedResult:o.tuple([o.u16(),o.u16()])}),nn=o.struct("ProgrammableMoveCall",{package:U,module:o.string(),function:o.string(),typeArguments:o.vector(At),arguments:o.vector(ne)}),rn=o.enum("Command",{MoveCall:nn,TransferObjects:o.struct("TransferObjects",{objects:o.vector(ne),address:ne}),SplitCoins:o.struct("SplitCoins",{coin:ne,amounts:o.vector(ne)}),MergeCoins:o.struct("MergeCoins",{destination:ne,sources:o.vector(ne)}),Publish:o.struct("Publish",{modules:o.vector(o.vector(o.u8()).transform({input:i(n=>typeof n=="string"?V(n):n,"input"),output:i(n=>D(new Uint8Array(n)),"output")})),dependencies:o.vector(U)}),MakeMoveVec:o.struct("MakeMoveVec",{type:bs(At).transform({input:i(n=>n===null?{None:!0}:{Some:n},"input"),output:i(n=>n.Some??null,"output")}),elements:o.vector(ne)}),Upgrade:o.struct("Upgrade",{modules:o.vector(o.vector(o.u8()).transform({input:i(n=>typeof n=="string"?V(n):n,"input"),output:i(n=>D(new Uint8Array(n)),"output")})),dependencies:o.vector(U),package:U,ticket:ne})}),sn=o.struct("ProgrammableTransaction",{inputs:o.vector(en),commands:o.vector(rn)}),on=o.enum("TransactionKind",{ProgrammableTransaction:sn,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),un=o.enum("TransactionExpiration",{None:null,Epoch:ys()}),an=o.struct("StructTag",{address:U,module:o.string(),name:o.string(),typeParams:o.vector(tn)}),cn=o.struct("GasData",{payment:o.vector(F),owner:U,price:o.u64(),budget:o.u64()}),ln=o.struct("TransactionDataV1",{kind:on,sender:U,gasData:cn,expiration:un}),fn=o.enum("TransactionData",{V1:ln}),pn=o.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),dn=o.enum("IntentVersion",{V0:null}),hn=o.enum("AppId",{Sui:null}),mn=o.struct("Intent",{scope:pn,version:dn,appId:hn});function yn(n){return o.struct(`IntentMessage<${n.name}>`,{intent:mn,value:n})}i(yn,"IntentMessage");var bn=o.enum("CompressedSignature",{ED25519:o.fixedArray(64,o.u8()),Secp256k1:o.fixedArray(64,o.u8()),Secp256r1:o.fixedArray(64,o.u8()),ZkLogin:o.vector(o.u8())}),vn=o.enum("PublicKey",{ED25519:o.fixedArray(32,o.u8()),Secp256k1:o.fixedArray(33,o.u8()),Secp256r1:o.fixedArray(33,o.u8()),ZkLogin:o.vector(o.u8())}),gn=o.struct("MultiSigPkMap",{pubKey:vn,weight:o.u8()}),wn=o.struct("MultiSigPublicKey",{pk_map:o.vector(gn),threshold:o.u16()}),lr=o.struct("MultiSig",{sigs:o.vector(bn),bitmap:o.u16(),multisig_pk:wn}),vs=o.vector(o.u8()).transform({input:i(n=>typeof n=="string"?V(n):n,"input"),output:i(n=>D(new Uint8Array(n)),"output")}),kn=o.struct("SenderSignedTransaction",{intentMessage:yn(fn),txSignatures:o.vector(vs)}),fr=o.vector(kn,{name:"SenderSignedData"});var gs=o.enum("PackageUpgradeError",{UnableToFetchPackage:o.struct("UnableToFetchPackage",{packageId:U}),NotAPackage:o.struct("NotAPackage",{objectId:U}),IncompatibleUpgrade:null,DigestDoesNotMatch:o.struct("DigestDoesNotMatch",{digest:o.vector(o.u8())}),UnknownUpgradePolicy:o.struct("UnknownUpgradePolicy",{policy:o.u8()}),PackageIDDoesNotMatch:o.struct("PackageIDDoesNotMatch",{packageId:U,ticketId:U})}),ws=o.struct("ModuleId",{address:U,name:o.string()}),pr=o.struct("MoveLocation",{module:ws,function:o.u16(),instruction:o.u16(),functionName:o.option(o.string())}),ks=o.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:o.struct("IndexOutOfBounds",{idx:o.u16()}),SecondaryIndexOutOfBounds:o.struct("SecondaryIndexOutOfBounds",{resultIdx:o.u16(),secondaryIdx:o.u16()}),InvalidResultArity:o.struct("InvalidResultArity",{resultIdx:o.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),Ss=o.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),_s=o.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:o.struct("MoveObjectTooBig",{objectSize:o.u64(),maxObjectSize:o.u64()}),MovePackageTooBig:o.struct("MovePackageTooBig",{objectSize:o.u64(),maxObjectSize:o.u64()}),CircularObjectOwnership:o.struct("CircularObjectOwnership",{object:U}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:o.option(pr),MoveAbort:o.tuple([pr,o.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:o.struct("CommandArgumentError",{argIdx:o.u16(),kind:ks}),TypeArgumentError:o.struct("TypeArgumentError",{argumentIdx:o.u16(),kind:Ss}),UnusedValueWithoutDrop:o.struct("UnusedValueWithoutDrop",{resultIdx:o.u16(),secondaryIdx:o.u16()}),InvalidPublicFunctionReturnType:o.struct("InvalidPublicFunctionReturnType",{idx:o.u16()}),InvalidTransferObject:null,EffectsTooLarge:o.struct("EffectsTooLarge",{currentSize:o.u64(),maxSize:o.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:o.struct("PackageUpgradeError",{upgradeError:gs}),WrittenObjectsTooLarge:o.struct("WrittenObjectsTooLarge",{currentSize:o.u64(),maxSize:o.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:o.struct("ExecutionCancelledDueToSharedObjectCongestion",{congestedObjects:o.vector(U)}),AddressDeniedForCoin:o.struct("AddressDeniedForCoin",{address:U,coinType:o.string()}),CoinTypeGlobalPause:o.struct("CoinTypeGlobalPause",{coinType:o.string()}),ExecutionCancelledDueToRandomnessUnavailable:null}),dr=o.enum("ExecutionStatus",{Success:null,Failed:o.struct("ExecutionFailed",{error:_s,command:o.option(o.u64())})}),hr=o.struct("GasCostSummary",{computationCost:o.u64(),storageCost:o.u64(),storageRebate:o.u64(),nonRefundableStorageFee:o.u64()}),He=o.enum("Owner",{AddressOwner:U,ObjectOwner:U,Shared:o.struct("Shared",{initialSharedVersion:o.u64()}),Immutable:null}),Is=o.struct("TransactionEffectsV1",{status:dr,executedEpoch:o.u64(),gasUsed:hr,modifiedAtVersions:o.vector(o.tuple([U,o.u64()])),sharedObjects:o.vector(F),transactionDigest:K,created:o.vector(o.tuple([F,He])),mutated:o.vector(o.tuple([F,He])),unwrapped:o.vector(o.tuple([F,He])),deleted:o.vector(F),unwrappedThenDeleted:o.vector(F),wrapped:o.vector(F),gasObject:o.tuple([F,He]),eventsDigest:o.option(K),dependencies:o.vector(K)}),Sn=o.tuple([o.u64(),K]),Es=o.enum("ObjectIn",{NotExist:null,Exist:o.tuple([Sn,He])}),xs=o.enum("ObjectOut",{NotExist:null,ObjectWrite:o.tuple([K,He]),PackageWrite:Sn}),Ts=o.enum("IDOperation",{None:null,Created:null,Deleted:null}),Os=o.struct("EffectsObjectChange",{inputState:Es,outputState:xs,idOperation:Ts}),js=o.enum("UnchangedSharedKind",{ReadOnlyRoot:Sn,MutateDeleted:o.u64(),ReadDeleted:o.u64(),Cancelled:o.u64(),PerEpochConfig:null}),As=o.struct("TransactionEffectsV2",{status:dr,executedEpoch:o.u64(),gasUsed:hr,transactionDigest:K,gasObjectIndex:o.option(o.u32()),eventsDigest:o.option(K),dependencies:o.vector(K),lamportVersion:o.u64(),changedObjects:o.vector(o.tuple([U,Os])),unchangedSharedObjects:o.vector(o.tuple([U,js])),auxDataDigest:o.option(K)}),mr=o.enum("TransactionEffects",{V1:Is,V2:As});var v={...o,U8:o.u8(),U16:o.u16(),U32:o.u32(),U64:o.u64(),U128:o.u128(),U256:o.u256(),ULEB128:o.uleb128(),Bool:o.bool(),String:o.string(),Address:U,AppId:hn,Argument:ne,CallArg:en,CompressedSignature:bn,GasData:cn,Intent:mn,IntentMessage:yn,IntentScope:pn,IntentVersion:dn,MultiSig:lr,MultiSigPkMap:gn,MultiSigPublicKey:wn,ObjectArg:Qt,ObjectDigest:K,ProgrammableMoveCall:nn,ProgrammableTransaction:sn,PublicKey:vn,SenderSignedData:fr,SenderSignedTransaction:kn,SharedObjectRef:Zt,StructTag:an,SuiObjectRef:F,Command:rn,TransactionData:fn,TransactionDataV1:ln,TransactionExpiration:un,TransactionKind:on,TypeTag:At,TransactionEffects:mr};var _n=d({digest:w(),objectId:w(),version:$([O(A(),M()),w(),Ot()])}),Cs=we({ImmOrOwned:_n,Shared:d({objectId:G,initialSharedVersion:q,mutable:je()}),Receiving:_n}),yr=we({Object:Cs,Pure:y(O(A(),M()))}),vr=$([d({kind:b("Input"),index:O(A(),M()),value:ae(),type:P(b("object"))}),d({kind:b("Input"),index:O(A(),M()),value:ae(),type:b("pure")})]),Ms=$([d({Epoch:O(A(),M())}),d({None:x(b(!0))})]),br=O($([A(),w(),Ot()]),Oe(n=>{if(!["string","number","bigint"].includes(typeof n))return!1;try{return BigInt(n),!0}catch{return!1}})),In=$([d({bool:x(b(!0))}),d({u8:x(b(!0))}),d({u64:x(b(!0))}),d({u128:x(b(!0))}),d({address:x(b(!0))}),d({signer:x(b(!0))}),d({vector:Ae(()=>In)}),d({struct:Ae(()=>Us)}),d({u16:x(b(!0))}),d({u32:x(b(!0))}),d({u256:x(b(!0))})]),Us=d({address:w(),module:w(),name:w(),typeParams:y(In)}),Ds=d({budget:P(br),price:P(br),payment:P(y(_n)),owner:P(w())}),Bs=[vr,d({kind:b("GasCoin")}),d({kind:b("Result"),index:O(A(),M())}),d({kind:b("NestedResult"),index:O(A(),M()),resultIndex:O(A(),M())})],me=$([...Bs]),Rs=d({kind:b("MoveCall"),target:O(w(),Oe(n=>n.split("::").length===3)),typeArguments:y(w()),arguments:y(me)}),$s=d({kind:b("TransferObjects"),objects:y(me),address:me}),Ps=d({kind:b("SplitCoins"),coin:me,amounts:y(me)}),Ns=d({kind:b("MergeCoins"),destination:me,sources:y(me)}),zs=d({kind:b("MakeMoveVec"),type:$([d({Some:In}),d({None:x(b(!0))})]),objects:y(me)}),Vs=d({kind:b("Publish"),modules:y(y(O(A(),M()))),dependencies:y(w())}),qs=d({kind:b("Upgrade"),modules:y(y(O(A(),M()))),dependencies:y(w()),packageId:w(),ticket:me}),Gs=[Rs,$s,Ps,Ns,Vs,qs,zs],Ls=$([...Gs]),Su=d({version:b(1),sender:P(w()),expiration:fe(Ms),gasConfig:Ds,inputs:y(vr),transactions:y(Ls)});function En(n){let e=n.inputs.map((t,r)=>{if(t.Object)return{kind:"Input",index:r,value:{Object:t.Object.ImmOrOwnedObject?{ImmOrOwned:t.Object.ImmOrOwnedObject}:t.Object.Receiving?{Receiving:{digest:t.Object.Receiving.digest,version:t.Object.Receiving.version,objectId:t.Object.Receiving.objectId}}:{Shared:{mutable:t.Object.SharedObject.mutable,initialSharedVersion:t.Object.SharedObject.initialSharedVersion,objectId:t.Object.SharedObject.objectId}}},type:"object"};if(t.Pure)return{kind:"Input",index:r,value:{Pure:Array.from(V(t.Pure.bytes))},type:"pure"};if(t.UnresolvedPure)return{kind:"Input",type:"pure",index:r,value:t.UnresolvedPure.value};if(t.UnresolvedObject)return{kind:"Input",type:"object",index:r,value:t.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:n.sender??void 0,expiration:n.expiration?.$kind==="Epoch"?{Epoch:Number(n.expiration.Epoch)}:n.expiration?{None:!0}:null,gasConfig:{owner:n.gasData.owner??void 0,budget:n.gasData.budget??void 0,price:n.gasData.price??void 0,payment:n.gasData.payment??void 0},inputs:e,transactions:n.commands.map(t=>{if(t.MakeMoveVec)return{kind:"MakeMoveVec",type:t.MakeMoveVec.type===null?{None:!0}:{Some:pe.parseFromStr(t.MakeMoveVec.type)},objects:t.MakeMoveVec.elements.map(r=>de(r,e))};if(t.MergeCoins)return{kind:"MergeCoins",destination:de(t.MergeCoins.destination,e),sources:t.MergeCoins.sources.map(r=>de(r,e))};if(t.MoveCall)return{kind:"MoveCall",target:`${t.MoveCall.package}::${t.MoveCall.module}::${t.MoveCall.function}`,typeArguments:t.MoveCall.typeArguments,arguments:t.MoveCall.arguments.map(r=>de(r,e))};if(t.Publish)return{kind:"Publish",modules:t.Publish.modules.map(r=>Array.from(V(r))),dependencies:t.Publish.dependencies};if(t.SplitCoins)return{kind:"SplitCoins",coin:de(t.SplitCoins.coin,e),amounts:t.SplitCoins.amounts.map(r=>de(r,e))};if(t.TransferObjects)return{kind:"TransferObjects",objects:t.TransferObjects.objects.map(r=>de(r,e)),address:de(t.TransferObjects.address,e)};if(t.Upgrade)return{kind:"Upgrade",modules:t.Upgrade.modules.map(r=>Array.from(V(r))),dependencies:t.Upgrade.dependencies,packageId:t.Upgrade.package,ticket:de(t.Upgrade.ticket,e)};throw new Error(`Unknown transaction ${Object.keys(t)}`)})}}i(En,"serializeV1TransactionData");function de(n,e){if(n.$kind==="GasCoin")return{kind:"GasCoin"};if(n.$kind==="Result")return{kind:"Result",index:n.Result};if(n.$kind==="NestedResult")return{kind:"NestedResult",index:n.NestedResult[0],resultIndex:n.NestedResult[1]};if(n.$kind==="Input")return e[n.Input];throw new Error(`Invalid argument ${Object.keys(n)}`)}i(de,"convertTransactionArgument");function gr(n){return j(Fe,{version:2,sender:n.sender??null,expiration:n.expiration?"Epoch"in n.expiration?{Epoch:n.expiration.Epoch}:{None:!0}:null,gasData:{owner:n.gasConfig.owner??null,budget:n.gasConfig.budget?.toString()??null,price:n.gasConfig.price?.toString()??null,payment:n.gasConfig.payment?.map(e=>({digest:e.digest,objectId:e.objectId,version:e.version.toString()}))??null},inputs:n.inputs.map(e=>{if(e.kind==="Input"){if(et(yr,e.value)){let t=j(yr,e.value);if(t.Object){if(t.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:t.Object.ImmOrOwned.objectId,version:String(t.Object.ImmOrOwned.version),digest:t.Object.ImmOrOwned.digest}}};if(t.Object.Shared)return{Object:{SharedObject:{mutable:t.Object.Shared.mutable??null,initialSharedVersion:t.Object.Shared.initialSharedVersion,objectId:t.Object.Shared.objectId}}};if(t.Object.Receiving)return{Object:{Receiving:{digest:t.Object.Receiving.digest,version:String(t.Object.Receiving.version),objectId:t.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:D(new Uint8Array(t.Pure))}}}return e.type==="object"?{UnresolvedObject:{objectId:e.value}}:{UnresolvedPure:{value:e.value}}}throw new Error("Invalid input")}),commands:n.transactions.map(e=>{switch(e.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in e.type?pe.tagToString(e.type.Some):null,elements:e.objects.map(t=>he(t))}};case"MergeCoins":return{MergeCoins:{destination:he(e.destination),sources:e.sources.map(t=>he(t))}};case"MoveCall":{let[t,r,s]=e.target.split("::");return{MoveCall:{package:t,module:r,function:s,typeArguments:e.typeArguments,arguments:e.arguments.map(u=>he(u))}}}case"Publish":return{Publish:{modules:e.modules.map(t=>D(Uint8Array.from(t))),dependencies:e.dependencies}};case"SplitCoins":return{SplitCoins:{coin:he(e.coin),amounts:e.amounts.map(t=>he(t))}};case"TransferObjects":return{TransferObjects:{objects:e.objects.map(t=>he(t)),address:he(e.address)}};case"Upgrade":return{Upgrade:{modules:e.modules.map(t=>D(Uint8Array.from(t))),dependencies:e.dependencies,package:e.packageId,ticket:he(e.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(e)}`)})})}i(gr,"transactionDataFromV1");function he(n){switch(n.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:n.index};case"NestedResult":return{NestedResult:[n.index,n.resultIndex]};case"Input":return{Input:n.index}}}i(he,"parseV1TransactionArgument");function rt(n){return $(Object.entries(n).map(([e,t])=>d({[e]:t})))}i(rt,"enumUnion");var re=rt({GasCoin:b(!0),Input:O(A(),M()),Result:O(A(),M()),NestedResult:tt([O(A(),M()),O(A(),M())])}),Ws=d({budget:x(q),price:x(q),owner:x(Me),payment:x(y(te))}),Fs=d({package:G,module:w(),function:w(),typeArguments:y(w()),arguments:y(re)}),Hs=d({name:w(),inputs:Ce(w(),$([re,y(re)])),data:Ce(w(),ae())}),Xs=rt({MoveCall:Fs,TransferObjects:d({objects:y(re),address:re}),SplitCoins:d({coin:re,amounts:y(re)}),MergeCoins:d({destination:re,sources:y(re)}),Publish:d({modules:y(ge),dependencies:y(G)}),MakeMoveVec:d({type:x(w()),elements:y(re)}),Upgrade:d({modules:y(ge),dependencies:y(G),package:G,ticket:re}),$Intent:Hs}),Ks=rt({ImmOrOwnedObject:te,SharedObject:d({objectId:G,initialSharedVersion:q,mutable:je()}),Receiving:te}),Js=rt({Object:Ks,Pure:d({bytes:ge}),UnresolvedPure:d({value:ae()}),UnresolvedObject:d({objectId:G,version:P(x(q)),digest:P(x(w())),initialSharedVersion:P(x(q))})}),Ys=rt({None:b(!0),Epoch:q}),wr=d({version:b(2),sender:fe(Me),expiration:fe(Ys),gasData:Ws,inputs:y(Js),commands:y(Xs)});function Zs(n){return{$kind:"Pure",Pure:{bytes:n instanceof Uint8Array?D(n):n.toBase64()}}}i(Zs,"Pure");var se={Pure:Zs,ObjectRef({objectId:n,digest:e,version:t}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:e,version:t,objectId:k(n)}}}},SharedObjectRef({objectId:n,mutable:e,initialSharedVersion:t}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:e,initialSharedVersion:t,objectId:k(n)}}}},ReceivingRef({objectId:n,digest:e,version:t}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:e,version:t,objectId:k(n)}}}}};var Qs=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,ei=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i;function kr(n,e="at"){let t=n.toLowerCase(),r;if(t.includes("@")){if(!Qs.test(t))throw new Error(`Invalid SuiNS name ${n}`);let[s,u]=t.split("@");r=[...s?s.split("."):[],u]}else{if(!ei.test(t))throw new Error(`Invalid SuiNS name ${n}`);r=t.split(".").slice(0,-1)}return e==="dot"?`${r.join(".")}.sui`:`${r.slice(0,-1).join(".")}@${r[r.length-1]}`}i(kr,"normalizeSuiNSName");var ti=BigInt(1e9),xn="0x1",Ct="0x2";var ni=W("0x6");var Tn=`${Ct}::sui::SUI`,ri=W("0x5");Wr();Hn();var Sr=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3]),Mt=class extends Wn{static{i(this,"BLAKE")}constructor(e,t,r={},s,u,a){if(super(),this.blockLen=e,this.outputLen=t,this.length=0,this.pos=0,this.finished=!1,this.destroyed=!1,bt(e),bt(t),bt(s),t<0||t>s)throw new Error("outputLen bigger than keyLen");if(r.key!==void 0&&(r.key.length<1||r.key.length>s))throw new Error(`key must be up 1..${s} byte long or undefined`);if(r.salt!==void 0&&r.salt.length!==u)throw new Error(`salt must be ${u} byte long or undefined`);if(r.personalization!==void 0&&r.personalization.length!==a)throw new Error(`personalization must be ${a} byte long or undefined`);this.buffer32=Ne(this.buffer=new Uint8Array(e))}update(e){qt(this);let{blockLen:t,buffer:r,buffer32:s}=this;e=ze(e);let u=e.length,a=e.byteOffset,c=e.buffer;for(let l=0;l<u;){this.pos===t&&(xe||Te(s),this.compress(s,0,!1),xe||Te(s),this.pos=0);let f=Math.min(t-this.pos,u-l),p=a+l;if(f===t&&!(p%4)&&l+f<u){let m=new Uint32Array(c,p,Math.floor((u-l)/4));xe||Te(m);for(let S=0;l+t<u;S+=s.length,l+=t)this.length+=t,this.compress(m,S,!1);xe||Te(m);continue}r.set(e.subarray(l,l+f),this.pos),this.pos+=f,this.length+=f,l+=f}return this}digestInto(e){qt(this),Ln(e,this);let{pos:t,buffer32:r}=this;this.finished=!0,this.buffer.subarray(t).fill(0),xe||Te(r),this.compress(r,0,!0),xe||Te(r);let s=Ne(e);this.get().forEach((u,a)=>s[a]=Y(u))}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){let{buffer:t,length:r,finished:s,destroyed:u,outputLen:a,pos:c}=this;return e||(e=new this.constructor({dkLen:a})),e.set(...this.get()),e.length=r,e.finished=s,e.destroyed=u,e.outputLen=a,e.buffer.set(t),e.pos=c,e}};Fr();Hn();var N=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),h=new Uint32Array(32);function Se(n,e,t,r,s,u){let a=s[u],c=s[u+1],l=h[2*n],f=h[2*n+1],p=h[2*e],m=h[2*e+1],S=h[2*t],_=h[2*t+1],g=h[2*r],I=h[2*r+1],B=z.add3L(l,p,a);f=z.add3H(B,f,m,c),l=B|0,{Dh:I,Dl:g}={Dh:I^f,Dl:g^l},{Dh:I,Dl:g}={Dh:z.rotr32H(I,g),Dl:z.rotr32L(I,g)},{h:_,l:S}=z.add(_,S,I,g),{Bh:m,Bl:p}={Bh:m^_,Bl:p^S},{Bh:m,Bl:p}={Bh:z.rotrSH(m,p,24),Bl:z.rotrSL(m,p,24)},h[2*n]=l,h[2*n+1]=f,h[2*e]=p,h[2*e+1]=m,h[2*t]=S,h[2*t+1]=_,h[2*r]=g,h[2*r+1]=I}i(Se,"G1b");function _e(n,e,t,r,s,u){let a=s[u],c=s[u+1],l=h[2*n],f=h[2*n+1],p=h[2*e],m=h[2*e+1],S=h[2*t],_=h[2*t+1],g=h[2*r],I=h[2*r+1],B=z.add3L(l,p,a);f=z.add3H(B,f,m,c),l=B|0,{Dh:I,Dl:g}={Dh:I^f,Dl:g^l},{Dh:I,Dl:g}={Dh:z.rotrSH(I,g,16),Dl:z.rotrSL(I,g,16)},{h:_,l:S}=z.add(_,S,I,g),{Bh:m,Bl:p}={Bh:m^_,Bl:p^S},{Bh:m,Bl:p}={Bh:z.rotrBH(m,p,63),Bl:z.rotrBL(m,p,63)},h[2*n]=l,h[2*n+1]=f,h[2*e]=p,h[2*e+1]=m,h[2*t]=S,h[2*t+1]=_,h[2*r]=g,h[2*r+1]=I}i(_e,"G2b");var On=class extends Mt{static{i(this,"BLAKE2b")}constructor(e={}){super(128,e.dkLen===void 0?64:e.dkLen,e,64,16,16),this.v0l=N[0]|0,this.v0h=N[1]|0,this.v1l=N[2]|0,this.v1h=N[3]|0,this.v2l=N[4]|0,this.v2h=N[5]|0,this.v3l=N[6]|0,this.v3h=N[7]|0,this.v4l=N[8]|0,this.v4h=N[9]|0,this.v5l=N[10]|0,this.v5h=N[11]|0,this.v6l=N[12]|0,this.v6h=N[13]|0,this.v7l=N[14]|0,this.v7h=N[15]|0;let t=e.key?e.key.length:0;if(this.v0l^=this.outputLen|t<<8|65536|1<<24,e.salt){let r=Ne(ze(e.salt));this.v4l^=Y(r[0]),this.v4h^=Y(r[1]),this.v5l^=Y(r[2]),this.v5h^=Y(r[3])}if(e.personalization){let r=Ne(ze(e.personalization));this.v6l^=Y(r[0]),this.v6h^=Y(r[1]),this.v7l^=Y(r[2]),this.v7h^=Y(r[3])}if(e.key){let r=new Uint8Array(this.blockLen);r.set(ze(e.key)),this.update(r)}}get(){let{v0l:e,v0h:t,v1l:r,v1h:s,v2l:u,v2h:a,v3l:c,v3h:l,v4l:f,v4h:p,v5l:m,v5h:S,v6l:_,v6h:g,v7l:I,v7h:B}=this;return[e,t,r,s,u,a,c,l,f,p,m,S,_,g,I,B]}set(e,t,r,s,u,a,c,l,f,p,m,S,_,g,I,B){this.v0l=e|0,this.v0h=t|0,this.v1l=r|0,this.v1h=s|0,this.v2l=u|0,this.v2h=a|0,this.v3l=c|0,this.v3h=l|0,this.v4l=f|0,this.v4h=p|0,this.v5l=m|0,this.v5h=S|0,this.v6l=_|0,this.v6h=g|0,this.v7l=I|0,this.v7h=B|0}compress(e,t,r){this.get().forEach((l,f)=>h[f]=l),h.set(N,16);let{h:s,l:u}=z.fromBig(BigInt(this.length));h[24]=N[8]^u,h[25]=N[9]^s,r&&(h[28]=~h[28],h[29]=~h[29]);let a=0,c=Sr;for(let l=0;l<12;l++)Se(0,4,8,12,e,t+2*c[a++]),_e(0,4,8,12,e,t+2*c[a++]),Se(1,5,9,13,e,t+2*c[a++]),_e(1,5,9,13,e,t+2*c[a++]),Se(2,6,10,14,e,t+2*c[a++]),_e(2,6,10,14,e,t+2*c[a++]),Se(3,7,11,15,e,t+2*c[a++]),_e(3,7,11,15,e,t+2*c[a++]),Se(0,5,10,15,e,t+2*c[a++]),_e(0,5,10,15,e,t+2*c[a++]),Se(1,6,11,12,e,t+2*c[a++]),_e(1,6,11,12,e,t+2*c[a++]),Se(2,7,8,13,e,t+2*c[a++]),_e(2,7,8,13,e,t+2*c[a++]),Se(3,4,9,14,e,t+2*c[a++]),_e(3,4,9,14,e,t+2*c[a++]);this.v0l^=h[0]^h[16],this.v0h^=h[1]^h[17],this.v1l^=h[2]^h[18],this.v1h^=h[3]^h[19],this.v2l^=h[4]^h[20],this.v2h^=h[5]^h[21],this.v3l^=h[6]^h[22],this.v3h^=h[7]^h[23],this.v4l^=h[8]^h[24],this.v4h^=h[9]^h[25],this.v5l^=h[10]^h[26],this.v5h^=h[11]^h[27],this.v6l^=h[12]^h[28],this.v6h^=h[13]^h[29],this.v7l^=h[14]^h[30],this.v7h^=h[15]^h[31],h.fill(0)}destroy(){this.destroyed=!0,this.buffer32.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},_r=Fn(n=>new On(n));var si="object",ii="ID",oi="ascii",ui="String",ai="string",ci="String",li="option",fi="Option";function Ir(n){let e=typeof n.body=="object"&&"datatype"in n.body?n.body.datatype:null;return!!e&&k(e.package)===k("0x2")&&e.module==="tx_context"&&e.type==="TxContext"}i(Ir,"isTxContext");function Ut(n){if(typeof n=="string")switch(n){case"address":return v.Address;case"bool":return v.Bool;case"u8":return v.U8;case"u16":return v.U16;case"u32":return v.U32;case"u64":return v.U64;case"u128":return v.U128;case"u256":return v.U256;default:throw new Error(`Unknown type signature ${n}`)}if("vector"in n){if(n.vector==="u8")return v.vector(v.U8).transform({input:i(t=>typeof t=="string"?new TextEncoder().encode(t):t,"input"),output:i(t=>t,"output")});let e=Ut(n.vector);return e?v.vector(e):null}if("datatype"in n){let e=k(n.datatype.package);if(e===k(xn)){if(n.datatype.module===oi&&n.datatype.type===ui)return v.String;if(n.datatype.module===ai&&n.datatype.type===ci)return v.String;if(n.datatype.module===li&&n.datatype.type===fi){let t=Ut(n.datatype.typeParameters[0]);return t?v.vector(t):null}}if(e===k(Ct)&&n.datatype.module===si&&n.datatype.type===ii)return v.Address}return null}i(Ut,"getPureBcsSchema");function Er(n){return typeof n=="object"&&"Reference"in n?{ref:"&",body:st(n.Reference)}:typeof n=="object"&&"MutableReference"in n?{ref:"&mut",body:st(n.MutableReference)}:{ref:null,body:st(n)}}i(Er,"normalizedTypeToMoveTypeSignature");function st(n){if(typeof n=="string")switch(n){case"Address":return"address";case"Bool":return"bool";case"U8":return"u8";case"U16":return"u16";case"U32":return"u32";case"U64":return"u64";case"U128":return"u128";case"U256":return"u256";default:throw new Error(`Unexpected type ${n}`)}if("Vector"in n)return{vector:st(n.Vector)};if("Struct"in n)return{datatype:{package:n.Struct.address,module:n.Struct.module,type:n.Struct.name,typeParameters:n.Struct.typeArguments.map(st)}};if("TypeParameter"in n)return{typeParameter:n.TypeParameter};throw new Error(`Unexpected type ${JSON.stringify(n)}`)}i(st,"normalizedTypeToMoveTypeSignatureBody");var pi=50,di=1000n,hi=5e10;async function Tr(n,e,t){return await gi(n,e),await vi(n,e),e.onlyTransactionKind||(await mi(n,e),await yi(n,e),await bi(n,e)),await wi(n),await t()}i(Tr,"resolveTransactionData");async function mi(n,e){n.gasConfig.price||(n.gasConfig.price=String(await it(e).getReferenceGasPrice()))}i(mi,"setGasPrice");async function yi(n,e){if(n.gasConfig.budget)return;let t=await it(e).dryRunTransactionBlock({transactionBlock:n.build({overrides:{gasData:{budget:String(hi),payment:[]}}})});if(t.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${t.effects.status.error}`,{cause:t});let r=di*BigInt(n.gasConfig.price||1n),s=BigInt(t.effects.gasUsed.computationCost)+r,u=s+BigInt(t.effects.gasUsed.storageCost)-BigInt(t.effects.gasUsed.storageRebate);n.gasConfig.budget=String(u>s?u:s)}i(yi,"setGasBudget");async function bi(n,e){if(!n.gasConfig.payment){let r=(await it(e).getCoins({owner:n.gasConfig.owner||n.sender,coinType:Tn})).data.filter(s=>!n.inputs.find(a=>a.Object?.ImmOrOwnedObject?s.coinObjectId===a.Object.ImmOrOwnedObject.objectId:!1)).map(s=>({objectId:s.coinObjectId,digest:s.digest,version:s.version}));if(!r.length)throw new Error("No valid gas coins found for the transaction.");n.gasConfig.payment=r.map(s=>j(te,s))}}i(bi,"setGasPayment");async function vi(n,e){let t=n.inputs.filter(p=>p.UnresolvedObject&&!(p.UnresolvedObject.version||p.UnresolvedObject?.initialSharedVersion)),r=[...new Set(t.map(p=>W(p.UnresolvedObject.objectId)))],s=r.length?Ii(r,pi):[],u=(await Promise.all(s.map(p=>it(e).multiGetObjects({ids:p,options:{showOwner:!0}})))).flat(),a=new Map(r.map((p,m)=>[p,u[m]])),c=Array.from(a).filter(([p,m])=>m.error).map(([p,m])=>JSON.stringify(m.error));if(c.length)throw new Error(`The following input objects are invalid: ${c.join(", ")}`);let l=u.map(p=>{if(p.error||!p.data)throw new Error(`Failed to fetch object: ${p.error}`);let m=p.data.owner,S=m&&typeof m=="object"&&"Shared"in m?m.Shared.initial_shared_version:null;return{objectId:p.data.objectId,digest:p.data.digest,version:p.data.version,initialSharedVersion:S}}),f=new Map(r.map((p,m)=>[p,l[m]]));for(let[p,m]of n.inputs.entries()){if(!m.UnresolvedObject)continue;let S,_=k(m.UnresolvedObject.objectId),g=f.get(_);m.UnresolvedObject.initialSharedVersion??g?.initialSharedVersion?S=se.SharedObjectRef({objectId:_,initialSharedVersion:m.UnresolvedObject.initialSharedVersion||g?.initialSharedVersion,mutable:ki(n,p)}):Si(n,p)&&(S=se.ReceivingRef({objectId:_,digest:m.UnresolvedObject.digest??g?.digest,version:m.UnresolvedObject.version??g?.version})),n.inputs[n.inputs.indexOf(m)]=S??se.ObjectRef({objectId:_,digest:m.UnresolvedObject.digest??g?.digest,version:m.UnresolvedObject.version??g?.version})}}i(vi,"resolveObjectReferences");async function gi(n,e){let{inputs:t,commands:r}=n,s=[],u=new Set;r.forEach(c=>{if(c.MoveCall){if(c.MoveCall._argumentTypes)return;if(c.MoveCall.arguments.map(p=>p.$kind==="Input"?n.inputs[p.Input]:null).some(p=>p?.UnresolvedPure||p?.UnresolvedObject)){let p=`${c.MoveCall.package}::${c.MoveCall.module}::${c.MoveCall.function}`;u.add(p),s.push(c.MoveCall)}}switch(c.$kind){case"SplitCoins":c.SplitCoins.amounts.forEach(l=>{xr(l,v.U64,n)});break;case"TransferObjects":xr(c.TransferObjects.address,v.Address,n);break}});let a=new Map;if(u.size>0){let c=it(e);await Promise.all([...u].map(async l=>{let[f,p,m]=l.split("::"),S=await c.getNormalizedMoveFunction({package:f,module:p,function:m});a.set(l,S.parameters.map(_=>Er(_)))}))}s.length&&await Promise.all(s.map(async c=>{let l=a.get(`${c.package}::${c.module}::${c.function}`);if(!l)return;let p=l.length>0&&Ir(l.at(-1))?l.slice(0,l.length-1):l;c._argumentTypes=p})),r.forEach(c=>{if(!c.MoveCall)return;let l=c.MoveCall,f=`${l.package}::${l.module}::${l.function}`,p=l._argumentTypes;if(p){if(p.length!==c.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${f}`);p.forEach((m,S)=>{let _=l.arguments[S];if(_.$kind!=="Input")return;let g=t[_.Input];if(!g.UnresolvedPure&&!g.UnresolvedObject)return;let I=g.UnresolvedPure?.value??g.UnresolvedObject?.objectId,B=Ut(m.body);if(B){_.type="pure",t[t.indexOf(g)]=se.Pure(B.serialize(I));return}if(typeof I!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(I,null,2)}`);_.type="object";let Pe=g.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:I}}:g;t[_.Input]=Pe})}})}i(gi,"normalizeInputs");function wi(n){n.inputs.forEach((e,t)=>{if(e.$kind!=="Object"&&e.$kind!=="Pure")throw new Error(`Input at index ${t} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(e)}`)})}i(wi,"validate");function xr(n,e,t){if(n.$kind!=="Input")return;let r=t.inputs[n.Input];r.$kind==="UnresolvedPure"&&(t.inputs[n.Input]=se.Pure(e.serialize(r.UnresolvedPure.value)))}i(xr,"normalizeRawArgument");function ki(n,e){let t=!1;return n.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){let u=s.MoveCall.arguments.indexOf(r);t=s.MoveCall._argumentTypes[u].ref!=="&"||t}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins")&&(t=!0)}),t}i(ki,"isUsedAsMutable");function Si(n,e){let t=!1;return n.getInputUses(e,(r,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){let u=s.MoveCall.arguments.indexOf(r);t=_i(s.MoveCall._argumentTypes[u])||t}}),t}i(Si,"isUsedAsReceiving");function _i(n){return typeof n.body!="object"||!("datatype"in n.body)?!1:n.body.datatype.package==="0x2"&&n.body.datatype.module==="transfer"&&n.body.datatype.type==="Receiving"}i(_i,"isReceivingType");function it(n){if(!n.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return n.client}i(it,"getClient");function Ii(n,e){return Array.from({length:Math.ceil(n.length/e)},(t,r)=>n.slice(r*e,r*e+e))}i(Ii,"chunk");function Or(n){function e(t){return n(t)}return i(e,"object"),e.system=()=>e("0x5"),e.clock=()=>e("0x6"),e.random=()=>e("0x8"),e.denyList=()=>e("0x403"),e.option=({type:t,value:r})=>s=>s.moveCall({typeArguments:[t],target:`0x1::option::${r===null?"none":"some"}`,arguments:r===null?[]:[s.object(r)]}),e}i(Or,"createObjectMethods");function jr(n){function e(t,r){if(typeof t=="string")return n(ot(t).serialize(r));if(t instanceof Uint8Array||Le(t))return n(t);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return i(e,"pure"),e.u8=t=>n(v.U8.serialize(t)),e.u16=t=>n(v.U16.serialize(t)),e.u32=t=>n(v.U32.serialize(t)),e.u64=t=>n(v.U64.serialize(t)),e.u128=t=>n(v.U128.serialize(t)),e.u256=t=>n(v.U256.serialize(t)),e.bool=t=>n(v.Bool.serialize(t)),e.string=t=>n(v.String.serialize(t)),e.address=t=>n(v.Address.serialize(t)),e.id=e.address,e.vector=(t,r)=>n(v.vector(ot(t)).serialize(r)),e.option=(t,r)=>n(v.option(ot(t)).serialize(r)),e}i(jr,"createPure");function ot(n){switch(n){case"u8":return v.u8();case"u16":return v.u16();case"u32":return v.u32();case"u64":return v.u64();case"u128":return v.u128();case"u256":return v.u256();case"bool":return v.bool();case"string":return v.string();case"id":case"address":return v.Address}let e=n.match(/^(vector|option)<(.+)>$/);if(e){let[t,r]=e.slice(1);return t==="vector"?v.vector(ot(r)):v.option(ot(r))}throw new Error(`Invalid Pure type name: ${n}`)}i(ot,"schemaFromName");function Ar(n,e){let t=Array.from(`${n}::`).map(s=>s.charCodeAt(0)),r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),_r(r,{dkLen:32})}i(Ar,"hashTypedData");function Cr(n){return k(n).replace("0x","")}i(Cr,"prepareSuiAddress");var Ie=class n{static{i(this,"TransactionDataBuilder")}constructor(e){this.version=2,this.sender=e?.sender??null,this.expiration=e?.expiration??null,this.inputs=e?.inputs??[],this.commands=e?.commands??[],this.gasData=e?.gasData??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(e){let r=v.TransactionKind.parse(e).ProgrammableTransaction;if(!r)throw new Error("Unable to deserialize from bytes.");return n.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:r.inputs,commands:r.commands})}static fromBytes(e){let r=v.TransactionData.parse(e)?.V1,s=r.kind.ProgrammableTransaction;if(!r||!s)throw new Error("Unable to deserialize from bytes.");return n.restore({version:2,sender:r.sender,expiration:r.expiration,gasData:r.gasData,inputs:s.inputs,commands:s.commands})}static restore(e){return e.version===2?new n(j(Fe,e)):new n(j(Fe,gr(e)))}static getDigestFromBytes(e){let t=Ar("TransactionData",e);return le(t)}get gasConfig(){return this.gasData}set gasConfig(e){this.gasData=e}build({maxSizeBytes:e=1/0,overrides:t,onlyTransactionKind:r}={}){let s=this.inputs,u=this.commands,a={ProgrammableTransaction:{inputs:s,commands:u}};if(r)return v.TransactionKind.serialize(a,{maxSize:e}).toBytes();let c=t?.expiration??this.expiration,l=t?.sender??this.sender,f={...this.gasData,...t?.gasConfig,...t?.gasData};if(!l)throw new Error("Missing transaction sender");if(!f.budget)throw new Error("Missing gas budget");if(!f.payment)throw new Error("Missing gas payment");if(!f.price)throw new Error("Missing gas price");let p={sender:Cr(l),expiration:c||{None:!0},gasData:{payment:f.payment,owner:Cr(this.gasData.owner??l),price:BigInt(f.price),budget:BigInt(f.budget)},kind:{ProgrammableTransaction:{inputs:s,commands:u}}};return v.TransactionData.serialize({V1:p},{maxSize:e}).toBytes()}addInput(e,t){let r=this.inputs.length;return this.inputs.push(t),{Input:r,type:e,$kind:"Input"}}getInputUses(e,t){this.mapArguments((r,s)=>(r.$kind==="Input"&&r.Input===e&&t(r,s),r))}mapArguments(e){for(let t of this.commands)switch(t.$kind){case"MoveCall":t.MoveCall.arguments=t.MoveCall.arguments.map(s=>e(s,t));break;case"TransferObjects":t.TransferObjects.objects=t.TransferObjects.objects.map(s=>e(s,t)),t.TransferObjects.address=e(t.TransferObjects.address,t);break;case"SplitCoins":t.SplitCoins.coin=e(t.SplitCoins.coin,t),t.SplitCoins.amounts=t.SplitCoins.amounts.map(s=>e(s,t));break;case"MergeCoins":t.MergeCoins.destination=e(t.MergeCoins.destination,t),t.MergeCoins.sources=t.MergeCoins.sources.map(s=>e(s,t));break;case"MakeMoveVec":t.MakeMoveVec.elements=t.MakeMoveVec.elements.map(s=>e(s,t));break;case"Upgrade":t.Upgrade.ticket=e(t.Upgrade.ticket,t);break;case"$Intent":let r=t.$Intent.inputs;t.$Intent.inputs={};for(let[s,u]of Object.entries(r))t.$Intent.inputs[s]=Array.isArray(u)?u.map(a=>e(a,t)):e(u,t);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${t.$kind}`)}}replaceCommand(e,t){if(!Array.isArray(t)){this.commands[e]=t;return}let r=t.length-1;this.commands.splice(e,1,...t),r!==0&&this.mapArguments(s=>{switch(s.$kind){case"Result":s.Result>e&&(s.Result+=r);break;case"NestedResult":s.NestedResult[0]>e&&(s.NestedResult[0]+=r);break}return s})}getDigest(){let e=this.build({onlyTransactionKind:!1});return n.getDigestFromBytes(e)}snapshot(){return j(Fe,this)}};function jn(n){if(typeof n=="string")return k(n);if(n.Object)return n.Object.ImmOrOwnedObject?k(n.Object.ImmOrOwnedObject.objectId):n.Object.Receiving?k(n.Object.Receiving.objectId):k(n.Object.SharedObject.objectId);if(n.UnresolvedObject)return k(n.UnresolvedObject.objectId)}i(jn,"getIdFromCallArg");var Ur=i(n=>{throw TypeError(n)},"__typeError"),Un=i((n,e,t)=>e.has(n)||Ur("Cannot "+t),"__accessCheck"),E=i((n,e,t)=>(Un(n,e,"read from private field"),t?t.call(n):e.get(n)),"__privateGet"),ut=i((n,e,t)=>e.has(n)?Ur("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),"__privateAdd"),Ue=i((n,e,t,r)=>(Un(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),"__privateSet"),ye=i((n,e,t)=>(Un(n,e,"access private method"),t),"__privateMethod"),ct,lt,De,T,ie,Dt,Dn,Cn,Bn;function Ei(n){let e={$kind:"Result",Result:n},t=[],r=i(s=>t[s]??(t[s]={$kind:"NestedResult",NestedResult:[n,s]}),"nestedResultFor");return new Proxy(e,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(s,u){if(u in s)return Reflect.get(s,u);if(u===Symbol.iterator)return function*(){let c=0;for(;;)yield r(c),c++};if(typeof u=="symbol")return;let a=parseInt(u,10);if(!(Number.isNaN(a)||a<0))return r(a)}})}i(Ei,"createTransactionResult");var Dr=Symbol.for("@mysten/transaction");function Bt(n){return!!n&&typeof n=="object"&&n[Dr]===!0}i(Bt,"isTransaction");var Mr={buildPlugins:new Map,serializationPlugins:new Map},An=Symbol.for("@mysten/transaction/registry");function at(){try{let n=globalThis;return n[An]||(n[An]=Mr),n[An]}catch{return Mr}}i(at,"getGlobalPluginRegistry");var xi=class Mn{static{i(this,"_Transaction")}constructor(){ut(this,ie),ut(this,ct),ut(this,lt),ut(this,De,new Map),ut(this,T),this.object=Or(t=>{if(typeof t=="function")return this.object(t(this));if(typeof t=="object"&&et(C,t))return t;let r=jn(t),s=E(this,T).inputs.find(u=>r===jn(u));return s?.Object?.SharedObject&&typeof t=="object"&&t.Object?.SharedObject&&(s.Object.SharedObject.mutable=s.Object.SharedObject.mutable||t.Object.SharedObject.mutable),s?{$kind:"Input",Input:E(this,T).inputs.indexOf(s),type:"object"}:E(this,T).addInput("object",typeof t=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:k(t)}}:t)});let e=at();Ue(this,T,new Ie),Ue(this,lt,[...e.buildPlugins.values()]),Ue(this,ct,[...e.serializationPlugins.values()])}static fromKind(e){let t=new Mn;return Ue(t,T,Ie.fromKindBytes(typeof e=="string"?V(e):e)),t}static from(e){let t=new Mn;return Bt(e)?Ue(t,T,new Ie(e.getData())):typeof e!="string"||!e.startsWith("{")?Ue(t,T,Ie.fromBytes(typeof e=="string"?V(e):e)):Ue(t,T,Ie.restore(JSON.parse(e))),t}static registerGlobalSerializationPlugin(e,t){at().serializationPlugins.set(e,t??e)}static unregisterGlobalSerializationPlugin(e){at().serializationPlugins.delete(e)}static registerGlobalBuildPlugin(e,t){at().buildPlugins.set(e,t??e)}static unregisterGlobalBuildPlugin(e){at().buildPlugins.delete(e)}addSerializationPlugin(e){E(this,ct).push(e)}addBuildPlugin(e){E(this,lt).push(e)}addIntentResolver(e,t){if(E(this,De).has(e)&&E(this,De).get(e)!==t)throw new Error(`Intent resolver for ${e} already exists`);E(this,De).set(e,t)}setSender(e){E(this,T).sender=e}setSenderIfNotSet(e){E(this,T).sender||(E(this,T).sender=e)}setExpiration(e){E(this,T).expiration=e?j(Yt,e):null}setGasPrice(e){E(this,T).gasConfig.price=String(e)}setGasBudget(e){E(this,T).gasConfig.budget=String(e)}setGasBudgetIfNotSet(e){E(this,T).gasData.budget==null&&(E(this,T).gasConfig.budget=String(e))}setGasOwner(e){E(this,T).gasConfig.owner=e}setGasPayment(e){E(this,T).gasConfig.payment=e.map(t=>j(te,t))}get blockData(){return En(E(this,T).snapshot())}getData(){return E(this,T).snapshot()}get[Dr](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:jr(e=>Le(e)?E(this,T).addInput("pure",{$kind:"Pure",Pure:{bytes:e.toBase64()}}):E(this,T).addInput("pure",et(Jt,e)?j(Jt,e):e instanceof Uint8Array?se.Pure(e):{$kind:"UnresolvedPure",UnresolvedPure:{value:e}}))}),this.pure}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...e){return this.object(se.ObjectRef(...e))}receivingRef(...e){return this.object(se.ReceivingRef(...e))}sharedObjectRef(...e){return this.object(se.SharedObjectRef(...e))}add(e){if(typeof e=="function")return e(this);let t=E(this,T).commands.push(e);return Ei(t-1)}splitCoins(e,t){return this.add(ke.SplitCoins(typeof e=="string"?this.object(e):ye(this,ie,Dn).call(this,e),t.map(r=>typeof r=="number"||typeof r=="bigint"||typeof r=="string"?this.pure.u64(r):ye(this,ie,Dt).call(this,r))))}mergeCoins(e,t){return this.add(ke.MergeCoins(this.object(e),t.map(r=>this.object(r))))}publish({modules:e,dependencies:t}){return this.add(ke.Publish({modules:e,dependencies:t}))}upgrade({modules:e,dependencies:t,package:r,ticket:s}){return this.add(ke.Upgrade({modules:e,dependencies:t,package:r,ticket:this.object(s)}))}moveCall({arguments:e,...t}){return this.add(ke.MoveCall({...t,arguments:e?.map(r=>ye(this,ie,Dt).call(this,r))}))}transferObjects(e,t){return this.add(ke.TransferObjects(e.map(r=>this.object(r)),typeof t=="string"?this.pure.address(t):ye(this,ie,Dt).call(this,t)))}makeMoveVec({type:e,elements:t}){return this.add(ke.MakeMoveVec({type:e,elements:t.map(r=>this.object(r))}))}serialize(){return JSON.stringify(En(E(this,T).snapshot()))}async toJSON(e={}){return await this.prepareForSerialization(e),JSON.stringify(j(wr,E(this,T).snapshot()),(t,r)=>typeof r=="bigint"?r.toString():r,2)}async sign(e){let{signer:t,...r}=e,s=await this.build(r);return t.signTransaction(s)}async build(e={}){return await this.prepareForSerialization(e),await ye(this,ie,Cn).call(this,e),E(this,T).build({onlyTransactionKind:e.onlyTransactionKind})}async getDigest(e={}){return await ye(this,ie,Cn).call(this,e),E(this,T).getDigest()}async prepareForSerialization(e){let t=new Set;for(let s of E(this,T).commands)s.$Intent&&t.add(s.$Intent.name);let r=[...E(this,ct)];for(let s of t)if(!e.supportedIntents?.includes(s)){if(!E(this,De).has(s))throw new Error(`Missing intent resolver for ${s}`);r.push(E(this,De).get(s))}await ye(this,ie,Bn).call(this,r,e)}};ct=new WeakMap;lt=new WeakMap;De=new WeakMap;T=new WeakMap;ie=new WeakSet;Dt=i(function(n){return Le(n)?this.pure(n):ye(this,ie,Dn).call(this,n)},"normalizeTransactionArgument_fn");Dn=i(function(n){return typeof n=="function"?j(C,n(this)):j(C,n)},"resolveArgument_fn");Cn=i(async function(n){if(!n.onlyTransactionKind&&!E(this,T).sender)throw new Error("Missing transaction sender");await ye(this,ie,Bn).call(this,[...E(this,lt),Tr],n)},"prepareBuild_fn");Bn=i(async function(n,e){let t=i(r=>{if(r>=n.length)return()=>{};let s=n[r];return async()=>{let u=t(r+1),a=!1,c=!1;if(await s(E(this,T),e,async()=>{if(a)throw new Error(`next() was call multiple times in TransactionPlugin ${r}`);a=!0,await u(),c=!0}),!a)throw new Error(`next() was not called in TransactionPlugin ${r}`);if(!c)throw new Error(`next() was not awaited in TransactionPlugin ${r}`)}},"createNext");await t(0)()},"runPlugins_fn");var Ti=xi;var Vn=Gn(Xn(),1);import{Endpoints as Di}from"@sentio/runtime";var Br="1.16.2",Rr="1.40.0";var Oi={"-32700":"ParseError","-32701":"OversizedRequest","-32702":"OversizedResponse","-32600":"InvalidRequest","-32601":"MethodNotFound","-32602":"InvalidParams","-32603":"InternalError","-32604":"ServerBusy","-32000":"CallExecutionFailed","-32001":"UnknownError","-32003":"SubscriptionClosed","-32004":"SubscriptionClosedWithError","-32005":"BatchesNotSupported","-32006":"TooManySubscriptions","-32050":"TransientError","-32002":"TransactionExecutionClientError"},Rt=class extends Error{static{i(this,"SuiHTTPTransportError")}},Xe=class extends Rt{static{i(this,"JsonRpcError")}constructor(e,t){super(e),this.code=t,this.type=Oi[t]??"ServerError"}},$t=class extends Rt{static{i(this,"SuiHTTPStatusError")}constructor(e,t,r){super(e),this.status=t,this.statusText=r}};var $r=i(n=>{throw TypeError(n)},"__typeError"),$n=i((n,e,t)=>e.has(n)||$r("Cannot "+t),"__accessCheck"),R=i((n,e,t)=>($n(n,e,"read from private field"),t?t.call(n):e.get(n)),"__privateGet"),Be=i((n,e,t)=>e.has(n)?$r("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),"__privateAdd"),Ke=i((n,e,t,r)=>($n(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),"__privateSet"),Pr=i((n,e,t)=>($n(n,e,"access private method"),t),"__privateMethod"),ji=i((n,e,t,r)=>({set _(s){Ke(n,e,s,t)},get _(){return R(n,e,r)}}),"__privateWrapper"),Re,ft,be,$e,pt,Je,Pt,Nr,zr;function Ai(n){let e=new URL(n);return e.protocol=e.protocol.replace("http","ws"),e.toString()}i(Ai,"getWebsocketUrl");var Ci={WebSocketConstructor:typeof WebSocket<"u"?WebSocket:void 0,callTimeout:3e4,reconnectTimeout:3e3,maxReconnects:5},Nt=class{static{i(this,"WebsocketClient")}constructor(e,t={}){if(Be(this,Pt),Be(this,Re,0),Be(this,ft,0),Be(this,be,null),Be(this,$e,null),Be(this,pt,new Set),Be(this,Je,new Map),this.endpoint=e,this.options={...Ci,...t},!this.options.WebSocketConstructor)throw new Error("Missing WebSocket constructor");this.endpoint.startsWith("http")&&(this.endpoint=Ai(this.endpoint))}async makeRequest(e,t){let r=await Pr(this,Pt,Nr).call(this);return new Promise((s,u)=>{Ke(this,Re,R(this,Re)+1),R(this,Je).set(R(this,Re),{resolve:s,reject:u,timeout:setTimeout(()=>{R(this,Je).delete(R(this,Re)),u(new Error(`Request timeout: ${e}`))},this.options.callTimeout)}),r.send(JSON.stringify({jsonrpc:"2.0",id:R(this,Re),method:e,params:t}))}).then(({error:s,result:u})=>{if(s)throw new Xe(s.message,s.code);return u})}async subscribe(e){let t=new Rn(e);return R(this,pt).add(t),await t.subscribe(this),()=>t.unsubscribe(this)}};Re=new WeakMap;ft=new WeakMap;be=new WeakMap;$e=new WeakMap;pt=new WeakMap;Je=new WeakMap;Pt=new WeakSet;Nr=i(function(){return R(this,$e)?R(this,$e):(Ke(this,$e,new Promise(n=>{R(this,be)?.close(),Ke(this,be,new this.options.WebSocketConstructor(this.endpoint)),R(this,be).addEventListener("open",()=>{Ke(this,ft,0),n(R(this,be))}),R(this,be).addEventListener("close",()=>{ji(this,ft)._++,R(this,ft)<=this.options.maxReconnects&&setTimeout(()=>{Pr(this,Pt,zr).call(this)},this.options.reconnectTimeout)}),R(this,be).addEventListener("message",({data:e})=>{let t;try{t=JSON.parse(e)}catch(r){console.error(new Error(`Failed to parse RPC message: ${e}`,{cause:r}));return}if("id"in t&&t.id!=null&&R(this,Je).has(t.id)){let{resolve:r,timeout:s}=R(this,Je).get(t.id);clearTimeout(s),r(t)}else if("params"in t){let{params:r}=t;R(this,pt).forEach(s=>{s.subscriptionId===r.subscription&&r.subscription===s.subscriptionId&&s.onMessage(r.result)})}})})),R(this,$e))},"setupWebSocket_fn");zr=i(async function(){return R(this,be)?.close(),Ke(this,$e,null),Promise.allSettled([...R(this,pt)].map(n=>n.subscribe(this)))},"reconnect_fn");var Rn=class{static{i(this,"RpcSubscription")}constructor(e){this.subscriptionId=null,this.subscribed=!1,this.input=e}onMessage(e){this.subscribed&&this.input.onMessage(e)}async unsubscribe(e){let{subscriptionId:t}=this;return this.subscribed=!1,t==null?!1:(this.subscriptionId=null,e.makeRequest(this.input.unsubscribe,[t]))}async subscribe(e){this.subscriptionId=null,this.subscribed=!0;let t=await e.makeRequest(this.input.method,this.input.params);this.subscribed&&(this.subscriptionId=t)}};var Vr=i(n=>{throw TypeError(n)},"__typeError"),zn=i((n,e,t)=>e.has(n)||Vr("Cannot "+t),"__accessCheck"),J=i((n,e,t)=>(zn(n,e,"read from private field"),t?t.call(n):e.get(n)),"__privateGet"),zt=i((n,e,t)=>e.has(n)?Vr("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),"__privateAdd"),Pn=i((n,e,t,r)=>(zn(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),"__privateSet"),Mi=i((n,e,t)=>(zn(n,e,"access private method"),t),"__privateMethod"),dt,oe,ht,Nn,qr,Vt=class{static{i(this,"SuiHTTPTransport")}constructor(e){zt(this,Nn),zt(this,dt,0),zt(this,oe),zt(this,ht),Pn(this,oe,e)}fetch(e,t){let r=J(this,oe).fetch??fetch;if(!r)throw new Error("The current environment does not support fetch, you can provide a fetch implementation in the options for SuiHTTPTransport.");return r(e,t)}async request(e){Pn(this,dt,J(this,dt)+1);let t=await this.fetch(J(this,oe).rpc?.url??J(this,oe).url,{method:"POST",headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":Br,"Client-Target-Api-Version":Rr,"Client-Request-Method":e.method,...J(this,oe).rpc?.headers},body:JSON.stringify({jsonrpc:"2.0",id:J(this,dt),method:e.method,params:e.params})});if(!t.ok)throw new $t(`Unexpected status code: ${t.status}`,t.status,t.statusText);let r=await t.json();if("error"in r&&r.error!=null)throw new Xe(r.error.message,r.error.code);return r.result}async subscribe(e){let t=await Mi(this,Nn,qr).call(this).subscribe(e);return async()=>!!await t()}};dt=new WeakMap;oe=new WeakMap;ht=new WeakMap;Nn=new WeakSet;qr=i(function(){if(!J(this,ht)){let n=J(this,oe).WebSocketConstructor??WebSocket;if(!n)throw new Error("The current environment does not support WebSocket, you can provide a WebSocketConstructor in the options for SuiHTTPTransport.");Pn(this,ht,new Nt(J(this,oe).websocket?.url??J(this,oe).url,{WebSocketConstructor:n,...J(this,oe).websocket}))}return J(this,ht)},"getWebsocketClient_fn");var Ui=Symbol.for("@mysten/SuiClient");var mt=class{static{i(this,"SuiClient")}get[Ui](){return!0}constructor(e){this.transport=e.transport??new Vt({url:e.url})}async getRpcApiVersion(){return(await this.transport.request({method:"rpc.discover",params:[]})).info.version}async getCoins(e){if(!e.owner||!X(k(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getCoins",params:[e.owner,e.coinType,e.cursor,e.limit]})}async getAllCoins(e){if(!e.owner||!X(k(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getAllCoins",params:[e.owner,e.cursor,e.limit]})}async getBalance(e){if(!e.owner||!X(k(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getBalance",params:[e.owner,e.coinType]})}async getAllBalances(e){if(!e.owner||!X(k(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getAllBalances",params:[e.owner]})}async getCoinMetadata(e){return await this.transport.request({method:"suix_getCoinMetadata",params:[e.coinType]})}async getTotalSupply(e){return await this.transport.request({method:"suix_getTotalSupply",params:[e.coinType]})}async call(e,t){return await this.transport.request({method:e,params:t})}async getMoveFunctionArgTypes(e){return await this.transport.request({method:"sui_getMoveFunctionArgTypes",params:[e.package,e.module,e.function]})}async getNormalizedMoveModulesByPackage(e){return await this.transport.request({method:"sui_getNormalizedMoveModulesByPackage",params:[e.package]})}async getNormalizedMoveModule(e){return await this.transport.request({method:"sui_getNormalizedMoveModule",params:[e.package,e.module]})}async getNormalizedMoveFunction(e){return await this.transport.request({method:"sui_getNormalizedMoveFunction",params:[e.package,e.module,e.function]})}async getNormalizedMoveStruct(e){return await this.transport.request({method:"sui_getNormalizedMoveStruct",params:[e.package,e.module,e.struct]})}async getOwnedObjects(e){if(!e.owner||!X(k(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getOwnedObjects",params:[e.owner,{filter:e.filter,options:e.options},e.cursor,e.limit]})}async getObject(e){if(!e.id||!We(W(e.id)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"sui_getObject",params:[e.id,e.options]})}async tryGetPastObject(e){return await this.transport.request({method:"sui_tryGetPastObject",params:[e.id,e.version,e.options]})}async multiGetObjects(e){if(e.ids.forEach(r=>{if(!r||!We(W(r)))throw new Error(`Invalid Sui Object id ${r}`)}),e.ids.length!==new Set(e.ids).size)throw new Error(`Duplicate object ids in batch call ${e.ids}`);return await this.transport.request({method:"sui_multiGetObjects",params:[e.ids,e.options]})}async queryTransactionBlocks(e){return await this.transport.request({method:"suix_queryTransactionBlocks",params:[{filter:e.filter,options:e.options},e.cursor,e.limit,(e.order||"descending")==="descending"]})}async getTransactionBlock(e){if(!jt(e.digest))throw new Error("Invalid Transaction digest");return await this.transport.request({method:"sui_getTransactionBlock",params:[e.digest,e.options]})}async multiGetTransactionBlocks(e){if(e.digests.forEach(r=>{if(!jt(r))throw new Error(`Invalid Transaction digest ${r}`)}),e.digests.length!==new Set(e.digests).size)throw new Error(`Duplicate digests in batch call ${e.digests}`);return await this.transport.request({method:"sui_multiGetTransactionBlocks",params:[e.digests,e.options]})}async executeTransactionBlock({transactionBlock:e,signature:t,options:r,requestType:s}){let u=await this.transport.request({method:"sui_executeTransactionBlock",params:[typeof e=="string"?e:D(e),Array.isArray(t)?t:[t],r]});if(s==="WaitForLocalExecution")try{await this.waitForTransaction({digest:u.digest})}catch{}return u}async signAndExecuteTransaction({transaction:e,signer:t,...r}){let s;e instanceof Uint8Array?s=e:(e.setSenderIfNotSet(t.toSuiAddress()),s=await e.build({client:this}));let{signature:u,bytes:a}=await t.signTransaction(s);return this.executeTransactionBlock({transactionBlock:a,signature:u,...r})}async getTotalTransactionBlocks(){let e=await this.transport.request({method:"sui_getTotalTransactionBlocks",params:[]});return BigInt(e)}async getReferenceGasPrice(){let e=await this.transport.request({method:"suix_getReferenceGasPrice",params:[]});return BigInt(e)}async getStakes(e){if(!e.owner||!X(k(e.owner)))throw new Error("Invalid Sui address");return await this.transport.request({method:"suix_getStakes",params:[e.owner]})}async getStakesByIds(e){return e.stakedSuiIds.forEach(t=>{if(!t||!We(W(t)))throw new Error(`Invalid Sui Stake id ${t}`)}),await this.transport.request({method:"suix_getStakesByIds",params:[e.stakedSuiIds]})}async getLatestSuiSystemState(){return await this.transport.request({method:"suix_getLatestSuiSystemState",params:[]})}async queryEvents(e){return await this.transport.request({method:"suix_queryEvents",params:[e.query,e.cursor,e.limit,(e.order||"descending")==="descending"]})}async subscribeEvent(e){return this.transport.subscribe({method:"suix_subscribeEvent",unsubscribe:"suix_unsubscribeEvent",params:[e.filter],onMessage:e.onMessage})}async subscribeTransaction(e){return this.transport.subscribe({method:"suix_subscribeTransaction",unsubscribe:"suix_unsubscribeTransaction",params:[e.filter],onMessage:e.onMessage})}async devInspectTransactionBlock(e){let t;if(Bt(e.transactionBlock))e.transactionBlock.setSenderIfNotSet(e.sender),t=D(await e.transactionBlock.build({client:this,onlyTransactionKind:!0}));else if(typeof e.transactionBlock=="string")t=e.transactionBlock;else if(e.transactionBlock instanceof Uint8Array)t=D(e.transactionBlock);else throw new Error("Unknown transaction block format.");return await this.transport.request({method:"sui_devInspectTransactionBlock",params:[e.sender,t,e.gasPrice?.toString(),e.epoch]})}async dryRunTransactionBlock(e){return await this.transport.request({method:"sui_dryRunTransactionBlock",params:[typeof e.transactionBlock=="string"?e.transactionBlock:D(e.transactionBlock)]})}async getDynamicFields(e){if(!e.parentId||!We(W(e.parentId)))throw new Error("Invalid Sui Object id");return await this.transport.request({method:"suix_getDynamicFields",params:[e.parentId,e.cursor,e.limit]})}async getDynamicFieldObject(e){return await this.transport.request({method:"suix_getDynamicFieldObject",params:[e.parentId,e.name]})}async getLatestCheckpointSequenceNumber(){let e=await this.transport.request({method:"sui_getLatestCheckpointSequenceNumber",params:[]});return String(e)}async getCheckpoint(e){return await this.transport.request({method:"sui_getCheckpoint",params:[e.id]})}async getCheckpoints(e){return await this.transport.request({method:"sui_getCheckpoints",params:[e.cursor,e?.limit,e.descendingOrder]})}async getCommitteeInfo(e){return await this.transport.request({method:"suix_getCommitteeInfo",params:[e?.epoch]})}async getNetworkMetrics(){return await this.transport.request({method:"suix_getNetworkMetrics",params:[]})}async getAddressMetrics(){return await this.transport.request({method:"suix_getLatestAddressMetrics",params:[]})}async getEpochMetrics(e){return await this.transport.request({method:"suix_getEpochMetrics",params:[e?.cursor,e?.limit,e?.descendingOrder]})}async getAllEpochAddressMetrics(e){return await this.transport.request({method:"suix_getAllEpochAddressMetrics",params:[e?.descendingOrder]})}async getEpochs(e){return await this.transport.request({method:"suix_getEpochs",params:[e?.cursor,e?.limit,e?.descendingOrder]})}async getMoveCallMetrics(){return await this.transport.request({method:"suix_getMoveCallMetrics",params:[]})}async getCurrentEpoch(){return await this.transport.request({method:"suix_getCurrentEpoch",params:[]})}async getValidatorsApy(){return await this.transport.request({method:"suix_getValidatorsApy",params:[]})}async getChainIdentifier(){let e=await this.getCheckpoint({id:"0"}),t=Z(e.digest);return ue(t.slice(0,4))}async resolveNameServiceAddress(e){return await this.transport.request({method:"suix_resolveNameServiceAddress",params:[e.name]})}async resolveNameServiceNames({format:e="dot",...t}){let{nextCursor:r,hasNextPage:s,data:u}=await this.transport.request({method:"suix_resolveNameServiceNames",params:[t.address,t.cursor,t.limit]});return{hasNextPage:s,nextCursor:r,data:u.map(a=>kr(a,e))}}async getProtocolConfig(e){return await this.transport.request({method:"sui_getProtocolConfig",params:[e?.version]})}async waitForTransaction({signal:e,timeout:t=60*1e3,pollInterval:r=2*1e3,...s}){let u=AbortSignal.timeout(t),a=new Promise((c,l)=>{u.addEventListener("abort",()=>l(u.reason))});for(a.catch(()=>{});!u.aborted;){e?.throwIfAborted();try{return await this.getTransactionBlock(s)}catch{await Promise.race([new Promise(l=>setTimeout(l,r)),a])}}throw u.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}};var Bi={MAIN_NET:Vn.SuiChainId.SUI_MAINNET,TEST_NET:Vn.SuiChainId.SUI_TESTNET};function Gr(n){let e=Di.INSTANCE.chainServer.get(n);return e||(e=Ri(n)),new mt({url:e})}i(Gr,"getClient");function Ri(n){switch(n){case Bi.TEST_NET:return"https://fullnode.testnet.sui.io/"}return"https://fullnode.mainnet.sui.io/"}i(Ri,"getRpcEndpoint");import("node:process").then(n=>n.stdout.write(""));var qn=Gn(Xn(),1);var yt=new Map;async function Oc(){let n=zi.coinlist;try{n=(await(await Yn("https://raw.githubusercontent.com/solflare-wallet/sui-coinlist/master/sui-coinlist.json")).json()).coinlist}catch{console.warn("Can't not fetch newest coin list, use default list")}$i(n)}i(Oc,"initCoinList");function $i(n){for(let e of n){if(e.address.startsWith("0x2::coin::Coin")||e.network!=="mainnet")continue;let t="native";e.name.includes("Celer")&&(t="Celer"),e.name.includes("LayerZero")&&(t="LayerZero"),e.name.includes("Wormhole")&&(t="Wormhole"),yt.set(e.address,{type:e.address,symbol:e.symbol,decimals:e.decimals,bridge:t})}}i($i,"setCoinList");function jc(){return yt}i(jc,"whitelistCoins");function Pi(n){let[e,t,r]=n.split(vt),s=[Kn(e),t,r].join(vt);return yt.has(s)}i(Pi,"whiteListed");function Ac(n){let e=yt.get(n);if(!e){let t=n.split("::");return{type:n,symbol:t[2],decimals:8,bridge:"native"}}return e}i(Ac,"getCoinInfo");var Lr=new Map;async function Cc(n,e){let t=yt.get(n);if(!t){e=e||qn.SuiChainId.SUI_MAINNET;let r=e+"_"+n,s=Lr.get(r);s||(s=Gr(e).getCoinMetadata({coinType:n}),Lr.set(r,s));let u=await s;if(u===null)throw Error("Coin not existed "+r);let a=n.split(vt);return{type:n,symbol:u.symbol,decimals:u.decimals,bridge:"native"}}return t}i(Cc,"getCoinInfoWithFallback");async function Ni(n,e){if(!Pi(n))return 0;let t=new Date(e/1e3);try{return await Jn(qn.SuiChainId.SUI_MAINNET,n,t)||0}catch(r){throw console.log(JSON.stringify(r)),r}}i(Ni,"getPrice");async function Mc(n,e,t){let r=await Ni(e.type,t);return n.scaleDown(e.decimals).multipliedBy(r)}i(Mc,"calculateValueInUsd");var zi={name:"Sui Coin List",timestamp:"2022-12-01T13:34:30.145Z",logoURI:"https://s2.coinmarketcap.com/static/img/coins/128x128/20947.png",coinlist:[{network:"mainnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"devnet",address:"0x2::coin::Coin<0x2::sui::SUI>",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"mainnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"devnet",address:"0x2::sui::SUI",symbol:"SUI",name:"Sui Coin",decimals:9,logoURI:"https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg",tags:[],extensions:{coingeckoId:"sui"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST",symbol:"TEST",name:"Test Token",logoURI:"https://suiswap.app/images/token/suiswap-test.svg",tags:[],decimals:8,extensions:{}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT",symbol:"USDT",name:"Tether",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],decimals:8,extensions:{coingeckoId:"tether"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL",symbol:"SOL",name:"Solana",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",decimals:8,extensions:{coingeckoId:"solana"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC",symbol:"BTC",name:"Bitcoin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI",symbol:"DAI",name:"DAI",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"dai"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB",symbol:"BNB",name:"BNB",logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",decimals:8,tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"testnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH",symbol:"ETH",name:"Ethereum",logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",decimals:8,tags:[],extensions:{coingeckoId:"ethereum"}},{network:"testnet",address:"0x31b14985adb91360ed90a5786cb0956c83e7f275a8ae6123f38adab9d2b792b1::usdc::USDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST",symbol:"TEST",name:"Test Token",logoURI:"https://suiswap.app/images/token/suiswap-test.svg",tags:[],decimals:8,extensions:{}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT",symbol:"USDT",name:"Tether",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],decimals:8,extensions:{coingeckoId:"tether"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC",symbol:"USDC",name:"USD Coin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL",symbol:"SOL",name:"Solana",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",decimals:8,extensions:{coingeckoId:"solana"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC",symbol:"BTC",name:"Bitcoin",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI",symbol:"DAI",name:"DAI",logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png",decimals:8,tags:[],extensions:{coingeckoId:"dai"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB",symbol:"BNB",name:"BNB",logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",decimals:8,tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"devnet",address:"0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH",symbol:"ETH",name:"Ethereum",logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",decimals:8,tags:[],extensions:{coingeckoId:"ethereum"}},{network:"mainnet",address:"0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN",symbol:"wETH",name:"Wrapped Ethereum (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/279/large/ethereum.png",tags:[],extensions:{coingeckoId:"ethereum"}},{network:"mainnet",address:"0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN",symbol:"wUSDT",name:"Tether (Wormhole)",decimals:6,logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png",tags:[],extensions:{coingeckoId:"tether"}},{network:"mainnet",address:"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",symbol:"wUSDC",name:"USD Coin (Wormhole)",decimals:6,logoURI:"https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",tags:[],extensions:{coingeckoId:"usd-coin"}},{network:"mainnet",address:"0xa198f3be41cda8c07b3bf3fee02263526e535d682499806979a111e88a5a8d0f::coin::COIN",symbol:"wCELO",name:"Celo (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/11090/large/InjXBNx9_400x400.jpg",tags:[],extensions:{coingeckoId:"celo"}},{network:"mainnet",address:"0xdbe380b13a6d0f5cdedd58de8f04625263f113b3f9db32b3e1983f49e2841676::coin::COIN",symbol:"wMATIC",name:"Wrapped Matic (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4713/large/matic-token-icon.png",tags:[],extensions:{coingeckoId:"matic-network"}},{network:"mainnet",address:"0xb848cce11ef3a8f62eccea6eb5b35a12c4c2b1ee1af7755d02d7bd6218e8226f::coin::COIN",symbol:"wBNB",name:"Wrapped BNB (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",tags:[],extensions:{coingeckoId:"binancecoin"}},{network:"mainnet",address:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",symbol:"wBTC",name:"Wrapped Bitcoin (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/1/large/bitcoin.png",tags:[],extensions:{coingeckoId:"bitcoin"}},{network:"mainnet",address:"0x1e8b532cca6569cab9f9b9ebc73f8c13885012ade714729aa3b450e0339ac766::coin::COIN",symbol:"wAVAX",name:"Wrapped AVAX (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/12559/large/Avalanche_Circle_RedWhite_Trans.png",tags:[],extensions:{coingeckoId:"avalanche-2"}},{network:"mainnet",address:"0x6081300950a4f1e2081580e919c210436a1bed49080502834950d31ee55a2396::coin::COIN",symbol:"wFTM",name:"Wrapped Fantom (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4001/large/Fantom_round.png",tags:[],extensions:{coingeckoId:"fantom"}},{network:"mainnet",address:"0x66f87084e49c38f76502d17f87d17f943f183bb94117561eb573e075fdc5ff75::coin::COIN",symbol:"wGLMR",name:"Wrapped GLMR (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/22459/large/glmr.png",tags:[],extensions:{coingeckoId:"moonbeam"}},{network:"mainnet",address:"0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN",symbol:"wSOL",name:"Wrapped Solana (Wormhole)",decimals:8,logoURI:"https://assets.coingecko.com/coins/images/4128/large/solana.png",tags:[],extensions:{coingeckoId:"solana"}},{network:"mainnet",address:"0xb231fcda8bbddb31f2ef02e6161444aec64a514e2c89279584ac9806ce9cf037::coin::COIN",symbol:"wUSDCsol",name:"USD Coin Solana (Wormhole)",decimals:6,logoURI:"https://assets.coingecko.com/coins/images/6319/large/USD_Coin_icon.png",tags:[],extensions:{coingeckoId:"usd-coin"}}]};import("node:process").then(n=>n.stdout.write(""));export{k as a,W as b,v as c,Ti as d,mt as e,Bi as f,Gr as g,Ri as h,Oc as i,jc as j,Pi as k,Ac as l,Cc as m,Ni as n,Mc as o};
3
- //# sourceMappingURL=chunk-XVOZ4ULD.js.map