UNPKG

@mysten/suins

Version:
59 lines (57 loc) 1.91 kB
import { MoveStruct, normalizeMoveArguments } from "../utils/index.mjs"; import { Data } from "./data.mjs"; import { bcs } from "@mysten/sui/bcs"; //#region src/contracts/suins_coupons/coupon_house.ts /************************************************************** * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED * **************************************************************/ /** * A module to support coupons for SuiNS. This module allows secondary modules * (e.g. Discord) to add or remove coupons too. This allows for separation of logic * & ease of de-authorization in case we don't want some functionality anymore. * * Coupons are unique string codes, that can be used (based on the business rules) * to claim discounts in the app. Each coupon is validated towards a list of rules. * View `rules` module for explanation. The app is authorized on `SuiNS` to be able * to claim names and add earnings to the registry. */ const $moduleName = "@suins/coupons::coupon_house"; const CouponsApp = new MoveStruct({ name: `${$moduleName}::CouponsApp`, fields: { dummy_field: bcs.bool() } }); const AppKey = new MoveStruct({ name: `${$moduleName}::AppKey<phantom A>`, fields: { dummy_field: bcs.bool() } }); const CouponHouse = new MoveStruct({ name: `${$moduleName}::CouponHouse`, fields: { data: Data, version: bcs.u8(), storage: bcs.Address } }); function applyCoupon(options) { const packageAddress = options.package ?? "@suins/coupons"; const argumentsTypes = [ null, null, "0x1::string::String", "0x2::clock::Clock" ]; const parameterNames = [ "suins", "intent", "couponCode" ]; return (tx) => tx.moveCall({ package: packageAddress, module: "coupon_house", function: "apply_coupon", arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames) }); } //#endregion export { applyCoupon }; //# sourceMappingURL=coupon_house.mjs.map