@zing-protocol/zing-sdk 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/_generated/index.js +6 -0
  2. package/dist/_generated/utils/index.d.ts +12 -0
  3. package/dist/_generated/utils/index.js +135 -0
  4. package/dist/_generated/zing_framework/coin_utils.d.ts +15 -0
  5. package/dist/_generated/zing_framework/coin_utils.js +19 -0
  6. package/dist/_generated/zing_framework/deps/sui/object.d.ts +8 -0
  7. package/{src/_generated/zing_governance/deps/sui/object.ts → dist/_generated/zing_framework/deps/sui/object.js} +4 -7
  8. package/dist/_generated/zing_framework/derived_object_bag.d.ts +166 -0
  9. package/dist/_generated/zing_framework/derived_object_bag.js +221 -0
  10. package/dist/_generated/zing_framework/derived_table.d.ts +153 -0
  11. package/dist/_generated/zing_framework/derived_table.js +200 -0
  12. package/dist/_generated/zing_governance/admin.d.ts +20 -0
  13. package/dist/_generated/zing_governance/admin.js +26 -0
  14. package/dist/_generated/zing_governance/deps/sui/object.d.ts +8 -0
  15. package/{src/_generated/zing_identity/deps/sui/object.ts → dist/_generated/zing_governance/deps/sui/object.js} +4 -7
  16. package/dist/_generated/zing_governance/treasury.d.ts +56 -0
  17. package/dist/_generated/zing_governance/treasury.js +78 -0
  18. package/dist/_generated/zing_identity/config.d.ts +87 -0
  19. package/dist/_generated/zing_identity/config.js +98 -0
  20. package/{src/_generated/zing_studio/deps/std/type_name.ts → dist/_generated/zing_identity/deps/std/type_name.d.ts} +3 -11
  21. package/dist/_generated/zing_identity/deps/std/type_name.js +22 -0
  22. package/dist/_generated/zing_identity/deps/sui/object.d.ts +8 -0
  23. package/{src/_generated/zing_studio/deps/sui/object.ts → dist/_generated/zing_identity/deps/sui/object.js} +4 -7
  24. package/dist/_generated/zing_identity/deps/sui/object_table.d.ts +12 -0
  25. package/{src/_generated/zing_identity/deps/sui/object_table.ts → dist/_generated/zing_identity/deps/sui/object_table.js} +7 -10
  26. package/dist/_generated/zing_identity/deps/sui/table.d.ts +12 -0
  27. package/{src/_generated/zing_studio/deps/sui/table.ts → dist/_generated/zing_identity/deps/sui/table.js} +7 -10
  28. package/{src/_generated/zing_identity/deps/sui/vec_set.ts → dist/_generated/zing_identity/deps/sui/vec_set.d.ts} +3 -14
  29. package/dist/_generated/zing_identity/deps/sui/vec_set.js +22 -0
  30. package/dist/_generated/zing_identity/ecdsa.d.ts +81 -0
  31. package/dist/_generated/zing_identity/ecdsa.js +87 -0
  32. package/dist/_generated/zing_identity/identity.d.ts +262 -0
  33. package/dist/_generated/zing_identity/identity.js +294 -0
  34. package/dist/_generated/zing_identity/reclaim.d.ts +356 -0
  35. package/dist/_generated/zing_identity/reclaim.js +414 -0
  36. package/dist/_generated/zing_studio/app.d.ts +351 -0
  37. package/dist/_generated/zing_studio/app.js +451 -0
  38. package/dist/_generated/zing_studio/article.d.ts +331 -0
  39. package/dist/_generated/zing_studio/article.js +331 -0
  40. package/dist/_generated/zing_studio/config.d.ts +203 -0
  41. package/dist/_generated/zing_studio/config.js +233 -0
  42. package/{src/_generated/zing_identity/deps/std/type_name.ts → dist/_generated/zing_studio/deps/std/type_name.d.ts} +3 -11
  43. package/dist/_generated/zing_studio/deps/std/type_name.js +22 -0
  44. package/dist/_generated/zing_studio/deps/sui/bag.d.ts +12 -0
  45. package/{src/_generated/zing_studio/deps/sui/bag.ts → dist/_generated/zing_studio/deps/sui/bag.js} +7 -10
  46. package/dist/_generated/zing_studio/deps/sui/balance.d.ts +12 -0
  47. package/{src/_generated/zing_studio/deps/sui/balance.ts → dist/_generated/zing_studio/deps/sui/balance.js} +4 -7
  48. package/dist/_generated/zing_studio/deps/sui/coin.d.ts +12 -0
  49. package/{src/_generated/zing_studio/deps/sui/coin.ts → dist/_generated/zing_studio/deps/sui/coin.js} +5 -8
  50. package/dist/_generated/zing_studio/deps/sui/dynamic_field.d.ts +126 -0
  51. package/dist/_generated/zing_studio/deps/sui/dynamic_field.js +140 -0
  52. package/dist/_generated/zing_studio/deps/sui/object.d.ts +8 -0
  53. package/{src/_generated/zing_framework/deps/sui/object.ts → dist/_generated/zing_studio/deps/sui/object.js} +4 -7
  54. package/dist/_generated/zing_studio/deps/sui/table.d.ts +12 -0
  55. package/{src/_generated/zing_identity/deps/sui/table.ts → dist/_generated/zing_studio/deps/sui/table.js} +7 -10
  56. package/dist/_generated/zing_studio/deps/sui/vec_map.d.ts +30 -0
  57. package/{src/_generated/zing_studio/deps/sui/vec_map.ts → dist/_generated/zing_studio/deps/sui/vec_map.js} +15 -21
  58. package/{src/_generated/zing_studio/deps/sui/vec_set.ts → dist/_generated/zing_studio/deps/sui/vec_set.d.ts} +3 -14
  59. package/dist/_generated/zing_studio/deps/sui/vec_set.js +22 -0
  60. package/dist/_generated/zing_studio/deps/walrus/blob.d.ts +20 -0
  61. package/{src/_generated/zing_studio/deps/walrus/blob.ts → dist/_generated/zing_studio/deps/walrus/blob.js} +11 -12
  62. package/dist/_generated/zing_studio/deps/walrus/events.d.ts +83 -0
  63. package/dist/_generated/zing_studio/deps/walrus/events.js +122 -0
  64. package/dist/_generated/zing_studio/deps/walrus/metadata.d.ts +71 -0
  65. package/dist/_generated/zing_studio/deps/walrus/metadata.js +73 -0
  66. package/dist/_generated/zing_studio/deps/walrus/storage_resource.d.ts +12 -0
  67. package/{src/_generated/zing_studio/deps/walrus/storage_resource.ts → dist/_generated/zing_studio/deps/walrus/storage_resource.js} +7 -8
  68. package/dist/_generated/zing_studio/deps/zing_framework/derived_object_bag.d.ts +12 -0
  69. package/{src/_generated/zing_studio/deps/zing_framework/derived_object_bag.ts → dist/_generated/zing_studio/deps/zing_framework/derived_object_bag.js} +7 -8
  70. package/dist/_generated/zing_studio/deps/zing_framework/derived_table.d.ts +12 -0
  71. package/{src/_generated/zing_studio/deps/zing_framework/derived_table.ts → dist/_generated/zing_studio/deps/zing_framework/derived_table.js} +7 -8
  72. package/dist/_generated/zing_studio/donation.d.ts +24 -0
  73. package/{src/_generated/zing_studio/donation.ts → dist/_generated/zing_studio/donation.js} +7 -8
  74. package/dist/_generated/zing_studio/enclave.d.ts +187 -0
  75. package/dist/_generated/zing_studio/enclave.js +231 -0
  76. package/dist/_generated/zing_studio/nitro_attestation.d.ts +148 -0
  77. package/dist/_generated/zing_studio/nitro_attestation.js +183 -0
  78. package/dist/_generated/zing_studio/referral.d.ts +166 -0
  79. package/dist/_generated/zing_studio/referral.js +224 -0
  80. package/dist/_generated/zing_studio/storage.d.ts +327 -0
  81. package/dist/_generated/zing_studio/storage.js +365 -0
  82. package/dist/_generated/zing_studio/studio.d.ts +282 -0
  83. package/dist/_generated/zing_studio/studio.js +360 -0
  84. package/dist/bcs.d.ts +61 -0
  85. package/dist/bcs.js +109 -0
  86. package/dist/client/index.d.ts +228 -0
  87. package/dist/client/index.js +296 -0
  88. package/dist/client/types.d.ts +23 -0
  89. package/dist/client/types.js +1 -0
  90. package/dist/components/index.js +3 -0
  91. package/dist/components/wallet-provider.d.ts +7 -0
  92. package/dist/components/wallet-provider.js +33 -0
  93. package/dist/components/walrus-provider.d.ts +31 -0
  94. package/dist/components/walrus-provider.js +71 -0
  95. package/dist/components/zing-provider.d.ts +15 -0
  96. package/dist/components/zing-provider.js +22 -0
  97. package/dist/config/common.d.ts +23 -0
  98. package/dist/config/common.js +61 -0
  99. package/dist/config/index.d.ts +8 -0
  100. package/dist/config/index.js +28 -0
  101. package/dist/config/mainnet.d.ts +6 -0
  102. package/dist/config/mainnet.js +80 -0
  103. package/dist/config/testnet.d.ts +6 -0
  104. package/dist/config/testnet.js +81 -0
  105. package/dist/config/types.d.ts +49 -0
  106. package/dist/config/types.js +1 -0
  107. package/dist/const.d.ts +4 -0
  108. package/dist/const.js +25 -0
  109. package/dist/getters.d.ts +228 -0
  110. package/dist/getters.js +317 -0
  111. package/{src/hooks/index.ts → dist/hooks/index.d.ts} +2 -3
  112. package/dist/hooks/index.js +9 -0
  113. package/dist/hooks/useGetStudio.d.ts +26 -0
  114. package/dist/hooks/useGetStudio.js +17 -0
  115. package/dist/hooks/useGetTierPlan.d.ts +7 -0
  116. package/dist/hooks/useGetTierPlan.js +85 -0
  117. package/dist/hooks/useReclaim.d.ts +12 -0
  118. package/dist/hooks/useReclaim.js +87 -0
  119. package/dist/hooks/useSignAndExecuteTransaction.d.ts +6 -0
  120. package/dist/hooks/useSignAndExecuteTransaction.js +40 -0
  121. package/dist/hooks/useSignPersonalMessage.d.ts +8 -0
  122. package/dist/hooks/useSignPersonalMessage.js +21 -0
  123. package/dist/hooks/useZingInfiniteQueries.d.ts +75 -0
  124. package/dist/hooks/useZingInfiniteQueries.js +28 -0
  125. package/dist/hooks/useZingMutation.d.ts +35 -0
  126. package/dist/hooks/useZingMutation.js +37 -0
  127. package/dist/hooks/useZingQueries.d.ts +127 -0
  128. package/dist/hooks/useZingQueries.js +37 -0
  129. package/dist/hooks/useZingQuery.d.ts +147 -0
  130. package/dist/hooks/useZingQuery.js +34 -0
  131. package/{src/index.ts → dist/index.d.ts} +2 -3
  132. package/dist/index.js +9 -0
  133. package/dist/lib/utils/colorful-logger.d.ts +2 -0
  134. package/dist/lib/utils/colorful-logger.js +23 -0
  135. package/dist/lib/utils/const.d.ts +25 -0
  136. package/dist/lib/utils/const.js +25 -0
  137. package/dist/lib/utils/helpers.d.ts +10 -0
  138. package/dist/lib/utils/helpers.js +49 -0
  139. package/dist/lib/utils/index.js +4 -0
  140. package/dist/lib/utils/init-app-with-shadow.d.ts +6 -0
  141. package/dist/lib/utils/init-app-with-shadow.js +28 -0
  142. package/dist/lib/utils/quilt.d.ts +61 -0
  143. package/dist/lib/utils/quilt.js +194 -0
  144. package/dist/lib/utils/reclaim.d.ts +29 -0
  145. package/dist/lib/utils/reclaim.js +88 -0
  146. package/dist/lib/utils/types.d.ts +5 -0
  147. package/dist/lib/utils/types.js +1 -0
  148. package/dist/mutations/index.js +3 -0
  149. package/dist/mutations/seal.d.ts +12 -0
  150. package/dist/mutations/seal.js +41 -0
  151. package/dist/mutations/signer.d.ts +10 -0
  152. package/dist/mutations/signer.js +176 -0
  153. package/dist/mutations/walrus.d.ts +98 -0
  154. package/dist/mutations/walrus.js +488 -0
  155. package/dist/stores/index.js +3 -0
  156. package/dist/stores/walletStore.d.ts +48 -0
  157. package/dist/stores/walletStore.js +232 -0
  158. package/dist/stores/walrusStore.d.ts +28 -0
  159. package/dist/stores/walrusStore.js +61 -0
  160. package/dist/stores/zkloginStore.d.ts +28 -0
  161. package/dist/stores/zkloginStore.js +27 -0
  162. package/dist/types.d.ts +99 -0
  163. package/dist/types.js +1 -0
  164. package/package.json +18 -10
  165. package/src/_generated/utils/index.ts +0 -181
  166. package/src/_generated/zing_framework/coin_utils.ts +0 -41
  167. package/src/_generated/zing_framework/derived_object_bag.ts +0 -400
  168. package/src/_generated/zing_framework/derived_table.ts +0 -366
  169. package/src/_generated/zing_governance/admin.ts +0 -47
  170. package/src/_generated/zing_governance/treasury.ts +0 -134
  171. package/src/_generated/zing_identity/config.ts +0 -191
  172. package/src/_generated/zing_identity/ecdsa.ts +0 -166
  173. package/src/_generated/zing_identity/identity.ts +0 -661
  174. package/src/_generated/zing_identity/reclaim.ts +0 -803
  175. package/src/_generated/zing_studio/app.ts +0 -855
  176. package/src/_generated/zing_studio/article.ts +0 -598
  177. package/src/_generated/zing_studio/config.ts +0 -475
  178. package/src/_generated/zing_studio/deps/sui/dynamic_field.ts +0 -272
  179. package/src/_generated/zing_studio/deps/walrus/events.ts +0 -124
  180. package/src/_generated/zing_studio/deps/walrus/metadata.ts +0 -137
  181. package/src/_generated/zing_studio/enclave.ts +0 -466
  182. package/src/_generated/zing_studio/nitro_attestation.ts +0 -308
  183. package/src/_generated/zing_studio/referral.ts +0 -447
  184. package/src/_generated/zing_studio/storage.ts +0 -664
  185. package/src/_generated/zing_studio/studio.ts +0 -682
  186. package/src/bcs.ts +0 -139
  187. package/src/client/index.ts +0 -557
  188. package/src/client/types.ts +0 -28
  189. package/src/components/wallet-provider.tsx +0 -53
  190. package/src/components/walrus-provider.tsx +0 -212
  191. package/src/components/zing-provider.tsx +0 -54
  192. package/src/config/common.ts +0 -82
  193. package/src/config/index.ts +0 -45
  194. package/src/config/mainnet.ts +0 -109
  195. package/src/config/testnet.ts +0 -111
  196. package/src/config/types.ts +0 -69
  197. package/src/const.ts +0 -32
  198. package/src/getters.ts +0 -523
  199. package/src/hooks/useGetStudio.ts +0 -22
  200. package/src/hooks/useGetTierPlan.ts +0 -115
  201. package/src/hooks/useReclaim.ts +0 -165
  202. package/src/hooks/useSignAndExecuteTransaction.ts +0 -57
  203. package/src/hooks/useSignPersonalMessage.ts +0 -28
  204. package/src/hooks/useZingInfiniteQueries.ts +0 -92
  205. package/src/hooks/useZingMutation.ts +0 -66
  206. package/src/hooks/useZingQueries.ts +0 -107
  207. package/src/hooks/useZingQuery.ts +0 -88
  208. package/src/lib/utils/colorful-logger.ts +0 -27
  209. package/src/lib/utils/const.ts +0 -25
  210. package/src/lib/utils/helpers.ts +0 -78
  211. package/src/lib/utils/init-app-with-shadow.ts +0 -42
  212. package/src/lib/utils/quilt.ts +0 -317
  213. package/src/lib/utils/reclaim.ts +0 -148
  214. package/src/lib/utils/types.ts +0 -14
  215. package/src/mutations/seal.ts +0 -78
  216. package/src/mutations/signer.ts +0 -241
  217. package/src/mutations/walrus.ts +0 -862
  218. package/src/stores/walletStore.ts +0 -360
  219. package/src/stores/walrusStore.ts +0 -118
  220. package/src/stores/zkloginStore.ts +0 -53
  221. package/src/types.ts +0 -120
  222. package/tsconfig.json +0 -12
  223. /package/{src/_generated/index.js → dist/_generated/index.d.ts} +0 -0
  224. /package/{src/components/index.ts → dist/components/index.d.ts} +0 -0
  225. /package/{src/lib/utils/index.ts → dist/lib/utils/index.d.ts} +0 -0
  226. /package/{src/mutations/index.ts → dist/mutations/index.d.ts} +0 -0
  227. /package/{src/stores/index.ts → dist/stores/index.d.ts} +0 -0
