UNPKG

@mysten/sui

Version:
1 lines 6.32 kB
{"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"}