@sundaeswap/wallet-lite 0.0.73 → 0.0.75

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.
Files changed (32) hide show
  1. package/dist/cjs/@types/observer.js.map +1 -1
  2. package/dist/cjs/classes/WalletObserver.class.js +100 -64
  3. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  4. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +44 -43
  5. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  6. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  7. package/dist/cjs/react-components/hooks/useWalletObserver.js +12 -11
  8. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  9. package/dist/esm/@types/observer.js.map +1 -1
  10. package/dist/esm/classes/WalletObserver.class.js +24 -2
  11. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  12. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +24 -28
  13. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  14. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  15. package/dist/esm/react-components/hooks/useWalletObserver.js +12 -11
  16. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  17. package/dist/types/@types/observer.d.ts +1 -0
  18. package/dist/types/@types/observer.d.ts.map +1 -1
  19. package/dist/types/classes/WalletObserver.class.d.ts +6 -0
  20. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  21. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +17 -15
  22. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  23. package/dist/types/react-components/contexts/observer/types.d.ts +1 -1
  24. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  25. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  26. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +2 -2
  28. package/src/@types/observer.ts +1 -0
  29. package/src/classes/WalletObserver.class.ts +31 -1
  30. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +27 -28
  31. package/src/react-components/contexts/observer/types.ts +1 -0
  32. package/src/react-components/hooks/useWalletObserver.ts +22 -20
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sundaeswap/wallet-lite",
3
- "version": "0.0.73",
3
+ "version": "0.0.75",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -38,7 +38,7 @@
38
38
  "@babel/cli": "^7.24.7",
39
39
  "@fabianbormann/cardano-peer-connect": "^1.2.17",
40
40
  "@koralabs/adahandle-sdk": "^1.5.5",
41
- "@sundaeswap/asset": "^1.0.6",
41
+ "@sundaeswap/asset": "^1.0.7",
42
42
  "@sundaeswap/fraction": "1.0.5",
43
43
  "rxjs": "^7.8.1"
44
44
  },
@@ -99,4 +99,5 @@ export interface IWalletObserverSync<
99
99
  utxos?: Error | TransactionUnspentOutput[];
100
100
  collateral?: Error | TransactionUnspentOutput[];
101
101
  network: Error | number;
102
+ feeAddress?: Error | string;
102
103
  }
@@ -148,21 +148,24 @@ export class WalletObserver<
148
148
  newUnusedAddresses,
149
149
  newOutputs,
150
150
  newCollateral,
151
+ newFeeAddress,
151
152
  ] = await Promise.all([
152
153
  this.getBalanceMap(),
153
154
  this.getUsedAddresses(),
154
155
  this.getUnusedAddresses(),
155
156
  this.getUtxos(),
156
157
  this.getCollateral(),
158
+ this.getFeeAddress(),
157
159
  ]);
158
160
 
159
- const result = {
161
+ const result: IWalletObserverSync<AssetMetadata> = {
160
162
  balanceMap: newBalanceMap,
161
163
  usedAddresses: newUsedAddresses,
162
164
  unusedAddresses: newUnusedAddresses,
163
165
  utxos: newOutputs,
164
166
  collateral: newCollateral,
165
167
  network: newNetwork,
168
+ feeAddress: newFeeAddress,
166
169
  };
167
170
 
168
171
  const end = performance.now();
@@ -582,6 +585,33 @@ export class WalletObserver<
582
585
  return data;
583
586
  };
584
587
 
