@interchain-kit/react 0.3.19 → 0.3.20

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.
@@ -41,7 +41,66 @@ export const createInterchainStore = (walletManager) => {
41
41
  },
42
42
  createStatefulWallet: () => {
43
43
  const wallets = walletManager.wallets.map(wallet => {
44
- decorateWallet(wallet, {
44
+ // safeStrictBatchPatch(wallet, {
45
+ // connect: async (original, chainId) => {
46
+ // const walletName = wallet.info.name
47
+ // const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName
48
+ // const state = get().getChainWalletState(walletName, chainName)?.walletState
49
+ // if (state === WalletState.NotExist) {
50
+ // return
51
+ // }
52
+ // if (walletName === 'WalletConnect' && state === WalletState.Connected) {
53
+ // return
54
+ // }
55
+ // set(draft => {
56
+ // draft.currentChainName = chainName
57
+ // draft.currentWalletName = walletName
58
+ // draft.walletConnectQRCodeUri = ''
59
+ // })
60
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Connecting, errorMessage: '' })
61
+ // try {
62
+ // if (wallet instanceof WCWallet) {
63
+ // wallet.setOnPairingUriCreatedCallback((uri) => {
64
+ // set(draft => {
65
+ // draft.walletConnectQRCodeUri = uri
66
+ // })
67
+ // })
68
+ // }
69
+ // await original(chainId)
70
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Connected })
71
+ // await get().getAccount(walletName, chainName)
72
+ // } catch (error) {
73
+ // if ((error as any).message === 'Request rejected') {
74
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Rejected, errorMessage: (error as any).message })
75
+ // return
76
+ // }
77
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Disconnected, errorMessage: (error as any).message })
78
+ // }
79
+ // },
80
+ // disconnect: async (original, chainId) => {
81
+ // const walletName = wallet.info.name
82
+ // const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName
83
+ // try {
84
+ // await original(chainId)
85
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Disconnected, account: null })
86
+ // } catch (error) {
87
+ // }
88
+ // },
89
+ // getAccount: async (original, chainId) => {
90
+ // const walletName = wallet.info.name
91
+ // const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName
92
+ // try {
93
+ // const account = await original(chainId)
94
+ // get().updateChainWalletState(walletName, chainName, { account })
95
+ // return account
96
+ // } catch (error) {
97
+ // console.log(error)
98
+ // }
99
+ // },
100
+ // walletState: get().getChainWalletState(wallet.info.name, walletManager.chains?.[0].chainName)?.walletState || WalletState.Disconnected
101
+ // })
102
+ // return wallet
103
+ return decorateWallet(wallet, {
45
104
  connect: async (chainId) => {
46
105
  const walletName = wallet.info.name;
47
106
  const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName;
@@ -100,9 +159,8 @@ export const createInterchainStore = (walletManager) => {
100
159
  console.log(error);
101
160
  }
102
161
  },
103
- walletState: get().chainWalletState.find(cws => cws.walletName === wallet.info.name && cws.chainName === get().currentChainName)?.walletState || WalletState.Disconnected,
162
+ walletState: get().getChainWalletState(wallet.info.name, walletManager.chains?.[0].chainName)?.walletState || WalletState.Disconnected
104
163
  });
105
- return wallet;
106
164
  });
