diff --git a/src/popup/index.html b/src/popup/index.html
index 503e068..7a1980c 100644
--- a/src/popup/index.html
+++ b/src/popup/index.html
@@ -178,6 +178,22 @@
class="text-2xl font-bold mb-2 min-h-[2rem]"
>
+
+
+
+
+
+
diff --git a/src/popup/views/home.js b/src/popup/views/home.js
index 5bcff37..3ff16d0 100644
--- a/src/popup/views/home.js
+++ b/src/popup/views/home.js
@@ -6,7 +6,9 @@ const {
addressDotHtml,
truncateMiddle,
} = require("./helpers");
-const { state, saveState } = require("../../shared/state");
+const { state, saveState, currentAddress } = require("../../shared/state");
+const { updateSendBalance } = require("./send");
+const QRCode = require("qrcode");
const { deriveAddressFromXpub } = require("../../shared/wallet");
const {
formatUsd,
@@ -109,6 +111,55 @@ function render(ctx) {
renderTotalValue();
}
-function init(ctx) {}
+function selectActiveAddress() {
+ for (let wi = 0; wi < state.wallets.length; wi++) {
+ for (let ai = 0; ai < state.wallets[wi].addresses.length; ai++) {
+ if (
+ state.wallets[wi].addresses[ai].address === state.activeAddress
+ ) {
+ state.selectedWallet = wi;
+ state.selectedAddress = ai;
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+function init(ctx) {
+ $("btn-main-send").addEventListener("click", () => {
+ if (!selectActiveAddress()) {
+ showFlash("No active address selected.");
+ return;
+ }
+ const addr = currentAddress();
+ if (!addr.balance || parseFloat(addr.balance) === 0) {
+ showFlash("Cannot send \u2014 zero balance.");
+ return;
+ }
+ $("send-to").value = "";
+ $("send-amount").value = "";
+ updateSendBalance();
+ showView("send");
+ });
+
+ $("btn-main-receive").addEventListener("click", () => {
+ if (!selectActiveAddress()) {
+ showFlash("No active address selected.");
+ return;
+ }
+ const addr = currentAddress();
+ const address = addr ? addr.address : "";
+ $("receive-address").textContent = address;
+ if (address) {
+ QRCode.toCanvas($("receive-qr"), address, {
+ width: 200,
+ margin: 2,
+ color: { dark: "#000000", light: "#ffffff" },
+ });
+ }
+ showView("receive");
+ });
+}
module.exports = { init, render };