/ src / components / Repository / WalletRelease.jsx
WalletRelease.jsx
 1  import React, { useEffect } from 'react';
 2  import styles from './walletrelease.module.scss';
 3  import useAuth from '../../auth/hooks/useAuth';
 4  
 5  const WalletRelease = () => {
 6    const { repositoryActor } = useAuth();
 7  
 8    useEffect(() => {
 9      if(repositoryActor) {
10        console.log("Found repository actor in wallet Release: ", repositoryActor);
11      } else {
12        console.log("Could not find repository actor in wallet release");
13      }
14    }, [repositoryActor]);
15  
16    const hashValue = async (val) => {
17      const hashBuffer = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(val));
18      const hashArray = Array.from(new Uint8Array(hashBuffer));
19      return hashArray;
20    };
21  
22    const appID = "Hanse_app";
23    const version = "0.1.0";
24    const features = "Wallet functionality";
25    const size = 2;
26  
27    const handleAddRelease = async () => {
28      try {
29        const wasmHash = await hashValue(JSON.stringify({ appID, version, features }));
30        console.log(
31          "App ID:", appID,
32          "Version:", version,
33          "Features:", features,
34          "Size:", size,
35          "Wasm Hash:", wasmHash
36        );
37  
38        if (!repositoryActor) {
39          console.log("Could not find repository actor in wallet release");
40          return;
41        }
42  
43        const res = await repositoryActor.add_release({
44          app_id: appID,
45          version,
46          features,
47          size,
48          wasm_hash: wasmHash,
49        });
50        console.log("Response:", res);
51      } catch (error) {
52        console.log("Could not add wasm release:", error);
53      }
54    };
55  
56    
57      return (
58      <div className={styles.container}>
59        <button onClick={handleAddRelease} className={styles.submitbutton}>Add Release</button>
60      </div>
61  
62        );
63  };
64  
65  export default WalletRelease;