@monygroupcorp/micro-web3 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monygroupcorp/micro-web3",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "A lean, reusable Web3 toolkit with components for wallet connection, IPFS, and common Web3 UI patterns.",
|
|
5
5
|
"main": "dist/micro-web3.cjs",
|
|
6
6
|
"module": "dist/micro-web3.esm.js",
|
|
@@ -566,7 +566,58 @@ class WalletService {
|
|
|
566
566
|
signer: this.signer
|
|
567
567
|
};
|
|
568
568
|
}
|
|
569
|
-
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* Programmatically set the connected state.
|
|
572
|
+
* Useful for migrating from manual workarounds or external connection management.
|
|
573
|
+
*
|
|
574
|
+
* @param {Object} state - The connection state to set
|
|
575
|
+
* @param {string} state.address - The connected wallet address
|
|
576
|
+
* @param {Object} state.provider - The raw provider (window.ethereum or similar)
|
|
577
|
+
* @param {Object} [state.ethersProvider] - Optional ethers Web3Provider (created if not provided)
|
|
578
|
+
* @param {Object} [state.signer] - Optional ethers signer (created if not provided)
|
|
579
|
+
* @param {string} [state.walletType='metamask'] - The wallet type identifier
|
|
580
|
+
* @param {boolean} [emitEvent=true] - Whether to emit wallet:connected event
|
|
581
|
+
* @returns {void}
|
|
582
|
+
*/
|
|
583
|
+
setConnectedState({ address, provider, ethersProvider, signer, walletType = 'metamask' }, emitEvent = true) {
|
|
584
|
+
if (!address) {
|
|
585
|
+
throw new Error('setConnectedState requires an address');
|
|
586
|
+
}
|
|
587
|
+
if (!provider) {
|
|
588
|
+
throw new Error('setConnectedState requires a provider');
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
// Update internal state
|
|
592
|
+
this.provider = provider;
|
|
593
|
+
this.connectedAddress = address;
|
|
594
|
+
this.connected = true;
|
|
595
|
+
this.selectedWallet = walletType;
|
|
596
|
+
|
|
597
|
+
// Create ethers provider/signer if not provided
|
|
598
|
+
this.ethersProvider = ethersProvider || new ethers.providers.Web3Provider(provider, 'any');
|
|
599
|
+
this.signer = signer || this.ethersProvider.getSigner();
|
|
600
|
+
|
|
601
|
+
// Set up event listeners for the provider
|
|
602
|
+
this.setupEventListeners();
|
|
603
|
+
|
|
604
|
+
// Store wallet type for future auto-reconnect
|
|
605
|
+
localStorage.setItem('ms2fun_lastWallet', walletType);
|
|
606
|
+
|
|
607
|
+
console.log('[WalletService] State set programmatically:', address);
|
|
608
|
+
|
|
609
|
+
// Emit event so UI components update
|
|
610
|
+
if (emitEvent) {
|
|
611
|
+
this.eventBus.emit('wallet:connected', {
|
|
612
|
+
address: this.connectedAddress,
|
|
613
|
+
walletType: this.selectedWallet,
|
|
614
|
+
provider: this.provider,
|
|
615
|
+
ethersProvider: this.ethersProvider,
|
|
616
|
+
signer: this.signer
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
570
621
|
/**
|
|
571
622
|
* Handle network changes
|
|
572
623
|
* @private
|