@mysten/sui 2.27.1 → 2.28.0

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 (60) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/bcs/bcs.d.mts +6 -6
  3. package/dist/bcs/bcs.d.mts.map +1 -1
  4. package/dist/bcs/bcs.mjs +29 -2
  5. package/dist/bcs/bcs.mjs.map +1 -1
  6. package/dist/bcs/effects.mjs +2 -1
  7. package/dist/bcs/effects.mjs.map +1 -1
  8. package/dist/bcs/index.d.mts +137 -41
  9. package/dist/bcs/index.d.mts.map +1 -1
  10. package/dist/bcs/transactions.mjs +2 -1
  11. package/dist/bcs/transactions.mjs.map +1 -1
  12. package/dist/client/transaction-resolver.mjs +45 -9
  13. package/dist/client/transaction-resolver.mjs.map +1 -1
  14. package/dist/cryptography/signature.d.mts +14 -14
  15. package/dist/grpc/proto/sui/forking/v1alpha/forking_service.client.d.mts +4 -4
  16. package/dist/grpc/proto/sui/rpc/v2/execution_status.d.mts +9 -1
  17. package/dist/grpc/proto/sui/rpc/v2/execution_status.d.mts.map +1 -1
  18. package/dist/grpc/proto/sui/rpc/v2/execution_status.mjs +8 -0
  19. package/dist/grpc/proto/sui/rpc/v2/execution_status.mjs.map +1 -1
  20. package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts +4 -4
  21. package/dist/grpc/proto/sui/rpc/v2/move_package_service.client.d.mts +4 -4
  22. package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts +4 -4
  23. package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -4
  24. package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -4
  25. package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -4
  26. package/dist/grpc/proto/sui/rpc/v2/transaction.d.mts +50 -2
  27. package/dist/grpc/proto/sui/rpc/v2/transaction.d.mts.map +1 -1
  28. package/dist/grpc/proto/sui/rpc/v2/transaction.mjs +36 -1
  29. package/dist/grpc/proto/sui/rpc/v2/transaction.mjs.map +1 -1
  30. package/dist/grpc/proto/types.d.mts +2 -2
  31. package/dist/grpc/proto/types.mjs +2 -1
  32. package/dist/transactions/Transaction.d.mts +21 -9
  33. package/dist/transactions/Transaction.d.mts.map +1 -1
  34. package/dist/transactions/data/internal.d.mts +133 -109
  35. package/dist/transactions/data/internal.d.mts.map +1 -1
  36. package/dist/transactions/data/internal.mjs +11 -2
  37. package/dist/transactions/data/internal.mjs.map +1 -1
  38. package/dist/transactions/data/v1.d.mts +242 -220
  39. package/dist/transactions/data/v1.d.mts.map +1 -1
  40. package/dist/transactions/data/v1.mjs +27 -4
  41. package/dist/transactions/data/v1.mjs.map +1 -1
  42. package/dist/transactions/data/v2.d.mts +28 -16
  43. package/dist/transactions/data/v2.d.mts.map +1 -1
  44. package/dist/transactions/data/v2.mjs +3 -2
  45. package/dist/transactions/data/v2.mjs.map +1 -1
  46. package/dist/version.mjs +1 -1
  47. package/dist/version.mjs.map +1 -1
  48. package/dist/zklogin/bcs.d.mts +14 -14
  49. package/package.json +1 -1
  50. package/src/bcs/bcs.ts +45 -0
  51. package/src/bcs/effects.ts +3 -0
  52. package/src/bcs/transactions.ts +1 -0
  53. package/src/bcs/types.ts +10 -1
  54. package/src/client/transaction-resolver.ts +79 -9
  55. package/src/grpc/proto/sui/rpc/v2/execution_status.ts +8 -0
  56. package/src/grpc/proto/sui/rpc/v2/transaction.ts +68 -0
  57. package/src/transactions/data/internal.ts +19 -0
  58. package/src/transactions/data/v1.ts +51 -12
  59. package/src/transactions/data/v2.ts +2 -0
  60. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"v1.mjs","names":[],"sources":["../../../src/transactions/data/v1.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\nimport type { GenericSchema, InferInput, InferOutput } from 'valibot';\nimport {\n\tarray,\n\tbigint,\n\tboolean,\n\tcheck,\n\tinteger,\n\tis,\n\tlazy,\n\tliteral,\n\tnullable,\n\tnullish,\n\tnumber,\n\tobject,\n\toptional,\n\tparse,\n\tpipe,\n\tstring,\n\tunion,\n\tunknown,\n} from 'valibot';\n\nimport { TypeTagSerializer } from '../../bcs/index.js';\nimport type { StructTag as StructTagType, TypeTag as TypeTagType } from '../../bcs/types.js';\nimport { JsonU64, ObjectID, safeEnum, TransactionDataSchema } from './internal.js';\nimport type { Argument, ArgumentSchema, TransactionData } from './internal.js';\n\nexport const ObjectRef = object({\n\tdigest: string(),\n\tobjectId: string(),\n\tversion: union([pipe(number(), integer()), string(), bigint()]),\n});\n\nconst ObjectArg = safeEnum({\n\tImmOrOwned: ObjectRef,\n\tShared: object({\n\t\tobjectId: ObjectID,\n\t\tinitialSharedVersion: JsonU64,\n\t\tmutable: boolean(),\n\t}),\n\tReceiving: ObjectRef,\n});\n\nexport const NormalizedCallArg = safeEnum({\n\tObject: ObjectArg,\n\tPure: array(pipe(number(), integer())),\n});\n\nconst TransactionInput = union([\n\tobject({\n\t\tkind: literal('Input'),\n\t\tindex: pipe(number(), integer()),\n\t\tvalue: unknown(),\n\t\ttype: optional(literal('object')),\n\t}),\n\tobject({\n\t\tkind: literal('Input'),\n\t\tindex: pipe(number(), integer()),\n\t\tvalue: unknown(),\n\t\ttype: literal('pure'),\n\t}),\n]);\n\nconst TransactionExpiration = union([\n\tobject({ Epoch: pipe(number(), integer()) }),\n\tobject({ None: nullable(literal(true)) }),\n]);\n\nconst StringEncodedBigint = pipe(\n\tunion([number(), string(), bigint()]),\n\tcheck((val) => {\n\t\tif (!['string', 'number', 'bigint'].includes(typeof val)) return false;\n\n\t\ttry {\n\t\t\tBigInt(val as string);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}),\n);\n\nexport const TypeTag: GenericSchema<TypeTagType> = union([\n\tobject({ bool: nullable(literal(true)) }),\n\tobject({ u8: nullable(literal(true)) }),\n\tobject({ u64: nullable(literal(true)) }),\n\tobject({ u128: nullable(literal(true)) }),\n\tobject({ address: nullable(literal(true)) }),\n\tobject({ signer: nullable(literal(true)) }),\n\tobject({ vector: lazy(() => TypeTag) }),\n\tobject({ struct: lazy(() => StructTag) }),\n\tobject({ u16: nullable(literal(true)) }),\n\tobject({ u32: nullable(literal(true)) }),\n\tobject({ u256: nullable(literal(true)) }),\n]);\n\n// https://github.com/MystenLabs/sui/blob/cea8742e810142a8145fd83c4c142d61e561004a/external-crates/move/crates/move-core-types/src/language_storage.rs#L140-L147\nexport const StructTag: GenericSchema<StructTagType> = object({\n\taddress: string(),\n\tmodule: string(),\n\tname: string(),\n\ttypeParams: array(TypeTag),\n});\n\nconst GasConfig = object({\n\tbudget: optional(StringEncodedBigint),\n\tprice: optional(StringEncodedBigint),\n\tpayment: optional(array(ObjectRef)),\n\towner: optional(string()),\n});\n\nconst TransactionArgumentTypes = [\n\tTransactionInput,\n\tobject({ kind: literal('GasCoin') }),\n\tobject({ kind: literal('Result'), index: pipe(number(), integer()) }),\n\tobject({\n\t\tkind: literal('NestedResult'),\n\t\tindex: pipe(number(), integer()),\n\t\tresultIndex: pipe(number(), integer()),\n\t}),\n] as const;\n\n// Generic transaction argument\nexport const TransactionArgument = union([...TransactionArgumentTypes]);\n\nconst MoveCallTransaction = object({\n\tkind: literal('MoveCall'),\n\ttarget: pipe(\n\t\tstring(),\n\t\tcheck((target) => target.split('::').length === 3),\n\t) as GenericSchema<`${string}::${string}::${string}`>,\n\ttypeArguments: array(string()),\n\targuments: array(TransactionArgument),\n});\n\nconst TransferObjectsTransaction = object({\n\tkind: literal('TransferObjects'),\n\tobjects: array(TransactionArgument),\n\taddress: TransactionArgument,\n});\n\nconst SplitCoinsTransaction = object({\n\tkind: literal('SplitCoins'),\n\tcoin: TransactionArgument,\n\tamounts: array(TransactionArgument),\n});\n\nconst MergeCoinsTransaction = object({\n\tkind: literal('MergeCoins'),\n\tdestination: TransactionArgument,\n\tsources: array(TransactionArgument),\n});\n\nconst MakeMoveVecTransaction = object({\n\tkind: literal('MakeMoveVec'),\n\ttype: union([object({ Some: TypeTag }), object({ None: nullable(literal(true)) })]),\n\tobjects: array(TransactionArgument),\n});\n\nconst PublishTransaction = object({\n\tkind: literal('Publish'),\n\tmodules: array(array(pipe(number(), integer()))),\n\tdependencies: array(string()),\n});\n\nconst UpgradeTransaction = object({\n\tkind: literal('Upgrade'),\n\tmodules: array(array(pipe(number(), integer()))),\n\tdependencies: array(string()),\n\tpackageId: string(),\n\tticket: TransactionArgument,\n});\n\nconst TransactionTypes = [\n\tMoveCallTransaction,\n\tTransferObjectsTransaction,\n\tSplitCoinsTransaction,\n\tMergeCoinsTransaction,\n\tPublishTransaction,\n\tUpgradeTransaction,\n\tMakeMoveVecTransaction,\n] as const;\n\nconst TransactionType = union([...TransactionTypes]);\n\nexport const SerializedTransactionDataV1 = object({\n\tversion: literal(1),\n\tsender: optional(string()),\n\texpiration: nullish(TransactionExpiration),\n\tgasConfig: GasConfig,\n\tinputs: array(TransactionInput),\n\ttransactions: array(TransactionType),\n});\n\nexport type SerializedTransactionDataV1 = InferOutput<typeof SerializedTransactionDataV1>;\n\nexport function serializeV1TransactionData(\n\ttransactionData: TransactionData,\n): SerializedTransactionDataV1 {\n\tconst inputs: InferOutput<typeof TransactionInput>[] = transactionData.inputs.map(\n\t\t(input, index) => {\n\t\t\tif (input.Object) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tObject: input.Object.ImmOrOwnedObject\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tImmOrOwned: input.Object.ImmOrOwnedObject,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: input.Object.Receiving\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tReceiving: {\n\t\t\t\t\t\t\t\t\t\t\tdigest: input.Object.Receiving.digest,\n\t\t\t\t\t\t\t\t\t\t\tversion: input.Object.Receiving.version,\n\t\t\t\t\t\t\t\t\t\t\tobjectId: input.Object.Receiving.objectId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tShared: {\n\t\t\t\t\t\t\t\t\t\t\tmutable: input.Object.SharedObject.mutable,\n\t\t\t\t\t\t\t\t\t\t\tinitialSharedVersion: input.Object.SharedObject.initialSharedVersion,\n\t\t\t\t\t\t\t\t\t\t\tobjectId: input.Object.SharedObject.objectId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'object',\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (input.Pure) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tPure: Array.from(fromBase64(input.Pure.bytes)),\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'pure',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (input.UnresolvedPure) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\ttype: 'pure',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: input.UnresolvedPure.value,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (input.UnresolvedObject) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: input.UnresolvedObject.objectId,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid input');\n\t\t},\n\t);\n\n\treturn {\n\t\tversion: 1,\n\t\tsender: transactionData.sender ?? undefined,\n\t\texpiration:\n\t\t\ttransactionData.expiration?.$kind === 'Epoch'\n\t\t\t\t? { Epoch: Number(transactionData.expiration.Epoch) }\n\t\t\t\t: transactionData.expiration\n\t\t\t\t\t? { None: true }\n\t\t\t\t\t: null,\n\t\tgasConfig: {\n\t\t\towner: transactionData.gasData.owner ?? undefined,\n\t\t\tbudget: transactionData.gasData.budget ?? undefined,\n\t\t\tprice: transactionData.gasData.price ?? undefined,\n\t\t\tpayment: transactionData.gasData.payment ?? undefined,\n\t\t},\n\t\tinputs,\n\t\ttransactions: transactionData.commands.map((command): InferOutput<typeof TransactionType> => {\n\t\t\tif (command.MakeMoveVec) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MakeMoveVec',\n\t\t\t\t\ttype:\n\t\t\t\t\t\tcommand.MakeMoveVec.type === null\n\t\t\t\t\t\t\t? { None: true }\n\t\t\t\t\t\t\t: { Some: TypeTagSerializer.parseFromStr(command.MakeMoveVec.type) },\n\t\t\t\t\tobjects: command.MakeMoveVec.elements.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.MergeCoins) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MergeCoins',\n\t\t\t\t\tdestination: convertTransactionArgument(command.MergeCoins.destination, inputs),\n\t\t\t\t\tsources: command.MergeCoins.sources.map((arg) => convertTransactionArgument(arg, inputs)),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.MoveCall) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MoveCall',\n\t\t\t\t\ttarget: `${command.MoveCall.package}::${command.MoveCall.module}::${command.MoveCall.function}`,\n\t\t\t\t\ttypeArguments: command.MoveCall.typeArguments,\n\t\t\t\t\targuments: command.MoveCall.arguments.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.Publish) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Publish',\n\t\t\t\t\tmodules: command.Publish.modules.map((mod) => Array.from(fromBase64(mod))),\n\t\t\t\t\tdependencies: command.Publish.dependencies,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.SplitCoins) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'SplitCoins',\n\t\t\t\t\tcoin: convertTransactionArgument(command.SplitCoins.coin, inputs),\n\t\t\t\t\tamounts: command.SplitCoins.amounts.map((arg) => convertTransactionArgument(arg, inputs)),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.TransferObjects) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'TransferObjects',\n\t\t\t\t\tobjects: command.TransferObjects.objects.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t\taddress: convertTransactionArgument(command.TransferObjects.address, inputs),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (command.Upgrade) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Upgrade',\n\t\t\t\t\tmodules: command.Upgrade.modules.map((mod) => Array.from(fromBase64(mod))),\n\t\t\t\t\tdependencies: command.Upgrade.dependencies,\n\t\t\t\t\tpackageId: command.Upgrade.package,\n\t\t\t\t\tticket: convertTransactionArgument(command.Upgrade.ticket, inputs),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error(`Unknown transaction ${Object.keys(command)}`);\n\t\t}),\n\t};\n}\n\nfunction convertTransactionArgument(\n\targ: Argument,\n\tinputs: InferOutput<typeof TransactionInput>[],\n): InferOutput<typeof TransactionArgument> {\n\tif (arg.$kind === 'GasCoin') {\n\t\treturn { kind: 'GasCoin' };\n\t}\n\tif (arg.$kind === 'Result') {\n\t\treturn { kind: 'Result', index: arg.Result };\n\t}\n\tif (arg.$kind === 'NestedResult') {\n\t\treturn { kind: 'NestedResult', index: arg.NestedResult[0], resultIndex: arg.NestedResult[1] };\n\t}\n\tif (arg.$kind === 'Input') {\n\t\treturn inputs[arg.Input];\n\t}\n\n\tthrow new Error(`Invalid argument ${Object.keys(arg)}`);\n}\n\nexport function transactionDataFromV1(data: SerializedTransactionDataV1): TransactionData {\n\treturn parse(TransactionDataSchema, {\n\t\tversion: 2,\n\t\tsender: data.sender ?? null,\n\t\texpiration: data.expiration\n\t\t\t? 'Epoch' in data.expiration\n\t\t\t\t? { Epoch: data.expiration.Epoch }\n\t\t\t\t: { None: true }\n\t\t\t: null,\n\t\tgasData: {\n\t\t\towner: data.gasConfig.owner ?? null,\n\t\t\tbudget: data.gasConfig.budget?.toString() ?? null,\n\t\t\tprice: data.gasConfig.price?.toString() ?? null,\n\t\t\tpayment:\n\t\t\t\tdata.gasConfig.payment?.map((ref) => ({\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: ref.version.toString(),\n\t\t\t\t})) ?? null,\n\t\t},\n\t\tinputs: data.inputs.map((input) => {\n\t\t\tif (input.kind === 'Input') {\n\t\t\t\tif (is(NormalizedCallArg, input.value)) {\n\t\t\t\t\tconst value = parse(NormalizedCallArg, input.value);\n\n\t\t\t\t\tif (value.Object) {\n\t\t\t\t\t\tif (value.Object.ImmOrOwned) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.ImmOrOwned.objectId,\n\t\t\t\t\t\t\t\t\t\tversion: String(value.Object.ImmOrOwned.version),\n\t\t\t\t\t\t\t\t\t\tdigest: value.Object.ImmOrOwned.digest,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.Object.Shared) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\t\t\t\t\tmutable: value.Object.Shared.mutable ?? null,\n\t\t\t\t\t\t\t\t\t\tinitialSharedVersion: value.Object.Shared.initialSharedVersion,\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.Shared.objectId,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.Object.Receiving) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tReceiving: {\n\t\t\t\t\t\t\t\t\t\tdigest: value.Object.Receiving.digest,\n\t\t\t\t\t\t\t\t\t\tversion: String(value.Object.Receiving.version),\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.Receiving.objectId,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthrow new Error('Invalid object input');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPure: {\n\t\t\t\t\t\t\tbytes: toBase64(new Uint8Array(value.Pure)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (input.type === 'object') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tUnresolvedObject: {\n\t\t\t\t\t\t\tobjectId: input.value as string,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tUnresolvedPure: {\n\t\t\t\t\t\tvalue: input.value,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid input');\n\t\t}),\n\t\tcommands: data.transactions.map((transaction) => {\n\t\t\tswitch (transaction.kind) {\n\t\t\t\tcase 'MakeMoveVec':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMakeMoveVec: {\n\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t'Some' in transaction.type\n\t\t\t\t\t\t\t\t\t? TypeTagSerializer.tagToString(transaction.type.Some)\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\telements: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\tcase 'MergeCoins': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMergeCoins: {\n\t\t\t\t\t\t\tdestination: parseV1TransactionArgument(transaction.destination),\n\t\t\t\t\t\t\tsources: transaction.sources.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'MoveCall': {\n\t\t\t\t\tconst [pkg, mod, fn] = transaction.target.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMoveCall: {\n\t\t\t\t\t\t\tpackage: pkg,\n\t\t\t\t\t\t\tmodule: mod,\n\t\t\t\t\t\t\tfunction: fn,\n\t\t\t\t\t\t\ttypeArguments: transaction.typeArguments,\n\t\t\t\t\t\t\targuments: transaction.arguments.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'Publish': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPublish: {\n\t\t\t\t\t\t\tmodules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),\n\t\t\t\t\t\t\tdependencies: transaction.dependencies,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'SplitCoins': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tSplitCoins: {\n\t\t\t\t\t\t\tcoin: parseV1TransactionArgument(transaction.coin),\n\t\t\t\t\t\t\tamounts: transaction.amounts.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'TransferObjects': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tTransferObjects: {\n\t\t\t\t\t\t\tobjects: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t\taddress: parseV1TransactionArgument(transaction.address),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'Upgrade': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tUpgrade: {\n\t\t\t\t\t\t\tmodules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),\n\t\t\t\t\t\t\tdependencies: transaction.dependencies,\n\t\t\t\t\t\t\tpackage: transaction.packageId,\n\t\t\t\t\t\t\tticket: parseV1TransactionArgument(transaction.ticket),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(`Unknown transaction ${Object.keys(transaction)}`);\n\t\t}),\n\t} satisfies InferInput<typeof TransactionDataSchema>);\n}\n\nfunction parseV1TransactionArgument(\n\targ: InferOutput<typeof TransactionArgument>,\n): InferInput<typeof ArgumentSchema> {\n\tswitch (arg.kind) {\n\t\tcase 'GasCoin': {\n\t\t\treturn { GasCoin: true };\n\t\t}\n\t\tcase 'Result':\n\t\t\treturn { Result: arg.index };\n\t\tcase 'NestedResult': {\n\t\t\treturn { NestedResult: [arg.index, arg.resultIndex] };\n\t\t}\n\t\tcase 'Input': {\n\t\t\treturn { Input: arg.index };\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"v1.mjs","names":[],"sources":["../../../src/transactions/data/v1.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\nimport type { GenericSchema, InferInput, InferOutput } from 'valibot';\nimport {\n\tarray,\n\tbigint,\n\tboolean,\n\tcheck,\n\tinteger,\n\tis,\n\tlazy,\n\tliteral,\n\tnullable,\n\tnullish,\n\tnumber,\n\tobject,\n\toptional,\n\tparse,\n\tpipe,\n\tstring,\n\tunion,\n\tunknown,\n} from 'valibot';\n\nimport { TypeTagSerializer } from '../../bcs/index.js';\nimport type { StructTag as StructTagType, TypeTag as TypeTagType } from '../../bcs/types.js';\nimport {\n\tJsonU64,\n\tObjectID,\n\tsafeEnum,\n\tTransactionDataSchema,\n\tValidDuringSchema,\n\tValiditySchema,\n} from './internal.js';\nimport type { Argument, ArgumentSchema, TransactionData } from './internal.js';\n\nexport const ObjectRef = object({\n\tdigest: string(),\n\tobjectId: string(),\n\tversion: union([pipe(number(), integer()), string(), bigint()]),\n});\n\nconst ObjectArg = safeEnum({\n\tImmOrOwned: ObjectRef,\n\tShared: object({\n\t\tobjectId: ObjectID,\n\t\tinitialSharedVersion: JsonU64,\n\t\tmutable: boolean(),\n\t}),\n\tReceiving: ObjectRef,\n});\n\nexport const NormalizedCallArg = safeEnum({\n\tObject: ObjectArg,\n\tPure: array(pipe(number(), integer())),\n});\n\nconst TransactionInput = union([\n\tobject({\n\t\tkind: literal('Input'),\n\t\tindex: pipe(number(), integer()),\n\t\tvalue: unknown(),\n\t\ttype: optional(literal('object')),\n\t}),\n\tobject({\n\t\tkind: literal('Input'),\n\t\tindex: pipe(number(), integer()),\n\t\tvalue: unknown(),\n\t\ttype: literal('pure'),\n\t}),\n]);\n\n// Carried here rather than collapsed to `{ None: true }`, which silently dropped the expiration\n// (and its allowed proposers) from a `serialize()` -> `from()` round trip before signing.\nconst TransactionExpiration = union([\n\tobject({ Epoch: pipe(number(), integer()) }),\n\tobject({ None: nullable(literal(true)) }),\n\tobject({ ValidDuring: ValidDuringSchema }),\n\tobject({ Validity: ValiditySchema }),\n]);\n\nfunction expirationToV1(\n\texpiration: TransactionData['expiration'],\n): InferOutput<typeof TransactionExpiration> | null {\n\tif (!expiration) return null;\n\n\tswitch (expiration.$kind) {\n\t\tcase 'Epoch':\n\t\t\treturn { Epoch: Number(expiration.Epoch) };\n\t\tcase 'ValidDuring':\n\t\t\treturn { ValidDuring: expiration.ValidDuring };\n\t\tcase 'Validity':\n\t\t\treturn { Validity: expiration.Validity };\n\t\tcase 'None':\n\t\t\treturn { None: true };\n\t\tdefault:\n\t\t\t// Representing a new variant here is not optional: this fails to compile without it.\n\t\t\texpiration satisfies never;\n\t\t\tthrow new Error(`Unknown transaction expiration: ${JSON.stringify(expiration)}`);\n\t}\n}\n\nfunction expirationFromV1(\n\texpiration: SerializedTransactionDataV1['expiration'],\n): InferInput<typeof TransactionDataSchema>['expiration'] {\n\tif (!expiration) return null;\n\tif ('Epoch' in expiration) return { Epoch: expiration.Epoch };\n\tif ('ValidDuring' in expiration) return { ValidDuring: expiration.ValidDuring };\n\tif ('Validity' in expiration) return { Validity: expiration.Validity };\n\tif ('None' in expiration) return { None: true };\n\n\t// `restore` does not validate v1 payloads against the schema, so this is the only place an\n\t// unrecognised expiration can be caught rather than silently becoming `{ None: true }`.\n\tthrow new Error(\n\t\t`Unknown transaction expiration in v1 transaction data: ${Object.keys(expiration).join(', ')}`,\n\t);\n}\n\nconst StringEncodedBigint = pipe(\n\tunion([number(), string(), bigint()]),\n\tcheck((val) => {\n\t\tif (!['string', 'number', 'bigint'].includes(typeof val)) return false;\n\n\t\ttry {\n\t\t\tBigInt(val as string);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}),\n);\n\nexport const TypeTag: GenericSchema<TypeTagType> = union([\n\tobject({ bool: nullable(literal(true)) }),\n\tobject({ u8: nullable(literal(true)) }),\n\tobject({ u64: nullable(literal(true)) }),\n\tobject({ u128: nullable(literal(true)) }),\n\tobject({ address: nullable(literal(true)) }),\n\tobject({ signer: nullable(literal(true)) }),\n\tobject({ vector: lazy(() => TypeTag) }),\n\tobject({ struct: lazy(() => StructTag) }),\n\tobject({ u16: nullable(literal(true)) }),\n\tobject({ u32: nullable(literal(true)) }),\n\tobject({ u256: nullable(literal(true)) }),\n]);\n\n// https://github.com/MystenLabs/sui/blob/cea8742e810142a8145fd83c4c142d61e561004a/external-crates/move/crates/move-core-types/src/language_storage.rs#L140-L147\nexport const StructTag: GenericSchema<StructTagType> = object({\n\taddress: string(),\n\tmodule: string(),\n\tname: string(),\n\ttypeParams: array(TypeTag),\n});\n\nconst GasConfig = object({\n\tbudget: optional(StringEncodedBigint),\n\tprice: optional(StringEncodedBigint),\n\tpayment: optional(array(ObjectRef)),\n\towner: optional(string()),\n});\n\nconst TransactionArgumentTypes = [\n\tTransactionInput,\n\tobject({ kind: literal('GasCoin') }),\n\tobject({ kind: literal('Result'), index: pipe(number(), integer()) }),\n\tobject({\n\t\tkind: literal('NestedResult'),\n\t\tindex: pipe(number(), integer()),\n\t\tresultIndex: pipe(number(), integer()),\n\t}),\n] as const;\n\n// Generic transaction argument\nexport const TransactionArgument = union([...TransactionArgumentTypes]);\n\nconst MoveCallTransaction = object({\n\tkind: literal('MoveCall'),\n\ttarget: pipe(\n\t\tstring(),\n\t\tcheck((target) => target.split('::').length === 3),\n\t) as GenericSchema<`${string}::${string}::${string}`>,\n\ttypeArguments: array(string()),\n\targuments: array(TransactionArgument),\n});\n\nconst TransferObjectsTransaction = object({\n\tkind: literal('TransferObjects'),\n\tobjects: array(TransactionArgument),\n\taddress: TransactionArgument,\n});\n\nconst SplitCoinsTransaction = object({\n\tkind: literal('SplitCoins'),\n\tcoin: TransactionArgument,\n\tamounts: array(TransactionArgument),\n});\n\nconst MergeCoinsTransaction = object({\n\tkind: literal('MergeCoins'),\n\tdestination: TransactionArgument,\n\tsources: array(TransactionArgument),\n});\n\nconst MakeMoveVecTransaction = object({\n\tkind: literal('MakeMoveVec'),\n\ttype: union([object({ Some: TypeTag }), object({ None: nullable(literal(true)) })]),\n\tobjects: array(TransactionArgument),\n});\n\nconst PublishTransaction = object({\n\tkind: literal('Publish'),\n\tmodules: array(array(pipe(number(), integer()))),\n\tdependencies: array(string()),\n});\n\nconst UpgradeTransaction = object({\n\tkind: literal('Upgrade'),\n\tmodules: array(array(pipe(number(), integer()))),\n\tdependencies: array(string()),\n\tpackageId: string(),\n\tticket: TransactionArgument,\n});\n\nconst TransactionTypes = [\n\tMoveCallTransaction,\n\tTransferObjectsTransaction,\n\tSplitCoinsTransaction,\n\tMergeCoinsTransaction,\n\tPublishTransaction,\n\tUpgradeTransaction,\n\tMakeMoveVecTransaction,\n] as const;\n\nconst TransactionType = union([...TransactionTypes]);\n\nexport const SerializedTransactionDataV1 = object({\n\tversion: literal(1),\n\tsender: optional(string()),\n\texpiration: nullish(TransactionExpiration),\n\tgasConfig: GasConfig,\n\tinputs: array(TransactionInput),\n\ttransactions: array(TransactionType),\n});\n\nexport type SerializedTransactionDataV1 = InferOutput<typeof SerializedTransactionDataV1>;\n\nexport function serializeV1TransactionData(\n\ttransactionData: TransactionData,\n): SerializedTransactionDataV1 {\n\tconst inputs: InferOutput<typeof TransactionInput>[] = transactionData.inputs.map(\n\t\t(input, index) => {\n\t\t\tif (input.Object) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tObject: input.Object.ImmOrOwnedObject\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tImmOrOwned: input.Object.ImmOrOwnedObject,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: input.Object.Receiving\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tReceiving: {\n\t\t\t\t\t\t\t\t\t\t\tdigest: input.Object.Receiving.digest,\n\t\t\t\t\t\t\t\t\t\t\tversion: input.Object.Receiving.version,\n\t\t\t\t\t\t\t\t\t\t\tobjectId: input.Object.Receiving.objectId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tShared: {\n\t\t\t\t\t\t\t\t\t\t\tmutable: input.Object.SharedObject.mutable,\n\t\t\t\t\t\t\t\t\t\t\tinitialSharedVersion: input.Object.SharedObject.initialSharedVersion,\n\t\t\t\t\t\t\t\t\t\t\tobjectId: input.Object.SharedObject.objectId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'object',\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (input.Pure) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tPure: Array.from(fromBase64(input.Pure.bytes)),\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'pure',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (input.UnresolvedPure) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\ttype: 'pure',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: input.UnresolvedPure.value,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (input.UnresolvedObject) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: input.UnresolvedObject.objectId,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid input');\n\t\t},\n\t);\n\n\treturn {\n\t\tversion: 1,\n\t\tsender: transactionData.sender ?? undefined,\n\t\texpiration: expirationToV1(transactionData.expiration),\n\t\tgasConfig: {\n\t\t\towner: transactionData.gasData.owner ?? undefined,\n\t\t\tbudget: transactionData.gasData.budget ?? undefined,\n\t\t\tprice: transactionData.gasData.price ?? undefined,\n\t\t\tpayment: transactionData.gasData.payment ?? undefined,\n\t\t},\n\t\tinputs,\n\t\ttransactions: transactionData.commands.map((command): InferOutput<typeof TransactionType> => {\n\t\t\tif (command.MakeMoveVec) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MakeMoveVec',\n\t\t\t\t\ttype:\n\t\t\t\t\t\tcommand.MakeMoveVec.type === null\n\t\t\t\t\t\t\t? { None: true }\n\t\t\t\t\t\t\t: { Some: TypeTagSerializer.parseFromStr(command.MakeMoveVec.type) },\n\t\t\t\t\tobjects: command.MakeMoveVec.elements.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.MergeCoins) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MergeCoins',\n\t\t\t\t\tdestination: convertTransactionArgument(command.MergeCoins.destination, inputs),\n\t\t\t\t\tsources: command.MergeCoins.sources.map((arg) => convertTransactionArgument(arg, inputs)),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.MoveCall) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MoveCall',\n\t\t\t\t\ttarget: `${command.MoveCall.package}::${command.MoveCall.module}::${command.MoveCall.function}`,\n\t\t\t\t\ttypeArguments: command.MoveCall.typeArguments,\n\t\t\t\t\targuments: command.MoveCall.arguments.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.Publish) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Publish',\n\t\t\t\t\tmodules: command.Publish.modules.map((mod) => Array.from(fromBase64(mod))),\n\t\t\t\t\tdependencies: command.Publish.dependencies,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.SplitCoins) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'SplitCoins',\n\t\t\t\t\tcoin: convertTransactionArgument(command.SplitCoins.coin, inputs),\n\t\t\t\t\tamounts: command.SplitCoins.amounts.map((arg) => convertTransactionArgument(arg, inputs)),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.TransferObjects) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'TransferObjects',\n\t\t\t\t\tobjects: command.TransferObjects.objects.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t\taddress: convertTransactionArgument(command.TransferObjects.address, inputs),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (command.Upgrade) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Upgrade',\n\t\t\t\t\tmodules: command.Upgrade.modules.map((mod) => Array.from(fromBase64(mod))),\n\t\t\t\t\tdependencies: command.Upgrade.dependencies,\n\t\t\t\t\tpackageId: command.Upgrade.package,\n\t\t\t\t\tticket: convertTransactionArgument(command.Upgrade.ticket, inputs),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error(`Unknown transaction ${Object.keys(command)}`);\n\t\t}),\n\t};\n}\n\nfunction convertTransactionArgument(\n\targ: Argument,\n\tinputs: InferOutput<typeof TransactionInput>[],\n): InferOutput<typeof TransactionArgument> {\n\tif (arg.$kind === 'GasCoin') {\n\t\treturn { kind: 'GasCoin' };\n\t}\n\tif (arg.$kind === 'Result') {\n\t\treturn { kind: 'Result', index: arg.Result };\n\t}\n\tif (arg.$kind === 'NestedResult') {\n\t\treturn { kind: 'NestedResult', index: arg.NestedResult[0], resultIndex: arg.NestedResult[1] };\n\t}\n\tif (arg.$kind === 'Input') {\n\t\treturn inputs[arg.Input];\n\t}\n\n\tthrow new Error(`Invalid argument ${Object.keys(arg)}`);\n}\n\nexport function transactionDataFromV1(data: SerializedTransactionDataV1): TransactionData {\n\treturn parse(TransactionDataSchema, {\n\t\tversion: 2,\n\t\tsender: data.sender ?? null,\n\t\texpiration: expirationFromV1(data.expiration),\n\t\tgasData: {\n\t\t\towner: data.gasConfig.owner ?? null,\n\t\t\tbudget: data.gasConfig.budget?.toString() ?? null,\n\t\t\tprice: data.gasConfig.price?.toString() ?? null,\n\t\t\tpayment:\n\t\t\t\tdata.gasConfig.payment?.map((ref) => ({\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: ref.version.toString(),\n\t\t\t\t})) ?? null,\n\t\t},\n\t\tinputs: data.inputs.map((input) => {\n\t\t\tif (input.kind === 'Input') {\n\t\t\t\tif (is(NormalizedCallArg, input.value)) {\n\t\t\t\t\tconst value = parse(NormalizedCallArg, input.value);\n\n\t\t\t\t\tif (value.Object) {\n\t\t\t\t\t\tif (value.Object.ImmOrOwned) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.ImmOrOwned.objectId,\n\t\t\t\t\t\t\t\t\t\tversion: String(value.Object.ImmOrOwned.version),\n\t\t\t\t\t\t\t\t\t\tdigest: value.Object.ImmOrOwned.digest,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.Object.Shared) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\t\t\t\t\tmutable: value.Object.Shared.mutable ?? null,\n\t\t\t\t\t\t\t\t\t\tinitialSharedVersion: value.Object.Shared.initialSharedVersion,\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.Shared.objectId,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.Object.Receiving) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tReceiving: {\n\t\t\t\t\t\t\t\t\t\tdigest: value.Object.Receiving.digest,\n\t\t\t\t\t\t\t\t\t\tversion: String(value.Object.Receiving.version),\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.Receiving.objectId,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthrow new Error('Invalid object input');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPure: {\n\t\t\t\t\t\t\tbytes: toBase64(new Uint8Array(value.Pure)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (input.type === 'object') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tUnresolvedObject: {\n\t\t\t\t\t\t\tobjectId: input.value as string,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tUnresolvedPure: {\n\t\t\t\t\t\tvalue: input.value,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid input');\n\t\t}),\n\t\tcommands: data.transactions.map((transaction) => {\n\t\t\tswitch (transaction.kind) {\n\t\t\t\tcase 'MakeMoveVec':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMakeMoveVec: {\n\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t'Some' in transaction.type\n\t\t\t\t\t\t\t\t\t? TypeTagSerializer.tagToString(transaction.type.Some)\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\telements: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\tcase 'MergeCoins': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMergeCoins: {\n\t\t\t\t\t\t\tdestination: parseV1TransactionArgument(transaction.destination),\n\t\t\t\t\t\t\tsources: transaction.sources.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'MoveCall': {\n\t\t\t\t\tconst [pkg, mod, fn] = transaction.target.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMoveCall: {\n\t\t\t\t\t\t\tpackage: pkg,\n\t\t\t\t\t\t\tmodule: mod,\n\t\t\t\t\t\t\tfunction: fn,\n\t\t\t\t\t\t\ttypeArguments: transaction.typeArguments,\n\t\t\t\t\t\t\targuments: transaction.arguments.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'Publish': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPublish: {\n\t\t\t\t\t\t\tmodules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),\n\t\t\t\t\t\t\tdependencies: transaction.dependencies,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'SplitCoins': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tSplitCoins: {\n\t\t\t\t\t\t\tcoin: parseV1TransactionArgument(transaction.coin),\n\t\t\t\t\t\t\tamounts: transaction.amounts.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'TransferObjects': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tTransferObjects: {\n\t\t\t\t\t\t\tobjects: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t\taddress: parseV1TransactionArgument(transaction.address),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'Upgrade': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tUpgrade: {\n\t\t\t\t\t\t\tmodules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),\n\t\t\t\t\t\t\tdependencies: transaction.dependencies,\n\t\t\t\t\t\t\tpackage: transaction.packageId,\n\t\t\t\t\t\t\tticket: parseV1TransactionArgument(transaction.ticket),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(`Unknown transaction ${Object.keys(transaction)}`);\n\t\t}),\n\t} satisfies InferInput<typeof TransactionDataSchema>);\n}\n\nfunction parseV1TransactionArgument(\n\targ: InferOutput<typeof TransactionArgument>,\n): InferInput<typeof ArgumentSchema> {\n\tswitch (arg.kind) {\n\t\tcase 'GasCoin': {\n\t\t\treturn { GasCoin: true };\n\t\t}\n\t\tcase 'Result':\n\t\t\treturn { Result: arg.index };\n\t\tcase 'NestedResult': {\n\t\t\treturn { NestedResult: [arg.index, arg.resultIndex] };\n\t\t}\n\t\tcase 'Input': {\n\t\t\treturn { Input: arg.index };\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { EnumInputShape } from "@mysten/bcs";
2
- import * as valibot0 from "valibot";
2
+ import * as valibot1337 from "valibot";
3
3
  import { GenericSchema, InferOutput } from "valibot";
4
4
 
5
5
  //#region src/transactions/data/v2.d.ts
6
- declare const SerializedTransactionDataV2Schema: valibot0.ObjectSchema<{
7
- readonly version: valibot0.LiteralSchema<2, undefined>;
8
- readonly sender: valibot0.NullishSchema<valibot0.SchemaWithPipe<readonly [valibot0.StringSchema<undefined>, valibot0.TransformAction<string, string>, valibot0.CheckAction<string, undefined>]>, undefined>;
9
- readonly expiration: valibot0.NullishSchema<GenericSchema<EnumInputShape<{
6
+ declare const SerializedTransactionDataV2Schema: valibot1337.ObjectSchema<{
7
+ readonly version: valibot1337.LiteralSchema<2, undefined>;
8
+ readonly sender: valibot1337.NullishSchema<valibot1337.SchemaWithPipe<readonly [valibot1337.StringSchema<undefined>, valibot1337.TransformAction<string, string>, valibot1337.CheckAction<string, undefined>]>, undefined>;
9
+ readonly expiration: valibot1337.NullishSchema<GenericSchema<EnumInputShape<{
10
10
  None: true;
11
11
  Epoch: string | number;
12
12
  ValidDuring: {
@@ -17,18 +17,30 @@ declare const SerializedTransactionDataV2Schema: valibot0.ObjectSchema<{
17
17
  chain: string;
18
18
  nonce: number;
19
19
  };
20
+ Validity: {
21
+ allowedProposers: {
22
+ epoch: string | number;
23
+ proposers: number[];
24
+ } | null;
25
+ minEpoch: string | number | null;
26
+ maxEpoch: string | number | null;
27
+ minTimestamp: string | number | null;
28
+ maxTimestamp: string | number | null;
29
+ chain: string;
30
+ nonce: number;
31
+ };
20
32
  }>>, undefined>;
21
- readonly gasData: valibot0.ObjectSchema<{
22
- readonly budget: valibot0.NullableSchema<valibot0.SchemaWithPipe<readonly [valibot0.UnionSchema<[valibot0.StringSchema<undefined>, valibot0.SchemaWithPipe<readonly [valibot0.NumberSchema<undefined>, valibot0.IntegerAction<number, undefined>]>], undefined>, valibot0.CheckAction<string | number, "Invalid u64">]>, undefined>;
23
- readonly price: valibot0.NullableSchema<valibot0.SchemaWithPipe<readonly [valibot0.UnionSchema<[valibot0.StringSchema<undefined>, valibot0.SchemaWithPipe<readonly [valibot0.NumberSchema<undefined>, valibot0.IntegerAction<number, undefined>]>], undefined>, valibot0.CheckAction<string | number, "Invalid u64">]>, undefined>;
24
- readonly owner: valibot0.NullableSchema<valibot0.SchemaWithPipe<readonly [valibot0.StringSchema<undefined>, valibot0.TransformAction<string, string>, valibot0.CheckAction<string, undefined>]>, undefined>;
25
- readonly payment: valibot0.NullableSchema<valibot0.ArraySchema<valibot0.ObjectSchema<{
26
- readonly objectId: valibot0.SchemaWithPipe<readonly [valibot0.StringSchema<undefined>, valibot0.TransformAction<string, string>, valibot0.CheckAction<string, undefined>]>;
27
- readonly version: valibot0.SchemaWithPipe<readonly [valibot0.UnionSchema<[valibot0.StringSchema<undefined>, valibot0.SchemaWithPipe<readonly [valibot0.NumberSchema<undefined>, valibot0.IntegerAction<number, undefined>]>], undefined>, valibot0.CheckAction<string | number, "Invalid u64">]>;
28
- readonly digest: valibot0.StringSchema<undefined>;
33
+ readonly gasData: valibot1337.ObjectSchema<{
34
+ readonly budget: valibot1337.NullableSchema<valibot1337.SchemaWithPipe<readonly [valibot1337.UnionSchema<[valibot1337.StringSchema<undefined>, valibot1337.SchemaWithPipe<readonly [valibot1337.NumberSchema<undefined>, valibot1337.IntegerAction<number, undefined>]>], undefined>, valibot1337.CheckAction<string | number, "Invalid u64">]>, undefined>;
35
+ readonly price: valibot1337.NullableSchema<valibot1337.SchemaWithPipe<readonly [valibot1337.UnionSchema<[valibot1337.StringSchema<undefined>, valibot1337.SchemaWithPipe<readonly [valibot1337.NumberSchema<undefined>, valibot1337.IntegerAction<number, undefined>]>], undefined>, valibot1337.CheckAction<string | number, "Invalid u64">]>, undefined>;
36
+ readonly owner: valibot1337.NullableSchema<valibot1337.SchemaWithPipe<readonly [valibot1337.StringSchema<undefined>, valibot1337.TransformAction<string, string>, valibot1337.CheckAction<string, undefined>]>, undefined>;
37
+ readonly payment: valibot1337.NullableSchema<valibot1337.ArraySchema<valibot1337.ObjectSchema<{
38
+ readonly objectId: valibot1337.SchemaWithPipe<readonly [valibot1337.StringSchema<undefined>, valibot1337.TransformAction<string, string>, valibot1337.CheckAction<string, undefined>]>;
39
+ readonly version: valibot1337.SchemaWithPipe<readonly [valibot1337.UnionSchema<[valibot1337.StringSchema<undefined>, valibot1337.SchemaWithPipe<readonly [valibot1337.NumberSchema<undefined>, valibot1337.IntegerAction<number, undefined>]>], undefined>, valibot1337.CheckAction<string | number, "Invalid u64">]>;
40
+ readonly digest: valibot1337.StringSchema<undefined>;
29
41
  }, undefined>, undefined>, undefined>;
30
42
  }, undefined>;
31
- readonly inputs: valibot0.ArraySchema<GenericSchema<EnumInputShape<{
43
+ readonly inputs: valibot1337.ArraySchema<GenericSchema<EnumInputShape<{
32
44
  Object: EnumInputShape<{
33
45
  ImmOrOwnedObject: {
34
46
  objectId: string;
@@ -73,7 +85,7 @@ declare const SerializedTransactionDataV2Schema: valibot0.ObjectSchema<{
73
85
  };
74
86
  };
75
87
  }>>, undefined>;
76
- readonly commands: valibot0.ArraySchema<GenericSchema<EnumInputShape<{
88
+ readonly commands: valibot1337.ArraySchema<GenericSchema<EnumInputShape<{
77
89
  MoveCall: {
78
90
  package: string;
79
91
  module: string;
@@ -172,7 +184,7 @@ declare const SerializedTransactionDataV2Schema: valibot0.ObjectSchema<{
172
184
  };
173
185
  };
174
186
  }>>, undefined>;
175
- readonly digest: valibot0.OptionalSchema<valibot0.NullableSchema<valibot0.StringSchema<undefined>, undefined>, undefined>;
187
+ readonly digest: valibot1337.OptionalSchema<valibot1337.NullableSchema<valibot1337.StringSchema<undefined>, undefined>, undefined>;
176
188
  }, undefined>;
177
189
  type SerializedTransactionDataV2 = InferOutput<typeof SerializedTransactionDataV2Schema>;
178
190
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"v2.d.mts","names":[],"sources":["../../../src/transactions/data/v2.ts"],"mappings":";;;;;cAmJa,iCAAA,WAAiC,YAAA;EAAA,kBAQ5C,QAAA,CAAA,aAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEU,2BAAA,GAA8B,WAAA,QAAmB,iCAAA"}
1
+ {"version":3,"file":"v2.d.mts","names":[],"sources":["../../../src/transactions/data/v2.ts"],"mappings":";;;;;cAqJa,iCAAA,cAAiC,YAAA;EAAA,kBAQ5C,WAAA,CAAA,aAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEU,2BAAA,GAA8B,WAAA,QAAmB,iCAAA"}
@@ -1,4 +1,4 @@
1
- import { BCSBytes, FundsWithdrawalArgSchema, JsonU64, ObjectID, ObjectRefSchema, SuiAddress, ValidDuringSchema } from "./internal.mjs";
1
+ import { BCSBytes, FundsWithdrawalArgSchema, JsonU64, ObjectID, ObjectRefSchema, SuiAddress, ValidDuringSchema, ValiditySchema } from "./internal.mjs";
2
2
  import { array, boolean, integer, literal, nullable, nullish, number, object, optional, pipe, record, string, tuple, union, unknown } from "valibot";
3
3
 
4
4
  //#region src/transactions/data/v2.ts
@@ -83,7 +83,8 @@ const CallArg = enumUnion({
83
83
  const TransactionExpiration = enumUnion({
84
84
  None: literal(true),
85
85
  Epoch: JsonU64,
86
- ValidDuring: ValidDuringSchema
86
+ ValidDuring: ValidDuringSchema,
87
+ Validity: ValiditySchema
87
88
  });
88
89
  const SerializedTransactionDataV2Schema = object({
89
90
  version: literal(2),
@@ -1 +1 @@
1
- {"version":3,"file":"v2.mjs","names":[],"sources":["../../../src/transactions/data/v2.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { EnumInputShape } from '@mysten/bcs';\nimport type { GenericSchema, InferInput, InferOutput } from 'valibot';\nimport {\n\tarray,\n\tboolean,\n\tinteger,\n\tliteral,\n\tnullable,\n\tnullish,\n\tnumber,\n\tobject,\n\toptional,\n\tpipe,\n\trecord,\n\tstring,\n\ttuple,\n\tunion,\n\tunknown,\n} from 'valibot';\n\nimport {\n\tBCSBytes,\n\tFundsWithdrawalArgSchema,\n\tJsonU64,\n\tObjectID,\n\tObjectRefSchema,\n\tSuiAddress,\n\tValidDuringSchema,\n} from './internal.js';\nimport type { Simplify } from '@mysten/utils';\n\nfunction enumUnion<T extends Record<string, GenericSchema<any>>>(options: T) {\n\treturn union(\n\t\tObject.entries(options).map(([key, value]) => object({ [key]: value })),\n\t) as GenericSchema<\n\t\tEnumInputShape<\n\t\t\tSimplify<{\n\t\t\t\t[K in keyof T]: InferInput<T[K]>;\n\t\t\t}>\n\t\t>\n\t>;\n}\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L690-L702\nconst Argument = enumUnion({\n\tGasCoin: literal(true),\n\tInput: pipe(number(), integer()),\n\tResult: pipe(number(), integer()),\n\tNestedResult: tuple([pipe(number(), integer()), pipe(number(), integer())]),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L1387-L1392\nconst GasData = object({\n\tbudget: nullable(JsonU64),\n\tprice: nullable(JsonU64),\n\towner: nullable(SuiAddress),\n\tpayment: nullable(array(ObjectRefSchema)),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L707-L718\nconst ProgrammableMoveCall = object({\n\tpackage: ObjectID,\n\tmodule: string(),\n\tfunction: string(),\n\t// snake case in rust\n\ttypeArguments: array(string()),\n\targuments: array(Argument),\n});\n\nconst $Intent = object({\n\tname: string(),\n\tinputs: record(string(), union([Argument, array(Argument)])),\n\tdata: record(string(), unknown()),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L657-L685\nconst Command = enumUnion({\n\tMoveCall: ProgrammableMoveCall,\n\tTransferObjects: object({\n\t\tobjects: array(Argument),\n\t\taddress: Argument,\n\t}),\n\tSplitCoins: object({\n\t\tcoin: Argument,\n\t\tamounts: array(Argument),\n\t}),\n\tMergeCoins: object({\n\t\tdestination: Argument,\n\t\tsources: array(Argument),\n\t}),\n\tPublish: object({\n\t\tmodules: array(BCSBytes),\n\t\tdependencies: array(ObjectID),\n\t}),\n\tMakeMoveVec: object({\n\t\ttype: nullable(string()),\n\t\telements: array(Argument),\n\t}),\n\tUpgrade: object({\n\t\tmodules: array(BCSBytes),\n\t\tdependencies: array(ObjectID),\n\t\tpackage: ObjectID,\n\t\tticket: Argument,\n\t}),\n\t$Intent,\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L102-L114\nconst ObjectArg = enumUnion({\n\tImmOrOwnedObject: ObjectRefSchema,\n\tSharedObject: object({\n\t\tobjectId: ObjectID,\n\t\t// snake case in rust\n\t\tinitialSharedVersion: JsonU64,\n\t\tmutable: boolean(),\n\t}),\n\tReceiving: ObjectRefSchema,\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L75-L80\nconst CallArg = enumUnion({\n\tObject: ObjectArg,\n\tPure: object({\n\t\tbytes: BCSBytes,\n\t}),\n\tUnresolvedPure: object({\n\t\tvalue: unknown(),\n\t}),\n\tUnresolvedObject: object({\n\t\tobjectId: ObjectID,\n\t\tversion: optional(nullable(JsonU64)),\n\t\tdigest: optional(nullable(string())),\n\t\tinitialSharedVersion: optional(nullable(JsonU64)),\n\t\tmutable: optional(nullable(boolean())),\n\t}),\n\tFundsWithdrawal: FundsWithdrawalArgSchema,\n});\n\nconst TransactionExpiration = enumUnion({\n\tNone: literal(true),\n\tEpoch: JsonU64,\n\tValidDuring: ValidDuringSchema,\n});\n\nexport const SerializedTransactionDataV2Schema = object({\n\tversion: literal(2),\n\tsender: nullish(SuiAddress),\n\texpiration: nullish(TransactionExpiration),\n\tgasData: GasData,\n\tinputs: array(CallArg),\n\tcommands: array(Command),\n\tdigest: optional(nullable(string())),\n});\n\nexport type SerializedTransactionDataV2 = InferOutput<typeof SerializedTransactionDataV2Schema>;\n"],"mappings":";;;;AAkCA,SAAS,UAAwD,SAAY;AAC5E,QAAO,MACN,OAAO,QAAQ,QAAQ,CAAC,KAAK,CAAC,KAAK,WAAW,OAAO,GAAG,MAAM,OAAO,CAAC,CAAC,CACvE;;AAUF,MAAM,WAAW,UAAU;CAC1B,SAAS,QAAQ,KAAK;CACtB,OAAO,KAAK,QAAQ,EAAE,SAAS,CAAC;CAChC,QAAQ,KAAK,QAAQ,EAAE,SAAS,CAAC;CACjC,cAAc,MAAM,CAAC,KAAK,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;CAC3E,CAAC;AAGF,MAAM,UAAU,OAAO;CACtB,QAAQ,SAAS,QAAQ;CACzB,OAAO,SAAS,QAAQ;CACxB,OAAO,SAAS,WAAW;CAC3B,SAAS,SAAS,MAAM,gBAAgB,CAAC;CACzC,CAAC;AAGF,MAAM,uBAAuB,OAAO;CACnC,SAAS;CACT,QAAQ,QAAQ;CAChB,UAAU,QAAQ;CAElB,eAAe,MAAM,QAAQ,CAAC;CAC9B,WAAW,MAAM,SAAS;CAC1B,CAAC;AAEF,MAAM,UAAU,OAAO;CACtB,MAAM,QAAQ;CACd,QAAQ,OAAO,QAAQ,EAAE,MAAM,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC,CAAC;CAC5D,MAAM,OAAO,QAAQ,EAAE,SAAS,CAAC;CACjC,CAAC;AAGF,MAAM,UAAU,UAAU;CACzB,UAAU;CACV,iBAAiB,OAAO;EACvB,SAAS,MAAM,SAAS;EACxB,SAAS;EACT,CAAC;CACF,YAAY,OAAO;EAClB,MAAM;EACN,SAAS,MAAM,SAAS;EACxB,CAAC;CACF,YAAY,OAAO;EAClB,aAAa;EACb,SAAS,MAAM,SAAS;EACxB,CAAC;CACF,SAAS,OAAO;EACf,SAAS,MAAM,SAAS;EACxB,cAAc,MAAM,SAAS;EAC7B,CAAC;CACF,aAAa,OAAO;EACnB,MAAM,SAAS,QAAQ,CAAC;EACxB,UAAU,MAAM,SAAS;EACzB,CAAC;CACF,SAAS,OAAO;EACf,SAAS,MAAM,SAAS;EACxB,cAAc,MAAM,SAAS;EAC7B,SAAS;EACT,QAAQ;EACR,CAAC;CACF;CACA,CAAC;AAeF,MAAM,UAAU,UAAU;CACzB,QAbiB,UAAU;EAC3B,kBAAkB;EAClB,cAAc,OAAO;GACpB,UAAU;GAEV,sBAAsB;GACtB,SAAS,SAAS;GAClB,CAAC;EACF,WAAW;EACX,CAAC;CAKD,MAAM,OAAO,EACZ,OAAO,UACP,CAAC;CACF,gBAAgB,OAAO,EACtB,OAAO,SAAS,EAChB,CAAC;CACF,kBAAkB,OAAO;EACxB,UAAU;EACV,SAAS,SAAS,SAAS,QAAQ,CAAC;EACpC,QAAQ,SAAS,SAAS,QAAQ,CAAC,CAAC;EACpC,sBAAsB,SAAS,SAAS,QAAQ,CAAC;EACjD,SAAS,SAAS,SAAS,SAAS,CAAC,CAAC;EACtC,CAAC;CACF,iBAAiB;CACjB,CAAC;AAEF,MAAM,wBAAwB,UAAU;CACvC,MAAM,QAAQ,KAAK;CACnB,OAAO;CACP,aAAa;CACb,CAAC;AAEF,MAAa,oCAAoC,OAAO;CACvD,SAAS,QAAQ,EAAE;CACnB,QAAQ,QAAQ,WAAW;CAC3B,YAAY,QAAQ,sBAAsB;CAC1C,SAAS;CACT,QAAQ,MAAM,QAAQ;CACtB,UAAU,MAAM,QAAQ;CACxB,QAAQ,SAAS,SAAS,QAAQ,CAAC,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"v2.mjs","names":[],"sources":["../../../src/transactions/data/v2.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { EnumInputShape } from '@mysten/bcs';\nimport type { GenericSchema, InferInput, InferOutput } from 'valibot';\nimport {\n\tarray,\n\tboolean,\n\tinteger,\n\tliteral,\n\tnullable,\n\tnullish,\n\tnumber,\n\tobject,\n\toptional,\n\tpipe,\n\trecord,\n\tstring,\n\ttuple,\n\tunion,\n\tunknown,\n} from 'valibot';\n\nimport {\n\tBCSBytes,\n\tFundsWithdrawalArgSchema,\n\tJsonU64,\n\tObjectID,\n\tObjectRefSchema,\n\tSuiAddress,\n\tValidDuringSchema,\n\tValiditySchema,\n} from './internal.js';\nimport type { Simplify } from '@mysten/utils';\n\nfunction enumUnion<T extends Record<string, GenericSchema<any>>>(options: T) {\n\treturn union(\n\t\tObject.entries(options).map(([key, value]) => object({ [key]: value })),\n\t) as GenericSchema<\n\t\tEnumInputShape<\n\t\t\tSimplify<{\n\t\t\t\t[K in keyof T]: InferInput<T[K]>;\n\t\t\t}>\n\t\t>\n\t>;\n}\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L690-L702\nconst Argument = enumUnion({\n\tGasCoin: literal(true),\n\tInput: pipe(number(), integer()),\n\tResult: pipe(number(), integer()),\n\tNestedResult: tuple([pipe(number(), integer()), pipe(number(), integer())]),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L1387-L1392\nconst GasData = object({\n\tbudget: nullable(JsonU64),\n\tprice: nullable(JsonU64),\n\towner: nullable(SuiAddress),\n\tpayment: nullable(array(ObjectRefSchema)),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L707-L718\nconst ProgrammableMoveCall = object({\n\tpackage: ObjectID,\n\tmodule: string(),\n\tfunction: string(),\n\t// snake case in rust\n\ttypeArguments: array(string()),\n\targuments: array(Argument),\n});\n\nconst $Intent = object({\n\tname: string(),\n\tinputs: record(string(), union([Argument, array(Argument)])),\n\tdata: record(string(), unknown()),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L657-L685\nconst Command = enumUnion({\n\tMoveCall: ProgrammableMoveCall,\n\tTransferObjects: object({\n\t\tobjects: array(Argument),\n\t\taddress: Argument,\n\t}),\n\tSplitCoins: object({\n\t\tcoin: Argument,\n\t\tamounts: array(Argument),\n\t}),\n\tMergeCoins: object({\n\t\tdestination: Argument,\n\t\tsources: array(Argument),\n\t}),\n\tPublish: object({\n\t\tmodules: array(BCSBytes),\n\t\tdependencies: array(ObjectID),\n\t}),\n\tMakeMoveVec: object({\n\t\ttype: nullable(string()),\n\t\telements: array(Argument),\n\t}),\n\tUpgrade: object({\n\t\tmodules: array(BCSBytes),\n\t\tdependencies: array(ObjectID),\n\t\tpackage: ObjectID,\n\t\tticket: Argument,\n\t}),\n\t$Intent,\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L102-L114\nconst ObjectArg = enumUnion({\n\tImmOrOwnedObject: ObjectRefSchema,\n\tSharedObject: object({\n\t\tobjectId: ObjectID,\n\t\t// snake case in rust\n\t\tinitialSharedVersion: JsonU64,\n\t\tmutable: boolean(),\n\t}),\n\tReceiving: ObjectRefSchema,\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L75-L80\nconst CallArg = enumUnion({\n\tObject: ObjectArg,\n\tPure: object({\n\t\tbytes: BCSBytes,\n\t}),\n\tUnresolvedPure: object({\n\t\tvalue: unknown(),\n\t}),\n\tUnresolvedObject: object({\n\t\tobjectId: ObjectID,\n\t\tversion: optional(nullable(JsonU64)),\n\t\tdigest: optional(nullable(string())),\n\t\tinitialSharedVersion: optional(nullable(JsonU64)),\n\t\tmutable: optional(nullable(boolean())),\n\t}),\n\tFundsWithdrawal: FundsWithdrawalArgSchema,\n});\n\nconst TransactionExpiration = enumUnion({\n\tNone: literal(true),\n\tEpoch: JsonU64,\n\tValidDuring: ValidDuringSchema,\n\tValidity: ValiditySchema,\n});\n\nexport const SerializedTransactionDataV2Schema = object({\n\tversion: literal(2),\n\tsender: nullish(SuiAddress),\n\texpiration: nullish(TransactionExpiration),\n\tgasData: GasData,\n\tinputs: array(CallArg),\n\tcommands: array(Command),\n\tdigest: optional(nullable(string())),\n});\n\nexport type SerializedTransactionDataV2 = InferOutput<typeof SerializedTransactionDataV2Schema>;\n"],"mappings":";;;;AAmCA,SAAS,UAAwD,SAAY;AAC5E,QAAO,MACN,OAAO,QAAQ,QAAQ,CAAC,KAAK,CAAC,KAAK,WAAW,OAAO,GAAG,MAAM,OAAO,CAAC,CAAC,CACvE;;AAUF,MAAM,WAAW,UAAU;CAC1B,SAAS,QAAQ,KAAK;CACtB,OAAO,KAAK,QAAQ,EAAE,SAAS,CAAC;CAChC,QAAQ,KAAK,QAAQ,EAAE,SAAS,CAAC;CACjC,cAAc,MAAM,CAAC,KAAK,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;CAC3E,CAAC;AAGF,MAAM,UAAU,OAAO;CACtB,QAAQ,SAAS,QAAQ;CACzB,OAAO,SAAS,QAAQ;CACxB,OAAO,SAAS,WAAW;CAC3B,SAAS,SAAS,MAAM,gBAAgB,CAAC;CACzC,CAAC;AAGF,MAAM,uBAAuB,OAAO;CACnC,SAAS;CACT,QAAQ,QAAQ;CAChB,UAAU,QAAQ;CAElB,eAAe,MAAM,QAAQ,CAAC;CAC9B,WAAW,MAAM,SAAS;CAC1B,CAAC;AAEF,MAAM,UAAU,OAAO;CACtB,MAAM,QAAQ;CACd,QAAQ,OAAO,QAAQ,EAAE,MAAM,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC,CAAC;CAC5D,MAAM,OAAO,QAAQ,EAAE,SAAS,CAAC;CACjC,CAAC;AAGF,MAAM,UAAU,UAAU;CACzB,UAAU;CACV,iBAAiB,OAAO;EACvB,SAAS,MAAM,SAAS;EACxB,SAAS;EACT,CAAC;CACF,YAAY,OAAO;EAClB,MAAM;EACN,SAAS,MAAM,SAAS;EACxB,CAAC;CACF,YAAY,OAAO;EAClB,aAAa;EACb,SAAS,MAAM,SAAS;EACxB,CAAC;CACF,SAAS,OAAO;EACf,SAAS,MAAM,SAAS;EACxB,cAAc,MAAM,SAAS;EAC7B,CAAC;CACF,aAAa,OAAO;EACnB,MAAM,SAAS,QAAQ,CAAC;EACxB,UAAU,MAAM,SAAS;EACzB,CAAC;CACF,SAAS,OAAO;EACf,SAAS,MAAM,SAAS;EACxB,cAAc,MAAM,SAAS;EAC7B,SAAS;EACT,QAAQ;EACR,CAAC;CACF;CACA,CAAC;AAeF,MAAM,UAAU,UAAU;CACzB,QAbiB,UAAU;EAC3B,kBAAkB;EAClB,cAAc,OAAO;GACpB,UAAU;GAEV,sBAAsB;GACtB,SAAS,SAAS;GAClB,CAAC;EACF,WAAW;EACX,CAAC;CAKD,MAAM,OAAO,EACZ,OAAO,UACP,CAAC;CACF,gBAAgB,OAAO,EACtB,OAAO,SAAS,EAChB,CAAC;CACF,kBAAkB,OAAO;EACxB,UAAU;EACV,SAAS,SAAS,SAAS,QAAQ,CAAC;EACpC,QAAQ,SAAS,SAAS,QAAQ,CAAC,CAAC;EACpC,sBAAsB,SAAS,SAAS,QAAQ,CAAC;EACjD,SAAS,SAAS,SAAS,SAAS,CAAC,CAAC;EACtC,CAAC;CACF,iBAAiB;CACjB,CAAC;AAEF,MAAM,wBAAwB,UAAU;CACvC,MAAM,QAAQ,KAAK;CACnB,OAAO;CACP,aAAa;CACb,UAAU;CACV,CAAC;AAEF,MAAa,oCAAoC,OAAO;CACvD,SAAS,QAAQ,EAAE;CACnB,QAAQ,QAAQ,WAAW;CAC3B,YAAY,QAAQ,sBAAsB;CAC1C,SAAS;CACT,QAAQ,MAAM,QAAQ;CACtB,UAAU,MAAM,QAAQ;CACxB,QAAQ,SAAS,SAAS,QAAQ,CAAC,CAAC;CACpC,CAAC"}
package/dist/version.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region src/version.ts
2
- const PACKAGE_VERSION = "2.27.1";
2
+ const PACKAGE_VERSION = "2.28.0";
3
3
 
4
4
  //#endregion
5
5
  export { PACKAGE_VERSION };
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.27.1';\n"],"mappings":";AAKA,MAAa,kBAAkB"}
1
+ {"version":3,"file":"version.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.28.0';\n"],"mappings":";AAKA,MAAa,kBAAkB"}
@@ -1,31 +1,31 @@
1
- import * as _mysten_bcs1213 from "@mysten/bcs";
1
+ import * as _mysten_bcs1245 from "@mysten/bcs";
2
2
  import { InferBcsInput } from "@mysten/bcs";
3
3
 
4
4
  //#region src/zklogin/bcs.d.ts
5
- declare const zkLoginSignature: _mysten_bcs1213.BcsStruct<{
6
- inputs: _mysten_bcs1213.BcsStruct<{
7
- proofPoints: _mysten_bcs1213.BcsStruct<{
8
- a: _mysten_bcs1213.BcsType<string[], Iterable<string> & {
5
+ declare const zkLoginSignature: _mysten_bcs1245.BcsStruct<{
6
+ inputs: _mysten_bcs1245.BcsStruct<{
7
+ proofPoints: _mysten_bcs1245.BcsStruct<{
8
+ a: _mysten_bcs1245.BcsType<string[], Iterable<string> & {
9
9
  length: number;
10
10
  }, string>;
11
- b: _mysten_bcs1213.BcsType<string[][], Iterable<Iterable<string> & {
11
+ b: _mysten_bcs1245.BcsType<string[][], Iterable<Iterable<string> & {
12
12
  length: number;
13
13
  }> & {
14
14
  length: number;
15
15
  }, string>;
16
- c: _mysten_bcs1213.BcsType<string[], Iterable<string> & {
16
+ c: _mysten_bcs1245.BcsType<string[], Iterable<string> & {
17
17
  length: number;
18
18
  }, string>;
19
19
  }, string>;
20
- issBase64Details: _mysten_bcs1213.BcsStruct<{
21
- value: _mysten_bcs1213.BcsType<string, string, "string">;
22
- indexMod4: _mysten_bcs1213.BcsType<number, number, "u8">;
20
+ issBase64Details: _mysten_bcs1245.BcsStruct<{
21
+ value: _mysten_bcs1245.BcsType<string, string, "string">;
22
+ indexMod4: _mysten_bcs1245.BcsType<number, number, "u8">;
23
23
  }, string>;
24
- headerBase64: _mysten_bcs1213.BcsType<string, string, "string">;
25
- addressSeed: _mysten_bcs1213.BcsType<string, string, "string">;
24
+ headerBase64: _mysten_bcs1245.BcsType<string, string, "string">;
25
+ addressSeed: _mysten_bcs1245.BcsType<string, string, "string">;
26
26
  }, string>;
27
- maxEpoch: _mysten_bcs1213.BcsType<string, string | number | bigint, "u64">;
28
- userSignature: _mysten_bcs1213.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
27
+ maxEpoch: _mysten_bcs1245.BcsType<string, string | number | bigint, "u64">;
28
+ userSignature: _mysten_bcs1245.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
29
29
  }, string>;
30
30
  type ZkLoginSignature = InferBcsInput<typeof zkLoginSignature>;
31
31
  type ZkLoginSignatureInputs = ZkLoginSignature['inputs'];
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Mysten Labs <build@mystenlabs.com>",
4
4
  "description": "Sui TypeScript API",
5
5
  "homepage": "https://sdk.mystenlabs.com",
6
- "version": "2.27.1",
6
+ "version": "2.28.0",
7
7
  "license": "Apache-2.0",
8
8
  "sideEffects": false,
9
9
  "files": [
package/src/bcs/bcs.ts CHANGED
@@ -238,10 +238,55 @@ export const ValidDuring = bcs.struct('ValidDuring', {
238
238
  nonce: bcs.u32(),
239
239
  });
240
240
 
241
+ export function assertAllowedProposersNotEmpty(proposers: number[]) {
242
+ if (proposers.length === 0) {
243
+ throw new Error('Allowed proposers must not be empty');
244
+ }
245
+
246
+ return proposers;
247
+ }
248
+
249
+ export function assertAllowedProposersStrictlyIncreasing(proposers: number[]) {
250
+ assertAllowedProposersNotEmpty(proposers);
251
+
252
+ for (let i = 1; i < proposers.length; i++) {
253
+ if (proposers[i] <= proposers[i - 1]) {
254
+ throw new Error('Allowed proposers must be strictly increasing');
255
+ }
256
+ }
257
+
258
+ return proposers;
259
+ }
260
+
261
+ // Upstream only checks sortedness in `validity_check`, on submission, so decoding an unsorted
262
+ // set must succeed. Empty is a deserialization error there, and here.
263
+ const AllowedProposerIndices = bcs.vector(bcs.u32()).transform({
264
+ input: assertAllowedProposersStrictlyIncreasing,
265
+ output: assertAllowedProposersNotEmpty,
266
+ });
267
+
268
+ // Rust: crates/sui-types/src/transaction.rs
269
+ export const AllowedProposers = bcs.struct('AllowedProposers', {
270
+ epoch: bcs.u64(),
271
+ proposers: AllowedProposerIndices,
272
+ });
273
+
274
+ // Rust: crates/sui-types/src/transaction.rs
275
+ export const Validity = bcs.struct('Validity', {
276
+ minEpoch: bcs.option(bcs.u64()),
277
+ maxEpoch: bcs.option(bcs.u64()),
278
+ minTimestamp: bcs.option(bcs.u64()),
279
+ maxTimestamp: bcs.option(bcs.u64()),
280
+ chain: ObjectDigest,
281
+ nonce: bcs.u32(),
282
+ allowedProposers: bcs.option(AllowedProposers),
283
+ });
284
+
241
285
  export const TransactionExpiration = bcs.enum('TransactionExpiration', {
242
286
  None: null,
243
287
  Epoch: unsafe_u64(),
244
288
  ValidDuring: ValidDuring,
289
+ Validity,
245
290
  });
246
291
 
247
292
  export const StructTag = bcs.struct('StructTag', {
@@ -55,6 +55,7 @@ const CommandArgumentError = bcs.enum('CommandArgumentError', {
55
55
  CannotMoveBorrowedValue: null,
56
56
  CannotWriteToExtendedReference: null,
57
57
  InvalidReferenceArgument: null,
58
+ InvalidTxContext: null,
58
59
  });
59
60
 
60
61
  // Rust: crates/sui-types/src/execution_status.rs
@@ -139,6 +140,8 @@ const ExecutionFailureStatus = bcs.enum('ExecutionFailureStatus', {
139
140
  maxScaledSize: bcs.u64(),
140
141
  }),
141
142
  InvalidLinkage: null,
143
+ // Upstream renamed this to `InsufficientFundsForWithdraw`; renaming the parsed `$kind` would
144
+ // break the public API, and the wire representation is unchanged either way.
142
145
  InsufficientBalanceForWithdraw: null,
143
146
  NonExclusiveWriteInputObjectModified: bcs.struct('NonExclusiveWriteInputObjectModified', {
144
147
  id: Address,
@@ -188,6 +188,7 @@ export const EndOfEpochTransactionKind = bcs.enum('EndOfEpochTransactionKind', {
188
188
  DisplayRegistryCreate: null,
189
189
  AddressAliasStateCreate: null,
190
190
  WriteAccumulatorStorageCost: WriteAccumulatorStorageCost,
191
+ ForwardingAddressRegistryCreate: null,
191
192
  });
192
193
 
193
194
  // Rust: crates/sui-types/src/transaction.rs
package/src/bcs/types.ts CHANGED
@@ -126,10 +126,19 @@ type ValidDuring = {
126
126
  nonce: number;
127
127
  };
128
128
 
129
+ type AllowedProposers = {
130
+ epoch: number | string;
131
+ proposers: number[];
132
+ };
133
+
134
+ type Validity = ValidDuring & {
135
+ allowedProposers: { None: null } | { Some: AllowedProposers };
136
+ };
137
+
129
138
  /**
130
139
  * TransactionExpiration
131
140
  *
132
141
  * Indications the expiration time for a transaction.
133
142
  */
134
143
  export type TransactionExpiration =
135
- { None: null } | { Epoch: number } | { ValidDuring: ValidDuring };
144
+ { None: null } | { Epoch: number } | { ValidDuring: ValidDuring } | { Validity: Validity };
@@ -4,6 +4,10 @@
4
4
  import { fromBase64, toBase64 } from '@mysten/bcs';
5
5
 
6
6
  import type { bcs } from '../bcs/index.js';
7
+ import {
8
+ assertAllowedProposersNotEmpty,
9
+ assertAllowedProposersStrictlyIncreasing,
10
+ } from '../bcs/bcs.js';
7
11
  import { TransactionDataBuilder } from '../transactions/TransactionData.js';
8
12
  import type {
9
13
  CallArg,
@@ -23,6 +27,18 @@ import type { Argument } from '../grpc/proto/sui/rpc/v2/argument.js';
23
27
  import { Argument_ArgumentKind } from '../grpc/proto/sui/rpc/v2/argument.js';
24
28
  import { Transaction } from '../transactions/Transaction.js';
25
29
 
30
+ function millisecondsToGrpcTimestamp(value: string | number) {
31
+ const milliseconds = BigInt(value);
32
+ return {
33
+ seconds: milliseconds / 1000n,
34
+ nanos: Number(milliseconds % 1000n) * 1_000_000,
35
+ };
36
+ }
37
+
38
+ function grpcTimestampToMilliseconds(timestamp: { seconds: bigint; nanos: number }) {
39
+ return (timestamp.seconds * 1000n + BigInt(Math.floor(timestamp.nanos / 1_000_000))).toString();
40
+ }
41
+
26
42
  /**
27
43
  * Converts CallArg (TypeScript internal format) to gRPC Input format
28
44
  */
@@ -263,14 +279,36 @@ export function transactionDataToGrpcTransaction(data: TransactionData): GrpcTra
263
279
  kind: TransactionExpiration_TransactionExpirationKind.EPOCH,
264
280
  epoch: BigInt(data.expiration.Epoch),
265
281
  };
266
- } else if (data.expiration.$kind === 'ValidDuring') {
267
- const validDuring = data.expiration.ValidDuring;
282
+ } else if (data.expiration.$kind === 'ValidDuring' || data.expiration.$kind === 'Validity') {
283
+ const validity =
284
+ data.expiration.$kind === 'ValidDuring'
285
+ ? data.expiration.ValidDuring
286
+ : data.expiration.Validity;
287
+ const allowedProposers =
288
+ data.expiration.$kind === 'Validity' ? data.expiration.Validity.allowedProposers : null;
268
289
  transaction.expiration = {
269
- kind: TransactionExpiration_TransactionExpirationKind.VALID_DURING,
270
- minEpoch: validDuring.minEpoch != null ? BigInt(validDuring.minEpoch) : undefined,
271
- epoch: validDuring.maxEpoch != null ? BigInt(validDuring.maxEpoch) : undefined,
272
- chain: validDuring.chain,
273
- nonce: validDuring.nonce,
290
+ kind:
291
+ data.expiration.$kind === 'ValidDuring'
292
+ ? TransactionExpiration_TransactionExpirationKind.VALID_DURING
293
+ : TransactionExpiration_TransactionExpirationKind.VALIDITY,
294
+ minEpoch: validity.minEpoch != null ? BigInt(validity.minEpoch) : undefined,
295
+ epoch: validity.maxEpoch != null ? BigInt(validity.maxEpoch) : undefined,
296
+ minTimestamp:
297
+ validity.minTimestamp != null
298
+ ? millisecondsToGrpcTimestamp(validity.minTimestamp)
299
+ : undefined,
300
+ maxTimestamp:
301
+ validity.maxTimestamp != null
302
+ ? millisecondsToGrpcTimestamp(validity.maxTimestamp)
303
+ : undefined,
304
+ chain: validity.chain,
305
+ nonce: validity.nonce,
306
+ allowedProposers: allowedProposers
307
+ ? {
308
+ epoch: BigInt(allowedProposers.epoch),
309
+ proposers: assertAllowedProposersStrictlyIncreasing(allowedProposers.proposers),
310
+ }
311
+ : undefined,
274
312
  };
275
313
  }
276
314
  }
@@ -529,13 +567,45 @@ export function grpcTransactionToTransactionData(grpcTx: GrpcTransaction): Trans
529
567
  ValidDuring: {
530
568
  minEpoch: grpcTx.expiration.minEpoch?.toString() ?? null,
531
569
  maxEpoch: grpcTx.expiration.epoch?.toString() ?? null,
532
- minTimestamp: null,
533
- maxTimestamp: null,
570
+ minTimestamp: grpcTx.expiration.minTimestamp
571
+ ? grpcTimestampToMilliseconds(grpcTx.expiration.minTimestamp)
572
+ : null,
573
+ maxTimestamp: grpcTx.expiration.maxTimestamp
574
+ ? grpcTimestampToMilliseconds(grpcTx.expiration.maxTimestamp)
575
+ : null,
576
+ chain: grpcTx.expiration.chain ?? '',
577
+ nonce: grpcTx.expiration.nonce ?? 0,
578
+ },
579
+ };
580
+ break;
581
+ case TransactionExpiration_TransactionExpirationKind.VALIDITY:
582
+ expiration = {
583
+ $kind: 'Validity',
584
+ Validity: {
585
+ minEpoch: grpcTx.expiration.minEpoch?.toString() ?? null,
586
+ maxEpoch: grpcTx.expiration.epoch?.toString() ?? null,
587
+ minTimestamp: grpcTx.expiration.minTimestamp
588
+ ? grpcTimestampToMilliseconds(grpcTx.expiration.minTimestamp)
589
+ : null,
590
+ maxTimestamp: grpcTx.expiration.maxTimestamp
591
+ ? grpcTimestampToMilliseconds(grpcTx.expiration.maxTimestamp)
592
+ : null,
534
593
  chain: grpcTx.expiration.chain ?? '',
535
594
  nonce: grpcTx.expiration.nonce ?? 0,
595
+ allowedProposers: grpcTx.expiration.allowedProposers
596
+ ? {
597
+ epoch: grpcTx.expiration.allowedProposers.epoch?.toString() ?? '0',
598
+ proposers: assertAllowedProposersNotEmpty(
599
+ grpcTx.expiration.allowedProposers.proposers,
600
+ ),
601
+ }
602
+ : null,
536
603
  },
537
604
  };
538
605
  break;
606
+ default:
607
+ // Leaving `expiration` null here would drop a restriction the server did send.
608
+ throw new Error(`Unknown transaction expiration kind: ${grpcTx.expiration.kind}`);
539
609
  }
540
610
  }
541
611
 
@@ -727,6 +727,14 @@ export enum CommandArgumentError_CommandArgumentErrorKind {
727
727
  * @generated from protobuf enum value: INVALID_REFERENCE_ARGUMENT = 19;
728
728
  */
729
729
  INVALID_REFERENCE_ARGUMENT = 19,
730
+ /**
731
+ * Invalid usage of TxContext in the function signature. TxContext can only be used by
732
+ * reference, `&TxContext` or `&mut TxContext`. If used mutably, it must be the only
733
+ * TxContext parameter, and TxContext can never be returned from a Move call.
734
+ *
735
+ * @generated from protobuf enum value: INVALID_TX_CONTEXT = 20;
736
+ */
737
+ INVALID_TX_CONTEXT = 20,
730
738
  }
731
739
  /**
732
740
  * An error with upgrading a package.