UNPKG

@mysten/suins

Version:
60 lines (58 loc) 1.91 kB
import { MoveStruct, MoveTuple, normalizeMoveArguments } from "../utils/index.mjs"; import { Range } from "./deps/suins/pricing_config.mjs"; import { LinkedTable } from "./deps/sui/linked_table.mjs"; import { bcs } from "@mysten/sui/bcs"; //#region src/contracts/suins_discounts/free_claims.ts /************************************************************** * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED * **************************************************************/ /** * A module that allows claiming names of a set length for free by presenting an * object T. Each `T` can have a separate configuration for a discount percentage. * If a `T` doesn't exist, registration will fail. * * Can be called only when promotions are active for a specific type T. Activation * / deactivation happens through PTBs. */ const $moduleName = "@suins/discounts::free_claims"; const FreeClaimsApp = new MoveTuple({ name: `${$moduleName}::FreeClaimsApp`, fields: [bcs.bool()] }); const FreeClaimsKey = new MoveTuple({ name: `${$moduleName}::FreeClaimsKey<phantom T>`, fields: [bcs.bool()] }); const FreeClaimsConfig = new MoveStruct({ name: `${$moduleName}::FreeClaimsConfig`, fields: { domain_length_range: Range, used_objects: LinkedTable(bcs.Address) } }); /** A function to register a name with a discount using type `T`. */ function freeClaim(options) { const packageAddress = options.package ?? "@suins/discounts"; const argumentsTypes = [ null, null, null, `${options.typeArguments[0]}` ]; const parameterNames = [ "self", "suins", "intent", "object" ]; return (tx) => tx.moveCall({ package: packageAddress, module: "free_claims", function: "free_claim", arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames), typeArguments: options.typeArguments }); } //#endregion export { freeClaim }; //# sourceMappingURL=free_claims.mjs.map