{"version":3,"file":"free_claims.mjs","names":["pricing_config.Range","linked_table.LinkedTable"],"sources":["../../../src/contracts/suins_discounts/free_claims.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * A module that allows claiming names of a set length for free by presenting an\n * object T. Each `T` can have a separate configuration for a discount percentage.\n * If a `T` doesn't exist, registration will fail.\n *\n * Can be called only when promotions are active for a specific type T. Activation\n * / deactivation happens through PTBs.\n */\n\nimport {\n\tMoveTuple,\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport { bcs, type BcsType } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport * as pricing_config from './deps/suins/pricing_config.js';\nimport * as linked_table from './deps/sui/linked_table.js';\nconst $moduleName = '@suins/discounts::free_claims';\nexport const FreeClaimsApp = new MoveTuple({\n\tname: `${$moduleName}::FreeClaimsApp`,\n\tfields: [bcs.bool()],\n});\nexport const FreeClaimsKey = new MoveTuple({\n\tname: `${$moduleName}::FreeClaimsKey<phantom T>`,\n\tfields: [bcs.bool()],\n});\nexport const FreeClaimsConfig = new MoveStruct({\n\tname: `${$moduleName}::FreeClaimsConfig`,\n\tfields: {\n\t\tdomain_length_range: pricing_config.Range,\n\t\tused_objects: linked_table.LinkedTable(bcs.Address),\n\t},\n});\nexport interface FreeClaimArguments<T extends BcsType<any>> {\n\tself: RawTransactionArgument<string>;\n\tsuins: RawTransactionArgument<string>;\n\tintent: RawTransactionArgument<string>;\n\tobject: RawTransactionArgument<T>;\n}\nexport interface FreeClaimOptions<T extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| FreeClaimArguments<T>\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tsuins: RawTransactionArgument<string>,\n\t\t\t\tintent: RawTransactionArgument<string>,\n\t\t\t\tobject: RawTransactionArgument<T>,\n\t\t  ];\n\ttypeArguments: [string];\n}\n/** A function to register a name with a discount using type `T`. */\nexport function freeClaim<T extends BcsType<any>>(options: FreeClaimOptions<T>) {\n\tconst packageAddress = options.package ?? '@suins/discounts';\n\tconst argumentsTypes = [null, null, null, `${options.typeArguments[0]}`] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['self', 'suins', 'intent', 'object'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'free_claims',\n\t\t\tfunction: 'free_claim',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface FreeClaimWithDayOneArguments {\n\tself: RawTransactionArgument<string>;\n\tsuins: RawTransactionArgument<string>;\n\tintent: RawTransactionArgument<string>;\n\tdayOne: RawTransactionArgument<string>;\n}\nexport interface FreeClaimWithDayOneOptions {\n\tpackage?: string;\n\targuments:\n\t\t| FreeClaimWithDayOneArguments\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tsuins: RawTransactionArgument<string>,\n\t\t\t\tintent: RawTransactionArgument<string>,\n\t\t\t\tdayOne: RawTransactionArgument<string>,\n\t\t  ];\n}\nexport function freeClaimWithDayOne(options: FreeClaimWithDayOneOptions) {\n\tconst packageAddress = options.package ?? '@suins/discounts';\n\tconst argumentsTypes = [null, null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'suins', 'intent', 'dayOne'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'free_claims',\n\t\t\tfunction: 'free_claim_with_day_one',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AuthorizeTypeArguments {\n\tself: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<string>;\n\tdomainLengthRange: RawTransactionArgument<string>;\n}\nexport interface AuthorizeTypeOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AuthorizeTypeArguments\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\tdomainLengthRange: RawTransactionArgument<string>,\n\t\t  ];\n\ttypeArguments: [string];\n}\n/**\n * An admin action to authorize a type T for free claiming of names by presenting\n * an object of type `T`.\n */\nexport function authorizeType(options: AuthorizeTypeOptions) {\n\tconst packageAddress = options.package ?? '@suins/discounts';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['self', '_', 'domainLengthRange'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'free_claims',\n\t\t\tfunction: 'authorize_type',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface DeauthorizeTypeArguments {\n\tself: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<string>;\n}\nexport interface DeauthorizeTypeOptions {\n\tpackage?: string;\n\targuments:\n\t\t| DeauthorizeTypeArguments\n\t\t| [self: RawTransactionArgument<string>, _: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Force-deauthorize type T from free claims. Drops the linked_table. */\nexport function deauthorizeType(options: DeauthorizeTypeOptions) {\n\tconst packageAddress = options.package ?? '@suins/discounts';\n\tconst argumentsTypes = [null, 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: 'free_claims',\n\t\t\tfunction: 'deauthorize_type',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,MAAM,cAAc;AACpB,MAAa,gBAAgB,IAAI,UAAU;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ,CAAC,IAAI,MAAM,CAAC;CACpB,CAAC;AACF,MAAa,gBAAgB,IAAI,UAAU;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ,CAAC,IAAI,MAAM,CAAC;CACpB,CAAC;AACF,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,qBAAqBA;EACrB,cAAcC,YAAyB,IAAI,QAAQ;EACnD;CACD,CAAC;;AAoBF,SAAgB,UAAkC,SAA8B;CAC/E,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM,GAAG,QAAQ,cAAc;EAAK;CAIxE,MAAM,iBAAiB;EAAC;EAAQ;EAAS;EAAU;EAAS;AAC5D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,eAAe,QAAQ;EACvB,CAAC"}