UNPKG

@roochnetwork/rooch-sdk-kit

Version:
115 lines (113 loc) 3.71 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; 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); // src/provider/walletStore.ts var walletStore_exports = {}; __export(walletStore_exports, { createWalletStore: () => createWalletStore }); module.exports = __toCommonJS(walletStore_exports); var import_zustand = require("zustand"); var import_middleware = require("zustand/middleware"); function createWalletStore({ chain, currentWallet, wallets, storage, storageKey, autoConnectEnabled }) { return (0, import_zustand.createStore)()( (0, import_middleware.persist)( (set, get) => ({ currentChain: chain, autoConnectEnabled, currentWallet, wallets, addresses: [], currentAddress: void 0, lastConnectedAddress: void 0, lastConnectedWalletName: void 0, connectionStatus: "disconnected", setChain(chain2) { const currentChain = get().currentChain; if (currentChain === chain2) { return; } set(() => ({ currentChain: chain2, accounts: [], // currentWallet: supportWallets.find((v) => v.getSupportNetworks()), sessionAccount: null, connectionStatus: "disconnected" })); }, setConnectionStatus(connectionStatus) { set(() => ({ connectionStatus })); }, setWalletConnected(wallet, connectedAddresses, selectedAddress) { set(() => ({ currentWallet: wallet, accounts: connectedAddresses, currentAddress: selectedAddress || void 0, lastConnectedWalletName: wallet.getName(), lastConnectedAddress: selectedAddress?.toStr(), connectionStatus: "connected" })); }, setWalletDisconnected() { set(() => ({ accounts: [], currentAddress: void 0, lastConnectedWalletName: void 0, lastConnectedAddress: void 0, connectionStatus: "disconnected" })); }, setAddressSwitched(selected) { set(() => ({ currentAddress: selected, lastConnectedAddress: selected.toStr() ?? "" })); }, updateWalletAddresses(addresses) { const currentAddr = get().currentAddress; set(() => ({ currentAddress: currentAddr && addresses.find((addr) => addr.toStr() === currentAddr.toStr()) || addresses[0] })); }, updateWallets(wallets2) { set(() => ({ wallets: wallets2 })); } }), { name: storageKey, storage: (0, import_middleware.createJSONStorage)(() => storage), partialize: ({ lastConnectedWalletName, lastConnectedAddress }) => ({ lastConnectedWalletName, lastConnectedAddress }) } ) ); } //# sourceMappingURL=walletStore.js.map