@zing-protocol/zing-sdk 0.0.16 → 0.1.0

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 (93) hide show
  1. package/dist/_generated/index.d.ts +0 -2
  2. package/dist/_generated/index.js +0 -2
  3. package/dist/_generated/utils/index.d.ts +21 -2
  4. package/dist/_generated/utils/index.js +35 -11
  5. package/dist/_generated/zing_framework/coin_utils.js +1 -4
  6. package/dist/_generated/zing_framework/derived_object_bag.d.ts +4 -3
  7. package/dist/_generated/zing_framework/derived_object_bag.js +12 -37
  8. package/dist/_generated/zing_framework/derived_table.d.ts +5 -4
  9. package/dist/_generated/zing_framework/derived_table.js +12 -33
  10. package/dist/_generated/zing_governance/admin.d.ts +4 -17
  11. package/dist/_generated/zing_governance/admin.js +3 -17
  12. package/dist/_generated/zing_governance/treasury.d.ts +5 -4
  13. package/dist/_generated/zing_governance/treasury.js +5 -15
  14. package/dist/_generated/zing_studio/app.d.ts +70 -2
  15. package/dist/_generated/zing_studio/app.js +154 -100
  16. package/dist/_generated/zing_studio/article.d.ts +6 -52
  17. package/dist/_generated/zing_studio/article.js +23 -74
  18. package/dist/_generated/zing_studio/config.d.ts +34 -3
  19. package/dist/_generated/zing_studio/config.js +47 -50
  20. package/dist/_generated/zing_studio/deps/sui/bag.d.ts +25 -3
  21. package/dist/_generated/zing_studio/deps/sui/bag.js +1 -2
  22. package/dist/_generated/zing_studio/deps/sui/balance.d.ts +1 -1
  23. package/dist/_generated/zing_studio/deps/sui/balance.js +1 -1
  24. package/dist/_generated/zing_studio/deps/sui/coin.d.ts +3 -5
  25. package/dist/_generated/zing_studio/deps/sui/coin.js +3 -3
  26. package/dist/_generated/zing_studio/deps/sui/table.d.ts +21 -4
  27. package/dist/_generated/zing_studio/deps/sui/table.js +2 -3
  28. package/dist/_generated/zing_studio/deps/walrus/blob.d.ts +2 -6
  29. package/dist/_generated/zing_studio/deps/walrus/blob.js +1 -2
  30. package/dist/_generated/zing_studio/deps/walrus/storage_resource.d.ts +1 -3
  31. package/dist/_generated/zing_studio/deps/walrus/storage_resource.js +1 -2
  32. package/dist/_generated/zing_studio/deps/zing_framework/derived_object_bag.d.ts +1 -3
  33. package/dist/_generated/zing_studio/deps/zing_framework/derived_object_bag.js +1 -2
  34. package/dist/_generated/zing_studio/deps/zing_framework/derived_table.d.ts +2 -4
  35. package/dist/_generated/zing_studio/deps/zing_framework/derived_table.js +2 -3
  36. package/dist/_generated/zing_studio/donation.d.ts +6 -14
  37. package/dist/_generated/zing_studio/donation.js +2 -2
  38. package/dist/_generated/zing_studio/enclave.d.ts +17 -10
  39. package/dist/_generated/zing_studio/enclave.js +16 -41
  40. package/dist/_generated/zing_studio/referral.js +15 -46
  41. package/dist/_generated/zing_studio/storage.d.ts +13 -17
  42. package/dist/_generated/zing_studio/storage.js +46 -100
  43. package/dist/_generated/zing_studio/studio.d.ts +6 -28
  44. package/dist/_generated/zing_studio/studio.js +23 -96
  45. package/dist/client/index.d.ts +22 -56
  46. package/dist/client/index.js +4 -30
  47. package/dist/components/zing-provider.d.ts +2 -0
  48. package/dist/components/zing-provider.js +3 -2
  49. package/dist/getters.d.ts +17 -62
  50. package/dist/getters.js +62 -56
  51. package/dist/hooks/index.d.ts +0 -1
  52. package/dist/hooks/index.js +1 -1
  53. package/dist/hooks/useGetStudio.d.ts +4 -10
  54. package/dist/hooks/useReclaim.d.ts +0 -10
  55. package/dist/hooks/useReclaim.js +169 -92
  56. package/dist/hooks/useSignAndExecuteTransaction.js +4 -1
  57. package/dist/hooks/useZingInfiniteQueries.d.ts +3 -9
  58. package/dist/hooks/useZingInfiniteQueries.js +1 -0
  59. package/dist/hooks/useZingQueries.d.ts +8 -27
  60. package/dist/hooks/useZingQueries.js +1 -2
  61. package/dist/hooks/useZingQuery.d.ts +11 -36
  62. package/dist/hooks/useZingQuery.js +1 -2
  63. package/dist/lib/utils/index.d.ts +0 -1
  64. package/dist/lib/utils/index.js +0 -1
  65. package/dist/lib/utils/reclaim.d.ts +1 -29
  66. package/dist/lib/utils/reclaim.js +148 -87
  67. package/dist/mutations/signer.js +1 -1
  68. package/dist/mutations/walrus.js +1 -1
  69. package/package.json +1 -1
  70. package/dist/_generated/zing_framework/deps/sui/object.d.ts +0 -8
  71. package/dist/_generated/zing_framework/deps/sui/object.js +0 -13
  72. package/dist/_generated/zing_governance/deps/sui/object.d.ts +0 -8
  73. package/dist/_generated/zing_governance/deps/sui/object.js +0 -13
  74. package/dist/_generated/zing_identity/config.d.ts +0 -87
  75. package/dist/_generated/zing_identity/config.js +0 -98
  76. package/dist/_generated/zing_identity/deps/std/type_name.d.ts +0 -17
  77. package/dist/_generated/zing_identity/deps/std/type_name.js +0 -22
  78. package/dist/_generated/zing_identity/deps/sui/object.d.ts +0 -8
  79. package/dist/_generated/zing_identity/deps/sui/object.js +0 -13
  80. package/dist/_generated/zing_identity/deps/sui/object_table.d.ts +0 -12
  81. package/dist/_generated/zing_identity/deps/sui/object_table.js +0 -23
  82. package/dist/_generated/zing_identity/deps/sui/table.d.ts +0 -12
  83. package/dist/_generated/zing_identity/deps/sui/table.js +0 -35
  84. package/dist/_generated/zing_identity/deps/sui/vec_set.d.ts +0 -17
  85. package/dist/_generated/zing_identity/deps/sui/vec_set.js +0 -22
  86. package/dist/_generated/zing_identity/ecdsa.d.ts +0 -81
  87. package/dist/_generated/zing_identity/ecdsa.js +0 -87
  88. package/dist/_generated/zing_identity/identity.d.ts +0 -262
  89. package/dist/_generated/zing_identity/identity.js +0 -294
  90. package/dist/_generated/zing_identity/reclaim.d.ts +0 -356
  91. package/dist/_generated/zing_identity/reclaim.js +0 -414
  92. package/dist/_generated/zing_studio/nitro_attestation.d.ts +0 -148
  93. package/dist/_generated/zing_studio/nitro_attestation.js +0 -183
