@haneullabs/haneulns 0.1.0 → 1.0.2

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.
Files changed (222) hide show
  1. package/CHANGELOG.md +125 -53
  2. package/README.md +3 -3
  3. package/dist/constants.d.mts +16 -0
  4. package/dist/constants.d.mts.map +1 -0
  5. package/dist/constants.mjs +90 -0
  6. package/dist/constants.mjs.map +1 -0
  7. package/dist/contracts/haneulns/controller.mjs +62 -0
  8. package/dist/contracts/haneulns/controller.mjs.map +1 -0
  9. package/dist/contracts/haneulns/deps/haneul/balance.mjs +21 -0
  10. package/dist/contracts/haneulns/deps/haneul/balance.mjs.map +1 -0
  11. package/dist/contracts/haneulns/deps/haneul/vec_map.mjs +37 -0
  12. package/dist/contracts/haneulns/deps/haneul/vec_map.mjs.map +1 -0
  13. package/dist/contracts/haneulns/deps/std/type_name.mjs +17 -0
  14. package/dist/contracts/haneulns/deps/std/type_name.mjs.map +1 -0
  15. package/dist/contracts/haneulns/domain.mjs +23 -0
  16. package/dist/contracts/haneulns/domain.mjs.map +1 -0
  17. package/dist/contracts/haneulns/haneulns.mjs +68 -0
  18. package/dist/contracts/haneulns/haneulns.mjs.map +1 -0
  19. package/dist/contracts/haneulns/name_record.mjs +27 -0
  20. package/dist/contracts/haneulns/name_record.mjs.map +1 -0
  21. package/dist/contracts/haneulns/payment.mjs +162 -0
  22. package/dist/contracts/haneulns/payment.mjs.map +1 -0
  23. package/dist/contracts/haneulns/pricing_config.mjs +25 -0
  24. package/dist/contracts/haneulns/pricing_config.mjs.map +1 -0
  25. package/dist/contracts/haneulns_coupons/coupon_house.mjs +59 -0
  26. package/dist/contracts/haneulns_coupons/coupon_house.mjs.map +1 -0
  27. package/dist/contracts/haneulns_coupons/data.mjs +16 -0
  28. package/dist/contracts/haneulns_coupons/data.mjs.map +1 -0
  29. package/dist/contracts/haneulns_coupons/deps/haneul/bag.mjs +43 -0
  30. package/dist/contracts/haneulns_coupons/deps/haneul/bag.mjs.map +1 -0
  31. package/dist/contracts/haneulns_discounts/deps/haneul/linked_table.mjs +27 -0
  32. package/dist/contracts/haneulns_discounts/deps/haneul/linked_table.mjs.map +1 -0
  33. package/dist/contracts/haneulns_discounts/deps/haneulns/pricing_config.mjs +16 -0
  34. package/dist/contracts/haneulns_discounts/deps/haneulns/pricing_config.mjs.map +1 -0
  35. package/dist/contracts/haneulns_discounts/discounts.mjs +51 -0
  36. package/dist/contracts/haneulns_discounts/discounts.mjs.map +1 -0
  37. package/dist/contracts/haneulns_discounts/free_claims.mjs +60 -0
  38. package/dist/contracts/haneulns_discounts/free_claims.mjs.map +1 -0
  39. package/dist/contracts/haneulns_payments/deps/haneul/vec_map.mjs +37 -0
  40. package/dist/contracts/haneulns_payments/deps/haneul/vec_map.mjs.map +1 -0
  41. package/dist/contracts/haneulns_payments/deps/std/type_name.mjs +17 -0
  42. package/dist/contracts/haneulns_payments/deps/std/type_name.mjs.map +1 -0
  43. package/dist/contracts/haneulns_payments/payments.mjs +145 -0
  44. package/dist/contracts/haneulns_payments/payments.mjs.map +1 -0
  45. package/dist/contracts/pyth/data_source.mjs +20 -0
  46. package/dist/contracts/pyth/data_source.mjs.map +1 -0
  47. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
  48. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
  49. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
  50. package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
  51. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs +16 -0
  52. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs.map +1 -0
  53. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs +16 -0
  54. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs.map +1 -0
  55. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs +16 -0
  56. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs.map +1 -0
  57. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs +16 -0
  58. package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs.map +1 -0
  59. package/dist/contracts/pyth/state.mjs +28 -0
  60. package/dist/contracts/pyth/state.mjs.map +1 -0
  61. package/dist/contracts/utils/index.mjs +120 -0
  62. package/dist/contracts/utils/index.mjs.map +1 -0
  63. package/dist/contracts/wormhole/bytes32.mjs +16 -0
  64. package/dist/contracts/wormhole/bytes32.mjs.map +1 -0
  65. package/dist/contracts/wormhole/consumed_vaas.mjs +16 -0
  66. package/dist/contracts/wormhole/consumed_vaas.mjs.map +1 -0
  67. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +16 -0
  68. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -0
  69. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
  70. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
  71. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
  72. package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
  73. package/dist/contracts/wormhole/external_address.mjs +16 -0
  74. package/dist/contracts/wormhole/external_address.mjs.map +1 -0
  75. package/dist/contracts/wormhole/fee_collector.mjs +20 -0
  76. package/dist/contracts/wormhole/fee_collector.mjs.map +1 -0
  77. package/dist/contracts/wormhole/set.mjs +16 -0
  78. package/dist/contracts/wormhole/set.mjs.map +1 -0
  79. package/dist/contracts/wormhole/state.mjs +31 -0
  80. package/dist/contracts/wormhole/state.mjs.map +1 -0
  81. package/dist/haneulns-client.d.mts +76 -0
  82. package/dist/haneulns-client.d.mts.map +1 -0
  83. package/dist/haneulns-client.mjs +205 -0
  84. package/dist/haneulns-client.mjs.map +1 -0
  85. package/dist/haneulns-transaction.d.mts +144 -0
  86. package/dist/haneulns-transaction.d.mts.map +1 -0
  87. package/dist/haneulns-transaction.mjs +384 -0
  88. package/dist/haneulns-transaction.mjs.map +1 -0
  89. package/dist/helpers.d.mts +22 -0
  90. package/dist/helpers.d.mts.map +1 -0
  91. package/dist/helpers.mjs +45 -0
  92. package/dist/helpers.mjs.map +1 -0
  93. package/dist/index.d.mts +6 -0
  94. package/dist/index.mjs +6 -0
  95. package/dist/pyth/PriceServiceConnection.mjs +35 -0
  96. package/dist/pyth/PriceServiceConnection.mjs.map +1 -0
  97. package/dist/pyth/pyth-helpers.mjs +18 -0
  98. package/dist/pyth/pyth-helpers.mjs.map +1 -0
  99. package/dist/pyth/pyth.mjs +219 -0
  100. package/dist/pyth/pyth.mjs.map +1 -0
  101. package/dist/types.d.mts +88 -0
  102. package/dist/types.d.mts.map +1 -0
  103. package/package.json +27 -23
  104. package/src/contracts/haneulns/admin.ts +114 -0
  105. package/src/contracts/haneulns/auction.ts +341 -0
  106. package/src/contracts/haneulns/config.ts +225 -0
  107. package/src/contracts/haneulns/constants.ts +167 -0
  108. package/src/contracts/haneulns/controller.ts +269 -0
  109. package/src/contracts/haneulns/core_config.ts +208 -0
  110. package/src/contracts/haneulns/deps/haneul/balance.ts +19 -0
  111. package/src/contracts/haneulns/deps/haneul/coin.ts +20 -0
  112. package/src/contracts/haneulns/deps/haneul/linked_table.ts +27 -0
  113. package/src/contracts/haneulns/deps/haneul/table.ts +36 -0
  114. package/src/contracts/haneulns/deps/haneul/vec_map.ts +33 -0
  115. package/src/contracts/haneulns/deps/haneul/vec_set.ts +22 -0
  116. package/src/contracts/haneulns/deps/std/type_name.ts +24 -0
  117. package/src/contracts/haneulns/domain.ts +230 -0
  118. package/src/contracts/haneulns/haneulns.ts +456 -0
  119. package/src/contracts/haneulns/haneulns_registration.ts +200 -0
  120. package/src/contracts/haneulns/name_record.ts +315 -0
  121. package/src/contracts/haneulns/payment.ts +444 -0
  122. package/src/contracts/haneulns/pricing_config.ts +190 -0
  123. package/src/contracts/haneulns/registry.ts +514 -0
  124. package/src/contracts/haneulns/subdomain_registration.ts +63 -0
  125. package/src/contracts/haneulns/update_image.ts +15 -0
  126. package/src/contracts/haneulns_coupons/constants.ts +45 -0
  127. package/src/contracts/haneulns_coupons/coupon.ts +15 -0
  128. package/src/contracts/haneulns_coupons/coupon_house.ts +412 -0
  129. package/src/contracts/haneulns_coupons/data.ts +12 -0
  130. package/src/contracts/haneulns_coupons/deps/haneul/bag.ts +41 -0
  131. package/src/contracts/haneulns_coupons/range.ts +101 -0
  132. package/src/contracts/haneulns_coupons/rules.ts +342 -0
  133. package/src/contracts/haneulns_discounts/deps/haneul/linked_table.ts +27 -0
  134. package/src/contracts/haneulns_discounts/deps/haneulns/pricing_config.ts +10 -0
  135. package/src/contracts/haneulns_discounts/discounts.ts +156 -0
  136. package/src/contracts/haneulns_discounts/free_claims.ts +161 -0
  137. package/src/contracts/haneulns_discounts/house.ts +47 -0
  138. package/src/contracts/haneulns_payments/deps/haneul/vec_map.ts +33 -0
  139. package/src/contracts/haneulns_payments/deps/std/type_name.ts +24 -0
  140. package/src/contracts/haneulns_payments/payments.ts +257 -0
  141. package/src/contracts/haneulns_temp_subdomain_proxy/subdomain_proxy.ts +343 -0
  142. package/src/contracts/pyth/data_source.ts +15 -0
  143. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  144. package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  145. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.ts +12 -0
  146. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.ts +13 -0
  147. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.ts +13 -0
  148. package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.ts +12 -0
  149. package/src/contracts/pyth/state.ts +22 -0
  150. package/src/contracts/utils/index.ts +234 -0
  151. package/src/contracts/wormhole/bytes32.ts +12 -0
  152. package/src/contracts/wormhole/consumed_vaas.ts +13 -0
  153. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts +12 -0
  154. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
  155. package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
  156. package/src/contracts/wormhole/external_address.ts +13 -0
  157. package/src/contracts/wormhole/fee_collector.ts +15 -0
  158. package/src/contracts/wormhole/set.ts +12 -0
  159. package/src/contracts/wormhole/state.ts +25 -0
  160. package/src/haneulns-client.ts +115 -160
  161. package/src/haneulns-transaction.ts +142 -116
  162. package/src/index.ts +3 -3
  163. package/src/pyth/pyth.ts +55 -71
  164. package/src/types.ts +5 -7
  165. package/dist/cjs/constants.d.ts +0 -11
  166. package/dist/cjs/constants.js +0 -120
  167. package/dist/cjs/constants.js.map +0 -7
  168. package/dist/cjs/haneulns-client.d.ts +0 -40
  169. package/dist/cjs/haneulns-client.js +0 -261
  170. package/dist/cjs/haneulns-client.js.map +0 -7
  171. package/dist/cjs/haneulns-transaction.d.ts +0 -105
  172. package/dist/cjs/haneulns-transaction.js +0 -465
  173. package/dist/cjs/haneulns-transaction.js.map +0 -7
  174. package/dist/cjs/helpers.d.ts +0 -18
  175. package/dist/cjs/helpers.js +0 -63
  176. package/dist/cjs/helpers.js.map +0 -7
  177. package/dist/cjs/index.d.ts +0 -5
  178. package/dist/cjs/index.js +0 -39
  179. package/dist/cjs/index.js.map +0 -7
  180. package/dist/cjs/package.json +0 -5
  181. package/dist/cjs/pyth/PriceServiceConnection.d.ts +0 -26
  182. package/dist/cjs/pyth/PriceServiceConnection.js +0 -68
  183. package/dist/cjs/pyth/PriceServiceConnection.js.map +0 -7
  184. package/dist/cjs/pyth/pyth-helpers.d.ts +0 -7
  185. package/dist/cjs/pyth/pyth-helpers.js +0 -36
  186. package/dist/cjs/pyth/pyth-helpers.js.map +0 -7
  187. package/dist/cjs/pyth/pyth.d.ts +0 -66
  188. package/dist/cjs/pyth/pyth.js +0 -270
  189. package/dist/cjs/pyth/pyth.js.map +0 -7
  190. package/dist/cjs/types.d.ts +0 -89
  191. package/dist/cjs/types.js +0 -17
  192. package/dist/cjs/types.js.map +0 -7
  193. package/dist/esm/constants.d.ts +0 -11
  194. package/dist/esm/constants.js +0 -100
  195. package/dist/esm/constants.js.map +0 -7
  196. package/dist/esm/haneulns-client.d.ts +0 -40
  197. package/dist/esm/haneulns-client.js +0 -249
  198. package/dist/esm/haneulns-client.js.map +0 -7
  199. package/dist/esm/haneulns-transaction.d.ts +0 -105
  200. package/dist/esm/haneulns-transaction.js +0 -445
  201. package/dist/esm/haneulns-transaction.js.map +0 -7
  202. package/dist/esm/helpers.d.ts +0 -18
  203. package/dist/esm/helpers.js +0 -43
  204. package/dist/esm/helpers.js.map +0 -7
  205. package/dist/esm/index.d.ts +0 -5
  206. package/dist/esm/index.js +0 -28
  207. package/dist/esm/index.js.map +0 -7
  208. package/dist/esm/package.json +0 -5
  209. package/dist/esm/pyth/PriceServiceConnection.d.ts +0 -26
  210. package/dist/esm/pyth/PriceServiceConnection.js +0 -38
  211. package/dist/esm/pyth/PriceServiceConnection.js.map +0 -7
  212. package/dist/esm/pyth/pyth-helpers.d.ts +0 -7
  213. package/dist/esm/pyth/pyth-helpers.js +0 -16
  214. package/dist/esm/pyth/pyth-helpers.js.map +0 -7
  215. package/dist/esm/pyth/pyth.d.ts +0 -66
  216. package/dist/esm/pyth/pyth.js +0 -250
  217. package/dist/esm/pyth/pyth.js.map +0 -7
  218. package/dist/esm/types.d.ts +0 -89
  219. package/dist/esm/types.js +0 -1
  220. package/dist/esm/types.js.map +0 -7
  221. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  222. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,62 @@
