@sundaeswap/wallet-lite 0.0.67 → 0.0.69

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 (45) hide show
  1. package/dist/cjs/@types/events.js.map +1 -1
  2. package/dist/cjs/@types/observer.js.map +1 -1
  3. package/dist/cjs/classes/WalletObserver.class.js +212 -157
  4. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  5. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +2 -1
  6. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  7. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js +4 -7
  8. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  9. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +92 -50
  10. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  11. package/dist/cjs/react-components/hooks/useWalletObserver.js +2 -1
  12. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  13. package/dist/esm/@types/events.js.map +1 -1
  14. package/dist/esm/@types/observer.js.map +1 -1
  15. package/dist/esm/classes/WalletObserver.class.js +62 -26
  16. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  17. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +2 -1
  18. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  19. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js +4 -7
  20. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  21. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +66 -26
  22. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  23. package/dist/esm/react-components/hooks/useWalletObserver.js +2 -1
  24. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  25. package/dist/types/@types/events.d.ts +2 -6
  26. package/dist/types/@types/events.d.ts.map +1 -1
  27. package/dist/types/@types/observer.d.ts +6 -5
  28. package/dist/types/@types/observer.d.ts.map +1 -1
  29. package/dist/types/classes/WalletObserver.class.d.ts +9 -9
  30. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  31. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  32. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useDerivedState.d.ts +1 -1
  33. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useDerivedState.d.ts.map +1 -1
  34. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +2 -1
  35. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  36. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  37. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  38. package/package.json +3 -3
  39. package/src/@types/events.ts +2 -6
  40. package/src/@types/observer.ts +6 -5
  41. package/src/classes/WalletObserver.class.ts +83 -39
  42. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +1 -0
  43. package/src/react-components/WalletObserverProvider/hooks/effects/useDerivedState.ts +17 -9
  44. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +92 -53
  45. package/src/react-components/hooks/useWalletObserver.ts +2 -0
@@ -67,14 +67,18 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
67
67
  _useState20 = _slicedToArray(_useState19, 2),
68
68
  switching = _useState20[0],
69
69
  setSwitching = _useState20[1];
70
+ var _useState21 = (0, _react.useState)(false),
71
+ _useState22 = _slicedToArray(_useState21, 2),
72
+ errorSyncing = _useState22[0],
73
+ setErrorSyncing = _useState22[1];
70
74
  var _useTransition = (0, _react.useTransition)(),
71
75
  _useTransition2 = _slicedToArray(_useTransition, 2),
72
76
  isPending = _useTransition2[0],
73
77
  startTransition = _useTransition2[1];
