{"version":3,"file":"domain.mjs","names":[],"sources":["../../../src/contracts/suins/domain.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Defines the `Domain` type and helper functions.\n *\n * Domains are structured similar to their web2 counterpart and the rules\n * determining what a valid domain is can be found here:\n * https://en.wikipedia.org/wiki/Domain_name#Domain_name_syntax\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nconst $moduleName = '@suins/core::domain';\nexport const Domain = new MoveStruct({\n\tname: `${$moduleName}::Domain`,\n\tfields: {\n\t\t/**\n\t\t * Vector of labels that make up a domain.\n\t\t *\n\t\t * Labels are stored in reverse order such that the TLD is always in position `0`.\n\t\t * e.g. domain \"pay.name.sui\" will be stored in the vector as [\"sui\", \"name\",\n\t\t * \"pay\"].\n\t\t */\n\t\tlabels: bcs.vector(bcs.string()),\n\t},\n});\nexport interface NewArguments {\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface NewOptions {\n\tpackage?: string;\n\targuments: NewArguments | [domain: RawTransactionArgument<string>];\n}\nexport function _new(options: NewOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = ['0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'new',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ToStringArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface ToStringOptions {\n\tpackage?: string;\n\targuments: ToStringArguments | [self: RawTransactionArgument<string>];\n}\n/** Converts a domain into a fully-qualified string representation. */\nexport function toString(options: ToStringOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'to_string',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LabelArguments {\n\tself: RawTransactionArgument<string>;\n\tlevel: RawTransactionArgument<number | bigint>;\n}\nexport interface LabelOptions {\n\tpackage?: string;\n\targuments:\n\t\t| LabelArguments\n\t\t| [self: RawTransactionArgument<string>, level: RawTransactionArgument<number | bigint>];\n}\n/**\n * Returns the `label` in a domain specified by `level`.\n *\n * Given the domain \"pay.name.sui\" the individual labels have the following levels:\n *\n * - \"pay\" - `2`\n * - \"name\" - `1`\n * - \"sui\" - `0`\n *\n * This means that the TLD will always be at level `0`.\n */\nexport function label(options: LabelOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'level'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'label',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TldArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface TldOptions {\n\tpackage?: string;\n\targuments: TldArguments | [self: RawTransactionArgument<string>];\n}\n/**\n * Returns the TLD (Top-Level Domain) of a `Domain`.\n *\n * \"name.sui\" -> \"sui\"\n */\nexport function tld(options: TldOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'tld',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SldArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface SldOptions {\n\tpackage?: string;\n\targuments: SldArguments | [self: RawTransactionArgument<string>];\n}\n/**\n * Returns the SLD (Second-Level Domain) of a `Domain`.\n *\n * \"name.sui\" -> \"sui\"\n */\nexport function sld(options: SldOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'sld',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NumberOfLevelsArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface NumberOfLevelsOptions {\n\tpackage?: string;\n\targuments: NumberOfLevelsArguments | [self: RawTransactionArgument<string>];\n}\nexport function numberOfLevels(options: NumberOfLevelsOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'number_of_levels',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsSubdomainArguments {\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface IsSubdomainOptions {\n\tpackage?: string;\n\targuments: IsSubdomainArguments | [domain: RawTransactionArgument<string>];\n}\nexport function isSubdomain(options: IsSubdomainOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'is_subdomain',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ParentArguments {\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface ParentOptions {\n\tpackage?: string;\n\targuments: ParentArguments | [domain: RawTransactionArgument<string>];\n}\n/** Derive the parent of a subdomain. e.g. `subdomain.example.sui` -> `example.sui` */\nexport function parent(options: ParentOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'parent',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsParentOfArguments {\n\tparent: RawTransactionArgument<string>;\n\tchild: RawTransactionArgument<string>;\n}\nexport interface IsParentOfOptions {\n\tpackage?: string;\n\targuments:\n\t\t| IsParentOfArguments\n\t\t| [parent: RawTransactionArgument<string>, child: RawTransactionArgument<string>];\n}\n/** Checks if `parent` domain is a valid parent for `child`. */\nexport function isParentOf(options: IsParentOfOptions) {\n\tconst packageAddress = options.package ?? '@suins/core';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['parent', 'child'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'is_parent_of',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,cAAc;AACpB,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EAQP,QAAQ,IAAI,OAAO,IAAI,QAAQ,CAAC,EAChC;CACD,CAAC"}