1
+ import { MoveStruct, MoveTuple, normalizeMoveArguments } from "../utils/index.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+
4
+ //#region src/contracts/haneulns/controller.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ const $moduleName = "@haneulns/core::controller";
9
+ const ControllerV2 = new MoveTuple({
10
+ name: `${$moduleName}::ControllerV2`,
11
+ fields: [bcs.bool()]
12
+ });
13
+ const Controller = new MoveStruct({
14
+ name: `${$moduleName}::Controller`,
15
+ fields: { dummy_field: bcs.bool() }
16
+ });
17
+ /** Set the reverse lookup address for the domain */
18
+ function setReverseLookup(options) {
19
+ const packageAddress = options.package ?? "@haneulns/core";
20
+ const argumentsTypes = [null, "0x1::string::String"];
21
+ const parameterNames = ["haneulns", "domainName"];
22
+ return (tx) => tx.moveCall({
23
+ package: packageAddress,
24
+ module: "controller",
25
+ function: "set_reverse_lookup",
26
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
27
+ });
28
+ }
29
+ function burnExpired(options) {
30
+ const packageAddress = options.package ?? "@haneulns/core";
31
+ const argumentsTypes = [
32
+ null,
33
+ null,
34
+ "0x2::clock::Clock"
35
+ ];
36
+ const parameterNames = ["haneulns", "nft"];
37
+ return (tx) => tx.moveCall({
38
+ package: packageAddress,
39
+ module: "controller",
40
+ function: "burn_expired",
41
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
42
+ });
43
+ }
44
+ function burnExpiredSubname(options) {
45
+ const packageAddress = options.package ?? "@haneulns/core";
46
+ const argumentsTypes = [
47
+ null,
48
+ null,
49
+ "0x2::clock::Clock"
50
+ ];
51
+ const parameterNames = ["haneulns", "nft"];
52
+ return (tx) => tx.moveCall({
53
+ package: packageAddress,
54
+ module: "controller",
55
+ function: "burn_expired_subname",
56
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
57
+ });
58
+ }
59
+
60
+ //#endregion
61
+ export { burnExpired, burnExpiredSubname, setReverseLookup };
62
+ //# sourceMappingURL=controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.mjs","names":[],"sources":["../../../src/contracts/haneulns/controller.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';\nconst $moduleName = '@haneulns/core::controller';\nexport const ControllerV2 = new MoveTuple({\n\tname: `${$moduleName}::ControllerV2`,\n\tfields: [bcs.bool()],\n});\nexport const Controller = new MoveStruct({\n\tname: `${$moduleName}::Controller`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport interface SetTargetAddressArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n\tnewTarget: RawTransactionArgument<string | null>;\n}\nexport interface SetTargetAddressOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetTargetAddressArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t\t\tnewTarget: RawTransactionArgument<string | null>,\n\t\t ];\n}\n/** Set the target address of a domain. */\nexport function setTargetAddress(options: SetTargetAddressOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\t'0x1::option::Option<address>',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'nft', 'newTarget'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'set_target_address',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetReverseLookupArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tdomainName: RawTransactionArgument<string>;\n}\nexport interface SetReverseLookupOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetReverseLookupArguments\n\t\t| [haneulns: RawTransactionArgument<string>, domainName: RawTransactionArgument<string>];\n}\n/** Set the reverse lookup address for the domain */\nexport function setReverseLookup(options: SetReverseLookupOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'domainName'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'set_reverse_lookup',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface UnsetReverseLookupArguments {\n\thaneulns: RawTransactionArgument<string>;\n}\nexport interface UnsetReverseLookupOptions {\n\tpackage?: string;\n\targuments: UnsetReverseLookupArguments | [haneulns: RawTransactionArgument<string>];\n}\n/** User-facing function - unset the reverse lookup address for the domain. */\nexport function unsetReverseLookup(options: UnsetReverseLookupOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [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: 'controller',\n\t\t\tfunction: 'unset_reverse_lookup',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetObjectReverseLookupArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tobj: RawTransactionArgument<string>;\n\tdomainName: RawTransactionArgument<string>;\n}\nexport interface SetObjectReverseLookupOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetObjectReverseLookupArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tobj: RawTransactionArgument<string>,\n\t\t\t\tdomainName: RawTransactionArgument<string>,\n\t\t ];\n}\n/**\n * Allows setting the reverse lookup address for an object. Expects a mutable\n * reference of the object.\n */\nexport function setObjectReverseLookup(options: SetObjectReverseLookupOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x2::object::ID', '0x1::string::String'] satisfies (\n\t\t| string\n\t\t| null\n\t)[];\n\tconst parameterNames = ['haneulns', 'obj', 'domainName'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'set_object_reverse_lookup',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface UnsetObjectReverseLookupArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tobj: RawTransactionArgument<string>;\n}\nexport interface UnsetObjectReverseLookupOptions {\n\tpackage?: string;\n\targuments:\n\t\t| UnsetObjectReverseLookupArguments\n\t\t| [haneulns: RawTransactionArgument<string>, obj: RawTransactionArgument<string>];\n}\n/**\n * Allows unsetting the reverse lookup address for an object. Expects a mutable\n * reference of the object.\n */\nexport function unsetObjectReverseLookup(options: UnsetObjectReverseLookupOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, '0x2::object::ID'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'obj'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'unset_object_reverse_lookup',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SetUserDataArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n\tkey: RawTransactionArgument<string>;\n\tvalue: RawTransactionArgument<string>;\n}\nexport interface SetUserDataOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SetUserDataArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t\t\tkey: RawTransactionArgument<string>,\n\t\t\t\tvalue: RawTransactionArgument<string>,\n\t\t ];\n}\n/** User-facing function - add a new key-value pair to the name record's data. */\nexport function setUserData(options: SetUserDataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\t'0x1::string::String',\n\t\t'0x1::string::String',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'nft', 'key', 'value'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'set_user_data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface UnsetUserDataArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n\tkey: RawTransactionArgument<string>;\n}\nexport interface UnsetUserDataOptions {\n\tpackage?: string;\n\targuments:\n\t\t| UnsetUserDataArguments\n\t\t| [\n\t\t\t\thaneulns: RawTransactionArgument<string>,\n\t\t\t\tnft: RawTransactionArgument<string>,\n\t\t\t\tkey: RawTransactionArgument<string>,\n\t\t ];\n}\n/** User-facing function - remove a key from the name record's data. */\nexport function unsetUserData(options: UnsetUserDataOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\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', 'nft', 'key'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'unset_user_data',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BurnExpiredArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n}\nexport interface BurnExpiredOptions {\n\tpackage?: string;\n\targuments:\n\t\t| BurnExpiredArguments\n\t\t| [haneulns: RawTransactionArgument<string>, nft: RawTransactionArgument<string>];\n}\nexport function burnExpired(options: BurnExpiredOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'nft'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'burn_expired',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BurnExpiredSubnameArguments {\n\thaneulns: RawTransactionArgument<string>;\n\tnft: RawTransactionArgument<string>;\n}\nexport interface BurnExpiredSubnameOptions {\n\tpackage?: string;\n\targuments:\n\t\t| BurnExpiredSubnameArguments\n\t\t| [haneulns: RawTransactionArgument<string>, nft: RawTransactionArgument<string>];\n}\nexport function burnExpiredSubname(options: BurnExpiredSubnameOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['haneulns', 'nft'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'controller',\n\t\t\tfunction: 'burn_expired_subname',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;AAWA,MAAM,cAAc;AACpB,MAAa,eAAe,IAAI,UAAU;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ,CAAC,IAAI,MAAM,CAAC;CACpB,CAAC;AACF,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;;AA6CF,SAAgB,iBAAiB,SAAkC;CAClE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB,CAAC,MAAM,sBAAsB;CACpD,MAAM,iBAAiB,CAAC,YAAY,aAAa;AACjD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;AA+JJ,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAoB;CACxD,MAAM,iBAAiB,CAAC,YAAY,MAAM;AAC1C,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;AAYJ,SAAgB,mBAAmB,SAAoC;CACtE,MAAM,iBAAiB,QAAQ,WAAW;CAC1C,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAoB;CACxD,MAAM,iBAAiB,CAAC,YAAY,MAAM;AAC1C,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { MoveStruct } from "../../../utils/index.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+
4
+ //#region src/contracts/haneulns/deps/haneul/balance.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ /**
9
+ * A storable handler for Balances in general. Is used in the `Coin` module to
10
+ * allow balance operations and can be used to implement custom coins with `Supply`
11
+ * and `Balance`s.
12
+ */
13
+ const $moduleName = "0x2::balance";
14
+ const Balance = new MoveStruct({
15
+ name: `${$moduleName}::Balance<phantom T>`,
16
+ fields: { value: bcs.u64() }
17
+ });
18
+
19
+ //#endregion
20
+ export { Balance };
21
+ //# sourceMappingURL=balance.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.mjs","names":[],"sources":["../../../../../src/contracts/haneulns/deps/haneul/balance.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * A storable handler for Balances in general. Is used in the `Coin` module to\n * allow balance operations and can be used to implement custom coins with `Supply`\n * and `Balance`s.\n */\n\nimport { MoveStruct } from '../../../utils/index.js';\nimport { bcs } from '@haneullabs/haneul/bcs';\nconst $moduleName = '0x2::balance';\nexport const Balance = new MoveStruct({\n\tname: `${$moduleName}::Balance<phantom T>`,\n\tfields: {\n\t\tvalue: bcs.u64(),\n\t},\n});\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,cAAc;AACpB,MAAa,UAAU,IAAI,WAAW;CACrC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,OAAO,IAAI,KAAK,EAChB;CACD,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { MoveStruct } from "../../../utils/index.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+
4
+ //#region src/contracts/haneulns/deps/haneul/vec_map.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ const $moduleName = "0x2::vec_map";
9
+ /** An entry in the map */
10
+ function Entry(...typeParameters) {
11
+ return new MoveStruct({
12
+ name: `${$moduleName}::Entry<${typeParameters[0].name}, ${typeParameters[1].name}>`,
13
+ fields: {
14
+ key: typeParameters[0],
15
+ value: typeParameters[1]
16
+ }
17
+ });
18
+ }
19
+ /**
20
+ * A map data structure backed by a vector. The map is guaranteed not to contain
21
+ * duplicate keys, but entries are _not_ sorted by key--entries are included in
22
+ * insertion order. All operations are O(N) in the size of the map--the intention
23
+ * of this data structure is only to provide the convenience of programming against
24
+ * a map API. Large maps should use handwritten parent/child relationships instead.
25
+ * Maps that need sorted iteration rather than insertion order iteration should
26
+ * also be handwritten.
27
+ */
28
+ function VecMap(...typeParameters) {
29
+ return new MoveStruct({
30
+ name: `${$moduleName}::VecMap<${typeParameters[0].name}, ${typeParameters[1].name}>`,
31
+ fields: { contents: bcs.vector(Entry(typeParameters[0], typeParameters[1])) }
32
+ });
33
+ }
34
+
35
+ //#endregion
36
+ export { VecMap };
37
+ //# sourceMappingURL=vec_map.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec_map.mjs","names":[],"sources":["../../../../../src/contracts/haneulns/deps/haneul/vec_map.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { type BcsType, bcs } from '@haneullabs/haneul/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\nconst $moduleName = '0x2::vec_map';\n/** An entry in the map */\nexport function Entry<K extends BcsType<any>, V extends BcsType<any>>(...typeParameters: [K, V]) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::Entry<${typeParameters[0].name as K['name']}, ${typeParameters[1].name as V['name']}>`,\n\t\tfields: {\n\t\t\tkey: typeParameters[0],\n\t\t\tvalue: typeParameters[1],\n\t\t},\n\t});\n}\n/**\n * A map data structure backed by a vector. The map is guaranteed not to contain\n * duplicate keys, but entries are _not_ sorted by key--entries are included in\n * insertion order. All operations are O(N) in the size of the map--the intention\n * of this data structure is only to provide the convenience of programming against\n * a map API. Large maps should use handwritten parent/child relationships instead.\n * Maps that need sorted iteration rather than insertion order iteration should\n * also be handwritten.\n */\nexport function VecMap<K extends BcsType<any>, V extends BcsType<any>>(...typeParameters: [K, V]) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::VecMap<${typeParameters[0].name as K['name']}, ${typeParameters[1].name as V['name']}>`,\n\t\tfields: {\n\t\t\tcontents: bcs.vector(Entry(typeParameters[0], typeParameters[1])),\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;;AAKA,MAAM,cAAc;;AAEpB,SAAgB,MAAsD,GAAG,gBAAwB;AAChG,QAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,UAAU,eAAe,GAAG,KAAkB,IAAI,eAAe,GAAG,KAAkB;EAC3G,QAAQ;GACP,KAAK,eAAe;GACpB,OAAO,eAAe;GACtB;EACD,CAAC;;;;;;;;;;;AAWH,SAAgB,OAAuD,GAAG,gBAAwB;AACjG,QAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,WAAW,eAAe,GAAG,KAAkB,IAAI,eAAe,GAAG,KAAkB;EAC5G,QAAQ,EACP,UAAU,IAAI,OAAO,MAAM,eAAe,IAAI,eAAe,GAAG,CAAC,EACjE;EACD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { MoveStruct } from "../../../utils/index.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+
4
+ //#region src/contracts/haneulns/deps/std/type_name.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ /** Functionality for converting Move types into values. Use with care! */
9
+ const $moduleName = "std::type_name";
10
+ const TypeName = new MoveStruct({
11
+ name: `${$moduleName}::TypeName`,
12
+ fields: { name: bcs.string() }
13
+ });
14
+
15
+ //#endregion
16
+ export { TypeName };
17
+ //# sourceMappingURL=type_name.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type_name.mjs","names":[],"sources":["../../../../../src/contracts/haneulns/deps/std/type_name.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/** Functionality for converting Move types into values. Use with care! */\n\nimport { MoveStruct } from '../../../utils/index.js';\nimport { bcs } from '@haneullabs/haneul/bcs';\nconst $moduleName = 'std::type_name';\nexport const TypeName = new MoveStruct({\n\tname: `${$moduleName}::TypeName`,\n\tfields: {\n\t\t/**\n\t\t * String representation of the type. All types are represented using their source\n\t\t * syntax: \"u8\", \"u64\", \"bool\", \"address\", \"vector\", and so on for primitive types.\n\t\t * Struct types are represented as fully qualified type names; e.g.\n\t\t * `00000000000000000000000000000001::string::String` or\n\t\t * `0000000000000000000000000000000a::module_name1::type_name1<0000000000000000000000000000000a::module_name2::type_name2<u64>>`\n\t\t * Addresses are hex-encoded lowercase values of length ADDRESS_LENGTH (16, 20, or\n\t\t * 32 depending on the Move platform)\n\t\t */\n\t\tname: bcs.string(),\n\t},\n});\n"],"mappings":";;;;;;;;AAQA,MAAM,cAAc;AACpB,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ,EAUP,MAAM,IAAI,QAAQ,EAClB;CACD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { MoveStruct } from "../utils/index.mjs";
2
+ import { bcs } from "@haneullabs/haneul/bcs";
3
+
4
+ //#region src/contracts/haneulns/domain.ts
5
+ /**************************************************************
6
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
7
+ **************************************************************/
8
+ /**
9
+ * Defines the `Domain` type and helper functions.
10
+ *
11
+ * Domains are structured similar to their web2 counterpart and the rules
12
+ * determining what a valid domain is can be found here:
13
+ * https://en.wikipedia.org/wiki/Domain_name#Domain_name_syntax
14
+ */
15
+ const $moduleName = "@haneulns/core::domain";
16
+ const Domain = new MoveStruct({
17
+ name: `${$moduleName}::Domain`,
18
+ fields: { labels: bcs.vector(bcs.string()) }
19
+ });
20
+
21
+ //#endregion
22
+ export { Domain };
23
+ //# sourceMappingURL=domain.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.mjs","names":[],"sources":["../../../src/contracts/haneulns/domain.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Defines the `Domain` type and helper functions.\n *\n * Domains are structured similar to their web2 counterpart and the rules\n * determining what a valid domain is can be found here:\n * https://en.wikipedia.org/wiki/Domain_name#Domain_name_syntax\n */\n\nimport { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { type Transaction } from '@haneullabs/haneul/transactions';\nconst $moduleName = '@haneulns/core::domain';\nexport const Domain = new MoveStruct({\n\tname: `${$moduleName}::Domain`,\n\tfields: {\n\t\t/**\n\t\t * Vector of labels that make up a domain.\n\t\t *\n\t\t * Labels are stored in reverse order such that the TLD is always in position `0`.\n\t\t * e.g. domain \"pay.name.haneul\" will be stored in the vector as [\"haneul\", \"name\",\n\t\t * \"pay\"].\n\t\t */\n\t\tlabels: bcs.vector(bcs.string()),\n\t},\n});\nexport interface NewArguments {\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface NewOptions {\n\tpackage?: string;\n\targuments: NewArguments | [domain: RawTransactionArgument<string>];\n}\nexport function _new(options: NewOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = ['0x1::string::String'] satisfies (string | null)[];\n\tconst parameterNames = ['domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'new',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ToStringArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface ToStringOptions {\n\tpackage?: string;\n\targuments: ToStringArguments | [self: RawTransactionArgument<string>];\n}\n/** Converts a domain into a fully-qualified string representation. */\nexport function toString(options: ToStringOptions) {\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: 'domain',\n\t\t\tfunction: 'to_string',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LabelArguments {\n\tself: RawTransactionArgument<string>;\n\tlevel: RawTransactionArgument<number | bigint>;\n}\nexport interface LabelOptions {\n\tpackage?: string;\n\targuments:\n\t\t| LabelArguments\n\t\t| [self: RawTransactionArgument<string>, level: RawTransactionArgument<number | bigint>];\n}\n/**\n * Returns the `label` in a domain specified by `level`.\n *\n * Given the domain \"pay.name.haneul\" the individual labels have the following levels:\n *\n * - \"pay\" - `2`\n * - \"name\" - `1`\n * - \"haneul\" - `0`\n *\n * This means that the TLD will always be at level `0`.\n */\nexport function label(options: LabelOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, 'u64'] satisfies (string | null)[];\n\tconst parameterNames = ['self', 'level'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'label',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TldArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface TldOptions {\n\tpackage?: string;\n\targuments: TldArguments | [self: RawTransactionArgument<string>];\n}\n/**\n * Returns the TLD (Top-Level Domain) of a `Domain`.\n *\n * \"name.haneul\" -> \"haneul\"\n */\nexport function tld(options: TldOptions) {\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: 'domain',\n\t\t\tfunction: 'tld',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SldArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface SldOptions {\n\tpackage?: string;\n\targuments: SldArguments | [self: RawTransactionArgument<string>];\n}\n/**\n * Returns the SLD (Second-Level Domain) of a `Domain`.\n *\n * \"name.haneul\" -> \"haneul\"\n */\nexport function sld(options: SldOptions) {\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: 'domain',\n\t\t\tfunction: 'sld',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface NumberOfLevelsArguments {\n\tself: RawTransactionArgument<string>;\n}\nexport interface NumberOfLevelsOptions {\n\tpackage?: string;\n\targuments: NumberOfLevelsArguments | [self: RawTransactionArgument<string>];\n}\nexport function numberOfLevels(options: NumberOfLevelsOptions) {\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: 'domain',\n\t\t\tfunction: 'number_of_levels',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsSubdomainArguments {\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface IsSubdomainOptions {\n\tpackage?: string;\n\targuments: IsSubdomainArguments | [domain: RawTransactionArgument<string>];\n}\nexport function isSubdomain(options: IsSubdomainOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'is_subdomain',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ParentArguments {\n\tdomain: RawTransactionArgument<string>;\n}\nexport interface ParentOptions {\n\tpackage?: string;\n\targuments: ParentArguments | [domain: RawTransactionArgument<string>];\n}\n/** Derive the parent of a subdomain. e.g. `subdomain.example.haneul` -> `example.haneul` */\nexport function parent(options: ParentOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['domain'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'parent',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsParentOfArguments {\n\tparent: RawTransactionArgument<string>;\n\tchild: RawTransactionArgument<string>;\n}\nexport interface IsParentOfOptions {\n\tpackage?: string;\n\targuments:\n\t\t| IsParentOfArguments\n\t\t| [parent: RawTransactionArgument<string>, child: RawTransactionArgument<string>];\n}\n/** Checks if `parent` domain is a valid parent for `child`. */\nexport function isParentOf(options: IsParentOfOptions) {\n\tconst packageAddress = options.package ?? '@haneulns/core';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['parent', 'child'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'domain',\n\t\t\tfunction: 'is_parent_of',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,cAAc;AACpB,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ,EAQP,QAAQ,IAAI,OAAO,IAAI,QAAQ,CAAC,EAChC;CACD,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { MoveStruct } from "../utils/index.mjs";
2
+ import { Balance } from "./deps/haneul/balance.mjs";
3
+ import { bcs } from "@haneullabs/haneul/bcs";
4
+
5
+ //#region src/contracts/haneulns/haneulns.ts
6
+ /**************************************************************
7
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
8
+ **************************************************************/
9
+ /**
10
+ * The main module of the HaneulNS application, defines the `HaneulNS` object and the
11
+ * authorization mechanism for interacting with the main data storage.
12
+ *
13
+ * Authorization mechanic: The Admin can authorize applications to access protected
14
+ * features of the HaneulNS, they're named with a prefix `app_*`. Once authorized,
15
+ * application can get mutable access to the `Registry` and add to the application
16
+ * `Balance`.
17
+ *
18
+ * At any moment any of the applications can be deathorized by the Admin making it
19
+ * impossible for the deauthorized module to access the registry.
20
+ *
21
+ * ---
22
+ *
23
+ * Package Upgrades in mind:
24
+ *
25
+ * - None of the public functions of the HaneulNS feature any specific types - instead
26
+ * we use generics to define the actual types in arbitrary modules.
27
+ * - The `Registry` itself (the main feature of the application) is stored as a
28
+ * dynamic field so that we can change the type and the module that serves the
29
+ * registry without breaking the HaneulNS compatibility.
30
+ * - Any of the old modules can be deauthorized hence disabling its access to the
31
+ * registry and the balance.
32
+ */
33
+ const $moduleName = "@haneulns/core::haneulns";
34
+ const AdminCap = new MoveStruct({
35
+ name: `${$moduleName}::AdminCap`,
36
+ fields: { id: bcs.Address }
37
+ });
38
+ const HaneulNS = new MoveStruct({
39
+ name: `${$moduleName}::HaneulNS`,
40
+ fields: {
41
+ id: bcs.Address,
42
+ balance: Balance
43
+ }
44
+ });
45
+ const SUINS = new MoveStruct({
46
+ name: `${$moduleName}::SUINS`,
47
+ fields: { dummy_field: bcs.bool() }
48
+ });
49
+ const ConfigKey = new MoveStruct({
50
+ name: `${$moduleName}::ConfigKey<phantom Config>`,
51
+ fields: { dummy_field: bcs.bool() }
52
+ });
53
+ const RegistryKey = new MoveStruct({
54
+ name: `${$moduleName}::RegistryKey<phantom Config>`,
55
+ fields: { dummy_field: bcs.bool() }
56
+ });
57
+ const BalanceKey = new MoveStruct({
58
+ name: `${$moduleName}::BalanceKey<phantom T>`,
59
+ fields: { dummy_field: bcs.bool() }
60
+ });
61
+ const AppKey = new MoveStruct({
62
+ name: `${$moduleName}::AppKey<phantom App>`,
63
+ fields: { dummy_field: bcs.bool() }
64
+ });
65
+
66
+ //#endregion
67
+ export { ConfigKey };
68
+ //# sourceMappingURL=haneulns.mjs.map
@@ -0,0 +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"}
@@ -0,0 +1,27 @@
1
+ import { MoveStruct } from "../utils/index.mjs";
2
+ import { VecMap } from "./deps/haneul/vec_map.mjs";
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
+ const NameRecord = new MoveStruct({
16
+ name: `${$moduleName}::NameRecord`,
17
+ fields: {
18
+ nft_id: bcs.Address,
19
+ expiration_timestamp_ms: bcs.u64(),
20
+ target_address: bcs.option(bcs.Address),
21
+ data: VecMap(bcs.string(), bcs.string())
22
+ }
23
+ });
24
+
25
+ //#endregion
26
+ export { NameRecord };
27
+ //# sourceMappingURL=name_record.mjs.map
@@ -0,0 +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"}
@@ -0,0 +1,162 @@
1
+ import { MoveEnum, MoveStruct, normalizeMoveArguments } from "../utils/index.mjs";
2
+ import { Domain } from "./domain.mjs";
3
+ import { VecMap } from "./deps/haneul/vec_map.mjs";
4
+ import { TypeName } from "./deps/std/type_name.mjs";
5
+ import { bcs } from "@haneullabs/haneul/bcs";
6
+
7
+ //#region src/contracts/haneulns/payment.ts
8
+ /**************************************************************
9
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
10
+ **************************************************************/
11
+ const $moduleName = "@haneulns/core::payment";
12
+ const RequestData = new MoveStruct({
13
+ name: `${$moduleName}::RequestData`,
14
+ fields: {
15
+ version: bcs.u8(),
16
+ domain: Domain,
17
+ years: bcs.u8(),
18
+ base_amount: bcs.u64(),
19
+ discounts_applied: VecMap(bcs.string(), bcs.u64()),
20
+ metadata: VecMap(bcs.string(), bcs.string())
21
+ }
22
+ });
23
+ const TransactionEvent = new MoveStruct({
24
+ name: `${$moduleName}::TransactionEvent`,
25
+ fields: {
26
+ app: TypeName,
27
+ domain: Domain,
28
+ years: bcs.u8(),
29
+ request_data_version: bcs.u8(),
30
+ base_amount: bcs.u64(),
31
+ discounts_applied: VecMap(bcs.string(), bcs.u64()),
32
+ metadata: VecMap(bcs.string(), bcs.string()),
33
+ is_renewal: bcs.bool(),
34
+ currency: TypeName,
35
+ currency_amount: bcs.u64()
36
+ }
37
+ });
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({
45
+ name: `${$moduleName}::PaymentIntent`,
46
+ fields: {
47
+ Registration: RequestData,
48
+ Renewal: RequestData
49
+ }
50
+ });
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({
58
+ name: `${$moduleName}::Receipt`,
59
+ fields: {
60
+ Registration: new MoveStruct({
61
+ name: `Receipt.Registration`,
62
+ fields: {
63
+ domain: Domain,
64
+ years: bcs.u8(),
65
+ version: bcs.u8()
66
+ }
67
+ }),
68
+ Renewal: new MoveStruct({
69
+ name: `Receipt.Renewal`,
70
+ fields: {
71
+ domain: Domain,
72
+ years: bcs.u8(),
73
+ version: bcs.u8()
74
+ }
75
+ })
76
+ }
77
+ });
78
+ /**
79
+ * Creates a `PaymentIntent` for registering a new domain. This is a hot-potato and
80
+ * can only be consumed in a single transaction.
81
+ */
82
+ function initRegistration(options) {
83
+ const packageAddress = options.package ?? "@haneulns/core";
84
+ const argumentsTypes = [null, "0x1::string::String"];
85
+ const parameterNames = ["haneulns", "domain"];
86
+ return (tx) => tx.moveCall({
87
+ package: packageAddress,
88
+ module: "payment",
89
+ function: "init_registration",
90
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
91
+ });
92
+ }
93
+ /**
94
+ * Creates a `PaymentIntent` for renewing an existing domain. This is a hot-potato
95
+ * and can only be consumed in a single transaction.
96
+ */
97
+ function initRenewal(options) {
98
+ const packageAddress = options.package ?? "@haneulns/core";
99
+ const argumentsTypes = [
100
+ null,
101
+ null,
102
+ "u8"
103
+ ];
104
+ const parameterNames = [
105
+ "haneulns",
106
+ "nft",
107
+ "years"
108
+ ];
109
+ return (tx) => tx.moveCall({
110
+ package: packageAddress,
111
+ module: "payment",
112
+ function: "init_renewal",
113
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
114
+ });
115
+ }
116
+ /**
117
+ * Register a domain with the given receipt. This is a hot-potato and can only be
118
+ * consumed in a single transaction.
119
+ */
120
+ function register(options) {
121
+ const packageAddress = options.package ?? "@haneulns/core";
122
+ const argumentsTypes = [
123
+ null,
124
+ null,
125
+ "0x2::clock::Clock"
126
+ ];
127
+ const parameterNames = ["receipt", "haneulns"];
128
+ return (tx) => tx.moveCall({
129
+ package: packageAddress,
130
+ module: "payment",
131
+ function: "register",
132
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
133
+ });
134
+ }
135
+ /**
136
+ * Renew a domain with the given receipt. This is a hot-potato and can only be
137
+ * consumed in a single transaction.
138
+ */
139
+ function renew(options) {
140
+ const packageAddress = options.package ?? "@haneulns/core";
141
+ const argumentsTypes = [
142
+ null,
143
+ null,
144
+ null,
145
+ "0x2::clock::Clock"
146
+ ];
147
+ const parameterNames = [
148
+ "receipt",
149
+ "haneulns",
150
+ "nft"
151
+ ];
152
+ return (tx) => tx.moveCall({
153
+ package: packageAddress,
154
+ module: "payment",
155
+ function: "renew",
156
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
157
+ });
158
+ }
159
+
160
+ //#endregion
161
+ export { initRegistration, initRenewal, register, renew };
162
+ //# sourceMappingURL=payment.mjs.map
@@ -0,0 +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"}