74
- var _useState21 = (0, _react.useState)(Boolean(window.localStorage.getItem(_WalletObserverClass.WalletObserver.PERSISTENCE_CACHE_KEY) && observer.getOptions().persistence)),
75
- _useState22 = _slicedToArray(_useState21, 2),
76
- willAutoConnect = _useState22[0],
77
- setWillAutoConnect = _useState22[1];
78
+ var _useState23 = (0, _react.useState)(Boolean(window.localStorage.getItem(_WalletObserverClass.WalletObserver.PERSISTENCE_CACHE_KEY) && observer.getOptions().persistence)),
79
+ _useState24 = _slicedToArray(_useState23, 2),
80
+ willAutoConnect = _useState24[0],
81
+ setWillAutoConnect = _useState24[1];
78
82
  var disconnect = (0, _react.useCallback)(function () {
79
83
  // Reset observer state.
80
84
  observer.disconnect();
@@ -110,65 +114,102 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
110
114
  disconnect();
111
115
  return _context.abrupt("return");
112
116
  case 6:
113
- _context.next = 8;
117
+ setIsCip45(newWallet.includes("p2p"));
118
+ setActiveWallet(function (prevWallet) {
119
+ return newWallet === prevWallet ? prevWallet : newWallet;
120
+ });
121
+ _context.prev = 8;
122
+ _context.next = 11;
114
123
  return observer.sync();
115
- case 8:
124
+ case 11:
116
125
  freshData = _context.sent;
117
126
  startTransition(function () {
118
- setActiveWallet(function (prevWallet) {
119
- return newWallet === prevWallet ? prevWallet : newWallet;
120
- });
121
- var newAdaBalance = freshData.balanceMap.get(_constants.ADA_ASSET_ID);
122
- if (newAdaBalance) {
123
- setAdaBalance(function (prevBalance) {
124
- return prevBalance.amount === newAdaBalance.amount ? prevBalance : newAdaBalance;
127
+ var newBalanceMap = freshData.balanceMap;
128
+ if (newBalanceMap instanceof _WalletBalanceMapClass.WalletBalanceMap) {
129
+ var newAdaBalance = newBalanceMap.get(_constants.ADA_ASSET_ID);
130
+ if (newAdaBalance) {
131
+ setAdaBalance(function (prevBalance) {
132
+ return prevBalance.amount === newAdaBalance.amount ? prevBalance : newAdaBalance;
133
+ });
134
+ setBalance(function (prevBalance) {
135
+ return (0, _comparisons.areAssetMapsEqual)(prevBalance, newBalanceMap) ? prevBalance : newBalanceMap;
136
+ });
137
+ }
138
+ } else {
139
+ setErrorSyncing(true);
140
+ }
141
+ var newUsedAddresses = freshData.usedAddresses;
142
+ if (newUsedAddresses instanceof Array) {
143
+ setUsedAddresses(function (prevValue) {
144
+ return JSON.stringify(prevValue) === JSON.stringify(newUsedAddresses) ? prevValue : newUsedAddresses;
125
145
  });
146
+ } else {
147
+ setErrorSyncing(true);
126
148
  }
127
- setBalance(function (prevBalance) {
128
- return (0, _comparisons.areAssetMapsEqual)(prevBalance, freshData.balanceMap) ? prevBalance : freshData.balanceMap;
129
- });
130
- setUsedAddresses(function (prevValue) {
131
- return JSON.stringify(prevValue) === JSON.stringify(freshData.usedAddresses) ? prevValue : freshData.usedAddresses;
132
- });
133
- setUnusedAddresses(function (prevValue) {
134
- return JSON.stringify(prevValue) === JSON.stringify(freshData.unusedAddresses) ? prevValue : freshData.unusedAddresses;
135
- });
136
- setNetwork(function (prevValue) {
137
- return prevValue === freshData.network ? prevValue : freshData.network;
138
- });
139
- setUtxos(function (prevValue) {
140
- var _freshData$utxos;
141
- var prevValueRep = prevValue === null || prevValue === void 0 ? void 0 : prevValue.map(function (v) {
142
- return v.toCbor();
149
+ var newUnusedAddresses = freshData.unusedAddresses;
150
+ if (newUnusedAddresses instanceof Array) {
151
+ setUnusedAddresses(function (prevValue) {
152
+ return JSON.stringify(prevValue) === JSON.stringify(newUnusedAddresses) ? prevValue : newUnusedAddresses;
143
153
  });
144
- var newValueRep = (_freshData$utxos = freshData.utxos) === null || _freshData$utxos === void 0 ? void 0 : _freshData$utxos.map(function (v) {
145
- return v.toCbor();
154
+ } else {
155
+ setErrorSyncing(true);
156
+ }
157
+ var newNetwork = freshData.network;
158
+ if (typeof newNetwork === "number") {
159
+ setNetwork(function (prevValue) {
160
+ return prevValue === newNetwork ? prevValue : newNetwork;
146
161
  });
147
- if (prevValueRep !== newValueRep) {
148
- return freshData.utxos;
149
- }
150
- return prevValue;
151
- });
152
- setCollateral(function (prevValue) {
153
- var _freshData$utxos2;
154
- var prevValueRep = prevValue === null || prevValue === void 0 ? void 0 : prevValue.map(function (v) {
155
- return v.toCbor();
162
+ } else {
163
+ setErrorSyncing(true);
164
+ }
165
+ var newUtxos = freshData.utxos;
166
+ if (newUtxos instanceof Array) {
167
+ setUtxos(function (prevValue) {
168
+ var prevValueRep = prevValue === null || prevValue === void 0 ? void 0 : prevValue.map(function (v) {
169
+ return v.toCbor();
170
+ });
171
+ var newValueRep = newUtxos === null || newUtxos === void 0 ? void 0 : newUtxos.map(function (v) {
172
+ return v.toCbor();
173
+ });
174
+ if (prevValueRep !== newValueRep) {
175
+ return newUtxos;
176
+ }
177
+ return prevValue;
156
178
  });
157
- var newValueRep = (_freshData$utxos2 = freshData.utxos) === null || _freshData$utxos2 === void 0 ? void 0 : _freshData$utxos2.map(function (v) {
158
- return v.toCbor();
179
+ } else {
180
+ setErrorSyncing(true);
181
+ }
182
+ var newCollateral = freshData.collateral;
183
+ if (newCollateral instanceof Array) {
184
+ setCollateral(function (prevValue) {
185
+ var prevValueRep = prevValue === null || prevValue === void 0 ? void 0 : prevValue.map(function (v) {
186
+ return v.toCbor();
187
+ });
188
+ var newValueRep = newCollateral === null || newCollateral === void 0 ? void 0 : newCollateral.map(function (v) {
189
+ return v.toCbor();
190
+ });
191
+ if (prevValueRep !== newValueRep) {
192
+ return newCollateral;
193
+ }
194
+ return prevValue;
159
195
  });
160
- if (prevValueRep !== newValueRep) {
161
- return freshData.utxos;
162
- }
163
- return prevValue;
164
- });
165
- setIsCip45(newWallet.includes("p2p"));
196
+ } else {
197
+ setErrorSyncing(true);
198
+ }
166
199
  });
167
- case 10:
200
+ _context.next = 20;
201
+ break;
202
+ case 15:
203
+ _context.prev = 15;
204
+ _context.t0 = _context["catch"](8);
205
+ setErrorSyncing(true);
206
+ _context.t0.cause = "The wallet through an error while the app was trying to sync with it. Please try again or contact your wallet provider.";
207
+ throw _context.t0;
208
+ case 20:
168
209
  case "end":
169
210
  return _context.stop();
170
211
  }
171
- }, _callee);
212
+ }, _callee, null, [[8, 15]]);
172
213
  })), [observer, disconnect]);
173
214
  var connectWallet = (0, _react.useCallback)( /*#__PURE__*/function () {
174
215
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(wallet) {
@@ -233,6 +274,7 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
233
274
  disconnect: disconnect,
234
275
  connectWallet: connectWallet,
235
276
  switching: switching,
277
+ errorSyncing: errorSyncing,
236
278
  setSwitching: setSwitching,
237
279
  isPending: isPending,
238
280
  willAutoConnect: willAutoConnect
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserverState.js","names":["_asset","require","_react","_WalletBalanceMapClass","_WalletObserverClass","_constants","_comparisons","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","Array","from","test","isArray","useWalletObserverState","exports","observer","_useState","useState","_useState2","activeWallet","setActiveWallet","_useState3","AssetAmount","_useState4","adaBalance","setAdaBalance","_useState5","WalletBalanceMap","_useState6","balance","setBalance","_useState7","_useState8","network","setNetwork","_useState9","_useState10","usedAddresses","setUsedAddresses","_useState11","_useState12","unusedAddresses","setUnusedAddresses","_useState13","_useState14","utxos","setUtxos","_useState15","_useState16","collateral","setCollateral","_useState17","_useState18","isCip45","setIsCip45","_useState19","_useState20","switching","setSwitching","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState21","Boolean","window","localStorage","getItem","WalletObserver","PERSISTENCE_CACHE_KEY","getOptions","persistence","_useState22","willAutoConnect","setWillAutoConnect","disconnect","useCallback","undefined","syncWallet","_callee","newWallet","freshData","_callee$","_context","isSyncing","hasActiveConnection","sync","prevWallet","newAdaBalance","balanceMap","get","ADA_ASSET_ID","prevBalance","amount","areAssetMapsEqual","prevValue","JSON","stringify","_freshData$utxos","prevValueRep","map","toCbor","newValueRep","_freshData$utxos2","includes","connectWallet","_ref2","_callee2","wallet","_callee2$","_context2","api","_x","useEffect","addEventListener"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useCallback, useEffect, useState, useTransition } from \"react\";\n\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { ADA_ASSET_ID } from \"../../../constants.js\";\nimport { areAssetMapsEqual } from \"../../../utils/comparisons.js\";\n\n/**\n * Internal use only. The main action that sync WalletObserver api responses with\n * the React context of the WalletObserverProvider.\n *\n * @param {WalletObserver} observer\n */\nexport const useWalletObserverState = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(\n observer: WalletObserver<AssetMetadata>,\n) => {\n const [activeWallet, setActiveWallet] = useState<string>();\n const [adaBalance, setAdaBalance] = useState<AssetAmount<AssetMetadata>>(\n new AssetAmount<AssetMetadata>(0n),\n );\n const [balance, setBalance] = useState<WalletBalanceMap<AssetMetadata>>(\n new WalletBalanceMap<AssetMetadata>(observer),\n );\n const [network, setNetwork] = useState<number | undefined>();\n const [usedAddresses, setUsedAddresses] = useState<string[]>([]);\n const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);\n const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();\n const [collateral, setCollateral] = useState<TransactionUnspentOutput[]>();\n const [isCip45, setIsCip45] = useState(false);\n const [switching, setSwitching] = useState(false);\n const [isPending, startTransition] = useTransition();\n const [willAutoConnect, setWillAutoConnect] = useState(\n Boolean(\n window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY) &&\n observer.getOptions().persistence,\n ),\n );\n\n const disconnect = useCallback(() => {\n // Reset observer state.\n observer.disconnect();\n\n // Reset state.\n setAdaBalance(new AssetAmount(0n));\n setBalance(new WalletBalanceMap(observer));\n setUsedAddresses([]);\n setUnusedAddresses([]);\n setActiveWallet(undefined);\n setNetwork(undefined);\n setUtxos(undefined);\n setCollateral(undefined);\n setIsCip45(false);\n setWillAutoConnect(false);\n }, [observer]);\n\n const syncWallet = useCallback(async () => {\n if (observer.isSyncing() || !observer.hasActiveConnection()) {\n return;\n }\n\n const newWallet = observer.activeWallet;\n if (!newWallet) {\n disconnect();\n return;\n }\n\n const freshData = await observer.sync();\n\n startTransition(() => {\n setActiveWallet((prevWallet) =>\n newWallet === prevWallet ? prevWallet : newWallet,\n );\n\n const newAdaBalance = freshData.balanceMap.get(ADA_ASSET_ID);\n if (newAdaBalance) {\n setAdaBalance((prevBalance) =>\n prevBalance.amount === newAdaBalance.amount\n ? prevBalance\n : newAdaBalance,\n );\n }\n\n setBalance((prevBalance) =>\n areAssetMapsEqual(prevBalance, freshData.balanceMap)\n ? prevBalance\n : freshData.balanceMap,\n );\n\n setUsedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(freshData.usedAddresses)\n ? prevValue\n : freshData.usedAddresses,\n );\n\n setUnusedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(freshData.unusedAddresses)\n ? prevValue\n : freshData.unusedAddresses,\n );\n\n setNetwork((prevValue) =>\n prevValue === freshData.network ? prevValue : freshData.network,\n );\n\n setUtxos((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = freshData.utxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return freshData.utxos;\n }\n\n return prevValue;\n });\n\n setCollateral((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = freshData.utxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return freshData.utxos;\n }\n\n return prevValue;\n });\n\n setIsCip45(newWallet.includes(\"p2p\"));\n });\n }, [observer, disconnect]);\n\n const connectWallet = useCallback(\n async (wallet: string) => {\n if (observer.hasActiveConnection() && wallet !== observer.activeWallet) {\n setSwitching(() => true);\n }\n\n await observer.connectWallet(wallet);\n await syncWallet();\n setSwitching(() => false);\n return observer.api;\n },\n [observer, setSwitching],\n );\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", syncWallet);\n };\n }, [syncWallet]);\n\n return {\n activeWallet,\n setActiveWallet,\n adaBalance,\n setAdaBalance,\n balance,\n setBalance,\n isCip45,\n setIsCip45,\n network,\n setNetwork,\n unusedAddresses,\n setUnusedAddresses,\n usedAddresses,\n setUsedAddresses,\n utxos,\n setUtxos,\n collateral,\n setCollateral,\n syncWallet,\n disconnect,\n connectWallet,\n switching,\n setSwitching,\n isPending,\n willAutoConnect,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserverState.js","names":["_asset","require","_react","_WalletBalanceMapClass","_WalletObserverClass","_constants","_comparisons","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","Array","from","test","isArray","useWalletObserverState","exports","observer","_useState","useState","_useState2","activeWallet","setActiveWallet","_useState3","AssetAmount","_useState4","adaBalance","setAdaBalance","_useState5","WalletBalanceMap","_useState6","balance","setBalance","_useState7","_useState8","network","setNetwork","_useState9","_useState10","usedAddresses","setUsedAddresses","_useState11","_useState12","unusedAddresses","setUnusedAddresses","_useState13","_useState14","utxos","setUtxos","_useState15","_useState16","collateral","setCollateral","_useState17","_useState18","isCip45","setIsCip45","_useState19","_useState20","switching","setSwitching","_useState21","_useState22","errorSyncing","setErrorSyncing","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState23","Boolean","window","localStorage","getItem","WalletObserver","PERSISTENCE_CACHE_KEY","getOptions","persistence","_useState24","willAutoConnect","setWillAutoConnect","disconnect","useCallback","undefined","syncWallet","_callee","newWallet","freshData","_callee$","_context","isSyncing","hasActiveConnection","includes","prevWallet","sync","newBalanceMap","balanceMap","newAdaBalance","get","ADA_ASSET_ID","prevBalance","amount","areAssetMapsEqual","newUsedAddresses","prevValue","JSON","stringify","newUnusedAddresses","newNetwork","newUtxos","prevValueRep","map","toCbor","newValueRep","newCollateral","t0","cause","connectWallet","_ref2","_callee2","wallet","_callee2$","_context2","api","_x","useEffect","addEventListener"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/TransactionUnspentOutput.js\";\nimport { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useCallback, useEffect, useState, useTransition } from \"react\";\n\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { ADA_ASSET_ID } from \"../../../constants.js\";\nimport { areAssetMapsEqual } from \"../../../utils/comparisons.js\";\n\n/**\n * Internal use only. The main action that sync WalletObserver api responses with\n * the React context of the WalletObserverProvider.\n *\n * @param {WalletObserver} observer\n */\nexport const useWalletObserverState = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(\n observer: WalletObserver<AssetMetadata>,\n) => {\n const [activeWallet, setActiveWallet] = useState<string>();\n const [adaBalance, setAdaBalance] = useState<AssetAmount<AssetMetadata>>(\n new AssetAmount<AssetMetadata>(0n),\n );\n const [balance, setBalance] = useState<WalletBalanceMap<AssetMetadata>>(\n new WalletBalanceMap<AssetMetadata>(observer),\n );\n const [network, setNetwork] = useState<number | undefined>();\n const [usedAddresses, setUsedAddresses] = useState<string[]>([]);\n const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);\n const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();\n const [collateral, setCollateral] = useState<TransactionUnspentOutput[]>();\n const [isCip45, setIsCip45] = useState(false);\n const [switching, setSwitching] = useState(false);\n const [errorSyncing, setErrorSyncing] = useState(false);\n const [isPending, startTransition] = useTransition();\n const [willAutoConnect, setWillAutoConnect] = useState(\n Boolean(\n window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY) &&\n observer.getOptions().persistence,\n ),\n );\n\n const disconnect = useCallback(() => {\n // Reset observer state.\n observer.disconnect();\n\n // Reset state.\n setAdaBalance(new AssetAmount(0n));\n setBalance(new WalletBalanceMap(observer));\n setUsedAddresses([]);\n setUnusedAddresses([]);\n setActiveWallet(undefined);\n setNetwork(undefined);\n setUtxos(undefined);\n setCollateral(undefined);\n setIsCip45(false);\n setWillAutoConnect(false);\n }, [observer]);\n\n const syncWallet = useCallback(async () => {\n if (observer.isSyncing() || !observer.hasActiveConnection()) {\n return;\n }\n\n const newWallet = observer.activeWallet;\n if (!newWallet) {\n disconnect();\n return;\n }\n\n setIsCip45(newWallet.includes(\"p2p\"));\n setActiveWallet((prevWallet) =>\n newWallet === prevWallet ? prevWallet : newWallet,\n );\n\n try {\n const freshData = await observer.sync();\n\n startTransition(() => {\n const newBalanceMap = freshData.balanceMap;\n if (newBalanceMap instanceof WalletBalanceMap) {\n const newAdaBalance = newBalanceMap.get(ADA_ASSET_ID);\n if (newAdaBalance) {\n setAdaBalance((prevBalance) =>\n prevBalance.amount === newAdaBalance.amount\n ? prevBalance\n : newAdaBalance,\n );\n\n setBalance((prevBalance) =>\n areAssetMapsEqual(prevBalance, newBalanceMap)\n ? prevBalance\n : newBalanceMap,\n );\n }\n } else {\n setErrorSyncing(true);\n }\n\n const newUsedAddresses = freshData.usedAddresses;\n if (newUsedAddresses instanceof Array) {\n setUsedAddresses((prevValue) => {\n return JSON.stringify(prevValue) ===\n JSON.stringify(newUsedAddresses)\n ? prevValue\n : newUsedAddresses;\n });\n } else {\n setErrorSyncing(true);\n }\n\n const newUnusedAddresses = freshData.unusedAddresses;\n if (newUnusedAddresses instanceof Array) {\n setUnusedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(newUnusedAddresses)\n ? prevValue\n : newUnusedAddresses,\n );\n } else {\n setErrorSyncing(true);\n }\n\n const newNetwork = freshData.network;\n if (typeof newNetwork === \"number\") {\n setNetwork((prevValue) =>\n prevValue === newNetwork ? prevValue : newNetwork,\n );\n } else {\n setErrorSyncing(true);\n }\n\n const newUtxos = freshData.utxos;\n if (newUtxos instanceof Array) {\n setUtxos((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = newUtxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return newUtxos;\n }\n\n return prevValue;\n });\n } else {\n setErrorSyncing(true);\n }\n\n const newCollateral = freshData.collateral;\n if (newCollateral instanceof Array) {\n setCollateral((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = newCollateral?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return newCollateral;\n }\n\n return prevValue;\n });\n } else {\n setErrorSyncing(true);\n }\n });\n } catch (e) {\n setErrorSyncing(true);\n (e as Error).cause =\n \"The wallet through an error while the app was trying to sync with it. Please try again or contact your wallet provider.\";\n throw e;\n }\n }, [observer, disconnect]);\n\n const connectWallet = useCallback(\n async (wallet: string) => {\n if (observer.hasActiveConnection() && wallet !== observer.activeWallet) {\n setSwitching(() => true);\n }\n\n await observer.connectWallet(wallet);\n await syncWallet();\n setSwitching(() => false);\n return observer.api;\n },\n [observer, setSwitching],\n );\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", syncWallet);\n };\n }, [syncWallet]);\n\n return {\n activeWallet,\n setActiveWallet,\n adaBalance,\n setAdaBalance,\n balance,\n setBalance,\n isCip45,\n setIsCip45,\n network,\n setNetwork,\n unusedAddresses,\n setUnusedAddresses,\n usedAddresses,\n setUsedAddresses,\n utxos,\n setUtxos,\n collateral,\n setCollateral,\n syncWallet,\n disconnect,\n connectWallet,\n switching,\n errorSyncing,\n setSwitching,\n isPending,\n willAutoConnect,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -32,10 +32,11 @@ var useWalletObserver = exports.useWalletObserver = function useWalletObserver()
32
32
  disconnect: state.disconnect,
33
33
  connectWallet: state.connectWallet,
34
34
  switching: state.switching,
35
+ errorSyncing: state.errorSyncing,
35
36
  isPending: state.isPending,
36
37
  willAutoConnect: state.willAutoConnect
37
38
  };