588
+ /**
589
+ * Gets the fee address set by the wallet, if available.
590
+ *
591
+ * @returns {Promise<string | Error | undefined>} The fee address or an Error.
592
+ */
593
+ getFeeAddress = async (): Promise<string | Error | undefined> => {
594
+ if (!this.api) {
595
+ throw new Error(
596
+ "Attempted to query fee address without an API instance.",
597
+ );
598
+ }
599
+
600
+ const start = performance.now();
601
+ try {
602
+ const address = this.api.experimental?.feeAddress();
603
+ const end = performance.now();
604
+
605
+ if (this._options.debug) {
606
+ console.log(`getFeeAddress: ${end - start}ms`);
607
+ }
608
+
609
+ return address;
610
+ } catch (e) {
611
+ return e as Error;
612
+ }
613
+ };
614
+
585
615
  /**
586
616
  * Gets a list of wallet UTXOs suitable for collateral.
587
617
  *
@@ -28,6 +28,7 @@ export const useWalletObserverState = <
28
28
  const [network, setNetwork] = useState<number | undefined>();
29
29
  const [usedAddresses, setUsedAddresses] = useState<string[]>([]);
30
30
  const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);
31
+ const [feeAddress, setFeeAddress] = useState<string | undefined>();
31
32
  const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();
32
33
  const [collateral, setCollateral] = useState<TransactionUnspentOutput[]>();
33
34
  const [isCip45, setIsCip45] = useState(false);
@@ -54,6 +55,7 @@ export const useWalletObserverState = <
54
55
  setNetwork(undefined);
55
56
  setUtxos(undefined);
56
57
  setCollateral(undefined);
58
+ setFeeAddress(undefined);
57
59
  setIsCip45(false);
58
60
  setWillAutoConnect(false);
59
61
  }, [observer]);
@@ -94,8 +96,6 @@ export const useWalletObserverState = <
94
96
  : newBalanceMap,
95
97
  );
96
98
  }
97
- } else {
98
- setErrorSyncing(true);
99
99
  }
100
100
 
101
101
  const newUsedAddresses = freshData.usedAddresses;
@@ -106,8 +106,6 @@ export const useWalletObserverState = <
106
106
  ? prevValue
107
107
  : newUsedAddresses;
108
108
  });
109
- } else {
110
- setErrorSyncing(true);
111
109
  }
112
110
 
113
111
  const newUnusedAddresses = freshData.unusedAddresses;
@@ -117,8 +115,6 @@ export const useWalletObserverState = <
117
115
  ? prevValue
118
116
  : newUnusedAddresses,
119
117
  );
120
- } else {
121
- setErrorSyncing(true);
122
118
  }
123
119
 
124
120
  const newNetwork = freshData.network;
@@ -126,8 +122,6 @@ export const useWalletObserverState = <
126
122
  setNetwork((prevValue) =>
127
123
  prevValue === newNetwork ? prevValue : newNetwork,
128
124
  );
129
- } else {
130
- setErrorSyncing(true);
131
125
  }
132
126
 
133
127
  const newUtxos = freshData.utxos;
@@ -141,8 +135,6 @@ export const useWalletObserverState = <
141
135
 
142
136
  return prevValue;
143
137
  });
144
- } else {
145
- setErrorSyncing(true);
146
138
  }
147
139
 
148
140
  const newCollateral = freshData.collateral;
@@ -156,14 +148,19 @@ export const useWalletObserverState = <
156
148
 
157
149
  return prevValue;
158
150
  });
159
- } else {
160
- setErrorSyncing(true);
151
+ }
152
+
153
+ const newFeeAddress = freshData.feeAddress;
154
+ if (typeof newFeeAddress === "string") {
155
+ setFeeAddress((prevValue) =>
156
+ prevValue === newFeeAddress ? prevValue : newFeeAddress,
157
+ );
161
158
  }
162
159
  });
163
160
  } catch (e) {
164
161
  setErrorSyncing(true);
165
162
  (e as Error).cause =
166
- "The wallet through an error while the app was trying to sync with it. Please try again or contact your wallet provider.";
163
+ "The wallet threw an error while the app was trying to sync with it. Please try again or contact your wallet provider.";
167
164
  throw e;
168
165
  }
169
166
  }, [observer, disconnect]);
@@ -195,30 +192,32 @@ export const useWalletObserverState = <
195
192
 
196
193
  return {
197
194
  activeWallet,
198
- setActiveWallet,
199
195
  adaBalance,
200
- setAdaBalance,
201
196
  balance,
202
- setBalance,
197
+ collateral,
198
+ connectWallet,
199
+ disconnect,
200
+ errorSyncing,
201
+ feeAddress,
203
202
  isCip45,
204
- setIsCip45,
203
+ isPending,
205
204
  network,
205
+ setActiveWallet,
206
+ setAdaBalance,
207
+ setBalance,
208
+ setCollateral,
209
+ setFeeAddress,
210
+ setIsCip45,
206
211
  setNetwork,
207
- unusedAddresses,
212
+ setSwitching,
208
213
  setUnusedAddresses,
209
- usedAddresses,
210
214
  setUsedAddresses,
211
- utxos,
212
215
  setUtxos,
213
- collateral,
214
- setCollateral,
215
- syncWallet,
216
- disconnect,
217
- connectWallet,
218
216
  switching,
219
- errorSyncing,
220
- setSwitching,
221
- isPending,
217
+ syncWallet,
218
+ unusedAddresses,
219
+ usedAddresses,
220
+ utxos,
222
221
  willAutoConnect,
223
222
  };
224
223
  };
@@ -84,4 +84,5 @@ export type TUseWalletObserverState<
84
84
  | "setIsCip45"
85
85
  | "setUtxos"
86
86
  | "setCollateral"
87
+ | "setFeeAddress"
87
88
  >;
@@ -24,46 +24,48 @@ export const useWalletObserver = <
24
24
  "ready" | "connectingWallet" | "syncingWallet"
25
25
  > = useMemo(
26
26
  () => ({
27
- isCip45: state.isCip45,
28
27
  activeWallet: state.activeWallet,
29
28
  adaBalance: state.adaBalance,
30
29
  balance: state.balance,
30
+ collateral: state.collateral,
31
+ connectWallet: state.connectWallet,
32
+ disconnect: state.disconnect,
33
+ errorSyncing: state.errorSyncing,
34
+ feeAddress: state.feeAddress,
35
+ isCip45: state.isCip45,
36
+ isPending: state.isPending,
31
37
  mainAddress: state.mainAddress,
32
- stakeAddress: state.stakeAddress,
33
38
  network: state.network,
34
- utxos: state.utxos,
35
- collateral: state.collateral,
36
39
  observer: state.observer,
40
+ stakeAddress: state.stakeAddress,
41
+ switching: state.switching,
42
+ syncWallet: state.syncWallet,
37
43
  unusedAddresses: state.unusedAddresses,
38
44
  usedAddresses: state.usedAddresses,
39
- syncWallet: state.syncWallet,
40
- disconnect: state.disconnect,
41
- connectWallet: state.connectWallet,
42
- switching: state.switching,
43
- errorSyncing: state.errorSyncing,
44
- isPending: state.isPending,
45
+ utxos: state.utxos,
45
46
  willAutoConnect: state.willAutoConnect,
46
47
  }),
47
48
  [
48
- state.isCip45,
49
49
  state.activeWallet,
50
50
  state.adaBalance.amount,
51
51
  state.balance.size,
52
+ state.collateral,
53
+ state.connectWallet,
54
+ state.disconnect,
55
+ state.errorSyncing,
56
+ state.feeAddress,
57
+ state.isCip45,
58
+ state.isPending,
52
59
  state.mainAddress,
53
- state.stakeAddress,
54
60
  state.network,
55
- state.utxos,
56
- state.collateral,
57
61
  state.observer,
62
+ state.stakeAddress,
63
+ state.switching,
64
+ state.syncWallet,
58
65
  state.unusedAddresses,
59
66
  state.usedAddresses,
60
- state.syncWallet,
61
- state.disconnect,
62
- state.connectWallet,
63
- state.switching,
64
- state.isPending,
67
+ state.utxos,
65
68
  state.willAutoConnect,
66
- state.errorSyncing,
67
69
  ],
68
70
  );
69
71