@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.
- package/dist/constants.d.mts +0 -1
- package/dist/constants.d.mts.map +1 -1
- package/dist/contracts/haneulns/haneulns.mjs +2 -2
- package/dist/contracts/haneulns/haneulns.mjs.map +1 -1
- package/dist/contracts/haneulns/name_record.mjs.map +1 -1
- package/dist/contracts/haneulns_coupons/coupon_house.mjs.map +1 -1
- package/dist/haneulns-client.d.mts +10 -10
- package/dist/haneulns-client.d.mts.map +1 -1
- package/dist/haneulns-client.mjs +8 -8
- package/dist/haneulns-client.mjs.map +1 -1
- package/dist/haneulns-transaction.d.mts +6 -6
- package/dist/haneulns-transaction.d.mts.map +1 -1
- package/dist/haneulns-transaction.mjs +3 -3
- package/dist/haneulns-transaction.mjs.map +1 -1
- package/dist/helpers.d.mts.map +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +3 -3
- package/dist/types.d.mts +3 -3
- package/dist/types.d.mts.map +1 -1
- package/package.json +7 -7
- package/src/contracts/haneulns/auction.ts +2 -2
- package/src/contracts/haneulns/constants.ts +4 -4
- package/src/contracts/haneulns/haneulns.ts +2 -2
- package/src/contracts/haneulns/haneulns_registration.ts +11 -11
- package/src/contracts/haneulns/name_record.ts +2 -2
- package/src/contracts/haneulns/registry.ts +8 -8
- package/src/contracts/haneulns/subdomain_registration.ts +2 -2
- package/src/contracts/haneulns_coupons/coupon_house.ts +6 -6
- package/src/haneulns-client.ts +14 -14
- package/src/haneulns-transaction.ts +5 -5
- package/src/index.ts +3 -3
- package/src/types.ts +2 -2
package/dist/constants.d.mts
CHANGED
package/dist/constants.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.mts","names":[],"sources":["../src/constants.ts"],"
|
|
1
|
+
{"version":3,"file":"constants.d.mts","names":[],"sources":["../src/constants.ts"],"mappings":";;;;AAUA;;cAAa,gBAAA;;;;;cAMA,WAAA,EAAa,MAAA"}
|
|
@@ -42,8 +42,8 @@ const HaneulNS = new MoveStruct({
|
|
|
42
42
|
balance: Balance
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
|
-
const
|
|
46
|
-
name: `${$moduleName}::
|
|
45
|
+
const HANEULNS = new MoveStruct({
|
|
46
|
+
name: `${$moduleName}::HANEULNS`,
|
|
47
47
|
fields: { dummy_field: bcs.bool() }
|
|
48
48
|
});
|
|
49
49
|
const ConfigKey = new MoveStruct({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneulns.mjs","names":["balance.Balance"],"sources":["../../../src/contracts/haneulns/haneulns.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * The main module of the HaneulNS application, defines the `HaneulNS` object and the\n * authorization mechanism for interacting with the main data storage.\n *\n * Authorization mechanic: The Admin can authorize applications to access protected\n * features of the HaneulNS, they're named with a prefix `app_*`. Once authorized,\n * application can get mutable access to the `Registry` and add to the application\n * `Balance`.\n *\n * At any moment any of the applications can be deathorized by the Admin making it\n * impossible for the deauthorized module to access the registry.\n *\n * ---\n *\n * Package Upgrades in mind:\n *\n * - None of the public functions of the HaneulNS feature any specific types - instead\n * we use generics to define the actual types in arbitrary modules.\n * - The `Registry` itself (the main feature of the application) is stored as a\n * dynamic field so that we can change the type and the module that serves the\n * registry without breaking the HaneulNS compatibility.\n * - Any of the old modules can be deauthorized hence disabling its access to the\n * registry and the balance.\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs, type BcsType } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as balance from './deps/haneul/balance.js';\nconst $moduleName = '@haneulns/core::haneulns';\nexport const AdminCap = new MoveStruct({\n\tname: `${$moduleName}::AdminCap`,\n\tfields: {\n\t\tid: bcs.Address,\n\t},\n});\nexport const HaneulNS = new MoveStruct({\n\tname: `${$moduleName}::HaneulNS`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\t/**\n\t\t * The total balance of the HaneulNS. Can be added to by authorized apps. Can be\n\t\t * withdrawn only by the application Admin.\n\t\t */\n\t\tbalance: balance.Balance,\n\t},\n});\nexport const SUINS = new MoveStruct({\n\tname: `${$moduleName}::SUINS`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const ConfigKey = new MoveStruct({\n\tname: `${$moduleName}::ConfigKey<phantom Config>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const RegistryKey = new MoveStruct({\n\tname: `${$moduleName}::RegistryKey<phantom Config>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const BalanceKey = new MoveStruct({\n\tname: `${$moduleName}::BalanceKey<phantom T>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const AppKey = new MoveStruct({\n\tname: `${$moduleName}::AppKey<phantom App>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport interface WithdrawArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface WithdrawOptions {\n\tpackage?: string;\n\targuments:\n\t\t| WithdrawArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n}\n/**\n * Withdraw from the HaneulNS balance directly and access the Coins within the same\n * transaction. This is useful for the admin to withdraw funds from the HaneulNS and\n * then send them somewhere specific or keep at the address.\n */\nexport function withdraw(options: WithdrawOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'withdraw',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface WithdrawCustomArguments {\n\tself: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<string>;\n}\nexport interface WithdrawCustomOptions {\n\tpackage?: string;\n\targuments:\n\t\t| WithdrawCustomArguments\n\t\t| [self: RawTransactionArgument<string>, _: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Withdraw from the HaneulNS balance of a custom coin type. */\nexport function withdrawCustom(options: WithdrawCustomOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'withdraw_custom',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AuthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface AuthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AuthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Authorize an application to access protected features of the HaneulNS. */\nexport function authorizeApp(options: AuthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'authorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface DeauthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface DeauthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| DeauthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Deauthorize an application by removing its authorization key. */\nexport function deauthorizeApp(options: DeauthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'deauthorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface IsAppAuthorizedArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface IsAppAuthorizedOptions {\n\tpackage?: string;\n\targuments: IsAppAuthorizedArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Check if an application is authorized to access protected features of the HaneulNS. */\nexport function isAppAuthorized(options: IsAppAuthorizedOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'is_app_authorized',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AssertAppIsAuthorizedArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface AssertAppIsAuthorizedOptions {\n\tpackage?: string;\n\targuments: AssertAppIsAuthorizedArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/**\n * Assert that an application is authorized to access protected features of the\n * HaneulNS. Aborts with `EAppNotAuthorized` if not.\n */\nexport function assertAppIsAuthorized(options: AssertAppIsAuthorizedOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'assert_app_is_authorized',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AppAddBalanceArguments<App extends BcsType<any>> {\n\t_: RawTransactionArgument<App>;\n\tself: RawTransactionArgument<string>;\n\tbalance: RawTransactionArgument<string>;\n}\nexport interface AppAddBalanceOptions<App extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddBalanceArguments<App>\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<App>,\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tbalance: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/** Adds balance to the HaneulNS. */\nexport function appAddBalance<App extends BcsType<any>>(options: AppAddBalanceOptions<App>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [`${options.typeArguments[0]}`, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'self', 'balance'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'app_add_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AppAddCustomBalanceArguments<App extends BcsType<any>> {\n\tself: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<App>;\n\tbalance: RawTransactionArgument<string>;\n}\nexport interface AppAddCustomBalanceOptions<App extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddCustomBalanceArguments<App>\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\t_: RawTransactionArgument<App>,\n\t\t\t\tbalance: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Adds a balance of type `T` to the HaneulNS protocol as an authorized app. */\nexport function appAddCustomBalance<App extends BcsType<any>>(\n\toptions: AppAddCustomBalanceOptions<App>,\n) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, `${options.typeArguments[0]}`, null] satisfies (string | null)[];\n\tconst parameterNames = ['self', '_', 'balance'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'app_add_custom_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AppRegistryMutArguments<App extends BcsType<any>> {\n\t_: RawTransactionArgument<App>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface AppRegistryMutOptions<App extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppRegistryMutArguments<App>\n\t\t| [_: RawTransactionArgument<App>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string, string];\n}\n/**\n * Get a mutable access to the `Registry` object. Can only be performed by\n * authorized applications.\n */\nexport function appRegistryMut<App extends BcsType<any>>(options: AppRegistryMutOptions<App>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [`${options.typeArguments[0]}`, 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: 'haneulns',\n\t\t\tfunction: 'app_registry_mut',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AddConfigArguments<Config extends BcsType<any>> {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n\tconfig: RawTransactionArgument<Config>;\n}\nexport interface AddConfigOptions<Config extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AddConfigArguments<Config>\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tconfig: RawTransactionArgument<Config>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/** Attach dynamic configuration object to the application. */\nexport function addConfig<Config extends BcsType<any>>(options: AddConfigOptions<Config>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, `${options.typeArguments[0]}`] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'self', 'config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'add_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface GetConfigArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface GetConfigOptions {\n\tpackage?: string;\n\targuments: GetConfigArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Borrow configuration object. Read-only mode for applications. */\nexport function getConfig(options: GetConfigOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'get_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface RemoveConfigArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface RemoveConfigOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RemoveConfigArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/**\n * Get the configuration object for editing. The admin should put it back after\n * editing (no extra check performed). Can be used to swap configuration since the\n * `T` has `drop`. Eg nothing is stopping the admin from removing the configuration\n * object and adding a new one.\n *\n * Fully taking the config also allows for edits within a transaction.\n */\nexport function removeConfig(options: RemoveConfigOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'remove_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface RegistryArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface RegistryOptions {\n\tpackage?: string;\n\targuments: RegistryArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Get a read-only access to the `Registry` object. */\nexport function registry(options: RegistryOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'registry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AddRegistryArguments<R extends BcsType<any>> {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n\tregistry: RawTransactionArgument<R>;\n}\nexport interface AddRegistryOptions<R extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AddRegistryArguments<R>\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tregistry: RawTransactionArgument<R>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/** Add a registry to the HaneulNS. Can only be performed by the admin. */\nexport function addRegistry<R extends BcsType<any>>(options: AddRegistryOptions<R>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, `${options.typeArguments[0]}`] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'self', 'registry'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'add_registry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,cAAc;AACpB,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,IAAI,IAAI,SACR;CACD,CAAC;AACF,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EAKR,SAASA;EACT;CACD,CAAC;AACF,MAAa,QAAQ,IAAI,WAAW;CACnC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"haneulns.mjs","names":["balance.Balance"],"sources":["../../../src/contracts/haneulns/haneulns.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * The main module of the HaneulNS application, defines the `HaneulNS` object and the\n * authorization mechanism for interacting with the main data storage.\n *\n * Authorization mechanic: The Admin can authorize applications to access protected\n * features of the HaneulNS, they're named with a prefix `app_*`. Once authorized,\n * application can get mutable access to the `Registry` and add to the application\n * `Balance`.\n *\n * At any moment any of the applications can be deathorized by the Admin making it\n * impossible for the deauthorized module to access the registry.\n *\n * ---\n *\n * Package Upgrades in mind:\n *\n * - None of the public functions of the HaneulNS feature any specific types - instead\n * we use generics to define the actual types in arbitrary modules.\n * - The `Registry` itself (the main feature of the application) is stored as a\n * dynamic field so that we can change the type and the module that serves the\n * registry without breaking the HaneulNS compatibility.\n * - Any of the old modules can be deauthorized hence disabling its access to the\n * registry and the balance.\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs, type BcsType } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as balance from './deps/haneul/balance.js';\nconst $moduleName = '@haneulns/core::haneulns';\nexport const AdminCap = new MoveStruct({\n\tname: `${$moduleName}::AdminCap`,\n\tfields: {\n\t\tid: bcs.Address,\n\t},\n});\nexport const HaneulNS = new MoveStruct({\n\tname: `${$moduleName}::HaneulNS`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\t/**\n\t\t * The total balance of the HaneulNS. Can be added to by authorized apps. Can be\n\t\t * withdrawn only by the application Admin.\n\t\t */\n\t\tbalance: balance.Balance,\n\t},\n});\nexport const HANEULNS = new MoveStruct({\n\tname: `${$moduleName}::HANEULNS`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const ConfigKey = new MoveStruct({\n\tname: `${$moduleName}::ConfigKey<phantom Config>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const RegistryKey = new MoveStruct({\n\tname: `${$moduleName}::RegistryKey<phantom Config>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const BalanceKey = new MoveStruct({\n\tname: `${$moduleName}::BalanceKey<phantom T>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const AppKey = new MoveStruct({\n\tname: `${$moduleName}::AppKey<phantom App>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport interface WithdrawArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface WithdrawOptions {\n\tpackage?: string;\n\targuments:\n\t\t| WithdrawArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n}\n/**\n * Withdraw from the HaneulNS balance directly and access the Coins within the same\n * transaction. This is useful for the admin to withdraw funds from the HaneulNS and\n * then send them somewhere specific or keep at the address.\n */\nexport function withdraw(options: WithdrawOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'withdraw',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface WithdrawCustomArguments {\n\tself: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<string>;\n}\nexport interface WithdrawCustomOptions {\n\tpackage?: string;\n\targuments:\n\t\t| WithdrawCustomArguments\n\t\t| [self: RawTransactionArgument<string>, _: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Withdraw from the HaneulNS balance of a custom coin type. */\nexport function withdrawCustom(options: WithdrawCustomOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'withdraw_custom',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AuthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface AuthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AuthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Authorize an application to access protected features of the HaneulNS. */\nexport function authorizeApp(options: AuthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'authorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface DeauthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface DeauthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| DeauthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Deauthorize an application by removing its authorization key. */\nexport function deauthorizeApp(options: DeauthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'deauthorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface IsAppAuthorizedArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface IsAppAuthorizedOptions {\n\tpackage?: string;\n\targuments: IsAppAuthorizedArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Check if an application is authorized to access protected features of the HaneulNS. */\nexport function isAppAuthorized(options: IsAppAuthorizedOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'is_app_authorized',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AssertAppIsAuthorizedArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface AssertAppIsAuthorizedOptions {\n\tpackage?: string;\n\targuments: AssertAppIsAuthorizedArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/**\n * Assert that an application is authorized to access protected features of the\n * HaneulNS. Aborts with `EAppNotAuthorized` if not.\n */\nexport function assertAppIsAuthorized(options: AssertAppIsAuthorizedOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'assert_app_is_authorized',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AppAddBalanceArguments<App extends BcsType<any>> {\n\t_: RawTransactionArgument<App>;\n\tself: RawTransactionArgument<string>;\n\tbalance: RawTransactionArgument<string>;\n}\nexport interface AppAddBalanceOptions<App extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddBalanceArguments<App>\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<App>,\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tbalance: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/** Adds balance to the HaneulNS. */\nexport function appAddBalance<App extends BcsType<any>>(options: AppAddBalanceOptions<App>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [`${options.typeArguments[0]}`, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'self', 'balance'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'app_add_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AppAddCustomBalanceArguments<App extends BcsType<any>> {\n\tself: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<App>;\n\tbalance: RawTransactionArgument<string>;\n}\nexport interface AppAddCustomBalanceOptions<App extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddCustomBalanceArguments<App>\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\t_: RawTransactionArgument<App>,\n\t\t\t\tbalance: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/** Adds a balance of type `T` to the HaneulNS protocol as an authorized app. */\nexport function appAddCustomBalance<App extends BcsType<any>>(\n\toptions: AppAddCustomBalanceOptions<App>,\n) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, `${options.typeArguments[0]}`, null] satisfies (string | null)[];\n\tconst parameterNames = ['self', '_', 'balance'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'app_add_custom_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AppRegistryMutArguments<App extends BcsType<any>> {\n\t_: RawTransactionArgument<App>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface AppRegistryMutOptions<App extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppRegistryMutArguments<App>\n\t\t| [_: RawTransactionArgument<App>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string, string];\n}\n/**\n * Get a mutable access to the `Registry` object. Can only be performed by\n * authorized applications.\n */\nexport function appRegistryMut<App extends BcsType<any>>(options: AppRegistryMutOptions<App>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [`${options.typeArguments[0]}`, 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: 'haneulns',\n\t\t\tfunction: 'app_registry_mut',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AddConfigArguments<Config extends BcsType<any>> {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n\tconfig: RawTransactionArgument<Config>;\n}\nexport interface AddConfigOptions<Config extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AddConfigArguments<Config>\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tconfig: RawTransactionArgument<Config>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/** Attach dynamic configuration object to the application. */\nexport function addConfig<Config extends BcsType<any>>(options: AddConfigOptions<Config>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, `${options.typeArguments[0]}`] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'self', 'config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'add_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface GetConfigArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface GetConfigOptions {\n\tpackage?: string;\n\targuments: GetConfigArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Borrow configuration object. Read-only mode for applications. */\nexport function getConfig(options: GetConfigOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'get_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface RemoveConfigArguments {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n}\nexport interface RemoveConfigOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RemoveConfigArguments\n\t\t| [_: RawTransactionArgument<string>, self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/**\n * Get the configuration object for editing. The admin should put it back after\n * editing (no extra check performed). Can be used to swap configuration since the\n * `T` has `drop`. Eg nothing is stopping the admin from removing the configuration\n * object and adding a new one.\n *\n * Fully taking the config also allows for edits within a transaction.\n */\nexport function removeConfig(options: RemoveConfigOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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: 'haneulns',\n\t\t\tfunction: 'remove_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface RegistryArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface RegistryOptions {\n\tpackage?: string;\n\targuments: RegistryArguments | [self: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** Get a read-only access to the `Registry` object. */\nexport function registry(options: RegistryOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'haneulns',\n\t\t\tfunction: 'registry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AddRegistryArguments<R extends BcsType<any>> {\n\t_: RawTransactionArgument<string>;\n\tself: RawTransactionArgument<string>;\n\tregistry: RawTransactionArgument<R>;\n}\nexport interface AddRegistryOptions<R extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AddRegistryArguments<R>\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\tregistry: RawTransactionArgument<R>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/** Add a registry to the HaneulNS. Can only be performed by the admin. */\nexport function addRegistry<R extends BcsType<any>>(options: AddRegistryOptions<R>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, `${options.typeArguments[0]}`] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'self', 'registry'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'haneulns',\n\t\t\tfunction: 'add_registry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,cAAc;AACpB,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,IAAI,IAAI,SACR;CACD,CAAC;AACF,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EAKR,SAASA;EACT;CACD,CAAC;AACF,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name_record.mjs","names":["vec_map.VecMap"],"sources":["../../../src/contracts/haneulns/name_record.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * The `NameRecord` is a struct that represents a single record in the registry.\n * Can be replaced by any other data structure due to the way `NameRecord`s are\n * stored and managed. HaneulNS has no direct and permanent dependency on this module.\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as vec_map from './deps/haneul/vec_map.js';\nconst $moduleName = '@haneulns/core::name_record';\nexport const NameRecord = new MoveStruct({\n\tname: `${$moduleName}::NameRecord`,\n\tfields: {\n\t\t/**\n\t\t * The ID of the `SuinsRegistration` assigned to this record.\n\t\t *\n\t\t * The owner of the corresponding `SuinsRegistration` has the rights to be able to\n\t\t * change and adjust the `target_address` of this domain.\n\t\t *\n\t\t * It is possible that the ID changes if the record expires and is purchased by\n\t\t * someone else.\n\t\t */\n\t\tnft_id: bcs.Address,\n\t\t/** Timestamp in milliseconds when the record expires. */\n\t\texpiration_timestamp_ms: bcs.u64(),\n\t\t/** The target address that this domain points to */\n\t\ttarget_address: bcs.option(bcs.Address),\n\t\t/** Additional data which may be stored in a record */\n\t\tdata: vec_map.VecMap(bcs.string(), bcs.string()),\n\t},\n});\nexport interface NewArguments {\n\tnftId: RawTransactionArgument<string>;\n\texpirationTimestampMs: RawTransactionArgument<number | bigint>;\n}\nexport interface NewOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewArguments\n\t\t| [\n\t\t\t\tnftId: RawTransactionArgument<string>,\n\t\t\t\texpirationTimestampMs: RawTransactionArgument<number | bigint>,\n\t\t ];\n}\n/** Create a new NameRecord. */\nexport function _new(options: NewOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['0x2::object::ID', 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['nftId', 'expirationTimestampMs'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'new',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewLeafArguments {\n\tparentId: RawTransactionArgument<string>;\n\ttargetAddress: RawTransactionArgument<string | null>;\n}\nexport interface NewLeafOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewLeafArguments\n\t\t| [\n\t\t\t\tparentId: RawTransactionArgument<string>,\n\t\t\t\ttargetAddress: RawTransactionArgument<string | null>,\n\t\t ];\n}\n/** Create a `leaf` NameRecord. */\nexport function newLeaf(options: NewLeafOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['0x2::object::ID', '0x1::option::Option<address>'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['parentId', 'targetAddress'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'new_leaf',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetDataArguments {\n\tself: RawTransactionArgument<string>;\n\tdata: RawTransactionArgument<string>;\n}\nexport interface SetDataOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetDataArguments\n\t\t| [self: RawTransactionArgument<string>, data: RawTransactionArgument<string>];\n}\n/**\n * Set data as a vec_map directly overriding the data set in the registration self.\n * This simplifies the editing flow and gives the user and clients a fine-grained\n * control over custom data.\n *\n * Here's a meta example of how a PTB would look like:\n *\n * ```\n * let record = moveCall('data', [domain_name]);\n * moveCall('vec_map::insert', [record.data, key, value]);\n * moveCall('vec_map::remove', [record.data, other_key]);\n * moveCall('set_data', [domain_name, record.data]);\n * ```\n */\nexport function setData(options: SetDataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'data'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'set_data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetTargetAddressArguments {\n\tself: RawTransactionArgument<string>;\n\tnewAddress: RawTransactionArgument<string | null>;\n}\nexport interface SetTargetAddressOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetTargetAddressArguments\n\t\t| [self: RawTransactionArgument<string>, newAddress: RawTransactionArgument<string | null>];\n}\n/** Set the `target_address` field of the `NameRecord`. */\nexport function setTargetAddress(options: SetTargetAddressOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x1::option::Option<address>'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'newAddress'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'set_target_address',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetExpirationTimestampMsArguments {\n\tself: RawTransactionArgument<string>;\n\texpirationTimestampMs: RawTransactionArgument<number | bigint>;\n}\nexport interface SetExpirationTimestampMsOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetExpirationTimestampMsArguments\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\texpirationTimestampMs: RawTransactionArgument<number | bigint>,\n\t\t ];\n}\nexport function setExpirationTimestampMs(options: SetExpirationTimestampMsOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'expirationTimestampMs'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'set_expiration_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface HasExpiredArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface HasExpiredOptions {\n\tpackage?: string;\n\targuments: HasExpiredArguments | [self: RawTransactionArgument<string>];\n}\n/** Check if the record has expired. */\nexport function hasExpired(options: HasExpiredOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'has_expired',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface HasExpiredPastGracePeriodArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface HasExpiredPastGracePeriodOptions {\n\tpackage?: string;\n\targuments: HasExpiredPastGracePeriodArguments | [self: RawTransactionArgument<string>];\n}\n/** Check if the record has expired, taking into account the grace period. */\nexport function hasExpiredPastGracePeriod(options: HasExpiredPastGracePeriodOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'has_expired_past_grace_period',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsLeafRecordArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface IsLeafRecordOptions {\n\tpackage?: string;\n\targuments: IsLeafRecordArguments | [self: RawTransactionArgument<string>];\n}\n/** Checks whether a name_record is a `leaf` record. */\nexport function isLeafRecord(options: IsLeafRecordOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'is_leaf_record',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DataArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface DataOptions {\n\tpackage?: string;\n\targuments: DataArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `data` field from the `NameRecord`. */\nexport function data(options: DataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TargetAddressArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface TargetAddressOptions {\n\tpackage?: string;\n\targuments: TargetAddressArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `target_address` field from the `NameRecord`. */\nexport function targetAddress(options: TargetAddressOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'target_address',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NftIdArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface NftIdOptions {\n\tpackage?: string;\n\targuments: NftIdArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `nft_id` field from the `NameRecord`. */\nexport function nftId(options: NftIdOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'nft_id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpirationTimestampMsArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface ExpirationTimestampMsOptions {\n\tpackage?: string;\n\targuments: ExpirationTimestampMsArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `expiration_timestamp_ms` field from the `NameRecord`. */\nexport function expirationTimestampMs(options: ExpirationTimestampMsOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'expiration_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,cAAc;AACpB,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ;EAUP,QAAQ,IAAI;EAEZ,yBAAyB,IAAI,KAAK;EAElC,gBAAgB,IAAI,OAAO,IAAI,QAAQ;EAEvC,MAAMA,OAAe,IAAI,QAAQ,EAAE,IAAI,QAAQ,CAAC;EAChD;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"name_record.mjs","names":["vec_map.VecMap"],"sources":["../../../src/contracts/haneulns/name_record.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * The `NameRecord` is a struct that represents a single record in the registry.\n * Can be replaced by any other data structure due to the way `NameRecord`s are\n * stored and managed. HaneulNS has no direct and permanent dependency on this module.\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as vec_map from './deps/haneul/vec_map.js';\nconst $moduleName = '@haneulns/core::name_record';\nexport const NameRecord = new MoveStruct({\n\tname: `${$moduleName}::NameRecord`,\n\tfields: {\n\t\t/**\n\t\t * The ID of the `HaneulnsRegistration` assigned to this record.\n\t\t *\n\t\t * The owner of the corresponding `HaneulnsRegistration` has the rights to be able to\n\t\t * change and adjust the `target_address` of this domain.\n\t\t *\n\t\t * It is possible that the ID changes if the record expires and is purchased by\n\t\t * someone else.\n\t\t */\n\t\tnft_id: bcs.Address,\n\t\t/** Timestamp in milliseconds when the record expires. */\n\t\texpiration_timestamp_ms: bcs.u64(),\n\t\t/** The target address that this domain points to */\n\t\ttarget_address: bcs.option(bcs.Address),\n\t\t/** Additional data which may be stored in a record */\n\t\tdata: vec_map.VecMap(bcs.string(), bcs.string()),\n\t},\n});\nexport interface NewArguments {\n\tnftId: RawTransactionArgument<string>;\n\texpirationTimestampMs: RawTransactionArgument<number | bigint>;\n}\nexport interface NewOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewArguments\n\t\t| [\n\t\t\t\tnftId: RawTransactionArgument<string>,\n\t\t\t\texpirationTimestampMs: RawTransactionArgument<number | bigint>,\n\t\t ];\n}\n/** Create a new NameRecord. */\nexport function _new(options: NewOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['0x2::object::ID', 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['nftId', 'expirationTimestampMs'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'new',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewLeafArguments {\n\tparentId: RawTransactionArgument<string>;\n\ttargetAddress: RawTransactionArgument<string | null>;\n}\nexport interface NewLeafOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewLeafArguments\n\t\t| [\n\t\t\t\tparentId: RawTransactionArgument<string>,\n\t\t\t\ttargetAddress: RawTransactionArgument<string | null>,\n\t\t ];\n}\n/** Create a `leaf` NameRecord. */\nexport function newLeaf(options: NewLeafOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['0x2::object::ID', '0x1::option::Option<address>'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['parentId', 'targetAddress'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'new_leaf',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetDataArguments {\n\tself: RawTransactionArgument<string>;\n\tdata: RawTransactionArgument<string>;\n}\nexport interface SetDataOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetDataArguments\n\t\t| [self: RawTransactionArgument<string>, data: RawTransactionArgument<string>];\n}\n/**\n * Set data as a vec_map directly overriding the data set in the registration self.\n * This simplifies the editing flow and gives the user and clients a fine-grained\n * control over custom data.\n *\n * Here's a meta example of how a PTB would look like:\n *\n * ```\n * let record = moveCall('data', [domain_name]);\n * moveCall('vec_map::insert', [record.data, key, value]);\n * moveCall('vec_map::remove', [record.data, other_key]);\n * moveCall('set_data', [domain_name, record.data]);\n * ```\n */\nexport function setData(options: SetDataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'data'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'set_data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetTargetAddressArguments {\n\tself: RawTransactionArgument<string>;\n\tnewAddress: RawTransactionArgument<string | null>;\n}\nexport interface SetTargetAddressOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetTargetAddressArguments\n\t\t| [self: RawTransactionArgument<string>, newAddress: RawTransactionArgument<string | null>];\n}\n/** Set the `target_address` field of the `NameRecord`. */\nexport function setTargetAddress(options: SetTargetAddressOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x1::option::Option<address>'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'newAddress'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'set_target_address',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetExpirationTimestampMsArguments {\n\tself: RawTransactionArgument<string>;\n\texpirationTimestampMs: RawTransactionArgument<number | bigint>;\n}\nexport interface SetExpirationTimestampMsOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetExpirationTimestampMsArguments\n\t\t| [\n\t\t\t\tself: RawTransactionArgument<string>,\n\t\t\t\texpirationTimestampMs: RawTransactionArgument<number | bigint>,\n\t\t ];\n}\nexport function setExpirationTimestampMs(options: SetExpirationTimestampMsOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'expirationTimestampMs'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'set_expiration_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface HasExpiredArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface HasExpiredOptions {\n\tpackage?: string;\n\targuments: HasExpiredArguments | [self: RawTransactionArgument<string>];\n}\n/** Check if the record has expired. */\nexport function hasExpired(options: HasExpiredOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'has_expired',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface HasExpiredPastGracePeriodArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface HasExpiredPastGracePeriodOptions {\n\tpackage?: string;\n\targuments: HasExpiredPastGracePeriodArguments | [self: RawTransactionArgument<string>];\n}\n/** Check if the record has expired, taking into account the grace period. */\nexport function hasExpiredPastGracePeriod(options: HasExpiredPastGracePeriodOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['self'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'name_record',\n\t\t\tfunction: 'has_expired_past_grace_period',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsLeafRecordArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface IsLeafRecordOptions {\n\tpackage?: string;\n\targuments: IsLeafRecordArguments | [self: RawTransactionArgument<string>];\n}\n/** Checks whether a name_record is a `leaf` record. */\nexport function isLeafRecord(options: IsLeafRecordOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'is_leaf_record',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DataArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface DataOptions {\n\tpackage?: string;\n\targuments: DataArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `data` field from the `NameRecord`. */\nexport function data(options: DataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TargetAddressArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface TargetAddressOptions {\n\tpackage?: string;\n\targuments: TargetAddressArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `target_address` field from the `NameRecord`. */\nexport function targetAddress(options: TargetAddressOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'target_address',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NftIdArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface NftIdOptions {\n\tpackage?: string;\n\targuments: NftIdArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `nft_id` field from the `NameRecord`. */\nexport function nftId(options: NftIdOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'nft_id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpirationTimestampMsArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface ExpirationTimestampMsOptions {\n\tpackage?: string;\n\targuments: ExpirationTimestampMsArguments | [self: RawTransactionArgument<string>];\n}\n/** Read the `expiration_timestamp_ms` field from the `NameRecord`. */\nexport function expirationTimestampMs(options: ExpirationTimestampMsOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'name_record',\n\t\t\tfunction: 'expiration_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,cAAc;AACpB,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ;EAUP,QAAQ,IAAI;EAEZ,yBAAyB,IAAI,KAAK;EAElC,gBAAgB,IAAI,OAAO,IAAI,QAAQ;EAEvC,MAAMA,OAAe,IAAI,QAAQ,EAAE,IAAI,QAAQ,CAAC;EAChD;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coupon_house.mjs","names":["data.Data"],"sources":["../../../src/contracts/haneulns_coupons/coupon_house.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * A module to support coupons for HaneulNS. This module allows secondary modules\n * (e.g. Discord) to add or remove coupons too. This allows for separation of logic\n * & ease of de-authorization in case we don't want some functionality anymore.\n *\n * Coupons are unique string codes, that can be used (based on the business rules)\n * to claim discounts in the app. Each coupon is validated towards a list of rules.\n * View `rules` module for explanation. The app is authorized on `HaneulNS` to be able\n * to claim names and add earnings to the registry.\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs, type BcsType } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as data from './data.js';\nconst $moduleName = '@haneulns/coupons::coupon_house';\nexport const CouponsApp = new MoveStruct({\n\tname: `${$moduleName}::CouponsApp`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const AppKey = new MoveStruct({\n\tname: `${$moduleName}::AppKey<phantom A>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const CouponHouse = new MoveStruct({\n\tname: `${$moduleName}::CouponHouse`,\n\tfields: {\n\t\tdata: data.Data,\n\t\tversion: bcs.u8(),\n\t\tstorage: bcs.Address,\n\t},\n});\nexport interface SetupArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tcap: RawTransactionArgument<string>;\n}\nexport interface SetupOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetupArguments\n\t\t| [haneulns: RawTransactionArgument<string>, cap: RawTransactionArgument<string>];\n}\n/** Called once to setup the CouponHouse on HaneulNS. */\nexport function setup(options: SetupOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'cap'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'setup',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ApplyCouponArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tintent: RawTransactionArgument<string>;\n\tcouponCode: RawTransactionArgument<string>;\n}\nexport interface ApplyCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| ApplyCouponArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tintent: RawTransactionArgument<string>,\n\t\t\t\tcouponCode: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function applyCoupon(options: ApplyCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, '0x1::string::String', '0x2::clock::Clock'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['haneulns', 'intent', 'couponCode'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'apply_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RegisterWithCouponArguments {\n\tSuins: RawTransactionArgument<string>;\n\tCouponCode: RawTransactionArgument<string>;\n\tDomainName: RawTransactionArgument<string>;\n\tNoYears: RawTransactionArgument<number>;\n\tPayment: RawTransactionArgument<string>;\n}\nexport interface RegisterWithCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RegisterWithCouponArguments\n\t\t| [\n\t\t\t\tSuins: RawTransactionArgument<string>,\n\t\t\t\tCouponCode: RawTransactionArgument<string>,\n\t\t\t\tDomainName: RawTransactionArgument<string>,\n\t\t\t\tNoYears: RawTransactionArgument<number>,\n\t\t\t\tPayment: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function registerWithCoupon(options: RegisterWithCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\t'0x1::string::String',\n\t\t'0x1::string::String',\n\t\t'u8',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['Suins', 'CouponCode', 'DomainName', 'NoYears', 'Payment'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'register_with_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CalculateSalePriceArguments {\n\tSuins: RawTransactionArgument<string>;\n\tPrice: RawTransactionArgument<number | bigint>;\n\tCouponCode: RawTransactionArgument<string>;\n}\nexport interface CalculateSalePriceOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CalculateSalePriceArguments\n\t\t| [\n\t\t\t\tSuins: RawTransactionArgument<string>,\n\t\t\t\tPrice: RawTransactionArgument<number | bigint>,\n\t\t\t\tCouponCode: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function calculateSalePrice(options: CalculateSalePriceOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, 'u64', '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['Suins', 'Price', 'CouponCode'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'calculate_sale_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AppDataMutArguments<A extends BcsType<any>> {\n\thaneulns: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<A>;\n}\nexport interface AppDataMutOptions<A extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppDataMutArguments<A>\n\t\t| [haneulns: RawTransactionArgument<string>, _: RawTransactionArgument<A>];\n\ttypeArguments: [string];\n}\nexport function appDataMut<A extends BcsType<any>>(options: AppDataMutOptions<A>) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, `${options.typeArguments[0]}`] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', '_'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'app_data_mut',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AuthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface AuthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AuthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, haneulns: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/**\n * Authorize an app on the coupon house. This allows to a secondary module to\n * add/remove coupons.\n */\nexport function authorizeApp(options: AuthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'authorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface DeauthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface DeauthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| DeauthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, haneulns: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** De-authorize an app. The app can no longer add or remove */\nexport function deauthorizeApp(options: DeauthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'deauthorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface SetVersionArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tversion: RawTransactionArgument<number>;\n}\nexport interface SetVersionOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetVersionArguments\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tversion: RawTransactionArgument<number>,\n\t\t ];\n}\n/**\n * An admin helper to set the version of the shared object. Registrations are only\n * possible if the latest version is being used.\n */\nexport function setVersion(options: SetVersionOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, 'u8'] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns', 'version'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'set_version',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AssertVersionIsValidArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface AssertVersionIsValidOptions {\n\tpackage?: string;\n\targuments: AssertVersionIsValidArguments | [self: RawTransactionArgument<string>];\n}\n/** Validate that the version of the app is the latest. */\nexport function assertVersionIsValid(options: AssertVersionIsValidOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [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: 'coupon_house',\n\t\t\tfunction: 'assert_version_is_valid',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdminAddCouponArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n\tkind: RawTransactionArgument<number>;\n\tamount: RawTransactionArgument<number | bigint>;\n\trules: RawTransactionArgument<string>;\n}\nexport interface AdminAddCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AdminAddCouponArguments\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tcode: RawTransactionArgument<string>,\n\t\t\t\tkind: RawTransactionArgument<number>,\n\t\t\t\tamount: RawTransactionArgument<number | bigint>,\n\t\t\t\trules: RawTransactionArgument<string>,\n\t\t ];\n}\n/**\n * To create a coupon, you have to call the PTB in the specific order\n *\n * 1. (Optional) Call rules::new_domain_length_rule(type, length) // generate a\n * length specific rule (e.g. only domains of size 5)\n * 2. Call rules::coupon_rules(...) to create the coupon's ruleset.\n */\nexport function adminAddCoupon(options: AdminAddCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, '0x1::string::String', 'u8', 'u64', null] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['_', 'haneulns', 'code', 'kind', 'amount', 'rules'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'admin_add_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdminRemoveCouponArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n}\nexport interface AdminRemoveCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AdminRemoveCouponArguments\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tcode: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function adminRemoveCoupon(options: AdminRemoveCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns', 'code'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'admin_remove_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AppAddCouponArguments {\n\tdata: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n\tkind: RawTransactionArgument<number>;\n\tamount: RawTransactionArgument<number | bigint>;\n\trules: RawTransactionArgument<string>;\n}\nexport interface AppAddCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddCouponArguments\n\t\t| [\n\t\t\t\tdata: RawTransactionArgument<string>,\n\t\t\t\tcode: RawTransactionArgument<string>,\n\t\t\t\tkind: RawTransactionArgument<number>,\n\t\t\t\tamount: RawTransactionArgument<number | bigint>,\n\t\t\t\trules: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function appAddCoupon(options: AppAddCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, '0x1::string::String', 'u8', 'u64', null] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['data', 'code', 'kind', 'amount', 'rules'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'app_add_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AppRemoveCouponArguments {\n\tdata: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n}\nexport interface AppRemoveCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AppRemoveCouponArguments\n\t\t| [data: RawTransactionArgument<string>, code: RawTransactionArgument<string>];\n}\nexport function appRemoveCoupon(options: AppRemoveCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['data', 'code'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'app_remove_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc;AACpB,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,MAAMA;EACN,SAAS,IAAI,IAAI;EACjB,SAAS,IAAI;EACb;CACD,CAAC;AAuCF,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAuB;EAAoB;CAI/E,MAAM,iBAAiB;EAAC;EAAY;EAAU;EAAa;AAC3D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"coupon_house.mjs","names":["data.Data"],"sources":["../../../src/contracts/haneulns_coupons/coupon_house.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * A module to support coupons for HaneulNS. This module allows secondary modules\n * (e.g. Discord) to add or remove coupons too. This allows for separation of logic\n * & ease of de-authorization in case we don't want some functionality anymore.\n *\n * Coupons are unique string codes, that can be used (based on the business rules)\n * to claim discounts in the app. Each coupon is validated towards a list of rules.\n * View `rules` module for explanation. The app is authorized on `HaneulNS` to be able\n * to claim names and add earnings to the registry.\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs, type BcsType } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as data from './data.js';\nconst $moduleName = '@haneulns/coupons::coupon_house';\nexport const CouponsApp = new MoveStruct({\n\tname: `${$moduleName}::CouponsApp`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const AppKey = new MoveStruct({\n\tname: `${$moduleName}::AppKey<phantom A>`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const CouponHouse = new MoveStruct({\n\tname: `${$moduleName}::CouponHouse`,\n\tfields: {\n\t\tdata: data.Data,\n\t\tversion: bcs.u8(),\n\t\tstorage: bcs.Address,\n\t},\n});\nexport interface SetupArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tcap: RawTransactionArgument<string>;\n}\nexport interface SetupOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetupArguments\n\t\t| [haneulns: RawTransactionArgument<string>, cap: RawTransactionArgument<string>];\n}\n/** Called once to setup the CouponHouse on HaneulNS. */\nexport function setup(options: SetupOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'cap'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'setup',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ApplyCouponArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tintent: RawTransactionArgument<string>;\n\tcouponCode: RawTransactionArgument<string>;\n}\nexport interface ApplyCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| ApplyCouponArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tintent: RawTransactionArgument<string>,\n\t\t\t\tcouponCode: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function applyCoupon(options: ApplyCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, '0x1::string::String', '0x2::clock::Clock'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['haneulns', 'intent', 'couponCode'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'apply_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RegisterWithCouponArguments {\n\tHaneulns: RawTransactionArgument<string>;\n\tCouponCode: RawTransactionArgument<string>;\n\tDomainName: RawTransactionArgument<string>;\n\tNoYears: RawTransactionArgument<number>;\n\tPayment: RawTransactionArgument<string>;\n}\nexport interface RegisterWithCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RegisterWithCouponArguments\n\t\t| [\n\t\t\t\tHaneulns: RawTransactionArgument<string>,\n\t\t\t\tCouponCode: RawTransactionArgument<string>,\n\t\t\t\tDomainName: RawTransactionArgument<string>,\n\t\t\t\tNoYears: RawTransactionArgument<number>,\n\t\t\t\tPayment: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function registerWithCoupon(options: RegisterWithCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\t'0x1::string::String',\n\t\t'0x1::string::String',\n\t\t'u8',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['Haneulns', 'CouponCode', 'DomainName', 'NoYears', 'Payment'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'register_with_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CalculateSalePriceArguments {\n\tHaneulns: RawTransactionArgument<string>;\n\tPrice: RawTransactionArgument<number | bigint>;\n\tCouponCode: RawTransactionArgument<string>;\n}\nexport interface CalculateSalePriceOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CalculateSalePriceArguments\n\t\t| [\n\t\t\t\tHaneulns: RawTransactionArgument<string>,\n\t\t\t\tPrice: RawTransactionArgument<number | bigint>,\n\t\t\t\tCouponCode: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function calculateSalePrice(options: CalculateSalePriceOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, 'u64', '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['Haneulns', 'Price', 'CouponCode'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'calculate_sale_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AppDataMutArguments<A extends BcsType<any>> {\n\thaneulns: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<A>;\n}\nexport interface AppDataMutOptions<A extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| AppDataMutArguments<A>\n\t\t| [haneulns: RawTransactionArgument<string>, _: RawTransactionArgument<A>];\n\ttypeArguments: [string];\n}\nexport function appDataMut<A extends BcsType<any>>(options: AppDataMutOptions<A>) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, `${options.typeArguments[0]}`] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', '_'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'app_data_mut',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface AuthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface AuthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AuthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, haneulns: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/**\n * Authorize an app on the coupon house. This allows to a secondary module to\n * add/remove coupons.\n */\nexport function authorizeApp(options: AuthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'authorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface DeauthorizeAppArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface DeauthorizeAppOptions {\n\tpackage?: string;\n\targuments:\n\t\t| DeauthorizeAppArguments\n\t\t| [_: RawTransactionArgument<string>, haneulns: RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\n/** De-authorize an app. The app can no longer add or remove */\nexport function deauthorizeApp(options: DeauthorizeAppOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'deauthorize_app',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface SetVersionArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tversion: RawTransactionArgument<number>;\n}\nexport interface SetVersionOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetVersionArguments\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tversion: RawTransactionArgument<number>,\n\t\t ];\n}\n/**\n * An admin helper to set the version of the shared object. Registrations are only\n * possible if the latest version is being used.\n */\nexport function setVersion(options: SetVersionOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, 'u8'] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns', 'version'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'set_version',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AssertVersionIsValidArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface AssertVersionIsValidOptions {\n\tpackage?: string;\n\targuments: AssertVersionIsValidArguments | [self: RawTransactionArgument<string>];\n}\n/** Validate that the version of the app is the latest. */\nexport function assertVersionIsValid(options: AssertVersionIsValidOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [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: 'coupon_house',\n\t\t\tfunction: 'assert_version_is_valid',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdminAddCouponArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n\tkind: RawTransactionArgument<number>;\n\tamount: RawTransactionArgument<number | bigint>;\n\trules: RawTransactionArgument<string>;\n}\nexport interface AdminAddCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AdminAddCouponArguments\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tcode: RawTransactionArgument<string>,\n\t\t\t\tkind: RawTransactionArgument<number>,\n\t\t\t\tamount: RawTransactionArgument<number | bigint>,\n\t\t\t\trules: RawTransactionArgument<string>,\n\t\t ];\n}\n/**\n * To create a coupon, you have to call the PTB in the specific order\n *\n * 1. (Optional) Call rules::new_domain_length_rule(type, length) // generate a\n * length specific rule (e.g. only domains of size 5)\n * 2. Call rules::coupon_rules(...) to create the coupon's ruleset.\n */\nexport function adminAddCoupon(options: AdminAddCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, '0x1::string::String', 'u8', 'u64', null] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['_', 'haneulns', 'code', 'kind', 'amount', 'rules'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'admin_add_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdminRemoveCouponArguments {\n\t_: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n}\nexport interface AdminRemoveCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AdminRemoveCouponArguments\n\t\t| [\n\t\t\t\t_: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tcode: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function adminRemoveCoupon(options: AdminRemoveCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['_', 'haneulns', 'code'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'admin_remove_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AppAddCouponArguments {\n\tdata: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n\tkind: RawTransactionArgument<number>;\n\tamount: RawTransactionArgument<number | bigint>;\n\trules: RawTransactionArgument<string>;\n}\nexport interface AppAddCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddCouponArguments\n\t\t| [\n\t\t\t\tdata: RawTransactionArgument<string>,\n\t\t\t\tcode: RawTransactionArgument<string>,\n\t\t\t\tkind: RawTransactionArgument<number>,\n\t\t\t\tamount: RawTransactionArgument<number | bigint>,\n\t\t\t\trules: RawTransactionArgument<string>,\n\t\t ];\n}\nexport function appAddCoupon(options: AppAddCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, '0x1::string::String', 'u8', 'u64', null] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['data', 'code', 'kind', 'amount', 'rules'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'app_add_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AppRemoveCouponArguments {\n\tdata: RawTransactionArgument<string>;\n\tcode: RawTransactionArgument<string>;\n}\nexport interface AppRemoveCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AppRemoveCouponArguments\n\t\t| [data: RawTransactionArgument<string>, code: RawTransactionArgument<string>];\n}\nexport function appRemoveCoupon(options: AppRemoveCouponOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/coupons';\n\tconst argumentsTypes = [null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['data', 'code'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'coupon_house',\n\t\t\tfunction: 'app_remove_coupon',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc;AACpB,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,MAAMA;EACN,SAAS,IAAI,IAAI;EACjB,SAAS,IAAI;EACb;CACD,CAAC;AAuCF,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAuB;EAAoB;CAI/E,MAAM,iBAAiB;EAAC;EAAY;EAAU;EAAa;AAC3D,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { CoinTypeDiscount,
|
|
1
|
+
import { CoinTypeDiscount, HaneulnsClientConfig, HaneulnsPriceList, NameRecord, PackageInfo } from "./types.mjs";
|
|
2
2
|
import { Transaction, TransactionObjectArgument } from "@haneullabs/haneul/transactions";
|
|
3
3
|
import { ClientWithCoreApi, HaneulClientTypes } from "@haneullabs/haneul/client";
|
|
4
4
|
|
|
5
5
|
//#region src/haneulns-client.d.ts
|
|
6
|
-
type
|
|
6
|
+
type HaneulnsExtensionOptions<Name extends string = 'haneulns'> = {
|
|
7
7
|
name?: Name;
|
|
8
8
|
packageInfo?: PackageInfo;
|
|
9
9
|
};
|
|
@@ -26,23 +26,23 @@ type SuinsExtensionOptions<Name extends string = 'haneulns'> = {
|
|
|
26
26
|
declare function haneulns<const Name extends string = 'haneulns'>({
|
|
27
27
|
name,
|
|
28
28
|
packageInfo
|
|
29
|
-
}?:
|
|
29
|
+
}?: HaneulnsExtensionOptions<Name>): {
|
|
30
30
|
name: Name;
|
|
31
|
-
register: (client: ClientWithCoreApi) =>
|
|
31
|
+
register: (client: ClientWithCoreApi) => HaneulnsClient;
|
|
32
32
|
};
|
|
33
|
-
declare class
|
|
33
|
+
declare class HaneulnsClient {
|
|
34
34
|
client: ClientWithCoreApi;
|
|
35
35
|
network: HaneulClientTypes.Network;
|
|
36
36
|
config: PackageInfo;
|
|
37
|
-
constructor(config:
|
|
37
|
+
constructor(config: HaneulnsClientConfig);
|
|
38
38
|
/**
|
|
39
39
|
* Returns the price list for HaneulNS names in the base asset.
|
|
40
40
|
*/
|
|
41
|
-
getPriceList(): Promise<
|
|
41
|
+
getPriceList(): Promise<HaneulnsPriceList>;
|
|
42
42
|
/**
|
|
43
43
|
* Returns the renewal price list for HaneulNS names in the base asset.
|
|
44
44
|
*/
|
|
45
|
-
getRenewalPriceList(): Promise<
|
|
45
|
+
getRenewalPriceList(): Promise<HaneulnsPriceList>;
|
|
46
46
|
/**
|
|
47
47
|
* Returns the coin discount list for HaneulNS names.
|
|
48
48
|
*/
|
|
@@ -50,7 +50,7 @@ declare class SuinsClient {
|
|
|
50
50
|
getNameRecord(name: string): Promise<NameRecord | null>;
|
|
51
51
|
/**
|
|
52
52
|
* Calculates the registration or renewal price for an SLD (Second Level Domain).
|
|
53
|
-
* It expects a domain name, the number of years and a `
|
|
53
|
+
* It expects a domain name, the number of years and a `HaneulnsPriceList` object,
|
|
54
54
|
* as returned from `haneulnsClient.getPriceList()` function, or `haneulns.getRenewalPriceList()` function.
|
|
55
55
|
*
|
|
56
56
|
* It throws an error:
|
|
@@ -72,5 +72,5 @@ declare class SuinsClient {
|
|
|
72
72
|
getObjectType(objectId: string): Promise<string>;
|
|
73
73
|
}
|
|
74
74
|
//#endregion
|
|
75
|
-
export {
|
|
75
|
+
export { HaneulnsClient, HaneulnsExtensionOptions, haneulns };
|
|
76
76
|
//# sourceMappingURL=haneulns-client.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneulns-client.d.mts","names":[],"sources":["../src/haneulns-client.ts"],"
|
|
1
|
+
{"version":3,"file":"haneulns-client.d.mts","names":[],"sources":["../src/haneulns-client.ts"],"mappings":";;;;;KAuBY,wBAAA;EACX,IAAA,GAAO,IAAA;EACP,WAAA,GAAc,WAAA;AAAA;;;;;;;;;;AAmBf;;;;;;;iBAAgB,QAAA,wCAAA,CAAA;EACf,IAAA;EACA;AAAA,IACE,wBAAA,CAAyB,IAAA;;qBAGP,iBAAA,KAAiB,cAAA;AAAA;AAAA,cAUzB,cAAA;EACZ,MAAA,EAAQ,iBAAA;EACR,OAAA,EAAS,iBAAA,CAAkB,OAAA;EAC3B,MAAA,EAAQ,WAAA;cAEI,MAAA,EAAQ,oBAAA;EAnBpB;;;EA4CM,YAAA,CAAA,GAAgB,OAAA,CAAQ,iBAAA;;;;EAsCxB,mBAAA,CAAA,GAAuB,OAAA,CAAQ,iBAAA;EA9EA;;;EAoH/B,mBAAA,CAAA,GAAuB,OAAA,CAAQ,gBAAA;EA2B/B,aAAA,CAAc,IAAA,WAAe,OAAA,CAAQ,UAAA;;;;;;;;;;;EAiDrC,cAAA,CAAA;IACL,IAAA;IACA,KAAA;IACA;EAAA;IAEA,IAAA;IACA,KAAA;IACA,cAAA;EAAA,IACA,OAAA;EAoCK,kBAAA,CAAmB,EAAA,EAAI,WAAA,EAAa,IAAA,UAAc,OAAA,GAAU,yBAAA,GAAyB,OAAA;EAkBrF,oBAAA,CAAA,GAAwB,OAAA;EASxB,aAAA,CAAc,QAAA,WAAgB,OAAA;AAAA"}
|
package/dist/haneulns-client.mjs
CHANGED
|
@@ -29,7 +29,7 @@ function haneulns({ name = "haneulns", packageInfo } = {}) {
|
|
|
29
29
|
return {
|
|
30
30
|
name,
|
|
31
31
|
register: (client) => {
|
|
32
|
-
return new
|
|
32
|
+
return new HaneulnsClient({
|
|
33
33
|
client,
|
|
34
34
|
network: client.network,
|
|
35
35
|
packageInfo
|
|
@@ -37,7 +37,7 @@ function haneulns({ name = "haneulns", packageInfo } = {}) {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
var
|
|
40
|
+
var HaneulnsClient = class {
|
|
41
41
|
constructor(config) {
|
|
42
42
|
this.client = config.client;
|
|
43
43
|
this.network = config.network || "mainnet";
|
|
@@ -51,7 +51,7 @@ var SuinsClient = class {
|
|
|
51
51
|
*/
|
|
52
52
|
async getPriceList() {
|
|
53
53
|
var _result$dynamicField;
|
|
54
|
-
if (!this.config.haneulns) throw new Error("
|
|
54
|
+
if (!this.config.haneulns) throw new Error("Haneulns object ID is not set");
|
|
55
55
|
if (!this.config.packageId) throw new Error("Price list config not found");
|
|
56
56
|
const configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::PricingConfig>`;
|
|
57
57
|
const nameBytes = ConfigKey.serialize({ dummy_field: false }).toBytes();
|
|
@@ -77,7 +77,7 @@ var SuinsClient = class {
|
|
|
77
77
|
*/
|
|
78
78
|
async getRenewalPriceList() {
|
|
79
79
|
var _result$dynamicField2;
|
|
80
|
-
if (!this.config.haneulns) throw new Error("
|
|
80
|
+
if (!this.config.haneulns) throw new Error("Haneulns object ID is not set");
|
|
81
81
|
if (!this.config.packageId) throw new Error("Price list config not found");
|
|
82
82
|
const configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::RenewalConfig>`;
|
|
83
83
|
const nameBytes = ConfigKey.serialize({ dummy_field: false }).toBytes();
|
|
@@ -103,7 +103,7 @@ var SuinsClient = class {
|
|
|
103
103
|
*/
|
|
104
104
|
async getCoinTypeDiscount() {
|
|
105
105
|
var _result$dynamicField3;
|
|
106
|
-
if (!this.config.haneulns) throw new Error("
|
|
106
|
+
if (!this.config.haneulns) throw new Error("Haneulns object ID is not set");
|
|
107
107
|
if (!this.config.packageId) throw new Error("Price list config not found");
|
|
108
108
|
const configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.payments.packageId}::payments::PaymentsConfig>`;
|
|
109
109
|
const result = await this.client.core.getDynamicField({
|
|
@@ -126,7 +126,7 @@ var SuinsClient = class {
|
|
|
126
126
|
async getNameRecord(name) {
|
|
127
127
|
var _result$dynamicField$;
|
|
128
128
|
if (!isValidHaneulNSName(name)) throw new Error("Invalid HaneulNS name");
|
|
129
|
-
if (!this.config.registryTableId) throw new Error("
|
|
129
|
+
if (!this.config.registryTableId) throw new Error("Haneulns package ID is not set");
|
|
130
130
|
const labels = normalizeHaneulNSName(name, "dot").split(".").reverse();
|
|
131
131
|
const result = await this.client.core.getDynamicField({
|
|
132
132
|
parentId: this.config.registryTableId,
|
|
@@ -153,7 +153,7 @@ var SuinsClient = class {
|
|
|
153
153
|
}
|
|
154
154
|
/**
|
|
155
155
|
* Calculates the registration or renewal price for an SLD (Second Level Domain).
|
|
156
|
-
* It expects a domain name, the number of years and a `
|
|
156
|
+
* It expects a domain name, the number of years and a `HaneulnsPriceList` object,
|
|
157
157
|
* as returned from `haneulnsClient.getPriceList()` function, or `haneulns.getRenewalPriceList()` function.
|
|
158
158
|
*
|
|
159
159
|
* It throws an error:
|
|
@@ -201,5 +201,5 @@ var SuinsClient = class {
|
|
|
201
201
|
};
|
|
202
202
|
|
|
203
203
|
//#endregion
|
|
204
|
-
export {
|
|
204
|
+
export { HaneulnsClient, haneulns };
|
|
205
205
|
//# sourceMappingURL=haneulns-client.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneulns-client.mjs","names":["NameRecordBcs"],"sources":["../src/haneulns-client.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { ClientWithCoreApi, HaneulClientTypes } from '@haneullabs/haneul/client';\nimport type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';\nimport { isValidHaneulNSName, normalizeHaneulNSName } from '@haneullabs/haneul/utils';\n\nimport { mainPackage } from './constants.js';\nimport { isSubName, validateYears } from './helpers.js';\nimport { HaneulPriceServiceConnection, HaneulPythClient } from './pyth/pyth.js';\nimport type {\n\tCoinTypeDiscount,\n\tNameRecord,\n\tPackageInfo,\n\tSuinsClientConfig,\n\tSuinsPriceList,\n} from './types.js';\n\nimport { ConfigKey } from './contracts/haneulns/haneulns.js';\nimport { Domain } from './contracts/haneulns/domain.js';\nimport { NameRecord as NameRecordBcs } from './contracts/haneulns/name_record.js';\nimport { PricingConfig, RenewalConfig } from './contracts/haneulns/pricing_config.js';\nimport { PaymentsConfig } from './contracts/haneulns_payments/payments.js';\n\nexport type SuinsExtensionOptions<Name extends string = 'haneulns'> = {\n\tname?: Name;\n\tpackageInfo?: PackageInfo;\n};\n\n/**\n * Creates a HaneulNS client extension that can be used with `client.$extend()`.\n *\n * @example\n * ```ts\n * import { HaneulJsonRpcClient, getJsonRpcFullnodeUrl } from '@haneullabs/haneul/jsonRpc';\n * import { haneulns } from '@haneullabs/haneulns';\n *\n * const client = new HaneulJsonRpcClient({\n * url: getJsonRpcFullnodeUrl('mainnet'),\n * network: 'mainnet',\n * }).$extend(haneulns());\n *\n * const nameRecord = await client.haneulns.getNameRecord('example.haneul');\n * ```\n */\nexport function haneulns<const Name extends string = 'haneulns'>({\n\tname = 'haneulns' as Name,\n\tpackageInfo,\n}: SuinsExtensionOptions<Name> = {}) {\n\treturn {\n\t\tname,\n\t\tregister: (client: ClientWithCoreApi) => {\n\t\t\treturn new SuinsClient({\n\t\t\t\tclient,\n\t\t\t\tnetwork: client.network,\n\t\t\t\tpackageInfo,\n\t\t\t});\n\t\t},\n\t};\n}\n\nexport class SuinsClient {\n\tclient: ClientWithCoreApi;\n\tnetwork: HaneulClientTypes.Network;\n\tconfig: PackageInfo;\n\n\tconstructor(config: SuinsClientConfig) {\n\t\tthis.client = config.client;\n\t\tthis.network = config.network || 'mainnet';\n\n\t\tif (config.packageInfo) {\n\t\t\tthis.config = config.packageInfo;\n\t\t} else if (this.network === 'mainnet') {\n\t\t\tthis.config = mainPackage.mainnet;\n\t\t} else if (this.network === 'testnet') {\n\t\t\tthis.config = mainPackage.testnet;\n\t\t} else {\n\t\t\tthrow new Error('Invalid network');\n\t\t}\n\t}\n\n\t/**\n\t * Returns the price list for HaneulNS names in the base asset.\n\t */\n\n\t// Format:\n\t// {\n\t// \t[ 3, 3 ] => 500000000,\n\t// \t[ 4, 4 ] => 100000000,\n\t// \t[ 5, 63 ] => 20000000\n\t// }\n\tasync getPriceList(): Promise<SuinsPriceList> {\n\t\tif (!this.config.haneulns) throw new Error('Suins object ID is not set');\n\t\tif (!this.config.packageId) throw new Error('Price list config not found');\n\n\t\tconst configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::PricingConfig>`;\n\t\tconst nameBytes = ConfigKey.serialize({ dummy_field: false }).toBytes();\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.haneulns,\n\t\t\tname: { type: configType, bcs: nameBytes },\n\t\t});\n\n\t\tif (!result.dynamicField?.value?.bcs) {\n\t\t\tthrow new Error('Price list not found or content is invalid');\n\t\t}\n\n\t\tconst pricingConfig = PricingConfig.parse(result.dynamicField.value.bcs);\n\t\tconst priceMap = new Map();\n\n\t\tfor (const entry of pricingConfig.pricing.contents) {\n\t\t\tconst key = [Number(entry.key[0]), Number(entry.key[1])];\n\t\t\tconst value = Number(entry.value);\n\t\t\tpriceMap.set(key, value);\n\t\t}\n\n\t\treturn priceMap;\n\t}\n\n\t/**\n\t * Returns the renewal price list for HaneulNS names in the base asset.\n\t */\n\n\t// Format:\n\t// {\n\t// \t[ 3, 3 ] => 500000000,\n\t// \t[ 4, 4 ] => 100000000,\n\t// \t[ 5, 63 ] => 20000000\n\t// }\n\tasync getRenewalPriceList(): Promise<SuinsPriceList> {\n\t\tif (!this.config.haneulns) throw new Error('Suins object ID is not set');\n\t\tif (!this.config.packageId) throw new Error('Price list config not found');\n\n\t\tconst configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::RenewalConfig>`;\n\t\tconst nameBytes = ConfigKey.serialize({ dummy_field: false }).toBytes();\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.haneulns,\n\t\t\tname: { type: configType, bcs: nameBytes },\n\t\t});\n\n\t\tif (!result.dynamicField?.value?.bcs) {\n\t\t\tthrow new Error('Price list not found or content structure is invalid');\n\t\t}\n\n\t\tconst renewalConfig = RenewalConfig.parse(result.dynamicField.value.bcs);\n\t\tconst priceMap = new Map();\n\n\t\tfor (const entry of renewalConfig.config.pricing.contents) {\n\t\t\tconst key = [Number(entry.key[0]), Number(entry.key[1])];\n\t\t\tconst value = Number(entry.value);\n\t\t\tpriceMap.set(key, value);\n\t\t}\n\n\t\treturn priceMap;\n\t}\n\n\t/**\n\t * Returns the coin discount list for HaneulNS names.\n\t */\n\n\t// Format:\n\t// {\n\t// \t'b48aac3f53bab328e1eb4c5b3c34f55e760f2fb3f2305ee1a474878d80f650f0::TESTUSDC::TESTUSDC' => 0,\n\t// \t'0000000000000000000000000000000000000000000000000000000000000002::haneul::HANEUL' => 0,\n\t// \t'b48aac3f53bab328e1eb4c5b3c34f55e760f2fb3f2305ee1a474878d80f650f0::TESTNS::TESTNS' => 25\n\t// }\n\tasync getCoinTypeDiscount(): Promise<CoinTypeDiscount> {\n\t\tif (!this.config.haneulns) throw new Error('Suins object ID is not set');\n\t\tif (!this.config.packageId) throw new Error('Price list config not found');\n\n\t\tconst configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.payments.packageId}::payments::PaymentsConfig>`;\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.haneulns,\n\t\t\tname: { type: configType, bcs: ConfigKey.serialize({ dummy_field: false }).toBytes() },\n\t\t});\n\n\t\tif (!result.dynamicField?.value?.bcs) {\n\t\t\tthrow new Error('Payments config not found or content structure is invalid');\n\t\t}\n\n\t\tconst paymentsConfig = PaymentsConfig.parse(result.dynamicField.value.bcs);\n\t\tconst discountMap = new Map();\n\n\t\tfor (const entry of paymentsConfig.currencies.contents) {\n\t\t\tconst key = entry.key.name;\n\t\t\tconst value = Number(entry.value.discount_percentage);\n\t\t\tdiscountMap.set(key, value);\n\t\t}\n\n\t\treturn discountMap;\n\t}\n\n\tasync getNameRecord(name: string): Promise<NameRecord | null> {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tif (!this.config.registryTableId) throw new Error('Suins package ID is not set');\n\n\t\tconst labels = normalizeHaneulNSName(name, 'dot').split('.').reverse();\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.registryTableId,\n\t\t\tname: {\n\t\t\t\ttype: `${this.config.packageIdV1}::domain::Domain`,\n\t\t\t\tbcs: Domain.serialize({ labels }).toBytes(),\n\t\t\t},\n\t\t});\n\n\t\tif (!result.dynamicField) return null;\n\n\t\tif (!result.dynamicField.value?.bcs) {\n\t\t\tthrow new Error('Name record not found. This domain is not registered.');\n\t\t}\n\n\t\tconst record = NameRecordBcs.parse(result.dynamicField.value.bcs);\n\n\t\tconst data: Record<string, string> = {};\n\t\tfor (const entry of record.data.contents) {\n\t\t\tdata[entry.key] = entry.value;\n\t\t}\n\n\t\treturn {\n\t\t\tname,\n\t\t\tnftId: record.nft_id,\n\t\t\ttargetAddress: record.target_address ?? '',\n\t\t\texpirationTimestampMs: Number(record.expiration_timestamp_ms),\n\t\t\tdata,\n\t\t\tavatar: data.avatar,\n\t\t\tcontentHash: data.content_hash,\n\t\t\twalrusSiteId: data.walrus_site_id,\n\t\t};\n\t}\n\n\t/**\n\t * Calculates the registration or renewal price for an SLD (Second Level Domain).\n\t * It expects a domain name, the number of years and a `SuinsPriceList` object,\n\t * as returned from `haneulnsClient.getPriceList()` function, or `haneulns.getRenewalPriceList()` function.\n\t *\n\t * It throws an error:\n\t * 1. if the name is a subdomain\n\t * 2. if the name is not a valid HaneulNS name\n\t * 3. if the years are not between 1 and 5\n\t */\n\tasync calculatePrice({\n\t\tname,\n\t\tyears,\n\t\tisRegistration = true,\n\t}: {\n\t\tname: string;\n\t\tyears: number;\n\t\tisRegistration?: boolean;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) {\n\t\t\tthrow new Error('Invalid HaneulNS name');\n\t\t}\n\t\tvalidateYears(years);\n\n\t\tif (isSubName(name)) {\n\t\t\tthrow new Error('Subdomains do not have a registration fee');\n\t\t}\n\n\t\tconst length = normalizeHaneulNSName(name, 'dot').split('.')[0].length;\n\t\tconst priceList = await this.getPriceList();\n\t\tconst renewalPriceList = await this.getRenewalPriceList();\n\t\tlet yearsRemain = years;\n\t\tlet price = 0;\n\n\t\tif (isRegistration) {\n\t\t\tfor (const [[minLength, maxLength], pricePerYear] of priceList.entries()) {\n\t\t\t\tif (length >= minLength && length <= maxLength) {\n\t\t\t\t\tprice += pricePerYear; // Registration is always 1 year\n\t\t\t\t\tyearsRemain -= 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const [[minLength, maxLength], pricePerYear] of renewalPriceList.entries()) {\n\t\t\tif (length >= minLength && length <= maxLength) {\n\t\t\t\tprice += yearsRemain * pricePerYear;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn price;\n\t}\n\n\tasync getPriceInfoObject(tx: Transaction, feed: string, feeCoin?: TransactionObjectArgument) {\n\t\tconst endpoint =\n\t\t\tthis.network === 'testnet'\n\t\t\t\t? 'https://hermes-beta.pyth.network'\n\t\t\t\t: 'https://hermes.pyth.network';\n\t\tconst connection = new HaneulPriceServiceConnection(endpoint);\n\t\tconst priceIDs = [feed];\n\t\tconst priceUpdateData = await connection.getPriceFeedsUpdateData(priceIDs);\n\n\t\tconst client = new HaneulPythClient(\n\t\t\tthis.client,\n\t\t\tthis.config.pyth.pythStateId,\n\t\t\tthis.config.pyth.wormholeStateId,\n\t\t);\n\n\t\treturn client.updatePriceFeeds(tx, priceUpdateData, priceIDs, feeCoin);\n\t}\n\n\tasync getPythBaseUpdateFee(): Promise<number> {\n\t\tconst client = new HaneulPythClient(\n\t\t\tthis.client,\n\t\t\tthis.config.pyth.pythStateId,\n\t\t\tthis.config.pyth.wormholeStateId,\n\t\t);\n\t\treturn client.getBaseUpdateFee();\n\t}\n\n\tasync getObjectType(objectId: string) {\n\t\tconst result = await this.client.core.getObject({ objectId });\n\n\t\tif (result.object?.type) {\n\t\t\treturn result.object.type;\n\t\t}\n\n\t\tthrow new Error(`Type information not found for object ID: ${objectId}`);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"haneulns-client.mjs","names":["NameRecordBcs"],"sources":["../src/haneulns-client.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { ClientWithCoreApi, HaneulClientTypes } from '@haneullabs/haneul/client';\nimport type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';\nimport { isValidHaneulNSName, normalizeHaneulNSName } from '@haneullabs/haneul/utils';\n\nimport { mainPackage } from './constants.js';\nimport { isSubName, validateYears } from './helpers.js';\nimport { HaneulPriceServiceConnection, HaneulPythClient } from './pyth/pyth.js';\nimport type {\n\tCoinTypeDiscount,\n\tNameRecord,\n\tPackageInfo,\n\tHaneulnsClientConfig,\n\tHaneulnsPriceList,\n} from './types.js';\n\nimport { ConfigKey } from './contracts/haneulns/haneulns.js';\nimport { Domain } from './contracts/haneulns/domain.js';\nimport { NameRecord as NameRecordBcs } from './contracts/haneulns/name_record.js';\nimport { PricingConfig, RenewalConfig } from './contracts/haneulns/pricing_config.js';\nimport { PaymentsConfig } from './contracts/haneulns_payments/payments.js';\n\nexport type HaneulnsExtensionOptions<Name extends string = 'haneulns'> = {\n\tname?: Name;\n\tpackageInfo?: PackageInfo;\n};\n\n/**\n * Creates a HaneulNS client extension that can be used with `client.$extend()`.\n *\n * @example\n * ```ts\n * import { HaneulJsonRpcClient, getJsonRpcFullnodeUrl } from '@haneullabs/haneul/jsonRpc';\n * import { haneulns } from '@haneullabs/haneulns';\n *\n * const client = new HaneulJsonRpcClient({\n * url: getJsonRpcFullnodeUrl('mainnet'),\n * network: 'mainnet',\n * }).$extend(haneulns());\n *\n * const nameRecord = await client.haneulns.getNameRecord('example.haneul');\n * ```\n */\nexport function haneulns<const Name extends string = 'haneulns'>({\n\tname = 'haneulns' as Name,\n\tpackageInfo,\n}: HaneulnsExtensionOptions<Name> = {}) {\n\treturn {\n\t\tname,\n\t\tregister: (client: ClientWithCoreApi) => {\n\t\t\treturn new HaneulnsClient({\n\t\t\t\tclient,\n\t\t\t\tnetwork: client.network,\n\t\t\t\tpackageInfo,\n\t\t\t});\n\t\t},\n\t};\n}\n\nexport class HaneulnsClient {\n\tclient: ClientWithCoreApi;\n\tnetwork: HaneulClientTypes.Network;\n\tconfig: PackageInfo;\n\n\tconstructor(config: HaneulnsClientConfig) {\n\t\tthis.client = config.client;\n\t\tthis.network = config.network || 'mainnet';\n\n\t\tif (config.packageInfo) {\n\t\t\tthis.config = config.packageInfo;\n\t\t} else if (this.network === 'mainnet') {\n\t\t\tthis.config = mainPackage.mainnet;\n\t\t} else if (this.network === 'testnet') {\n\t\t\tthis.config = mainPackage.testnet;\n\t\t} else {\n\t\t\tthrow new Error('Invalid network');\n\t\t}\n\t}\n\n\t/**\n\t * Returns the price list for HaneulNS names in the base asset.\n\t */\n\n\t// Format:\n\t// {\n\t// \t[ 3, 3 ] => 500000000,\n\t// \t[ 4, 4 ] => 100000000,\n\t// \t[ 5, 63 ] => 20000000\n\t// }\n\tasync getPriceList(): Promise<HaneulnsPriceList> {\n\t\tif (!this.config.haneulns) throw new Error('Haneulns object ID is not set');\n\t\tif (!this.config.packageId) throw new Error('Price list config not found');\n\n\t\tconst configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::PricingConfig>`;\n\t\tconst nameBytes = ConfigKey.serialize({ dummy_field: false }).toBytes();\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.haneulns,\n\t\t\tname: { type: configType, bcs: nameBytes },\n\t\t});\n\n\t\tif (!result.dynamicField?.value?.bcs) {\n\t\t\tthrow new Error('Price list not found or content is invalid');\n\t\t}\n\n\t\tconst pricingConfig = PricingConfig.parse(result.dynamicField.value.bcs);\n\t\tconst priceMap = new Map();\n\n\t\tfor (const entry of pricingConfig.pricing.contents) {\n\t\t\tconst key = [Number(entry.key[0]), Number(entry.key[1])];\n\t\t\tconst value = Number(entry.value);\n\t\t\tpriceMap.set(key, value);\n\t\t}\n\n\t\treturn priceMap;\n\t}\n\n\t/**\n\t * Returns the renewal price list for HaneulNS names in the base asset.\n\t */\n\n\t// Format:\n\t// {\n\t// \t[ 3, 3 ] => 500000000,\n\t// \t[ 4, 4 ] => 100000000,\n\t// \t[ 5, 63 ] => 20000000\n\t// }\n\tasync getRenewalPriceList(): Promise<HaneulnsPriceList> {\n\t\tif (!this.config.haneulns) throw new Error('Haneulns object ID is not set');\n\t\tif (!this.config.packageId) throw new Error('Price list config not found');\n\n\t\tconst configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.packageIdPricing}::pricing_config::RenewalConfig>`;\n\t\tconst nameBytes = ConfigKey.serialize({ dummy_field: false }).toBytes();\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.haneulns,\n\t\t\tname: { type: configType, bcs: nameBytes },\n\t\t});\n\n\t\tif (!result.dynamicField?.value?.bcs) {\n\t\t\tthrow new Error('Price list not found or content structure is invalid');\n\t\t}\n\n\t\tconst renewalConfig = RenewalConfig.parse(result.dynamicField.value.bcs);\n\t\tconst priceMap = new Map();\n\n\t\tfor (const entry of renewalConfig.config.pricing.contents) {\n\t\t\tconst key = [Number(entry.key[0]), Number(entry.key[1])];\n\t\t\tconst value = Number(entry.value);\n\t\t\tpriceMap.set(key, value);\n\t\t}\n\n\t\treturn priceMap;\n\t}\n\n\t/**\n\t * Returns the coin discount list for HaneulNS names.\n\t */\n\n\t// Format:\n\t// {\n\t// \t'b48aac3f53bab328e1eb4c5b3c34f55e760f2fb3f2305ee1a474878d80f650f0::TESTUSDC::TESTUSDC' => 0,\n\t// \t'0000000000000000000000000000000000000000000000000000000000000002::haneul::HANEUL' => 0,\n\t// \t'b48aac3f53bab328e1eb4c5b3c34f55e760f2fb3f2305ee1a474878d80f650f0::TESTNS::TESTNS' => 25\n\t// }\n\tasync getCoinTypeDiscount(): Promise<CoinTypeDiscount> {\n\t\tif (!this.config.haneulns) throw new Error('Haneulns object ID is not set');\n\t\tif (!this.config.packageId) throw new Error('Price list config not found');\n\n\t\tconst configType = `${this.config.packageIdV1}::haneulns::ConfigKey<${this.config.payments.packageId}::payments::PaymentsConfig>`;\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.haneulns,\n\t\t\tname: { type: configType, bcs: ConfigKey.serialize({ dummy_field: false }).toBytes() },\n\t\t});\n\n\t\tif (!result.dynamicField?.value?.bcs) {\n\t\t\tthrow new Error('Payments config not found or content structure is invalid');\n\t\t}\n\n\t\tconst paymentsConfig = PaymentsConfig.parse(result.dynamicField.value.bcs);\n\t\tconst discountMap = new Map();\n\n\t\tfor (const entry of paymentsConfig.currencies.contents) {\n\t\t\tconst key = entry.key.name;\n\t\t\tconst value = Number(entry.value.discount_percentage);\n\t\t\tdiscountMap.set(key, value);\n\t\t}\n\n\t\treturn discountMap;\n\t}\n\n\tasync getNameRecord(name: string): Promise<NameRecord | null> {\n\t\tif (!isValidHaneulNSName(name)) throw new Error('Invalid HaneulNS name');\n\t\tif (!this.config.registryTableId) throw new Error('Haneulns package ID is not set');\n\n\t\tconst labels = normalizeHaneulNSName(name, 'dot').split('.').reverse();\n\n\t\tconst result = await this.client.core.getDynamicField({\n\t\t\tparentId: this.config.registryTableId,\n\t\t\tname: {\n\t\t\t\ttype: `${this.config.packageIdV1}::domain::Domain`,\n\t\t\t\tbcs: Domain.serialize({ labels }).toBytes(),\n\t\t\t},\n\t\t});\n\n\t\tif (!result.dynamicField) return null;\n\n\t\tif (!result.dynamicField.value?.bcs) {\n\t\t\tthrow new Error('Name record not found. This domain is not registered.');\n\t\t}\n\n\t\tconst record = NameRecordBcs.parse(result.dynamicField.value.bcs);\n\n\t\tconst data: Record<string, string> = {};\n\t\tfor (const entry of record.data.contents) {\n\t\t\tdata[entry.key] = entry.value;\n\t\t}\n\n\t\treturn {\n\t\t\tname,\n\t\t\tnftId: record.nft_id,\n\t\t\ttargetAddress: record.target_address ?? '',\n\t\t\texpirationTimestampMs: Number(record.expiration_timestamp_ms),\n\t\t\tdata,\n\t\t\tavatar: data.avatar,\n\t\t\tcontentHash: data.content_hash,\n\t\t\twalrusSiteId: data.walrus_site_id,\n\t\t};\n\t}\n\n\t/**\n\t * Calculates the registration or renewal price for an SLD (Second Level Domain).\n\t * It expects a domain name, the number of years and a `HaneulnsPriceList` object,\n\t * as returned from `haneulnsClient.getPriceList()` function, or `haneulns.getRenewalPriceList()` function.\n\t *\n\t * It throws an error:\n\t * 1. if the name is a subdomain\n\t * 2. if the name is not a valid HaneulNS name\n\t * 3. if the years are not between 1 and 5\n\t */\n\tasync calculatePrice({\n\t\tname,\n\t\tyears,\n\t\tisRegistration = true,\n\t}: {\n\t\tname: string;\n\t\tyears: number;\n\t\tisRegistration?: boolean;\n\t}) {\n\t\tif (!isValidHaneulNSName(name)) {\n\t\t\tthrow new Error('Invalid HaneulNS name');\n\t\t}\n\t\tvalidateYears(years);\n\n\t\tif (isSubName(name)) {\n\t\t\tthrow new Error('Subdomains do not have a registration fee');\n\t\t}\n\n\t\tconst length = normalizeHaneulNSName(name, 'dot').split('.')[0].length;\n\t\tconst priceList = await this.getPriceList();\n\t\tconst renewalPriceList = await this.getRenewalPriceList();\n\t\tlet yearsRemain = years;\n\t\tlet price = 0;\n\n\t\tif (isRegistration) {\n\t\t\tfor (const [[minLength, maxLength], pricePerYear] of priceList.entries()) {\n\t\t\t\tif (length >= minLength && length <= maxLength) {\n\t\t\t\t\tprice += pricePerYear; // Registration is always 1 year\n\t\t\t\t\tyearsRemain -= 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const [[minLength, maxLength], pricePerYear] of renewalPriceList.entries()) {\n\t\t\tif (length >= minLength && length <= maxLength) {\n\t\t\t\tprice += yearsRemain * pricePerYear;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn price;\n\t}\n\n\tasync getPriceInfoObject(tx: Transaction, feed: string, feeCoin?: TransactionObjectArgument) {\n\t\tconst endpoint =\n\t\t\tthis.network === 'testnet'\n\t\t\t\t? 'https://hermes-beta.pyth.network'\n\t\t\t\t: 'https://hermes.pyth.network';\n\t\tconst connection = new HaneulPriceServiceConnection(endpoint);\n\t\tconst priceIDs = [feed];\n\t\tconst priceUpdateData = await connection.getPriceFeedsUpdateData(priceIDs);\n\n\t\tconst client = new HaneulPythClient(\n\t\t\tthis.client,\n\t\t\tthis.config.pyth.pythStateId,\n\t\t\tthis.config.pyth.wormholeStateId,\n\t\t);\n\n\t\treturn client.updatePriceFeeds(tx, priceUpdateData, priceIDs, feeCoin);\n\t}\n\n\tasync getPythBaseUpdateFee(): Promise<number> {\n\t\tconst client = new HaneulPythClient(\n\t\t\tthis.client,\n\t\t\tthis.config.pyth.pythStateId,\n\t\t\tthis.config.pyth.wormholeStateId,\n\t\t);\n\t\treturn client.getBaseUpdateFee();\n\t}\n\n\tasync getObjectType(objectId: string) {\n\t\tconst result = await this.client.core.getObject({ objectId });\n\n\t\tif (result.object?.type) {\n\t\t\treturn result.object.type;\n\t\t}\n\n\t\tthrow new Error(`Type information not found for object ID: ${objectId}`);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { DiscountInfo, ReceiptParams, RegistrationParams, RenewalParams } from "./types.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { HaneulnsClient } from "./haneulns-client.mjs";
|
|
3
3
|
import * as _haneullabs_haneul_transactions0 from "@haneullabs/haneul/transactions";
|
|
4
4
|
import { Transaction, TransactionObjectArgument, TransactionObjectInput } from "@haneullabs/haneul/transactions";
|
|
5
5
|
|
|
6
6
|
//#region src/haneulns-transaction.d.ts
|
|
7
|
-
declare class
|
|
8
|
-
haneulnsClient:
|
|
7
|
+
declare class HaneulnsTransaction {
|
|
8
|
+
haneulnsClient: HaneulnsClient;
|
|
9
9
|
transaction: Transaction;
|
|
10
|
-
constructor(client:
|
|
10
|
+
constructor(client: HaneulnsClient, transaction: Transaction);
|
|
11
11
|
/**
|
|
12
12
|
* Registers a domain for a number of years.
|
|
13
13
|
*/
|
|
@@ -51,7 +51,7 @@ declare class SuinsTransaction {
|
|
|
51
51
|
}): _haneullabs_haneul_transactions0.TransactionResult;
|
|
52
52
|
/**
|
|
53
53
|
* Builds the PTB to create a leaf subdomain.
|
|
54
|
-
* Parent can be a `
|
|
54
|
+
* Parent can be a `HaneulnsRegistration` or a `SubDomainRegistration` object.
|
|
55
55
|
* Can be passed in as an ID or a TransactionArgument.
|
|
56
56
|
*/
|
|
57
57
|
createLeafSubName({
|
|
@@ -140,5 +140,5 @@ declare class SuinsTransaction {
|
|
|
140
140
|
}): void;
|
|
141
141
|
}
|
|
142
142
|
//#endregion
|
|
143
|
-
export {
|
|
143
|
+
export { HaneulnsTransaction };
|
|
144
144
|
//# sourceMappingURL=haneulns-transaction.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haneulns-transaction.d.mts","names":[],"sources":["../src/haneulns-transaction.ts"],"
|
|
1
|
+
{"version":3,"file":"haneulns-transaction.d.mts","names":[],"sources":["../src/haneulns-transaction.ts"],"mappings":";;;;;;cAuBa,mBAAA;EACZ,cAAA,EAAgB,cAAA;EAChB,WAAA,EAAa,WAAA;cAED,MAAA,EAAQ,cAAA,EAAgB,WAAA,EAAa,WAAA;EAJlB;;;EAY/B,QAAA,CAAS,MAAA,EAAQ,kBAAA,GAAqB,yBAAA;EARlB;;;EAqDpB,KAAA,CAAM,MAAA,EAAQ,aAAA;EA2Bd,gBAAA,CAAiB,MAAA,WAAiB,yBAAA;EAUlC,WAAA,CAAY,GAAA,EAAK,sBAAA,EAAwB,KAAA,WAAgB,yBAAA;EAUzD,cAAA,CACC,UAAA,EAAY,yBAAA,EACZ,WAAA,UACA,iBAAA,WACE,yBAAA;EAeH,iBAAA,CACC,aAAA,EAAe,yBAAA,EACf,UAAA,EAAY,yBAAA,EACZ,WAAA,WACE,yBAAA;EAgBH,aAAA,CACC,aAAA,EAAe,yBAAA,EACf,UAAA,EAAY,yBAAA,EACZ,WAAA,UACA,iBAAA,UACA,SAAA,YACE,yBAAA;EAkBH,gBAAA,CAAiB,OAAA,EAAS,yBAAA,GAA4B,yBAAA;EAUtD,aAAA,CACC,OAAA,EAAS,yBAAA,EACT,GAAA,EAAK,sBAAA,GACH,yBAAA;EAUH,2BAAA,CACC,aAAA,EAAe,yBAAA,EACf,WAAA,WACE,yBAAA;EAWH,eAAA,CAAgB,MAAA,EAAQ,aAAA,GAAgB,yBAAA;EA5DxB;;;EA+FhB,WAAA,CAAY,MAAA,EAAQ,yBAAA,EAA2B,UAAA,WAAqB,yBAAA;EAxEd;;;EAqFtD,aAAA,CAAc,MAAA,EAAQ,yBAAA,EAA2B,YAAA,EAAc,YAAA;EA7D/C;;;EAgGhB,aAAA,CAAA;IACC,SAAA;IACA,IAAA;IACA,qBAAA;IACA,kBAAA;IACA;EAAA;IAEA,SAAA,EAAW,sBAAA;IACX,IAAA;IACA,qBAAA;IACA,kBAAA;IACA,kBAAA;EAAA,IAJiC,gCAAA,CAKjC,iBAAA;EATA;;;;;EAyCD,iBAAA,CAAA;IACC,SAAA;IACA,IAAA;IACA;EAAA;IAEA,SAAA,EAAW,sBAAA;IACX,IAAA;IACA,aAAA;EAAA;EA2B8B;;;EAA/B,iBAAA,CAAA;IAAoB,SAAA;IAAW;EAAA;IAAU,SAAA,EAAW,sBAAA;IAAwB,IAAA;EAAA;EA0E3E;;;EAhDD,gBAAA,CAAA;IACC,GAAA;IAAA;IACA,OAAA;IACA;EAAA;IAEA,GAAA,EAAK,sBAAA;IACL,OAAA;IACA,SAAA;EAAA;EAuGA;;;EAlFD,UAAA,CAAW,IAAA;EAiHQ;;;EA/FnB,SAAA,CAAA;IACC,SAAA;IACA,IAAA;IACA,kBAAA;IACA;EAAA;IAEA,SAAA,EAAW,sBAAA;IACX,IAAA;IACA,kBAAA;IACA,kBAAA;EAAA;EA1bmB;;;EAsdpB,gBAAA,CAAA;IACC,GAAA;IACA;EAAA;IAEA,GAAA,EAAK,sBAAA;IACL,qBAAA;EAAA;EAndqC;;;EAsetC,WAAA,CAAA;IACC,GAAA;IACA,KAAA;IACA,GAAA;IACA;EAAA;IAEA,GAAA,EAAK,sBAAA;IACL,KAAA;IACA,GAAA;IACA,SAAA;EAAA;EA7ZW;;;EAsbZ,WAAA,CAAA;IAAc,GAAA;IAAK;EAAA;IAAe,GAAA,EAAK,sBAAA;IAAwB,SAAA;EAAA;AAAA"}
|
|
@@ -10,7 +10,7 @@ import { HANEUL_CLOCK_OBJECT_ID, isValidHaneulNSName, normalizeHaneulNSName } fr
|
|
|
10
10
|
import { bcs } from "@haneullabs/haneul/bcs";
|
|
11
11
|
|
|
12
12
|
//#region src/haneulns-transaction.ts
|
|
13
|
-
var
|
|
13
|
+
var HaneulnsTransaction = class {
|
|
14
14
|
constructor(client, transaction) {
|
|
15
15
|
this.haneulnsClient = client;
|
|
16
16
|
this.transaction = transaction;
|
|
@@ -234,7 +234,7 @@ var SuinsTransaction = class {
|
|
|
234
234
|
}
|
|
235
235
|
/**
|
|
236
236
|
* Builds the PTB to create a leaf subdomain.
|
|
237
|
-
* Parent can be a `
|
|
237
|
+
* Parent can be a `HaneulnsRegistration` or a `SubDomainRegistration` object.
|
|
238
238
|
* Can be passed in as an ID or a TransactionArgument.
|
|
239
239
|
*/
|
|
240
240
|
createLeafSubName({ parentNft, name, targetAddress }) {
|
|
@@ -380,5 +380,5 @@ var SuinsTransaction = class {
|
|
|
380
380
|
};
|
|
381
381
|
|
|
382
382
|
//#endregion
|
|
383
|
-
export {
|
|
383
|
+
export { HaneulnsTransaction };
|
|
384
384
|
//# sourceMappingURL=haneulns-transaction.mjs.map
|