@@ -1,7 +1,9 @@
1
1
  import { useWalletStore } from "../components/wallet-provider.js";
2
2
  import { signAndExecuteGasPoolTransaction } from "../mutations/signer.js";
3
+ import { SUI_DECIMALS } from "@mysten/sui/utils";
3
4
  import { useMutation } from "@tanstack/react-query";
4
5
  const GAS_POOL_OWNER = "0x3198c7da350bf15c48fc598e5b03a0b6e13356801c71b4d1a18b92b09966e5da";
6
+ const GAS_BUDGET = 0.2 * 10 ** SUI_DECIMALS;
5
7
  export const useSignAndExecuteTransaction = () => {
6
8
  const getSigner = useWalletStore((s) => s.getSigner);
7
9
  const suiClient = useWalletStore((s) => s.suiClient);
@@ -18,6 +20,7 @@ export const useSignAndExecuteTransaction = () => {
18
20
  // for Debug usage
19
21
  transaction.setSender(signer.suiAddress);
20
22
  transaction.setGasOwner(GAS_POOL_OWNER);
23
+ transaction.setGasBudget(GAS_BUDGET);
21
24
  const dryRunResponse = await suiClient.simulateTransaction({
22
25
  transaction: await transaction.build({ client: suiClient }),
23
26
  include: {
@@ -26,7 +29,7 @@ export const useSignAndExecuteTransaction = () => {
26
29
  });
27
30
  console.log({ dryRunResponse });
28
31
  if (dryRunResponse.Transaction?.effects.status.success) {
29
- const effects = await signAndExecuteGasPoolTransaction(saltServerUrl, signer, suiClient, transaction);
32
+ const effects = await signAndExecuteGasPoolTransaction(saltServerUrl, signer, suiClient, transaction, GAS_BUDGET);
30
33
  // TODO: handle error message by code
31
34
  if (!effects)
32
35
  throw new Error("fail to get Transaction Effects");
@@ -13,26 +13,20 @@ declare const zingInfiniteQueryMethodMap: (zingClient: ZingClient) => {
13
13
  }>;
14
14
  getWorks: (owner: string, workType?: import("../index.js").WorkType, cursor?: string, limit?: number) => Promise<{
15
15
  data: {
16
- id: {
17
- id: string;
18
- };
16
+ id: string;
19
17
  owner: string;
20
18
  deleted: boolean;
21
19
  created_at: string;
22
20
  subscription_level: number | null;
23
21
  blobs: {
24
- id: {
25
- id: string;
26
- };
22
+ id: string;
27
23
  registered_epoch: number;
28
24
  blob_id: string;
29
25
  size: string;
30
26
  encoding_type: number;
31
27
  certified_epoch: number | null;
32
28
  storage: {
33
- id: {
34
- id: string;
35
- };
29
+ id: string;
36
30
  start_epoch: number;
37
31
  end_epoch: number;
38
32
  storage_size: string;
@@ -12,6 +12,7 @@ export function useZingInfiniteQuery(input, options = {}, memo = []) {
12
12
  const methodMap = zingInfiniteQueryMethodMap(zingClient);
13
13
  const { method, params, limit = 20 } = input;
14
14
  return useInfiniteQuery({
15
+ // eslint-disable-next-line @tanstack/query/exhaustive-deps
15
16
  queryKey: [zingClient.network, method, memo],
16
17
  queryFn: async ({ pageParam }) => {
17
18
  const fn = methodMap[method];
@@ -1,17 +1,10 @@
1
1
  import type { ZingClient } from "../client/index.js";
2
2
  import type { UseQueryOptions } from "@tanstack/react-query";
3
3
  declare const zingQueryMethodMap: (zingClient: ZingClient) => {
4
- getIdentifierByAddress: (platform: import("../index.js").PlatformType, address: string) => Promise<string | null>;
5
- getIdentifierInfoByIdentifier: (platform: import("../index.js").PlatformType, identifier: string) => Promise<{
6
- owner: string;
7
- updated_at: string;
8
- } | null>;
9
4
  getStudio: (owner: string) => Promise<{
10
- id: {
11
- id: string;
12
- };
5
+ id: string;
13
6
  owner: string;
14
- period: string[];
7
+ period: [string, string];
15
8
  monthly_subscription_fee: {
16
9
  contents: {
17
10
  key: number;
@@ -19,15 +12,11 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
19
12
  }[];
20
13
  };
21
14
  membership: {
22
- id: {
23
- id: string;
24
- };
15
+ id: string;
25
16
  size: string;
26
17
  };
27
18
  works: {
28
- id: {
29
- id: string;
30
- };
19
+ id: string;
31
20
  size: string;
32
21
  };
33
22
  encrypted_file_key: number[] | null;
@@ -39,9 +28,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
39
28
  };
40
29
  } | null>;
41
30
  getStorageSpace: (owner: string) => Promise<{
42
- id: {
43
- id: string;
44
- };
31
+ id: string;
45
32
  owner: string;
46
33
  tier: number | null;
47
34
  storage_used: {
@@ -57,9 +44,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
57
44
  };
58
45
  } | null>;
59
46
  getStorageTreasury: () => Promise<{
60
- id: {
61
- id: string;
62
- };
47
+ id: string;
63
48
  tier_plan: {
64
49
  contents: {
65
50
  key: number;
@@ -74,9 +59,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
74
59
  contents: {
75
60
  key: number;
76
61
  value: {
77
- id: {
78
- id: string;
79
- };
62
+ id: string;
80
63
  start_epoch: number;
81
64
  end_epoch: number;
82
65
  storage_size: string;
@@ -90,9 +73,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
90
73
  }[];
91
74
  };
92
75
  wal_treasury: {
93
- id: {
94
- id: string;
95
- };
76
+ id: string;
96
77
  balance: {
97
78
  value: string;
98
79
  };
@@ -4,8 +4,6 @@ import { useQueries } from "@tanstack/react-query";
4
4
  // Method map (shared with useZingQuery)
5
5
  // ---------------------------------------------
6
6
  const zingQueryMethodMap = (zingClient) => ({
7
- getIdentifierByAddress: zingClient.getIdentifierByAddress.bind(zingClient),
8
- getIdentifierInfoByIdentifier: zingClient.getIdentifierInfoByIdentifier.bind(zingClient),
9
7
  getStudio: zingClient.getStudio.bind(zingClient),
10
8
  getStorageSpace: zingClient.getStorageSpace.bind(zingClient),
11
9
  getStorageTreasury: zingClient.getStorageTreasury.bind(zingClient),
@@ -21,6 +19,7 @@ export function useZingQueries(options) {
21
19
  const queryConfigs = options.queries.map((queryConfig) => {
22
20
  const { method, params, ...queryOptions } = queryConfig;
23
21
  return {
22
+ // eslint-disable-next-line @tanstack/query/exhaustive-deps
24
23
  queryKey: [zingClient.network, method, params],
25
24
  queryFn: async () => {
26
25
  const fn = methodMap[method];
@@ -2,17 +2,10 @@ import type { ZingClient } from "../client/index.js";
2
2
  import type { SuiNetwork } from "../types.js";
3
3
  import type { UseQueryOptions } from "@tanstack/react-query";
4
4
  declare const zingQueryMethodMap: (zingClient: ZingClient) => {
5
- getIdentifierByAddress: (platform: import("../index.js").PlatformType, address: string) => Promise<string | null>;
6
- getIdentifierInfoByIdentifier: (platform: import("../index.js").PlatformType, identifier: string) => Promise<{
7
- owner: string;
8
- updated_at: string;
9
- } | null>;
10
5
  getStudio: (owner: string) => Promise<{
11
- id: {
12
- id: string;
13
- };
6
+ id: string;
14
7
  owner: string;
15
- period: string[];
8
+ period: [string, string];
16
9
  monthly_subscription_fee: {
17
10
  contents: {
18
11
  key: number;
@@ -20,15 +13,11 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
20
13
  }[];
21
14
  };
22
15
  membership: {
23
- id: {
24
- id: string;
25
- };
16
+ id: string;
26
17
  size: string;
27
18
  };
28
19
  works: {
29
- id: {
30
- id: string;
31
- };
20
+ id: string;
32
21
  size: string;
33
22
  };
34
23
  encrypted_file_key: number[] | null;
@@ -40,9 +29,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
40
29
  };
41
30
  } | null>;
42
31
  getStorageSpace: (owner: string) => Promise<{
43
- id: {
44
- id: string;
45
- };
32
+ id: string;
46
33
  owner: string;
47
34
  tier: number | null;
48
35
  storage_used: {
@@ -58,9 +45,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
58
45
  };
59
46
  } | null>;
60
47
  getStorageTreasury: () => Promise<{
61
- id: {
62
- id: string;
63
- };
48
+ id: string;
64
49
  tier_plan: {
65
50
  contents: {
66
51
  key: number;
@@ -75,9 +60,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
75
60
  contents: {
76
61
  key: number;
77
62
  value: {
78
- id: {
79
- id: string;
80
- };
63
+ id: string;
81
64
  start_epoch: number;
82
65
  end_epoch: number;
83
66
  storage_size: string;
@@ -91,9 +74,7 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
91
74
  }[];
92
75
  };
93
76
  wal_treasury: {
94
- id: {
95
- id: string;
96
- };
77
+ id: string;
97
78
  balance: {
98
79
  value: string;
99
80
  };
@@ -119,26 +100,20 @@ declare const zingQueryMethodMap: (zingClient: ZingClient) => {
119
100
  } | null>;
120
101
  getBalance: (owner: string, coinSymbol: import("../index.js").CoinSymbol) => Promise<import("node_modules/@mysten/sui/dist/grpc/proto/sui/rpc/v2/state_service.mjs").GetBalanceResponse>;
121
102
  getWork: (workId: string, workType?: import("../index.js").WorkType) => Promise<{
122
- id: {
123
- id: string;
124
- };
103
+ id: string;
125
104
  owner: string;
126
105
  deleted: boolean;
127
106
  created_at: string;
128
107
  subscription_level: number | null;
129
108
  blobs: {
130
- id: {
131
- id: string;
132
- };
109
+ id: string;
133
110
  registered_epoch: number;
134
111
  blob_id: string;
135
112
  size: string;
136
113
  encoding_type: number;
137
114
  certified_epoch: number | null;
138
115
  storage: {
139
- id: {
140
- id: string;
141
- };
116
+ id: string;
142
117
  start_epoch: number;
143
118
  end_epoch: number;
144
119
  storage_size: string;
@@ -4,8 +4,6 @@ import { useQuery } from "@tanstack/react-query";
4
4
  // Method map
5
5
  // ---------------------------------------------
6
6
  const zingQueryMethodMap = (zingClient) => ({
7
- getIdentifierByAddress: zingClient.getIdentifierByAddress.bind(zingClient),
8
- getIdentifierInfoByIdentifier: zingClient.getIdentifierInfoByIdentifier.bind(zingClient),
9
7
  getStudio: zingClient.getStudio.bind(zingClient),
10
8
  getStorageSpace: zingClient.getStorageSpace.bind(zingClient),
11
9
  getStorageTreasury: zingClient.getStorageTreasury.bind(zingClient),
@@ -22,6 +20,7 @@ export function useZingQuery(input, options = {}, memo = []) {
22
20
  const methodMap = zingQueryMethodMap(zingClient);
23
21
  const { method, params } = input;
24
22
  return useQuery({
23
+ // eslint-disable-next-line @tanstack/query/exhaustive-deps
25
24
  queryKey: [zingClient.network, method, memo],
26
25
  gcTime: options.gcTime,
27
26
  staleTime: options.staleTime,
@@ -1,5 +1,4 @@
1
1
  export * from "./helpers.js";
2
- export * from "./reclaim.js";
3
2
  export * from "./colorful-logger.js";
4
3
  export * from "./init-app-with-shadow.js";
5
4
  export type * from "./types.js";
@@ -1,4 +1,3 @@
1
1
  export * from "./helpers.js";
2
- export * from "./reclaim.js";
3
2
  export * from "./colorful-logger.js";
4
3
  export * from "./init-app-with-shadow.js";
@@ -1,29 +1 @@
1
- export declare function hexToBytes(hex: string): Uint8Array;
2
- export declare function bytesToHex(bytes: Uint8Array): string;
3
- export declare function textToBytes(text: string): Uint8Array;
4
- export declare function bytesToText(bytes: Uint8Array): string;
5
- export declare function startVerification({ reclaimAppId, reclaimAppSecret, reclaimProviderId, }: {
6
- reclaimAppId: string;
7
- reclaimAppSecret: string;
8
- reclaimProviderId: string;
9
- }): Promise<unknown>;
10
- export declare function generateCommitNonce(userAddress: string, claimIdentifier: string): number[];
11
- export declare function generateCommitmentHash(proof: ReclaimProof, nonce: number[]): Uint8Array<ArrayBufferLike>;
12
- export type ReclaimProof = {
13
- identifier: string;
14
- claimData: {
15
- provider: string;
16
- parameters: string;
17
- owner: string;
18
- timestampS: number;
19
- context: string;
20
- identifier: string;
21
- epoch: number;
22
- };
23
- signatures: string[];
24
- witnesses: {
25
- id: string;
26
- url: string;
27
- }[];
28
- publicData: string | null;
29
- };
1
+ export {};
@@ -1,87 +1,148 @@
1
- import { ClaimInfo, SignedClaim, } from "../../_generated/zing_identity/reclaim.js";
2
- import { bcs } from "@mysten/sui/bcs";
3
- import { ReclaimProofRequest } from "@reclaimprotocol/js-sdk";
4
- import sha3 from "js-sha3";
5
- export function hexToBytes(hex) {
6
- return new Uint8Array(hex.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)));
7
- }
8
- export function bytesToHex(bytes) {
9
- return Array.from(bytes)
10
- .map((byte) => byte.toString(16).padStart(2, "0"))
11
- .join("");
12
- }
13
- export function textToBytes(text) {
14
- return new TextEncoder().encode(text);
15
- }
16
- // Uint8Array ? String
17
- export function bytesToText(bytes) {
18
- return new TextDecoder().decode(bytes);
19
- }
20
- export async function startVerification({ reclaimAppId, reclaimAppSecret, reclaimProviderId, }) {
21
- try {
22
- // Initialize the Reclaim SDK with your credentials
23
- const reclaimProofRequest = await ReclaimProofRequest.init(reclaimAppId, reclaimAppSecret, reclaimProviderId);
24
- reclaimProofRequest.setModalOptions({ modalPopupTimer: 3 }); // 3min
25
- // Trigger the verification session
26
- await reclaimProofRequest.triggerReclaimFlow();
27
- // Start listening for proof submissions and return a promise
28
- const proofs = await new Promise((resolve, reject) => {
29
- reclaimProofRequest.startSession({
30
- onSuccess: (proofs) => {
31
- resolve(proofs);
32
- },
33
- onError: (error) => {
34
- console.error("Verification failed", error);
35
- reject(error);
36
- },
37
- });
38
- });
39
- return proofs;
40
- }
41
- catch (error) {
42
- console.error("Error starting verification:", error);
43
- throw error;
44
- }
45
- }
46
- export function generateCommitNonce(userAddress, claimIdentifier) {
47
- // Use the same random data as in Move function
48
- const randomBytes = crypto.getRandomValues(new Uint8Array(32));
49
- // Encode user address as BCS (32 bytes for address type)
50
- const addressBytes = bcs.Address.serialize(userAddress).toBytes();
51
- // Encode claim identifier as BCS address (32 bytes for address type)
52
- const identifierBytes = bcs.Address.serialize(claimIdentifier).toBytes();
53
- // Combine: random + userAddress + identifier (no timestamp to match Move logic)
54
- const combined = new Uint8Array(randomBytes.length + addressBytes.length + identifierBytes.length);
55
- let offset = 0;
56
- combined.set(randomBytes, offset);
57
- offset += randomBytes.length;
58
- combined.set(addressBytes, offset);
59
- offset += addressBytes.length;
60
- combined.set(identifierBytes, offset);
61
- return Array.from(combined);
62
- }
63
- export function generateCommitmentHash(proof, nonce) {
64
- const claimInfoBytes = ClaimInfo.serialize({
65
- provider: proof.claimData.provider,
66
- parameters: proof.claimData.parameters,
67
- context: proof.claimData.context,
68
- }).toBytes(); // checked
69
- const signedClaimBytes = SignedClaim.serialize({
70
- claim: {
71
- identifier: proof.claimData.identifier,
72
- owner: proof.claimData.owner,
73
- epoch: proof.claimData.epoch.toString(),
74
- timestamp_s: proof.claimData.timestampS.toString(),
75
- },
76
- signatures: proof.signatures.map((sig) => hexToBytes(sig.substring(2))),
77
- }).toBytes();
78
- const combined = new Uint8Array(claimInfoBytes.length + signedClaimBytes.length + nonce.length);
79
- let offset = 0;
80
- combined.set(claimInfoBytes, offset);
81
- offset += claimInfoBytes.length;
82
- combined.set(signedClaimBytes, offset);
83
- offset += signedClaimBytes.length;
84
- combined.set(nonce, offset);
85
- // Convert Uint8Array -> Buffer before hashing
86
- return hexToBytes(sha3.keccak256(combined));
87
- }
1
+ export {};
2
+ // import {
3
+ // ClaimInfo,
4
+ // SignedClaim,
5
+ // } from "../../_generated/zing_identity/reclaim.js";
6
+ // import { bcs } from "@mysten/sui/bcs";
7
+ // import { ReclaimProofRequest } from "@reclaimprotocol/js-sdk";
8
+ // import sha3 from "js-sha3";
9
+ //
10
+ // export function hexToBytes(hex: string): Uint8Array {
11
+ // return new Uint8Array(
12
+ // hex.match(/.{1,2}/g)!.map((byte) => parseInt(byte, 16)),
13
+ // );
14
+ // }
15
+ //
16
+ // export function bytesToHex(bytes: Uint8Array): string {
17
+ // return Array.from(bytes)
18
+ // .map((byte) => byte.toString(16).padStart(2, "0"))
19
+ // .join("");
20
+ // }
21
+ //
22
+ // export function textToBytes(text: string): Uint8Array {
23
+ // return new TextEncoder().encode(text);
24
+ // }
25
+ //
26
+ // // Uint8Array ? String
27
+ // export function bytesToText(bytes: Uint8Array): string {
28
+ // return new TextDecoder().decode(bytes);
29
+ // }
30
+ //
31
+ // export async function startVerification({
32
+ // reclaimAppId,
33
+ // reclaimAppSecret,
34
+ // reclaimProviderId,
35
+ // }: {
36
+ // reclaimAppId: string;
37
+ // reclaimAppSecret: string;
38
+ // reclaimProviderId: string;
39
+ // }) {
40
+ // try {
41
+ // // Initialize the Reclaim SDK with your credentials
42
+ // const reclaimProofRequest = await ReclaimProofRequest.init(
43
+ // reclaimAppId,
44
+ // reclaimAppSecret,
45
+ // reclaimProviderId,
46
+ // );
47
+ //
48
+ // reclaimProofRequest.setModalOptions({ modalPopupTimer: 3 }); // 3min
49
+ //
50
+ // // Trigger the verification session
51
+ // await reclaimProofRequest.triggerReclaimFlow();
52
+ //
53
+ // // Start listening for proof submissions and return a promise
54
+ // const proofs = await new Promise((resolve, reject) => {
55
+ // reclaimProofRequest.startSession({
56
+ // onSuccess: (proofs) => {
57
+ // resolve(proofs);
58
+ // },
59
+ // onError: (error) => {
60
+ // console.error("Verification failed", error);
61
+ // reject(error);
62
+ // },
63
+ // });
64
+ // });
65
+ //
66
+ // return proofs;
67
+ // } catch (error) {
68
+ // console.error("Error starting verification:", error);
69
+ // throw error;
70
+ // }
71
+ // }
72
+ //
73
+ // export function generateCommitNonce(
74
+ // userAddress: string,
75
+ // claimIdentifier: string,
76
+ // ) {
77
+ // // Use the same random data as in Move function
78
+ // const randomBytes = crypto.getRandomValues(new Uint8Array(32));
79
+ // // Encode user address as BCS (32 bytes for address type)
80
+ // const addressBytes = bcs.Address.serialize(userAddress).toBytes();
81
+ //
82
+ // // Encode claim identifier as BCS address (32 bytes for address type)
83
+ // const identifierBytes = bcs.Address.serialize(claimIdentifier).toBytes();
84
+ //
85
+ // // Combine: random + userAddress + identifier (no timestamp to match Move logic)
86
+ // const combined = new Uint8Array(
87
+ // randomBytes.length + addressBytes.length + identifierBytes.length,
88
+ // );
89
+ //
90
+ // let offset = 0;
91
+ // combined.set(randomBytes, offset);
92
+ // offset += randomBytes.length;
93
+ // combined.set(addressBytes, offset);
94
+ // offset += addressBytes.length;
95
+ // combined.set(identifierBytes, offset);
96
+ //
97
+ // return Array.from(combined);
98
+ // }
99
+ //
100
+ // export function generateCommitmentHash(proof: ReclaimProof, nonce: number[]) {
101
+ // const claimInfoBytes = ClaimInfo.serialize({
102
+ // provider: proof.claimData.provider,
103
+ // parameters: proof.claimData.parameters,
104
+ // context: proof.claimData.context,
105
+ // }).toBytes(); // checked
106
+ // const signedClaimBytes = SignedClaim.serialize({
107
+ // claim: {
108
+ // identifier: proof.claimData.identifier,
109
+ // owner: proof.claimData.owner,
110
+ // epoch: proof.claimData.epoch.toString(),
111
+ // timestamp_s: proof.claimData.timestampS.toString(),
112
+ // },
113
+ // signatures: proof.signatures.map((sig) => hexToBytes(sig.substring(2))),
114
+ // }).toBytes();
115
+ //
116
+ // const combined = new Uint8Array(
117
+ // claimInfoBytes.length + signedClaimBytes.length + nonce.length,
118
+ // );
119
+ //
120
+ // let offset = 0;
121
+ // combined.set(claimInfoBytes, offset);
122
+ // offset += claimInfoBytes.length;
123
+ // combined.set(signedClaimBytes, offset);
124
+ // offset += signedClaimBytes.length;
125
+ // combined.set(nonce, offset);
126
+ //
127
+ // // Convert Uint8Array -> Buffer before hashing
128
+ // return hexToBytes(sha3.keccak256(combined));
129
+ // }
130
+ //
131
+ // export type ReclaimProof = {
132
+ // identifier: string;
133
+ // claimData: {
134
+ // provider: string;
135
+ // parameters: string;
136
+ // owner: string;
137
+ // timestampS: number;
138
+ // context: string;
139
+ // identifier: string;
140
+ // epoch: number;
141
+ // };
142
+ // signatures: string[];
143
+ // witnesses: {
144
+ // id: string;
145
+ // url: string;
146
+ // }[];
147
+ // publicData: string | null;
148
+ // };
@@ -37,7 +37,7 @@ export async function getSigner(suiClient) {
37
37
  maxEpoch: zkLoginStorage.maxEpoch,
38
38
  };
39
39
  }
40
- export async function signAndExecuteGasPoolTransaction(saltServerUrl, signer, suiClient, tx, gasBudget = 0.1 * 10 ** 9, reserveDurationSecs = 30) {
40
+ export async function signAndExecuteGasPoolTransaction(saltServerUrl, signer, suiClient, tx, gasBudget = 0.5 * 10 ** 9, reserveDurationSecs = 30) {
41
41
  const { ephemeralKeyPair, suiAddress, decodedJwt, zkProof, maxEpoch, jwtTokenString, } = signer;
42
42
  if (!ephemeralKeyPair || !suiAddress || !decodedJwt || !zkProof || !maxEpoch)
43
43
  return;
@@ -122,7 +122,7 @@ export function buildCertifyArticleBlobTransaction(config, walrusClient, owner,
122
122
  config: tx.sharedObjectRef(zingStudioConfigSharedObjectRef),
123
123
  studio: tx.object(getDerivedStudioID(zingStudioConfigSharedObjectRef.objectId, owner)),
124
124
  walrusSystem: tx.sharedObjectRef(walrusSystemSharedObjectRef),
125
- articleId: tx.object(articleId),
125
+ articleId: tx.pure.id(articleId),
126
126
  blobIndex: tx.pure.u64(0), // TODO
127
127
  signature: tx.pure.vector("u8", combinedSignature.signature),
128
128
  signersBitmap: tx.pure.vector("u8", signersToBitmap(combinedSignature.signers, systemState.committee.members.length)),
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@zing-protocol/zing-sdk",
3
3
  "sideEffects": false,
4
4
  "type": "module",
5
- "version": "0.0.16",
5
+ "version": "0.1.0",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
@@ -1,8 +0,0 @@
1
- /**************************************************************
2
- * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
- **************************************************************/
4
- /** Sui object identifiers */
5
- import { MoveStruct } from "../../../utils/index.js";
6
- export declare const UID: MoveStruct<{
7
- id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
8
- }, "0x2::object::UID">;
@@ -1,13 +0,0 @@
1
- /**************************************************************
2
- * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
- **************************************************************/
4
- /** Sui object identifiers */
5
- import { MoveStruct } from "../../../utils/index.js";
6
- import { bcs } from "@mysten/sui/bcs";
7
- const $moduleName = "0x2::object";
8
- export const UID = new MoveStruct({
9
- name: `${$moduleName}::UID`,
10
- fields: {
11
- id: bcs.Address,
12
- },
13
- });
@@ -1,8 +0,0 @@
1
- /**************************************************************
2
- * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
- **************************************************************/
4
- /** Sui object identifiers */
5
- import { MoveStruct } from "../../../utils/index.js";
6
- export declare const UID: MoveStruct<{
7
- id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
8
- }, "0x2::object::UID">;
@@ -1,13 +0,0 @@
1
- /**************************************************************
2
- * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
- **************************************************************/
4
- /** Sui object identifiers */
5
- import { MoveStruct } from "../../../utils/index.js";
6
- import { bcs } from "@mysten/sui/bcs";
7
- const $moduleName = "0x2::object";
8
- export const UID = new MoveStruct({
9
- name: `${$moduleName}::UID`,
10
- fields: {
11
- id: bcs.Address,
12
- },
13
- });