@mysten/sui
Version:
Sui TypeScript API
1 lines • 25.3 kB
Source Map (JSON)
{"version":3,"file":"transaction-resolver.mjs","names":["GrpcTransactionType"],"sources":["../../src/client/transaction-resolver.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\n\nimport type { bcs } from '../bcs/index.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type {\n\tCallArg,\n\tCommand as BcsCommand,\n\tTransactionData,\n} from '../transactions/data/internal.js';\nimport type { Transaction as GrpcTransaction } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport {\n\tTransaction as GrpcTransactionType,\n\tTransactionExpiration_TransactionExpirationKind,\n} from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { ObjectReference } from '../grpc/proto/sui/rpc/v2/object_reference.js';\nimport type { Input } from '../grpc/proto/sui/rpc/v2/input.js';\nimport { FundsWithdrawal_Source, Input_InputKind } from '../grpc/proto/sui/rpc/v2/input.js';\nimport type { Command } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { Argument } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Argument_ArgumentKind } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Transaction } from '../transactions/Transaction.js';\n\n/**\n * Converts CallArg (TypeScript internal format) to gRPC Input format\n */\nfunction callArgToGrpcInput(arg: CallArg): Input {\n\tswitch (arg.$kind) {\n\t\tcase 'Pure':\n\t\t\t// Pure.bytes is a base64-encoded string that needs to be decoded\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.PURE,\n\t\t\t\tpure: fromBase64(arg.Pure.bytes),\n\t\t\t};\n\n\t\tcase 'Object':\n\t\t\tif (arg.Object.$kind === 'ImmOrOwnedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.IMMUTABLE_OR_OWNED,\n\t\t\t\t\tobjectId: arg.Object.ImmOrOwnedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.ImmOrOwnedObject.version),\n\t\t\t\t\tdigest: arg.Object.ImmOrOwnedObject.digest,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'SharedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.SHARED,\n\t\t\t\t\tobjectId: arg.Object.SharedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.SharedObject.initialSharedVersion),\n\t\t\t\t\tmutable: arg.Object.SharedObject.mutable,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'Receiving') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.RECEIVING,\n\t\t\t\t\tobjectId: arg.Object.Receiving.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.Receiving.version),\n\t\t\t\t\tdigest: arg.Object.Receiving.digest,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthrow new Error(`Unknown Object kind: ${JSON.stringify(arg.Object)}`);\n\n\t\tcase 'UnresolvedObject':\n\t\t\tconst unresolved = arg.UnresolvedObject;\n\t\t\treturn {\n\t\t\t\tobjectId: unresolved.objectId,\n\t\t\t\tversion: unresolved.version\n\t\t\t\t\t? BigInt(unresolved.version)\n\t\t\t\t\t: unresolved.initialSharedVersion\n\t\t\t\t\t\t? BigInt(unresolved.initialSharedVersion)\n\t\t\t\t\t\t: undefined,\n\t\t\t\tdigest: unresolved.digest ?? undefined,\n\t\t\t\tmutable: unresolved.mutable ?? undefined,\n\t\t\t};\n\n\t\tcase 'UnresolvedPure':\n\t\t\tthrow new Error('UnresolvedPure arguments must be resolved before converting to gRPC format');\n\n\t\tcase 'FundsWithdrawal': {\n\t\t\tconst withdrawal = arg.FundsWithdrawal;\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.FUNDS_WITHDRAWAL,\n\t\t\t\tfundsWithdrawal: {\n\t\t\t\t\tamount:\n\t\t\t\t\t\twithdrawal.reservation.$kind === 'MaxAmountU64'\n\t\t\t\t\t\t\t? BigInt(withdrawal.reservation.MaxAmountU64)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcoinType: withdrawal.typeArg.$kind === 'Balance' ? withdrawal.typeArg.Balance : undefined,\n\t\t\t\t\tsource:\n\t\t\t\t\t\twithdrawal.withdrawFrom.$kind === 'Sponsor'\n\t\t\t\t\t\t\t? FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t: FundsWithdrawal_Source.SENDER,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown CallArg kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\n/**\n * Converts a TypeScript Argument to gRPC Argument\n */\nfunction tsArgumentToGrpcArgument(arg: typeof bcs.Argument.$inferInput): Argument {\n\tif ('GasCoin' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.GAS };\n\t} else if ('Input' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.INPUT, input: arg.Input };\n\t} else if ('Result' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.RESULT, result: arg.Result };\n\t} else if ('NestedResult' in arg) {\n\t\treturn {\n\t\t\tkind: Argument_ArgumentKind.RESULT,\n\t\t\tresult: arg.NestedResult[0],\n\t\t\tsubresult: arg.NestedResult[1],\n\t\t};\n\t}\n\tthrow new Error(`Unknown Argument: ${JSON.stringify(arg)}`);\n}\n\n/**\n * Converts TypeScript Command to gRPC Command\n */\nfunction tsCommandToGrpcCommand(cmd: BcsCommand): Command {\n\tswitch (cmd.$kind) {\n\t\tcase 'MoveCall':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'moveCall',\n\t\t\t\t\tmoveCall: {\n\t\t\t\t\t\tpackage: cmd.MoveCall.package,\n\t\t\t\t\t\tmodule: cmd.MoveCall.module,\n\t\t\t\t\t\tfunction: cmd.MoveCall.function,\n\t\t\t\t\t\ttypeArguments: cmd.MoveCall.typeArguments,\n\t\t\t\t\t\targuments: cmd.MoveCall.arguments.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'TransferObjects':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'transferObjects',\n\t\t\t\t\ttransferObjects: {\n\t\t\t\t\t\tobjects: cmd.TransferObjects.objects.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t\taddress: tsArgumentToGrpcArgument(cmd.TransferObjects.address),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'SplitCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'splitCoins',\n\t\t\t\t\tsplitCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.SplitCoins.coin),\n\t\t\t\t\t\tamounts: cmd.SplitCoins.amounts.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MergeCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'mergeCoins',\n\t\t\t\t\tmergeCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.MergeCoins.destination),\n\t\t\t\t\t\tcoinsToMerge: cmd.MergeCoins.sources.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Publish':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'publish',\n\t\t\t\t\tpublish: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Publish.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Publish.dependencies,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MakeMoveVec':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'makeMoveVector',\n\t\t\t\t\tmakeMoveVector: {\n\t\t\t\t\t\telementType: cmd.MakeMoveVec.type ?? undefined,\n\t\t\t\t\t\telements: cmd.MakeMoveVec.elements.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Upgrade':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'upgrade',\n\t\t\t\t\tupgrade: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Upgrade.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Upgrade.dependencies,\n\t\t\t\t\t\tpackage: cmd.Upgrade.package,\n\t\t\t\t\t\tticket: tsArgumentToGrpcArgument(cmd.Upgrade.ticket),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(cmd)}`);\n\t}\n}\n\nexport function transactionDataToGrpcTransaction(data: TransactionData): GrpcTransaction {\n\tconst grpcInputs = data.inputs.map(callArgToGrpcInput);\n\n\tconst grpcCommands = data.commands.map(tsCommandToGrpcCommand);\n\n\tconst transaction: GrpcTransaction = {\n\t\tversion: 1,\n\t\tkind: {\n\t\t\tdata: {\n\t\t\t\toneofKind: 'programmableTransaction',\n\t\t\t\tprogrammableTransaction: {\n\t\t\t\t\tinputs: grpcInputs,\n\t\t\t\t\tcommands: grpcCommands,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\n\tif (data.sender) {\n\t\ttransaction.sender = data.sender;\n\t}\n\n\tconst gasOwner = data.gasData.owner ?? data.sender;\n\n\ttransaction.gasPayment = {\n\t\tobjects: data.gasData.payment\n\t\t\t? data.gasData.payment.map((ref) => ({\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: BigInt(ref.version),\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t}))\n\t\t\t: [],\n\t\tprice: data.gasData.price ? BigInt(data.gasData.price) : undefined,\n\t\tbudget: data.gasData.budget ? BigInt(data.gasData.budget) : undefined,\n\t};\n\n\tif (gasOwner) {\n\t\ttransaction.gasPayment.owner = gasOwner;\n\t}\n\n\tif (data.expiration) {\n\t\tif ('None' in data.expiration) {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.NONE,\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'Epoch') {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.EPOCH,\n\t\t\t\tepoch: BigInt(data.expiration.Epoch),\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'ValidDuring') {\n\t\t\tconst validDuring = data.expiration.ValidDuring;\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.VALID_DURING,\n\t\t\t\tminEpoch: validDuring.minEpoch != null ? BigInt(validDuring.minEpoch) : undefined,\n\t\t\t\tepoch: validDuring.maxEpoch != null ? BigInt(validDuring.maxEpoch) : undefined,\n\t\t\t\tchain: validDuring.chain,\n\t\t\t\tnonce: validDuring.nonce,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn transaction;\n}\n\nexport function applyGrpcResolvedTransaction(\n\ttransactionData: TransactionDataBuilder,\n\tresolvedTransaction: GrpcTransaction,\n\toptions?: { onlyTransactionKind?: boolean },\n): void {\n\tconst resolved = grpcTransactionToTransactionData(resolvedTransaction);\n\n\tif (options?.onlyTransactionKind) {\n\t\ttransactionData.applyResolvedData({\n\t\t\t...resolved,\n\t\t\tgasData: {\n\t\t\t\tbudget: null,\n\t\t\t\towner: null,\n\t\t\t\tpayment: null,\n\t\t\t\tprice: null,\n\t\t\t},\n\t\t\texpiration: null,\n\t\t});\n\t} else {\n\t\ttransactionData.applyResolvedData(resolved);\n\t}\n}\n\n/**\n * Converts an array of ObjectReferences from gRPC format to TypeScript SuiObjectRef format\n */\nexport function grpcObjectReferencesToBcs(refs: ObjectReference[]): {\n\tobjectId: string;\n\tversion: string;\n\tdigest: string;\n}[] {\n\treturn refs.map((ref) => ({\n\t\tobjectId: ref.objectId!,\n\t\tversion: ref.version?.toString()!,\n\t\tdigest: ref.digest!,\n\t}));\n}\n\nexport function transactionToGrpcTransaction(transaction: Transaction) {\n\tconst snapshot = transaction.getData();\n\n\tif (!snapshot.sender) {\n\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t}\n\n\treturn transactionDataToGrpcTransaction(snapshot);\n}\n\nexport function transactionToGrpcJson(transaction: Transaction): unknown {\n\tconst grpcTransaction = transactionToGrpcTransaction(transaction);\n\treturn GrpcTransactionType.toJson(grpcTransaction);\n}\n\nfunction grpcInputToCallArg(input: Input): CallArg {\n\tswitch (input.kind) {\n\t\tcase Input_InputKind.PURE:\n\t\t\treturn {\n\t\t\t\t$kind: 'Pure',\n\t\t\t\tPure: { bytes: toBase64(input.pure!) },\n\t\t\t};\n\n\t\tcase Input_InputKind.IMMUTABLE_OR_OWNED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'ImmOrOwnedObject',\n\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.SHARED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'SharedObject',\n\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tinitialSharedVersion: input.version!.toString(),\n\t\t\t\t\t\tmutable: input.mutable ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.RECEIVING:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'Receiving',\n\t\t\t\t\tReceiving: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.FUNDS_WITHDRAWAL:\n\t\t\treturn {\n\t\t\t\t$kind: 'FundsWithdrawal',\n\t\t\t\tFundsWithdrawal: {\n\t\t\t\t\treservation: {\n\t\t\t\t\t\t$kind: 'MaxAmountU64' as const,\n\t\t\t\t\t\tMaxAmountU64: input.fundsWithdrawal?.amount?.toString() ?? '0',\n\t\t\t\t\t},\n\t\t\t\t\ttypeArg: {\n\t\t\t\t\t\t$kind: 'Balance' as const,\n\t\t\t\t\t\tBalance: input.fundsWithdrawal?.coinType ?? '0x2::sui::SUI',\n\t\t\t\t\t},\n\t\t\t\t\twithdrawFrom:\n\t\t\t\t\t\tinput.fundsWithdrawal?.source === FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t? { $kind: 'Sponsor' as const, Sponsor: true as const }\n\t\t\t\t\t\t\t: { $kind: 'Sender' as const, Sender: true as const },\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Input kind: ${JSON.stringify(input)}`);\n\t}\n}\n\nfunction grpcArgumentToTsArgument(\n\targ: Argument,\n):\n\t| { $kind: 'GasCoin'; GasCoin: true }\n\t| { $kind: 'Input'; Input: number }\n\t| { $kind: 'Result'; Result: number }\n\t| { $kind: 'NestedResult'; NestedResult: [number, number] } {\n\tswitch (arg.kind) {\n\t\tcase Argument_ArgumentKind.GAS:\n\t\t\treturn { $kind: 'GasCoin', GasCoin: true };\n\t\tcase Argument_ArgumentKind.INPUT:\n\t\t\treturn { $kind: 'Input', Input: arg.input! };\n\t\tcase Argument_ArgumentKind.RESULT:\n\t\t\tif (arg.subresult != null) {\n\t\t\t\treturn { $kind: 'NestedResult', NestedResult: [arg.result!, arg.subresult] };\n\t\t\t}\n\t\t\treturn { $kind: 'Result', Result: arg.result! };\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Argument kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\nfunction grpcCommandToTsCommand(cmd: Command): BcsCommand {\n\tconst command = cmd.command;\n\tif (!command) {\n\t\tthrow new Error('Command is missing');\n\t}\n\n\tswitch (command.oneofKind) {\n\t\tcase 'moveCall':\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveCall',\n\t\t\t\tMoveCall: {\n\t\t\t\t\tpackage: command.moveCall.package!,\n\t\t\t\t\tmodule: command.moveCall.module!,\n\t\t\t\t\tfunction: command.moveCall.function!,\n\t\t\t\t\ttypeArguments: command.moveCall.typeArguments ?? [],\n\t\t\t\t\targuments: command.moveCall.arguments.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'transferObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'TransferObjects',\n\t\t\t\tTransferObjects: {\n\t\t\t\t\tobjects: command.transferObjects.objects.map(grpcArgumentToTsArgument),\n\t\t\t\t\taddress: grpcArgumentToTsArgument(command.transferObjects.address!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'splitCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'SplitCoins',\n\t\t\t\tSplitCoins: {\n\t\t\t\t\tcoin: grpcArgumentToTsArgument(command.splitCoins.coin!),\n\t\t\t\t\tamounts: command.splitCoins.amounts.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'mergeCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'MergeCoins',\n\t\t\t\tMergeCoins: {\n\t\t\t\t\tdestination: grpcArgumentToTsArgument(command.mergeCoins.coin!),\n\t\t\t\t\tsources: command.mergeCoins.coinsToMerge.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'publish':\n\t\t\treturn {\n\t\t\t\t$kind: 'Publish',\n\t\t\t\tPublish: {\n\t\t\t\t\tmodules: command.publish.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.publish.dependencies ?? [],\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'makeMoveVector':\n\t\t\treturn {\n\t\t\t\t$kind: 'MakeMoveVec',\n\t\t\t\tMakeMoveVec: {\n\t\t\t\t\ttype: command.makeMoveVector.elementType ?? null,\n\t\t\t\t\telements: command.makeMoveVector.elements.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'upgrade':\n\t\t\treturn {\n\t\t\t\t$kind: 'Upgrade',\n\t\t\t\tUpgrade: {\n\t\t\t\t\tmodules: command.upgrade.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.upgrade.dependencies ?? [],\n\t\t\t\t\tpackage: command.upgrade.package!,\n\t\t\t\t\tticket: grpcArgumentToTsArgument(command.upgrade.ticket!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(command)}`);\n\t}\n}\n\nexport function grpcTransactionToTransactionData(grpcTx: GrpcTransaction): TransactionData {\n\tconst programmableTx = grpcTx.kind?.data;\n\tif (programmableTx?.oneofKind !== 'programmableTransaction') {\n\t\tthrow new Error('Only programmable transactions are supported');\n\t}\n\n\tconst inputs = programmableTx.programmableTransaction.inputs.map(grpcInputToCallArg);\n\tconst commands = programmableTx.programmableTransaction.commands.map(grpcCommandToTsCommand);\n\n\tlet expiration: TransactionData['expiration'] = null;\n\tif (grpcTx.expiration) {\n\t\tswitch (grpcTx.expiration.kind) {\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.NONE:\n\t\t\t\texpiration = { $kind: 'None', None: true };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.EPOCH:\n\t\t\t\texpiration = { $kind: 'Epoch', Epoch: grpcTx.expiration.epoch!.toString() };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.VALID_DURING:\n\t\t\t\texpiration = {\n\t\t\t\t\t$kind: 'ValidDuring',\n\t\t\t\t\tValidDuring: {\n\t\t\t\t\t\tminEpoch: grpcTx.expiration.minEpoch?.toString() ?? null,\n\t\t\t\t\t\tmaxEpoch: grpcTx.expiration.epoch?.toString() ?? null,\n\t\t\t\t\t\tminTimestamp: null,\n\t\t\t\t\t\tmaxTimestamp: null,\n\t\t\t\t\t\tchain: grpcTx.expiration.chain ?? '',\n\t\t\t\t\t\tnonce: grpcTx.expiration.nonce ?? 0,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: 2 as const,\n\t\tsender: grpcTx.sender ?? null,\n\t\texpiration,\n\t\tgasData: {\n\t\t\tbudget: grpcTx.gasPayment?.budget?.toString() ?? null,\n\t\t\towner: grpcTx.gasPayment?.owner ?? null,\n\t\t\tpayment:\n\t\t\t\tgrpcTx.gasPayment?.objects?.map((obj) => ({\n\t\t\t\t\tobjectId: obj.objectId!,\n\t\t\t\t\tversion: obj.version!.toString(),\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t})) ?? null,\n\t\t\tprice: grpcTx.gasPayment?.price?.toString() ?? null,\n\t\t},\n\t\tinputs,\n\t\tcommands,\n\t};\n}\n"],"mappings":"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"}