@haneullabs/haneulns 1.0.2 → 1.2.5
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/CHANGELOG.md +108 -0
- package/dist/constants.d.mts +0 -1
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +20 -20
- package/dist/constants.mjs.map +1 -1
- package/dist/contracts/haneulns/controller.mjs +11 -4
- package/dist/contracts/haneulns/controller.mjs.map +1 -1
- package/dist/contracts/haneulns/deps/haneul/balance.mjs +2 -13
- package/dist/contracts/haneulns/deps/haneul/balance.mjs.map +1 -1
- package/dist/contracts/haneulns/deps/haneul/vec_map.mjs +1 -2
- package/dist/contracts/haneulns/deps/haneul/vec_map.mjs.map +1 -1
- package/dist/contracts/haneulns/deps/std/type_name.mjs +13 -10
- package/dist/contracts/haneulns/deps/std/type_name.mjs.map +1 -1
- package/dist/contracts/haneulns/domain.mjs +11 -16
- package/dist/contracts/haneulns/domain.mjs.map +1 -1
- package/dist/contracts/haneulns/haneulns.mjs +12 -9
- package/dist/contracts/haneulns/haneulns.mjs.map +1 -1
- package/dist/contracts/haneulns/name_record.mjs +14 -13
- package/dist/contracts/haneulns/name_record.mjs.map +1 -1
- package/dist/contracts/haneulns/payment.mjs +16 -17
- package/dist/contracts/haneulns/payment.mjs.map +1 -1
- package/dist/contracts/haneulns/pricing_config.mjs +1 -2
- package/dist/contracts/haneulns/pricing_config.mjs.map +1 -1
- package/dist/contracts/haneulns_coupons/coupon_house.mjs +4 -5
- package/dist/contracts/haneulns_coupons/coupon_house.mjs.map +1 -1
- package/dist/contracts/haneulns_coupons/data.mjs +2 -8
- package/dist/contracts/haneulns_coupons/data.mjs.map +1 -1
- package/dist/contracts/haneulns_coupons/deps/haneul/bag.mjs +4 -32
- package/dist/contracts/haneulns_coupons/deps/haneul/bag.mjs.map +1 -1
- package/dist/contracts/haneulns_discounts/deps/haneul/linked_table.mjs +5 -2
- package/dist/contracts/haneulns_discounts/deps/haneul/linked_table.mjs.map +1 -1
- package/dist/contracts/haneulns_discounts/deps/haneulns/pricing_config.mjs +2 -8
- package/dist/contracts/haneulns_discounts/deps/haneulns/pricing_config.mjs.map +1 -1
- package/dist/contracts/haneulns_discounts/discounts.mjs +3 -4
- package/dist/contracts/haneulns_discounts/discounts.mjs.map +1 -1
- package/dist/contracts/haneulns_discounts/free_claims.mjs +4 -5
- package/dist/contracts/haneulns_discounts/free_claims.mjs.map +1 -1
- package/dist/contracts/haneulns_payments/deps/haneul/vec_map.mjs +1 -2
- package/dist/contracts/haneulns_payments/deps/haneul/vec_map.mjs.map +1 -1
- package/dist/contracts/haneulns_payments/deps/std/type_name.mjs +13 -10
- package/dist/contracts/haneulns_payments/deps/std/type_name.mjs.map +1 -1
- package/dist/contracts/haneulns_payments/payments.mjs +4 -3
- package/dist/contracts/haneulns_payments/payments.mjs.map +1 -1
- package/dist/contracts/pyth/data_source.mjs +2 -8
- package/dist/contracts/pyth/data_source.mjs.map +1 -1
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +2 -8
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -1
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +2 -8
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -1
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs +2 -8
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs.map +1 -1
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs +2 -8
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs.map +1 -1
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs +2 -8
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs.map +1 -1
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs +2 -8
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs.map +1 -1
- package/dist/contracts/pyth/state.mjs +2 -8
- package/dist/contracts/pyth/state.mjs.map +1 -1
- package/dist/contracts/utils/index.mjs +97 -12
- package/dist/contracts/utils/index.mjs.map +1 -1
- package/dist/contracts/wormhole/bytes32.mjs +2 -8
- package/dist/contracts/wormhole/bytes32.mjs.map +1 -1
- package/dist/contracts/wormhole/consumed_vaas.mjs +2 -8
- package/dist/contracts/wormhole/consumed_vaas.mjs.map +1 -1
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +2 -8
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -1
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +2 -8
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -1
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +2 -8
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -1
- package/dist/contracts/wormhole/external_address.mjs +2 -8
- package/dist/contracts/wormhole/external_address.mjs.map +1 -1
- package/dist/contracts/wormhole/fee_collector.mjs +2 -8
- package/dist/contracts/wormhole/fee_collector.mjs.map +1 -1
- package/dist/contracts/wormhole/set.mjs +2 -8
- package/dist/contracts/wormhole/set.mjs.map +1 -1
- package/dist/contracts/wormhole/state.mjs +2 -8
- package/dist/contracts/wormhole/state.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 +9 -10
- package/dist/haneulns-client.mjs.map +1 -1
- package/dist/haneulns-transaction.d.mts +7 -8
- package/dist/haneulns-transaction.d.mts.map +1 -1
- package/dist/haneulns-transaction.mjs +4 -5
- package/dist/haneulns-transaction.mjs.map +1 -1
- package/dist/helpers.d.mts.map +1 -1
- package/dist/helpers.mjs +1 -2
- package/dist/helpers.mjs.map +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +3 -4
- package/dist/pyth/PriceServiceConnection.mjs +1 -2
- package/dist/pyth/PriceServiceConnection.mjs.map +1 -1
- package/dist/pyth/pyth-helpers.mjs +1 -1
- package/dist/pyth/pyth-helpers.mjs.map +1 -1
- package/dist/pyth/pyth.mjs +8 -6
- package/dist/pyth/pyth.mjs.map +1 -1
- package/dist/types.d.mts +3 -3
- package/dist/types.d.mts.map +1 -1
- package/package.json +11 -12
- package/src/constants.ts +19 -19
- package/src/contracts/haneulns/admin.ts +2 -2
- package/src/contracts/haneulns/auction.ts +2 -2
- package/src/contracts/haneulns/config.ts +18 -18
- package/src/contracts/haneulns/constants.ts +4 -4
- package/src/contracts/haneulns/controller.ts +95 -1
- package/src/contracts/haneulns/core_config.ts +19 -19
- package/src/contracts/haneulns/domain.ts +18 -20
- package/src/contracts/haneulns/haneulns.ts +7 -7
- package/src/contracts/haneulns/haneulns_registration.ts +11 -11
- package/src/contracts/haneulns/name_record.ts +24 -29
- package/src/contracts/haneulns/payment.ts +23 -23
- package/src/contracts/haneulns/pricing_config.ts +16 -16
- package/src/contracts/haneulns/registry.ts +61 -75
- package/src/contracts/haneulns/subdomain_registration.ts +2 -2
- package/src/contracts/haneulns_coupons/coupon_house.ts +19 -19
- package/src/contracts/haneulns_coupons/range.ts +7 -7
- package/src/contracts/haneulns_coupons/rules.ts +27 -27
- package/src/contracts/haneulns_discounts/discounts.ts +7 -7
- package/src/contracts/haneulns_discounts/free_claims.ts +7 -7
- package/src/contracts/haneulns_payments/payments.ts +13 -13
- package/src/contracts/utils/index.ts +185 -24
- 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
|
@@ -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, type TransactionArgument } 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: TransactionArgument;\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: TransactionArgument,\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: TransactionArgument;\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: TransactionArgument,\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;AACI,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,IAAI,IAAI,QACT;AACD,CAAC;AACuB,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;;;;;EAKR,SAASA;CACV;AACD,CAAC;AACuB,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACD,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AAC0B,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACyB,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACqB,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import { MoveStruct } from "../utils/index.mjs";
|
|
2
2
|
import { VecMap } from "./deps/haneul/vec_map.mjs";
|
|
3
3
|
import { bcs } from "@haneullabs/haneul/bcs";
|
|
4
|
-
|
|
5
|
-
//#region src/contracts/haneulns/name_record.ts
|
|
6
|
-
/**************************************************************
|
|
7
|
-
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
8
|
-
**************************************************************/
|
|
9
|
-
/**
|
|
10
|
-
* The `NameRecord` is a struct that represents a single record in the registry.
|
|
11
|
-
* Can be replaced by any other data structure due to the way `NameRecord`s are
|
|
12
|
-
* stored and managed. HaneulNS has no direct and permanent dependency on this module.
|
|
13
|
-
*/
|
|
14
|
-
const $moduleName = "@haneulns/core::name_record";
|
|
15
4
|
const NameRecord = new MoveStruct({
|
|
16
|
-
name:
|
|
5
|
+
name: `@haneulns/core::name_record::NameRecord`,
|
|
17
6
|
fields: {
|
|
7
|
+
/**
|
|
8
|
+
* The ID of the `HaneulnsRegistration` assigned to this record.
|
|
9
|
+
*
|
|
10
|
+
* The owner of the corresponding `HaneulnsRegistration` has the rights to be able to
|
|
11
|
+
* change and adjust the `target_address` of this domain.
|
|
12
|
+
*
|
|
13
|
+
* It is possible that the ID changes if the record expires and is purchased by
|
|
14
|
+
* someone else.
|
|
15
|
+
*/
|
|
18
16
|
nft_id: bcs.Address,
|
|
17
|
+
/** Timestamp in milliseconds when the record expires. */
|
|
19
18
|
expiration_timestamp_ms: bcs.u64(),
|
|
19
|
+
/** The target address that this domain points to */
|
|
20
20
|
target_address: bcs.option(bcs.Address),
|
|
21
|
+
/** Additional data which may be stored in a record */
|
|
21
22
|
data: VecMap(bcs.string(), bcs.string())
|
|
22
23
|
}
|
|
23
24
|
});
|
|
24
|
-
|
|
25
25
|
//#endregion
|
|
26
26
|
export { NameRecord };
|
|
27
|
+
|
|
27
28
|
//# sourceMappingURL=name_record.mjs.map
|
|
@@ -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, type TransactionArgument } 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: TransactionArgument;\n\tdata: TransactionArgument;\n}\nexport interface SetDataOptions {\n\tpackage?: string;\n\targuments: SetDataArguments | [self: TransactionArgument, data: TransactionArgument];\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: TransactionArgument;\n\tnewAddress: RawTransactionArgument<string | null>;\n}\nexport interface SetTargetAddressOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetTargetAddressArguments\n\t\t| [self: TransactionArgument, 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: TransactionArgument;\n\texpirationTimestampMs: RawTransactionArgument<number | bigint>;\n}\nexport interface SetExpirationTimestampMsOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetExpirationTimestampMsArguments\n\t\t| [self: TransactionArgument, expirationTimestampMs: RawTransactionArgument<number | bigint>];\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: TransactionArgument;\n}\nexport interface HasExpiredOptions {\n\tpackage?: string;\n\targuments: HasExpiredArguments | [self: TransactionArgument];\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: TransactionArgument;\n}\nexport interface HasExpiredPastGracePeriodOptions {\n\tpackage?: string;\n\targuments: HasExpiredPastGracePeriodArguments | [self: TransactionArgument];\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: TransactionArgument;\n}\nexport interface IsLeafRecordOptions {\n\tpackage?: string;\n\targuments: IsLeafRecordArguments | [self: TransactionArgument];\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: TransactionArgument;\n}\nexport interface DataOptions {\n\tpackage?: string;\n\targuments: DataArguments | [self: TransactionArgument];\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: TransactionArgument;\n}\nexport interface TargetAddressOptions {\n\tpackage?: string;\n\targuments: TargetAddressArguments | [self: TransactionArgument];\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: TransactionArgument;\n}\nexport interface NftIdOptions {\n\tpackage?: string;\n\targuments: NftIdArguments | [self: TransactionArgument];\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: TransactionArgument;\n}\nexport interface ExpirationTimestampMsOptions {\n\tpackage?: string;\n\targuments: ExpirationTimestampMsArguments | [self: TransactionArgument];\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":";;;AAeA,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM;CACN,QAAQ;;;;;;;;;;EAUP,QAAQ,IAAI;;EAEZ,yBAAyB,IAAI,IAAI;;EAEjC,gBAAgB,IAAI,OAAO,IAAI,OAAO;;EAEtC,MAAMA,OAAe,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC;CAChD;AACD,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { Domain } from "./domain.mjs";
|
|
|
3
3
|
import { VecMap } from "./deps/haneul/vec_map.mjs";
|
|
4
4
|
import { TypeName } from "./deps/std/type_name.mjs";
|
|
5
5
|
import { bcs } from "@haneullabs/haneul/bcs";
|
|
6
|
-
|
|
7
6
|
//#region src/contracts/haneulns/payment.ts
|
|
8
7
|
/**************************************************************
|
|
9
8
|
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
@@ -12,15 +11,27 @@ const $moduleName = "@haneulns/core::payment";
|
|
|
12
11
|
const RequestData = new MoveStruct({
|
|
13
12
|
name: `${$moduleName}::RequestData`,
|
|
14
13
|
fields: {
|
|
14
|
+
/** The version of the payment module. */
|
|
15
15
|
version: bcs.u8(),
|
|
16
|
+
/** The domain for which the payment is being made. */
|
|
16
17
|
domain: Domain,
|
|
18
|
+
/** The years for which the payment is being made. Defaults to 1 for registration. */
|
|
17
19
|
years: bcs.u8(),
|
|
20
|
+
/** The amount the user has to pay in base units. */
|
|
18
21
|
base_amount: bcs.u64(),
|
|
22
|
+
/**
|
|
23
|
+
* The discounts (each app can add a key for its discount) to avoid multiple
|
|
24
|
+
* additions of the same discount.
|
|
25
|
+
*/
|
|
19
26
|
discounts_applied: VecMap(bcs.string(), bcs.u64()),
|
|
27
|
+
/**
|
|
28
|
+
* a metadata field for future-proofness. No use-cases are enabled in the current
|
|
29
|
+
* release.
|
|
30
|
+
*/
|
|
20
31
|
metadata: VecMap(bcs.string(), bcs.string())
|
|
21
32
|
}
|
|
22
33
|
});
|
|
23
|
-
|
|
34
|
+
new MoveStruct({
|
|
24
35
|
name: `${$moduleName}::TransactionEvent`,
|
|
25
36
|
fields: {
|
|
26
37
|
app: TypeName,
|
|
@@ -35,26 +46,14 @@ const TransactionEvent = new MoveStruct({
|
|
|
35
46
|
currency_amount: bcs.u64()
|
|
36
47
|
}
|
|
37
48
|
});
|
|
38
|
-
|
|
39
|
-
* The payment intent for a given domain
|
|
40
|
-
*
|
|
41
|
-
* - Registration: The user is registering a new domain.
|
|
42
|
-
* - Renewal: The user is renewing an existing domain.
|
|
43
|
-
*/
|
|
44
|
-
const PaymentIntent = new MoveEnum({
|
|
49
|
+
new MoveEnum({
|
|
45
50
|
name: `${$moduleName}::PaymentIntent`,
|
|
46
51
|
fields: {
|
|
47
52
|
Registration: RequestData,
|
|
48
53
|
Renewal: RequestData
|
|
49
54
|
}
|
|
50
55
|
});
|
|
51
|
-
|
|
52
|
-
* A receipt that is generated after a successful payment. Can be used to:
|
|
53
|
-
*
|
|
54
|
-
* - Prove that the payment was successful.
|
|
55
|
-
* - Register a new name, or renew an existing one.
|
|
56
|
-
*/
|
|
57
|
-
const Receipt = new MoveEnum({
|
|
56
|
+
new MoveEnum({
|
|
58
57
|
name: `${$moduleName}::Receipt`,
|
|
59
58
|
fields: {
|
|
60
59
|
Registration: new MoveStruct({
|
|
@@ -156,7 +155,7 @@ function renew(options) {
|
|
|
156
155
|
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
|
|
157
156
|
});
|
|
158
157
|
}
|
|
159
|
-
|
|
160
158
|
//#endregion
|
|
161
159
|
export { initRegistration, initRenewal, register, renew };
|
|
160
|
+
|
|
162
161
|
//# sourceMappingURL=payment.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.mjs","names":["domain_1.Domain","vec_map.VecMap","type_name.TypeName"],"sources":["../../../src/contracts/haneulns/payment.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport {\n\tMoveStruct,\n\tMoveEnum,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport { bcs, type BcsType } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nimport * as domain_1 from './domain.js';\nimport * as vec_map from './deps/haneul/vec_map.js';\nimport * as type_name from './deps/std/type_name.js';\nconst $moduleName = '@haneulns/core::payment';\nexport const RequestData = new MoveStruct({\n\tname: `${$moduleName}::RequestData`,\n\tfields: {\n\t\t/** The version of the payment module. */\n\t\tversion: bcs.u8(),\n\t\t/** The domain for which the payment is being made. */\n\t\tdomain: domain_1.Domain,\n\t\t/** The years for which the payment is being made. Defaults to 1 for registration. */\n\t\tyears: bcs.u8(),\n\t\t/** The amount the user has to pay in base units. */\n\t\tbase_amount: bcs.u64(),\n\t\t/**\n\t\t * The discounts (each app can add a key for its discount) to avoid multiple\n\t\t * additions of the same discount.\n\t\t */\n\t\tdiscounts_applied: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t\t/**\n\t\t * a metadata field for future-proofness. No use-cases are enabled in the current\n\t\t * release.\n\t\t */\n\t\tmetadata: vec_map.VecMap(bcs.string(), bcs.string()),\n\t},\n});\nexport const TransactionEvent = new MoveStruct({\n\tname: `${$moduleName}::TransactionEvent`,\n\tfields: {\n\t\tapp: type_name.TypeName,\n\t\tdomain: domain_1.Domain,\n\t\tyears: bcs.u8(),\n\t\trequest_data_version: bcs.u8(),\n\t\tbase_amount: bcs.u64(),\n\t\tdiscounts_applied: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t\tmetadata: vec_map.VecMap(bcs.string(), bcs.string()),\n\t\tis_renewal: bcs.bool(),\n\t\tcurrency: type_name.TypeName,\n\t\tcurrency_amount: bcs.u64(),\n\t},\n});\n/**\n * The payment intent for a given domain\n *\n * - Registration: The user is registering a new domain.\n * - Renewal: The user is renewing an existing domain.\n */\nexport const PaymentIntent = new MoveEnum({\n\tname: `${$moduleName}::PaymentIntent`,\n\tfields: {\n\t\tRegistration: RequestData,\n\t\tRenewal: RequestData,\n\t},\n});\n/**\n * A receipt that is generated after a successful payment. Can be used to:\n *\n * - Prove that the payment was successful.\n * - Register a new name, or renew an existing one.\n */\nexport const Receipt = new MoveEnum({\n\tname: `${$moduleName}::Receipt`,\n\tfields: {\n\t\tRegistration: new MoveStruct({\n\t\t\tname: `Receipt.Registration`,\n\t\t\tfields: {\n\t\t\t\tdomain: domain_1.Domain,\n\t\t\t\tyears: bcs.u8(),\n\t\t\t\tversion: bcs.u8(),\n\t\t\t},\n\t\t}),\n\t\tRenewal: new MoveStruct({\n\t\t\tname: `Receipt.Renewal`,\n\t\t\tfields: {\n\t\t\t\tdomain: domain_1.Domain,\n\t\t\t\tyears: bcs.u8(),\n\t\t\t\tversion: bcs.u8(),\n\t\t\t},\n\t\t}),\n\t},\n});\nexport interface ApplyPercentageDiscountArguments<A extends BcsType<any>> {\n\tintent: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<A>;\n\tdiscountKey: RawTransactionArgument<string>;\n\tdiscount: RawTransactionArgument<number>;\n\tallowMultipleDiscounts: RawTransactionArgument<boolean>;\n}\nexport interface ApplyPercentageDiscountOptions<A extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| ApplyPercentageDiscountArguments<A>\n\t\t| [\n\t\t\t\tintent: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\t_: RawTransactionArgument<A>,\n\t\t\t\tdiscountKey: RawTransactionArgument<string>,\n\t\t\t\tdiscount: RawTransactionArgument<number>,\n\t\t\t\tallowMultipleDiscounts: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/**\n * Allow an authorized app to apply a percentage discount to the payment intent.\n * E.g. an NS payment can apply a 10% discount on top of a user's 20% discount if\n * allow_multiple_discounts is true\n */\nexport function applyPercentageDiscount<A extends BcsType<any>>(\n\toptions: ApplyPercentageDiscountOptions<A>,\n) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\t`${options.typeArguments[0]}`,\n\t\t'0x1::string::String',\n\t\t'u8',\n\t\t'bool',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'intent',\n\t\t'haneulns',\n\t\t'_',\n\t\t'discountKey',\n\t\t'discount',\n\t\t'allowMultipleDiscounts',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'apply_percentage_discount',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface FinalizePaymentArguments<A extends BcsType<any>> {\n\tintent: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tapp: RawTransactionArgument<A>;\n\tcoin: RawTransactionArgument<string>;\n}\nexport interface FinalizePaymentOptions<A extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| FinalizePaymentArguments<A>\n\t\t| [\n\t\t\t\tintent: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tapp: RawTransactionArgument<A>,\n\t\t\t\tcoin: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Allow an authorized app to finalize a payment. Returns a receipt that can be\n * used to register or renew a domain.\n *\n * SAFETY: Only authorized packages can call this. We do not check the amount of\n * funds in this helper. This is the responsibility of the `payments` app.\n */\nexport function finalizePayment<A extends BcsType<any>>(options: FinalizePaymentOptions<A>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, `${options.typeArguments[0]}`, null] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['intent', 'haneulns', 'app', 'coin'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'finalize_payment',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface InitRegistrationArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface InitRegistrationOptions {\n\tpackage?: string;\n\targuments:\n\t\t| InitRegistrationArguments\n\t\t| [haneulns: RawTransactionArgument<string>, domain: RawTransactionArgument<string>];\n}\n/**\n * Creates a `PaymentIntent` for registering a new domain. This is a hot-potato and\n * can only be consumed in a single transaction.\n */\nexport function initRegistration(options: InitRegistrationOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'init_registration',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InitRenewalArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n\tyears: RawTransactionArgument<number>;\n}\nexport interface InitRenewalOptions {\n\tpackage?: string;\n\targuments:\n\t\t| InitRenewalArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t\t\tyears: RawTransactionArgument<number>,\n\t\t ];\n}\n/**\n * Creates a `PaymentIntent` for renewing an existing domain. This is a hot-potato\n * and can only be consumed in a single transaction.\n */\nexport function initRenewal(options: InitRenewalOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, 'u8'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'nft', 'years'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'init_renewal',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RegisterArguments {\n\treceipt: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface RegisterOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RegisterArguments\n\t\t| [receipt: RawTransactionArgument<string>, haneulns: RawTransactionArgument<string>];\n}\n/**\n * Register a domain with the given receipt. This is a hot-potato and can only be\n * consumed in a single transaction.\n */\nexport function register(options: RegisterOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['receipt', 'haneulns'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'register',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RenewArguments {\n\treceipt: RawTransactionArgument<string>;\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n}\nexport interface RenewOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RenewArguments\n\t\t| [\n\t\t\t\treceipt: RawTransactionArgument<string>,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t ];\n}\n/**\n * Renew a domain with the given receipt. This is a hot-potato and can only be\n * consumed in a single transaction.\n */\nexport function renew(options: RenewOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['receipt', 'haneulns', 'nft'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'renew',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RequestDataArguments {\n\tintent: RawTransactionArgument<string>;\n}\nexport interface RequestDataOptions {\n\tpackage?: string;\n\targuments: RequestDataArguments | [intent: RawTransactionArgument<string>];\n}\n/** Getters */\nexport function requestData(options: RequestDataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['intent'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'request_data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface YearsArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface YearsOptions {\n\tpackage?: string;\n\targuments: YearsArguments | [self: RawTransactionArgument<string>];\n}\nexport function years(options: YearsOptions) {\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: 'payment',\n\t\t\tfunction: 'years',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BaseAmountArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface BaseAmountOptions {\n\tpackage?: string;\n\targuments: BaseAmountArguments | [self: RawTransactionArgument<string>];\n}\nexport function baseAmount(options: BaseAmountOptions) {\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: 'payment',\n\t\t\tfunction: 'base_amount',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DomainArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface DomainOptions {\n\tpackage?: string;\n\targuments: DomainArguments | [self: RawTransactionArgument<string>];\n}\nexport function domain(options: DomainOptions) {\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: 'payment',\n\t\t\tfunction: 'domain',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DiscountAppliedArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface DiscountAppliedOptions {\n\tpackage?: string;\n\targuments: DiscountAppliedArguments | [self: RawTransactionArgument<string>];\n}\n/** Returns true if at least one discount has been applied to the payment intent. */\nexport function discountApplied(options: DiscountAppliedOptions) {\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: 'payment',\n\t\t\tfunction: 'discount_applied',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DiscountsAppliedArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface DiscountsAppliedOptions {\n\tpackage?: string;\n\targuments: DiscountsAppliedArguments | [self: RawTransactionArgument<string>];\n}\n/** A list of discounts that have been applied to the payment intent. */\nexport function discountsApplied(options: DiscountsAppliedOptions) {\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: 'payment',\n\t\t\tfunction: 'discounts_applied',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CalculateTotalAfterDiscountArguments {\n\tdata: RawTransactionArgument<string>;\n\tdiscount: RawTransactionArgument<number>;\n}\nexport interface CalculateTotalAfterDiscountOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CalculateTotalAfterDiscountArguments\n\t\t| [data: RawTransactionArgument<string>, discount: RawTransactionArgument<number>];\n}\n/** Public helper to calculate price after a percentage discount has been applied. */\nexport function calculateTotalAfterDiscount(options: CalculateTotalAfterDiscountOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u8'] satisfies (string | null)[];\n\tconst parameterNames = ['data', 'discount'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'calculate_total_after_discount',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;AAcA,MAAM,cAAc;AACpB,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,SAAS,IAAI,IAAI;EAEjB,QAAQA;EAER,OAAO,IAAI,IAAI;EAEf,aAAa,IAAI,KAAK;EAKtB,mBAAmBC,OAAe,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC;EAK1D,UAAUA,OAAe,IAAI,QAAQ,EAAE,IAAI,QAAQ,CAAC;EACpD;CACD,CAAC;AACF,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,KAAKC;EACL,QAAQF;EACR,OAAO,IAAI,IAAI;EACf,sBAAsB,IAAI,IAAI;EAC9B,aAAa,IAAI,KAAK;EACtB,mBAAmBC,OAAe,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC;EAC1D,UAAUA,OAAe,IAAI,QAAQ,EAAE,IAAI,QAAQ,CAAC;EACpD,YAAY,IAAI,MAAM;EACtB,UAAUC;EACV,iBAAiB,IAAI,KAAK;EAC1B;CACD,CAAC;;;;;;;AAOF,MAAa,gBAAgB,IAAI,SAAS;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,cAAc;EACd,SAAS;EACT;CACD,CAAC;;;;;;;AAOF,MAAa,UAAU,IAAI,SAAS;CACnC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,cAAc,IAAI,WAAW;GAC5B,MAAM;GACN,QAAQ;IACP,QAAQF;IACR,OAAO,IAAI,IAAI;IACf,SAAS,IAAI,IAAI;IACjB;GACD,CAAC;EACF,SAAS,IAAI,WAAW;GACvB,MAAM;GACN,QAAQ;IACP,QAAQA;IACR,OAAO,IAAI,IAAI;IACf,SAAS,IAAI,IAAI;IACjB;GACD,CAAC;EACF;CACD,CAAC;;;;;AAgHF,SAAgB,iBAAiB,SAAkC;CAClE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB,CAAC,MAAM,sBAAsB;CACpD,MAAM,iBAAiB,CAAC,YAAY,SAAS;AAC7C,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;;;;AAqBJ,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAK;CACzC,MAAM,iBAAiB;EAAC;EAAY;EAAO;EAAQ;AACnD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;;;;AAgBJ,SAAgB,SAAS,SAA0B;CAClD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAoB;CACxD,MAAM,iBAAiB,CAAC,WAAW,WAAW;AAC9C,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;;;;AAqBJ,SAAgB,MAAM,SAAuB;CAC5C,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAoB;CAC9D,MAAM,iBAAiB;EAAC;EAAW;EAAY;EAAM;AACrD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"payment.mjs","names":["domain_1.Domain","vec_map.VecMap","type_name.TypeName"],"sources":["../../../src/contracts/haneulns/payment.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport {\n\tMoveStruct,\n\tMoveEnum,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport { bcs, type BcsType } from '@haneullabs/haneul/bcs';\nimport { type Transaction, type TransactionArgument } from '@haneullabs/haneul/transactions';\nimport * as domain_1 from './domain.js';\nimport * as vec_map from './deps/haneul/vec_map.js';\nimport * as type_name from './deps/std/type_name.js';\nconst $moduleName = '@haneulns/core::payment';\nexport const RequestData = new MoveStruct({\n\tname: `${$moduleName}::RequestData`,\n\tfields: {\n\t\t/** The version of the payment module. */\n\t\tversion: bcs.u8(),\n\t\t/** The domain for which the payment is being made. */\n\t\tdomain: domain_1.Domain,\n\t\t/** The years for which the payment is being made. Defaults to 1 for registration. */\n\t\tyears: bcs.u8(),\n\t\t/** The amount the user has to pay in base units. */\n\t\tbase_amount: bcs.u64(),\n\t\t/**\n\t\t * The discounts (each app can add a key for its discount) to avoid multiple\n\t\t * additions of the same discount.\n\t\t */\n\t\tdiscounts_applied: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t\t/**\n\t\t * a metadata field for future-proofness. No use-cases are enabled in the current\n\t\t * release.\n\t\t */\n\t\tmetadata: vec_map.VecMap(bcs.string(), bcs.string()),\n\t},\n});\nexport const TransactionEvent = new MoveStruct({\n\tname: `${$moduleName}::TransactionEvent`,\n\tfields: {\n\t\tapp: type_name.TypeName,\n\t\tdomain: domain_1.Domain,\n\t\tyears: bcs.u8(),\n\t\trequest_data_version: bcs.u8(),\n\t\tbase_amount: bcs.u64(),\n\t\tdiscounts_applied: vec_map.VecMap(bcs.string(), bcs.u64()),\n\t\tmetadata: vec_map.VecMap(bcs.string(), bcs.string()),\n\t\tis_renewal: bcs.bool(),\n\t\tcurrency: type_name.TypeName,\n\t\tcurrency_amount: bcs.u64(),\n\t},\n});\n/**\n * The payment intent for a given domain\n *\n * - Registration: The user is registering a new domain.\n * - Renewal: The user is renewing an existing domain.\n */\nexport const PaymentIntent = new MoveEnum({\n\tname: `${$moduleName}::PaymentIntent`,\n\tfields: {\n\t\tRegistration: RequestData,\n\t\tRenewal: RequestData,\n\t},\n});\n/**\n * A receipt that is generated after a successful payment. Can be used to:\n *\n * - Prove that the payment was successful.\n * - Register a new name, or renew an existing one.\n */\nexport const Receipt = new MoveEnum({\n\tname: `${$moduleName}::Receipt`,\n\tfields: {\n\t\tRegistration: new MoveStruct({\n\t\t\tname: `Receipt.Registration`,\n\t\t\tfields: {\n\t\t\t\tdomain: domain_1.Domain,\n\t\t\t\tyears: bcs.u8(),\n\t\t\t\tversion: bcs.u8(),\n\t\t\t},\n\t\t}),\n\t\tRenewal: new MoveStruct({\n\t\t\tname: `Receipt.Renewal`,\n\t\t\tfields: {\n\t\t\t\tdomain: domain_1.Domain,\n\t\t\t\tyears: bcs.u8(),\n\t\t\t\tversion: bcs.u8(),\n\t\t\t},\n\t\t}),\n\t},\n});\nexport interface ApplyPercentageDiscountArguments<A extends BcsType<any>> {\n\tintent: TransactionArgument;\n\thaneulns: RawTransactionArgument<string>;\n\t_: RawTransactionArgument<A>;\n\tdiscountKey: RawTransactionArgument<string>;\n\tdiscount: RawTransactionArgument<number>;\n\tallowMultipleDiscounts: RawTransactionArgument<boolean>;\n}\nexport interface ApplyPercentageDiscountOptions<A extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| ApplyPercentageDiscountArguments<A>\n\t\t| [\n\t\t\t\tintent: TransactionArgument,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\t_: RawTransactionArgument<A>,\n\t\t\t\tdiscountKey: RawTransactionArgument<string>,\n\t\t\t\tdiscount: RawTransactionArgument<number>,\n\t\t\t\tallowMultipleDiscounts: RawTransactionArgument<boolean>,\n\t\t ];\n\ttypeArguments: [string];\n}\n/**\n * Allow an authorized app to apply a percentage discount to the payment intent.\n * E.g. an NS payment can apply a 10% discount on top of a user's 20% discount if\n * allow_multiple_discounts is true\n */\nexport function applyPercentageDiscount<A extends BcsType<any>>(\n\toptions: ApplyPercentageDiscountOptions<A>,\n) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\t`${options.typeArguments[0]}`,\n\t\t'0x1::string::String',\n\t\t'u8',\n\t\t'bool',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'intent',\n\t\t'haneulns',\n\t\t'_',\n\t\t'discountKey',\n\t\t'discount',\n\t\t'allowMultipleDiscounts',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'apply_percentage_discount',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface FinalizePaymentArguments<A extends BcsType<any>> {\n\tintent: TransactionArgument;\n\thaneulns: RawTransactionArgument<string>;\n\tapp: RawTransactionArgument<A>;\n\tcoin: RawTransactionArgument<string>;\n}\nexport interface FinalizePaymentOptions<A extends BcsType<any>> {\n\tpackage?: string;\n\targuments:\n\t\t| FinalizePaymentArguments<A>\n\t\t| [\n\t\t\t\tintent: TransactionArgument,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tapp: RawTransactionArgument<A>,\n\t\t\t\tcoin: RawTransactionArgument<string>,\n\t\t ];\n\ttypeArguments: [string, string];\n}\n/**\n * Allow an authorized app to finalize a payment. Returns a receipt that can be\n * used to register or renew a domain.\n *\n * SAFETY: Only authorized packages can call this. We do not check the amount of\n * funds in this helper. This is the responsibility of the `payments` app.\n */\nexport function finalizePayment<A extends BcsType<any>>(options: FinalizePaymentOptions<A>) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, `${options.typeArguments[0]}`, null] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['intent', 'haneulns', 'app', 'coin'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'finalize_payment',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface InitRegistrationArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface InitRegistrationOptions {\n\tpackage?: string;\n\targuments:\n\t\t| InitRegistrationArguments\n\t\t| [haneulns: RawTransactionArgument<string>, domain: RawTransactionArgument<string>];\n}\n/**\n * Creates a `PaymentIntent` for registering a new domain. This is a hot-potato and\n * can only be consumed in a single transaction.\n */\nexport function initRegistration(options: InitRegistrationOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'init_registration',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InitRenewalArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n\tyears: RawTransactionArgument<number>;\n}\nexport interface InitRenewalOptions {\n\tpackage?: string;\n\targuments:\n\t\t| InitRenewalArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t\t\tyears: RawTransactionArgument<number>,\n\t\t ];\n}\n/**\n * Creates a `PaymentIntent` for renewing an existing domain. This is a hot-potato\n * and can only be consumed in a single transaction.\n */\nexport function initRenewal(options: InitRenewalOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, 'u8'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'nft', 'years'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'init_renewal',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RegisterArguments {\n\treceipt: TransactionArgument;\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface RegisterOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RegisterArguments\n\t\t| [receipt: TransactionArgument, haneulns: RawTransactionArgument<string>];\n}\n/**\n * Register a domain with the given receipt. This is a hot-potato and can only be\n * consumed in a single transaction.\n */\nexport function register(options: RegisterOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['receipt', 'haneulns'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'register',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RenewArguments {\n\treceipt: TransactionArgument;\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n}\nexport interface RenewOptions {\n\tpackage?: string;\n\targuments:\n\t\t| RenewArguments\n\t\t| [\n\t\t\t\treceipt: TransactionArgument,\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t ];\n}\n/**\n * Renew a domain with the given receipt. This is a hot-potato and can only be\n * consumed in a single transaction.\n */\nexport function renew(options: RenewOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['receipt', 'haneulns', 'nft'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'renew',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RequestDataArguments {\n\tintent: TransactionArgument;\n}\nexport interface RequestDataOptions {\n\tpackage?: string;\n\targuments: RequestDataArguments | [intent: TransactionArgument];\n}\n/** Getters */\nexport function requestData(options: RequestDataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['intent'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'request_data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface YearsArguments {\n\tself: TransactionArgument;\n}\nexport interface YearsOptions {\n\tpackage?: string;\n\targuments: YearsArguments | [self: TransactionArgument];\n}\nexport function years(options: YearsOptions) {\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: 'payment',\n\t\t\tfunction: 'years',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BaseAmountArguments {\n\tself: TransactionArgument;\n}\nexport interface BaseAmountOptions {\n\tpackage?: string;\n\targuments: BaseAmountArguments | [self: TransactionArgument];\n}\nexport function baseAmount(options: BaseAmountOptions) {\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: 'payment',\n\t\t\tfunction: 'base_amount',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DomainArguments {\n\tself: TransactionArgument;\n}\nexport interface DomainOptions {\n\tpackage?: string;\n\targuments: DomainArguments | [self: TransactionArgument];\n}\nexport function domain(options: DomainOptions) {\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: 'payment',\n\t\t\tfunction: 'domain',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DiscountAppliedArguments {\n\tself: TransactionArgument;\n}\nexport interface DiscountAppliedOptions {\n\tpackage?: string;\n\targuments: DiscountAppliedArguments | [self: TransactionArgument];\n}\n/** Returns true if at least one discount has been applied to the payment intent. */\nexport function discountApplied(options: DiscountAppliedOptions) {\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: 'payment',\n\t\t\tfunction: 'discount_applied',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface DiscountsAppliedArguments {\n\tself: TransactionArgument;\n}\nexport interface DiscountsAppliedOptions {\n\tpackage?: string;\n\targuments: DiscountsAppliedArguments | [self: TransactionArgument];\n}\n/** A list of discounts that have been applied to the payment intent. */\nexport function discountsApplied(options: DiscountsAppliedOptions) {\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: 'payment',\n\t\t\tfunction: 'discounts_applied',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CalculateTotalAfterDiscountArguments {\n\tdata: TransactionArgument;\n\tdiscount: RawTransactionArgument<number>;\n}\nexport interface CalculateTotalAfterDiscountOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CalculateTotalAfterDiscountArguments\n\t\t| [data: TransactionArgument, discount: RawTransactionArgument<number>];\n}\n/** Public helper to calculate price after a percentage discount has been applied. */\nexport function calculateTotalAfterDiscount(options: CalculateTotalAfterDiscountOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u8'] satisfies (string | null)[];\n\tconst parameterNames = ['data', 'discount'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'payment',\n\t\t\tfunction: 'calculate_total_after_discount',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;AAcA,MAAM,cAAc;AACpB,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;;EAEP,SAAS,IAAI,GAAG;;EAEhB,QAAQA;;EAER,OAAO,IAAI,GAAG;;EAEd,aAAa,IAAI,IAAI;;;;;EAKrB,mBAAmBC,OAAe,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC;;;;;EAKzD,UAAUA,OAAe,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC;CACpD;AACD,CAAC;AAC+B,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,KAAKC;EACL,QAAQF;EACR,OAAO,IAAI,GAAG;EACd,sBAAsB,IAAI,GAAG;EAC7B,aAAa,IAAI,IAAI;EACrB,mBAAmBC,OAAe,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC;EACzD,UAAUA,OAAe,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC;EACnD,YAAY,IAAI,KAAK;EACrB,UAAUC;EACV,iBAAiB,IAAI,IAAI;CAC1B;AACD,CAAC;AAO4B,IAAI,SAAS;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,cAAc;EACd,SAAS;CACV;AACD,CAAC;AAOsB,IAAI,SAAS;CACnC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,cAAc,IAAI,WAAW;GAC5B,MAAM;GACN,QAAQ;IACP,QAAQF;IACR,OAAO,IAAI,GAAG;IACd,SAAS,IAAI,GAAG;GACjB;EACD,CAAC;EACD,SAAS,IAAI,WAAW;GACvB,MAAM;GACN,QAAQ;IACP,QAAQA;IACR,OAAO,IAAI,GAAG;IACd,SAAS,IAAI,GAAG;GACjB;EACD,CAAC;CACF;AACD,CAAC;;;;;AAgHD,SAAgB,iBAAiB,SAAkC;CAClE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB,CAAC,MAAM,qBAAqB;CACnD,MAAM,iBAAiB,CAAC,YAAY,QAAQ;CAC5C,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,cAAc;CACpF,CAAC;AACH;;;;;AAoBA,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;CAAI;CACxC,MAAM,iBAAiB;EAAC;EAAY;EAAO;CAAO;CAClD,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,cAAc;CACpF,CAAC;AACH;;;;;AAeA,SAAgB,SAAS,SAA0B;CAClD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;CAAmB;CACvD,MAAM,iBAAiB,CAAC,WAAW,UAAU;CAC7C,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,cAAc;CACpF,CAAC;AACH;;;;;AAoBA,SAAgB,MAAM,SAAuB;CAC5C,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;CAAmB;CAC7D,MAAM,iBAAiB;EAAC;EAAW;EAAY;CAAK;CACpD,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,cAAc;CACpF,CAAC;AACH"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { MoveStruct, MoveTuple } from "../utils/index.mjs";
|
|
2
2
|
import { VecMap } from "./deps/haneul/vec_map.mjs";
|
|
3
3
|
import { bcs } from "@haneullabs/haneul/bcs";
|
|
4
|
-
|
|
5
4
|
//#region src/contracts/haneulns/pricing_config.ts
|
|
6
5
|
/**************************************************************
|
|
7
6
|
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
@@ -19,7 +18,7 @@ const RenewalConfig = new MoveStruct({
|
|
|
19
18
|
name: `${$moduleName}::RenewalConfig`,
|
|
20
19
|
fields: { config: PricingConfig }
|
|
21
20
|
});
|
|
22
|
-
|
|
23
21
|
//#endregion
|
|
24
22
|
export { PricingConfig, RenewalConfig };
|
|
23
|
+
|
|
25
24
|
//# sourceMappingURL=pricing_config.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing_config.mjs","names":["vec_map.VecMap"],"sources":["../../../src/contracts/haneulns/pricing_config.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport {\n\tMoveTuple,\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} 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::pricing_config';\nexport const Range = new MoveTuple({\n\tname: `${$moduleName}::Range`,\n\tfields: [bcs.u64(), bcs.u64()],\n});\nexport const PricingConfig = new MoveStruct({\n\tname: `${$moduleName}::PricingConfig`,\n\tfields: {\n\t\tpricing: vec_map.VecMap(Range, bcs.u64()),\n\t},\n});\nexport const RenewalConfig = new MoveStruct({\n\tname: `${$moduleName}::RenewalConfig`,\n\tfields: {\n\t\tconfig: PricingConfig,\n\t},\n});\nexport interface CalculateBasePriceArguments {\n\tconfig:
|
|
1
|
+
{"version":3,"file":"pricing_config.mjs","names":["vec_map.VecMap"],"sources":["../../../src/contracts/haneulns/pricing_config.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport {\n\tMoveTuple,\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { type Transaction, type TransactionArgument } from '@haneullabs/haneul/transactions';\nimport * as vec_map from './deps/haneul/vec_map.js';\nconst $moduleName = '@haneulns/core::pricing_config';\nexport const Range = new MoveTuple({\n\tname: `${$moduleName}::Range`,\n\tfields: [bcs.u64(), bcs.u64()],\n});\nexport const PricingConfig = new MoveStruct({\n\tname: `${$moduleName}::PricingConfig`,\n\tfields: {\n\t\tpricing: vec_map.VecMap(Range, bcs.u64()),\n\t},\n});\nexport const RenewalConfig = new MoveStruct({\n\tname: `${$moduleName}::RenewalConfig`,\n\tfields: {\n\t\tconfig: PricingConfig,\n\t},\n});\nexport interface CalculateBasePriceArguments {\n\tconfig: TransactionArgument;\n\tlength: RawTransactionArgument<number | bigint>;\n}\nexport interface CalculateBasePriceOptions {\n\tpackage?: string;\n\targuments:\n\t\t| CalculateBasePriceArguments\n\t\t| [config: TransactionArgument, length: RawTransactionArgument<number | bigint>];\n}\n/**\n * Calculates the base price for a given length.\n *\n * - Base price type is abstracted away. We can switch to a different base. Our\n * core base will become USDC.\n * - The price is calculated based on the length of the domain name and the\n * available ranges.\n */\nexport function calculateBasePrice(options: CalculateBasePriceOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['config', 'length'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'calculate_base_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewArguments {\n\tranges: TransactionArgument;\n\tprices: RawTransactionArgument<Array<number | bigint>>;\n}\nexport interface NewOptions {\n\tpackage?: string;\n\targuments:\n\t\t| NewArguments\n\t\t| [ranges: TransactionArgument, prices: RawTransactionArgument<Array<number | bigint>>];\n}\n/**\n * Creates a new PricingConfig with the given ranges and prices.\n *\n * - The ranges should be sorted in `ascending order` and should not overlap.\n * - The length of the ranges and prices should be the same.\n *\n * All the ranges are inclusive (e.g. [3,5]: includes 3, 4, and 5).\n */\nexport function _new(options: NewOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['vector<null>', 'vector<u64>'] satisfies (string | null)[];\n\tconst parameterNames = ['ranges', 'prices'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'new',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsBetweenInclusiveArguments {\n\trange: TransactionArgument;\n\tlength: RawTransactionArgument<number | bigint>;\n}\nexport interface IsBetweenInclusiveOptions {\n\tpackage?: string;\n\targuments:\n\t\t| IsBetweenInclusiveArguments\n\t\t| [range: TransactionArgument, length: RawTransactionArgument<number | bigint>];\n}\n/** Checks if the value is between the range (inclusive). */\nexport function isBetweenInclusive(options: IsBetweenInclusiveOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['range', 'length'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'is_between_inclusive',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PricingArguments {\n\tconfig: TransactionArgument;\n}\nexport interface PricingOptions {\n\tpackage?: string;\n\targuments: PricingArguments | [config: TransactionArgument];\n}\n/** Returns the pricing config for usage in external apps. */\nexport function pricing(options: PricingOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'pricing',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewRenewalConfigArguments {\n\tconfig: TransactionArgument;\n}\nexport interface NewRenewalConfigOptions {\n\tpackage?: string;\n\targuments: NewRenewalConfigArguments | [config: TransactionArgument];\n}\n/** Constructor for Renewal<T> that initializes it with a PricingConfig. */\nexport function newRenewalConfig(options: NewRenewalConfigOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'new_renewal_config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NewRangeArguments {\n\trange: RawTransactionArgument<Array<number | bigint>>;\n}\nexport interface NewRangeOptions {\n\tpackage?: string;\n\targuments: NewRangeArguments | [range: RawTransactionArgument<Array<number | bigint>>];\n}\nexport function newRange(options: NewRangeOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['vector<u64>'] satisfies (string | null)[];\n\tconst parameterNames = ['range'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'new_range',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ConfigArguments {\n\trenewal: TransactionArgument;\n}\nexport interface ConfigOptions {\n\tpackage?: string;\n\targuments: ConfigArguments | [renewal: TransactionArgument];\n}\nexport function config(options: ConfigOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['renewal'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pricing_config',\n\t\t\tfunction: 'config',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;AAYA,MAAM,cAAc;AACpB,MAAa,QAAQ,IAAI,UAAU;CAClC,MAAM,GAAG,YAAY;CACrB,QAAQ,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC;AAC9B,CAAC;AACD,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,SAASA,OAAe,OAAO,IAAI,IAAI,CAAC,EACzC;AACD,CAAC;AACD,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,QAAQ,cACT;AACD,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { MoveStruct, normalizeMoveArguments } from "../utils/index.mjs";
|
|
2
2
|
import { Data } from "./data.mjs";
|
|
3
3
|
import { bcs } from "@haneullabs/haneul/bcs";
|
|
4
|
-
|
|
5
4
|
//#region src/contracts/haneulns_coupons/coupon_house.ts
|
|
6
5
|
/**************************************************************
|
|
7
6
|
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
@@ -17,15 +16,15 @@ import { bcs } from "@haneullabs/haneul/bcs";
|
|
|
17
16
|
* to claim names and add earnings to the registry.
|
|
18
17
|
*/
|
|
19
18
|
const $moduleName = "@haneulns/coupons::coupon_house";
|
|
20
|
-
|
|
19
|
+
new MoveStruct({
|
|
21
20
|
name: `${$moduleName}::CouponsApp`,
|
|
22
21
|
fields: { dummy_field: bcs.bool() }
|
|
23
22
|
});
|
|
24
|
-
|
|
23
|
+
new MoveStruct({
|
|
25
24
|
name: `${$moduleName}::AppKey<phantom A>`,
|
|
26
25
|
fields: { dummy_field: bcs.bool() }
|
|
27
26
|
});
|
|
28
|
-
|
|
27
|
+
new MoveStruct({
|
|
29
28
|
name: `${$moduleName}::CouponHouse`,
|
|
30
29
|
fields: {
|
|
31
30
|
data: Data,
|
|
@@ -53,7 +52,7 @@ function applyCoupon(options) {
|
|
|
53
52
|
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
|
-
|
|
57
55
|
//#endregion
|
|
58
56
|
export { applyCoupon };
|
|
57
|
+
|
|
59
58
|
//# sourceMappingURL=coupon_house.mjs.map
|
|
@@ -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, type TransactionArgument } 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: TransactionArgument;\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: TransactionArgument,\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: TransactionArgument;\n}\nexport interface AssertVersionIsValidOptions {\n\tpackage?: string;\n\targuments: AssertVersionIsValidArguments | [self: TransactionArgument];\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: TransactionArgument;\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: TransactionArgument,\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: TransactionArgument;\n\tcode: RawTransactionArgument<string>;\n\tkind: RawTransactionArgument<number>;\n\tamount: RawTransactionArgument<number | bigint>;\n\trules: TransactionArgument;\n}\nexport interface AppAddCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AppAddCouponArguments\n\t\t| [\n\t\t\t\tdata: TransactionArgument,\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: TransactionArgument,\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: TransactionArgument;\n\tcode: RawTransactionArgument<string>;\n}\nexport interface AppRemoveCouponOptions {\n\tpackage?: string;\n\targuments:\n\t\t| AppRemoveCouponArguments\n\t\t| [data: TransactionArgument, 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;AACM,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACqB,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AAC0B,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,MAAMA;EACN,SAAS,IAAI,GAAG;EAChB,SAAS,IAAI;CACd;AACD,CAAC;AAuCD,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAuB;CAAmB;CAI9E,MAAM,iBAAiB;EAAC;EAAY;EAAU;CAAY;CAC1D,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,cAAc;CACpF,CAAC;AACH"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { MoveStruct } from "../utils/index.mjs";
|
|
2
2
|
import { Bag } from "./deps/haneul/bag.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/contracts/haneulns_coupons/data.ts
|
|
5
|
-
/**************************************************************
|
|
6
|
-
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
7
|
-
**************************************************************/
|
|
8
|
-
const $moduleName = "@haneulns/coupons::data";
|
|
9
3
|
const Data = new MoveStruct({
|
|
10
|
-
name:
|
|
4
|
+
name: `@haneulns/coupons::data::Data`,
|
|
11
5
|
fields: { coupons: Bag }
|
|
12
6
|
});
|
|
13
|
-
|
|
14
7
|
//#endregion
|
|
15
8
|
export { Data };
|
|
9
|
+
|
|
16
10
|
//# sourceMappingURL=data.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.mjs","names":["bag.Bag"],"sources":["../../../src/contracts/haneulns_coupons/data.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { MoveStruct } from '../utils/index.js';\nimport * as bag from './deps/haneul/bag.js';\nconst $moduleName = '@haneulns/coupons::data';\nexport const Data = new MoveStruct({\n\tname: `${$moduleName}::Data`,\n\tfields: {\n\t\tcoupons: bag.Bag,\n\t},\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.mjs","names":["bag.Bag"],"sources":["../../../src/contracts/haneulns_coupons/data.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { MoveStruct } from '../utils/index.js';\nimport * as bag from './deps/haneul/bag.js';\nconst $moduleName = '@haneulns/coupons::data';\nexport const Data = new MoveStruct({\n\tname: `${$moduleName}::Data`,\n\tfields: {\n\t\tcoupons: bag.Bag,\n\t},\n});\n"],"mappings":";;AAMA,MAAa,OAAO,IAAI,WAAW;CAClC,MAAM;CACN,QAAQ,EACP,SAASA,IACV;AACD,CAAC"}
|