@fastnear/wallet-adapter-widget
Version:
User interfaces for select NEAR Protocol web3 wallets
1 lines • 6.59 kB
Source Map (JSON)
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { wallets } from \"./wallets.js\";\n\nlet params: any = {};\n\nwindow.addEventListener(\"message\", (event) => {\n // Only accept messages from the parent window\n if (event.source !== window.parent) {\n return;\n }\n\n if (event.data.method === \"signIn\") {\n params = event.data.params || {};\n\n handleLogin();\n } else if (event.data.method === \"sendTransactions\") {\n params = event.data.params || {};\n\n handleSend();\n }\n});\n\nasync function handleLogin() {\n function setupWalletList() {\n const walletList = document.getElementById(\"walletList\");\n if (!walletList) return; // Ensure walletList exists before using it\n\n walletList.innerHTML = wallets\n .map(\n (wallet) => `\n <li class=\"wallet-item\">\n <button class=\"wallet-button\" data-wallet-id=\"${wallet.id}\">\n <img class=\"wallet-icon\" src=\"${wallet.icon}\" alt=\"${wallet.name} icon\">\n ${wallet.name}\n </button>\n </li>\n `\n )\n .join(\"\");\n\n walletList.addEventListener(\"click\", handleWalletSelect);\n }\n\n async function handleWalletSelect(e) {\n const button = e.target.closest(\".wallet-button\");\n if (!button) return;\n\n const wallet = wallets.find((w) => w.id === button.dataset.walletId);\n if (!wallet) return;\n\n try {\n const result = await wallet.adapter.signIn(params);\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: {\n ...result,\n state: {\n ...result.state,\n lastWalletId: wallet.id,\n },\n },\n },\n \"*\"\n );\n } catch (error) {\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: { error: error instanceof Error ? error.message : \"Unknown error\" },\n },\n \"*\"\n );\n }\n }\n\n document.getElementById(\"closeButton\")?.addEventListener(\"click\", () => {\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n action: \"close\",\n },\n \"*\"\n );\n });\n\n setupWalletList();\n}\n\nasync function handleSend() {\n const { state = {} } = params;\n const wallet = wallets.find((w) => w.id === state.lastWalletId);\n\n if (!wallet) {\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: { error: \"No wallet selected\" },\n },\n \"*\"\n );\n return;\n }\n\n if (state.lastWalletId === \"meteor\") {\n const sendButton = document.getElementById(\"sign-transaction\");\n if (sendButton) {\n sendButton.addEventListener(\"click\", async () => {\n try {\n const result = await wallet.adapter.sendTransactions(params);\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: result,\n },\n \"*\"\n );\n } catch (error) {\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: { error: error instanceof Error ? error.message : \"Unknown error\" },\n },\n \"*\"\n );\n }\n });\n }\n } else {\n try {\n const result = await wallet.adapter.sendTransactions(params);\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: result,\n },\n \"*\"\n );\n } catch (error) {\n window.parent.postMessage(\n {\n type: \"wallet-adapter\",\n id: params.id,\n payload: { error: error instanceof Error ? error.message : \"Unknown error\" },\n },\n \"*\"\n );\n }\n }\n}\n\nexport { handleLogin, handleSend };\n"],"mappings":"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","names":[]}