@sundaeswap/wallet-lite 0.0.40 → 0.0.42

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 (115) hide show
  1. package/dist/cjs/@types/events.js.map +1 -1
  2. package/dist/cjs/@types/global.d.js.map +1 -1
  3. package/dist/cjs/@types/observer.js.map +1 -1
  4. package/dist/cjs/classes/WalletAssetMap.class.js.map +1 -1
  5. package/dist/cjs/classes/WalletBalanceMap.class.js +1 -1
  6. package/dist/cjs/classes/WalletBalanceMap.class.js.map +1 -1
  7. package/dist/cjs/classes/WalletObserver.class.js +1 -1
  8. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  9. package/dist/cjs/classes/WalletObserverEvent.js +3 -2
  10. package/dist/cjs/classes/WalletObserverEvent.js.map +1 -1
  11. package/dist/cjs/classes/WalletObserverUtils.class.js +3 -0
  12. package/dist/cjs/classes/WalletObserverUtils.class.js.map +1 -1
  13. package/dist/cjs/react-components/RenderWallet.js.map +1 -1
  14. package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
  15. package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
  16. package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
  17. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  18. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  19. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js.map +1 -1
  20. package/dist/cjs/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js +6 -0
  21. package/dist/cjs/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js.map +1 -1
  22. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +5 -3
  23. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  24. package/dist/cjs/react-components/contexts/observer/context.js.map +1 -1
  25. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  26. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  27. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  28. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  29. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  30. package/dist/cjs/utils/comparisons.js.map +1 -1
  31. package/dist/cjs/utils/hashing.js.map +1 -1
  32. package/dist/esm/@types/events.js.map +1 -1
  33. package/dist/esm/@types/global.d.js.map +1 -1
  34. package/dist/esm/@types/observer.js.map +1 -1
  35. package/dist/esm/classes/WalletAssetMap.class.js.map +1 -1
  36. package/dist/esm/classes/WalletBalanceMap.class.js +1 -1
  37. package/dist/esm/classes/WalletBalanceMap.class.js.map +1 -1
  38. package/dist/esm/classes/WalletObserver.class.js +3 -3
  39. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  40. package/dist/esm/classes/WalletObserverEvent.js +3 -2
  41. package/dist/esm/classes/WalletObserverEvent.js.map +1 -1
  42. package/dist/esm/classes/WalletObserverUtils.class.js +5 -0
  43. package/dist/esm/classes/WalletObserverUtils.class.js.map +1 -1
  44. package/dist/esm/react-components/RenderWallet.js.map +1 -1
  45. package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
  46. package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
  47. package/dist/esm/react-components/RenderWalletState.js.map +1 -1
  48. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  49. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  50. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js.map +1 -1
  51. package/dist/esm/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js +5 -0
  52. package/dist/esm/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js.map +1 -1
  53. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +3 -2
  54. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  55. package/dist/esm/react-components/contexts/observer/context.js.map +1 -1
  56. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  57. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  58. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  59. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  60. package/dist/esm/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  61. package/dist/esm/utils/comparisons.js.map +1 -1
  62. package/dist/esm/utils/hashing.js.map +1 -1
  63. package/dist/types/@types/events.d.ts +2 -2
  64. package/dist/types/classes/WalletBalanceMap.class.d.ts +1 -1
  65. package/dist/types/classes/WalletBalanceMap.class.d.ts.map +1 -1
  66. package/dist/types/classes/WalletObserver.class.d.ts +2 -2
  67. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  68. package/dist/types/classes/WalletObserverEvent.d.ts +7 -7
  69. package/dist/types/classes/WalletObserverEvent.d.ts.map +1 -1
  70. package/dist/types/classes/WalletObserverUtils.class.d.ts.map +1 -1
  71. package/dist/types/react-components/RenderWallet.d.ts +1 -1
  72. package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
  73. package/dist/types/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.d.ts.map +1 -1
  74. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  75. package/dist/types/react-components/contexts/observer/types.d.ts +1 -0
  76. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  77. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  78. package/dist/types/utils/comparisons.d.ts.map +1 -1
  79. package/dist/types/utils/hashing.d.ts +3 -3
  80. package/package.json +1 -1
  81. package/src/@types/events.ts +4 -4
  82. package/src/@types/global.d.ts +1 -0
  83. package/src/@types/observer.ts +6 -6
  84. package/src/__data__/assets.ts +1 -1
  85. package/src/classes/WalletAssetMap.class.ts +1 -1
  86. package/src/classes/WalletBalanceMap.class.ts +6 -6
  87. package/src/classes/WalletObserver.class.ts +27 -25
  88. package/src/classes/WalletObserverEvent.ts +14 -13
  89. package/src/classes/WalletObserverUtils.class.ts +11 -5
  90. package/src/classes/__tests__/WalletObserver.test.ts +23 -30
  91. package/src/classes/__tests__/WalletObserverEvent.test.ts +8 -8
  92. package/src/classes/__tests__/WalletObserverUtils.test.ts +6 -6
  93. package/src/react-components/RenderWallet.tsx +4 -4
  94. package/src/react-components/RenderWalletHandles.tsx +2 -2
  95. package/src/react-components/RenderWalletPeerConnect.tsx +2 -2
  96. package/src/react-components/RenderWalletState.tsx +2 -2
  97. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +3 -3
  98. package/src/react-components/WalletObserverProvider/hooks/effects/useDerivedState.ts +2 -2
  99. package/src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts +1 -1
  100. package/src/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.ts +21 -10
  101. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +19 -27
  102. package/src/react-components/__tests__/RenderWallet.test.tsx +1 -1
  103. package/src/react-components/__tests__/RenderWalletHandles.test.tsx +8 -8
  104. package/src/react-components/__tests__/hooks/useAvailableExtensions.test.tsx +1 -0
  105. package/src/react-components/__tests__/hooks/useWalletObserverRef.test.tsx +1 -1
  106. package/src/react-components/contexts/observer/context.ts +3 -3
  107. package/src/react-components/contexts/observer/types.ts +6 -5
  108. package/src/react-components/hooks/useWalletHandles.ts +5 -5
  109. package/src/react-components/hooks/useWalletLoadingState.ts +2 -2
  110. package/src/react-components/hooks/useWalletObserver.ts +2 -2
  111. package/src/react-components/hooks/useWalletPeerConnect.tsx +1 -1
  112. package/src/utils/__tests__/comparisons.test.ts +3 -3
  113. package/src/utils/__tests__/hashing.test.ts +6 -8
  114. package/src/utils/comparisons.ts +3 -1
  115. package/src/utils/hashing.ts +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"comparisons.d.ts","sourceRoot":"","sources":["../../../src/utils/comparisons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UACrB,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,SACnC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,KACzC,OA4BF,CAAC"}
