From 11be8a3048edf4bc74d6d3d6b41f994f083fc920 Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Mon, 1 Jan 2024 15:26:03 +0530 Subject: [PATCH 01/12] feat: fix whats is master key image --- src/app/screens/Accounts/GenerateMnemonic/new.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/screens/Accounts/GenerateMnemonic/new.tsx b/src/app/screens/Accounts/GenerateMnemonic/new.tsx index c347444ced..e16f582862 100644 --- a/src/app/screens/Accounts/GenerateMnemonic/new.tsx +++ b/src/app/screens/Accounts/GenerateMnemonic/new.tsx @@ -28,7 +28,7 @@ function MnemonicExplanation() { Master Key From f15e765cf34d881c7a50821cc8626df372356245 Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Tue, 2 Jan 2024 15:25:40 +0530 Subject: [PATCH 02/12] feat: use separate instances to avoid provider being invaded by other wallets --- src/extension/inpage-script/index.js | 7 +------ src/extension/providers/alby/index.ts | 19 +++++-------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/extension/inpage-script/index.js b/src/extension/inpage-script/index.js index 30f5323154..73aab4ff26 100644 --- a/src/extension/inpage-script/index.js +++ b/src/extension/inpage-script/index.js @@ -13,12 +13,7 @@ function init() { window.nostr = new NostrProvider(); window.webbtc = new WebBTCProvider(); window.webln = new WebLNProvider(); - window.alby = new AlbyProvider( - window.liquid, - window.nostr, - window.webbtc, - window.webln - ); + window.alby = new AlbyProvider(); const readyEvent = new Event("webln:ready"); window.dispatchEvent(readyEvent); diff --git a/src/extension/providers/alby/index.ts b/src/extension/providers/alby/index.ts index 4e3583b821..4c578e2741 100644 --- a/src/extension/providers/alby/index.ts +++ b/src/extension/providers/alby/index.ts @@ -5,22 +5,13 @@ import WebBTCProvider from "~/extension/providers/webbtc"; import WebLNProvider from "~/extension/providers/webln"; export default class AlbyProvider extends ProviderBase { - liquid: LiquidProvider; - nostr: NostrProvider; - webbtc: WebBTCProvider; - webln: WebLNProvider; + webln = new WebLNProvider(); + nostr = new NostrProvider(); + webbtc = new WebBTCProvider(); + liquid = new LiquidProvider(); - constructor( - liquid: LiquidProvider, - nostr: NostrProvider, - webbtc: WebBTCProvider, - webln: WebLNProvider - ) { + constructor() { super("alby"); - this.liquid = liquid; - this.nostr = nostr; - this.webbtc = webbtc; - this.webln = webln; } /** From dfde5c3fc1552559d1d5a7574a33c9eb0ad51a2a Mon Sep 17 00:00:00 2001 From: kn0wmad <39687477+kn0wmad@users.noreply.github.com> Date: Thu, 4 Jan 2024 20:14:43 +0000 Subject: [PATCH 03/12] [chore] Update StartOS Brand (#2974) * chore: startOS branding and translation updates * chore: resize image canvas for margin * chore: image opt --- src/app/router/connectorRoutes.tsx | 18 +++++++++--------- .../index.tsx | 10 +++++----- src/i18n/locales/cs/translation.json | 12 ++++++------ src/i18n/locales/da/translation.json | 8 ++++---- src/i18n/locales/de/translation.json | 12 ++++++------ src/i18n/locales/el/translation.json | 8 ++++---- src/i18n/locales/en/translation.json | 12 ++++++------ src/i18n/locales/eo/translation.json | 4 ++-- src/i18n/locales/es/translation.json | 12 ++++++------ src/i18n/locales/fa/translation.json | 12 ++++++------ src/i18n/locales/fi/translation.json | 8 ++++---- src/i18n/locales/fr/translation.json | 8 ++++---- src/i18n/locales/hi/translation.json | 6 +++--- src/i18n/locales/id/translation.json | 12 ++++++------ src/i18n/locales/it/translation.json | 8 ++++---- src/i18n/locales/ja/translation.json | 12 ++++++------ src/i18n/locales/mr/translation.json | 8 ++++---- src/i18n/locales/nl/translation.json | 8 ++++---- src/i18n/locales/pl/translation.json | 12 ++++++------ src/i18n/locales/pt_BR/translation.json | 12 ++++++------ src/i18n/locales/ro/translation.json | 8 ++++---- src/i18n/locales/ru/translation.json | 2 +- src/i18n/locales/sl/translation.json | 12 ++++++------ src/i18n/locales/sv/translation.json | 12 ++++++------ src/i18n/locales/th/translation.json | 10 +++++----- src/i18n/locales/tl/translation.json | 2 +- src/i18n/locales/uk/translation.json | 2 +- src/i18n/locales/zh_Hans/translation.json | 12 ++++++------ src/i18n/locales/zh_Hant/translation.json | 12 ++++++------ static/assets/icons/start9.png | Bin 2914 -> 0 bytes static/assets/icons/startos.png | Bin 0 -> 23306 bytes tests/e2e/001-createWallets.spec.ts | 4 ++-- 32 files changed, 139 insertions(+), 139 deletions(-) rename src/app/screens/connectors/{ConnectStart9 => ConnectStartOS}/index.tsx (96%) delete mode 100644 static/assets/icons/start9.png create mode 100644 static/assets/icons/startos.png diff --git a/src/app/router/connectorRoutes.tsx b/src/app/router/connectorRoutes.tsx index 0c59c75083..6c7332c979 100644 --- a/src/app/router/connectorRoutes.tsx +++ b/src/app/router/connectorRoutes.tsx @@ -9,13 +9,13 @@ import ConnectLnd from "@screens/connectors/ConnectLnd"; import ConnectLndHub from "@screens/connectors/ConnectLndHub"; import ConnectMyNode from "@screens/connectors/ConnectMyNode"; import ConnectRaspiBlitz from "@screens/connectors/ConnectRaspiBlitz"; -import ConnectStart9 from "@screens/connectors/ConnectStart9"; +import ConnectStartOS from "@screens/connectors/ConnectStartOS"; import ConnectUmbrel from "@screens/connectors/ConnectUmbrel"; import { Route } from "react-router-dom"; import i18n from "~/i18n/i18nConfig"; -import ConnectVoltage from "~/app/screens/connectors/ConnectVoltage"; import ConnectNWC from "~/app/screens/connectors/ConnectNWC"; +import ConnectVoltage from "~/app/screens/connectors/ConnectVoltage"; import ConnectCommando from "../screens/connectors/ConnectCommando"; import btcpay from "/static/assets/icons/btcpay.svg"; import citadel from "/static/assets/icons/citadel.png"; @@ -31,7 +31,7 @@ import lndhubGo from "/static/assets/icons/lndhub_go.png"; import mynode from "/static/assets/icons/mynode.png"; import nwc from "/static/assets/icons/nwc.svg"; import raspiblitz from "/static/assets/icons/raspiblitz.png"; -import start9 from "/static/assets/icons/start9.png"; +import startos from "/static/assets/icons/startos.png"; import umbrel from "/static/assets/icons/umbrel.png"; import voltage from "/static/assets/icons/voltage.png"; @@ -93,9 +93,9 @@ const connectorMap: { [key: string]: ConnectorRoute } = { title: i18n.t("translation:choose_connector.lnd.title"), logo: lnd, }, - "start9-lnd": { + "startos-lnd": { path: "lnd", - element: , + element: , title: i18n.t("translation:choose_connector.lnd.title"), logo: lnd, }, @@ -222,10 +222,10 @@ const distributionMap: { [key: string]: { logo: string; children: Route[] } } = connectorMap["lnbits"], ], }, - start9: { - logo: start9, + startos: { + logo: startos, children: [ - connectorMap["start9-lnd"], + connectorMap["startos-lnd"], connectorMap["lnc"], connectorMap["commando"], connectorMap["lnbits"], @@ -257,7 +257,7 @@ function getConnectorRoutes(): ConnectorRoute[] { getDistribution("citadel"), getDistribution("umbrel"), getDistribution("mynode"), - getDistribution("start9"), + getDistribution("startos"), getDistribution("raspiblitz"), connectorMap["nwc"], ]; diff --git a/src/app/screens/connectors/ConnectStart9/index.tsx b/src/app/screens/connectors/ConnectStartOS/index.tsx similarity index 96% rename from src/app/screens/connectors/ConnectStart9/index.tsx rename to src/app/screens/connectors/ConnectStartOS/index.tsx index 8a3b8c7af1..5a2cada4f1 100644 --- a/src/app/screens/connectors/ConnectStart9/index.tsx +++ b/src/app/screens/connectors/ConnectStartOS/index.tsx @@ -9,17 +9,17 @@ import PasswordViewAdornment from "~/app/components/PasswordViewAdornment"; import toast from "~/app/components/Toast"; import msg from "~/common/lib/msg"; import utils from "~/common/lib/utils"; -import logo from "/static/assets/icons/start9.png"; +import logo from "/static/assets/icons/startos.png"; const initialFormData = { url: "", macaroon: "", }; -export default function ConnectStart9() { +export default function ConnectStartOS() { const navigate = useNavigate(); const { t } = useTranslation("translation", { - keyPrefix: "choose_connector.start9", + keyPrefix: "choose_connector.startos", }); const [formData, setFormData] = useState(initialFormData); const [loading, setLoading] = useState(false); @@ -59,7 +59,7 @@ export default function ConnectStart9() { setLoading(true); const { url, macaroon } = formData; const account = { - name: "Start9", + name: "StartOS", config: { macaroon, url, @@ -112,7 +112,7 @@ export default function ConnectStart9() { t={t} components={[ // eslint-disable-next-line react/jsx-key - , + , ]} /> diff --git a/src/i18n/locales/cs/translation.json b/src/i18n/locales/cs/translation.json index f13fd30963..f38e1c4796 100644 --- a/src/i18n/locales/cs/translation.json +++ b/src/i18n/locales/cs/translation.json @@ -135,11 +135,11 @@ "placeholder": "lndconnect://vas-uzel:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Připojení k vašemu uzlu <0>Embassy", - "instructions": "<0>Pozn.: Aktuálně podporujeme pouze LND, ale v budoucnu plánujeme přidávat podporu c-lightning!<1/>V dashboardu vašeho Embassy zvolte službu <0>Lightning Network Daemon.<1/>Vyberte záložku <0>Vlastnosti (Properties).<1/>Následně zkopírujte <0>LND Connect REST URL." + "title": "Připojení k vašemu uzlu <0>StartOS", + "instructions": "<0>Pozn.: Aktuálně podporujeme pouze LND, ale v budoucnu plánujeme přidávat podporu c-lightning!<1/>V dashboardu vašeho StartOS zvolte službu <0>Lightning Network Daemon.<1/>Vyberte záložku <0>Vlastnosti (Properties).<1/>Následně zkopírujte <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", @@ -663,8 +663,8 @@ "btcpay": { "name": "BTCPay" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "umbrel": { "name": "Umbrel" diff --git a/src/i18n/locales/da/translation.json b/src/i18n/locales/da/translation.json index 5bb9019cd2..4596f34913 100644 --- a/src/i18n/locales/da/translation.json +++ b/src/i18n/locales/da/translation.json @@ -168,11 +168,11 @@ "placeholder": "lndconnect://dinnode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Opret forbindelse til din <0>Embassy node", - "instructions": "<0>Note: I øjeblikket understøtter vi kun LND, men vi vil fremover også tilføje support af c-lightning!<1/>I din Embassys indstillingsmenu klikker du på servicen <0>Lightning Network Daemon.<1/>Vælg fanen <0>Properties.<1/>Kopier så <0>LND Connect REST URL." + "title": "Opret forbindelse til din <0>StartOS node", + "instructions": "<0>Note: I øjeblikket understøtter vi kun LND, men vi vil fremover også tilføje support af c-lightning!<1/>I din StartOSs indstillingsmenu klikker du på servicen <0>Lightning Network Daemon.<1/>Vælg fanen <0>Properties.<1/>Kopier så <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", diff --git a/src/i18n/locales/de/translation.json b/src/i18n/locales/de/translation.json index 1aa59e8f38..2d4a7456da 100644 --- a/src/i18n/locales/de/translation.json +++ b/src/i18n/locales/de/translation.json @@ -148,16 +148,16 @@ "placeholder": "http://localhost:8080" } }, - "start9": { + "startos": { "page": { - "instructions": "Klicke in deinem Embassy Dashboard auf den <0>Lightning Network Daemon Service.<1/>Wähle den Reiter <0>Properties.<1/>Kopiere nun die <0>LND Connect REST URL.", - "title": "Verbinden mit deinem <0>Start9 Server" + "instructions": "Klicke in deinem StartOS Dashboard auf den <0>Lightning Network Daemon Service.<1/>Wähle den Reiter <0>Properties.<1/>Kopiere nun die <0>LND Connect REST URL.", + "title": "Verbinden mit <0>StartOS" }, "rest_url": { "placeholder": "lndconnect://deinenode:8080?...", "label": "Indconnect REST URL" }, - "title": "Start9" + "title": "StartOS" }, "blink": { "title": "Blink Wallet", @@ -806,8 +806,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" } }, "confirm_add_account": { diff --git a/src/i18n/locales/el/translation.json b/src/i18n/locales/el/translation.json index 6e5388ea73..3501b11387 100644 --- a/src/i18n/locales/el/translation.json +++ b/src/i18n/locales/el/translation.json @@ -83,8 +83,8 @@ "label": "Κωδικός Citadel" } }, - "start9": { - "title": "Start9" + "startos": { + "title": "StartOS" }, "btcpay": { "title": "BTCPay Server", @@ -156,8 +156,8 @@ "btcpay": { "name": "BTCPay" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "citadel": { "name": "Citadel" diff --git a/src/i18n/locales/en/translation.json b/src/i18n/locales/en/translation.json index 3c1de989eb..f4632e99c0 100644 --- a/src/i18n/locales/en/translation.json +++ b/src/i18n/locales/en/translation.json @@ -198,11 +198,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Connect to your <0>Start9 Server", - "instructions": "On your Embassy dashboard click on the <0>Lightning Network Daemon service.<1/>Select the <0>Properties tab.<1/>Now copy the <0>LND Connect REST URL." + "title": "Connect to <0>StartOS", + "instructions": "On your StartOS dashboard click on the <0>Lightning Network Daemon service.<1/>Select the <0>Properties tab.<1/>Now copy the <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", @@ -352,8 +352,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" } }, "home": { diff --git a/src/i18n/locales/eo/translation.json b/src/i18n/locales/eo/translation.json index 608ce1f04c..ba937258d7 100644 --- a/src/i18n/locales/eo/translation.json +++ b/src/i18n/locales/eo/translation.json @@ -129,8 +129,8 @@ "placeholder": "" } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { "title": "", "instructions": "" diff --git a/src/i18n/locales/es/translation.json b/src/i18n/locales/es/translation.json index df4217a0fc..65668b2639 100644 --- a/src/i18n/locales/es/translation.json +++ b/src/i18n/locales/es/translation.json @@ -122,11 +122,11 @@ "placeholder": "lndconnect://sunodo:8080?..." } }, - "start9": { - "title": "Cuenta Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Conéctate a tu <0>Start9 Server", - "instructions": "En tu panel de Embassy, haz clic en el servicio <0>Lightning Network Daemon.<1/>Selecciona la pestaña <0>Propiedades.<1/>Ahora copia la URL REST de <0>LND Connect. " + "title": "Conectarse a <0>StartOS", + "instructions": "En tu panel de StartOS, haz clic en el servicio <0>Lightning Network Daemon.<1/>Selecciona la pestaña <0>Propiedades.<1/>Ahora copia la URL REST de <0>LND Connect. " }, "rest_url": { "label": "URL REST conectalnd", @@ -647,8 +647,8 @@ "umbrel": { "name": "Umbrel" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "raspiblitz": { "name": "Raspiblitz" diff --git a/src/i18n/locales/fa/translation.json b/src/i18n/locales/fa/translation.json index 3c42dfc2bb..5375570320 100644 --- a/src/i18n/locales/fa/translation.json +++ b/src/i18n/locales/fa/translation.json @@ -178,11 +178,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "متصل شدن به <0>Start9 Server‎ شما", - "instructions": "در داشبورد Embassy روی خدمات <0>Lightning Network Daemon کلیک کنید. سربرگ <0>Properties را انتخاب کنید. حالا <0>LND Connect REST URL. را کپی کنید." + "title": "متصل شدن به <0>StartOS Server‎ شما", + "instructions": "در داشبورد StartOS روی خدمات <0>Lightning Network Daemon کلیک کنید. سربرگ <0>Properties را انتخاب کنید. حالا <0>LND Connect REST URL. را کپی کنید." }, "rest_url": { "label": "lndconnect REST URL", @@ -278,8 +278,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" } }, "home": { diff --git a/src/i18n/locales/fi/translation.json b/src/i18n/locales/fi/translation.json index 86bcbf38c4..a88f82fbbb 100644 --- a/src/i18n/locales/fi/translation.json +++ b/src/i18n/locales/fi/translation.json @@ -129,11 +129,11 @@ "placeholder": "lndconnect://solmusi:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Yhdistä <0>Embassy-solmuun", - "instructions": "<0>Huomautus: Tällä hetkellä tuemme vain LND:tä, mutta lisäämme c-lightning-tuen tulevaisuudessa!<1/>Klikkaa Embassy-kojelaudallasi <0>Lightning Network Daemon -palvelua.<1/>Valitse <0>Ominaisuudet-välilehti.<1/>Kopioi nyt <0>LND Yhdistä -REST URL-osoite." + "title": "Yhdistä <0>StartOS-solmuun", + "instructions": "<0>Huomautus: Tällä hetkellä tuemme vain LND:tä, mutta lisäämme c-lightning-tuen tulevaisuudessa!<1/>Klikkaa StartOS-kojelaudallasi <0>Lightning Network Daemon -palvelua.<1/>Valitse <0>Ominaisuudet-välilehti.<1/>Kopioi nyt <0>LND Yhdistä -REST URL-osoite." }, "rest_url": { "label": "lndconnect -REST URL-osoite", diff --git a/src/i18n/locales/fr/translation.json b/src/i18n/locales/fr/translation.json index 315bfe01d7..b40ab93dfe 100644 --- a/src/i18n/locales/fr/translation.json +++ b/src/i18n/locales/fr/translation.json @@ -168,11 +168,11 @@ "placeholder": "lndconnect://votrenode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Connectez-vous à votre nœud <0>Embassy", - "instructions": "<0>Remarque : Actuellement, nous ne prenons en charge que LND, mais nous ajouterons la prise en charge de c-lightning à l'avenir !<1/>Sur votre tableau de bord Embassy, cliquez sur le service <0>daemon du réseau Lightning. <1/>Sélectionnez l'onglet <0>Properties.<1/>Copiez maintenant l'<0>URL REST LND Connect." + "title": "Connectez-vous à votre nœud <0>StartOS", + "instructions": "<0>Remarque : Actuellement, nous ne prenons en charge que LND, mais nous ajouterons la prise en charge de c-lightning à l'avenir !<1/>Sur votre tableau de bord StartOS, cliquez sur le service <0>daemon du réseau Lightning. <1/>Sélectionnez l'onglet <0>Properties.<1/>Copiez maintenant l'<0>URL REST LND Connect." }, "rest_url": { "label": "URL REST lndconnect", diff --git a/src/i18n/locales/hi/translation.json b/src/i18n/locales/hi/translation.json index 758c5edb1d..1df147c395 100644 --- a/src/i18n/locales/hi/translation.json +++ b/src/i18n/locales/hi/translation.json @@ -175,10 +175,10 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "अपने <0>Embassy node से कनेक्ट करें", + "title": "अपने <0>StartOS node से कनेक्ट करें", "instructions": "<0>ध्यान दें: वर्तमान में हम केवल एलएनडी का समर्थन करते हैं लेकिन हम भविष्य में सी-लाइटिंग समर्थन जोड़ेंगे!<1/>अपने दूतावास के डैशबोर्ड पर <0>लाइटनिंग नेटवर्क डेमन<पर क्लिक करें। /0> सेवा।<1/><0>प्रॉपर्टी टैब चुनें।<1/>अब <0>LND Connect REST URL कॉपी करें।" }, "rest_url": { diff --git a/src/i18n/locales/id/translation.json b/src/i18n/locales/id/translation.json index e3388e238e..cb8e34bdce 100644 --- a/src/i18n/locales/id/translation.json +++ b/src/i18n/locales/id/translation.json @@ -174,11 +174,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Sambungkan dengan <0>Server Start9", - "instructions": "Pada dashboard Embassy klik pada <0>Lightning Network Daemon service.<1/>Pilih tab <0>Properties.<1/>Kemudian salin <0>LND Connect REST URL." + "title": "Sambungkan dengan <0>Server StartOS", + "instructions": "Pada dashboard StartOS klik pada <0>Lightning Network Daemon service.<1/>Pilih tab <0>Properties.<1/>Kemudian salin <0>LND Connect REST URL." }, "rest_url": { "placeholder": "lndconnect://yournode:8080?...", @@ -277,8 +277,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" } }, "home": { diff --git a/src/i18n/locales/it/translation.json b/src/i18n/locales/it/translation.json index 1048c0cb05..602635bb96 100644 --- a/src/i18n/locales/it/translation.json +++ b/src/i18n/locales/it/translation.json @@ -130,11 +130,11 @@ "placeholder": "lndconnect://tuonodo:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Collega il tuo nodo Embassy", - "instructions": "<0>Nota: Al momento supportiamo solamente LND, aggiungeremo il supporto per c-lightning in futuro!<1/>Nella dashboard di Embassy clicca sul servizio <0>Lightning Network Daemon.<1/>Seleziona il tab <0>Proprieta'.<1/>Adesso copia l'<0>LND Connect REST URL." + "title": "Collega il tuo nodo StartOS", + "instructions": "<0>Nota: Al momento supportiamo solamente LND, aggiungeremo il supporto per c-lightning in futuro!<1/>Nella dashboard di StartOS clicca sul servizio <0>Lightning Network Daemon.<1/>Seleziona il tab <0>Proprieta'.<1/>Adesso copia l'<0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", diff --git a/src/i18n/locales/ja/translation.json b/src/i18n/locales/ja/translation.json index 2952d12a92..0efc1c4760 100644 --- a/src/i18n/locales/ja/translation.json +++ b/src/i18n/locales/ja/translation.json @@ -176,15 +176,15 @@ }, "title": "myNode" }, - "start9": { + "startos": { "rest_url": { "label": "lndconnectのREST URL", "placeholder": "lndconnect://yournode:8080?..." }, - "title": "Start9", + "title": "StartOS", "page": { - "title": "<0>Start9サーバーに接続", - "instructions": "Embassyダッシュボードで<0>Lightning Network Daemonサービスをクリックします。<1/><0>Propertiesタブを選択します。<1/>ここで<0>LND Connect REST URLをコピーします。" + "title": "<0>StartOSサーバーに接続", + "instructions": "StartOSダッシュボードで<0>Lightning Network Daemonサービスをクリックします。<1/><0>Propertiesタブを選択します。<1/>ここで<0>LND Connect REST URLをコピーします。" } }, "raspiblitz": { @@ -425,8 +425,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "description": "接続したい{{name}}アプリを選択してください", "title": "{{name}}に接続" diff --git a/src/i18n/locales/mr/translation.json b/src/i18n/locales/mr/translation.json index ca74b08118..df2cc9159f 100644 --- a/src/i18n/locales/mr/translation.json +++ b/src/i18n/locales/mr/translation.json @@ -168,11 +168,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "your <0>Embassy node ला कनेक्ट करा", - "instructions": "<0>Note: Currently we only support LND but we will be adding c-lightning support in the future!<1/>On your Embassy dashboard click on the <0>Lightning Network Daemon service.<1/>Select the <0>Properties tab.<1/>Now copy the <0>LND Connect REST URL." + "title": "your <0>StartOS node ला कनेक्ट करा", + "instructions": "<0>Note: Currently we only support LND but we will be adding c-lightning support in the future!<1/>On your StartOS dashboard click on the <0>Lightning Network Daemon service.<1/>Select the <0>Properties tab.<1/>Now copy the <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", diff --git a/src/i18n/locales/nl/translation.json b/src/i18n/locales/nl/translation.json index f2f9c7ae71..17d3f46e38 100644 --- a/src/i18n/locales/nl/translation.json +++ b/src/i18n/locales/nl/translation.json @@ -130,11 +130,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Maak verbinding met uw <0>Embassy node", - "instructions": "<0>Note: Momenteel ondersteunen we alleen LND, maar we zullen in de toekomst c-lightning ondersteuning toevoegen! <1/>Op uw Embassy dashboard klikt u op de <0>Lightning Network Daemon service.<1/>Selecteer de <0>Properties tab.<1/>Kopieer nu de <0>LND Connect REST URL." + "title": "Maak verbinding met uw <0>StartOS node", + "instructions": "<0>Note: Momenteel ondersteunen we alleen LND, maar we zullen in de toekomst c-lightning ondersteuning toevoegen! <1/>Op uw StartOS dashboard klikt u op de <0>Lightning Network Daemon service.<1/>Selecteer de <0>Properties tab.<1/>Kopieer nu de <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", diff --git a/src/i18n/locales/pl/translation.json b/src/i18n/locales/pl/translation.json index 4b02562d3b..5ca9adfae7 100644 --- a/src/i18n/locales/pl/translation.json +++ b/src/i18n/locales/pl/translation.json @@ -177,11 +177,11 @@ "placeholder": "lndconnect://twojwezel:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Połącz ze swoim <0>serwerem Start9", - "instructions": "<0>Uwaga:Obecnie wspieramy tylko LND, ale zamierzamy dodać obsługę c-lightning w przyszłości!<1/>Na pulpicie twojego Embassy kliknij na usługę <0>Lightning Network Daemon.<1/>Wybierz zakładkę <0>Properties.<1/>Następnie skopiuj <0>LND Connect REST URL." + "title": "Połącz ze swoim <0>serwerem StartOS", + "instructions": "<0>Uwaga:Obecnie wspieramy tylko LND, ale zamierzamy dodać obsługę c-lightning w przyszłości!<1/>Na pulpicie twojego StartOS kliknij na usługę <0>Lightning Network Daemon.<1/>Wybierz zakładkę <0>Properties.<1/>Następnie skopiuj <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", @@ -718,8 +718,8 @@ "btcpay": { "name": "BTCPay" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "umbrel": { "name": "Umbrel" diff --git a/src/i18n/locales/pt_BR/translation.json b/src/i18n/locales/pt_BR/translation.json index cf06541223..71f898a0ad 100644 --- a/src/i18n/locales/pt_BR/translation.json +++ b/src/i18n/locales/pt_BR/translation.json @@ -122,11 +122,11 @@ "placeholder": "lndconnect://seuservidor:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Conecte-se no seu servidor <0>Start9", - "instructions": "<0>Note: Atualmente somente a LND é suportada mas nós adicionaremos suporte para a c-lightning no futuro!<1/>No seu Embassy clique em service <0>Lightning Network Daemon.<1/>Selecione a tab <0>Properties.<1/>Agora copie o <0>LND Connect REST URL." + "title": "Conecte-se no seu servidor <0>StartOS", + "instructions": "<0>Note: Atualmente somente a LND é suportada mas nós adicionaremos suporte para a c-lightning no futuro!<1/>No seu StartOS clique em service <0>Lightning Network Daemon.<1/>Selecione a tab <0>Properties.<1/>Agora copie o <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", @@ -781,8 +781,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "description": "Escolha com qual aplicativo {{name}} você gostaria de se conectar", "title": "Conectar em {{name}}" diff --git a/src/i18n/locales/ro/translation.json b/src/i18n/locales/ro/translation.json index 7707e7bde0..18cce8975d 100644 --- a/src/i18n/locales/ro/translation.json +++ b/src/i18n/locales/ro/translation.json @@ -168,11 +168,11 @@ "placeholder": "lndconnect://nodultau:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Conectare la nodul tau <0>Embassy", - "instructions": "<0>Nota: Momentan exista suport doar pentru LND dar vom adauga suport pentru c-lightning in viitor!<1/>Pe tabloul de bord din Embassy apasa pe serviciul <0>Lightning Network Daemon.<1/>Selecteaza tabul <0>Properties.<1/>Acum copiaza <0>LND Connect REST URL." + "title": "Conectare la nodul tau <0>StartOS", + "instructions": "<0>Nota: Momentan exista suport doar pentru LND dar vom adauga suport pentru c-lightning in viitor!<1/>Pe tabloul de bord din StartOS apasa pe serviciul <0>Lightning Network Daemon.<1/>Selecteaza tabul <0>Properties.<1/>Acum copiaza <0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", diff --git a/src/i18n/locales/ru/translation.json b/src/i18n/locales/ru/translation.json index 7532715352..9fa94cf5f3 100644 --- a/src/i18n/locales/ru/translation.json +++ b/src/i18n/locales/ru/translation.json @@ -168,7 +168,7 @@ "placeholder": "" } }, - "start9": { + "startos": { "title": "", "page": { "title": "", diff --git a/src/i18n/locales/sl/translation.json b/src/i18n/locales/sl/translation.json index 2843859e93..73772d86da 100644 --- a/src/i18n/locales/sl/translation.json +++ b/src/i18n/locales/sl/translation.json @@ -52,12 +52,12 @@ "instructions": "Na myNode domači strani klikni na <0>Wallet gumb na tvojem <0>lightning servisu.<1/> Klikni na <0>Pair Wallet gumb pod <0>Status zavihkom. Vnesi geslo, ko je to zahtevano.<1/> Izberi spustni meni in izberi možnost povezave. Glede na konfiguracijo lahko uporabiš <0>lightning (REST + Local IP) povezavo ali <0>lightning (REST + Tor) povezavo." } }, - "start9": { + "startos": { "page": { - "instructions": "V Embassy nadzorni plošči klikni na <0>Lightning Network Daemon servis.<1/>Izberi <0>Properties zavihek.<1/>Kopiraj <0>LND Connect REST URL.", - "title": "Poveži z <0>Start9 Server" + "instructions": "V StartOS nadzorni plošči klikni na <0>Lightning Network Daemon servis.<1/>Izberi <0>Properties zavihek.<1/>Kopiraj <0>LND Connect REST URL.", + "title": "Poveži z <0>StartOS Server" }, - "title": "Start9", + "title": "StartOS", "rest_url": { "label": "lndconnect REST URL", "placeholder": "lndconnect://yournode:8080?..." @@ -281,8 +281,8 @@ "citadel": { "name": "Citadel" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "description": "Izberi s katero {{name}} aplikacijo bi se rad povezal", "btcpay": { diff --git a/src/i18n/locales/sv/translation.json b/src/i18n/locales/sv/translation.json index 77b15850ce..69c7e941b1 100644 --- a/src/i18n/locales/sv/translation.json +++ b/src/i18n/locales/sv/translation.json @@ -136,11 +136,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "Anslut till din <0>Start9 Server", - "instructions": "På din Embassy instrumentpanel klickar du på tjänsten <0>Lightning Network Daemon.<1/>Välj fliken <0>Egenskaper.<1/>Kopiera nu <0>LND Connect REST URL. " + "title": "Anslut till din <0>StartOS Server", + "instructions": "På din StartOS instrumentpanel klickar du på tjänsten <0>Lightning Network Daemon.<1/>Välj fliken <0>Egenskaper.<1/>Kopiera nu <0>LND Connect REST URL. " }, "rest_url": { "label": "lndconnect REST URL", @@ -782,8 +782,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" } }, "confirm_add_account": { diff --git a/src/i18n/locales/th/translation.json b/src/i18n/locales/th/translation.json index 6a4f60b0b9..9ae47046fc 100644 --- a/src/i18n/locales/th/translation.json +++ b/src/i18n/locales/th/translation.json @@ -631,11 +631,11 @@ "umbrel_lightning_node": { "title": "Lightning Node" }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { "title": "เชื่อมต่อกับ <0>Staet9 Server ของคุณ", - "instructions": "บนแดชบอร์ดของ Embassy คลิกที่บริการ <0>Lightning Network Daemon <1/>เลือกแท็บ<0>Properties<1/>คัดลอก<0>LND Connect REST URL." + "instructions": "บนแดชบอร์ดของ StartOS คลิกที่บริการ <0>Lightning Network Daemon <1/>เลือกแท็บ<0>Properties<1/>คัดลอก<0>LND Connect REST URL." }, "rest_url": { "label": "lndconnect REST URL", @@ -660,8 +660,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "title": "เชื่อมต่อกับ {{name}}" }, diff --git a/src/i18n/locales/tl/translation.json b/src/i18n/locales/tl/translation.json index 45ba4169d8..50197dea88 100644 --- a/src/i18n/locales/tl/translation.json +++ b/src/i18n/locales/tl/translation.json @@ -129,7 +129,7 @@ "placeholder": "" } }, - "start9": { + "startos": { "title": "", "page": { "title": "", diff --git a/src/i18n/locales/uk/translation.json b/src/i18n/locales/uk/translation.json index f24a3a49b5..f9f8f889eb 100644 --- a/src/i18n/locales/uk/translation.json +++ b/src/i18n/locales/uk/translation.json @@ -168,7 +168,7 @@ "placeholder": "" } }, - "start9": { + "startos": { "title": "", "page": { "title": "", diff --git a/src/i18n/locales/zh_Hans/translation.json b/src/i18n/locales/zh_Hans/translation.json index c0bcca28f8..1ad2c84ce5 100644 --- a/src/i18n/locales/zh_Hans/translation.json +++ b/src/i18n/locales/zh_Hans/translation.json @@ -140,16 +140,16 @@ "label": "本地私钥(自动生成的)" } }, - "start9": { + "startos": { "page": { - "instructions": "在你的 Embassy 仪表板上点击 <0>Lightning Network Daemon 服务。<1/>选择 <0>Properties 标签。<1/>复制 <0>LND Connect REST URL。", - "title": "连接你的<0>Start9 服务器" + "instructions": "在你的 StartOS 仪表板上点击 <0>Lightning Network Daemon 服务。<1/>选择 <0>Properties 标签。<1/>复制 <0>LND Connect REST URL。", + "title": "连接你的<0>StartOS 服务器" }, "rest_url": { "placeholder": "lndconnect://yournode:8080?...", "label": "lndconnect REST URL" }, - "title": "Start9" + "title": "StartOS" }, "raspiblitz": { "page": { @@ -740,8 +740,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" }, "umbrel": { "name": "Umbrel" diff --git a/src/i18n/locales/zh_Hant/translation.json b/src/i18n/locales/zh_Hant/translation.json index 0c00064037..3eb676ddbe 100644 --- a/src/i18n/locales/zh_Hant/translation.json +++ b/src/i18n/locales/zh_Hant/translation.json @@ -175,11 +175,11 @@ "placeholder": "lndconnect://yournode:8080?..." } }, - "start9": { - "title": "Start9", + "startos": { + "title": "StartOS", "page": { - "title": "連接你的 <0>Start9 服务器", - "instructions": "在你的 Embassy 儀表板上點擊 <0>Lightning Network Daemon 服務。<1/>選擇 <0>Properties 標籤。<1/>複製 <0>LND Connect REST URL。" + "title": "連接你的 <0>StartOS 服务器", + "instructions": "在你的 StartOS 儀表板上點擊 <0>Lightning Network Daemon 服務。<1/>選擇 <0>Properties 標籤。<1/>複製 <0>LND Connect REST URL。" }, "rest_url": { "label": "lndconnect REST URL", @@ -750,8 +750,8 @@ "mynode": { "name": "myNode" }, - "start9": { - "name": "Start9" + "startos": { + "name": "StartOS" } }, "confirm_add_account": { diff --git a/static/assets/icons/start9.png b/static/assets/icons/start9.png deleted file mode 100644 index 39904ef03ba4ea788211184af001179b285ecfd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2914 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 diff --git a/static/assets/icons/startos.png b/static/assets/icons/startos.png new file mode 100644 index 0000000000000000000000000000000000000000..3b131bf1e4fa03a3afac51dbd3424cd068684e37 GIT binary patch literal 23306 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
McH@>Def9mJJbRu&0 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 QjsHn%YZ$24s@lf<54idzQ2+n{ literal 0 HcmV?d00001 diff --git a/tests/e2e/001-createWallets.spec.ts b/tests/e2e/001-createWallets.spec.ts index f3ef85fc62..28e3c4fe95 100644 --- a/tests/e2e/001-createWallets.spec.ts +++ b/tests/e2e/001-createWallets.spec.ts @@ -194,12 +194,12 @@ test.describe("Create or connect wallets", () => { await browser.close(); }); - test("successfully connects to Start9", async () => { + test("successfully connects to StartOS", async () => { const { browser, page, $document } = await createNewWalletWithPassword({ openConnectOtherWallet: true, }); - const connectButton = await getByText($document, "Start9"); + const connectButton = await getByText($document, "StartOS"); await Promise.all([ page.waitForNavigation(), // The promise resolves after navigation has finished connectButton.click(), From 54107a73ecfb8e0e60b11255d4d4047e888411f6 Mon Sep 17 00:00:00 2001 From: ekzyis Date: Sun, 31 Dec 2023 00:36:51 +0100 Subject: [PATCH 04/12] fix: lnurl scheme parsing --- src/extension/inpage-script/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/extension/inpage-script/index.js b/src/extension/inpage-script/index.js index 30f5323154..09826965f5 100644 --- a/src/extension/inpage-script/index.js +++ b/src/extension/inpage-script/index.js @@ -45,10 +45,12 @@ function registerLightningLinkClickHandler() { return; } const lightningLink = target.closest('[href^="lightning:" i]'); - const lnurlLink = target.closest('[href^="lnurl" i]'); + const lnurlLink = target.closest( + '[href^="lnurlp:" i],[href^="lnurlw:" i],[href^="lnurlc:" i]' + ); const bitcoinLinkWithLighting = target.closest( '[href*="lightning=ln" i]' - ); // links with a lightning parameter and a value that starts with ln: payment requests (lnbc...) or lnurl (lnurl*) + ); // links with a lightning parameter and a value that starts with ln: payment requests (lnbc...) or lnurl (lnurl[pwc]:) let href; let paymentRequest; let lnurl; From 5b70035bedf83c75a277b403033a84f18af2bdb4 Mon Sep 17 00:00:00 2001 From: ekzyis Date: Thu, 4 Jan 2024 12:38:20 +0100 Subject: [PATCH 05/12] fix: add missing link to LUD-17 --- src/extension/inpage-script/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/extension/inpage-script/index.js b/src/extension/inpage-script/index.js index 09826965f5..34935d42a5 100644 --- a/src/extension/inpage-script/index.js +++ b/src/extension/inpage-script/index.js @@ -44,6 +44,8 @@ function registerLightningLinkClickHandler() { if (!target || !target.closest) { return; } + // parse protocol schemes defined in LUD-17 + // https://github.com/lnurl/luds/blob/luds/17.md const lightningLink = target.closest('[href^="lightning:" i]'); const lnurlLink = target.closest( '[href^="lnurlp:" i],[href^="lnurlw:" i],[href^="lnurlc:" i]' From ca254e2d29ddf4ecc6fa7d6fceb3ba0d4a0ced3a Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Mon, 5 Feb 2024 15:50:42 +0530 Subject: [PATCH 06/12] feat: no scrollbar in transaction modal popup --- src/app/components/Modal/index.tsx | 2 +- src/app/components/TransactionsTable/TransactionModal.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/components/Modal/index.tsx b/src/app/components/Modal/index.tsx index a3f53ef1f1..791a08257d 100644 --- a/src/app/components/Modal/index.tsx +++ b/src/app/components/Modal/index.tsx @@ -32,7 +32,7 @@ export default function Modal({ position == "center" && "items-center", position == "top" && "items-start pt-20" )} - className="rounded-lg shadow-xl bg-white dark:bg-surface-01dp w-full max-w-md overflow-x-hidden relative p-5 cursor-auto mx-5" + className="rounded-lg shadow-xl bg-white dark:bg-surface-01dp w-full max-w-md overflow-x-hidden relative p-5 cursor-auto mx-5 no-scrollbar" style={{ content: { maxHeight: "80vh" } }} > {title && ( diff --git a/src/app/components/TransactionsTable/TransactionModal.tsx b/src/app/components/TransactionsTable/TransactionModal.tsx index 73aed0a54d..2f291f40b1 100644 --- a/src/app/components/TransactionsTable/TransactionModal.tsx +++ b/src/app/components/TransactionsTable/TransactionModal.tsx @@ -54,7 +54,7 @@ export default function TransactionModal({ contentLabel={"Transactions"} position="top" > -
+
{getTransactionType(transaction) == "outgoing" ? ( From d0d68ada8f2ee929bfeb7e6b2018dae2537b8384 Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Thu, 28 Dec 2023 12:39:21 +0530 Subject: [PATCH 07/12] feat: separate encrypt and decrypt screens --- src/app/router/Prompt/Prompt.tsx | 11 +- ...ncryptOrDecrypt.tsx => ConfirmDecrypt.tsx} | 4 +- src/app/screens/Nostr/ConfirmEncrypt.tsx | 135 ++++++++++++++++++ .../actions/nostr/decryptOrPrompt.ts | 2 +- .../actions/nostr/encryptOrPrompt.ts | 2 +- 5 files changed, 147 insertions(+), 7 deletions(-) rename src/app/screens/Nostr/{ConfirmEncryptOrDecrypt.tsx => ConfirmDecrypt.tsx} (98%) create mode 100644 src/app/screens/Nostr/ConfirmEncrypt.tsx diff --git a/src/app/router/Prompt/Prompt.tsx b/src/app/router/Prompt/Prompt.tsx index 6e6f1688be..090d637b58 100644 --- a/src/app/router/Prompt/Prompt.tsx +++ b/src/app/router/Prompt/Prompt.tsx @@ -28,7 +28,8 @@ import LiquidEnable from "~/app/screens/Enable/LiquidEnable"; import NostrEnable from "~/app/screens/Enable/NostrEnable"; import WebbtcEnable from "~/app/screens/Enable/WebbtcEnable"; import WeblnEnable from "~/app/screens/Enable/WeblnEnable"; -import NostrConfirmEncryptOrDecrypt from "~/app/screens/Nostr/ConfirmEncryptOrDecrypt"; +import NostrConfirmDecrypt from "~/app/screens/Nostr/ConfirmDecrypt"; +import NostrConfirmEncrypt from "~/app/screens/Nostr/ConfirmEncrypt"; import type { NavigationState, OriginData } from "~/types"; // Parse out the parameters from the querystring. @@ -124,8 +125,12 @@ function Prompt() { element={} /> } + path="public/nostr/confirmEncrypt" + element={} + /> + } /> ) { + event.preventDefault(); + msg.error(USER_REJECTED_ERROR); + } + + async function block(event: React.MouseEvent) { + event.preventDefault(); + await msg.request("addBlocklist", { + domain: origin.domain, + host: origin.host, + }); + alert(`Added ${origin.host} to the blocklist, please reload the website`); + msg.error(USER_REJECTED_ERROR); + } + + function toggleShowDetails() { + setShowDetails((current) => !current); + } + + function handleSubmit(event: React.FormEvent) { + event.preventDefault(); + confirm(); + } + + return ( +
+ +
+ +
+ + {message && ( + + )} +
+ + {showDetails ? t("hide_details") : t("view_details")} + +
+ {showDetails && ( +
+ {t("peer")}: {peer} +
+ )} +
+
+
+ { + setRememberPermission(event.target.checked); + }} + /> + +
+ + + {t("block_and_ignore", { host: origin.host })} + +
+
+
+
+ ); +} + +export default NostrConfirmEncrypt; diff --git a/src/extension/background-script/actions/nostr/decryptOrPrompt.ts b/src/extension/background-script/actions/nostr/decryptOrPrompt.ts index 6e9c211eb9..23c04135df 100644 --- a/src/extension/background-script/actions/nostr/decryptOrPrompt.ts +++ b/src/extension/background-script/actions/nostr/decryptOrPrompt.ts @@ -32,7 +32,7 @@ const decryptOrPrompt = async (message: MessageDecryptGet, sender: Sender) => { rememberPermission: boolean; }>({ ...message, - action: "public/nostr/confirmEncryptOrDecrypt", + action: "public/nostr/confirmDecrypt", args: { encryptOrDecrypt: { action: "decrypt", diff --git a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts index 512a359a42..da3b4287a1 100644 --- a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts +++ b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts @@ -30,7 +30,7 @@ const encryptOrPrompt = async (message: MessageEncryptGet, sender: Sender) => { rememberPermission: boolean; }>({ ...message, - action: "public/nostr/confirmEncryptOrDecrypt", + action: "public/nostr/confirmEncrypt", args: { encryptOrDecrypt: { action: "encrypt", From f3f1bc98637d1bd3a7701912bc8ae85ce2815f21 Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Thu, 28 Dec 2023 15:21:36 +0530 Subject: [PATCH 08/12] feat: different ui for decrypt screen fix args and types --- src/app/screens/Nostr/ConfirmDecrypt.tsx | 53 ++++++------------- src/app/screens/Nostr/ConfirmEncrypt.tsx | 15 +++--- .../actions/nostr/decryptOrPrompt.ts | 7 --- .../actions/nostr/encryptOrPrompt.ts | 3 +- src/i18n/locales/en/translation.json | 2 - src/types.ts | 3 +- 6 files changed, 23 insertions(+), 60 deletions(-) diff --git a/src/app/screens/Nostr/ConfirmDecrypt.tsx b/src/app/screens/Nostr/ConfirmDecrypt.tsx index cf307febe0..40c947e7a6 100644 --- a/src/app/screens/Nostr/ConfirmDecrypt.tsx +++ b/src/app/screens/Nostr/ConfirmDecrypt.tsx @@ -1,10 +1,9 @@ +import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled"; import ConfirmOrCancel from "@components/ConfirmOrCancel"; import Container from "@components/Container"; import PublisherCard from "@components/PublisherCard"; import { useState } from "react"; import { useTranslation } from "react-i18next"; -import ContentMessage from "~/app/components/ContentMessage"; -import Hyperlink from "~/app/components/Hyperlink"; import ScreenHeader from "~/app/components/ScreenHeader"; import Checkbox from "~/app/components/form/Checkbox"; import { useNavigationState } from "~/app/hooks/useNavigationState"; @@ -16,15 +15,12 @@ function NostrConfirmDecrypt() { const { t } = useTranslation("translation", { keyPrefix: "nostr", }); + const { t: tPermissions } = useTranslation("permissions"); const { t: tCommon } = useTranslation("common"); const navState = useNavigationState(); const origin = navState.origin as OriginData; - const action = navState.args?.encryptOrDecrypt?.action; - const peer = navState.args?.encryptOrDecrypt?.peer; - const message = navState.args?.encryptOrDecrypt?.message; const [loading, setLoading] = useState(false); - const [showDetails, setShowDetails] = useState(false); const [rememberPermission, setRememberPermission] = useState(true); @@ -52,10 +48,6 @@ function NostrConfirmDecrypt() { msg.error(USER_REJECTED_ERROR); } - function toggleShowDetails() { - setShowDetails((current) => !current); - } - function handleSubmit(event: React.FormEvent) { event.preventDefault(); confirm(); @@ -66,35 +58,20 @@ function NostrConfirmDecrypt() {
-
- - {message && ( - - )} -
- - {showDetails ? t("hide_details") : t("view_details")} - -
- {showDetails && ( -
- {t("peer")}: {peer} -
- )} + +
+

{t("allow", { host: origin.host })}

+

+ + {tPermissions("nostr.nip04decrypt")} +

+
{message && ( )} diff --git a/src/extension/background-script/actions/nostr/decryptOrPrompt.ts b/src/extension/background-script/actions/nostr/decryptOrPrompt.ts index 23c04135df..b6e0e54136 100644 --- a/src/extension/background-script/actions/nostr/decryptOrPrompt.ts +++ b/src/extension/background-script/actions/nostr/decryptOrPrompt.ts @@ -33,13 +33,6 @@ const decryptOrPrompt = async (message: MessageDecryptGet, sender: Sender) => { }>({ ...message, action: "public/nostr/confirmDecrypt", - args: { - encryptOrDecrypt: { - action: "decrypt", - peer: message.args.peer, - message: message.args.ciphertext, - }, - }, }); // add permission to db only if user decided to always allow this request diff --git a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts index da3b4287a1..1b72f1ec35 100644 --- a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts +++ b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts @@ -32,8 +32,7 @@ const encryptOrPrompt = async (message: MessageEncryptGet, sender: Sender) => { ...message, action: "public/nostr/confirmEncrypt", args: { - encryptOrDecrypt: { - action: "encrypt", + encrypt: { peer: message.args.peer, message: message.args.plaintext, }, diff --git a/src/i18n/locales/en/translation.json b/src/i18n/locales/en/translation.json index f4632e99c0..c0817f8b15 100644 --- a/src/i18n/locales/en/translation.json +++ b/src/i18n/locales/en/translation.json @@ -943,7 +943,6 @@ "allow_sign": "Allow {{host}} to sign:", "allow_sign_event": "Allow {{host}} to sign a {{kind}} event", "allow_encrypt": "Allow {{host}} to encrypt the message:", - "allow_decrypt": "Allow {{host}} to decrypt the message:", "view_details": "View details", "hide_details": "Hide details", "block_and_ignore": "Block and ignore {{host}}", @@ -1199,7 +1198,6 @@ "nostr": { "getpublickey": "Read your public key", "signmessage": "Sign message with your key", - "nip04encrypt": "Encrypt data", "nip04decrypt": "Decrypt data" }, "bitcoin": { diff --git a/src/types.ts b/src/types.ts index 66626e6002..86c8916de2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -170,8 +170,7 @@ export type NavigationState = { sigHash?: string; // nostr - encryptOrDecrypt?: { - action: "encrypt" | "decrypt"; + encrypt: { peer: string; message: string; }; From 60c8bf99c092776d5600675567121b0fffbc76de Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Fri, 29 Dec 2023 12:36:25 +0530 Subject: [PATCH 09/12] feat: make event kind italic --- src/app/components/ContentMessage/index.tsx | 2 +- src/app/screens/Nostr/ConfirmSignMessage.tsx | 24 ++++++++++++++------ src/i18n/locales/en/translation.json | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/app/components/ContentMessage/index.tsx b/src/app/components/ContentMessage/index.tsx index 0de09f5b92..c6fb17e4ca 100644 --- a/src/app/components/ContentMessage/index.tsx +++ b/src/app/components/ContentMessage/index.tsx @@ -1,5 +1,5 @@ type Props = { - heading: string; + heading: string | React.ReactNode; content: string; }; diff --git a/src/app/screens/Nostr/ConfirmSignMessage.tsx b/src/app/screens/Nostr/ConfirmSignMessage.tsx index 8c72c34a96..8607bcfca5 100644 --- a/src/app/screens/Nostr/ConfirmSignMessage.tsx +++ b/src/app/screens/Nostr/ConfirmSignMessage.tsx @@ -5,7 +5,7 @@ import PublisherCard from "@components/PublisherCard"; import SuccessMessage from "@components/SuccessMessage"; import Checkbox from "@components/form/Checkbox"; import { useState } from "react"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import Hyperlink from "~/app/components/Hyperlink"; import ScreenHeader from "~/app/components/ScreenHeader"; @@ -84,12 +84,22 @@ function ConfirmSignMessage() { url={origin.host} /> ]} + /> + } content={event.content || ""} />
diff --git a/src/i18n/locales/en/translation.json b/src/i18n/locales/en/translation.json index c0817f8b15..bdee859e7e 100644 --- a/src/i18n/locales/en/translation.json +++ b/src/i18n/locales/en/translation.json @@ -941,7 +941,7 @@ "allow": "Allow this website to:", "content": "This website asks you to sign:", "allow_sign": "Allow {{host}} to sign:", - "allow_sign_event": "Allow {{host}} to sign a {{kind}} event", + "allow_sign_event": "Allow {{host}} to sign a <0>{{kind}} event", "allow_encrypt": "Allow {{host}} to encrypt the message:", "view_details": "View details", "hide_details": "Hide details", From a76797c7e44c82ceb7ac6bb07551fe40f4059440 Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Mon, 1 Jan 2024 11:29:04 +0530 Subject: [PATCH 10/12] chore: modify kind placeholder in other translation files --- src/i18n/locales/de/translation.json | 2 +- src/i18n/locales/pt_BR/translation.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/locales/de/translation.json b/src/i18n/locales/de/translation.json index 2d4a7456da..44f72a70f4 100644 --- a/src/i18n/locales/de/translation.json +++ b/src/i18n/locales/de/translation.json @@ -654,7 +654,7 @@ "unknown": "kind {{kind}}" }, "peer": "Peer", - "allow_sign_event": "Erlaube {{Gastgeber}}, ein {{kind}} Ereignis zu unterzeichnen", + "allow_sign_event": "Erlaube {{Gastgeber}}, ein <0>{{kind}} Ereignis zu unterzeichnen", "allow_encrypt": "Erlaube {{host}}, die Nachricht zu verschlüsseln:", "allow_decrypt": "Erlaube {{host}}, die Nachricht zu entschlüsseln:" }, diff --git a/src/i18n/locales/pt_BR/translation.json b/src/i18n/locales/pt_BR/translation.json index 71f898a0ad..7fea24e302 100644 --- a/src/i18n/locales/pt_BR/translation.json +++ b/src/i18n/locales/pt_BR/translation.json @@ -693,7 +693,7 @@ "9735": "zap", "unknown": "tipo {{kind}}" }, - "allow_sign_event": "Permitir {{host}} assinar um evento {{kind}}", + "allow_sign_event": "Permitir {{host}} assinar um evento <0>{{kind}}", "allow_encrypt": "Permitir {{host}} criptografar a mensagem:", "allow_decrypt": "Permitir {{host}} descriptografar a mensagem:" }, From 5c1f7b611da6afd5ca65ade61033265cece1f2bf Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Mon, 8 Jan 2024 12:08:17 +0530 Subject: [PATCH 11/12] feat: use npub instead of hex --- src/app/screens/Nostr/ConfirmEncrypt.tsx | 2 +- .../background-script/actions/nostr/encryptOrPrompt.ts | 3 ++- src/i18n/locales/en/translation.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/screens/Nostr/ConfirmEncrypt.tsx b/src/app/screens/Nostr/ConfirmEncrypt.tsx index 25e5dbf6dd..014c1b9530 100644 --- a/src/app/screens/Nostr/ConfirmEncrypt.tsx +++ b/src/app/screens/Nostr/ConfirmEncrypt.tsx @@ -88,7 +88,7 @@ function NostrConfirmEncrypt() {
{showDetails && (
- {t("peer")}: {peer} + {t("recipient")}: {peer}
)}
diff --git a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts index 1b72f1ec35..4d2c0a4a27 100644 --- a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts +++ b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts @@ -1,4 +1,5 @@ import { USER_REJECTED_ERROR } from "~/common/constants"; +import nostr from "~/common/lib/nostr"; import utils from "~/common/lib/utils"; import { getHostFromSender } from "~/common/utils/helpers"; import { @@ -33,7 +34,7 @@ const encryptOrPrompt = async (message: MessageEncryptGet, sender: Sender) => { action: "public/nostr/confirmEncrypt", args: { encrypt: { - peer: message.args.peer, + peer: nostr.hexToNip19(message.args.peer, "npub"), message: message.args.plaintext, }, }, diff --git a/src/i18n/locales/en/translation.json b/src/i18n/locales/en/translation.json index bdee859e7e..54b91d50f2 100644 --- a/src/i18n/locales/en/translation.json +++ b/src/i18n/locales/en/translation.json @@ -947,7 +947,7 @@ "hide_details": "Hide details", "block_and_ignore": "Block and ignore {{host}}", "block_added": "Added {{host}} to the blocklist, please reload the website.", - "peer": "Peer", + "recipient": "Recipient", "kinds": { "unknown": "kind {{kind}}", "0": "metadata", From 6aef49833488c1837e4231f274b7642e3c892c8e Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Mon, 8 Jan 2024 15:41:44 +0530 Subject: [PATCH 12/12] chore: refactoring npub variable --- src/app/screens/Nostr/ConfirmEncrypt.tsx | 4 ++-- .../background-script/actions/nostr/encryptOrPrompt.ts | 2 +- src/types.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/screens/Nostr/ConfirmEncrypt.tsx b/src/app/screens/Nostr/ConfirmEncrypt.tsx index 014c1b9530..7708df074b 100644 --- a/src/app/screens/Nostr/ConfirmEncrypt.tsx +++ b/src/app/screens/Nostr/ConfirmEncrypt.tsx @@ -20,7 +20,7 @@ function NostrConfirmEncrypt() { const navState = useNavigationState(); const origin = navState.origin as OriginData; - const peer = navState.args?.encrypt.peer; + const recipientNpub = navState.args?.encrypt.recipientNpub; const message = navState.args?.encrypt.message; const [loading, setLoading] = useState(false); @@ -88,7 +88,7 @@ function NostrConfirmEncrypt() {
{showDetails && (
- {t("recipient")}: {peer} + {t("recipient")}: {recipientNpub}
)}
diff --git a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts index 4d2c0a4a27..2eb7800697 100644 --- a/src/extension/background-script/actions/nostr/encryptOrPrompt.ts +++ b/src/extension/background-script/actions/nostr/encryptOrPrompt.ts @@ -34,7 +34,7 @@ const encryptOrPrompt = async (message: MessageEncryptGet, sender: Sender) => { action: "public/nostr/confirmEncrypt", args: { encrypt: { - peer: nostr.hexToNip19(message.args.peer, "npub"), + recipientNpub: nostr.hexToNip19(message.args.peer, "npub"), message: message.args.plaintext, }, }, diff --git a/src/types.ts b/src/types.ts index 86c8916de2..594e7e246a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -171,7 +171,7 @@ export type NavigationState = { // nostr encrypt: { - peer: string; + recipientNpub: string; message: string; };