@interchain-kit/react 0.2.207 → 0.2.211

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/store/index.d.ts CHANGED
@@ -1,43 +1,2 @@
1
- import { AssetList, Chain } from "@chain-registry/v2-types";
2
- import { BaseWallet, EndpointOptions, SignerOptions, WalletAccount, WalletManager, WalletState } from "@interchain-kit/core";
3
- import { HttpEndpoint } from '@interchainjs/types';
4
- type ChainWalletState = {
5
- chainName: string;
6
- walletName: string;
7
- walletState: WalletState;
8
- rpcEndpoint: string | HttpEndpoint;
9
- errorMessage: string;
10
- account: WalletAccount;
11
- };
12
- export interface InterchainStore extends WalletManager {
13
- chainWalletState: ChainWalletState[];
14
- currentWalletName: string;
15
- currentChainName: string;
16
- setCurrentChainName: (chainName: string) => void;
17
- setCurrentWalletName: (walletName: string) => void;
18
- getDraftChainWalletState: (state: InterchainStore, walletName: string, chainName: string) => ChainWalletState;
19
- getChainWalletState: (walletName: string, chainName: string) => ChainWalletState | undefined;
20
- updateChainWalletState: (walletName: string, chainName: string, data: Partial<ChainWalletState>) => void;
21
- }
22
- export type InterchainStoreData = {
23
- chains: Chain[];
24
- assetLists: AssetList[];
25
- wallets: BaseWallet[];
26
- signerOptions: SignerOptions;
27
- endpointOptions: EndpointOptions;
28
- };
29
- export declare const createInterchainStore: (walletManager: WalletManager) => Omit<Omit<import("zustand").StoreApi<InterchainStore>, "persist"> & {
30
- persist: {
31
- setOptions: (options: Partial<import("zustand/middleware").PersistOptions<InterchainStore, unknown>>) => void;
32
- clearStorage: () => void;
33
- rehydrate: () => Promise<void> | void;
34
- hasHydrated: () => boolean;
35
- onHydrate: (fn: (state: InterchainStore) => void) => () => void;
36
- onFinishHydration: (fn: (state: InterchainStore) => void) => () => void;
37
- getOptions: () => Partial<import("zustand/middleware").PersistOptions<InterchainStore, unknown>>;
38
- };
39
- }, "setState"> & {
40
- setState(nextStateOrUpdater: InterchainStore | Partial<InterchainStore> | ((state: import("immer").WritableDraft<InterchainStore>) => void), shouldReplace?: false): void;
41
- setState(nextStateOrUpdater: InterchainStore | ((state: import("immer").WritableDraft<InterchainStore>) => void), shouldReplace: true): void;
42
- };
43
- export {};
1
+ export * from './chain-wallet';
2
+ export * from './store';
package/store/index.js CHANGED
@@ -1,218 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createInterchainStore = void 0;
4
- const core_1 = require("@interchain-kit/core");
5
- const zustand_1 = require("zustand");
6
- const immer_1 = require("zustand/middleware/immer");
7
- const middleware_1 = require("zustand/middleware");
8
- const immerSyncUp = (newWalletManager) => {
9
- return (draft) => {
10
- draft.chains = newWalletManager.chains;
11
- draft.assetLists = newWalletManager.assetLists;
12
- draft.wallets = newWalletManager.wallets;
13
- draft.signerOptions = newWalletManager.signerOptions;
14
- draft.endpointOptions = newWalletManager.endpointOptions;
15
- draft.signerOptionMap = newWalletManager.signerOptionMap;
16
- draft.endpointOptionsMap = newWalletManager.endpointOptionsMap;
17
- draft.preferredSignTypeMap = newWalletManager.preferredSignTypeMap;
18
- };
19
- };
20
- const createInterchainStore = (walletManager) => {
21
- const { chains, assetLists, wallets, signerOptions, endpointOptions } = walletManager;
22
- // const walletManager = new WalletManager(chains, assetLists, wallets, signerOptions, endpointOptions)
23
- return (0, zustand_1.createStore)((0, middleware_1.persist)((0, immer_1.immer)((set, get) => ({
24
- chainWalletState: [],
25
- currentWalletName: '',
26
- currentChainName: '',
27
- chains: [...walletManager.chains],
28
- assetLists: [...walletManager.assetLists],
29
- wallets: walletManager.wallets,
30
- signerOptions: walletManager.signerOptions,
31
- endpointOptions: walletManager.endpointOptions,
32
- preferredSignTypeMap: { ...walletManager.preferredSignTypeMap },
33
- signerOptionMap: { ...walletManager.signerOptionMap },
34
- endpointOptionsMap: { ...walletManager.endpointOptionsMap },
35
- updateChainWalletState: (walletName, chainName, data) => {
36
- set(draft => {
37
- let targetIndex = draft.chainWalletState.findIndex(cws => cws.walletName === walletName && cws.chainName === chainName);
38
- draft.chainWalletState[targetIndex] = { ...draft.chainWalletState[targetIndex], ...data };
39
- });
40
- },
41
- init: async () => {
42
- const existedChainWalletStatesMap = new Map(get().chainWalletState.map(cws => [cws.walletName + cws.chainName, cws]));
43
- wallets.forEach(wallet => {
44
- chains.forEach(chain => {
45
- if (!existedChainWalletStatesMap.has(wallet.info.name + chain.chainName)) {
46
- set(draft => {
47
- draft.chainWalletState.push({
48
- chainName: chain.chainName,
49
- walletName: wallet.info.name,
50
- walletState: core_1.WalletState.Disconnected,
51
- rpcEndpoint: "",
52
- errorMessage: "",
53
- account: undefined
54
- });
55
- });
56
- }
57
- });
58
- });
59
- const NotExistWallets = [];
60
- await Promise.all(get().wallets.map(async (wallet) => {
61
- try {
62
- await wallet.init();
63
- }
64
- catch (error) {
65
- if (error === core_1.clientNotExistError.message) {
66
- NotExistWallets.push(wallet.info.name);
67
- }
68
- }
69
- }));
70
- set(draft => {
71
- draft.chainWalletState = draft.chainWalletState.map(cws => {
72
- if (NotExistWallets.includes(cws.walletName)) {
73
- return { ...cws, walletState: core_1.WalletState.NotExist };
74
- }
75
- return cws;
76
- });
77
- });
78
- // return walletManager.init()
79
- },
80
- setCurrentChainName: (chainName) => {
81
- set(draft => { draft.currentChainName = chainName; });
82
- },
83
- setCurrentWalletName: (walletName) => {
84
- set(draft => { draft.currentWalletName = walletName; });
85
- },
86
- getDraftChainWalletState: (state, walletName, chainName) => {
87
- const targetIndex = state.chainWalletState.findIndex(cws => cws.walletName === walletName && cws.chainName === chainName);
88
- return state.chainWalletState[targetIndex];
89
- },
90
- getChainWalletState: (walletName, chainName) => {
91
- return get().chainWalletState.find(cws => cws.walletName === walletName && cws.chainName === chainName);
92
- },
93
- addChains: (chains, assetLists, signerOptions, endpointOptions) => {
94
- walletManager.addChains(chains, assetLists, signerOptions, endpointOptions);
95
- // console.log(walletManager.chains, walletManager.assetLists)
96
- // set(immerSyncUp(walletManager))
97
- // set(draft => {
98
- // draft.chains = walletManager.chains
99
- // })
100
- set(draft => {
101
- chains.forEach(newChain => {
102
- const existChain = draft.chains.find(c => c.chainId === newChain.chainId);
103
- if (!existChain) {
104
- draft.chains.push(newChain);
105
- const assetList = assetLists.find(a => a.chainName === newChain.chainName);
106
- draft.assetLists.push(assetList);
107
- draft.wallets.forEach(w => {
108
- draft.chainWalletState.push({
109
- chainName: newChain.chainName,
110
- walletName: w.info.name,
111
- walletState: core_1.WalletState.Disconnected,
112
- rpcEndpoint: "",
113
- errorMessage: "",
114
- account: undefined
115
- });
116
- });
117
- }
118
- draft.signerOptionMap[newChain.chainName] = signerOptions?.signing?.(newChain.chainName);
119
- draft.endpointOptionsMap[newChain.chainName] = endpointOptions?.endpoints?.[newChain.chainName];
120
- });
121
- });
122
- },
123
- connect: async (walletName, chainName) => {
124
- get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Connecting });
125
- try {
126
- await walletManager.connect(walletName, chainName);
127
- set(draft => {
128
- draft.currentChainName = chainName;
129
- draft.currentWalletName = walletName;
130
- });
131
- get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Connected });
132
- }
133
- catch (error) {
134
- if (error.message === 'Request rejected') {
135
- get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Rejected, errorMessage: error.message });
136
- return;
137
- }
138
- get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Disconnected, errorMessage: error.message });
139
- }
140
- },
141
- disconnect: async (walletName, chainName) => {
142
- try {
143
- await walletManager.disconnect(walletName, chainName);
144
- get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Disconnected, account: null });
145
- }
146
- catch (error) {
147
- }
148
- },
149
- getAccount: async (walletName, chainName) => {
150
- const account = await walletManager.getAccount(walletName, chainName);
151
- get().updateChainWalletState(walletName, chainName, { account });
152
- return account;
153
- },
154
- getRpcEndpoint: async (walletName, chainName) => {
155
- const exist = get().getChainWalletState(walletName, chainName).rpcEndpoint;
156
- if (exist)
157
- return exist;
158
- const rpcEndpoint = await walletManager.getRpcEndpoint(walletName, chainName);
159
- get().updateChainWalletState(walletName, chainName, { rpcEndpoint });
160
- return rpcEndpoint;
161
- },
162
- getChainLogoUrl(chainName) {
163
- return walletManager.getChainLogoUrl(chainName);
164
- },
165
- getChainByName(chainName) {
166
- return walletManager.getChainByName(chainName);
167
- },
168
- getAssetListByName(chainName) {
169
- return walletManager.getAssetListByName(chainName);
170
- },
171
- getDownloadLink(walletName) {
172
- return walletManager.getDownloadLink(walletName);
173
- },
174
- getOfflineSigner(walletName, chainName) {
175
- return walletManager.getOfflineSigner(walletName, chainName);
176
- },
177
- getPreferSignType(chainName) {
178
- const result = walletManager.getPreferSignType(chainName);
179
- set(immerSyncUp(walletManager));
180
- return result;
181
- },
182
- getSignerOptions(chainName) {
183
- const result = walletManager.getSignerOptions(chainName);
184
- set(immerSyncUp(walletManager));
185
- return result;
186
- },
187
- getWalletByName(walletName) {
188
- return walletManager.getWalletByName(walletName);
189
- },
190
- getSigningClient(walletName, chainName) {
191
- return walletManager.getSigningClient(walletName, chainName);
192
- },
193
- getEnv() {
194
- return walletManager.getEnv();
195
- },
196
- })), {
197
- name: 'interchain-kit-store',
198
- storage: (0, middleware_1.createJSONStorage)(() => localStorage),
199
- partialize: state => ({
200
- chainWalletState: state.chainWalletState,
201
- currentWalletName: state.currentWalletName,
202
- currentChainName: state.currentChainName
203
- }),
204
- onRehydrateStorage: (state) => {
205
- console.log('interchain-kit store hydration starts');
206
- // optional
207
- return (state, error) => {
208
- if (error) {
209
- console.log('an error happened during hydration', error);
210
- }
211
- else {
212
- console.log('interchain-kit store hydration finished');
213
- }
214
- };
215
- },
216
- }));
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
217
15
  };