1
+ {"version":3,"file":"comparisons.d.ts","sourceRoot":"","sources":["../../../src/utils/comparisons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAErB,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,SAEnC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,KACzC,OA4BF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { EWalletObserverEventValues, TWalletObserverEventFunction } from "../@types/events.js";
1
+ import { IWalletObserverEventValues, TWalletObserverEventFunction } from "../@types/events.js";
2
2
  /**
3
3
  * Generates a unique key for the event and callback function.
4
4
  *
@@ -7,7 +7,7 @@ import { EWalletObserverEventValues, TWalletObserverEventFunction } from "../@ty
7
7
  * @param {TWalletObserverEventFunction<E>} callback - The callback function.
8
8
  * @returns {string} - The unique key for the event and callback.
9
9
  */
10
- export declare const getEventKey: <E extends keyof EWalletObserverEventValues<import("@sundaeswap/asset").IAssetAmountMetadata>>(event: E, callback: TWalletObserverEventFunction<E>) => string;
10
+ export declare const getEventKey: <E extends keyof IWalletObserverEventValues<import("@sundaeswap/asset").IAssetAmountMetadata>>(event: E, callback: TWalletObserverEventFunction<E>) => string;
11
11
  /**
12
12
  * Generates a hash for the callback function.
13
13
  *
@@ -15,5 +15,5 @@ export declare const getEventKey: <E extends keyof EWalletObserverEventValues<im
15
15
  * @param {TWalletObserverEventFunction<E>} callback - The callback function.
16
16
  * @returns {number} - The hash of the callback function.
17
17
  */
18
- export declare const getFunctionHash: <E extends keyof EWalletObserverEventValues<import("@sundaeswap/asset").IAssetAmountMetadata>>(callback: TWalletObserverEventFunction<E>) => number;
18
+ export declare const getFunctionHash: <E extends keyof IWalletObserverEventValues<import("@sundaeswap/asset").IAssetAmountMetadata>>(callback: TWalletObserverEventFunction<E>) => number;
19
19
  //# sourceMappingURL=hashing.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sundaeswap/wallet-lite",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -18,8 +18,8 @@ export enum EWalletObserverEvents {
18
18
  /**
19
19
  * A map of what each event passes to the event listener function.
20
20
  */
21
- export interface EWalletObserverEventValues<
22
- T extends IAssetAmountMetadata = IAssetAmountMetadata
21
+ export interface IWalletObserverEventValues<
22
+ T extends IAssetAmountMetadata = IAssetAmountMetadata,
23
23
  > {
24
24
  [EWalletObserverEvents.SYNCING_WALLET_START]: undefined;
25
25
  [EWalletObserverEvents.SYNCING_WALLET_END]:
@@ -44,5 +44,5 @@ export interface EWalletObserverEventValues<
44
44
  * type definitions for the arguments.
45
45
  */
46
46
  export type TWalletObserverEventFunction<
47
- E extends keyof EWalletObserverEventValues
48
- > = (data?: EWalletObserverEventValues[E]) => void;
47
+ E extends keyof IWalletObserverEventValues,
48
+ > = (data?: IWalletObserverEventValues[E]) => void;
@@ -1,6 +1,7 @@
1
1
  import { TWindowCardano } from "./observer.js";
2
2
 
3
3
  declare global {
4
+ // eslint-disable-next-line @typescript-eslint/naming-convention
4
5
  interface Window {
5
6
  cardano?: TWindowCardano;
6
7
  }
@@ -49,18 +49,18 @@ export type TWindowCardano = {
49
49
  * the asset ID as the key, and the metadata as the value.
50
50
  */
51
51
  export type TMetadataResolverFunc<
52
- T extends IAssetAmountMetadata = IAssetAmountMetadata
52
+ T extends IAssetAmountMetadata = IAssetAmountMetadata,
53
53
  > = (
54
54
  assetIds: string[],
55
55
  normalizeAssetIdFunc: typeof normalizeAssetIdWithDot,
56
- isAdaAssetFunc: typeof isAdaAsset
56
+ isAdaAssetFunc: typeof isAdaAsset,
57
57
  ) => Promise<Map<string, T>>;
58
58
 
59
59
  /**
60
60
  * Options that are passed to the WalletObserver instance.
61
61
  */
62
62
  export interface IResolvedWalletObserverOptions<
63
- AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
63
+ AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
64
64
  > {
65
65
  metadataResolver: TMetadataResolverFunc<AssetMetadata>;
66
66
  persistence: boolean;
@@ -73,14 +73,14 @@ export interface IResolvedWalletObserverOptions<
73
73
  * Options that are passed to the WalletObserver instance.
74
74
  */
75
75
  export type TWalletObserverOptions<
76
- AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
76
+ AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
77
77
  > = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;
78
78
 
79
79
  /**
80
80
  * Interface describing the Map type of an asset.
81
81
  */
82
82
  export type TAssetAmountMap<
83
- T extends IAssetAmountMetadata = IAssetAmountMetadata
83
+ T extends IAssetAmountMetadata = IAssetAmountMetadata,
84
84
  > = WalletAssetMap<T>;
85
85
 
86
86
  /**
@@ -102,7 +102,7 @@ export type TGetPeerConnectInstance = () => {
102
102
  };
103
103
 
104
104
  export interface IWalletObserverSync<
105
- AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
105
+ AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
106
106
  > {
107
107
  balanceMap: WalletBalanceMap<AssetMetadata>;
108
108
  usedAddresses: string[];
@@ -130,7 +130,7 @@ export const assetMap = assetIds.map((id) => {
130
130
  key: assetId,
131
131
  assetAmount: new AssetAmount(
132
132
  isNFT ? 1 : Math.floor(Math.random() * 10000000) + 1,
133
- isNFT ? nftMetadata : fungibleMetadata
133
+ isNFT ? nftMetadata : fungibleMetadata,
134
134
  ),
135
135
  };
136
136
  });
@@ -6,7 +6,7 @@ import { normalizeAssetIdWithDot } from "../utils/assets.js";
6
6
  * Map wrapper to enforce asset id normalization when setting and getting assets.
7
7
  */
8
8
  export class WalletAssetMap<
9
- AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
9
+ AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
10
10
  > extends Map<string, AssetAmount<AssetMetadata>> {
11
11
  /**
12
12
  * Overlay to enforce asset ID normalization.
@@ -1,4 +1,4 @@
1
- import { AssetAmount, IAssetAmountMetadata } from "@sundaeswap/asset";
1
+ import { IAssetAmountMetadata } from "@sundaeswap/asset";
2
2
 
3
3
  import { TAssetAmountMap } from "../@types/observer.js";
4
4
  import { WalletAssetMap } from "./WalletAssetMap.class.js";
@@ -10,10 +10,10 @@ import { WalletObserver } from "./WalletObserver.class.js";
10
10
  * for convenience when querying against the map.
11
11
  *
12
12
  * @template AssetMetadata - Type extending IAssetAmountMetadata.
13
- * @extends {Map<string, AssetAmount<AssetMetadata>>}
13
+ * @extends {WalletAssetMap<AssetMetadata>}
14
14
  */
15
15
  export class WalletBalanceMap<
16
- AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
16
+ AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
17
17
  > extends WalletAssetMap<AssetMetadata> {
18
18
  /**
19
19
  * @private
@@ -62,7 +62,7 @@ export class WalletBalanceMap<
62
62
  const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();
63
63
  [...this.entries()].forEach(([key, asset]) => {
64
64
  const isHandle = this._handlePolicyIds[this._observer.network].some(
65
- (policyId) => asset.metadata.assetId.includes(policyId)
65
+ (policyId) => asset.metadata.assetId.includes(policyId),
66
66
  );
67
67
 
68
68
  if (isHandle) {
@@ -81,14 +81,14 @@ export class WalletBalanceMap<
81
81
  * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.
82
82
  */
83
83
  getNonFungibleTokens = (
84
- withHandles?: boolean
84
+ withHandles?: boolean,
85
85
  ): TAssetAmountMap<AssetMetadata> => {
86
86
  const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();
87
87
  [...this.entries()].forEach(([key, asset]) => {
88
88
  if (
89
89
  !withHandles &&
90
90
  this._handlePolicyIds[this._observer.network].some((policyId) =>
91
- asset.metadata.assetId.includes(policyId)
91
+ asset.metadata.assetId.includes(policyId),
92
92
  )
93
93
  ) {
94
94
  return;
@@ -42,7 +42,7 @@ import { WalletObserverUtils } from "./WalletObserverUtils.class.js";
42
42
  * @extends {WalletObserverEvent}
43
43
  */
44
44
  export class WalletObserver<
45
- AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
45
+ AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
46
46
  > extends WalletObserverEvent {
47
47
  static PERSISTENCE_CACHE_KEY = "walletObserver";
48
48
  static ADA_ASSET_ID = "ada.lovelace";
@@ -105,7 +105,7 @@ export class WalletObserver<
105
105
  ],
106
106
  },
107
107
  },
108
- options
108
+ options,
109
109
  );
110
110
 
111
111
  if (!this._options.persistence) {
@@ -128,7 +128,7 @@ export class WalletObserver<
128
128
  sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {
129
129
  if (!this.api) {
130
130
  throw new Error(
131
- "Attempted to perform a sync operation without a connected wallet."
131
+ "Attempted to perform a sync operation without a connected wallet.",
132
132
  );
133
133
  }
134
134
 
@@ -218,12 +218,14 @@ export class WalletObserver<
218
218
  * but the underlying intent has not.
219
219
  *
220
220
  * @param {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.
221
- * @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.
221
+ * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.
222
222
  */
223
- syncApi = async (activeWallet?: TSupportedWalletExtensions): Promise<any> => {
223
+ syncApi = async (
224
+ activeWallet?: TSupportedWalletExtensions,
225
+ ): Promise<Cip30WalletApi | undefined> => {
224
226
  if (!activeWallet && !this.activeWallet) {
225
227
  throw new Error(
226
- "A wallet is required to be passed as a parameter, or to be defined in the class."
228
+ "A wallet is required to be passed as a parameter, or to be defined in the class.",
227
229
  );
228
230
  }
229
231
 
@@ -236,7 +238,7 @@ export class WalletObserver<
236
238
  while (shouldContinue) {
237
239
  if (attempts === 10) {
238
240
  throw new Error(
239
- "Could not reconnect to the selected wallet. Please check your extension."
241
+ "Could not reconnect to the selected wallet. Please check your extension.",
240
242
  );
241
243
  }
242
244
 
@@ -285,7 +287,7 @@ export class WalletObserver<
285
287
  * @return {Promise<void>}
286
288
  */
287
289
  connectWallet = async (
288
- extension: TSupportedWalletExtensions
290
+ extension: TSupportedWalletExtensions,
289
291
  ): Promise<void> => {
290
292
  const start = performance.now();
291
293
  this.dispatch(EWalletObserverEvents.CONNECT_WALLET_START);
@@ -304,7 +306,7 @@ export class WalletObserver<
304
306
  }
305
307
 
306
308
  await new Promise((res) =>
307
- setTimeout(res, (this._options.connectTimeout as number) / 40)
309
+ setTimeout(res, (this._options.connectTimeout as number) / 40),
308
310
  );
309
311
  extensionObject = window.cardano?.[extension];
310
312
  attempts++;
@@ -324,7 +326,7 @@ export class WalletObserver<
324
326
 
325
327
  window.localStorage.setItem(
326
328
  WalletObserver.PERSISTENCE_CACHE_KEY,
327
- JSON.stringify(seed)
329
+ JSON.stringify(seed),
328
330
  );
329
331
  }
330
332
 
@@ -339,7 +341,7 @@ export class WalletObserver<
339
341
  if (!this.peerConnectInstance) {
340
342
  const DAppPeerConnect = await getPeerConnect();
341
343
  this.peerConnectInstance = new DAppPeerConnect(
342
- this._options.peerConnectArgs
344
+ this._options.peerConnectArgs,
343
345
  );
344
346
  }
345
347
 
@@ -414,7 +416,7 @@ export class WalletObserver<
414
416
  const balanceMap = new WalletBalanceMap<AssetMetadata>(this);
415
417
  balanceMap.set(
416
418
  WalletObserver.ADA_ASSET_ID,
417
- new AssetAmount(data.coin(), metadata.get(WalletObserver.ADA_ASSET_ID))
419
+ new AssetAmount(data.coin(), metadata.get(WalletObserver.ADA_ASSET_ID)),
418
420
  );
419
421
 
420
422
  const multiassetEntries = data.multiasset()?.entries() ?? [];
@@ -422,7 +424,7 @@ export class WalletObserver<
422
424
  for (const [id, amount] of multiassetEntries) {
423
425
  balanceMap.set(
424
426
  id,
425
- new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id)))
427
+ new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id))),
426
428
  );
427
429
  }
428
430
  }
@@ -468,7 +470,7 @@ export class WalletObserver<
468
470
  getUsedAddresses = async (): Promise<string[]> => {
469
471
  if (!this.api) {
470
472
  throw new Error(
471
- "Attempted to query used addresses without an API instance."
473
+ "Attempted to query used addresses without an API instance.",
472
474
  );
473
475
  }
474
476
 
@@ -481,7 +483,7 @@ export class WalletObserver<
481
483
  ]);
482
484
 
483
485
  const data = cbor.map((val) =>
484
- Cardano.Address.fromBytes(typedHex(val)).toBech32()
486
+ Cardano.Address.fromBytes(typedHex(val)).toBech32(),
485
487
  );
486
488
 
487
489
  const end = performance.now();
@@ -499,7 +501,7 @@ export class WalletObserver<
499
501
  getUnusedAddresses = async (): Promise<string[]> => {
500
502
  if (!this.api) {
501
503
  throw new Error(
502
- "Attempted to query unused addresses without an API instance."
504
+ "Attempted to query unused addresses without an API instance.",
503
505
  );
504
506
  }
505
507
 
@@ -512,7 +514,7 @@ export class WalletObserver<
512
514
  ]);
513
515
 
514
516
  const data = cbor.map((val) =>
515
- Cardano.Address.fromBytes(typedHex(val)).toBech32()
517
+ Cardano.Address.fromBytes(typedHex(val)).toBech32(),
516
518
  );
517
519
 
518
520
  const end = performance.now();
@@ -541,8 +543,8 @@ export class WalletObserver<
541
543
  ]);
542
544
 
543
545
  const data = cbor?.map((val) => {
544
- let txOutput = Serialization.TransactionUnspentOutput.fromCbor(
545
- typedHex(val)
546
+ const txOutput = Serialization.TransactionUnspentOutput.fromCbor(
547
+ typedHex(val),
546
548
  );
547
549
 
548
550
  // These methods must be bound to their initial creation instance.
@@ -586,8 +588,8 @@ export class WalletObserver<
586
588
  ]);
587
589
 
588
590
  const data = cbor?.map((val) => {
589
- let txOutput = Serialization.TransactionUnspentOutput.fromCbor(
590
- typedHex(val)
591
+ const txOutput = Serialization.TransactionUnspentOutput.fromCbor(
592
+ typedHex(val),
591
593
  );
592
594
 
593
595
  // These methods must be bound to their initial creation instance.
@@ -611,7 +613,7 @@ export class WalletObserver<
611
613
  * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.
612
614
  */
613
615
  private __metadataResolverWithCache = async (
614
- assetIds: string[]
616
+ assetIds: string[],
615
617
  ): Promise<Map<string, AssetMetadata>> => {
616
618
  const start = performance.now();
617
619
 
@@ -638,7 +640,7 @@ export class WalletObserver<
638
640
  newMetadata = await this._options.metadataResolver(
639
641
  assetIds.map(normalizeAssetIdWithDot),
640
642
  normalizeAssetIdWithDot,
641
- isAdaAsset
643
+ isAdaAsset,
642
644
  );
643
645
  } catch (e) {
644
646
  attempts++;
@@ -649,7 +651,7 @@ export class WalletObserver<
649
651
  newMetadata = await this.fallbackMetadataResolver(
650
652
  assetIds.map(normalizeAssetIdWithDot),
651
653
  normalizeAssetIdWithDot,
652
- isAdaAsset
654
+ isAdaAsset,
653
655
  );
654
656
  }
655
657
 
@@ -674,7 +676,7 @@ export class WalletObserver<
674
676
  map.set(normalizeAssetIdWithDot(id), {
675
677
  assetId: normalizeAssetIdWithDot(id),
676
678
  decimals: 6,
677
- } as AssetMetadata)
679
+ } as AssetMetadata),
678
680
  );
679
681
 
680
682
  return map;
@@ -1,5 +1,5 @@
1
1
  import {
2
- EWalletObserverEventValues,
2
+ IWalletObserverEventValues,
3
3
  TWalletObserverEventFunction,
4
4
  } from "../@types/events.js";
5
5
  import { getEventKey } from "../utils/hashing.js";
@@ -10,7 +10,8 @@ import { getEventKey } from "../utils/hashing.js";
10
10
  */
11
11
  export class WalletObserverEvent {
12
12
  private _eventTarget: EventTarget;
13
- private _handlers: Map<string, Function> = new Map();
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ private _handlers: Map<string, (...params: any) => void> = new Map();
14
15
 
15
16
  constructor() {
16
17
  this._eventTarget = new EventTarget();
@@ -21,14 +22,14 @@ export class WalletObserverEvent {
21
22
  *
22
23
  * @template E - The event type.
23
24
  * @param {E} event - The event to dispatch.
24
- * @param {EWalletObserverEventValues[E]} [data] - The data to pass with the event.
25
+ * @param {IWalletObserverEventValues[E]} [data] - The data to pass with the event.
25
26
  */
26
- dispatch = <E extends keyof EWalletObserverEventValues>(
27
+ dispatch = <E extends keyof IWalletObserverEventValues>(
27
28
  event: E,
28
- data?: EWalletObserverEventValues[E]
29
+ data?: IWalletObserverEventValues[E],
29
30
  ) => {
30
31
  this._eventTarget.dispatchEvent(
31
- new CustomEvent(event as string, { detail: data })
32
+ new CustomEvent(event as string, { detail: data }),
32
33
  );
33
34
  };
34
35
 
@@ -40,9 +41,9 @@ export class WalletObserverEvent {
40
41
  * @param {TWalletObserverEventFunction<E>} callback - The callback function to execute when the event is triggered.
41
42
  * @returns {void}
42
43
  */
43
- addEventListener = <E extends keyof EWalletObserverEventValues>(
44
+ addEventListener = <E extends keyof IWalletObserverEventValues>(
44
45
  event: E,
45
- callback: TWalletObserverEventFunction<E>
46
+ callback: TWalletObserverEventFunction<E>,
46
47
  ): void => {
47
48
  const key = getEventKey(event, callback);
48
49
 
@@ -70,10 +71,10 @@ export class WalletObserverEvent {
70
71
  * @param {TWalletObserverEventFunction<E>} callback - The callback function to remove.
71
72
  * @param {boolean | EventListenerOptions} [options] - Additional options for removing the listener.
72
73
  */
73
- removeEventListener = <E extends keyof EWalletObserverEventValues>(
74
+ removeEventListener = <E extends keyof IWalletObserverEventValues>(
74
75
  event: E,
75
76
  callback: TWalletObserverEventFunction<E>,
76
- options?: boolean | EventListenerOptions
77
+ options?: boolean | EventListenerOptions,
77
78
  ) => {
78
79
  const key = getEventKey(event, callback);
79
80
  const func = this._handlers.get(key);
@@ -83,7 +84,7 @@ export class WalletObserverEvent {
83
84
  this._eventTarget.removeEventListener(
84
85
  event as string,
85
86
  func as unknown as EventListenerOrEventListenerObject,
86
- options
87
+ options,
87
88
  );
88
89
  }
89
90
  };
@@ -92,9 +93,9 @@ export class WalletObserverEvent {
92
93
  * Queries the currently registered events. This is useful
93
94
  * if you want to expose these and remove any.
94
95
  *
95
- * @returns {Map<string, Function>} - A map of registered event handlers.
96
+ * @returns {Map<string, () => void>} - A map of registered event handlers.
96
97
  */
97
- eventList(): Map<string, Function> {
98
+ eventList(): Map<string, () => void> {
98
99
  return this._handlers;
99
100
  }
100
101
  }
@@ -2,10 +2,16 @@ import { TAddressDetails } from "../@types/utils.js";
2
2
  import { getCardanoCore } from "../utils/getLibs.js";
3
3
 
4
4
  export class WalletObserverUtils {
5
+ public network: number;
6
+ public Cardano: typeof import("@cardano-sdk/core").Cardano;
7
+
5
8
  private constructor(
6
- public network: number,
7
- public Cardano: typeof import("@cardano-sdk/core").Cardano
8
- ) {}
9
+ network: number,
10
+ Cardano: typeof import("@cardano-sdk/core").Cardano,
11
+ ) {
12
+ this.network = network;
13
+ this.Cardano = Cardano;
14
+ }
9
15
 
10
16
  static async new(network: number): Promise<WalletObserverUtils> {
11
17
  const cardano = await getCardanoCore().then(({ Cardano }) => Cardano);
@@ -23,7 +29,7 @@ export class WalletObserverUtils {
23
29
  }
24
30
 
25
31
  const Address = this.Cardano.BaseAddress.fromAddress(
26
- this.Cardano.Address.fromBech32(address)
32
+ this.Cardano.Address.fromBech32(address),
27
33
  );
28
34
 
29
35
  return {
@@ -40,7 +46,7 @@ export class WalletObserverUtils {
40
46
 
41
47
  const stakingAddress = this.Cardano.RewardAddress.fromCredentials(
42
48
  this.network,
43
- stakingCredential
49
+ stakingCredential,
44
50
  );
45
51
  return stakingAddress.toAddress().toBech32();
46
52
  }
@@ -28,16 +28,16 @@ describe("WalletObserver", async () => {
28
28
  it("should throw appropriate errors before connected", () => {
29
29
  const observer = new WalletObserver();
30
30
  expect(() => observer.getBalanceMap()).toThrowError(
31
- "Attempted to query balance without an API instance."
31
+ "Attempted to query balance without an API instance.",
32
32
  );
33
33
  expect(() => observer.getNetwork()).toThrowError(
34
- "Attempted to query network without an API instance."
34
+ "Attempted to query network without an API instance.",
35
35
  );
36
36
  expect(() => observer.syncApi()).toThrowError(
37
- "A wallet is required to be passed as a parameter, or to be defined in the class."
37
+ "A wallet is required to be passed as a parameter, or to be defined in the class.",
38
38
  );
39
39
  expect(() => observer.sync()).toThrowError(
40
- "Attempted to perform a sync operation without a connected wallet."
40
+ "Attempted to perform a sync operation without a connected wallet.",
41
41
  );
42
42
  });
43
43
 
@@ -46,7 +46,7 @@ describe("WalletObserver", async () => {
46
46
  expect(() =>
47
47
  new WalletObserver({
48
48
  connectTimeout: 10,
49
- }).connectWallet("flint")
49
+ }).connectWallet("flint"),
50
50
  ).toThrowError("Wallet extension not found in the global context.");
51
51
  });
52
52
  });
@@ -93,7 +93,7 @@ describe("WalletObserver", async () => {
93
93
  test("with parameters", () => {
94
94
  const handler: TMetadataResolverFunc<IAssetAmountMetadata> = async (
95
95
  ids: string[],
96
- normalize
96
+ normalize,
97
97
  ) => {
98
98
  const metadata = ids.map((id) => ({ decimals: 6, assetId: id }));
99
99
  const map = new Map<string, IAssetAmountMetadata>();
@@ -148,18 +148,11 @@ describe("WalletObserver", async () => {
148
148
  await observer.connectWallet("eternl");
149
149
  expect(spiedDispatch).toHaveBeenNthCalledWith(
150
150
  1,
151
- EWalletObserverEvents.CONNECT_WALLET_START
152
- );
153
- expect(spiedDispatch).toHaveBeenNthCalledWith(
154
- 2,
155
- EWalletObserverEvents.CONNECT_WALLET_END,
156
- {
157
- extension: "eternl",
158
- }
151
+ EWalletObserverEvents.CONNECT_WALLET_START,
159
152
  );
160
153
 
161
154
  expect(
162
- window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY)
155
+ window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY),
163
156
  ).toBeNull();
164
157
  expect(observer.activeWallet).toEqual("eternl");
165
158
  expect(observer.api).toBeDefined();
@@ -167,24 +160,24 @@ describe("WalletObserver", async () => {
167
160
 
168
161
  const syncResults = await observer.sync();
169
162
  expect(spiedDispatch).toHaveBeenNthCalledWith(
170
- 3,
171
- EWalletObserverEvents.SYNCING_WALLET_START
163
+ 2,
164
+ EWalletObserverEvents.SYNCING_WALLET_START,
172
165
  );
173
166
  expect(spiedDispatch).toHaveBeenNthCalledWith(
174
- 4,
175
- EWalletObserverEvents.GET_BALANCE_MAP_START
167
+ 3,
168
+ EWalletObserverEvents.GET_BALANCE_MAP_START,
176
169
  );
177
170
  expect(spiedDispatch).toHaveBeenNthCalledWith(
178
- 5,
171
+ 4,
179
172
  EWalletObserverEvents.GET_BALANCE_MAP_END,
180
173
  {
181
174
  balanceMap: expect.objectContaining({
182
175
  size: assetIds.length,
183
176
  }),
184
- }
177
+ },
185
178
  );
186
179
  expect(spiedDispatch).toHaveBeenNthCalledWith(
187
- 6,
180
+ 5,
188
181
  EWalletObserverEvents.SYNCING_WALLET_END,
189
182
  expect.objectContaining({
190
183
  balanceMap: expect.objectContaining({
@@ -193,7 +186,7 @@ describe("WalletObserver", async () => {
193
186
  network,
194
187
  unusedAddresses,
195
188
  usedAddresses,
196
- })
189
+ }),
197
190
  );
198
191
 
199
192
  expect(syncResults.balanceMap.size).toEqual(assetIds.length);
@@ -208,7 +201,7 @@ describe("WalletObserver", async () => {
208
201
  });
209
202
  const spiedOnSyncApi = spyOn(observer, "syncApi");
210
203
  expect(
211
- window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY)
204
+ window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY),
212
205
  ).toBeNull();
213
206
 
214
207
  await observer.connectWallet("eternl");
@@ -224,7 +217,7 @@ describe("WalletObserver", async () => {
224
217
  expect(syncResults.unusedAddresses).toEqual(unusedAddresses);
225
218
  expect(syncResults.usedAddresses).toEqual(usedAddresses);
226
219
  expect(
227
- window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY)
220
+ window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY),
228
221
  ).toEqual('{"activeWallet":"eternl"}');
229
222
  });
230
223
  });
@@ -243,7 +236,7 @@ describe("WalletObserver", async () => {
243
236
 
244
237
  expect(observer.activeWallet).toEqual("eternl");
245
238
  expect(
246
- window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY)
239
+ window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY),
247
240
  ).toEqual('{"activeWallet":"eternl"}');
248
241
 
249
242
  await observer.sync();
@@ -256,11 +249,11 @@ describe("WalletObserver", async () => {
256
249
  expect(observer.activeWallet).toBeUndefined();
257
250
  expect(observer.getCachedAssetMetadata().size).not.toEqual(0);
258
251
  expect(
259
- window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY)
252
+ window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY),
260
253
  ).toBeNull();
261
254
  expect(spiedDispatch).toHaveBeenNthCalledWith(
262
255
  7,
263
- EWalletObserverEvents.DISCONNECT
256
+ EWalletObserverEvents.DISCONNECT,
264
257
  );
265
258
  expect(spiedOnGetPeerConnect).not.toHaveBeenCalled();
266
259
  });
@@ -290,11 +283,11 @@ describe("WalletObserver", async () => {
290
283
  icon: undefined,
291
284
  name: "My Test dApp",
292
285
  instance: data.instance,
293
- })
286
+ }),
294
287
  );
295
288
 
296
289
  // Simulate injection.
297
- // @ts-ignore
290
+ // @ts-expect-error Simulating the actual function.
298
291
  data.instance.__testStartServer();
299
292
  expect(spiedOnConnect).toHaveBeenCalledWith("eternl-p2p");
300
293