Skip to content

Commit 9e36e9d

Browse files
fix: enable decryption (#254)
1 parent 900f8da commit 9e36e9d

File tree

6 files changed

+51
-12
lines changed

6 files changed

+51
-12
lines changed

packages/create-invoice-form/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @requestnetwork/create-invoice-form
22

3+
## 0.11.10
4+
5+
### Patch Changes
6+
7+
- Fix enbable decryption
8+
39
## 0.11.9
410

511
### Patch Changes

packages/create-invoice-form/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@requestnetwork/create-invoice-form",
3-
"version": "0.11.9",
3+
"version": "0.11.10",
44
"main": "./dist/web-component.umd.cjs",
55
"scripts": {
66
"dev": "vite dev",

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
export let wagmiConfig: WagmiConfig;
3030
export let requestNetwork: RequestNetwork | null | undefined;
3131
export let currencies: CurrencyTypes.CurrencyInput[] = [];
32-
let cipherProvider: CipherProviderTypes.ICipherProvider | undefined = requestNetwork?.getCipherProvider();
32+
let cipherProvider: CipherProviderTypes.ICipherProvider | undefined;
3333
3434
let account: GetAccountReturnType;
3535
let isTimeout = false;
@@ -115,6 +115,8 @@
115115
totalAmount: 0,
116116
};
117117
118+
$: cipherProvider = requestNetwork?.getCipherProvider();
119+
118120
$: {
119121
if (wagmiConfig) {
120122
account = getAccount(wagmiConfig);

packages/invoice-dashboard/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @requestnetwork/invoice-dashboard
22

3+
## 0.11.8
4+
5+
### Patch Changes
6+
7+
- Fix enbable decryption
8+
39
## 0.11.7
410

511
### Patch Changes

packages/invoice-dashboard/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@requestnetwork/invoice-dashboard",
3-
"version": "0.11.7",
3+
"version": "0.11.8",
44
"main": "./dist/web-component.umd.cjs",
55
"scripts": {
66
"dev": "vite dev",

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

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,23 @@
4141
import { CurrencyManager } from "@requestnetwork/currency";
4242
import { onDestroy, onMount, tick } from "svelte";
4343
import { formatUnits } from "viem";
44-
import { debounce, formatAddress } from "../utils";
44+
import { debounce, formatAddress, getEthersSigner } from "../utils";
4545
import { Drawer, InvoiceView } from "./dashboard";
4646
import { getPaymentNetworkExtension } from "@requestnetwork/payment-detection";
4747
import { CipherProviderTypes, CurrencyTypes } from "@requestnetwork/types";
48-
import { checkStatus } from "@requestnetwork/shared-utils/checkStatus";
48+
import { checkStatus } from "@requestnetwork/shared-utils/checkStatus";
49+
import { ethers } from "ethers";
4950
5051
export let config: IConfig;
5152
export let wagmiConfig: WagmiConfig;
5253
export let requestNetwork: RequestNetwork | null | undefined;
5354
export let currencies: CurrencyTypes.CurrencyInput[] = [];
5455
55-
let cipherProvider: CipherProviderTypes.ICipherProvider | undefined = requestNetwork?.getCipherProvider();
56+
let cipherProvider: CipherProviderTypes.ICipherProvider & {
57+
getSessionSignatures: (signer: ethers.Signer, walletAddress: `0x${string}`) => Promise<any>;
58+
} | undefined;
5659
57-
let sliderValueForDecryption = cipherProvider?.isDecryptionEnabled() ? "on" : "off";
60+
let sliderValueForDecryption = JSON.parse(localStorage?.getItem('isDecryptionEnabled') ?? "false") ? "on" : "off";
5861
5962
let signer: `0x${string}` | undefined;
6063
let activeConfig = config ? config : defaultConfig;
@@ -99,6 +102,7 @@
99102
$: {
100103
if (account?.address) {
101104
tick().then(() => {
105+
enableDecryption();
102106
getRequests();
103107
});
104108
}
@@ -128,6 +132,13 @@
128132
if (typeof unwatchAccount === "function") unwatchAccount();
129133
});
130134
135+
$: cipherProvider = requestNetwork?.getCipherProvider() as CipherProviderTypes.ICipherProvider & {
136+
getSessionSignatures: (
137+
signer: ethers.Signer,
138+
walletAddress: `0x${string}`
139+
) => Promise<any>;
140+
};
141+
131142
$: {
132143
signer = account?.address;
133144
}
@@ -389,17 +400,31 @@
389400
const handleRemoveSelectedRequest = () => {
390401
activeRequest = undefined;
391402
};
392-
393403
394-
$: sliderValueForDecryption, getRequests();
395-
396-
$: {
404+
const enableDecryption = async () => {
405+
loading = true;
397406
if(sliderValueForDecryption === 'on') {
398-
cipherProvider?.enableDecryption(true);
407+
try {
408+
const signer = await getEthersSigner(wagmiConfig);
409+
if (signer && account?.address) {
410+
await cipherProvider?.getSessionSignatures(signer, account.address);
411+
cipherProvider?.enableDecryption(true);
412+
localStorage?.setItem('isDecryptionEnabled', JSON.stringify(true));
413+
}
414+
} catch (error) {
415+
console.error("Failed to enable decryption:", error);
416+
toast.error("Failed to enable decryption.");
417+
loading = false;
418+
return;
419+
}
399420
} else {
400421
cipherProvider?.enableDecryption(false);
422+
localStorage?.setItem('isDecryptionEnabled', JSON.stringify(false));
401423
}
424+
await getRequests();
425+
loading = false;
402426
}
427+
$: sliderValueForDecryption, enableDecryption();
403428
404429
</script>
405430

0 commit comments

Comments
 (0)