Skip to content

Commit cb88792

Browse files
rodrigopavezicoderabbitai[bot]MantisClone
authored
Feat/lit protocol (#191)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: MantisClone <[email protected]>
1 parent 09161fc commit cb88792

File tree

12 files changed

+866
-120
lines changed

12 files changed

+866
-120
lines changed

package-lock.json

Lines changed: 501 additions & 88 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/create-invoice-form/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
"!dist/**/*.spec.*"
3434
],
3535
"dependencies": {
36-
"@requestnetwork/data-format": "0.19.1",
37-
"@requestnetwork/request-client.js": "0.50.0",
36+
"@requestnetwork/data-format": "0.19.2",
37+
"@requestnetwork/request-client.js": "0.51.0",
3838
"@wagmi/core": "^2.13.8",
3939
"validator": "^13.12.0",
4040
"viem": "^2.21.27"

packages/create-invoice-form/src/lib/create-invoice-form.svelte

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import Button from "@requestnetwork/shared-components/button.svelte";
2424
import Status from "@requestnetwork/shared-components/status.svelte";
2525
import Modal from "@requestnetwork/shared-components/modal.svelte";
26+
import { EncryptionTypes } from '@requestnetwork/types';
2627
2728
export let config: IConfig;
2829
export let wagmiConfig: WagmiConfig;
@@ -183,19 +184,41 @@
183184
if (requestNetwork) {
184185
try {
185186
addToStatus(APP_STATUS.PERSISTING_TO_IPFS);
186-
const request = await requestNetwork.createRequest({
187-
requestInfo: requestCreateParameters.requestInfo,
188-
paymentNetwork: requestCreateParameters.paymentNetwork,
189-
contentData: requestCreateParameters.contentData,
190-
signer: requestCreateParameters.signer,
191-
});
187+
let request;
188+
if(formData.isEncrypted) {
189+
const payeeEncryptionParams = {
190+
key: requestCreateParameters.requestInfo.payee?.value!,
191+
method: EncryptionTypes.METHOD.KMS,
192+
};
193+
const payerEncryptionParams = {
194+
key: requestCreateParameters.requestInfo.payer?.value!,
195+
method: EncryptionTypes.METHOD.KMS,
196+
};
197+
198+
request = await requestNetwork._createEncryptedRequest(
199+
{
200+
requestInfo: requestCreateParameters.requestInfo,
201+
signer: requestCreateParameters.signer,
202+
paymentNetwork: requestCreateParameters.paymentNetwork,
203+
contentData: requestCreateParameters.contentData,
204+
},
205+
[payeeEncryptionPublicKey, payerEncryptionPublicKey],
206+
);
207+
} else {
208+
request = await requestNetwork.createRequest({
209+
requestInfo: requestCreateParameters.requestInfo,
210+
paymentNetwork: requestCreateParameters.paymentNetwork,
211+
contentData: requestCreateParameters.contentData,
212+
signer: requestCreateParameters.signer,
213+
});
214+
}
192215
193216
activeRequest = request;
194217
addToStatus(APP_STATUS.PERSISTING_ON_CHAIN);
195218
await request.waitForConfirmation();
196219
addToStatus(APP_STATUS.REQUEST_CONFIRMED);
197220
} catch (error: any) {
198-
if (error.message.includes("Transactioon confirmation not received")) {
221+
if (error.message.includes("Transaction confirmation not received")) {
199222
isTimeout = true;
200223
removeAllStatuses();
201224
} else {

packages/create-invoice-form/src/lib/invoice/form.svelte

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,13 @@
453453
}))}
454454
onchange={handleCurrencyChange}
455455
/>
456+
457+
<Input
458+
type="checkbox"
459+
id="isEncrypted"
460+
label="Encrypt invoice"
461+
bind:checked={formData.isEncrypted}
462+
/>
456463
</div>
457464
</div>
458465
<div class="invoice-form-dates">

packages/create-invoice-form/src/lib/utils/resetForm.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,6 @@ export function getInitialFormData() {
5353
taxRegistration: "",
5454
email: "",
5555
},
56+
isEncrypted: false,
5657
};
5758
}

