@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
115 lines (113 loc) • 3.71 kB
JavaScript
;
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