107
165
  set(draft => {
108
166
  draft.wallets = wallets;
@@ -2,13 +2,20 @@ export const decorateWallet = (wallet, decorateMethods) => {
2
2
  return new Proxy(wallet, {
3
3
  get(target, prop, receiver) {
4
4
  if (prop in decorateMethods) {
5
- const method = decorateMethods[prop];
6
- if (typeof method === "function") {
7
- return method.bind(target);
5
+ const value = decorateMethods[prop];
6
+ if (typeof value === "function") {
7
+ return value.bind(target);
8
8
  }
9
- return method;
9
+ return value;
10
10
  }
11
11
  return Reflect.get(target, prop, receiver);
12
12
  },
13
+ set(target, prop, value, receiver) {
14
+ if (prop in decorateMethods) {
15
+ decorateMethods[prop] = value;
16
+ return true;
17
+ }
18
+ return Reflect.set(target, prop, value, receiver);
19
+ },
13
20
  });
14
21
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interchain-kit/react",
3
- "version": "0.3.19",
3
+ "version": "0.3.20",
4
4
  "author": "Hyperweb <developers@hyperweb.io>",
5
5
  "description": "interchain-kit wallet connector react package",
6
6
  "main": "index.js",
@@ -34,7 +34,7 @@
34
34
  "keywords": [],
35
35
  "dependencies": {
36
36
  "@chain-registry/v2-types": "^0.53.40",
37
- "@interchain-kit/core": "0.3.19",
37
+ "@interchain-kit/core": "^0.3.20",
38
38
  "@interchain-ui/react": "1.26.1",
39
39
  "@interchainjs/cosmos": "1.11.9",
40
40
  "@interchainjs/cosmos-types": "1.11.9",
@@ -64,5 +64,5 @@
64
64
  "react": "^19.0.0",
65
65
  "react-dom": "^19.0.0"
66
66
  },
67
- "gitHead": "ac174d991823da57deca18cb47e79730a80e3706"
67
+ "gitHead": "dff9d352f8545f3106e72009101ccd581d7c6f4d"
68
68
  }
package/store/store.js CHANGED
@@ -44,7 +44,66 @@ const createInterchainStore = (walletManager) => {
44
44
  },
45
45
  createStatefulWallet: () => {
46
46
  const wallets = walletManager.wallets.map(wallet => {
47
- (0, decorateWallet_1.decorateWallet)(wallet, {
47
+ // safeStrictBatchPatch(wallet, {
48
+ // connect: async (original, chainId) => {
49
+ // const walletName = wallet.info.name
50
+ // const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName
51
+ // const state = get().getChainWalletState(walletName, chainName)?.walletState
52
+ // if (state === WalletState.NotExist) {
53
+ // return
54
+ // }
55
+ // if (walletName === 'WalletConnect' && state === WalletState.Connected) {
56
+ // return
57
+ // }
58
+ // set(draft => {
59
+ // draft.currentChainName = chainName
60
+ // draft.currentWalletName = walletName
61
+ // draft.walletConnectQRCodeUri = ''
62
+ // })
63
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Connecting, errorMessage: '' })
64
+ // try {
65
+ // if (wallet instanceof WCWallet) {
66
+ // wallet.setOnPairingUriCreatedCallback((uri) => {
67
+ // set(draft => {
68
+ // draft.walletConnectQRCodeUri = uri
69
+ // })
70
+ // })
71
+ // }
72
+ // await original(chainId)
73
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Connected })
74
+ // await get().getAccount(walletName, chainName)
75
+ // } catch (error) {
76
+ // if ((error as any).message === 'Request rejected') {
77
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Rejected, errorMessage: (error as any).message })
78
+ // return
79
+ // }
80
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Disconnected, errorMessage: (error as any).message })
81
+ // }
82
+ // },
83
+ // disconnect: async (original, chainId) => {
84
+ // const walletName = wallet.info.name
85
+ // const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName
86
+ // try {
87
+ // await original(chainId)
88
+ // get().updateChainWalletState(walletName, chainName, { walletState: WalletState.Disconnected, account: null })
89
+ // } catch (error) {
90
+ // }
91
+ // },
92
+ // getAccount: async (original, chainId) => {
93
+ // const walletName = wallet.info.name
94
+ // const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName
95
+ // try {
96
+ // const account = await original(chainId)
97
+ // get().updateChainWalletState(walletName, chainName, { account })
98
+ // return account
99
+ // } catch (error) {
100
+ // console.log(error)
101
+ // }
102
+ // },
103
+ // walletState: get().getChainWalletState(wallet.info.name, walletManager.chains?.[0].chainName)?.walletState || WalletState.Disconnected
104
+ // })
105
+ // return wallet
106
+ return (0, decorateWallet_1.decorateWallet)(wallet, {
48
107
  connect: async (chainId) => {
49
108
  const walletName = wallet.info.name;
50
109
  const chainName = get().chains.find(chain => chain.chainId === chainId)?.chainName;
@@ -103,9 +162,8 @@ const createInterchainStore = (walletManager) => {
103
162
  console.log(error);
104
163
  }
105
164
  },
106
- walletState: get().chainWalletState.find(cws => cws.walletName === wallet.info.name && cws.chainName === get().currentChainName)?.walletState || core_1.WalletState.Disconnected,
165
+ walletState: get().getChainWalletState(wallet.info.name, walletManager.chains?.[0].chainName)?.walletState || core_1.WalletState.Disconnected
107
166
  });
108
- return wallet;
109
167
  });
110
168
  set(draft => {
111
169
  draft.wallets = wallets;
@@ -5,14 +5,21 @@ const decorateWallet = (wallet, decorateMethods) => {
5
5
  return new Proxy(wallet, {
6
6
  get(target, prop, receiver) {
7
7
  if (prop in decorateMethods) {
8
- const method = decorateMethods[prop];
9
- if (typeof method === "function") {
10
- return method.bind(target);
8
+ const value = decorateMethods[prop];
9
+ if (typeof value === "function") {
10
+ return value.bind(target);
11
11
  }
12
- return method;
12
+ return value;
13
13
  }
14
14
  return Reflect.get(target, prop, receiver);
15
15
  },
16
+ set(target, prop, value, receiver) {
17
+ if (prop in decorateMethods) {
18
+ decorateMethods[prop] = value;
19
+ return true;
20
+ }
21
+ return Reflect.set(target, prop, value, receiver);
22
+ },
16
23
  });
17
24
  };
18
25
  exports.decorateWallet = decorateWallet;