@mysten/suins
Version:
60 lines (58 loc) • 1.91 kB
JavaScript
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