@fastnear/wallet-adapter-widget
Version:
User interfaces for select NEAR Protocol web3 wallets
173 lines • 5.17 kB
JavaScript
/* ⋈ 🏃🏻💨 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 */
;
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