@txnlab/use-wallet-solid 3.0.0-beta.9 → 3.0.0-rc.2
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/dist/dev.cjs +35 -20
- package/dist/dev.js +31 -20
- package/dist/dev.jsx +29 -20
- package/dist/index.cjs +33 -20
- package/dist/index.d.cts +19 -6
- package/dist/index.d.ts +19 -6
- package/dist/index.js +29 -20
- package/dist/index.jsx +27 -20
- package/package.json +15 -3
package/dist/dev.cjs
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var useWallet$1 = require('@txnlab/use-wallet');
|
|
4
3
|
var solidStore = require('@tanstack/solid-store');
|
|
4
|
+
var algosdk = require('algosdk');
|
|
5
|
+
var useWallet$1 = require('@txnlab/use-wallet');
|
|
6
|
+
|
|
7
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
var algosdk__default = /*#__PURE__*/_interopDefault(algosdk);
|
|
7
10
|
|
|
8
11
|
// ../../node_modules/.pnpm/solid-js@1.8.16/node_modules/solid-js/dist/solid.js
|
|
9
12
|
var sharedConfig = {
|
|
@@ -694,8 +697,6 @@ var booleans = [
|
|
|
694
697
|
"playsInline",
|
|
695
698
|
...booleans
|
|
696
699
|
]);
|
|
697
|
-
|
|
698
|
-
// src/WalletProvider.tsx
|
|
699
700
|
var WalletContext = createContext();
|
|
700
701
|
exports.WalletProvider = (props) => {
|
|
701
702
|
const store = () => props.manager;
|
|
@@ -713,7 +714,7 @@ exports.WalletProvider = (props) => {
|
|
|
713
714
|
}
|
|
714
715
|
});
|
|
715
716
|
};
|
|
716
|
-
|
|
717
|
+
exports.useWalletManager = () => {
|
|
717
718
|
const manager = useContext(WalletContext);
|
|
718
719
|
if (!manager) {
|
|
719
720
|
throw new Error("useWalletManager must be used within a WalletProvider");
|
|
@@ -721,14 +722,11 @@ var useWalletManager = () => {
|
|
|
721
722
|
return manager();
|
|
722
723
|
};
|
|
723
724
|
function useWallet() {
|
|
724
|
-
const manager = createMemo(() => useWalletManager());
|
|
725
|
-
const
|
|
726
|
-
|
|
727
|
-
});
|
|
725
|
+
const manager = createMemo(() => exports.useWalletManager());
|
|
726
|
+
const [algodClient, setAlgodClient] = createSignal(manager().algodClient);
|
|
727
|
+
const walletStore = solidStore.useStore(manager().store, (state) => state.wallets);
|
|
728
728
|
const walletState = (walletId) => walletStore()[walletId] || null;
|
|
729
|
-
const activeWalletId = solidStore.useStore(manager().store, (state) =>
|
|
730
|
-
return state.activeWallet;
|
|
731
|
-
});
|
|
729
|
+
const activeWalletId = solidStore.useStore(manager().store, (state) => state.activeWallet);
|
|
732
730
|
const activeWallet = () => manager().getWallet(activeWalletId()) || null;
|
|
733
731
|
const activeWalletState = () => walletState(activeWalletId());
|
|
734
732
|
const activeWalletAccounts = () => activeWalletState()?.accounts ?? null;
|
|
@@ -737,18 +735,34 @@ function useWallet() {
|
|
|
737
735
|
const activeAddress = () => activeAccount()?.address ?? null;
|
|
738
736
|
const isWalletActive = (walletId) => walletId === activeWalletId();
|
|
739
737
|
const isWalletConnected = (walletId) => !!walletState(walletId)?.accounts.length || false;
|
|
740
|
-
const
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
738
|
+
const activeNetwork = solidStore.useStore(manager().store, (state) => state.activeNetwork);
|
|
739
|
+
const setActiveNetwork = async (networkId) => {
|
|
740
|
+
if (activeNetwork() === networkId) {
|
|
741
|
+
return;
|
|
742
|
+
}
|
|
743
|
+
await manager().disconnect();
|
|
744
|
+
console.info(`[Solid] Creating Algodv2 client for ${networkId}...`);
|
|
745
|
+
const {
|
|
746
|
+
token,
|
|
747
|
+
baseServer,
|
|
748
|
+
port,
|
|
749
|
+
headers
|
|
750
|
+
} = manager().networkConfig[networkId];
|
|
751
|
+
const newClient = new algosdk__default.default.Algodv2(token, baseServer, port, headers);
|
|
752
|
+
setAlgodClient(newClient);
|
|
753
|
+
manager().algodClient = newClient;
|
|
754
|
+
manager().store.setState((state) => ({
|
|
755
|
+
...state,
|
|
756
|
+
activeNetwork: networkId
|
|
757
|
+
}));
|
|
758
|
+
console.info(`[Solid] \u2705 Active network set to ${networkId}.`);
|
|
759
|
+
};
|
|
760
|
+
const signTransactions = (txnGroup, indexesToSign) => {
|
|
747
761
|
const wallet = activeWallet();
|
|
748
762
|
if (!wallet) {
|
|
749
763
|
throw new Error("No active wallet");
|
|
750
764
|
}
|
|
751
|
-
return wallet.signTransactions(txnGroup, indexesToSign
|
|
765
|
+
return wallet.signTransactions(txnGroup, indexesToSign);
|
|
752
766
|
};
|
|
753
767
|
const transactionSigner = (txnGroup, indexesToSign) => {
|
|
754
768
|
const wallet = activeWallet();
|
|
@@ -771,6 +785,7 @@ function useWallet() {
|
|
|
771
785
|
isWalletActive,
|
|
772
786
|
isWalletConnected,
|
|
773
787
|
setActiveNetwork,
|
|
788
|
+
setAlgodClient,
|
|
774
789
|
signTransactions,
|
|
775
790
|
transactionSigner,
|
|
776
791
|
wallets: manager().wallets
|
package/dist/dev.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from '@txnlab/use-wallet';
|
|
2
1
|
import { useStore } from '@tanstack/solid-store';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import algosdk from 'algosdk';
|
|
3
|
+
export * from '@txnlab/use-wallet';
|
|
5
4
|
|
|
6
5
|
// ../../node_modules/.pnpm/solid-js@1.8.16/node_modules/solid-js/dist/solid.js
|
|
7
6
|
var sharedConfig = {
|
|
@@ -692,8 +691,6 @@ var booleans = [
|
|
|
692
691
|
"playsInline",
|
|
693
692
|
...booleans
|
|
694
693
|
]);
|
|
695
|
-
|
|
696
|
-
// src/WalletProvider.tsx
|
|
697
694
|
var WalletContext = createContext();
|
|
698
695
|
var WalletProvider = (props) => {
|
|
699
696
|
const store = () => props.manager;
|
|
@@ -720,13 +717,10 @@ var useWalletManager = () => {
|
|
|
720
717
|
};
|
|
721
718
|
function useWallet() {
|
|
722
719
|
const manager = createMemo(() => useWalletManager());
|
|
723
|
-
const
|
|
724
|
-
|
|
725
|
-
});
|
|
720
|
+
const [algodClient, setAlgodClient] = createSignal(manager().algodClient);
|
|
721
|
+
const walletStore = useStore(manager().store, (state) => state.wallets);
|
|
726
722
|
const walletState = (walletId) => walletStore()[walletId] || null;
|
|
727
|
-
const activeWalletId = useStore(manager().store, (state) =>
|
|
728
|
-
return state.activeWallet;
|
|
729
|
-
});
|
|
723
|
+
const activeWalletId = useStore(manager().store, (state) => state.activeWallet);
|
|
730
724
|
const activeWallet = () => manager().getWallet(activeWalletId()) || null;
|
|
731
725
|
const activeWalletState = () => walletState(activeWalletId());
|
|
732
726
|
const activeWalletAccounts = () => activeWalletState()?.accounts ?? null;
|
|
@@ -735,18 +729,34 @@ function useWallet() {
|
|
|
735
729
|
const activeAddress = () => activeAccount()?.address ?? null;
|
|
736
730
|
const isWalletActive = (walletId) => walletId === activeWalletId();
|
|
737
731
|
const isWalletConnected = (walletId) => !!walletState(walletId)?.accounts.length || false;
|
|
738
|
-
const
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
732
|
+
const activeNetwork = useStore(manager().store, (state) => state.activeNetwork);
|
|
733
|
+
const setActiveNetwork = async (networkId) => {
|
|
734
|
+
if (activeNetwork() === networkId) {
|
|
735
|
+
return;
|
|
736
|
+
}
|
|
737
|
+
await manager().disconnect();
|
|
738
|
+
console.info(`[Solid] Creating Algodv2 client for ${networkId}...`);
|
|
739
|
+
const {
|
|
740
|
+
token,
|
|
741
|
+
baseServer,
|
|
742
|
+
port,
|
|
743
|
+
headers
|
|
744
|
+
} = manager().networkConfig[networkId];
|
|
745
|
+
const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
|
|
746
|
+
setAlgodClient(newClient);
|
|
747
|
+
manager().algodClient = newClient;
|
|
748
|
+
manager().store.setState((state) => ({
|
|
749
|
+
...state,
|
|
750
|
+
activeNetwork: networkId
|
|
751
|
+
}));
|
|
752
|
+
console.info(`[Solid] \u2705 Active network set to ${networkId}.`);
|
|
753
|
+
};
|
|
754
|
+
const signTransactions = (txnGroup, indexesToSign) => {
|
|
745
755
|
const wallet = activeWallet();
|
|
746
756
|
if (!wallet) {
|
|
747
757
|
throw new Error("No active wallet");
|
|
748
758
|
}
|
|
749
|
-
return wallet.signTransactions(txnGroup, indexesToSign
|
|
759
|
+
return wallet.signTransactions(txnGroup, indexesToSign);
|
|
750
760
|
};
|
|
751
761
|
const transactionSigner = (txnGroup, indexesToSign) => {
|
|
752
762
|
const wallet = activeWallet();
|
|
@@ -769,10 +779,11 @@ function useWallet() {
|
|
|
769
779
|
isWalletActive,
|
|
770
780
|
isWalletConnected,
|
|
771
781
|
setActiveNetwork,
|
|
782
|
+
setAlgodClient,
|
|
772
783
|
signTransactions,
|
|
773
784
|
transactionSigner,
|
|
774
785
|
wallets: manager().wallets
|
|
775
786
|
};
|
|
776
787
|
}
|
|
777
788
|
|
|
778
|
-
export { WalletProvider, useWallet };
|
|
789
|
+
export { WalletProvider, useWallet, useWalletManager };
|
package/dist/dev.jsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/index.tsx
|
|
2
|
-
|
|
2
|
+
import { useStore } from "@tanstack/solid-store";
|
|
3
|
+
import algosdk from "algosdk";
|
|
3
4
|
|
|
4
5
|
// ../../node_modules/.pnpm/solid-js@1.8.16/node_modules/solid-js/dist/solid.js
|
|
5
6
|
var sharedConfig = {
|
|
@@ -637,7 +638,8 @@ function createProvider(id, options) {
|
|
|
637
638
|
var FALLBACK = Symbol("fallback");
|
|
638
639
|
var SuspenseListContext = createContext();
|
|
639
640
|
|
|
640
|
-
// src/
|
|
641
|
+
// src/index.tsx
|
|
642
|
+
export * from "@txnlab/use-wallet";
|
|
641
643
|
var WalletContext = createContext();
|
|
642
644
|
var WalletProvider = (props) => {
|
|
643
645
|
const store = () => props.manager;
|
|
@@ -657,18 +659,12 @@ var useWalletManager = () => {
|
|
|
657
659
|
}
|
|
658
660
|
return manager();
|
|
659
661
|
};
|
|
660
|
-
|
|
661
|
-
// src/useWallet.ts
|
|
662
|
-
import { useStore } from "@tanstack/solid-store";
|
|
663
662
|
function useWallet() {
|
|
664
663
|
const manager = createMemo(() => useWalletManager());
|
|
665
|
-
const
|
|
666
|
-
|
|
667
|
-
});
|
|
664
|
+
const [algodClient, setAlgodClient] = createSignal(manager().algodClient);
|
|
665
|
+
const walletStore = useStore(manager().store, (state) => state.wallets);
|
|
668
666
|
const walletState = (walletId) => walletStore()[walletId] || null;
|
|
669
|
-
const activeWalletId = useStore(manager().store, (state) =>
|
|
670
|
-
return state.activeWallet;
|
|
671
|
-
});
|
|
667
|
+
const activeWalletId = useStore(manager().store, (state) => state.activeWallet);
|
|
672
668
|
const activeWallet = () => manager().getWallet(activeWalletId()) || null;
|
|
673
669
|
const activeWalletState = () => walletState(activeWalletId());
|
|
674
670
|
const activeWalletAccounts = () => activeWalletState()?.accounts ?? null;
|
|
@@ -677,18 +673,29 @@ function useWallet() {
|
|
|
677
673
|
const activeAddress = () => activeAccount()?.address ?? null;
|
|
678
674
|
const isWalletActive = (walletId) => walletId === activeWalletId();
|
|
679
675
|
const isWalletConnected = (walletId) => !!walletState(walletId)?.accounts.length || false;
|
|
680
|
-
const
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
676
|
+
const activeNetwork = useStore(manager().store, (state) => state.activeNetwork);
|
|
677
|
+
const setActiveNetwork = async (networkId) => {
|
|
678
|
+
if (activeNetwork() === networkId) {
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
await manager().disconnect();
|
|
682
|
+
console.info(`[Solid] Creating Algodv2 client for ${networkId}...`);
|
|
683
|
+
const { token, baseServer, port, headers } = manager().networkConfig[networkId];
|
|
684
|
+
const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
|
|
685
|
+
setAlgodClient(newClient);
|
|
686
|
+
manager().algodClient = newClient;
|
|
687
|
+
manager().store.setState((state) => ({
|
|
688
|
+
...state,
|
|
689
|
+
activeNetwork: networkId
|
|
690
|
+
}));
|
|
691
|
+
console.info(`[Solid] \u2705 Active network set to ${networkId}.`);
|
|
692
|
+
};
|
|
693
|
+
const signTransactions = (txnGroup, indexesToSign) => {
|
|
687
694
|
const wallet = activeWallet();
|
|
688
695
|
if (!wallet) {
|
|
689
696
|
throw new Error("No active wallet");
|
|
690
697
|
}
|
|
691
|
-
return wallet.signTransactions(txnGroup, indexesToSign
|
|
698
|
+
return wallet.signTransactions(txnGroup, indexesToSign);
|
|
692
699
|
};
|
|
693
700
|
const transactionSigner = (txnGroup, indexesToSign) => {
|
|
694
701
|
const wallet = activeWallet();
|
|
@@ -711,6 +718,7 @@ function useWallet() {
|
|
|
711
718
|
isWalletActive,
|
|
712
719
|
isWalletConnected,
|
|
713
720
|
setActiveNetwork,
|
|
721
|
+
setAlgodClient,
|
|
714
722
|
signTransactions,
|
|
715
723
|
transactionSigner,
|
|
716
724
|
wallets: manager().wallets
|
|
@@ -718,5 +726,6 @@ function useWallet() {
|
|
|
718
726
|
}
|
|
719
727
|
export {
|
|
720
728
|
WalletProvider,
|
|
721
|
-
useWallet
|
|
729
|
+
useWallet,
|
|
730
|
+
useWalletManager
|
|
722
731
|
};
|
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var useWallet$1 = require('@txnlab/use-wallet');
|
|
4
3
|
var solidStore = require('@tanstack/solid-store');
|
|
4
|
+
var algosdk = require('algosdk');
|
|
5
|
+
var useWallet$1 = require('@txnlab/use-wallet');
|
|
6
|
+
|
|
7
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
var algosdk__default = /*#__PURE__*/_interopDefault(algosdk);
|
|
7
10
|
|
|
8
11
|
// ../../node_modules/.pnpm/solid-js@1.8.16/node_modules/solid-js/dist/solid.js
|
|
9
12
|
var sharedConfig = {
|
|
@@ -694,8 +697,6 @@ var booleans = [
|
|
|
694
697
|
"playsInline",
|
|
695
698
|
...booleans
|
|
696
699
|
]);
|
|
697
|
-
|
|
698
|
-
// src/WalletProvider.tsx
|
|
699
700
|
var WalletContext = createContext();
|
|
700
701
|
exports.WalletProvider = (props) => {
|
|
701
702
|
const store = () => props.manager;
|
|
@@ -712,7 +713,7 @@ exports.WalletProvider = (props) => {
|
|
|
712
713
|
}
|
|
713
714
|
});
|
|
714
715
|
};
|
|
715
|
-
|
|
716
|
+
exports.useWalletManager = () => {
|
|
716
717
|
const manager = useContext(WalletContext);
|
|
717
718
|
if (!manager) {
|
|
718
719
|
throw new Error("useWalletManager must be used within a WalletProvider");
|
|
@@ -720,14 +721,11 @@ var useWalletManager = () => {
|
|
|
720
721
|
return manager();
|
|
721
722
|
};
|
|
722
723
|
function useWallet() {
|
|
723
|
-
const manager = createMemo(() => useWalletManager());
|
|
724
|
-
const
|
|
725
|
-
|
|
726
|
-
});
|
|
724
|
+
const manager = createMemo(() => exports.useWalletManager());
|
|
725
|
+
const [algodClient, setAlgodClient] = createSignal(manager().algodClient);
|
|
726
|
+
const walletStore = solidStore.useStore(manager().store, (state) => state.wallets);
|
|
727
727
|
const walletState = (walletId) => walletStore()[walletId] || null;
|
|
728
|
-
const activeWalletId = solidStore.useStore(manager().store, (state) =>
|
|
729
|
-
return state.activeWallet;
|
|
730
|
-
});
|
|
728
|
+
const activeWalletId = solidStore.useStore(manager().store, (state) => state.activeWallet);
|
|
731
729
|
const activeWallet = () => manager().getWallet(activeWalletId()) || null;
|
|
732
730
|
const activeWalletState = () => walletState(activeWalletId());
|
|
733
731
|
const activeWalletAccounts = () => activeWalletState()?.accounts ?? null;
|
|
@@ -736,18 +734,32 @@ function useWallet() {
|
|
|
736
734
|
const activeAddress = () => activeAccount()?.address ?? null;
|
|
737
735
|
const isWalletActive = (walletId) => walletId === activeWalletId();
|
|
738
736
|
const isWalletConnected = (walletId) => !!walletState(walletId)?.accounts.length || false;
|
|
739
|
-
const
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
737
|
+
const activeNetwork = solidStore.useStore(manager().store, (state) => state.activeNetwork);
|
|
738
|
+
const setActiveNetwork = async (networkId) => {
|
|
739
|
+
if (activeNetwork() === networkId) {
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
await manager().disconnect();
|
|
743
|
+
const {
|
|
744
|
+
token,
|
|
745
|
+
baseServer,
|
|
746
|
+
port,
|
|
747
|
+
headers
|
|
748
|
+
} = manager().networkConfig[networkId];
|
|
749
|
+
const newClient = new algosdk__default.default.Algodv2(token, baseServer, port, headers);
|
|
750
|
+
setAlgodClient(newClient);
|
|
751
|
+
manager().algodClient = newClient;
|
|
752
|
+
manager().store.setState((state) => ({
|
|
753
|
+
...state,
|
|
754
|
+
activeNetwork: networkId
|
|
755
|
+
}));
|
|
756
|
+
};
|
|
757
|
+
const signTransactions = (txnGroup, indexesToSign) => {
|
|
746
758
|
const wallet = activeWallet();
|
|
747
759
|
if (!wallet) {
|
|
748
760
|
throw new Error("No active wallet");
|
|
749
761
|
}
|
|
750
|
-
return wallet.signTransactions(txnGroup, indexesToSign
|
|
762
|
+
return wallet.signTransactions(txnGroup, indexesToSign);
|
|
751
763
|
};
|
|
752
764
|
const transactionSigner = (txnGroup, indexesToSign) => {
|
|
753
765
|
const wallet = activeWallet();
|
|
@@ -770,6 +782,7 @@ function useWallet() {
|
|
|
770
782
|
isWalletActive,
|
|
771
783
|
isWalletConnected,
|
|
772
784
|
setActiveNetwork,
|
|
785
|
+
setAlgodClient,
|
|
773
786
|
signTransactions,
|
|
774
787
|
transactionSigner,
|
|
775
788
|
wallets: manager().wallets
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _txnlab_use_wallet from '@txnlab/use-wallet';
|
|
2
|
-
import { WalletManager, WalletId, WalletState, NetworkId
|
|
2
|
+
import { WalletManager, WalletMetadata, WalletAccount, WalletId, WalletState, NetworkId } from '@txnlab/use-wallet';
|
|
3
3
|
export * from '@txnlab/use-wallet';
|
|
4
4
|
import * as solid_js from 'solid-js';
|
|
5
5
|
import { JSX } from 'solid-js';
|
|
@@ -10,12 +10,24 @@ interface WalletProviderProps {
|
|
|
10
10
|
children: JSX.Element;
|
|
11
11
|
}
|
|
12
12
|
declare const WalletProvider: (props: WalletProviderProps) => JSX.Element;
|
|
13
|
-
|
|
13
|
+
declare const useWalletManager: () => WalletManager;
|
|
14
|
+
interface Wallet {
|
|
15
|
+
id: () => string;
|
|
16
|
+
metadata: () => WalletMetadata;
|
|
17
|
+
accounts: () => WalletAccount[];
|
|
18
|
+
activeAccount: () => WalletAccount | null;
|
|
19
|
+
isConnected: () => boolean;
|
|
20
|
+
isActive: () => boolean;
|
|
21
|
+
connect: (args?: Record<string, any>) => Promise<WalletAccount[]>;
|
|
22
|
+
disconnect: () => Promise<void>;
|
|
23
|
+
setActive: () => void;
|
|
24
|
+
setActiveAccount: (address: string) => void;
|
|
25
|
+
}
|
|
14
26
|
declare function useWallet(): {
|
|
15
27
|
activeWalletId: solid_js.Accessor<WalletId | null>;
|
|
16
28
|
walletStore: solid_js.Accessor<Partial<Record<WalletId, WalletState>>>;
|
|
17
29
|
algodClient: solid_js.Accessor<algosdk.Algodv2>;
|
|
18
|
-
activeNetwork:
|
|
30
|
+
activeNetwork: solid_js.Accessor<NetworkId>;
|
|
19
31
|
activeWallet: () => _txnlab_use_wallet.BaseWallet | null;
|
|
20
32
|
activeWalletAccounts: () => WalletAccount[] | null;
|
|
21
33
|
activeWalletAddresses: () => string[] | null;
|
|
@@ -24,10 +36,11 @@ declare function useWallet(): {
|
|
|
24
36
|
activeAddress: () => string | null;
|
|
25
37
|
isWalletActive: (walletId: WalletId) => boolean;
|
|
26
38
|
isWalletConnected: (walletId: WalletId) => boolean;
|
|
27
|
-
setActiveNetwork: (
|
|
28
|
-
|
|
39
|
+
setActiveNetwork: (networkId: NetworkId) => Promise<void>;
|
|
40
|
+
setAlgodClient: solid_js.Setter<algosdk.Algodv2>;
|
|
41
|
+
signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
|
|
29
42
|
transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
|
|
30
43
|
wallets: _txnlab_use_wallet.BaseWallet[];
|
|
31
44
|
};
|
|
32
45
|
|
|
33
|
-
export { WalletProvider, useWallet };
|
|
46
|
+
export { type Wallet, WalletProvider, useWallet, useWalletManager };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _txnlab_use_wallet from '@txnlab/use-wallet';
|
|
2
|
-
import { WalletManager, WalletId, WalletState, NetworkId
|
|
2
|
+
import { WalletManager, WalletMetadata, WalletAccount, WalletId, WalletState, NetworkId } from '@txnlab/use-wallet';
|
|
3
3
|
export * from '@txnlab/use-wallet';
|
|
4
4
|
import * as solid_js from 'solid-js';
|
|
5
5
|
import { JSX } from 'solid-js';
|
|
@@ -10,12 +10,24 @@ interface WalletProviderProps {
|
|
|
10
10
|
children: JSX.Element;
|
|
11
11
|
}
|
|
12
12
|
declare const WalletProvider: (props: WalletProviderProps) => JSX.Element;
|
|
13
|
-
|
|
13
|
+
declare const useWalletManager: () => WalletManager;
|
|
14
|
+
interface Wallet {
|
|
15
|
+
id: () => string;
|
|
16
|
+
metadata: () => WalletMetadata;
|
|
17
|
+
accounts: () => WalletAccount[];
|
|
18
|
+
activeAccount: () => WalletAccount | null;
|
|
19
|
+
isConnected: () => boolean;
|
|
20
|
+
isActive: () => boolean;
|
|
21
|
+
connect: (args?: Record<string, any>) => Promise<WalletAccount[]>;
|
|
22
|
+
disconnect: () => Promise<void>;
|
|
23
|
+
setActive: () => void;
|
|
24
|
+
setActiveAccount: (address: string) => void;
|
|
25
|
+
}
|
|
14
26
|
declare function useWallet(): {
|
|
15
27
|
activeWalletId: solid_js.Accessor<WalletId | null>;
|
|
16
28
|
walletStore: solid_js.Accessor<Partial<Record<WalletId, WalletState>>>;
|
|
17
29
|
algodClient: solid_js.Accessor<algosdk.Algodv2>;
|
|
18
|
-
activeNetwork:
|
|
30
|
+
activeNetwork: solid_js.Accessor<NetworkId>;
|
|
19
31
|
activeWallet: () => _txnlab_use_wallet.BaseWallet | null;
|
|
20
32
|
activeWalletAccounts: () => WalletAccount[] | null;
|
|
21
33
|
activeWalletAddresses: () => string[] | null;
|
|
@@ -24,10 +36,11 @@ declare function useWallet(): {
|
|
|
24
36
|
activeAddress: () => string | null;
|
|
25
37
|
isWalletActive: (walletId: WalletId) => boolean;
|
|
26
38
|
isWalletConnected: (walletId: WalletId) => boolean;
|
|
27
|
-
setActiveNetwork: (
|
|
28
|
-
|
|
39
|
+
setActiveNetwork: (networkId: NetworkId) => Promise<void>;
|
|
40
|
+
setAlgodClient: solid_js.Setter<algosdk.Algodv2>;
|
|
41
|
+
signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
|
|
29
42
|
transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
|
|
30
43
|
wallets: _txnlab_use_wallet.BaseWallet[];
|
|
31
44
|
};
|
|
32
45
|
|
|
33
|
-
export { WalletProvider, useWallet };
|
|
46
|
+
export { type Wallet, WalletProvider, useWallet, useWalletManager };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from '@txnlab/use-wallet';
|
|
2
1
|
import { useStore } from '@tanstack/solid-store';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import algosdk from 'algosdk';
|
|
3
|
+
export * from '@txnlab/use-wallet';
|
|
5
4
|
|
|
6
5
|
// ../../node_modules/.pnpm/solid-js@1.8.16/node_modules/solid-js/dist/solid.js
|
|
7
6
|
var sharedConfig = {
|
|
@@ -692,8 +691,6 @@ var booleans = [
|
|
|
692
691
|
"playsInline",
|
|
693
692
|
...booleans
|
|
694
693
|
]);
|
|
695
|
-
|
|
696
|
-
// src/WalletProvider.tsx
|
|
697
694
|
var WalletContext = createContext();
|
|
698
695
|
var WalletProvider = (props) => {
|
|
699
696
|
const store = () => props.manager;
|
|
@@ -719,13 +716,10 @@ var useWalletManager = () => {
|
|
|
719
716
|
};
|
|
720
717
|
function useWallet() {
|
|
721
718
|
const manager = createMemo(() => useWalletManager());
|
|
722
|
-
const
|
|
723
|
-
|
|
724
|
-
});
|
|
719
|
+
const [algodClient, setAlgodClient] = createSignal(manager().algodClient);
|
|
720
|
+
const walletStore = useStore(manager().store, (state) => state.wallets);
|
|
725
721
|
const walletState = (walletId) => walletStore()[walletId] || null;
|
|
726
|
-
const activeWalletId = useStore(manager().store, (state) =>
|
|
727
|
-
return state.activeWallet;
|
|
728
|
-
});
|
|
722
|
+
const activeWalletId = useStore(manager().store, (state) => state.activeWallet);
|
|
729
723
|
const activeWallet = () => manager().getWallet(activeWalletId()) || null;
|
|
730
724
|
const activeWalletState = () => walletState(activeWalletId());
|
|
731
725
|
const activeWalletAccounts = () => activeWalletState()?.accounts ?? null;
|
|
@@ -734,18 +728,32 @@ function useWallet() {
|
|
|
734
728
|
const activeAddress = () => activeAccount()?.address ?? null;
|
|
735
729
|
const isWalletActive = (walletId) => walletId === activeWalletId();
|
|
736
730
|
const isWalletConnected = (walletId) => !!walletState(walletId)?.accounts.length || false;
|
|
737
|
-
const
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
731
|
+
const activeNetwork = useStore(manager().store, (state) => state.activeNetwork);
|
|
732
|
+
const setActiveNetwork = async (networkId) => {
|
|
733
|
+
if (activeNetwork() === networkId) {
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
await manager().disconnect();
|
|
737
|
+
const {
|
|
738
|
+
token,
|
|
739
|
+
baseServer,
|
|
740
|
+
port,
|
|
741
|
+
headers
|
|
742
|
+
} = manager().networkConfig[networkId];
|
|
743
|
+
const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
|
|
744
|
+
setAlgodClient(newClient);
|
|
745
|
+
manager().algodClient = newClient;
|
|
746
|
+
manager().store.setState((state) => ({
|
|
747
|
+
...state,
|
|
748
|
+
activeNetwork: networkId
|
|
749
|
+
}));
|
|
750
|
+
};
|
|
751
|
+
const signTransactions = (txnGroup, indexesToSign) => {
|
|
744
752
|
const wallet = activeWallet();
|
|
745
753
|
if (!wallet) {
|
|
746
754
|
throw new Error("No active wallet");
|
|
747
755
|
}
|
|
748
|
-
return wallet.signTransactions(txnGroup, indexesToSign
|
|
756
|
+
return wallet.signTransactions(txnGroup, indexesToSign);
|
|
749
757
|
};
|
|
750
758
|
const transactionSigner = (txnGroup, indexesToSign) => {
|
|
751
759
|
const wallet = activeWallet();
|
|
@@ -768,10 +776,11 @@ function useWallet() {
|
|
|
768
776
|
isWalletActive,
|
|
769
777
|
isWalletConnected,
|
|
770
778
|
setActiveNetwork,
|
|
779
|
+
setAlgodClient,
|
|
771
780
|
signTransactions,
|
|
772
781
|
transactionSigner,
|
|
773
782
|
wallets: manager().wallets
|
|
774
783
|
};
|
|
775
784
|
}
|
|
776
785
|
|
|
777
|
-
export { WalletProvider, useWallet };
|
|
786
|
+
export { WalletProvider, useWallet, useWalletManager };
|
package/dist/index.jsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/index.tsx
|
|
2
|
-
|
|
2
|
+
import { useStore } from "@tanstack/solid-store";
|
|
3
|
+
import algosdk from "algosdk";
|
|
3
4
|
|
|
4
5
|
// ../../node_modules/.pnpm/solid-js@1.8.16/node_modules/solid-js/dist/solid.js
|
|
5
6
|
var sharedConfig = {
|
|
@@ -637,7 +638,8 @@ function createProvider(id, options) {
|
|
|
637
638
|
var FALLBACK = Symbol("fallback");
|
|
638
639
|
var SuspenseListContext = createContext();
|
|
639
640
|
|
|
640
|
-
// src/
|
|
641
|
+
// src/index.tsx
|
|
642
|
+
export * from "@txnlab/use-wallet";
|
|
641
643
|
var WalletContext = createContext();
|
|
642
644
|
var WalletProvider = (props) => {
|
|
643
645
|
const store = () => props.manager;
|
|
@@ -656,18 +658,12 @@ var useWalletManager = () => {
|
|
|
656
658
|
}
|
|
657
659
|
return manager();
|
|
658
660
|
};
|
|
659
|
-
|
|
660
|
-
// src/useWallet.ts
|
|
661
|
-
import { useStore } from "@tanstack/solid-store";
|
|
662
661
|
function useWallet() {
|
|
663
662
|
const manager = createMemo(() => useWalletManager());
|
|
664
|
-
const
|
|
665
|
-
|
|
666
|
-
});
|
|
663
|
+
const [algodClient, setAlgodClient] = createSignal(manager().algodClient);
|
|
664
|
+
const walletStore = useStore(manager().store, (state) => state.wallets);
|
|
667
665
|
const walletState = (walletId) => walletStore()[walletId] || null;
|
|
668
|
-
const activeWalletId = useStore(manager().store, (state) =>
|
|
669
|
-
return state.activeWallet;
|
|
670
|
-
});
|
|
666
|
+
const activeWalletId = useStore(manager().store, (state) => state.activeWallet);
|
|
671
667
|
const activeWallet = () => manager().getWallet(activeWalletId()) || null;
|
|
672
668
|
const activeWalletState = () => walletState(activeWalletId());
|
|
673
669
|
const activeWalletAccounts = () => activeWalletState()?.accounts ?? null;
|
|
@@ -676,18 +672,27 @@ function useWallet() {
|
|
|
676
672
|
const activeAddress = () => activeAccount()?.address ?? null;
|
|
677
673
|
const isWalletActive = (walletId) => walletId === activeWalletId();
|
|
678
674
|
const isWalletConnected = (walletId) => !!walletState(walletId)?.accounts.length || false;
|
|
679
|
-
const
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
675
|
+
const activeNetwork = useStore(manager().store, (state) => state.activeNetwork);
|
|
676
|
+
const setActiveNetwork = async (networkId) => {
|
|
677
|
+
if (activeNetwork() === networkId) {
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
680
|
+
await manager().disconnect();
|
|
681
|
+
const { token, baseServer, port, headers } = manager().networkConfig[networkId];
|
|
682
|
+
const newClient = new algosdk.Algodv2(token, baseServer, port, headers);
|
|
683
|
+
setAlgodClient(newClient);
|
|
684
|
+
manager().algodClient = newClient;
|
|
685
|
+
manager().store.setState((state) => ({
|
|
686
|
+
...state,
|
|
687
|
+
activeNetwork: networkId
|
|
688
|
+
}));
|
|
689
|
+
};
|
|
690
|
+
const signTransactions = (txnGroup, indexesToSign) => {
|
|
686
691
|
const wallet = activeWallet();
|
|
687
692
|
if (!wallet) {
|
|
688
693
|
throw new Error("No active wallet");
|
|
689
694
|
}
|
|
690
|
-
return wallet.signTransactions(txnGroup, indexesToSign
|
|
695
|
+
return wallet.signTransactions(txnGroup, indexesToSign);
|
|
691
696
|
};
|
|
692
697
|
const transactionSigner = (txnGroup, indexesToSign) => {
|
|
693
698
|
const wallet = activeWallet();
|
|
@@ -710,6 +715,7 @@ function useWallet() {
|
|
|
710
715
|
isWalletActive,
|
|
711
716
|
isWalletConnected,
|
|
712
717
|
setActiveNetwork,
|
|
718
|
+
setAlgodClient,
|
|
713
719
|
signTransactions,
|
|
714
720
|
transactionSigner,
|
|
715
721
|
wallets: manager().wallets
|
|
@@ -717,5 +723,6 @@ function useWallet() {
|
|
|
717
723
|
}
|
|
718
724
|
export {
|
|
719
725
|
WalletProvider,
|
|
720
|
-
useWallet
|
|
726
|
+
useWallet,
|
|
727
|
+
useWalletManager
|
|
721
728
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@txnlab/use-wallet-solid",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-rc.2",
|
|
4
4
|
"description": "Solid.js library for integrating Algorand wallets into decentralized applications",
|
|
5
5
|
"author": "Doug Richar <drichar@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
],
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@tanstack/solid-store": "0.4.1",
|
|
57
|
-
"@txnlab/use-wallet": "3.0.0-
|
|
57
|
+
"@txnlab/use-wallet": "3.0.0-rc.2"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@solidjs/testing-library": "^0.8.5",
|
|
@@ -66,16 +66,25 @@
|
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"@blockshake/defly-connect": "^1.1.6",
|
|
69
|
+
"@magic-ext/algorand": "^23.0.2",
|
|
70
|
+
"@perawallet/connect": "^1.3.4",
|
|
69
71
|
"@perawallet/connect-beta": "^2.0.11",
|
|
70
72
|
"@walletconnect/modal": "^2.6.2",
|
|
71
73
|
"@walletconnect/sign-client": "^2.10.2",
|
|
72
74
|
"algosdk": "^2.7.0",
|
|
73
|
-
"lute-connect": "^1.2.0"
|
|
75
|
+
"lute-connect": "^1.2.0",
|
|
76
|
+
"magic-sdk": "^28.0.3"
|
|
74
77
|
},
|
|
75
78
|
"peerDependenciesMeta": {
|
|
76
79
|
"@blockshake/defly-connect": {
|
|
77
80
|
"optional": true
|
|
78
81
|
},
|
|
82
|
+
"@magic-ext/algorand": {
|
|
83
|
+
"optional": true
|
|
84
|
+
},
|
|
85
|
+
"@perawallet/connect": {
|
|
86
|
+
"optional": true
|
|
87
|
+
},
|
|
79
88
|
"@perawallet/connect-beta": {
|
|
80
89
|
"optional": true
|
|
81
90
|
},
|
|
@@ -87,6 +96,9 @@
|
|
|
87
96
|
},
|
|
88
97
|
"lute-connect": {
|
|
89
98
|
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"magic-sdk": {
|
|
101
|
+
"optional": true
|
|
90
102
|
}
|
|
91
103
|
},
|
|
92
104
|
"browser": {},
|