218
- exports.createInterchainStore = createInterchainStore;
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./chain-wallet"), exports);
18
+ __exportStar(require("./store"), exports);
@@ -0,0 +1,43 @@
1
+ import { AssetList, Chain } from "@chain-registry/v2-types";
2
+ import { BaseWallet, EndpointOptions, SignerOptions, WalletAccount, WalletManager, WalletState } from "@interchain-kit/core";
3
+ import { HttpEndpoint } from '@interchainjs/types';
4
+ export type ChainWalletState = {
5
+ chainName: string;
6
+ walletName: string;
7
+ walletState: WalletState;
8
+ rpcEndpoint: string | HttpEndpoint;
9
+ errorMessage: string;
10
+ account: WalletAccount;
11
+ };
12
+ export interface InterchainStore extends WalletManager {
13
+ chainWalletState: ChainWalletState[];
14
+ currentWalletName: string;
15
+ currentChainName: string;
16
+ walletConnectQRCodeUri: string;
17
+ setCurrentChainName: (chainName: string) => void;
18
+ setCurrentWalletName: (walletName: string) => void;
19
+ getDraftChainWalletState: (state: InterchainStore, walletName: string, chainName: string) => ChainWalletState;
20
+ getChainWalletState: (walletName: string, chainName: string) => ChainWalletState | undefined;
21
+ updateChainWalletState: (walletName: string, chainName: string, data: Partial<ChainWalletState>) => void;
22
+ }
23
+ export type InterchainStoreData = {
24
+ chains: Chain[];
25
+ assetLists: AssetList[];
26
+ wallets: BaseWallet[];
27
+ signerOptions: SignerOptions;
28
+ endpointOptions: EndpointOptions;
29
+ };
30
+ export declare const createInterchainStore: (walletManager: WalletManager) => Omit<Omit<import("zustand").StoreApi<InterchainStore>, "persist"> & {
31
+ persist: {
32
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<InterchainStore, unknown>>) => void;
33
+ clearStorage: () => void;
34
+ rehydrate: () => Promise<void> | void;
35
+ hasHydrated: () => boolean;
36
+ onHydrate: (fn: (state: InterchainStore) => void) => () => void;
37
+ onFinishHydration: (fn: (state: InterchainStore) => void) => () => void;
38
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<InterchainStore, unknown>>;
39
+ };
40
+ }, "setState"> & {
41
+ setState(nextStateOrUpdater: InterchainStore | Partial<InterchainStore> | ((state: import("immer").WritableDraft<InterchainStore>) => void), shouldReplace?: false): void;
42
+ setState(nextStateOrUpdater: InterchainStore | ((state: import("immer").WritableDraft<InterchainStore>) => void), shouldReplace: true): void;
43
+ };
package/store/store.js ADDED
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInterchainStore = void 0;
4
+ const core_1 = require("@interchain-kit/core");
5
+ const zustand_1 = require("zustand");
6
+ const immer_1 = require("zustand/middleware/immer");
7
+ const middleware_1 = require("zustand/middleware");
8
+ const immerSyncUp = (newWalletManager) => {
9
+ return (draft) => {
10
+ draft.chains = newWalletManager.chains;
11
+ draft.assetLists = newWalletManager.assetLists;
12
+ draft.wallets = newWalletManager.wallets;
13
+ draft.signerOptions = newWalletManager.signerOptions;
14
+ draft.endpointOptions = newWalletManager.endpointOptions;
15
+ draft.signerOptionMap = newWalletManager.signerOptionMap;
16
+ draft.endpointOptionsMap = newWalletManager.endpointOptionsMap;
17
+ draft.preferredSignTypeMap = newWalletManager.preferredSignTypeMap;
18
+ };
19
+ };
20
+ const createInterchainStore = (walletManager) => {
21
+ const { chains, assetLists, wallets, signerOptions, endpointOptions } = walletManager;
22
+ // const walletManager = new WalletManager(chains, assetLists, wallets, signerOptions, endpointOptions)
23
+ return (0, zustand_1.createStore)((0, middleware_1.persist)((0, immer_1.immer)((set, get) => ({
24
+ chainWalletState: [],
25
+ currentWalletName: '',
26
+ currentChainName: '',
27
+ chains: [...walletManager.chains],
28
+ assetLists: [...walletManager.assetLists],
29
+ wallets: walletManager.wallets,
30
+ signerOptions: walletManager.signerOptions,
31
+ endpointOptions: walletManager.endpointOptions,
32
+ preferredSignTypeMap: { ...walletManager.preferredSignTypeMap },
33
+ signerOptionMap: { ...walletManager.signerOptionMap },
34
+ endpointOptionsMap: { ...walletManager.endpointOptionsMap },
35
+ walletConnectQRCodeUri: '',
36
+ updateChainWalletState: (walletName, chainName, data) => {
37
+ set(draft => {
38
+ let targetIndex = draft.chainWalletState.findIndex(cws => cws.walletName === walletName && cws.chainName === chainName);
39
+ draft.chainWalletState[targetIndex] = { ...draft.chainWalletState[targetIndex], ...data };
40
+ });
41
+ },
42
+ init: async () => {
43
+ const existedChainWalletStatesMap = new Map(get().chainWalletState.map(cws => [cws.walletName + cws.chainName, cws]));
44
+ wallets.forEach(wallet => {
45
+ chains.forEach(chain => {
46
+ if (!existedChainWalletStatesMap.has(wallet.info.name + chain.chainName)) {
47
+ set(draft => {
48
+ draft.chainWalletState.push({
49
+ chainName: chain.chainName,
50
+ walletName: wallet.info.name,
51
+ walletState: core_1.WalletState.Disconnected,
52
+ rpcEndpoint: "",
53
+ errorMessage: "",
54
+ account: undefined
55
+ });
56
+ });
57
+ }
58
+ });
59
+ });
60
+ const NotExistWallets = [];
61
+ const ExistWallets = [];
62
+ await Promise.all(get().wallets.map(async (wallet) => {
63
+ try {
64
+ await wallet.init();
65
+ ExistWallets.push(wallet.info.name);
66
+ }
67
+ catch (error) {
68
+ if (error === core_1.clientNotExistError) {
69
+ NotExistWallets.push(wallet.info.name);
70
+ }
71
+ }
72
+ }));
73
+ set(draft => {
74
+ draft.chainWalletState = draft.chainWalletState.map(cws => {
75
+ if (NotExistWallets.includes(cws.walletName)) {
76
+ return { ...cws, walletState: core_1.WalletState.NotExist };
77
+ }
78
+ return cws;
79
+ });
80
+ draft.chainWalletState = draft.chainWalletState.map(cws => {
81
+ if (ExistWallets.includes(cws.walletName)) {
82
+ return { ...cws, walletState: cws.walletState === core_1.WalletState.NotExist ? core_1.WalletState.Disconnected : cws.walletState };
83
+ }
84
+ return cws;
85
+ });
86
+ });
87
+ },
88
+ setCurrentChainName: (chainName) => {
89
+ set(draft => { draft.currentChainName = chainName; });
90
+ },
91
+ setCurrentWalletName: (walletName) => {
92
+ set(draft => { draft.currentWalletName = walletName; });
93
+ },
94
+ getDraftChainWalletState: (state, walletName, chainName) => {
95
+ const targetIndex = state.chainWalletState.findIndex(cws => cws.walletName === walletName && cws.chainName === chainName);
96
+ return state.chainWalletState[targetIndex];
97
+ },
98
+ getChainWalletState: (walletName, chainName) => {
99
+ return get().chainWalletState.find(cws => cws.walletName === walletName && cws.chainName === chainName);
100
+ },
101
+ addChains: (chains, assetLists, signerOptions, endpointOptions) => {
102
+ walletManager.addChains(chains, assetLists, signerOptions, endpointOptions);
103
+ // console.log(walletManager.chains, walletManager.assetLists)
104
+ // set(immerSyncUp(walletManager))
105
+ // set(draft => {
106
+ // draft.chains = walletManager.chains
107
+ // })
108
+ set(draft => {
109
+ chains.forEach(newChain => {
110
+ const existChain = draft.chains.find(c => c.chainId === newChain.chainId);
111
+ if (!existChain) {
112
+ draft.chains.push(newChain);
113
+ const assetList = assetLists.find(a => a.chainName === newChain.chainName);
114
+ draft.assetLists.push(assetList);
115
+ draft.wallets.forEach(w => {
116
+ draft.chainWalletState.push({
117
+ chainName: newChain.chainName,
118
+ walletName: w.info.name,
119
+ walletState: core_1.WalletState.Disconnected,
120
+ rpcEndpoint: endpointOptions.endpoints[newChain.chainName]?.rpc?.[0] || '',
121
+ errorMessage: "",
122
+ account: undefined
123
+ });
124
+ });
125
+ }
126
+ draft.signerOptionMap[newChain.chainName] = signerOptions?.signing?.(newChain.chainName);
127
+ draft.endpointOptionsMap[newChain.chainName] = endpointOptions?.endpoints?.[newChain.chainName];
128
+ });
129
+ });
130
+ },
131
+ connect: async (walletName, chainName) => {
132
+ const state = get().getChainWalletState(walletName, chainName)?.walletState;
133
+ if (state === core_1.WalletState.NotExist) {
134
+ return;
135
+ }
136
+ if (walletName === 'WalletConnect' && state === core_1.WalletState.Connected) {
137
+ return;
138
+ }
139
+ set(draft => {
140
+ draft.currentChainName = chainName;
141
+ draft.currentWalletName = walletName;
142
+ draft.walletConnectQRCodeUri = '';
143
+ });
144
+ get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Connecting, errorMessage: '' });
145
+ try {
146
+ await walletManager.connect(walletName, chainName, (uri) => {
147
+ set(draft => {
148
+ draft.walletConnectQRCodeUri = uri;
149
+ });
150
+ });
151
+ get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Connected });
152
+ }
153
+ catch (error) {
154
+ if (error.message === 'Request rejected') {
155
+ get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Rejected, errorMessage: error.message });
156
+ return;
157
+ }
158
+ get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Disconnected, errorMessage: error.message });
159
+ }
160
+ },
161
+ disconnect: async (walletName, chainName) => {
162
+ try {
163
+ await walletManager.disconnect(walletName, chainName);
164
+ get().updateChainWalletState(walletName, chainName, { walletState: core_1.WalletState.Disconnected, account: null });
165
+ }
166
+ catch (error) {
167
+ }
168
+ },
169
+ getAccount: async (walletName, chainName) => {
170
+ const account = await walletManager.getAccount(walletName, chainName);
171
+ get().updateChainWalletState(walletName, chainName, { account });
172
+ return account;
173
+ },
174
+ getRpcEndpoint: async (walletName, chainName) => {
175
+ const exist = get().getChainWalletState(walletName, chainName).rpcEndpoint;
176
+ if (exist)
177
+ return exist;
178
+ const rpcEndpoint = await walletManager.getRpcEndpoint(walletName, chainName);
179
+ get().updateChainWalletState(walletName, chainName, { rpcEndpoint });
180
+ return rpcEndpoint;
181
+ },
182
+ getChainLogoUrl(chainName) {
183
+ return walletManager.getChainLogoUrl(chainName);
184
+ },
185
+ getChainByName(chainName) {
186
+ return walletManager.getChainByName(chainName);
187
+ },
188
+ getAssetListByName(chainName) {
189
+ return walletManager.getAssetListByName(chainName);
190
+ },
191
+ getDownloadLink(walletName) {
192
+ return walletManager.getDownloadLink(walletName);
193
+ },
194
+ getOfflineSigner(walletName, chainName) {
195
+ return walletManager.getOfflineSigner(walletName, chainName);
196
+ },
197
+ getPreferSignType(chainName) {
198
+ const result = walletManager.getPreferSignType(chainName);
199
+ set(immerSyncUp(walletManager));
200
+ return result;
201
+ },
202
+ getSignerOptions(chainName) {
203
+ const result = walletManager.getSignerOptions(chainName);
204
+ set(immerSyncUp(walletManager));
205
+ return result;
206
+ },
207
+ getWalletByName(walletName) {
208
+ return walletManager.getWalletByName(walletName);
209
+ },
210
+ getSigningClient(walletName, chainName) {
211
+ return walletManager.getSigningClient(walletName, chainName);
212
+ },
213
+ getEnv() {
214
+ return walletManager.getEnv();
215
+ },
216
+ })), {
217
+ name: 'interchain-kit-store',
218
+ storage: (0, middleware_1.createJSONStorage)(() => localStorage),
219
+ partialize: state => ({
220
+ chainWalletState: state.chainWalletState,
221
+ currentWalletName: state.currentWalletName,
222
+ currentChainName: state.currentChainName
223
+ }),
224
+ onRehydrateStorage: (state) => {
225
+ // console.log('interchain-kit store hydration starts')
226
+ // optional
227
+ return (state, error) => {
228
+ if (error) {
229
+ console.log('an error happened during hydration', error);
230
+ }
231
+ else {
232
+ // console.log('interchain-kit store hydration finished')
233
+ }
234
+ };
235
+ },
236
+ }));
237
+ };
238
+ exports.createInterchainStore = createInterchainStore;
package/utils/wallet.d.ts CHANGED
@@ -5,3 +5,29 @@ export declare const getWalletInfo: (wallet: BaseWallet) => {
5
5
  logo: string;
6
6
  mobileDisabled: boolean;
7
7
  };
