@bitte-ai/wallet
Version:
Bitte Wallet
1 lines • 33 kB
Source Map (JSON)
{"version":3,"sources":["../src/icon.ts","../src/bitte-wallet.ts","../src/bitte-wallet-setup.ts"],"names":["icon","DEFAULT_POPUP_WIDTH","DEFAULT_POPUP_HEIGHT","POLL_INTERVAL","getInitialState","saveState","state","createWalletConfig","walletUrl","network","providers","getAccountId","getPublicKey","KeyPair","isSignedIn","signOut","newState","requestSignInUrl","config","contractId","methodNames","currentUrl","newUrl","functionCallKey","accessKey","methodName","requestSignIn","url","handlePopupTransaction","data","responseData","publicKey","accountId","updatedState","signMessage","message","nonce","recipient","callbackUrl","messageState","href","value","storedKeyCanSign","receiverId","actions","signUsingKeyPair","myKeyStore","keyStores","keyPair","connect","a","createAction","requestSignTransactionsUrl","txs","stringifiedParam","_","v","urlParam","signAndSendTransactionsPopUp","txsHashes","hash","signAndSendTransaction","error","signAndSendTransactions","transactionsWS","setupMessageHandler","resolve","reject","childWindow","callback","event","origin","walletBaseUrl","screenWidth","screenHeight","left","top","messageHandler","intervalId","createBitteWalletConnector","walletAuthKey","params","result","transactions","resolveWalletUrl","setupWalletState","BitteWallet","metadata","options","store","logger","getAccounts","sgnState","signerId","contract","signedAccountId","setupBitteWallet","iconUrl","deprecated","moduleOptions"],"mappings":"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","file":"index.mjs","sourcesContent":["export const icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTUiIGhlaWdodD0iOTUiIHZpZXdCb3g9IjAgMCA5NSA5NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjc3NjE3IDU5LjE4MjZMNjIuNzIyNyA2My4zMTNDNjMuMTE4NSA2My40MzA5IDYzLjQ3ODggNjMuNjQ1NiA2My43NzA4IDYzLjkzNzdDNjQuMDYyOSA2NC4yMjk3IDY0LjI3NzUgNjQuNTg5OSA2NC4zOTU0IDY0Ljk4NThMNjguNTI1OSA3OC44NTU1QzY4LjY3ODcgNzkuMzY4NiA2OC45OTMyIDc5LjgxODYgNjkuNDIyNCA4MC4xMzg3QzY5Ljg1MTYgODAuNDU4NyA3MC4zNzI3IDgwLjYzMTYgNzAuOTA4MiA4MC42MzE2QzcxLjQ0MzYgODAuNjMxNiA3MS45NjQ3IDgwLjQ1ODcgNzIuMzkzOSA4MC4xMzg3QzcyLjgyMzEgNzkuODE4NiA3My4xMzc2IDc5LjM2ODYgNzMuMjkwNCA3OC44NTU1TDc3LjQyMDkgNjQuOTg1OEM3Ny41Mzg4IDY0LjU4OTkgNzcuNzUzNCA2NC4yMjk3IDc4LjA0NTUgNjMuOTM3N0M3OC4zMzc2IDYzLjY0NTYgNzguNjk3OCA2My40MzA5IDc5LjA5MzYgNjMuMzEzTDkyLjk2MzMgNTkuMTgyNkM5My40NzY0IDU5LjAyOTcgOTMuOTI2NSA1OC43MTUzIDk0LjI0NjYgNTguMjg2MUM5NC41NjY2IDU3Ljg1NjggOTQuNzM5NSA1Ny4zMzU3IDk0LjczOTUgNTYuODAwM0M5NC43Mzk1IDU2LjI2NDkgOTQuNTY2NiA1NS43NDM4IDk0LjI0NjYgNTUuMzE0NkM5My45MjY1IDU0Ljg4NTMgOTMuNDc2NCA1NC41NzA5IDkyLjk2MzMgNTQuNDE4MUw3OS4wOTM3IDUwLjI4NzZDNzguNjk3OCA1MC4xNjk3IDc4LjMzNzYgNDkuOTU1IDc4LjA0NTUgNDkuNjYzQzc3Ljc1MzUgNDkuMzcwOSA3Ny41Mzg4IDQ5LjAxMDcgNzcuNDIwOSA0OC42MTQ4TDczLjI5MDQgMzQuNzQ1MkM3My4xMzc2IDM0LjIzMiA3Mi44MjMyIDMzLjc4MTkgNzIuMzkzOSAzMy40NjE5QzcxLjk2NDcgMzMuMTQxOSA3MS40NDM2IDMyLjk2OSA3MC45MDgyIDMyLjk2OUM3MC4zNzI4IDMyLjk2OSA2OS44NTE3IDMzLjE0MTkgNjkuNDIyNCAzMy40NjE5QzY4Ljk5MzIgMzMuNzgxOSA2OC42Nzg4IDM0LjIzMiA2OC41MjYgMzQuNzQ1Mkw2NC4zOTU0IDQ4LjYxNDhDNjQuMjc3NiA0OS4wMTA3IDY0LjA2MjkgNDkuMzcwOSA2My43NzA4IDQ5LjY2M0M2My40Nzg4IDQ5Ljk1NSA2My4xMTg1IDUwLjE2OTcgNjIuNzIyNyA1MC4yODc2TDEuNzc2MTggNTQuNDE4MUMxLjI2MzA1IDU0LjU3MDkgMC44MTI5NTYgNTQuODg1MyAwLjQ5MjkyIDU1LjMxNDZDMC4xNzI4ODQgNTUuNzQzOCAyLjI0NzU1ZS0wNiA1Ni4yNjQ5IDAgNTYuODAwM0MtMi4yNDc1MWUtMDYgNTcuMzM1NyAwLjE3Mjg4NyA1Ny44NTY4IDAuNDkyOTIgNTguMjg2MUMwLjgxMjk1MyA1OC43MTUzIDEuMjYzMDMgNTkuMDI5NyAxLjc3NjE3IDU5LjE4MjZaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMyLjE2MzcgMjkuNDg2OEw0MC4zNTc4IDMxLjkyNzFDNDAuNTkxNyAzMS45OTY3IDQwLjgwNDUgMzIuMTIzNiA0MC45NzcgMzIuMjk2MUM0MS4xNDk2IDMyLjQ2ODcgNDEuMjc2NCAzMi42ODE1IDQxLjM0NjEgMzIuOTE1NEw0My43ODYzIDQxLjEwOTVDNDMuODc2NiA0MS40MTI2IDQ0LjA2MjQgNDEuNjc4NSA0NC4zMTYgNDEuODY3NkM0NC41Njk2IDQyLjA1NjcgNDQuODc3NCA0Mi4xNTg4IDQ1LjE5MzcgNDIuMTU4OEM0NS41MTAxIDQyLjE1ODggNDUuODE3OSA0Mi4wNTY3IDQ2LjA3MTUgNDEuODY3NkM0Ni4zMjUxIDQxLjY3ODUgNDYuNTEwOSA0MS40MTI2IDQ2LjYwMTEgNDEuMTA5NUw0OS4wNDE0IDMyLjkxNTRDNDkuMTExMSAzMi42ODE1IDQ5LjIzNzkgMzIuNDY4NyA0OS40MTA0IDMyLjI5NjFDNDkuNTgzIDMyLjEyMzYgNDkuNzk1OCAzMS45OTY3IDUwLjAyOTcgMzEuOTI3MUw1OC4yMjM4IDI5LjQ4NjhDNTguNTI2OSAyOS4zOTY2IDU4Ljc5MjggMjkuMjEwOCA1OC45ODE5IDI4Ljk1NzJDNTkuMTcxIDI4LjcwMzYgNTkuMjczMSAyOC4zOTU4IDU5LjI3MzEgMjguMDc5NEM1OS4yNzMxIDI3Ljc2MzEgNTkuMTcxIDI3LjQ1NTMgNTguOTgxOSAyNy4yMDE3QzU4Ljc5MjggMjYuOTQ4MSA1OC41MjY5IDI2Ljc2MjMgNTguMjIzOCAyNi42NzJMNTAuMDI5NiAyNC4yMzE3QzQ5Ljc5NTggMjQuMTYyMSA0OS41ODI5IDI0LjAzNTIgNDkuNDEwNCAyMy44NjI3QzQ5LjIzNzkgMjMuNjkwMiA0OS4xMTEgMjMuNDc3MyA0OS4wNDE0IDIzLjI0MzRMNDYuNjAxMSAxNS4wNDkzQzQ2LjUxMDggMTQuNzQ2MiA0Ni4zMjUgMTQuNDgwMyA0Ni4wNzE1IDE0LjI5MTJDNDUuODE3OSAxNC4xMDIxIDQ1LjUxIDE0IDQ1LjE5MzcgMTRDNDQuODc3NCAxNCA0NC41Njk1IDE0LjEwMjEgNDQuMzE1OSAxNC4yOTEyQzQ0LjA2MjMgMTQuNDgwMyA0My44NzY2IDE0Ljc0NjIgNDMuNzg2MyAxNS4wNDkzTDQxLjM0NiAyMy4yNDM0QzQxLjI3NjQgMjMuNDc3MyA0MS4xNDk1IDIzLjY5MDIgNDAuOTc3IDIzLjg2MjdDNDAuODA0NCAyNC4wMzUyIDQwLjU5MTYgMjQuMTYyMSA0MC4zNTc4IDI0LjIzMTdMMzIuMTYzNyAyNi42NzJDMzEuODYwNSAyNi43NjIyIDMxLjU5NDYgMjYuOTQ4IDMxLjQwNTUgMjcuMjAxNkMzMS4yMTY0IDI3LjQ1NTIgMzEuMTE0MyAyNy43NjMxIDMxLjExNDMgMjguMDc5NEMzMS4xMTQzIDI4LjM5NTggMzEuMjE2NCAyOC43MDM3IDMxLjQwNTUgMjguOTU3MkMzMS41OTQ2IDI5LjIxMDggMzEuODYwNSAyOS4zOTY2IDMyLjE2MzcgMjkuNDg2OFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=';\n","import type {\n Action,\n FinalExecutionOutcome,\n Network,\n SignMessageParams,\n Transaction,\n} from \"@near-wallet-selector/core\";\nimport { createAction } from \"@near-wallet-selector/wallet-utils\";\nimport { connect, keyStores, providers } from \"near-api-js\";\nimport type { PublicKey } from \"near-api-js/lib/utils/index.js\";\nimport { KeyPair } from \"near-api-js/lib/utils/index.js\";\nimport { WalletConfig, WalletMessage, WalletResponseData, WalletState } from \"./types\";\n\n\n// Constants\nconst DEFAULT_POPUP_WIDTH = 480;\nconst DEFAULT_POPUP_HEIGHT = 640;\nconst POLL_INTERVAL = 300;\n\n\n// State management\nconst getInitialState = (): WalletState => ({\n signedAccountId: localStorage.getItem(\"bitte:signedAccountId\") || \"\",\n functionCallKey: JSON.parse(localStorage.getItem(\"bitte:functionCallKey\") || \"null\"),\n});\n\nconst saveState = (state: WalletState): void => {\n localStorage.setItem(\"bitte:signedAccountId\", state.signedAccountId);\n localStorage.setItem(\"bitte:functionCallKey\", JSON.stringify(state.functionCallKey));\n};\n\n// Create wallet configuration\nconst createWalletConfig = (walletUrl: string, network: Network): WalletConfig => ({\n walletUrl,\n network,\n provider: new providers.JsonRpcProvider({ url: network.nodeUrl }),\n});\n\n// Core functions\nconst getAccountId = (state: WalletState): string => {\n return state.signedAccountId;\n};\n\nconst getPublicKey = (state: WalletState): PublicKey | undefined => {\n if (state.functionCallKey) {\n return KeyPair.fromString(state.functionCallKey.privateKey as any).getPublicKey();\n }\n return undefined;\n};\n\nconst isSignedIn = (state: WalletState): boolean => {\n return !!state.signedAccountId;\n};\n\nconst signOut = (): WalletState => {\n const newState = {\n signedAccountId: \"\",\n functionCallKey: null,\n };\n saveState(newState);\n return newState;\n};\n\nconst requestSignInUrl = (\n config: WalletConfig,\n { contractId, methodNames }: { contractId: string; methodNames?: Array<string> }\n): { url: string; newState: WalletState } => {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(`${config.walletUrl}/login/`);\n\n newUrl.searchParams.set(\"success_url\", currentUrl.href);\n newUrl.searchParams.set(\"failure_url\", currentUrl.href);\n\n let functionCallKey = null;\n\n if (contractId) {\n newUrl.searchParams.set(\"contract_id\", contractId);\n\n const accessKey = KeyPair.fromRandom(\"ed25519\");\n newUrl.searchParams.set(\n \"public_key\",\n accessKey.getPublicKey().toString()\n );\n\n functionCallKey = {\n privateKey: accessKey.toString(),\n contractId,\n methods: methodNames || [],\n };\n }\n\n if (methodNames) {\n methodNames.forEach((methodName) => {\n newUrl.searchParams.append(\"methodNames\", methodName);\n });\n }\n\n const newState = getInitialState();\n newState.functionCallKey = functionCallKey;\n saveState(newState);\n\n return { url: newUrl.toString(), newState };\n};\n\nconst requestSignIn = async (\n config: WalletConfig,\n state: WalletState,\n { contractId, methodNames }: { contractId: string; methodNames?: Array<string> }\n): Promise<Array<{ accountId: string; publicKey: string }>> => {\n const { url, newState } = requestSignInUrl(config, { contractId, methodNames });\n\n return handlePopupTransaction(config, url, async (data) => {\n const responseData = data as WalletResponseData;\n const { public_key: publicKey, account_id: accountId } = responseData;\n\n if (accountId) {\n const updatedState = { ...newState, signedAccountId: accountId };\n saveState(updatedState);\n return [{ accountId, publicKey: publicKey || \"\" }];\n }\n throw new Error(\"Invalid response data from wallet\");\n });\n};\n\nconst signMessage = async (\n config: WalletConfig,\n { message, nonce, recipient, callbackUrl, state: messageState }: SignMessageParams\n) => {\n const url = callbackUrl || window.location.href;\n\n if (!url) {\n throw new Error(`BitteWallet: CallbackUrl is missing`);\n }\n\n const href = new URL(config.walletUrl);\n href.pathname = \"sign-message\";\n href.searchParams.append(\"message\", message);\n href.searchParams.append(\"nonce\", nonce.toString(\"base64\"));\n href.searchParams.append(\"recipient\", recipient);\n href.searchParams.append(\"callbackUrl\", url);\n\n if (messageState) {\n href.searchParams.append(\"state\", messageState);\n }\n\n return handlePopupTransaction(config, href.toString(), (value) => {\n return {\n accountId: value?.signedRequest?.accountId || \"\",\n publicKey: value?.signedRequest?.publicKey || \"\",\n signature: value?.signedRequest?.signature || \"\",\n };\n });\n};\n\nconst storedKeyCanSign = (\n state: WalletState,\n receiverId: string,\n actions: Array<Action>\n): boolean => {\n if (\n state.functionCallKey &&\n state.functionCallKey.contractId === receiverId\n ) {\n return (\n actions[0].type === \"FunctionCall\" &&\n actions[0].params.deposit === \"0\" &&\n (state.functionCallKey.methods.length === 0 ||\n state.functionCallKey.methods.includes(actions[0].params.methodName))\n );\n }\n return false;\n};\n\nconst signUsingKeyPair = async (\n config: WalletConfig,\n state: WalletState,\n { receiverId, actions }: { receiverId: string; actions: Array<Action> }\n): Promise<FinalExecutionOutcome> => {\n // instantiate an account (NEAR API is a nightmare)\n const myKeyStore = new keyStores.InMemoryKeyStore();\n const keyPair = KeyPair.fromString(state.functionCallKey!.privateKey as any);\n\n await myKeyStore.setKey(\n config.network.networkId,\n state.signedAccountId,\n keyPair\n );\n\n const near = await connect({ ...config.network, keyStore: myKeyStore });\n const account = await near.account(state.signedAccountId);\n\n return account.signAndSendTransaction({\n receiverId,\n actions: actions.map((a) => createAction(a)),\n });\n};\n\nconst requestSignTransactionsUrl = (\n config: WalletConfig,\n txs: Array<Transaction>\n): string => {\n const newUrl = new URL(`${config.walletUrl}/sign-transaction`);\n const stringifiedParam = JSON.stringify(txs, (_, v) => typeof v === 'bigint' ? v.toString() : v);\n const urlParam = encodeURIComponent(stringifiedParam);\n\n newUrl.searchParams.set('transactions_data', urlParam);\n newUrl.searchParams.set('callback_url', window.location.origin);\n\n return newUrl.toString();\n};\n\nconst signAndSendTransactionsPopUp = async (\n config: WalletConfig,\n txs: Array<Transaction>\n): Promise<Array<FinalExecutionOutcome>> => {\n const url = requestSignTransactionsUrl(config, txs);\n const txsHashes = (\n await handlePopupTransaction(config, url, (data) => data.transactionHashes)\n )?.split(\"%2C\");\n\n if (!txsHashes) {\n throw new Error(\"No transaction hashes received\");\n }\n return Promise.all(\n txsHashes.map((hash) => config.provider.txStatus(hash, \"unused\"))\n );\n};\n\n\n\nconst signAndSendTransaction = async (\n config: WalletConfig,\n state: WalletState,\n { receiverId, actions }: { receiverId: string; actions: Array<Action> }\n): Promise<FinalExecutionOutcome> => {\n if (actions.length === 1 && storedKeyCanSign(state, receiverId, actions)) {\n try {\n return await signUsingKeyPair(config, state, { receiverId, actions });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Failed to sign using key pair, falling back to wallet\",\n error\n );\n }\n }\n\n const results = await signAndSendTransactionsPopUp(config, [{ signerId: state.signedAccountId, receiverId, actions }]);\n return results[0];\n};\n\nconst signAndSendTransactions = async (\n config: WalletConfig,\n state: WalletState,\n transactionsWS: Array<Transaction>\n): Promise<Array<FinalExecutionOutcome>> => {\n\n return signAndSendTransactionsPopUp(config, transactionsWS);\n};\n\n// Helper functions\nconst setupMessageHandler = <T>(\n config: WalletConfig,\n resolve: (value: T) => void,\n reject: (reason?: unknown) => void,\n childWindow: Window | null,\n callback: (result: WalletMessage) => T\n): (event: MessageEvent) => Promise<void> => {\n const handler = async (event: MessageEvent) => {\n const message = event.data as WalletMessage;\n\n // check if the URL are the same\n const origin = new URL(event.origin);\n const walletBaseUrl = new URL(config.walletUrl);\n\n if (origin.origin !== walletBaseUrl.origin) {\n // eslint-disable-next-line no-console\n console.warn(\"Ignoring message from different origin\", origin.origin);\n return;\n }\n\n switch (message.status) {\n case \"success\":\n childWindow?.close();\n resolve(callback(message));\n break;\n case \"failure\":\n childWindow?.close();\n reject(new Error(message.errorMessage || \"Transaction failed\"));\n break;\n default:\n // eslint-disable-next-line no-console\n console.warn(\"Unhandled message status:\", message.status);\n }\n };\n\n return handler;\n};\n\nconst handlePopupTransaction = <T>(\n config: WalletConfig,\n url: string,\n callback: (result: WalletMessage) => T\n): Promise<T> => {\n const screenWidth = window.innerWidth || screen.width;\n const screenHeight = window.innerHeight || screen.height;\n const left = (screenWidth - DEFAULT_POPUP_WIDTH) / 2;\n const top = (screenHeight - DEFAULT_POPUP_HEIGHT) / 2;\n\n const childWindow = window.open(\n url,\n \"BitteWallet\",\n `width=${DEFAULT_POPUP_WIDTH},height=${DEFAULT_POPUP_HEIGHT},top=${top},left=${left}`\n );\n\n if (!childWindow) {\n throw new Error(\n \"Popup window blocked. Please allow popups for this site.\"\n );\n }\n\n return new Promise<T>((resolve, reject) => {\n const messageHandler = setupMessageHandler(\n config,\n resolve,\n reject,\n childWindow,\n callback\n );\n\n window.addEventListener(\"message\", messageHandler);\n\n const intervalId = setInterval(() => {\n if (childWindow.closed) {\n window.removeEventListener(\"message\", messageHandler);\n clearInterval(intervalId);\n reject(new Error(\"User closed the window\"));\n }\n }, POLL_INTERVAL);\n });\n};\n\n\nexport const createBitteWalletConnector = (walletUrl: string, network: Network) => {\n const config = createWalletConfig(walletUrl, network);\n\n // Transform from previous wallet version\n const walletAuthKey = localStorage.getItem(\"mintbase-wallet_wallet_auth_key\");\n if (walletAuthKey) {\n const { accountId } = JSON.parse(walletAuthKey) || {};\n localStorage.setItem(\"bitte:signedAccountId\", accountId);\n localStorage.removeItem(\"mintbase-wallet_wallet_auth_key\");\n }\n\n let state = getInitialState();\n\n return {\n getAccountId: () => getAccountId(state),\n getPublicKey: () => getPublicKey(state),\n isSignedIn: () => isSignedIn(state),\n signOut: () => {\n state = signOut();\n return null;\n },\n requestSignIn: async (params: { contractId: string; methodNames?: Array<string> }) => {\n const result = await requestSignIn(config, state, params);\n // Update state after sign-in\n state = getInitialState();\n return result;\n },\n requestSignInUrl: (params: { contractId: string; methodNames?: Array<string> }) => {\n const { url, newState } = requestSignInUrl(config, params);\n state = newState;\n return url;\n },\n signMessage: (params: SignMessageParams) => signMessage(config, params),\n signAndSendTransaction: (params: { receiverId: string; actions: Array<Action> }) =>\n signAndSendTransaction(config, state, params),\n signAndSendTransactions: (transactions: Array<Transaction>) =>\n signAndSendTransactions(config, state, transactions),\n };\n};","import type {\n WalletModuleFactory,\n WalletBehaviourFactory,\n Transaction,\n Network,\n Account,\n InjectedWallet,\n} from \"@near-wallet-selector/core\";\nimport { icon } from \"./icon\";\nimport { createBitteWalletConnector } from \"./bitte-wallet\";\nimport { BitteWalletExtraOptions, BitteWalletParams, BitteWalletState } from \"./types\";\n\nconst resolveWalletUrl = (network?: Network, walletUrl?: string) => {\n if (walletUrl) {\n return walletUrl;\n }\n\n if(!network){\n return \"https://wallet.bitte.ai\";\n }\n\n switch (network.networkId) {\n case \"mainnet\":\n return \"https://wallet.bitte.ai\";\n case \"testnet\":\n return \"https://testnet.wallet.bitte.ai\";\n default:\n return \"https://wallet.bitte.ai\";\n }\n};\n\nconst setupWalletState = async (\n params: BitteWalletExtraOptions,\n network: Network\n): Promise<BitteWalletState> => {\n // Use the factory function instead of the class constructor\n const wallet = createBitteWalletConnector(params.walletUrl, network);\n\n return {\n wallet,\n };\n};\n\nconst BitteWallet: WalletBehaviourFactory<\n InjectedWallet,\n { params: BitteWalletExtraOptions }\n> = async ({ metadata, options, store, params, logger }) => {\n const state = await setupWalletState(params, options.network);\n\n const getAccounts = async (): Promise<Array<Account>> => {\n const accountId = state.wallet.getAccountId();\n const publicKey = state.wallet.getPublicKey();\n\n return [\n {\n accountId,\n publicKey: publicKey ? publicKey.toString() : \"\",\n },\n ];\n };\n\n return {\n async signIn({ contractId, methodNames }) {\n if (!state.wallet.isSignedIn()) {\n await state.wallet.requestSignIn({\n contractId,\n methodNames,\n });\n }\n\n return getAccounts();\n },\n\n async signOut() {\n state.wallet.signOut();\n },\n\n async getAccounts() {\n return getAccounts();\n },\n\n async verifyOwner() {\n throw new Error(`Method not supported by ${metadata.name}`);\n },\n\n async signMessage({\n message,\n nonce,\n recipient,\n callbackUrl,\n state: sgnState,\n }) {\n logger.log(\"sign message\", { message });\n\n return await state.wallet.signMessage({\n message,\n nonce,\n recipient,\n callbackUrl,\n state: sgnState,\n });\n },\n\n async signAndSendTransaction({ signerId, receiverId, actions }) {\n logger.log(\"signAndSendTransaction\", {\n signerId,\n receiverId,\n actions,\n });\n\n const { contract } = store.getState();\n\n if (!state.wallet.isSignedIn() || !contract) {\n throw new Error(\"Wallet not signed in\");\n }\n\n const signedAccountId = state.wallet.getAccountId();\n\n if (signerId && signedAccountId !== signerId) {\n throw new Error(\n `Signed in as ${signedAccountId}, cannot sign for ${signerId}`\n );\n }\n\n return state.wallet.signAndSendTransaction({\n receiverId: receiverId || contract.contractId,\n actions,\n });\n },\n\n async signAndSendTransactions({ transactions }) {\n logger.log(\"signAndSendTransactions\", { transactions });\n\n if (!state.wallet.isSignedIn()) {\n throw new Error(\"Wallet not signed in\");\n }\n\n return state.wallet.signAndSendTransactions(\n transactions as Array<Transaction>\n );\n },\n\n buildImportAccountsUrl() {\n return `${params.walletUrl}/batch-import`;\n },\n };\n};\n\nexport function setupBitteWallet({\n walletUrl,\n iconUrl = icon,\n deprecated = false,\n}: BitteWalletParams = {}): WalletModuleFactory<InjectedWallet> {\n return async (moduleOptions) => {\n return {\n id: \"bitte-wallet\",\n type: \"injected\",\n metadata: {\n name: \"Bitte Wallet\",\n description:\n \"NEAR wallet to store, buy, send and stake assets for DeFi.\",\n iconUrl,\n deprecated,\n available: true,\n downloadUrl: resolveWalletUrl(moduleOptions.options.network, walletUrl),\n },\n init: (options) => {\n return BitteWallet({\n ...options,\n params: {\n walletUrl: resolveWalletUrl(moduleOptions.options.network, walletUrl),\n },\n });\n },\n };\n };\n}"]}