From 882833619b944679c45b0abd602353f7d66f06ba Mon Sep 17 00:00:00 2001
From: Tomek Marciniak <tmarciniakm@gmail.com>
Date: Sat, 6 Apr 2024 13:16:07 +0200
Subject: [PATCH] feat(web connector): unmock the values

---
 bun.lockb      | Bin 93513 -> 93513 bytes
 src/App.svelte |  75 +++++++++++++++++++++++++++----------------------
 src/lib/tx.ts  |  10 +++----
 3 files changed, 46 insertions(+), 39 deletions(-)

diff --git a/bun.lockb b/bun.lockb
index 473f8b4eafe1bce441858124d0020fcb7996fdd1..daae173039ccc033f12f841768dfceadff2bef5e 100755
GIT binary patch
delta 1483
zcmW;ADU8$r07l`g*y4(-tQ@mRLqZriavTk6RxFge+-14SUG8$1W1-yTE_c~vlgi4H
zHI*X}BS(&791Z->e0h1Rzh_r}&o2L2n3-9cF3kVe-7Ir#aj-?FK*LjeSfaUA$Hxk-
zZ8`zgXm8gEvBAy`od}2M?9_>Igxy^_368P1TPMW{_I;fUr|9m{$+5-3UY!DseQFO&
zH23THSfO=5C%_u*gE}EL*g2#V;SilbC&m$W59=g2#@?b%iWBS~(aCU%?opi_TO1tI
zDbP5s_OL|rgpQ9DTA@yWHQFb2LTs>eN+-f0I;VAF9AWp2PJ(0Xoz+Qkg8g$k8BWnX
zuajeogGi@9<AU1563vS`K2~U5(h0Ce`?5}m4R)^RL^wp}s!og}>|WDJaE!fJC&dZ&
zuj^zuMfZkIjx7#u>J(_)QhQjUd0WTF3avXj0oG{W)d{h|PNEax5S@EEF^;f%Unjva
z_8#b@IKloyoeZbwF6rdh;^2`^fyQIChb5Y+j*k^uPjmvT(SE8EVuPJ$IuQ=hd9D-V
z2)i$I5*%airA~?y?7z~<aEflGlVgj6*E$6nZ`2-^Xuj3)u|n&ePJlJq?{z|Ku=7DD
z!XY{zbz&T0H`hsUjJ;1fDNeBeStr9Ox?gm1Y;o{ar$FPI+QSmf?>atKX#LO$utvMk
f39%{WmzLMgt!(=FYvY<3Z@sh5*|1{&om>0|Mug<P

delta 1483
zcmW;ADU8$r0EOX&WQ!}VvU1EOBS(%LM}z8$g>sj>ELXY9UG8!$l)K#JE|5(sD@)dl
z9I;~L$Z^!s!26&0^75~&&aSM^{`|ABW@f2bnE$V{N#@w1yIG|`!_)V$M01OZj}=;5
zRRXNh-lh`b5IfsdA{=3Nhf0iN?Cn%ZaDx3^Dk)BJ;HzZVptD;g#}?f^Dg_#Q^*t=n
z+^6DWh1PzR0Bf`lsDwDg&Owz3N7xNiVjN@dkV=9R>@TXMIK{zXl?)qnj;Q3=qI*=O
zK;xLchb5ZFReY?_3RMEE(LSLP;t)G0RU#Z=_moPEW9*$)NpOPwGb$-gad1{8!v>vm
zDmk|3Mk)mw=k+}-(Y&DIV};g5l>lqBFR6q$#Li`v2uIkxq7vg6dskHwoM1mzNpXsU
zYbqHw=v-IHu|@ZWN`b~reGf}CZ>jiLp><m&z#8p4Dj^QBlc+>E!tPy_7{}PVr;^|V
z`}b8+oZ{etN`?(OODZ|G=sr{_(0HWpVTop{;$wx@W0e4Fw4bPiIK<9Vl?X@JeWnuQ
z7<<oE5}aWFg-VK39K2M?ut6tN$+1QEl}dreYkdz(G~cNBSfTY+CBPc(cPb$cvGZOf
z!Vz{qsKhwNUapeh1p6OVQk>%8lS+mSI-gZ?Y|;IqQlRlw-@_8kZz?`kXnj`+utvL3
b32|7=Fa26Sx4iMk?+xqL&ah?s@7&@)b=Km1

diff --git a/src/App.svelte b/src/App.svelte
index e029c18..aaae168 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -1,23 +1,21 @@
 <script lang="ts">
     import { writable } from "svelte/store";
-    import { Mina } from "o1js";
     import { constructPaymentTx } from "./lib/tx";
-    import Client from "mina-signer";
-    import { exampleCredential } from './credentials/mock_credential'
+    import { exampleCredential } from "./credentials/mock_credential";
 
-    const Local = Mina.LocalBlockchain();
-    const signerClient = new Client({ network: Local.getNetworkId() });
-    const keypair = signerClient.genKeys();
+    export const messageToSign = writable<string>("Message to sign");
+    export const fieldsToSign = writable<string>("[0]");
 
     const walletName = window.mina.wallet.name;
     const walletIcon = window.mina.wallet.icon;
+
     export let isConnected = window.mina.isConnected();
     export let enable = window.mina.enable;
     export let disconnect = window.mina.disconnect;
     export const signMessage = async () => {
         const response = await window.mina.request({
             method: "mina_sign",
-            params: { message: "test" },
+            params: { message: $messageToSign },
         });
         results.set({
             ...$results,
@@ -27,7 +25,7 @@
     export const signFields = async () => {
         const response = await window.mina.request({
             method: "mina_signFields",
-            params: [0],
+            params: JSON.parse($fieldsToSign),
         });
         results.set({
             ...$results,
@@ -35,16 +33,19 @@
         });
     };
     const signTx = async () => {
-        console.log(">>>KP", keypair);
+        const accountsResponse = await window.mina.request({
+            method: "mina_accounts",
+        });
         const constructedTx = constructPaymentTx({
-            from: keypair.publicKey,
-            to: keypair.publicKey,
+            from: accountsResponse.result[0],
+            to: "B62qkYa1o6Mj6uTTjDQCob7FYZspuhkm4RRQhgJg9j4koEBWiSrTQrS",
             amount: 100,
-            fee: 0,
+            fee: 1,
             type: "payment",
             nonce: 0,
             validUntil: 321,
         });
+        console.log(JSON.stringify(constructedTx));
         const response = await window.mina.request({
             method: "mina_signTransaction",
             params: { transaction: constructedTx },
@@ -82,22 +83,27 @@
     };
     const getCredential = async () => {
         const response = await window.mina.request({
-            method: 'mina_getState', params: {query: {issuer: 'University of Example'}, props: []}
-        })
+            method: "mina_getState",
+            params: { query: { issuer: "University of Example" }, props: [] },
+        });
         console.log(response);
         results.set({
             ...$results,
-            credential: response.result,
-        })
+            credential: JSON.stringify(response.result, undefined, "\t"),
+        });
     };
     const setCredentialState = async () => {
         const response = await window.mina.request({
-            method: 'mina_setState', params: {objectName: "exampleCredential", object: exampleCredential}
-        })
+            method: "mina_setState",
+            params: {
+                objectName: "exampleCredential",
+                object: exampleCredential,
+            },
+        });
         console.log(response);
         // nothing to write in the app
         // since it is writing to Pallad
-    }
+    };
     export const results = writable({
         accounts: "",
         chainId: "",
@@ -106,7 +112,6 @@
         signMessage: "",
         signTransactions: "",
         credential: "",
-        mockCredential: exampleCredential,
     });
 </script>
 
@@ -177,22 +182,26 @@
                     <button class="btn btn-neutral flex-1" on:click={getBalance}
                         >mina_getBalance</button
                     >
-                    <button class="btn btn-neutral flex-1" on:click={getCredential}
-                        >mina_getState</button
-                    >
                 </div>
             </div>
         </div>
         <div class="card bg-base-200 shadow-xl">
             <div class="card-body">
-                <h2 class="text-2xl font-semibold">Setters</h2>
-                <div class="grid grid-cols-[2fr_1fr] gap-2">
-                    <input
-                        class="input input-bordered"
-                        value={$results.mockCredential}
-                    />
-                    <button class="btn btn-neutral flex-1" on:click={setCredentialState}
-                        >mina_setState</button
+                <h2 class="text-2xl font-semibold">Proofs Store</h2>
+                <p>Result</p>
+                <textarea
+                    class="textarea textarea-bordered h-32 resize-none"
+                    placeholder="Result"
+                    value={$results.credential}
+                />
+                <div class="grid grid-cols-2 gap-2">
+                    <button
+                        class="btn btn-neutral flex-1"
+                        on:click={setCredentialState}>mina_setState</button
+                    >
+                    <button
+                        class="btn btn-neutral flex-1"
+                        on:click={getCredential}>mina_getState</button
                     >
                 </div>
             </div>
@@ -203,7 +212,7 @@
                 <p>Message</p>
                 <input
                     class="input input-bordered"
-                    placeholder="Message to sign"
+                    bind:value={$messageToSign}
                 />
                 <p>Result</p>
                 <textarea
@@ -223,7 +232,7 @@
                 <input
                     class="input input-bordered"
                     placeholder="Stringified fields"
-                    value="[0]"
+                    bind:value={$fieldsToSign}
                 />
                 <p>Result</p>
                 <textarea
diff --git a/src/lib/tx.ts b/src/lib/tx.ts
index 3d6f440..4f56c52 100644
--- a/src/lib/tx.ts
+++ b/src/lib/tx.ts
@@ -23,19 +23,17 @@ export type TransactionBody = {
 };
 
 export function constructPaymentTx(payment: TransactionBody) {
-  const sendFee = BigInt(payment.fee);
-  const sendAmount = payment.amount ? BigInt(payment.amount) : BigInt(0);
+  const sendFee = payment.fee;
+  const sendAmount = payment.amount ?? 0;
   const memo = payment.memo || "";
-  const validUntil = payment.validUntil
-    ? BigInt(payment.validUntil)
-    : BigInt(4294967295); // Mina Signer has a defaultValidUntil = '4294967295';
+  const validUntil = payment.validUntil ? payment.validUntil : 4294967295; // Mina Signer has a defaultValidUntil = '4294967295';
 
   return {
     to: payment.to,
     from: payment.from,
     amount: sendAmount,
     fee: sendFee,
-    nonce: BigInt(payment.nonce),
+    nonce: payment.nonce,
     memo: memo,
     validUntil: validUntil,
     type: TransactionKind.PAYMENT,