@haneullabs/haneulns 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"haneulns-transaction.mjs","names":["payment.initRegistration","payment.initRenewal","paymentsModule.calculatePrice","paymentsModule.handleBasePayment","paymentsModule.handlePayment","payment.register","payment.renew","paymentsModule.calculatePriceAfterDiscount","couponHouse.applyCoupon","freeClaims.freeClaim","discounts.applyPercentageDiscount","controller.setReverseLookup","controller.burnExpiredSubname","controller.burnExpired"],"sources":["../src/haneulns-transaction.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport type {\n\tTransaction,\n\tTransactionObjectArgument,\n\tTransactionObjectInput,\n} from '@haneullabs/haneul/transactions';\nimport { isValidHaneulNSName, normalizeHaneulNSName, HANEUL_CLOCK_OBJECT_ID } from '@haneullabs/haneul/utils';\n\nimport { ALLOWED_METADATA, MAX_U64 } from './constants.js';\nimport { isNestedSubName, isSubName, zeroCoin } from './helpers.js';\nimport type { SuinsClient } from './haneulns-client.js';\nimport type { DiscountInfo, ReceiptParams, RegistrationParams, RenewalParams } from './types.js';\n\nimport * as payment from './contracts/haneulns/payment.js';\nimport * as controller from './contracts/haneulns/controller.js';\nimport * as paymentsModule from './contracts/haneulns_payments/payments.js';\nimport * as couponHouse from './contracts/haneulns_coupons/coupon_house.js';\nimport * as discounts from './contracts/haneulns_discounts/discounts.js';\nimport * as freeClaims from './contracts/haneulns_discounts/free_claims.js';\n\nexport class SuinsTransaction {\n\thaneulnsClient: SuinsClient;\n\ttransaction: Transaction;\n\n\tconstructor(client: SuinsClient, transaction: Transaction) {\n\t\tthis.haneulnsClient = client;\n\t\tthis.transaction = transaction;\n\t}\n\n\t/**\n\t * Registers a domain for a number of years.\n\t */\n\tregister(params: RegistrationParams): TransactionObjectArgument {\n\t\tif (params.couponCode && params.discountInfo) {\n\t\t\tthrow new Error('Cannot apply both coupon and discount NFT');\n\t\t}\n\n\t\tconst paymentIntent = this.initRegistration(params.domain);\n\t\tif (params.couponCode) {\n\t\t\tthis.applyCoupon(paymentIntent, params.couponCode);\n\t\t}\n\t\tif (params.discountInfo) {\n\t\t\tthis.applyDiscount(paymentIntent, params.discountInfo);\n\t\t}\n\t\tconst priceAfterDiscount = this.calculatePriceAfterDiscount(\n\t\t\tpaymentIntent,\n\t\t\tparams.coinConfig.type,\n\t\t);\n\t\tconst receipt = this.generateReceipt({\n\t\t\tpaymentIntent,\n\t\t\tpriceAfterDiscount,\n\t\t\tcoinConfig: params.coinConfig,\n\t\t\tcoin: params.coin,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tpriceInfoObjectId: params.priceInfoObjectId,\n\t\t});\n\t\tconst nft = this.finalizeRegister(receipt);\n\n\t\tif (params.years > 1) {\n\t\t\tthis.renew({\n\t\t\t\tnft,\n\t\t\t\tyears: params.years - 1,\n\t\t\t\tcoinConfig: params.coinConfig,\n\t\t\t\tcoin: params.coin,\n\t\t\t\tcouponCode: params.couponCode,\n\t\t\t\tdiscountInfo: params.discountInfo,\n\t\t\t\tmaxAmount: params.maxAmount,\n\t\t\t\tpriceInfoObjectId: params.priceInfoObjectId,\n\t\t\t});\n\t\t}\n\n\t\treturn nft as TransactionObjectArgument;\n\t}\n\n\t/**\n\t * Renews an NFT for a number of years.\n\t */\n\trenew(params: RenewalParams): void {\n\t\tif (params.couponCode && params.discountInfo) {\n\t\t\tthrow new Error('Cannot apply both coupon and discount NFT');\n\t\t}\n\n\t\tconst paymentIntent = this.initRenewal(params.nft, params.years);\n\t\tif (params.couponCode) {\n\t\t\tthis.applyCoupon(paymentIntent, params.couponCode);\n\t\t}\n\t\tif (params.discountInfo) {\n\t\t\tthis.applyDiscount(paymentIntent, params.discountInfo);\n\t\t}\n\t\tconst priceAfterDiscount = this.calculatePriceAfterDiscount(\n\t\t\tpaymentIntent,\n\t\t\tparams.coinConfig.type,\n\t\t);\n\t\tconst receipt = this.generateReceipt({\n\t\t\tpaymentIntent,\n\t\t\tpriceAfterDiscount,\n\t\t\tcoinConfig: params.coinConfig,\n\t\t\tcoin: params.coin,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tpriceInfoObjectId: params.priceInfoObjectId,\n\t\t});\n\t\tthis.finalizeRenew(receipt, params.nft);\n\t}\n\n\tinitRegistration(domain: string): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.initRegistration({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, domain },\n\t\t\t}),\n\t\t);\n\t}\n\n\tinitRenewal(nft: TransactionObjectInput, years: number): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.initRenewal({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, nft: this.transaction.object(nft), years },\n\t\t\t}),\n\t\t);\n\t}\n\n\tcalculatePrice(\n\t\tbaseAmount: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t\tpriceInfoObjectId: string,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.calculatePrice({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\tbaseAmount,\n\t\t\t\t\tpriceInfoObject: priceInfoObjectId,\n\t\t\t\t},\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\thandleBasePayment(\n\t\tpaymentIntent: TransactionObjectArgument,\n\t\tpaymentArg: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.handleBasePayment({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\tbbbVault: config.bbb.vault,\n\t\t\t\t\tintent: paymentIntent,\n\t\t\t\t\tpayment: paymentArg,\n\t\t\t\t},\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\thandlePayment(\n\t\tpaymentIntent: TransactionObjectArgument,\n\t\tpaymentArg: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t\tpriceInfoObjectId: string,\n\t\tmaxAmount: bigint = MAX_U64,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.handlePayment({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\tbbbVault: config.bbb.vault,\n\t\t\t\t\tintent: paymentIntent,\n\t\t\t\t\tpayment: paymentArg,\n\t\t\t\t\tpriceInfoObject: priceInfoObjectId,\n\t\t\t\t\tuserPriceGuard: maxAmount,\n\t\t\t\t},\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\tfinalizeRegister(receipt: TransactionObjectArgument): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.register({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { receipt, haneulns: config.haneulns },\n\t\t\t}),\n\t\t);\n\t}\n\n\tfinalizeRenew(\n\t\treceipt: TransactionObjectArgument,\n\t\tnft: TransactionObjectInput,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.renew({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { receipt, haneulns: config.haneulns, nft: this.transaction.object(nft) },\n\t\t\t}),\n\t\t);\n\t}\n\n\tcalculatePriceAfterDiscount(\n\t\tpaymentIntent: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.calculatePriceAfterDiscount({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, intent: paymentIntent },\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\tgenerateReceipt(params: ReceiptParams): TransactionObjectArgument {\n\t\tconst baseAssetPurchase = params.coinConfig.feed === '';\n\t\tif (baseAssetPurchase) {\n\t\t\tconst payment = params.coin\n\t\t\t\t? this.transaction.splitCoins(this.transaction.object(params.coin), [\n\t\t\t\t\t\tparams.priceAfterDiscount,\n\t\t\t\t\t])\n\t\t\t\t: zeroCoin(this.transaction, params.coinConfig.type);\n\t\t\tconst receipt = this.handleBasePayment(params.paymentIntent, payment, params.coinConfig.type);\n\t\t\treturn receipt;\n\t\t} else {\n\t\t\tconst priceInfoObjectId = params.priceInfoObjectId;\n\t\t\tif (!priceInfoObjectId)\n\t\t\t\tthrow new Error('Price info object ID is required for non-base asset purchases');\n\t\t\tconst price = this.calculatePrice(\n\t\t\t\tparams.priceAfterDiscount,\n\t\t\t\tparams.coinConfig.type,\n\t\t\t\tpriceInfoObjectId,\n\t\t\t);\n\t\t\tif (!params.coin) throw new Error('coin input is required');\n\t\t\tconst payment = this.transaction.splitCoins(this.transaction.object(params.coin!), [price]);\n\t\t\tconst receipt = this.handlePayment(\n\t\t\t\tparams.paymentIntent,\n\t\t\t\tpayment,\n\t\t\t\tparams.coinConfig.type,\n\t\t\t\tpriceInfoObjectId,\n\t\t\t\tparams.maxAmount,\n\t\t\t);\n\t\t\treturn receipt;\n\t\t}\n\t}\n\n\t/**\n\t * Applies a coupon to the payment intent.\n\t */\n\tapplyCoupon(intent: TransactionObjectArgument, couponCode: string): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tcouponHouse.applyCoupon({\n\t\t\t\tpackage: config.coupons.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, intent, couponCode },\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Applies a discount to the payment intent.\n\t */\n\tapplyDiscount(intent: TransactionObjectArgument, discountInfo: DiscountInfo): void {\n\t\tconst config = this.haneulnsClient.config;\n\n\t\tif (discountInfo.isFreeClaim) {\n\t\t\tthis.transaction.add(\n\t\t\t\tfreeClaims.freeClaim({\n\t\t\t\t\tpackage: config.discountsPackage.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\tself: config.discountsPackage.discountHouseId,\n\t\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tobject: this.transaction.object(discountInfo.discountNft),\n\t\t\t\t\t},\n\t\t\t\t\ttypeArguments: [discountInfo.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tthis.transaction.add(\n\t\t\t\tdiscounts.applyPercentageDiscount({\n\t\t\t\t\tpackage: config.discountsPackage.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\tself: config.discountsPackage.discountHouseId,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\t\t_: this.transaction.object(discountInfo.discountNft),\n\t\t\t\t\t},\n\t\t\t\t\ttypeArguments: [discountInfo.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subdomain.\n\t */\n\tcreateSubName({\n\t\tparentNft,\n\t\tname,\n\t\texpirationTimestampMs,\n\t\tallowChildCreation,\n\t\tallowTimeExtension,\n\t}: {\n\t\tparentNft: TransactionObjectInput;\n\t\tname: string;\n\t\texpirationTimestampMs: number;\n\t\tallowChildCreation: boolean;\n\t\tallowTimeExtension: boolean;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tconst subNft = this.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::new`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::new`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t\tthis.transaction.pure.u64(expirationTimestampMs),\n\t\t\t\tthis.transaction.pure.bool(!!allowChildCreation),\n\t\t\t\tthis.transaction.pure.bool(!!allowTimeExtension),\n\t\t\t],\n\t\t});\n\n\t\treturn subNft;\n\t}\n\n\t/**\n\t * Builds the PTB to create a leaf subdomain.\n\t * Parent can be a `SuinsRegistration` or a `SubDomainRegistration` object.\n\t * Can be passed in as an ID or a TransactionArgument.\n\t */\n\tcreateLeafSubName({\n\t\tparentNft,\n\t\tname,\n\t\ttargetAddress,\n\t}: {\n\t\tparentNft: TransactionObjectInput;\n\t\tname: string;\n\t\ttargetAddress: string;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::new_leaf`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::new_leaf`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t\tthis.transaction.pure.address(targetAddress),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Removes a leaf subname.\n\t */\n\tremoveLeafSubName({ parentNft, name }: { parentNft: TransactionObjectInput; name: string }) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!isSubName(name)) throw new Error('This can only be invoked for subnames');\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::remove_leaf`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::remove_leaf`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Sets the target address of an NFT.\n\t */\n\tsetTargetAddress({\n\t\tnft, // Can be string or argument\n\t\taddress,\n\t\tisSubname,\n\t}: {\n\t\tnft: TransactionObjectInput;\n\t\taddress?: string;\n\t\tisSubname?: boolean;\n\t}) {\n\t\tif (isSubname && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isSubname\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::set_target_address`\n\t\t\t\t: `${this.haneulnsClient.config.packageId}::controller::set_target_address`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(nft),\n\t\t\t\tthis.transaction.pure(bcs.option(bcs.Address).serialize(address).toBytes()),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Sets a default name for the user.\n\t */\n\tsetDefault(name: string) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\n\t\tthis.transaction.add(\n\t\t\tcontroller.setReverseLookup({\n\t\t\t\tpackage: this.haneulnsClient.config.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: this.haneulnsClient.config.haneulns,\n\t\t\t\t\tdomainName: normalizeHaneulNSName(name, 'dot'),\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Edits the setup of a subname.\n\t */\n\teditSetup({\n\t\tparentNft,\n\t\tname,\n\t\tallowChildCreation,\n\t\tallowTimeExtension,\n\t}: {\n\t\tparentNft: TransactionObjectInput;\n\t\tname: string;\n\t\tallowChildCreation: boolean;\n\t\tallowTimeExtension: boolean;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!isParentSubdomain && !this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::edit_setup`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::edit_setup`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t\tthis.transaction.pure.bool(!!allowChildCreation),\n\t\t\t\tthis.transaction.pure.bool(!!allowTimeExtension),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Extends the expiration of a subname.\n\t */\n\textendExpiration({\n\t\tnft,\n\t\texpirationTimestampMs,\n\t}: {\n\t\tnft: TransactionObjectInput;\n\t\texpirationTimestampMs: number;\n\t}) {\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::extend_expiration`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(nft),\n\t\t\t\tthis.transaction.pure.u64(expirationTimestampMs),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Sets the user data of an NFT.\n\t */\n\tsetUserData({\n\t\tnft,\n\t\tvalue,\n\t\tkey,\n\t\tisSubname,\n\t}: {\n\t\tnft: TransactionObjectInput;\n\t\tvalue: string;\n\t\tkey: string;\n\t\tisSubname?: boolean;\n\t}) {\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (isSubname && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tif (!Object.values(ALLOWED_METADATA).some((x) => x === key)) throw new Error('Invalid key');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isSubname\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::set_user_data`\n\t\t\t\t: `${this.haneulnsClient.config.packageId}::controller::set_user_data`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(nft),\n\t\t\t\tthis.transaction.pure.string(key),\n\t\t\t\tthis.transaction.pure.string(value),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Burns an expired NFT to collect storage rebates.\n\t */\n\tburnExpired({ nft, isSubname }: { nft: TransactionObjectInput; isSubname?: boolean }) {\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\n\t\tif (isSubname) {\n\t\t\tthis.transaction.add(\n\t\t\t\tcontroller.burnExpiredSubname({\n\t\t\t\t\tpackage: this.haneulnsClient.config.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\thaneulns: this.haneulnsClient.config.haneulns,\n\t\t\t\t\t\tnft: this.transaction.object(nft),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tthis.transaction.add(\n\t\t\t\tcontroller.burnExpired({\n\t\t\t\t\tpackage: this.haneulnsClient.config.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\thaneulns: this.haneulnsClient.config.haneulns,\n\t\t\t\t\t\tnft: this.transaction.object(nft),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"haneulns-transaction.mjs","names":["payment.initRegistration","payment.initRenewal","paymentsModule.calculatePrice","paymentsModule.handleBasePayment","paymentsModule.handlePayment","payment.register","payment.renew","paymentsModule.calculatePriceAfterDiscount","couponHouse.applyCoupon","freeClaims.freeClaim","discounts.applyPercentageDiscount","controller.setReverseLookup","controller.burnExpiredSubname","controller.burnExpired"],"sources":["../src/haneulns-transaction.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport type {\n\tTransaction,\n\tTransactionObjectArgument,\n\tTransactionObjectInput,\n} from '@haneullabs/haneul/transactions';\nimport { isValidHaneulNSName, normalizeHaneulNSName, HANEUL_CLOCK_OBJECT_ID } from '@haneullabs/haneul/utils';\n\nimport { ALLOWED_METADATA, MAX_U64 } from './constants.js';\nimport { isNestedSubName, isSubName, zeroCoin } from './helpers.js';\nimport type { HaneulnsClient } from './haneulns-client.js';\nimport type { DiscountInfo, ReceiptParams, RegistrationParams, RenewalParams } from './types.js';\n\nimport * as payment from './contracts/haneulns/payment.js';\nimport * as controller from './contracts/haneulns/controller.js';\nimport * as paymentsModule from './contracts/haneulns_payments/payments.js';\nimport * as couponHouse from './contracts/haneulns_coupons/coupon_house.js';\nimport * as discounts from './contracts/haneulns_discounts/discounts.js';\nimport * as freeClaims from './contracts/haneulns_discounts/free_claims.js';\n\nexport class HaneulnsTransaction {\n\thaneulnsClient: HaneulnsClient;\n\ttransaction: Transaction;\n\n\tconstructor(client: HaneulnsClient, transaction: Transaction) {\n\t\tthis.haneulnsClient = client;\n\t\tthis.transaction = transaction;\n\t}\n\n\t/**\n\t * Registers a domain for a number of years.\n\t */\n\tregister(params: RegistrationParams): TransactionObjectArgument {\n\t\tif (params.couponCode && params.discountInfo) {\n\t\t\tthrow new Error('Cannot apply both coupon and discount NFT');\n\t\t}\n\n\t\tconst paymentIntent = this.initRegistration(params.domain);\n\t\tif (params.couponCode) {\n\t\t\tthis.applyCoupon(paymentIntent, params.couponCode);\n\t\t}\n\t\tif (params.discountInfo) {\n\t\t\tthis.applyDiscount(paymentIntent, params.discountInfo);\n\t\t}\n\t\tconst priceAfterDiscount = this.calculatePriceAfterDiscount(\n\t\t\tpaymentIntent,\n\t\t\tparams.coinConfig.type,\n\t\t);\n\t\tconst receipt = this.generateReceipt({\n\t\t\tpaymentIntent,\n\t\t\tpriceAfterDiscount,\n\t\t\tcoinConfig: params.coinConfig,\n\t\t\tcoin: params.coin,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tpriceInfoObjectId: params.priceInfoObjectId,\n\t\t});\n\t\tconst nft = this.finalizeRegister(receipt);\n\n\t\tif (params.years > 1) {\n\t\t\tthis.renew({\n\t\t\t\tnft,\n\t\t\t\tyears: params.years - 1,\n\t\t\t\tcoinConfig: params.coinConfig,\n\t\t\t\tcoin: params.coin,\n\t\t\t\tcouponCode: params.couponCode,\n\t\t\t\tdiscountInfo: params.discountInfo,\n\t\t\t\tmaxAmount: params.maxAmount,\n\t\t\t\tpriceInfoObjectId: params.priceInfoObjectId,\n\t\t\t});\n\t\t}\n\n\t\treturn nft as TransactionObjectArgument;\n\t}\n\n\t/**\n\t * Renews an NFT for a number of years.\n\t */\n\trenew(params: RenewalParams): void {\n\t\tif (params.couponCode && params.discountInfo) {\n\t\t\tthrow new Error('Cannot apply both coupon and discount NFT');\n\t\t}\n\n\t\tconst paymentIntent = this.initRenewal(params.nft, params.years);\n\t\tif (params.couponCode) {\n\t\t\tthis.applyCoupon(paymentIntent, params.couponCode);\n\t\t}\n\t\tif (params.discountInfo) {\n\t\t\tthis.applyDiscount(paymentIntent, params.discountInfo);\n\t\t}\n\t\tconst priceAfterDiscount = this.calculatePriceAfterDiscount(\n\t\t\tpaymentIntent,\n\t\t\tparams.coinConfig.type,\n\t\t);\n\t\tconst receipt = this.generateReceipt({\n\t\t\tpaymentIntent,\n\t\t\tpriceAfterDiscount,\n\t\t\tcoinConfig: params.coinConfig,\n\t\t\tcoin: params.coin,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tpriceInfoObjectId: params.priceInfoObjectId,\n\t\t});\n\t\tthis.finalizeRenew(receipt, params.nft);\n\t}\n\n\tinitRegistration(domain: string): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.initRegistration({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, domain },\n\t\t\t}),\n\t\t);\n\t}\n\n\tinitRenewal(nft: TransactionObjectInput, years: number): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.initRenewal({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, nft: this.transaction.object(nft), years },\n\t\t\t}),\n\t\t);\n\t}\n\n\tcalculatePrice(\n\t\tbaseAmount: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t\tpriceInfoObjectId: string,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.calculatePrice({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\tbaseAmount,\n\t\t\t\t\tpriceInfoObject: priceInfoObjectId,\n\t\t\t\t},\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\thandleBasePayment(\n\t\tpaymentIntent: TransactionObjectArgument,\n\t\tpaymentArg: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.handleBasePayment({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\tbbbVault: config.bbb.vault,\n\t\t\t\t\tintent: paymentIntent,\n\t\t\t\t\tpayment: paymentArg,\n\t\t\t\t},\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\thandlePayment(\n\t\tpaymentIntent: TransactionObjectArgument,\n\t\tpaymentArg: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t\tpriceInfoObjectId: string,\n\t\tmaxAmount: bigint = MAX_U64,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.handlePayment({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\tbbbVault: config.bbb.vault,\n\t\t\t\t\tintent: paymentIntent,\n\t\t\t\t\tpayment: paymentArg,\n\t\t\t\t\tpriceInfoObject: priceInfoObjectId,\n\t\t\t\t\tuserPriceGuard: maxAmount,\n\t\t\t\t},\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\tfinalizeRegister(receipt: TransactionObjectArgument): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.register({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { receipt, haneulns: config.haneulns },\n\t\t\t}),\n\t\t);\n\t}\n\n\tfinalizeRenew(\n\t\treceipt: TransactionObjectArgument,\n\t\tnft: TransactionObjectInput,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpayment.renew({\n\t\t\t\tpackage: config.packageId,\n\t\t\t\targuments: { receipt, haneulns: config.haneulns, nft: this.transaction.object(nft) },\n\t\t\t}),\n\t\t);\n\t}\n\n\tcalculatePriceAfterDiscount(\n\t\tpaymentIntent: TransactionObjectArgument,\n\t\tpaymentType: string,\n\t): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tpaymentsModule.calculatePriceAfterDiscount({\n\t\t\t\tpackage: config.payments.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, intent: paymentIntent },\n\t\t\t\ttypeArguments: [paymentType],\n\t\t\t}),\n\t\t);\n\t}\n\n\tgenerateReceipt(params: ReceiptParams): TransactionObjectArgument {\n\t\tconst baseAssetPurchase = params.coinConfig.feed === '';\n\t\tif (baseAssetPurchase) {\n\t\t\tconst payment = params.coin\n\t\t\t\t? this.transaction.splitCoins(this.transaction.object(params.coin), [\n\t\t\t\t\t\tparams.priceAfterDiscount,\n\t\t\t\t\t])\n\t\t\t\t: zeroCoin(this.transaction, params.coinConfig.type);\n\t\t\tconst receipt = this.handleBasePayment(params.paymentIntent, payment, params.coinConfig.type);\n\t\t\treturn receipt;\n\t\t} else {\n\t\t\tconst priceInfoObjectId = params.priceInfoObjectId;\n\t\t\tif (!priceInfoObjectId)\n\t\t\t\tthrow new Error('Price info object ID is required for non-base asset purchases');\n\t\t\tconst price = this.calculatePrice(\n\t\t\t\tparams.priceAfterDiscount,\n\t\t\t\tparams.coinConfig.type,\n\t\t\t\tpriceInfoObjectId,\n\t\t\t);\n\t\t\tif (!params.coin) throw new Error('coin input is required');\n\t\t\tconst payment = this.transaction.splitCoins(this.transaction.object(params.coin!), [price]);\n\t\t\tconst receipt = this.handlePayment(\n\t\t\t\tparams.paymentIntent,\n\t\t\t\tpayment,\n\t\t\t\tparams.coinConfig.type,\n\t\t\t\tpriceInfoObjectId,\n\t\t\t\tparams.maxAmount,\n\t\t\t);\n\t\t\treturn receipt;\n\t\t}\n\t}\n\n\t/**\n\t * Applies a coupon to the payment intent.\n\t */\n\tapplyCoupon(intent: TransactionObjectArgument, couponCode: string): TransactionObjectArgument {\n\t\tconst config = this.haneulnsClient.config;\n\t\treturn this.transaction.add(\n\t\t\tcouponHouse.applyCoupon({\n\t\t\t\tpackage: config.coupons.packageId,\n\t\t\t\targuments: { haneulns: config.haneulns, intent, couponCode },\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Applies a discount to the payment intent.\n\t */\n\tapplyDiscount(intent: TransactionObjectArgument, discountInfo: DiscountInfo): void {\n\t\tconst config = this.haneulnsClient.config;\n\n\t\tif (discountInfo.isFreeClaim) {\n\t\t\tthis.transaction.add(\n\t\t\t\tfreeClaims.freeClaim({\n\t\t\t\t\tpackage: config.discountsPackage.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\tself: config.discountsPackage.discountHouseId,\n\t\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tobject: this.transaction.object(discountInfo.discountNft),\n\t\t\t\t\t},\n\t\t\t\t\ttypeArguments: [discountInfo.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tthis.transaction.add(\n\t\t\t\tdiscounts.applyPercentageDiscount({\n\t\t\t\t\tpackage: config.discountsPackage.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\tself: config.discountsPackage.discountHouseId,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\thaneulns: config.haneulns,\n\t\t\t\t\t\t_: this.transaction.object(discountInfo.discountNft),\n\t\t\t\t\t},\n\t\t\t\t\ttypeArguments: [discountInfo.type],\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subdomain.\n\t */\n\tcreateSubName({\n\t\tparentNft,\n\t\tname,\n\t\texpirationTimestampMs,\n\t\tallowChildCreation,\n\t\tallowTimeExtension,\n\t}: {\n\t\tparentNft: TransactionObjectInput;\n\t\tname: string;\n\t\texpirationTimestampMs: number;\n\t\tallowChildCreation: boolean;\n\t\tallowTimeExtension: boolean;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tconst subNft = this.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::new`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::new`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t\tthis.transaction.pure.u64(expirationTimestampMs),\n\t\t\t\tthis.transaction.pure.bool(!!allowChildCreation),\n\t\t\t\tthis.transaction.pure.bool(!!allowTimeExtension),\n\t\t\t],\n\t\t});\n\n\t\treturn subNft;\n\t}\n\n\t/**\n\t * Builds the PTB to create a leaf subdomain.\n\t * Parent can be a `HaneulnsRegistration` or a `SubDomainRegistration` object.\n\t * Can be passed in as an ID or a TransactionArgument.\n\t */\n\tcreateLeafSubName({\n\t\tparentNft,\n\t\tname,\n\t\ttargetAddress,\n\t}: {\n\t\tparentNft: TransactionObjectInput;\n\t\tname: string;\n\t\ttargetAddress: string;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::new_leaf`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::new_leaf`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t\tthis.transaction.pure.address(targetAddress),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Removes a leaf subname.\n\t */\n\tremoveLeafSubName({ parentNft, name }: { parentNft: TransactionObjectInput; name: string }) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!isSubName(name)) throw new Error('This can only be invoked for subnames');\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::remove_leaf`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::remove_leaf`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Sets the target address of an NFT.\n\t */\n\tsetTargetAddress({\n\t\tnft, // Can be string or argument\n\t\taddress,\n\t\tisSubname,\n\t}: {\n\t\tnft: TransactionObjectInput;\n\t\taddress?: string;\n\t\tisSubname?: boolean;\n\t}) {\n\t\tif (isSubname && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isSubname\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::set_target_address`\n\t\t\t\t: `${this.haneulnsClient.config.packageId}::controller::set_target_address`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(nft),\n\t\t\t\tthis.transaction.pure(bcs.option(bcs.Address).serialize(address).toBytes()),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Sets a default name for the user.\n\t */\n\tsetDefault(name: string) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\n\t\tthis.transaction.add(\n\t\t\tcontroller.setReverseLookup({\n\t\t\t\tpackage: this.haneulnsClient.config.packageId,\n\t\t\t\targuments: {\n\t\t\t\t\thaneulns: this.haneulnsClient.config.haneulns,\n\t\t\t\t\tdomainName: normalizeHaneulNSName(name, 'dot'),\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Edits the setup of a subname.\n\t */\n\teditSetup({\n\t\tparentNft,\n\t\tname,\n\t\tallowChildCreation,\n\t\tallowTimeExtension,\n\t}: {\n\t\tparentNft: TransactionObjectInput;\n\t\tname: string;\n\t\tallowChildCreation: boolean;\n\t\tallowTimeExtension: boolean;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tconst isParentSubdomain = isNestedSubName(name);\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!isParentSubdomain && !this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\t\tif (isParentSubdomain && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isParentSubdomain\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::edit_setup`\n\t\t\t\t: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::edit_setup`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(parentNft),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t\tthis.transaction.pure.string(normalizeHaneulNSName(name, 'dot')),\n\t\t\t\tthis.transaction.pure.bool(!!allowChildCreation),\n\t\t\t\tthis.transaction.pure.bool(!!allowTimeExtension),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Extends the expiration of a subname.\n\t */\n\textendExpiration({\n\t\tnft,\n\t\texpirationTimestampMs,\n\t}: {\n\t\tnft: TransactionObjectInput;\n\t\texpirationTimestampMs: number;\n\t}) {\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (!this.haneulnsClient.config.subNamesPackageId)\n\t\t\tthrow new Error('Subnames package ID not found');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: `${this.haneulnsClient.config.subNamesPackageId}::subdomains::extend_expiration`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(nft),\n\t\t\t\tthis.transaction.pure.u64(expirationTimestampMs),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Sets the user data of an NFT.\n\t */\n\tsetUserData({\n\t\tnft,\n\t\tvalue,\n\t\tkey,\n\t\tisSubname,\n\t}: {\n\t\tnft: TransactionObjectInput;\n\t\tvalue: string;\n\t\tkey: string;\n\t\tisSubname?: boolean;\n\t}) {\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\t\tif (isSubname && !this.haneulnsClient.config.tempSubdomainsProxyPackageId)\n\t\t\tthrow new Error('Subnames proxy package ID not found');\n\n\t\tif (!Object.values(ALLOWED_METADATA).some((x) => x === key)) throw new Error('Invalid key');\n\n\t\tthis.transaction.moveCall({\n\t\t\ttarget: isSubname\n\t\t\t\t? `${this.haneulnsClient.config.tempSubdomainsProxyPackageId}::subdomain_proxy::set_user_data`\n\t\t\t\t: `${this.haneulnsClient.config.packageId}::controller::set_user_data`,\n\t\t\targuments: [\n\t\t\t\tthis.transaction.object(this.haneulnsClient.config.haneulns),\n\t\t\t\tthis.transaction.object(nft),\n\t\t\t\tthis.transaction.pure.string(key),\n\t\t\t\tthis.transaction.pure.string(value),\n\t\t\t\tthis.transaction.object(HANEUL_CLOCK_OBJECT_ID),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * Burns an expired NFT to collect storage rebates.\n\t */\n\tburnExpired({ nft, isSubname }: { nft: TransactionObjectInput; isSubname?: boolean }) {\n\t\tif (!this.haneulnsClient.config.haneulns) throw new Error('HaneulNS Object ID not found');\n\n\t\tif (isSubname) {\n\t\t\tthis.transaction.add(\n\t\t\t\tcontroller.burnExpiredSubname({\n\t\t\t\t\tpackage: this.haneulnsClient.config.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\thaneulns: this.haneulnsClient.config.haneulns,\n\t\t\t\t\t\tnft: this.transaction.object(nft),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tthis.transaction.add(\n\t\t\t\tcontroller.burnExpired({\n\t\t\t\t\tpackage: this.haneulnsClient.config.packageId,\n\t\t\t\t\targuments: {\n\t\t\t\t\t\thaneulns: this.haneulnsClient.config.haneulns,\n\t\t\t\t\t\tnft: this.transaction.object(nft),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.mts","names":[],"sources":["../src/helpers.ts"],"sourcesContent":[],"mappings":";;;iBAMgB,SAAA;;AAAhB;AASA;AAOA;AAWA;AAIgB,iBAtBA,eAAA,CAsBa,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;AAI7B;AAIA;AAIA;iBA3BgB,aAAA;iBAWA,aAAA;iBAIA,aAAA;iBAIA,sBAAA;iBAIA,6BAAA;iBAIA,yBAAA"}
1
+ {"version":3,"file":"helpers.d.mts","names":[],"sources":["../src/helpers.ts"],"mappings":";;;iBAMgB,SAAA,CAAU,IAAA;;AAA1B;;;;iBASgB,eAAA,CAAgB,IAAA;AAAhC;;;AAAA,iBAOgB,aAAA,CAAc,KAAA;AAAA,iBAWd,aAAA,CAAc,iBAAA,UAA2B,SAAA;AAAA,iBAIzC,aAAA,CAAc,iBAAA;AAAA,iBAId,sBAAA,CAAuB,iBAAA;AAAA,iBAIvB,6BAAA,CAA8B,iBAAA;AAAA,iBAI9B,yBAAA,CAA0B,gBAAA"}
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { PackageInfo, SuinsClientConfig } from "./types.mjs";
2
- import { SuinsClient, SuinsExtensionOptions, haneulns } from "./haneulns-client.mjs";
3
- import { SuinsTransaction } from "./haneulns-transaction.mjs";
1
+ import { HaneulnsClientConfig, PackageInfo } from "./types.mjs";
2
+ import { HaneulnsClient, HaneulnsExtensionOptions, haneulns } from "./haneulns-client.mjs";
3
+ import { HaneulnsTransaction } from "./haneulns-transaction.mjs";
4
4
  import { ALLOWED_METADATA, mainPackage } from "./constants.mjs";
5
5
  import { getCoinDiscountConfigType, getConfigType, getDomainType, getPricelistConfigType, getRenewalPricelistConfigType, isNestedSubName, isSubName, validateYears } from "./helpers.mjs";
6
- export { ALLOWED_METADATA, type PackageInfo, SuinsClient, type SuinsClientConfig, type SuinsExtensionOptions, SuinsTransaction, getCoinDiscountConfigType, getConfigType, getDomainType, getPricelistConfigType, getRenewalPricelistConfigType, haneulns, isNestedSubName, isSubName, mainPackage, validateYears };
6
+ export { ALLOWED_METADATA, HaneulnsClient, type HaneulnsClientConfig, type HaneulnsExtensionOptions, HaneulnsTransaction, type PackageInfo, getCoinDiscountConfigType, getConfigType, getDomainType, getPricelistConfigType, getRenewalPricelistConfigType, haneulns, isNestedSubName, isSubName, mainPackage, validateYears };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ALLOWED_METADATA, mainPackage } from "./constants.mjs";
2
2
  import { getCoinDiscountConfigType, getConfigType, getDomainType, getPricelistConfigType, getRenewalPricelistConfigType, isNestedSubName, isSubName, validateYears } from "./helpers.mjs";
3
- import { SuinsClient, haneulns } from "./haneulns-client.mjs";
4
- import { SuinsTransaction } from "./haneulns-transaction.mjs";
3
+ import { HaneulnsClient, haneulns } from "./haneulns-client.mjs";
4
+ import { HaneulnsTransaction } from "./haneulns-transaction.mjs";
5
5
 
6
- export { ALLOWED_METADATA, SuinsClient, SuinsTransaction, getCoinDiscountConfigType, getConfigType, getDomainType, getPricelistConfigType, getRenewalPricelistConfigType, haneulns, isNestedSubName, isSubName, mainPackage, validateYears };
6
+ export { ALLOWED_METADATA, HaneulnsClient, HaneulnsTransaction, getCoinDiscountConfigType, getConfigType, getDomainType, getPricelistConfigType, getRenewalPricelistConfigType, haneulns, isNestedSubName, isSubName, mainPackage, validateYears };
package/dist/types.d.mts CHANGED
@@ -76,13 +76,13 @@ type ReceiptParams = {
76
76
  maxAmount?: bigint;
77
77
  priceInfoObjectId?: string | null;
78
78
  };
79
- type SuinsClientConfig = {
79
+ type HaneulnsClientConfig = {
80
80
  client: ClientWithCoreApi;
81
81
  network?: HaneulClientTypes.Network;
82
82
  packageInfo?: PackageInfo;
83
83
  };
84
- type SuinsPriceList = Map<[number, number], number>;
84
+ type HaneulnsPriceList = Map<[number, number], number>;
85
85
  type CoinTypeDiscount = Map<string, number>;
86
86
  //#endregion
87
- export { CoinTypeDiscount, Config, DiscountInfo, NameRecord, PackageInfo, ReceiptParams, RegistrationParams, RenewalParams, SuinsClientConfig, SuinsPriceList };
87
+ export { CoinTypeDiscount, Config, DiscountInfo, HaneulnsClientConfig, HaneulnsPriceList, NameRecord, PackageInfo, ReceiptParams, RegistrationParams, RenewalParams };
88
88
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;;UAQiB,UAAA;;EAAA,IAAA,EAAA,MAAA;AAKjB;AAMiB,UANA,YAAA,CAmCM;EAGN,WAAA,EArCH,sBA0CD;EAeD,IAAA,EAAA,MAAM;EAEN,WAAA,CAAA,EAAU,OAAA;;AAGd,UAzDS,WAAA,CAyDT;EAEQ,SAAA,EAAA,MAAA;EAAY,WAAA,EAAA,MAAA;EAKhB,gBAAA,EAAA,MAAkB;EAIlB,QAAA,EAAA,MAAa;EAIb,gBAAa,EAAA;IACT,SAAA,EAAA,MAAA;IACK,eAAA,EAAA,MAAA;EACR,CAAA;EACL,iBAAA,EAAA,MAAA;EAAsB,4BAAA,EAAA,MAAA;EAKlB,OAAA,EAAA;IACH,SAAA,EAAA,MAAA;EACE,CAAA;EACI,QAAA,EAAA;IAAW,SAAA,EAAA,MAAA;EAGd,CAAA;EAEA,GAAA,EAAA;;;;;;;;;;;;SA5DJ,eAAe;;UAGN,UAAA;;;;;QAKV;;;;;KAeK,MAAA,GAAS,8BAA8B;KAEvC,UAAA;;cAEC;SACL;;iBAEQ;;;;KAKJ,kBAAA,GAAqB;;;KAIrB,aAAA,GAAgB;OACtB;;KAGM,aAAA;iBACI;sBACK;cACR;SACL;;;;KAKI,iBAAA;UACH;YACE,iBAAA,CAAkB;gBACd;;KAGH,cAAA,GAAiB;KAEjB,gBAAA,GAAmB"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;UAQiB,UAAA;EAChB,IAAA;EACA,IAAA;AAAA;AAAA,UAGgB,YAAA;EAChB,WAAA,EAAa,sBAAA;EACb,IAAA;EACA,WAAA;AAAA;AAAA,UAGgB,WAAA;EAChB,SAAA;EACA,WAAA;EACA,gBAAA;EACA,QAAA;EACA,gBAAA;IACC,SAAA;IACA,eAAA;EAAA;EAED,iBAAA;EACA,4BAAA;EACA,OAAA;IACC,SAAA;EAAA;EAED,QAAA;IACC,SAAA;EAAA;EAED,GAAA;IACC,SAAA;IACA,KAAA;EAAA;EAED,eAAA;EACA,IAAA;IACC,WAAA;IACA,eAAA;EAAA;EAED,KAAA;IACC,SAAA;EAAA;EAED,KAAA,EAAO,MAAA,SAAe,UAAA;AAAA;AAAA,UAGN,UAAA;EAChB,IAAA;EACA,KAAA;EACA,aAAA;EACA,qBAAA;EACA,IAAA,EAAM,MAAA;EACN,MAAA;EACA,WAAA;EACA,YAAA;AAAA;AAAA,KAYW,MAAA,GAAS,MAAA,wBAA8B,WAAA;AAAA,KAEvC,UAAA;EACX,KAAA;EACA,UAAA,EAAY,UAAA;EACZ,IAAA,GAAO,sBAAA;EACP,UAAA;EACA,YAAA,GAAe,YAAA;EACf,SAAA;EACA,iBAAA;AAAA;AAAA,KAGW,kBAAA,GAAqB,UAAA;EAChC,MAAA;AAAA;AAAA,KAGW,aAAA,GAAgB,UAAA;EAC3B,GAAA,EAAK,sBAAA;AAAA;AAAA,KAGM,aAAA;EACX,aAAA,EAAe,yBAAA;EACf,kBAAA,EAAoB,yBAAA;EACpB,UAAA,EAAY,UAAA;EACZ,IAAA,GAAO,sBAAA;EACP,SAAA;EACA,iBAAA;AAAA;AAAA,KAGW,oBAAA;EACX,MAAA,EAAQ,iBAAA;EACR,OAAA,GAAU,iBAAA,CAAkB,OAAA;EAC5B,WAAA,GAAc,WAAA;AAAA;AAAA,KAGH,iBAAA,GAAoB,GAAA;AAAA,KAEpB,gBAAA,GAAmB,GAAA"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@haneullabs/haneulns",
3
3
  "author": "Haneul Labs <build@haneul-labs.com>",
4
- "description": "SuiNS SDK",
5
- "version": "1.0.2",
4
+ "description": "HaneulNS SDK",
5
+ "version": "1.0.3",
6
6
  "license": "Apache-2.0",
7
7
  "private": false,
8
8
  "type": "module",
@@ -10,7 +10,7 @@
10
10
  "types": "./dist/index.d.mts",
11
11
  "keywords": [
12
12
  "Haneul",
13
- "suins",
13
+ "haneulns",
14
14
  "haneullabs"
15
15
  ],
16
16
  "exports": {
@@ -39,18 +39,18 @@
39
39
  "typescript": "^5.9.3",
40
40
  "vite": "^7.3.1",
41
41
  "vitest": "^4.0.17",
42
- "@haneullabs/haneul": "^2.4.0",
43
- "@haneullabs/codegen": "^0.8.2"
42
+ "@haneullabs/codegen": "^0.8.3",
43
+ "@haneullabs/haneul": "^2.13.0"
44
44
  },
45
45
  "peerDependencies": {
46
- "@haneullabs/haneul": "^2.4.0"
46
+ "@haneullabs/haneul": "^2.13.0"
47
47
  },
48
48
  "repository": {
49
49
  "type": "git",
50
50
  "url": "git+https://github.com/GeunhwaJeong/ts-sdks.git"
51
51
  },
52
52
  "bugs": {
53
- "url": "https://github.com/mystenlabs/suins-contracts/issues"
53
+ "url": "https://github.com/GeunhwaJeong/haneulns-contracts/issues"
54
54
  },
55
55
  "scripts": {
56
56
  "codegen": "haneul-ts-codegen generate && pnpm lint:fix",
@@ -35,7 +35,7 @@ export const Auction = new MoveStruct({
35
35
  end_timestamp_ms: bcs.u64(),
36
36
  winner: bcs.Address,
37
37
  current_bid: coin.Coin,
38
- nft: haneulns_registration.SuinsRegistration,
38
+ nft: haneulns_registration.HaneulnsRegistration,
39
39
  },
40
40
  });
41
41
  export const AuctionStartedEvent = new MoveStruct({
@@ -284,7 +284,7 @@ export interface AdminFinalizeAuctionOptions {
284
284
  * provided `operation_limit`:
285
285
  *
286
286
  * - claim the winning bid and place in `AuctionHouse.balance`
287
- * - push the `SuinsRegistration` to the winner
287
+ * - push the `HaneulnsRegistration` to the winner
288
288
  * - push loosing bids back to their respective account owners
289
289
  *
290
290
  * Once all of the above has been done the auction is destroyed, freeing on-chain
@@ -22,7 +22,7 @@ export function haneulTld(options: HaneulTldOptions = {}) {
22
22
  tx.moveCall({
23
23
  package: packageAddress,
24
24
  module: 'constants',
25
- function: 'sui_tld',
25
+ function: 'haneul_tld',
26
26
  });
27
27
  }
28
28
  export interface DefaultImageOptions {
@@ -39,18 +39,18 @@ export function defaultImage(options: DefaultImageOptions = {}) {
39
39
  function: 'default_image',
40
40
  });
41
41
  }
42
- export interface MistPerSuiOptions {
42
+ export interface GeunhwaPerHaneulOptions {
43
43
  package?: string;
44
44
  arguments?: [];
45
45
  }
46
46
  /** The amount of GEUNHWA in 1 HANEUL. */
47
- export function mistPerSui(options: MistPerSuiOptions = {}) {
47
+ export function geunhwaPerHaneul(options: GeunhwaPerHaneulOptions = {}) {
48
48
  const packageAddress = options.package ?? '@haneulns/core';
49
49
  return (tx: Transaction) =>
50
50
  tx.moveCall({
51
51
  package: packageAddress,
52
52
  module: 'constants',
53
- function: 'mist_per_sui',
53
+ function: 'geunhwa_per_haneul',
54
54
  });
55
55
  }
56
56
  export interface MinDomainLengthOptions {
@@ -49,8 +49,8 @@ export const HaneulNS = new MoveStruct({
49
49
  balance: balance.Balance,
50
50
  },
51
51
  });
52
- export const SUINS = new MoveStruct({
53
- name: `${$moduleName}::SUINS`,
52
+ export const HANEULNS = new MoveStruct({
53
+ name: `${$moduleName}::HANEULNS`,
54
54
  fields: {
55
55
  dummy_field: bcs.bool(),
56
56
  },
@@ -3,8 +3,8 @@
3
3
  **************************************************************/
4
4
 
5
5
  /**
6
- * Handles creation of the `SuinsRegistration`s. Separates the logic of creating a
7
- * `SuinsRegistration`. New `SuinsRegistration`s can be created only by the
6
+ * Handles creation of the `HaneulnsRegistration`s. Separates the logic of creating a
7
+ * `HaneulnsRegistration`. New `HaneulnsRegistration`s can be created only by the
8
8
  * `registry` and this module is tightly coupled with it.
9
9
  *
10
10
  * When reviewing the module, make sure that:
@@ -18,8 +18,8 @@ import { bcs } from '@haneullabs/haneul/bcs';
18
18
  import { type Transaction } from '@haneullabs/haneul/transactions';
19
19
  import * as domain_1 from './domain.js';
20
20
  const $moduleName = '@haneulns/core::haneulns_registration';
21
- export const SuinsRegistration = new MoveStruct({
22
- name: `${$moduleName}::SuinsRegistration`,
21
+ export const HaneulnsRegistration = new MoveStruct({
22
+ name: `${$moduleName}::HaneulnsRegistration`,
23
23
  fields: {
24
24
  id: bcs.Address,
25
25
  /** The parsed domain. */
@@ -40,7 +40,7 @@ export interface HasExpiredOptions {
40
40
  arguments: HasExpiredArguments | [self: RawTransactionArgument<string>];
41
41
  }
42
42
  /**
43
- * Check whether the `SuinsRegistration` has expired by comparing the expiration
43
+ * Check whether the `HaneulnsRegistration` has expired by comparing the expiration
44
44
  * timeout with the current time.
45
45
  */
46
46
  export function hasExpired(options: HasExpiredOptions) {
@@ -63,7 +63,7 @@ export interface HasExpiredPastGracePeriodOptions {
63
63
  arguments: HasExpiredPastGracePeriodArguments | [self: RawTransactionArgument<string>];
64
64
  }
65
65
  /**
66
- * Check whether the `SuinsRegistration` has expired by comparing the expiration
66
+ * Check whether the `HaneulnsRegistration` has expired by comparing the expiration
67
67
  * timeout with the current time. This function also takes into account the grace
68
68
  * period.
69
69
  */
@@ -86,7 +86,7 @@ export interface DomainOptions {
86
86
  package?: string;
87
87
  arguments: DomainArguments | [self: RawTransactionArgument<string>];
88
88
  }
89
- /** Get the `domain` field of the `SuinsRegistration`. */
89
+ /** Get the `domain` field of the `HaneulnsRegistration`. */
90
90
  export function domain(options: DomainOptions) {
91
91
  const packageAddress = options.package ?? '@haneulns/core';
92
92
  const argumentsTypes = [null] satisfies (string | null)[];
@@ -106,7 +106,7 @@ export interface DomainNameOptions {
106
106
  package?: string;
107
107
  arguments: DomainNameArguments | [self: RawTransactionArgument<string>];
108
108
  }
109
- /** Get the `domain_name` field of the `SuinsRegistration`. */
109
+ /** Get the `domain_name` field of the `HaneulnsRegistration`. */
110
110
  export function domainName(options: DomainNameOptions) {
111
111
  const packageAddress = options.package ?? '@haneulns/core';
112
112
  const argumentsTypes = [null] satisfies (string | null)[];
@@ -126,7 +126,7 @@ export interface ExpirationTimestampMsOptions {
126
126
  package?: string;
127
127
  arguments: ExpirationTimestampMsArguments | [self: RawTransactionArgument<string>];
128
128
  }
129
- /** Get the `expiration_timestamp_ms` field of the `SuinsRegistration`. */
129
+ /** Get the `expiration_timestamp_ms` field of the `HaneulnsRegistration`. */
130
130
  export function expirationTimestampMs(options: ExpirationTimestampMsOptions) {
131
131
  const packageAddress = options.package ?? '@haneulns/core';
132
132
  const argumentsTypes = [null] satisfies (string | null)[];
@@ -146,7 +146,7 @@ export interface ImageUrlOptions {
146
146
  package?: string;
147
147
  arguments: ImageUrlArguments | [self: RawTransactionArgument<string>];
148
148
  }
149
- /** Get the `image_url` field of the `SuinsRegistration`. */
149
+ /** Get the `image_url` field of the `HaneulnsRegistration`. */
150
150
  export function imageUrl(options: ImageUrlOptions) {
151
151
  const packageAddress = options.package ?? '@haneulns/core';
152
152
  const argumentsTypes = [null] satisfies (string | null)[];
@@ -185,7 +185,7 @@ export interface UidMutOptions {
185
185
  package?: string;
186
186
  arguments: UidMutArguments | [self: RawTransactionArgument<string>];
187
187
  }
188
- /** Get the mutable `id` field of the `SuinsRegistration`. */
188
+ /** Get the mutable `id` field of the `HaneulnsRegistration`. */
189
189
  export function uidMut(options: UidMutOptions) {
190
190
  const packageAddress = options.package ?? '@haneulns/core';
191
191
  const argumentsTypes = [null] satisfies (string | null)[];
@@ -17,9 +17,9 @@ export const NameRecord = new MoveStruct({
17
17
  name: `${$moduleName}::NameRecord`,
18
18
  fields: {
19
19
  /**
20
- * The ID of the `SuinsRegistration` assigned to this record.
20
+ * The ID of the `HaneulnsRegistration` assigned to this record.
21
21
  *
22
- * The owner of the corresponding `SuinsRegistration` has the rights to be able to
22
+ * The owner of the corresponding `HaneulnsRegistration` has the rights to be able to
23
23
  * change and adjust the `target_address` of this domain.
24
24
  *
25
25
  * It is possible that the ID changes if the record expires and is purchased by
@@ -57,7 +57,7 @@ export interface AddRecordIgnoringGracePeriodOptions {
57
57
  /**
58
58
  * Attempts to add a new record to the registry without looking at the grace
59
59
  * period. Currently used for subdomains where there's no grace period to respect.
60
- * Returns a `SuinsRegistration` upon success.
60
+ * Returns a `HaneulnsRegistration` upon success.
61
61
  */
62
62
  export function addRecordIgnoringGracePeriod(options: AddRecordIgnoringGracePeriodOptions) {
63
63
  const packageAddress = options.package ?? '@haneulns/core';
@@ -87,7 +87,7 @@ export interface AddRecordOptions {
87
87
  ];
88
88
  }
89
89
  /**
90
- * Attempts to add a new record to the registry and returns a `SuinsRegistration`
90
+ * Attempts to add a new record to the registry and returns a `HaneulnsRegistration`
91
91
  * upon success. Only use with second-level names. Enforces a `grace_period` by
92
92
  * default. Not suitable for subdomains (unless a grace period is needed).
93
93
  */
@@ -195,9 +195,9 @@ export interface AddLeafRecordOptions {
195
195
  }
196
196
  /**
197
197
  * Adds a `leaf` record to the registry. A `leaf` record is a record that is a
198
- * subdomain and doesn't have an equivalent `SuinsRegistration` object.
198
+ * subdomain and doesn't have an equivalent `HaneulnsRegistration` object.
199
199
  *
200
- * Instead, the parent's `SuinsRegistration` object is used to manage
200
+ * Instead, the parent's `HaneulnsRegistration` object is used to manage
201
201
  * target_address & remove it / determine expiration.
202
202
  *
203
203
  * 1. Leaf records can't have children. They only work as a resolving mechanism.
@@ -233,7 +233,7 @@ export interface RemoveLeafRecordOptions {
233
233
  }
234
234
  /**
235
235
  * Can be used to remove a leaf record. Leaf records do not have any symmetrical
236
- * `SuinsRegistration` object. Authorization of who calls this is delegated to the
236
+ * `HaneulnsRegistration` object. Authorization of who calls this is delegated to the
237
237
  * authorized module that calls this.
238
238
  */
239
239
  export function removeLeafRecord(options: RemoveLeafRecordOptions) {
@@ -343,8 +343,8 @@ export interface SetExpirationTimestampMsOptions {
343
343
  ];
344
344
  }
345
345
  /**
346
- * Update the `expiration_timestamp_ms` of the given `SuinsRegistration` and
347
- * `NameRecord`. Requires the `SuinsRegistration` to make sure that both timestamps
346
+ * Update the `expiration_timestamp_ms` of the given `HaneulnsRegistration` and
347
+ * `NameRecord`. Requires the `HaneulnsRegistration` to make sure that both timestamps
348
348
  * are in sync.
349
349
  */
350
350
  export function setExpirationTimestampMs(options: SetExpirationTimestampMsOptions) {
@@ -375,7 +375,7 @@ export interface SetDataOptions {
375
375
  ];
376
376
  }
377
377
  /**
378
- * Update the `data` of the given `NameRecord` using a `SuinsRegistration`. Use
378
+ * Update the `data` of the given `NameRecord` using a `HaneulnsRegistration`. Use
379
379
  * with caution and validate(!!) that any system fields are not removed
380
380
  * (accidentally), when building authorized packages that can write the metadata
381
381
  * field.
@@ -3,7 +3,7 @@
3
3
  **************************************************************/
4
4
 
5
5
  /**
6
- * A wrapper for `SuinsRegistration` subdomain objects.
6
+ * A wrapper for `HaneulnsRegistration` subdomain objects.
7
7
  *
8
8
  * With the wrapper, we are allowing easier distinction between second level names
9
9
  * & subdomains in RPC Querying | filtering.
@@ -20,7 +20,7 @@ export const SubDomainRegistration = new MoveStruct({
20
20
  name: `${$moduleName}::SubDomainRegistration`,
21
21
  fields: {
22
22
  id: bcs.Address,
23
- nft: haneulns_registration.SuinsRegistration,
23
+ nft: haneulns_registration.HaneulnsRegistration,
24
24
  },
25
25
  });
26
26
  export interface NftArguments {
@@ -92,7 +92,7 @@ export function applyCoupon(options: ApplyCouponOptions) {
92
92
  });
93
93
  }
94
94
  export interface RegisterWithCouponArguments {
95
- Suins: RawTransactionArgument<string>;
95
+ Haneulns: RawTransactionArgument<string>;
96
96
  CouponCode: RawTransactionArgument<string>;
97
97
  DomainName: RawTransactionArgument<string>;
98
98
  NoYears: RawTransactionArgument<number>;
@@ -103,7 +103,7 @@ export interface RegisterWithCouponOptions {
103
103
  arguments:
104
104
  | RegisterWithCouponArguments
105
105
  | [
106
- Suins: RawTransactionArgument<string>,
106
+ Haneulns: RawTransactionArgument<string>,
107
107
  CouponCode: RawTransactionArgument<string>,
108
108
  DomainName: RawTransactionArgument<string>,
109
109
  NoYears: RawTransactionArgument<number>,
@@ -120,7 +120,7 @@ export function registerWithCoupon(options: RegisterWithCouponOptions) {
120
120
  null,
121
121
  '0x2::clock::Clock',
122
122
  ] satisfies (string | null)[];
123
- const parameterNames = ['Suins', 'CouponCode', 'DomainName', 'NoYears', 'Payment'];
123
+ const parameterNames = ['Haneulns', 'CouponCode', 'DomainName', 'NoYears', 'Payment'];
124
124
  return (tx: Transaction) =>
125
125
  tx.moveCall({
126
126
  package: packageAddress,
@@ -130,7 +130,7 @@ export function registerWithCoupon(options: RegisterWithCouponOptions) {
130
130
  });
131
131
  }
132
132
  export interface CalculateSalePriceArguments {
133
- Suins: RawTransactionArgument<string>;
133
+ Haneulns: RawTransactionArgument<string>;
134
134
  Price: RawTransactionArgument<number | bigint>;
135
135
  CouponCode: RawTransactionArgument<string>;
136
136
  }
@@ -139,7 +139,7 @@ export interface CalculateSalePriceOptions {
139
139
  arguments:
140
140
  | CalculateSalePriceArguments
141
141
  | [
142
- Suins: RawTransactionArgument<string>,
142
+ Haneulns: RawTransactionArgument<string>,
143
143
  Price: RawTransactionArgument<number | bigint>,
144
144
  CouponCode: RawTransactionArgument<string>,
145
145
  ];
@@ -147,7 +147,7 @@ export interface CalculateSalePriceOptions {
147
147
  export function calculateSalePrice(options: CalculateSalePriceOptions) {
148
148
  const packageAddress = options.package ?? '@haneulns/coupons';
149
149
  const argumentsTypes = [null, 'u64', '0x1::string::String'] satisfies (string | null)[];
150
- const parameterNames = ['Suins', 'Price', 'CouponCode'];
150
+ const parameterNames = ['Haneulns', 'Price', 'CouponCode'];
151
151
  return (tx: Transaction) =>
152
152
  tx.moveCall({
153
153
  package: packageAddress,
@@ -11,8 +11,8 @@ import type {
11
11
  CoinTypeDiscount,
12
12
  NameRecord,
13
13
  PackageInfo,
14
- SuinsClientConfig,
15
- SuinsPriceList,
14
+ HaneulnsClientConfig,
15
+ HaneulnsPriceList,
16
16
  } from './types.js';
17
17
 
18
18
  import { ConfigKey } from './contracts/haneulns/haneulns.js';
@@ -21,7 +21,7 @@ import { NameRecord as NameRecordBcs } from './contracts/haneulns/name_record.js
21
21
  import { PricingConfig, RenewalConfig } from './contracts/haneulns/pricing_config.js';
22
22
  import { PaymentsConfig } from './contracts/haneulns_payments/payments.js';
23
23
 
24
- export type SuinsExtensionOptions<Name extends string = 'haneulns'> = {
24
+ export type HaneulnsExtensionOptions<Name extends string = 'haneulns'> = {
25
25
  name?: Name;
26
26
  packageInfo?: PackageInfo;
27
27
  };
@@ -45,11 +45,11 @@ export type SuinsExtensionOptions<Name extends string = 'haneulns'> = {
45
45
  export function haneulns<const Name extends string = 'haneulns'>({
46
46
  name = 'haneulns' as Name,
47
47
  packageInfo,
48
- }: SuinsExtensionOptions<Name> = {}) {
48
+ }: HaneulnsExtensionOptions<Name> = {}) {
49
49
  return {
50
50
  name,
51
51
  register: (client: ClientWithCoreApi) => {
52
- return new SuinsClient({
52
+ return new HaneulnsClient({
53
53
  client,
54
54
  network: client.network,
55
55
  packageInfo,
@@ -58,12 +58,12 @@ export function haneulns<const Name extends string = 'haneulns'>({
58
58
  };
59
59
  }
60
60
 
61
- export class SuinsClient {
61
+ export class HaneulnsClient {
62
62
  client: ClientWithCoreApi;
63
63
  network: HaneulClientTypes.Network;
64
64
  config: PackageInfo;
65
65
 
66
- constructor(config: SuinsClientConfig) {
66
+ constructor(config: HaneulnsClientConfig) {
67
67
  this.client = config.client;
68
68
  this.network = config.network || 'mainnet';
69
69
 
@@ -88,8 +88,8 @@ export class SuinsClient {
88
88
  // [ 4, 4 ] => 100000000,
89
89
  // [ 5, 63 ] => 20000000
90
90
  // }
91
- async getPriceList(): Promise<SuinsPriceList> {
92
- if (!this.config.haneulns) throw new Error('Suins object ID is not set');
91
+ async getPriceList(): Promise<HaneulnsPriceList> {
92
+ if (!this.config.haneulns) throw new Error('Haneulns object ID is not set');
93
93
  if (!this.config.packageId) throw new Error('Price list config not found');
94
94
 
95
95
  const configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::PricingConfig>`;
@@ -126,8 +126,8 @@ export class SuinsClient {
126
126
  // [ 4, 4 ] => 100000000,
127
127
  // [ 5, 63 ] => 20000000
128
128
  // }
129
- async getRenewalPriceList(): Promise<SuinsPriceList> {
130
- if (!this.config.haneulns) throw new Error('Suins object ID is not set');
129
+ async getRenewalPriceList(): Promise<HaneulnsPriceList> {
130
+ if (!this.config.haneulns) throw new Error('Haneulns object ID is not set');
131
131
  if (!this.config.packageId) throw new Error('Price list config not found');
132
132
 
133
133
  const configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::RenewalConfig>`;
@@ -165,7 +165,7 @@ export class SuinsClient {
165
165
  // 'b48aac3f53bab328e1eb4c5b3c34f55e760f2fb3f2305ee1a474878d80f650f0::TESTNS::TESTNS' => 25
166
166
  // }
167
167
  async getCoinTypeDiscount(): Promise<CoinTypeDiscount> {
168
- if (!this.config.haneulns) throw new Error('Suins object ID is not set');
168
+ if (!this.config.haneulns) throw new Error('Haneulns object ID is not set');
169
169
  if (!this.config.packageId) throw new Error('Price list config not found');
170
170
 
171
171
  const configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.payments.packageId}::payments::PaymentsConfig>`;
@@ -193,7 +193,7 @@ export class SuinsClient {
193
193
 
194
194
  async getNameRecord(name: string): Promise<NameRecord | null> {
195
195
  if (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');
196
- if (!this.config.registryTableId) throw new Error('Suins package ID is not set');
196
+ if (!this.config.registryTableId) throw new Error('Haneulns package ID is not set');
197
197
 
198
198
  const labels = normalizeHaneulNSName(name, 'dot').split('.').reverse();
199
199
 
@@ -232,7 +232,7 @@ export class SuinsClient {
232
232
 
233
233
  /**
234
234
  * Calculates the registration or renewal price for an SLD (Second Level Domain).
235
- * It expects a domain name, the number of years and a `SuinsPriceList` object,
235
+ * It expects a domain name, the number of years and a `HaneulnsPriceList` object,
236
236
  * as returned from `haneulnsClient.getPriceList()` function, or `haneulns.getRenewalPriceList()` function.
237
237
  *
238
238
  * It throws an error: