UNPKG

@fastnear/wallet-adapter-widget

Version:

User interfaces for select NEAR Protocol web3 wallets

104 lines 4.27 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 meteor_exports = {}; __export(meteor_exports, { createMeteorAdapter: () => createMeteorAdapter }); module.exports = __toCommonJS(meteor_exports); var import_near_api_js = require("near-api-js"); var import_meteorwallet_sdk = require("@fastnear/meteorwallet-sdk"); var import_actionToWalletSelector = require("../utils/actionToWalletSelector.js"); var import_crypto = require("@near-js/crypto"); var import_near_api_js2 = require("near-api-js"); async function createMeteorWalletInstance({ networkId = "mainnet" }) { const keyStore = new import_near_api_js2.keyStores.BrowserLocalStorageKeyStore( window.localStorage, "_meteor_wallet" ); const near = await (0, import_near_api_js.connect)({ keyStore, networkId, nodeUrl: networkId === "mainnet" ? "https://rpc.mainnet.near.org" : "https://rpc.testnet.near.org" }); return new import_meteorwallet_sdk.MeteorWallet({ near, appKeyPrefix: "near_app" }); } __name(createMeteorWalletInstance, "createMeteorWalletInstance"); function createMeteorAdapter() { return { async signIn({ networkId, contractId, publicKey }) { const parsedPublicKey = import_crypto.PublicKey.from(publicKey); const keyPair = import_near_api_js.KeyPair.fromString(parsedPublicKey.toString()); const wallet = await createMeteorWalletInstance({ networkId }); const response = await wallet.requestSignIn({ contract_id: contractId, type: import_meteorwallet_sdk.EMeteorWalletSignInType.ALL_METHODS, keyPair }); if (!response?.success || !response.payload?.accountId) { throw new Error("Meteor Wallet sign-in failed"); } return { state: { accountId: response.payload.accountId, publicKey: parsedPublicKey.toString(), networkId } }; }, async sendTransactions({ state, transactions }) { if (!state?.accountId) { throw new Error("Not signed in"); } const wallet = await createMeteorWalletInstance({ networkId: state.networkId }); try { const response = await wallet.requestSignTransactions({ transactions: transactions.map(({ signerId, receiverId, actions }) => { if (signerId && signerId !== state.accountId) { throw new Error("Invalid signer"); } return { signerId: state.accountId, receiverId, actions: actions.map(import_actionToWalletSelector.mapActionForWalletSelector) }; }) }); return { outcomes: response }; } catch (error) { const errorMessage = error instanceof Error ? error.message : "Unknown error"; if (errorMessage === "User cancelled the action" || errorMessage === "User closed the window before completing the action") { return { rejected: true }; } console.error("Transaction error:", error); throw new Error(errorMessage); } } }; } __name(createMeteorAdapter, "createMeteorAdapter"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createMeteorAdapter }); //# sourceMappingURL=meteor.cjs.map