@@ -1,69 +0,0 @@
1
- import type { CoinSymbol, PlatformType, WorkType } from "./common.js";
2
- import type { KeyServerConfig } from "@mysten/seal";
3
- import type { WalrusClient } from "@mysten/walrus";
4
-
5
- export interface SharedObjectRef {
6
- objectId: string;
7
- initialSharedVersion: number;
8
- mutable: boolean;
9
- }
10
-
11
- export interface PlatformConfig {
12
- PLATFORM_UPDATE_PROOF_TARGET: string;
13
- PLATFORM_TYPE: string;
14
- // managers
15
- RECLAIM_MANAGER_SHARED_OBJECT_REF: SharedObjectRef;
16
- IDENTITY_MANAGER_SHARED_OBJECT_REF: SharedObjectRef;
17
- // dynamic-field
18
- IDENTITY_MANAGER_IDENTIFIER_INFO_DF_ID: string;
19
- IDENTITY_MANAGER_ADDRESS_TO_IDENTIFIER_DF_ID: string;
20
- }
21
-
22
- export interface ZingConfig {
23
- // Packages
24
- ZING_FRAMEWORK_PACKAGE_ADDRESS: string;
25
- ZING_IDENTITY_PACKAGE_ADDRESS: string;
26
- ZING_STUDIO_PACKAGE_ADDRESS: string;
27
- ZING_STUDIO_V0_PACKAGE_ADDRESS: string;
28
- // Configs
29
- // - zing_governance
30
- ZING_TREASURY_SHARED_OBJECT_REF: SharedObjectRef;
31
- // - zing_identity
32
- ZING_IDENTITY_CONFIG_SHARED_OBJECT_REF: SharedObjectRef;
33
- PROOF_COMMITMENT_TYPE: string;
34
- IDENTITY_PLATFORMS: Record<PlatformType, PlatformConfig>;
35
- // - zing_studio
36
- ZING_STUDIO_CONFIG_SHARED_OBJECT_REF: SharedObjectRef;
37
- ZING_STORAGE_TREASURY_SHARED_OBJECT_REF: SharedObjectRef;
38
- ZING_WORKS_TYPE: Record<WorkType, string>;
39
- // events
40
- EVENT_TYPES: Record<"publishArticleEvent", string>;
41
- }
42
-
43
- export interface WalrusConfig {
44
- WALRUS_PACKAGE: string;
45
- WAL_STAKING_INNER_FIELD: string;
46
- WALRUS_SYSTEM_SHARED_OBJECT_REF: SharedObjectRef;
47
- WALRUS_AGGREGATORS: string[];
48
- WALRUS_UPLOAD_RELAY_BASE_URL: string;
49
- // events
50
- EVENT_TYPES: Record<"blobRegistered", string>;
51
- }
52
-
53
- export interface SealConfig {
54
- serverConfigs: KeyServerConfig[];
55
- }
56
-
57
- export interface Config {
58
- zing: ZingConfig;
59
- walrus: WalrusConfig;
60
- seal: SealConfig;
61
- coins: Record<CoinSymbol, string>;
62
- }
63
-
64
- export type WalrusStakingState = Awaited<
65
- ReturnType<WalrusClient["stakingState"]>
66
- >;
67
- export type WalrusSystemState = Awaited<
68
- ReturnType<WalrusClient["systemState"]>
69
- >;
package/src/const.ts DELETED
@@ -1,32 +0,0 @@
1
- import type { SuiNetwork } from "./types.js";
2
- import type { KeyServerConfig } from "@mysten/seal";
3
-
4
- // // Walrus upload relay
5
- export const WALRUS_UPLOAD_RELAY_BASE_URL: Record<SuiNetwork, string> = {
6
- mainnet: "https://walrus-upload-relay-production-73a4.up.railway.app",
7
- testnet: "https://walrus-upload-relay-production-73a4.up.railway.app",
8
- };
9
-
10
- // Platform
11
- // seal
12
- export const SEAL_SERVERS_CONFIGS: Record<SuiNetwork, KeyServerConfig[]> = {
13
- mainnet: [
14
- {
15
- objectId:
16
- "0xe0eb52eba9261b96e895bbb4deca10dcd64fbc626a1133017adcd5131353fd10",
17
- weight: 1,
18
- },
19
- ],
20
- testnet: [
21
- {
22
- objectId:
23
- "0x73d05d62c18d9374e3ea529e8e0ed6161da1a141a94d3f76ae3fe4e99356db75",
24
- weight: 1,
25
- },
26
- {
27
- objectId:
28
- "0xf5d14a81a982144ae441cd7d64b09027f116a468bd36e7eca494f750591623c8",
29
- weight: 1,
30
- },
31
- ],
32
- };
package/src/getters.ts DELETED
@@ -1,523 +0,0 @@
1
- import { TypeName } from "./_generated/zing_identity/deps/std/type_name.js";
2
- import { IdentifierInfo } from "./_generated/zing_identity/identity.js";
3
- import {
4
- Article,
5
- PublishArticleEvent,
6
- } from "./_generated/zing_studio/article.js";
7
- import { Field } from "./_generated/zing_studio/deps/sui/dynamic_field.js";
8
- import { VecMap } from "./_generated/zing_studio/deps/sui/vec_map.js";
9
- import { BlobRegistered } from "./_generated/zing_studio/deps/walrus/events.js";
10
- import {
11
- StorageSpace,
12
- StorageTreasury,
13
- } from "./_generated/zing_studio/storage.js";
14
- import { Member, Studio } from "./_generated/zing_studio/studio.js";
15
- import { QuiltPatchId, SuiMoveObject } from "./bcs.js";
16
- import { bcs } from "@mysten/sui/bcs";
17
- import {
18
- deriveDynamicFieldID,
19
- deriveObjectID,
20
- fromBase64,
21
- normalizeStructTag,
22
- toBase64,
23
- } from "@mysten/sui/utils";
24
- import type { MoveObjectType } from "./bcs.js";
25
- import type { WalrusSystemState } from "./config/types.js";
26
- import type { SuiGrpcClient } from "@mysten/sui/grpc";
27
- import type { SuiJsonRpcClient } from "@mysten/sui/jsonRpc";
28
- import type { EncodingType, WalrusClient } from "@mysten/walrus";
29
-
30
- // Walrus
31
- const DIGEST_LEN = 32;
32
- const BLOB_ID_LEN = 32;
33
-
34
- // Zing
35
- export function getDerivedStudioID(studioConfigId: string, address: string) {
36
- return deriveObjectID(
37
- studioConfigId,
38
- "address",
39
- bcs.Address.serialize(address).toBytes(),
40
- );
41
- }
42
-
43
- export function getDerivedStorageID(studioConfigId: string, address: string) {
44
- const studioId = getDerivedStudioID(studioConfigId, address);
45
- const key = new TextEncoder().encode("storage");
46
- return deriveObjectID(
47
- studioId,
48
- "vector<u8>",
49
- bcs.vector(bcs.u8()).serialize(key).toBytes(),
50
- );
51
- }
52
-
53
- export function getDerivedWorksID(studioConfigId: string, address: string) {
54
- const studioId = getDerivedStudioID(studioConfigId, address);
55
- const key = new TextEncoder().encode("works");
56
- return deriveObjectID(
57
- studioId,
58
- "vector<u8>",
59
- bcs.vector(bcs.u8()).serialize(key).toBytes(),
60
- );
61
- }
62
-
63
- export function getDerivedMembershipID(
64
- studioConfigId: string,
65
- address: string,
66
- ) {
67
- const studioId = getDerivedStudioID(studioConfigId, address);
68
- const key = new TextEncoder().encode("membership");
69
- return deriveObjectID(
70
- studioId,
71
- "vector<u8>",
72
- bcs.vector(bcs.u8()).serialize(key).toBytes(),
73
- );
74
- }
75
-
76
- export async function getIdentifierByAddress(
77
- suiGrpcClient: SuiGrpcClient,
78
- addressToIdentifierDynamicFieldId: string,
79
- address: string,
80
- ) {
81
- const dfObjectId = deriveDynamicFieldID(
82
- addressToIdentifierDynamicFieldId,
83
- "address",
84
- bcs.Address.serialize(address).toBytes(),
85
- );
86
- const res = await suiGrpcClient.ledgerService.getObject({
87
- objectId: dfObjectId,
88
- readMask: {
89
- paths: ["bcs"],
90
- },
91
- });
92
- if (!res.response.object?.bcs?.value) {
93
- return null;
94
- }
95
-
96
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
97
- const field = Field(bcs.Address, bcs.String).parse(
98
- suiMoveObject.data.MoveObject.contents,
99
- );
100
-
101
- return field.value;
102
- }
103
-
104
- export async function getIdentifierInfoByIdentifier(
105
- suiGrpcClient: SuiGrpcClient,
106
- identifierInfoDynamicFieldId: string,
107
- identifier: string,
108
- ) {
109
- const dfObjectId = deriveDynamicFieldID(
110
- identifierInfoDynamicFieldId,
111
- "0x1::ascii::String",
112
- bcs.Address.serialize(identifier).toBytes(),
113
- );
114
- const res = await suiGrpcClient.ledgerService.getObject({
115
- objectId: dfObjectId,
116
- readMask: {
117
- paths: ["bcs"],
118
- },
119
- });
120
- if (!res.response.object?.bcs?.value) {
121
- return null;
122
- }
123
-
124
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
125
- const field = Field(bcs.String, IdentifierInfo).parse(
126
- suiMoveObject.data.MoveObject.contents,
127
- );
128
-
129
- return field.value;
130
- }
131
-
132
- export async function getDonationByIdentifier(
133
- suiGrpcClient: SuiGrpcClient,
134
- donationTableId: string,
135
- identifier: string,
136
- ) {
137
- const dfObjectId = deriveDynamicFieldID(
138
- donationTableId,
139
- "0x1::ascii::String",
140
- bcs.Address.serialize(identifier).toBytes(),
141
- );
142
- const res = await suiGrpcClient.ledgerService.getObject({
143
- objectId: dfObjectId,
144
- readMask: {
145
- paths: ["bcs"],
146
- },
147
- });
148
- if (!res.response.object?.bcs?.value) {
149
- return null;
150
- }
151
-
152
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
153
- const field = Field(bcs.String, VecMap(TypeName, bcs.U64)).parse(
154
- suiMoveObject.data.MoveObject.contents,
155
- );
156
-
157
- return field.value;
158
- }
159
-
160
- export async function getStudio(
161
- suiGrpcClient: SuiGrpcClient,
162
- studioId: string,
163
- ) {
164
- try {
165
- const res = await suiGrpcClient.ledgerService.getObject({
166
- objectId: studioId,
167
- readMask: {
168
- paths: ["bcs"],
169
- },
170
- });
171
-
172
- if (!res.response.object?.bcs?.value) {
173
- return null;
174
- }
175
-
176
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
177
-
178
- return Studio.parse(suiMoveObject.data.MoveObject.contents);
179
- } catch (error) {
180
- console.error(error);
181
- return null;
182
- }
183
- }
184
-
185
- export async function getStorageSpace(
186
- suiGrpcClient: SuiGrpcClient,
187
- storageSpaceId: string,
188
- ) {
189
- try {
190
- const res = await suiGrpcClient.ledgerService.getObject({
191
- objectId: storageSpaceId,
192
- readMask: {
193
- paths: ["bcs"],
194
- },
195
- });
196
-
197
- if (!res.response.object?.bcs?.value) {
198
- return null;
199
- }
200
-
201
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
202
-
203
- return StorageSpace.parse(suiMoveObject.data.MoveObject.contents);
204
- } catch (error) {
205
- console.error(error);
206
- return null;
207
- }
208
- }
209
-
210
- export async function getStorageTreasury(
211
- suiGrpcClient: SuiGrpcClient,
212
- storageTreasuryId: string,
213
- ) {
214
- const res = await suiGrpcClient.ledgerService.getObject({
215
- objectId: storageTreasuryId,
216
- readMask: {
217
- paths: ["bcs"],
218
- },
219
- });
220
- if (!res.response.object?.bcs?.value) {
221
- return null;
222
- }
223
-
224
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
225
- return StorageTreasury.parse(suiMoveObject.data.MoveObject.contents);
226
- }
227
-
228
- export async function getMember(
229
- suiGrpcClient: SuiGrpcClient,
230
- membershipTableId: string,
231
- member: string,
232
- ) {
233
- const dfObjectId = deriveDynamicFieldID(
234
- membershipTableId,
235
- "address",
236
- bcs.Address.serialize(member).toBytes(),
237
- );
238
-
239
- const res = await suiGrpcClient.ledgerService.getObject({
240
- objectId: dfObjectId,
241
- readMask: {
242
- paths: ["bcs"],
243
- },
244
- });
245
- if (!res.response.object?.bcs?.value) {
246
- return null;
247
- }
248
-
249
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
250
- const field = Field(bcs.Address, Member).parse(
251
- suiMoveObject.data.MoveObject.contents,
252
- );
253
-
254
- return field.value;
255
- }
256
-
257
- export async function getMembers(
258
- suiGrpcClient: SuiGrpcClient,
259
- membershipTableId: string,
260
- cursor?: string,
261
- limit = 20,
262
- ) {
263
- const res = await suiGrpcClient.stateService.listDynamicFields({
264
- parent: membershipTableId,
265
- pageToken: cursor ? fromBase64(cursor) : undefined,
266
- pageSize: limit,
267
- readMask: {
268
- paths: ["field_object.bcs"],
269
- },
270
- });
271
-
272
- const data = res.response.dynamicFields.map((df) => {
273
- if (!df.fieldObject?.bcs?.value)
274
- throw new Error("Wrong readMask for reading members");
275
- const suiMoveObject = SuiMoveObject.parse(df.fieldObject.bcs.value);
276
- // Wrapped in dynamicFields
277
- const field = Field(bcs.Address, Member).parse(
278
- suiMoveObject.data.MoveObject.contents,
279
- );
280
-
281
- return {
282
- member: field.name,
283
- level: field.value.level,
284
- expiredAt: field.value.expired_at,
285
- };
286
- });
287
-
288
- return {
289
- data,
290
- nextCursor: res.response.nextPageToken
291
- ? toBase64(res.response.nextPageToken)
292
- : undefined,
293
- hasNextPage: res.response.nextPageToken !== undefined,
294
- };
295
- }
296
-
297
- export async function getWork(
298
- suiGrpcClient: SuiGrpcClient,
299
- walrusSystem: WalrusSystemState,
300
- workId: string,
301
- workType?: string,
302
- ) {
303
- const res = await suiGrpcClient.ledgerService.getObject({
304
- objectId: workId,
305
- readMask: {
306
- paths: ["bcs"],
307
- },
308
- });
309
-
310
- if (!res.response.object?.bcs?.value) {
311
- return null;
312
- }
313
-
314
- const suiMoveObject = SuiMoveObject.parse(res.response.object.bcs.value);
315
-
316
- const type = suiMoveObject.data.MoveObject
317
- .type as typeof MoveObjectType.$inferType;
318
-
319
- if (
320
- type.$kind !== "Other" ||
321
- normalizeStructTag(type.Other as any) !== workType
322
- )
323
- return null;
324
-
325
- return Article.parse(suiMoveObject.data.MoveObject.contents);
326
- }
327
-
328
- export async function getWorks(
329
- suiGrpcClient: SuiGrpcClient,
330
- walrusSystem: WalrusSystemState,
331
- workTableId: string,
332
- workType?: string,
333
- cursor?: string,
334
- limit = 20,
335
- ) {
336
- const res = await suiGrpcClient.stateService.listDynamicFields({
337
- parent: workTableId,
338
- pageToken: cursor ? fromBase64(cursor) : undefined,
339
- pageSize: limit,
340
- readMask: {
341
- paths: ["child_object"],
342
- },
343
- });
344
-
345
- const works = res.response.dynamicFields.map((df) => {
346
- if (!df.childObject?.contents?.value)
347
- throw new Error("Wrong readMask for reading members");
348
- // Wrapped in dynamicObjectFields
349
- const objectType = df.childObject.objectType;
350
-
351
- if (objectType !== workType) return null;
352
- return Article.parse(df.childObject.contents.value);
353
- });
354
-
355
- const data = works
356
- .filter((d): d is typeof Article.$inferType => {
357
- if (!d || d.blobs.length === 0 || d.deleted) return false;
358
- const minEndEpoch = Math.min(...d.blobs.map((b) => b.storage.end_epoch));
359
- return minEndEpoch > walrusSystem.committee.epoch;
360
- })
361
- .sort((a, b) => Number(b.created_at) - Number(a.created_at));
362
-
363
- console.log({ getWorksData: data });
364
-
365
- return {
366
- data,
367
- nextCursor: res.response.nextPageToken
368
- ? toBase64(res.response.nextPageToken)
369
- : undefined,
370
- hasNextPage: res.response.nextPageToken !== undefined,
371
- };
372
- }
373
-
374
- export async function getPublishedArticleAndBlobId(
375
- suiGrpcClient: SuiGrpcClient,
376
- suiClient: SuiJsonRpcClient,
377
- walrusClient: WalrusClient,
378
- digest: string,
379
- blobRegisteredEventType: string,
380
- publishArticleEventType: string,
381
- ) {
382
- // suiGrpcClient waitForTransaction calling core.getTransaction which is broken
383
- await suiClient.waitForTransaction({
384
- digest,
385
- });
386
-
387
- if (!digest) throw new Error("fail to get transaction hash");
388
-
389
- const res = await suiGrpcClient.ledgerService.getTransaction({
390
- digest,
391
- readMask: {
392
- paths: ["events"],
393
- },
394
- });
395
-
396
- const blobRegisteredEvent = res.response.transaction?.events?.events?.find(
397
- (e) => e.contents?.name === blobRegisteredEventType,
398
- );
399
- const publishArticleEvent = res.response.transaction?.events?.events?.find(
400
- (e) => e.contents?.name === publishArticleEventType,
401
- );
402
-
403
- if (!blobRegisteredEvent || !blobRegisteredEvent.contents?.value) {
404
- throw new Error("fail to get blobRegisteredEvent");
405
- }
406
- if (!publishArticleEvent || !publishArticleEvent.contents?.value) {
407
- throw new Error("fail to get publishArticleEvent");
408
- }
409
-
410
- const blobObjectId = BlobRegistered.parse(
411
- blobRegisteredEvent.contents?.value,
412
- ).object_id;
413
- const parsedPublishArticleEvent = PublishArticleEvent.parse(
414
- publishArticleEvent.contents.value,
415
- );
416
-
417
- return { parsedPublishArticleEvent, blobObjectId };
418
- }
419
-
420
- export function encodeQuiltPatchId(id: typeof QuiltPatchId.$inferInput) {
421
- return urlSafeBase64(QuiltPatchId.serialize(id).toBytes());
422
- }
423
-
424
- export function urlSafeBase64(bytes: Uint8Array): string {
425
- return toBase64(bytes).replace(/=*$/, "").replace("+", "-").replace("/", "_");
426
- }
427
-
428
- export function getMaxFaultyNodes(nShards: number): number {
429
- return Math.floor((nShards - 1) / 3);
430
- }
431
-
432
- export function decodingSafetyLimit(
433
- nShards: number,
434
- encodingType: EncodingType,
435
- ): number {
436
- switch (encodingType) {
437
- case "RedStuff":
438
- return Math.min(5, Math.floor(getMaxFaultyNodes(nShards) / 5));
439
- case "RS2":
440
- return 0;
441
- default:
442
- throw new Error(`Encountered unknown encoding type of ${encodingType}`);
443
- }
444
- }
445
-
446
- export function signersToBitmap(
447
- signers: number[],
448
- committeeSize: number,
449
- ): Uint8Array {
450
- const bitmapSize = Math.ceil(committeeSize / 8);
451
- const bitmap = new Uint8Array(bitmapSize);
452
-
453
- for (const signer of signers) {
454
- const byteIndex = Math.floor(signer / 8);
455
- const bitIndex = signer % 8;
456
- bitmap[byteIndex] |= 1 << bitIndex;
457
- }
458
-
459
- return bitmap;
460
- }
461
-
462
- export function getSourceSymbols(
463
- nShards: number,
464
- encodingType: EncodingType = "RS2",
465
- ) {
466
- const safetyLimit = decodingSafetyLimit(nShards, encodingType);
467
- const maxFaulty = getMaxFaultyNodes(nShards);
468
- const minCorrect = nShards - maxFaulty;
469
-
470
- return {
471
- primarySymbols: minCorrect - maxFaulty - safetyLimit,
472
- secondarySymbols: minCorrect - safetyLimit,
473
- };
474
- }
475
-
476
- /**
477
- * Calculate the encoded sliver size.
478
- * This matches the Walrus SDK's encodedSliverSize function.
479
- */
480
- export function encodedSliverSize(
481
- unencodedLength: number,
482
- nShards: number,
483
- encodingType: EncodingType = "RS2",
484
- ): number {
485
- const { primarySymbols, secondarySymbols } = getSourceSymbols(
486
- nShards,
487
- encodingType,
488
- );
489
-
490
- // Calculate symbol size with proper rounding
491
- let symbolSize =
492
- Math.floor(
493
- (Math.max(unencodedLength, 1) - 1) / (primarySymbols * secondarySymbols),
494
- ) + 1;
495
-
496
- // RS2 requires even symbol sizes
497
- if (encodingType === "RS2" && symbolSize % 2 === 1) {
498
- symbolSize = symbolSize + 1;
499
- }
500
-
501
- const singleShardSize = (primarySymbols + secondarySymbols) * symbolSize;
502
-
503
- console.log("encodedSliverSize breakdown:", {
504
- unencodedLength,
505
- primarySymbols,
506
- secondarySymbols,
507
- calculatedSymbolSize: symbolSize,
508
- singleShardSize,
509
- totalSliverSize: singleShardSize * nShards,
510
- });
511
-
512
- return singleShardSize * nShards;
513
- }
514
-
515
- export function encodedBlobLength(
516
- unencodedLength: number,
517
- nShards: number,
518
- encodingType: EncodingType = "RS2",
519
- ): number {
520
- const sliverSize = encodedSliverSize(unencodedLength, nShards, encodingType);
521
- const metadata = nShards * DIGEST_LEN * 2 + BLOB_ID_LEN;
522
- return nShards * metadata + sliverSize;
523
- }
@@ -1,22 +0,0 @@
1
- import { useZingQuery } from "./useZingQuery.js";
2
-
3
- export function useGetStudio(suiAddress?: string) {
4
- return useZingQuery(
5
- {
6
- method: "getStudio",
7
- params: [suiAddress || ""],
8
- },
9
- {
10
- enabled: !!suiAddress,
11
- retry: (failureCount, error) => {
12
- if (error instanceof Error && error.message.includes("notExists")) {
13
- return false;
14
- }
15
- return failureCount < 1;
16
- },
17
- staleTime: 5 * 60 * 1000, // 5 minutes
18
- gcTime: 10 * 60 * 1000, // 10 minutes (formerly cacheTime)
19
- },
20
- [suiAddress || ""],
21
- );
22
- }