38
- }, [state.isCip45, state.activeWallet, state.adaBalance.amount, state.balance.size, state.mainAddress, state.stakeAddress, state.network, state.utxos, state.collateral, state.observer, state.unusedAddresses, state.usedAddresses, state.syncWallet, state.disconnect, state.connectWallet, state.switching, state.isPending, state.willAutoConnect]);
39
+ }, [state.isCip45, state.activeWallet, state.adaBalance.amount, state.balance.size, state.mainAddress, state.stakeAddress, state.network, state.utxos, state.collateral, state.observer, state.unusedAddresses, state.usedAddresses, state.syncWallet, state.disconnect, state.connectWallet, state.switching, state.isPending, state.willAutoConnect, state.errorSyncing]);
39
40
  return result;
40
41
  };
41
42
  //# sourceMappingURL=useWalletObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","result","useMemo","isCip45","activeWallet","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","observer","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching","isPending","willAutoConnect","amount","size"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { useMemo } from \"react\";\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {Omit<TUseWalletObserverState<AssetMetadata>, \"ready\" | \"connectingWallet\" | \"syncingWallet\">}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(): Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result: Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n > = useMemo(\n () => ({\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n syncWallet: state.syncWallet,\n disconnect: state.disconnect,\n connectWallet: state.connectWallet,\n switching: state.switching,\n isPending: state.isPending,\n willAutoConnect: state.willAutoConnect,\n }),\n [\n state.isCip45,\n state.activeWallet,\n state.adaBalance.amount,\n state.balance.size,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.utxos,\n state.collateral,\n state.observer,\n state.unusedAddresses,\n state.usedAddresses,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.switching,\n state.isPending,\n state.willAutoConnect,\n ],\n );\n\n return result;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAKzB;EACH,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,MAGL,GAAG,IAAAC,cAAO,EACT;IAAA,OAAO;MACLC,OAAO,EAAEH,KAAK,CAACG,OAAO;MACtBC,YAAY,EAAEJ,KAAK,CAACI,YAAY;MAChCC,UAAU,EAAEL,KAAK,CAACK,UAAU;MAC5BC,OAAO,EAAEN,KAAK,CAACM,OAAO;MACtBC,WAAW,EAAEP,KAAK,CAACO,WAAW;MAC9BC,YAAY,EAAER,KAAK,CAACQ,YAAY;MAChCC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBC,KAAK,EAAEV,KAAK,CAACU,KAAK;MAClBC,UAAU,EAAEX,KAAK,CAACW,UAAU;MAC5BC,QAAQ,EAAEZ,KAAK,CAACY,QAAQ;MACxBC,eAAe,EAAEb,KAAK,CAACa,eAAe;MACtCC,aAAa,EAAEd,KAAK,CAACc,aAAa;MAClCC,UAAU,EAAEf,KAAK,CAACe,UAAU;MAC5BC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BC,aAAa,EAAEjB,KAAK,CAACiB,aAAa;MAClCC,SAAS,EAAElB,KAAK,CAACkB,SAAS;MAC1BC,SAAS,EAAEnB,KAAK,CAACmB,SAAS;MAC1BC,eAAe,EAAEpB,KAAK,CAACoB;IACzB,CAAC;EAAA,CAAC,EACF,CACEpB,KAAK,CAACG,OAAO,EACbH,KAAK,CAACI,YAAY,EAClBJ,KAAK,CAACK,UAAU,CAACgB,MAAM,EACvBrB,KAAK,CAACM,OAAO,CAACgB,IAAI,EAClBtB,KAAK,CAACO,WAAW,EACjBP,KAAK,CAACQ,YAAY,EAClBR,KAAK,CAACS,OAAO,EACbT,KAAK,CAACU,KAAK,EACXV,KAAK,CAACW,UAAU,EAChBX,KAAK,CAACY,QAAQ,EACdZ,KAAK,CAACa,eAAe,EACrBb,KAAK,CAACc,aAAa,EACnBd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACiB,aAAa,EACnBjB,KAAK,CAACkB,SAAS,EACflB,KAAK,CAACmB,SAAS,EACfnB,KAAK,CAACoB,eAAe,CAEzB,CAAC;EAED,OAAOnB,MAAM;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","result","useMemo","isCip45","activeWallet","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","observer","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching","errorSyncing","isPending","willAutoConnect","amount","size"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { useMemo } from \"react\";\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {Omit<TUseWalletObserverState<AssetMetadata>, \"ready\" | \"connectingWallet\" | \"syncingWallet\">}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(): Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result: Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n > = useMemo(\n () => ({\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n syncWallet: state.syncWallet,\n disconnect: state.disconnect,\n connectWallet: state.connectWallet,\n switching: state.switching,\n errorSyncing: state.errorSyncing,\n isPending: state.isPending,\n willAutoConnect: state.willAutoConnect,\n }),\n [\n state.isCip45,\n state.activeWallet,\n state.adaBalance.amount,\n state.balance.size,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.utxos,\n state.collateral,\n state.observer,\n state.unusedAddresses,\n state.usedAddresses,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.switching,\n state.isPending,\n state.willAutoConnect,\n state.errorSyncing,\n ],\n );\n\n return result;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAKzB;EACH,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,MAGL,GAAG,IAAAC,cAAO,EACT;IAAA,OAAO;MACLC,OAAO,EAAEH,KAAK,CAACG,OAAO;MACtBC,YAAY,EAAEJ,KAAK,CAACI,YAAY;MAChCC,UAAU,EAAEL,KAAK,CAACK,UAAU;MAC5BC,OAAO,EAAEN,KAAK,CAACM,OAAO;MACtBC,WAAW,EAAEP,KAAK,CAACO,WAAW;MAC9BC,YAAY,EAAER,KAAK,CAACQ,YAAY;MAChCC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBC,KAAK,EAAEV,KAAK,CAACU,KAAK;MAClBC,UAAU,EAAEX,KAAK,CAACW,UAAU;MAC5BC,QAAQ,EAAEZ,KAAK,CAACY,QAAQ;MACxBC,eAAe,EAAEb,KAAK,CAACa,eAAe;MACtCC,aAAa,EAAEd,KAAK,CAACc,aAAa;MAClCC,UAAU,EAAEf,KAAK,CAACe,UAAU;MAC5BC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BC,aAAa,EAAEjB,KAAK,CAACiB,aAAa;MAClCC,SAAS,EAAElB,KAAK,CAACkB,SAAS;MAC1BC,YAAY,EAAEnB,KAAK,CAACmB,YAAY;MAChCC,SAAS,EAAEpB,KAAK,CAACoB,SAAS;MAC1BC,eAAe,EAAErB,KAAK,CAACqB;IACzB,CAAC;EAAA,CAAC,EACF,CACErB,KAAK,CAACG,OAAO,EACbH,KAAK,CAACI,YAAY,EAClBJ,KAAK,CAACK,UAAU,CAACiB,MAAM,EACvBtB,KAAK,CAACM,OAAO,CAACiB,IAAI,EAClBvB,KAAK,CAACO,WAAW,EACjBP,KAAK,CAACQ,YAAY,EAClBR,KAAK,CAACS,OAAO,EACbT,KAAK,CAACU,KAAK,EACXV,KAAK,CAACW,UAAU,EAChBX,KAAK,CAACY,QAAQ,EACdZ,KAAK,CAACa,eAAe,EACrBb,KAAK,CAACc,aAAa,EACnBd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACiB,aAAa,EACnBjB,KAAK,CAACkB,SAAS,EACflB,KAAK,CAACoB,SAAS,EACfpB,KAAK,CAACqB,eAAe,EACrBrB,KAAK,CAACmB,YAAY,CAEtB,CAAC;EAED,OAAOlB,MAAM;AACf,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":["EWalletObserverEvents"],"sources":["../../../src/@types/events.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\n\n/**\n * A list of observer events that a client can hook into.\n */\nexport enum EWalletObserverEvents {\n CONNECT_WALLET_START = \"connectWalletStart\",\n CONNECT_WALLET_END = \"connectWalletEnd\",\n SYNCING_WALLET_START = \"syncingWalletStart\",\n SYNCING_WALLET_END = \"syncingWalletEnd\",\n GET_BALANCE_MAP_START = \"getBalanceMapStart\",\n GET_BALANCE_MAP_END = \"getBalanceMapEnd\",\n DISCONNECT = \"disconnect\",\n}\n\n/**\n * A map of what each event passes to the event listener function.\n */\nexport interface IWalletObserverEventValues<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n [EWalletObserverEvents.SYNCING_WALLET_START]: undefined;\n [EWalletObserverEvents.SYNCING_WALLET_END]:\n | undefined\n | {\n balanceMap: WalletBalanceMap<T>;\n network: number;\n usedAddresses: string[];\n unusedAddresses: string[];\n };\n [EWalletObserverEvents.CONNECT_WALLET_START]: undefined;\n [EWalletObserverEvents.CONNECT_WALLET_END]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_START]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_END]: {\n balanceMap: WalletBalanceMap<T>;\n };\n [EWalletObserverEvents.DISCONNECT]: undefined;\n}\n\n/**\n * The function declaration so that an even handler can get\n * type definitions for the arguments.\n */\nexport type TWalletObserverEventFunction<\n E extends keyof IWalletObserverEventValues,\n> = (data?: IWalletObserverEventValues[E]) => void;\n"],"mappings":"AAIA;AACA;AACA;AACA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AAUjC;AACA;AACA;;AAsBA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"events.js","names":["EWalletObserverEvents"],"sources":["../../../src/@types/events.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { IWalletObserverSync } from \"./observer.js\";\n\n/**\n * A list of observer events that a client can hook into.\n */\nexport enum EWalletObserverEvents {\n CONNECT_WALLET_START = \"connectWalletStart\",\n CONNECT_WALLET_END = \"connectWalletEnd\",\n SYNCING_WALLET_START = \"syncingWalletStart\",\n SYNCING_WALLET_END = \"syncingWalletEnd\",\n GET_BALANCE_MAP_START = \"getBalanceMapStart\",\n GET_BALANCE_MAP_END = \"getBalanceMapEnd\",\n DISCONNECT = \"disconnect\",\n}\n\n/**\n * A map of what each event passes to the event listener function.\n */\nexport interface IWalletObserverEventValues<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n [EWalletObserverEvents.SYNCING_WALLET_START]: undefined;\n [EWalletObserverEvents.SYNCING_WALLET_END]:\n | undefined\n | IWalletObserverSync<T>;\n [EWalletObserverEvents.CONNECT_WALLET_START]: undefined;\n [EWalletObserverEvents.CONNECT_WALLET_END]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_START]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_END]: {\n balanceMap: WalletBalanceMap<T>;\n };\n [EWalletObserverEvents.DISCONNECT]: undefined;\n}\n\n/**\n * The function declaration so that an even handler can get\n * type definitions for the arguments.\n */\nexport type TWalletObserverEventFunction<\n E extends keyof IWalletObserverEventValues,\n> = (data?: IWalletObserverEventValues[E]) => void;\n"],"mappings":"AAKA;AACA;AACA;AACA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AAUjC;AACA;AACA;;AAiBA;AACA;AACA;AACA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: string;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n // eslint-disable-next-line\n [key: string]: any;\n};\n\n/**\n * Describes the function arguments for the metadata resolver.\n */\nexport interface IMetadataResolverFuncArgs {\n assetIds: string[];\n normalizeAssetId: typeof normalizeAssetIdWithDot;\n isAdaAsset: typeof isAdaAsset;\n}\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = (args: IMetadataResolverFuncArgs) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n debug: boolean;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: string;\n mainAddress: string;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n balanceMap: WalletBalanceMap<AssetMetadata>;\n usedAddresses: string[];\n unusedAddresses: string[];\n utxos?: TransactionUnspentOutput[];\n network: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: string;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n // eslint-disable-next-line\n [key: string]: any;\n};\n\n/**\n * Describes the function arguments for the metadata resolver.\n */\nexport interface IMetadataResolverFuncArgs {\n assetIds: string[];\n normalizeAssetId: typeof normalizeAssetIdWithDot;\n isAdaAsset: typeof isAdaAsset;\n}\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = (args: IMetadataResolverFuncArgs) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n debug: boolean;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: string;\n mainAddress: string;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n balanceMap: Error | WalletBalanceMap<AssetMetadata>;\n usedAddresses: Error | string[];\n unusedAddresses: Error | string[];\n utxos?: Error | TransactionUnspentOutput[];\n collateral?: Error | TransactionUnspentOutput[];\n network: Error | number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -65,18 +65,15 @@ export class WalletObserver extends WalletObserverEvent {