packages/invoice-dashboard/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
3838
},
3939
"dependencies": {
40-
"@requestnetwork/payment-detection": "0.45.1",
41-
"@requestnetwork/payment-processor": "0.48.0",
42-
"@requestnetwork/request-client.js": "0.50.0",
40+
"@requestnetwork/payment-detection": "0.46.0",
41+
"@requestnetwork/payment-processor": "0.49.0",
42+
"@requestnetwork/request-client.js": "0.51.0",
4343
"@wagmi/connectors": "^5.2.0",
4444
"@wagmi/core": "^2.13.8",
4545
"ethers": "^5.7.2",

packages/invoice-dashboard/src/lib/dashboard/invoice-view.svelte

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@
122122
}
123123
124124
$: {
125-
sellerInfo = generateDetailParagraphs(request?.contentData.sellerInfo);
126-
buyerInfo = generateDetailParagraphs(request?.contentData.buyerInfo);
125+
sellerInfo = generateDetailParagraphs(request?.contentData?.sellerInfo);
126+
buyerInfo = generateDetailParagraphs(request?.contentData?.buyerInfo);
127127
}
128128
129129
onMount(() => {
@@ -555,11 +555,11 @@
555555
</Accordion>
556556
{/if}
557557
{/if}
558-
{#if request?.contentData.note}
558+
{#if request?.contentData?.note}
559559
<div class="note-container">
560560
<p class="note-content">
561561
<span class="note-title">Memo:</span> <br />
562-
{request.contentData.note || "-"}
562+
{request.contentData?.note || "-"}
563563
</p>
564564
</div>
565565
{/if}

packages/invoice-dashboard/src/lib/view-requests.svelte

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
// Components
88
import Copy from "@requestnetwork/shared-components/copy.svelte";
99
import Dropdown from "@requestnetwork/shared-components/dropdown.svelte";
10+
import Switch from "@requestnetwork/shared-components/switch.svelte";
1011
import Input from "@requestnetwork/shared-components/input.svelte";
1112
import PoweredBy from "@requestnetwork/shared-components/powered-by.svelte";
1213
import StatusLabel from "@requestnetwork/shared-components/status-label.svelte";
@@ -35,7 +36,6 @@
3536
// Utils
3637
import { config as defaultConfig } from "@requestnetwork/shared-utils/config";
3738
import { initializeCurrencyManager } from "@requestnetwork/shared-utils/initCurrencyManager";
38-
import { checkStatus } from "@requestnetwork/shared-utils/checkStatus";
3939
import { exportToPDF } from "@requestnetwork/shared-utils/generateInvoice";
4040
import { getCurrencyFromManager } from "@requestnetwork/shared-utils/getCurrency";
4141
import { CurrencyManager } from "@requestnetwork/currency";
@@ -45,11 +45,16 @@
4545
import { Drawer, InvoiceView } from "./dashboard";
4646
import { getPaymentNetworkExtension } from "@requestnetwork/payment-detection";
4747
import { CurrencyTypes } from "@requestnetwork/types";
48+
import { checkStatus } from "@requestnetwork/shared-utils/checkStatus";
4849
4950
export let config: IConfig;
5051
export let wagmiConfig: WagmiConfig;
5152
export let requestNetwork: RequestNetwork | null | undefined;
5253
export let currencies: CurrencyTypes.CurrencyInput[] = [];
54+
export let isDecryptionEnabled: boolean;
55+
export let enableDecryption: (option: boolean) => void | undefined;
56+
57+
let sliderValueForDecryption = isDecryptionEnabled ? "on" : "off";
5358
5459
let signer: `0x${string}` | undefined;
5560
let activeConfig = config ? config : defaultConfig;
@@ -384,6 +389,18 @@
384389
const handleRemoveSelectedRequest = () => {
385390
activeRequest = undefined;
386391
};
392+
393+
394+
$: sliderValueForDecryption, getRequests();
395+
396+
$: {
397+
if(sliderValueForDecryption === 'on') {
398+
enableDecryption(true);
399+
} else {
400+
enableDecryption(false);
401+
}
402+
}
403+
387404
</script>
388405

389406
<div
@@ -412,17 +429,23 @@
412429
</li>
413430
</ul>
414431
</div>
415-
<div style="display: flex; flex-direction: column; gap: 10px;">
432+
<div style="display: flex; flex-direction: column;">
416433
<div class="search-wrapper">
417-
<Input
418-
placeholder="Search..."
419-
width="w-[300px]"
420-
handleInput={handleSearchChange}
421-
>
422-
<div slot="icon">
423-
<Search />
434+
<div class="search-wrapper" style="gap: 10px;">
435+
<Input
436+
placeholder="Search..."
437+
width="w-[300px]"
438+
handleInput={handleSearchChange}
439+
>
440+
<div slot="icon">
441+
<Search />
442+
</div>
443+
</Input>
444+
<div class="width: fit-content;">
445+
<Switch bind:value={sliderValueForDecryption} label="Show encrypted requests" fontSize={14} design="slider" />
424446
</div>
425-
</Input>
447+
</div>
448+
426449
<Dropdown
427450
config={activeConfig}
428451
type="checkbox"
@@ -579,7 +602,7 @@
579602
</tr>
580603
</thead>
581604
<tbody>
582-
{#if processedRequests.length > 0}
605+
{#if !loading && processedRequests.length > 0}
583606
{#each processedRequests as request}
584607
<tr class="row" on:click={(e) => handleRequestSelect(e, request)}>
585608
{#if columns.issuedAt}
@@ -687,7 +710,9 @@
687710
</tr>
688711
{/each}
689712
{:else}
690-
<DashboardSkeleton />
713+
{#if loading}
714+
<DashboardSkeleton />
715+
{/if}
691716
{/if}
692717
</tbody>
693718
</table>

packages/payment-widget/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@
5656
"access": "public"
5757
},
5858
"dependencies": {
59-
"@requestnetwork/payment-processor": "0.48.0",
60-
"@requestnetwork/request-client.js": "0.50.0",
61-
"@requestnetwork/web3-signature": "0.8.1",
59+
"@requestnetwork/payment-processor": "0.49.0",
60+
"@requestnetwork/request-client.js": "0.51.0",
61+
"@requestnetwork/web3-signature": "0.8.2",
6262
"@web3modal/ethers5": "^5.0.11",
6363
"ethers": "^5.7.2",
6464
"vite-plugin-node-polyfills": "^0.22.0"

shared/components/input.svelte

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
export let type: HTMLInputTypeAttribute = "text";
77
export let placeholder = "";
88
export let value: string | number = "";
9+
export let checked: boolean = false;
910
export let className = "";
1011
export let handleInput: ((e: Event) => void) | undefined = undefined;
12+
export let handleCheckbox: ((e: Event) => void) | undefined = undefined;
1113
export let onBlur: ((e: Event) => void) | undefined = undefined;
1214
export let disabled = false;
1315
export let min = "";
@@ -18,7 +20,7 @@
1820
</script>
1921

2022
<div class="input-wrapper">
21-
{#if label}
23+
{#if label && type !== "checkbox"}
2224
<label for={id} class="input-label">{label}</label>
2325
{/if}
2426

@@ -37,6 +39,18 @@
3739
on:input={handleInput}
3840
class={`textarea-input ${className} ${error ? "input-error" : ""}`}
3941
/>
42+
{:else if type === "checkbox"}
43+
<label for={id} class="input-label">
44+
<input
45+
{id}
46+
type="checkbox"
47+
bind:checked={checked}
48+
{disabled}
49+
class={`checkbox-input ${className} ${error ? "input-error" : ""}`}
50+
on:click={handleCheckbox}
51+
/>
52+
{label}
53+
</label>
4054
{:else}
4155
<input
4256
{id}
@@ -125,6 +139,11 @@
125139
box-sizing: border-box;
126140
}
127141
142+
.input-wrapper .checkbox-input {
143+
appearance: auto;
144+
accent-color: #0BB489;
145+
}
146+
128147
.input-wrapper .text-input-icon {
129148
margin-right: 10px;
130149
}

0 commit comments

Comments
 (0)