UNPKG

@fastnear/wallet-adapter-widget

Version:

User interfaces for select NEAR Protocol web3 wallets

173 lines 5.17 kB
/* ⋈ 🏃🏻💨 FastNEAR Wallet Adapter Widget - CJS (@fastnear/wallet-adapter-widget v0.9.7) */ /* https://www.npmjs.com/package/@fastnear/wallet-adapter-widget/v/0.9.7 */ "use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var index_exports = {}; __export(index_exports, { handleLogin: () => handleLogin, handleSend: () => handleSend }); module.exports = __toCommonJS(index_exports); var import_wallets = require("./wallets.js"); let params = {}; window.addEventListener("message", (event) => { if (event.source !== window.parent) { return; } if (event.data.method === "signIn") { params = event.data.params || {}; handleLogin(); } else if (event.data.method === "sendTransactions") { params = event.data.params || {}; handleSend(); } }); async function handleLogin() { function setupWalletList() { const walletList = document.getElementById("walletList"); if (!walletList) return; walletList.innerHTML = import_wallets.wallets.map( (wallet) => ` <li class="wallet-item"> <button class="wallet-button" data-wallet-id="${wallet.id}"> <img class="wallet-icon" src="${wallet.icon}" alt="${wallet.name} icon"> ${wallet.name} </button> </li> ` ).join(""); walletList.addEventListener("click", handleWalletSelect); } __name(setupWalletList, "setupWalletList"); async function handleWalletSelect(e) { const button = e.target.closest(".wallet-button"); if (!button) return; const wallet = import_wallets.wallets.find((w) => w.id === button.dataset.walletId); if (!wallet) return; try { const result = await wallet.adapter.signIn(params); window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: { ...result, state: { ...result.state, lastWalletId: wallet.id } } }, "*" ); } catch (error) { window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: { error: error instanceof Error ? error.message : "Unknown error" } }, "*" ); } } __name(handleWalletSelect, "handleWalletSelect"); document.getElementById("closeButton")?.addEventListener("click", () => { window.parent.postMessage( { type: "wallet-adapter", action: "close" }, "*" ); }); setupWalletList(); } __name(handleLogin, "handleLogin"); async function handleSend() { const { state = {} } = params; const wallet = import_wallets.wallets.find((w) => w.id === state.lastWalletId); if (!wallet) { window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: { error: "No wallet selected" } }, "*" ); return; } if (state.lastWalletId === "meteor") { const sendButton = document.getElementById("sign-transaction"); if (sendButton) { sendButton.addEventListener("click", async () => { try { const result = await wallet.adapter.sendTransactions(params); window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: result }, "*" ); } catch (error) { window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: { error: error instanceof Error ? error.message : "Unknown error" } }, "*" ); } }); } } else { try { const result = await wallet.adapter.sendTransactions(params); window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: result }, "*" ); } catch (error) { window.parent.postMessage( { type: "wallet-adapter", id: params.id, payload: { error: error instanceof Error ? error.message : "Unknown error" } }, "*" ); } } } __name(handleSend, "handleSend"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { handleLogin, handleSend }); //# sourceMappingURL=index.cjs.map