65
65
  try {
66
66
  this._performingSync = true;
67
67
  this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);
68
- let newNetwork;
69
- try {
68
+ let newNetwork = await this.getNetwork();
69
+ if (newNetwork instanceof Error) {
70
+ await this.syncApi();
70
71
  newNetwork = await this.getNetwork();
71
- } catch (e) {
72
- try {
73
- await this.syncApi();
74
- newNetwork = await this.getNetwork();
75
- } catch (e) {
72
+ if (newNetwork instanceof Error) {
76
73
  this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);
77
74
  this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);
78
75
  this._performingSync = false;
79
- throw e;
76
+ throw newNetwork;
80
77
  }
81
78
  }
82
79
  const [newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, newCollateral] = await Promise.all([this.getBalanceMap(), this.getUsedAddresses(), this.getUnusedAddresses(), this.getUtxos(), this.getCollateral()]);
@@ -181,9 +178,14 @@ export class WalletObserver extends WalletObserverEvent {
181
178
  const api = await this.syncApi(extension);
182
179
  this.activeWallet = extension;
183
180
  if (this._options.persistence && api) {
181
+ const addresses = await this.getUsedAddresses();
182
+ if (addresses instanceof Error) {
183
+ addresses.cause = "Could not get a list of used addresses from the wallet when trying to save the connection.";
184
+ throw addresses;
185
+ }
184
186
  const seed = {
185
187
  activeWallet: extension,
186
- mainAddress: (await this.getUsedAddresses())[0]
188
+ mainAddress: addresses[0]
187
189
  };
188
190
  window.localStorage.setItem(WalletObserver.PERSISTENCE_CACHE_KEY, JSON.stringify(seed));
189
191
  }
@@ -236,9 +238,15 @@ export class WalletObserver extends WalletObserverEvent {
236
238
  }
237
239
  const start = performance.now();
238
240
  this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_START);