8
+ export declare const transferToWalletUISchema: (w: BaseWallet) => {
9
+ name: string;
10
+ prettyName: string;
11
+ logo: string;
12
+ mobileDisabled: boolean;
13
+ shape: "list";
14
+ originalWallet: {
15
+ session: import("@walletconnect/types").SessionTypes.Struct;
16
+ info: import("@interchain-kit/core").Wallet;
17
+ errorMessage: string;
18
+ walletState: import("@interchain-kit/core").WalletState;
19
+ events: import("events")<import("@interchain-kit/core").WalletEvents>;
20
+ chainMap: Map<import("@chain-registry/v2-types").Chain["chainId"], import("@chain-registry/v2-types").Chain>;
21
+ assetLists: import("@chain-registry/v2-types").AssetList[];
22
+ client: any;
23
+ };
24
+ subLogo: string;
25
+ } | {
26
+ name: string;
27
+ prettyName: string;
28
+ logo: string;
29
+ mobileDisabled: boolean;
30
+ shape: "list";
31
+ originalWallet: BaseWallet;
32
+ subLogo?: undefined;
33
+ };
package/utils/wallet.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWalletInfo = void 0;
3
+ exports.transferToWalletUISchema = exports.getWalletInfo = void 0;
4
4
  const getWalletInfo = (wallet) => {
5
5
  return {
6
6
  name: wallet?.info?.name,
@@ -10,3 +10,28 @@ const getWalletInfo = (wallet) => {
10
10
  };
11
11
  };
12
12
  exports.getWalletInfo = getWalletInfo;
13
+ const transferToWalletUISchema = (w) => {
14
+ if (w.info.mode === "wallet-connect") {
15
+ const wc = w;
16
+ if (wc.session) {
17
+ return {
18
+ name: wc.session?.peer.metadata?.name,
19
+ prettyName: `${wc.session?.peer.metadata?.name} - Mobile`,
20
+ logo: wc.session?.peer.metadata?.icons?.[0],
21
+ mobileDisabled: true,
22
+ shape: "list",
23
+ originalWallet: { ...w, session: wc.session },
24
+ subLogo: w.info.logo,
25
+ };
26
+ }
27
+ }
28
+ return {
29
+ name: w.info.name,
30
+ prettyName: w.info.prettyName,
31
+ logo: w.info.logo,
32
+ mobileDisabled: true,
33
+ shape: "list",
34
+ originalWallet: w,
35
+ };
36
+ };
37
+ exports.transferToWalletUISchema = transferToWalletUISchema;