239
- const [cbor, {
241
+ const [{
240
242
  Serialization
241
- }, typedHex] = await Promise.all([this.api.getBalance(), getCardanoCore(), getCardanoUtil()]);
243
+ }, typedHex] = await Promise.all([getCardanoCore(), getCardanoUtil()]);
244
+ let cbor;
245
+ try {
246
+ cbor = await this.api.getBalance();
247
+ } catch (e) {
248
+ return e;
249
+ }
242
250
  const data = Serialization.Value.fromCbor(typedHex(cbor));
243
251
  const multiassetKeys = data.multiasset()?.keys() ?? [];
244
252
  const metadata = await this.__metadataResolverWithCache([ADA_ASSET_ID, ...multiassetKeys]);
@@ -262,14 +270,19 @@ export class WalletObserver extends WalletObserverEvent {
262
270
  /**
263
271
  * Gets the current network connection.
264
272
  *
265
- * @returns {Promise<number>} The network ID.
273
+ * @returns {Promise<number | Error>} The network ID or an Error from the wallet.
266
274
  */
267
275
  _defineProperty(this, "getNetwork", async () => {
268
276
  if (!this.api) {
269
277
  throw new Error("Attempted to query network without an API instance.");
270
278
  }
271
279
  const start = performance.now();
272
- const val = await this.api.getNetworkId();
280
+ let val;
281
+ try {
282
+ val = await this.api.getNetworkId();
283
+ } catch (e) {
284
+ return e;
285
+ }
273
286
  this.network = val;
274
287
  const end = performance.now();
275
288
  if (this._options.debug) {
@@ -287,9 +300,15 @@ export class WalletObserver extends WalletObserverEvent {
287
300
  throw new Error("Attempted to query used addresses without an API instance.");
288
301
  }
289
302
  const start = performance.now();
290
- const [cbor, {
303
+ const [{
291
304
  Cardano
292
- }, typedHex] = await Promise.all([this.api.getUsedAddresses(), getCardanoCore(), getCardanoUtil()]);
305
+ }, typedHex] = await Promise.all([getCardanoCore(), getCardanoUtil()]);
306
+ let cbor;
307
+ try {
308
+ cbor = await this.api.getUsedAddresses();
309
+ } catch (e) {
310
+ return e;
311
+ }
293
312
  const data = cbor.map(val => Cardano.Address.fromBytes(typedHex(val)).toBech32());
294
313
  const end = performance.now();
295
314
  if (this._options.debug) {
@@ -300,16 +319,22 @@ export class WalletObserver extends WalletObserverEvent {
300
319
  /**
301
320
  * Gets a list of unused addresses, encoded as Bech32.
302
321
  *
303
- * @returns {Promise<string[]>} The list of addresses.
322
+ * @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.
304
323
  */
305
324
  _defineProperty(this, "getUnusedAddresses", async () => {
306
325
  if (!this.api) {
307
326
  throw new Error("Attempted to query unused addresses without an API instance.");
308
327
  }
309
328
  const start = performance.now();
310
- const [cbor, {
329
+ const [{
311
330
  Cardano
312
- }, typedHex] = await Promise.all([this.api.getUnusedAddresses(), getCardanoCore(), getCardanoUtil()]);
331
+ }, typedHex] = await Promise.all([getCardanoCore(), getCardanoUtil()]);
332
+ let cbor;
333
+ try {
334
+ cbor = await this.api.getUnusedAddresses();
335
+ } catch (e) {
336
+ return e;
337
+ }
313
338
  const data = cbor.map(val => Cardano.Address.fromBytes(typedHex(val)).toBech32());
314
339
  const end = performance.now();
315
340
  if (this._options.debug) {
@@ -327,9 +352,15 @@ export class WalletObserver extends WalletObserverEvent {
327
352
  throw new Error("Attempted to query UTXOs without an API instance.");
328
353
  }
329
354
  const start = performance.now();
330
- const [cbor, {
355
+ const [{
331
356
  Serialization
332
- }, typedHex] = await Promise.all([this.api.getUtxos(), getCardanoCore(), getCardanoUtil()]);
357
+ }, typedHex] = await Promise.all([getCardanoCore(), getCardanoUtil()]);
358
+ let cbor;
359
+ try {
360
+ cbor = await this.api.getUtxos();
361
+ } catch (e) {
362
+ return e;
363
+ }
333
364
  const data = cbor?.map(val => {
334
365
  const txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
335
366
 
@@ -347,22 +378,27 @@ export class WalletObserver extends WalletObserverEvent {
347
378
  /**
348
379
  * Gets a list of wallet UTXOs suitable for collateral.
349
380
  *
350
- * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
381
+ * @returns {Promise<TransactionUnspentOutput[] | Error | undefined>} The list of TransactionUnspentOutputs, if there are any, or an Error.
351
382
  */
352
383
  _defineProperty(this, "getCollateral", async () => {
353
384
  if (!this.api) {
354
385
  throw new Error("Attempted to query UTXOs without an API instance.");
355
386
  }
356
387
  const start = performance.now();
357
- const [cbor, {
388
+ const [{
358
389
  Serialization
359
- }, typedHex] = await Promise.all([(async () => {
390
+ }, typedHex] = await Promise.all([getCardanoCore(), getCardanoUtil()]);
391
+ let cbor;
392
+ try {
360
393
  const funcCall = this.api?.getCollateral || this.api?.experimental.getCollateral;
361
394
  if (typeof funcCall !== "function") {
362
- return [];
395
+ cbor = [];
396
+ } else {
397
+ cbor = await funcCall();
363
398
  }
364
- return await funcCall();
365
- })(), getCardanoCore(), getCardanoUtil()]);
399
+ } catch (e) {
400
+ return e;
401
+ }
366
402
  const data = cbor?.map(val => {
367
403
  const txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
368
404