@sundaeswap/wallet-lite 0.0.97 → 0.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +4 -2
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js +26 -0
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js.map +1 -0
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +4 -2
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js +21 -0
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js.map +1 -0
- package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.d.ts +10 -0
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.d.ts.map +1 -0
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +3 -6
- package/src/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.ts +23 -0
- package/src/react-components/__tests__/RenderWallet.test.tsx +13 -2
- package/src/react-components/__tests__/hooks/useAvailableExtensions.test.tsx +12 -1
- package/src/react-components/__tests__/hooks/useWalletObserver.test.tsx +20 -11
- package/src/react-components/__tests__/hooks/useWalletObserverRef.test.tsx +19 -10
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js +0 -28
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js.map +0 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js +0 -22
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js.map +0 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.d.ts +0 -12
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.d.ts.map +0 -1
- package/src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts +0 -30
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
WalletObserverContext,
|
|
8
8
|
} from "../contexts/observer/index.js";
|
|
9
9
|
import { useDerivedState } from "./hooks/effects/useDerivedState.js";
|
|
10
|
-
import {
|
|
10
|
+
import { useSyncWalletWithInterval } from "./hooks/effects/useSyncWalletWithInterval.js";
|
|
11
11
|
import { useProviderWalletObserverRef } from "./hooks/useProviderWalletObserverRef.js";
|
|
12
12
|
import { useWalletObserverState } from "./hooks/useWalletObserverState.js";
|
|
13
13
|
|
|
@@ -30,11 +30,8 @@ const WalletObserverProvider: FC<
|
|
|
30
30
|
} = useProviderWalletObserverRef(options?.observerOptions, options?.hooks);
|
|
31
31
|
const state = useWalletObserverState(observerRef.current);
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
state.syncWallet,
|
|
36
|
-
options?.refreshInterval,
|
|
37
|
-
);
|
|
33
|
+
// Enable syncing.
|
|
34
|
+
useSyncWalletWithInterval(state.syncWallet, options?.refreshInterval);
|
|
38
35
|
|
|
39
36
|
const derivedState = useDerivedState(observerRef.current, {
|
|
40
37
|
usedAddresses: state.usedAddresses,
|
package/src/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/react-query";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This hook is responsible for attaching
|
|
5
|
+
* calling the sync function on an interval.
|
|
6
|
+
* If set to 0, then the refresh interval is not attached.
|
|
7
|
+
*
|
|
8
|
+
* @param syncWalletFn
|
|
9
|
+
* @param refreshInterval
|
|
10
|
+
*/
|
|
11
|
+
export const useSyncWalletWithInterval = (
|
|
12
|
+
syncWalletFn: () => Promise<void>,
|
|
13
|
+
refreshInterval?: number,
|
|
14
|
+
) => {
|
|
15
|
+
useQuery({
|
|
16
|
+
queryKey: [refreshInterval, syncWalletFn],
|
|
17
|
+
queryFn: syncWalletFn,
|
|
18
|
+
refetchInterval: refreshInterval,
|
|
19
|
+
enabled: refreshInterval ? refreshInterval > 0 : false,
|
|
20
|
+
refetchOnWindowFocus: true,
|
|
21
|
+
refetchOnReconnect: true,
|
|
22
|
+
});
|
|
23
|
+
};
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
+
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
1
3
|
import { render } from "@testing-library/react";
|
|
2
4
|
import { userEvent } from "@testing-library/user-event";
|
|
3
5
|
import { describe, expect, it } from "bun:test";
|
|
6
|
+
import { FC, PropsWithChildren } from "react";
|
|
4
7
|
|
|
5
|
-
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
6
8
|
import {
|
|
7
9
|
RenderWallet,
|
|
8
10
|
TUseWalletObserverState,
|
|
9
11
|
WalletObserverProvider,
|
|
10
12
|
} from "../../index.js";
|
|
11
13
|
|
|
14
|
+
const client = new QueryClient();
|
|
15
|
+
const QueryProvider: FC<PropsWithChildren> = ({ children }) => (
|
|
16
|
+
<QueryClientProvider client={client}>{children}</QueryClientProvider>
|
|
17
|
+
);
|
|
18
|
+
|
|
12
19
|
const TestComponent = (
|
|
13
20
|
state: Omit<
|
|
14
21
|
TUseWalletObserverState<IAssetAmountMetadata>,
|
|
@@ -40,7 +47,11 @@ describe("RenderWallet", () => {
|
|
|
40
47
|
<RenderWallet render={TestComponent} />,
|
|
41
48
|
{
|
|
42
49
|
wrapper(props) {
|
|
43
|
-
return
|
|
50
|
+
return (
|
|
51
|
+
<QueryProvider>
|
|
52
|
+
<WalletObserverProvider {...props} />
|
|
53
|
+
</QueryProvider>
|
|
54
|
+
);
|
|
44
55
|
},
|
|
45
56
|
},
|
|
46
57
|
);
|
|
@@ -3,6 +3,8 @@ import { act } from "@testing-library/react";
|
|
|
3
3
|
import { renderHook } from "@testing-library/react-hooks";
|
|
4
4
|
import { describe, expect, it } from "bun:test";
|
|
5
5
|
|
|
6
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
7
|
+
import { FC, PropsWithChildren } from "react";
|
|
6
8
|
import { mockedEternlWallet } from "../../../../../setup-tests.js";
|
|
7
9
|
import {
|
|
8
10
|
IWalletObserverProviderProps,
|
|
@@ -12,13 +14,22 @@ import {
|
|
|
12
14
|
|
|
13
15
|
const INTERVAL_AMOUNT = 10;
|
|
14
16
|
|
|
17
|
+
const client = new QueryClient();
|
|
18
|
+
const QueryProvider: FC<PropsWithChildren> = ({ children }) => (
|
|
19
|
+
<QueryClientProvider client={client}>{children}</QueryClientProvider>
|
|
20
|
+
);
|
|
21
|
+
|
|
15
22
|
describe("useAvailableExtensions", () => {
|
|
16
23
|
it("should correctly retrieve the instance", async () => {
|
|
17
24
|
const { result } = renderHook<
|
|
18
25
|
IWalletObserverProviderProps,
|
|
19
26
|
ReturnType<typeof useAvailableExtensions>
|
|
20
27
|
>(() => useAvailableExtensions(INTERVAL_AMOUNT), {
|
|
21
|
-
wrapper: (props) =>
|
|
28
|
+
wrapper: (props) => (
|
|
29
|
+
<QueryProvider>
|
|
30
|
+
<WalletObserverProvider {...props} />
|
|
31
|
+
</QueryProvider>
|
|
32
|
+
),
|
|
22
33
|
});
|
|
23
34
|
|
|
24
35
|
act(() => {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { Cardano } from "@cardano-sdk/core";
|
|
2
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
1
3
|
import { act, renderHook } from "@testing-library/react-hooks";
|
|
2
4
|
import { describe, expect, it } from "bun:test";
|
|
5
|
+
import { FC, PropsWithChildren } from "react";
|
|
3
6
|
|
|
4
|
-
import { Cardano } from "@cardano-sdk/core";
|
|
5
7
|
import { mockWalletAssetIds } from "../../../__data__/assets.js";
|
|
6
8
|
import {
|
|
7
9
|
mockNetwork,
|
|
@@ -15,6 +17,11 @@ import {
|
|
|
15
17
|
useWalletObserver,
|
|
16
18
|
} from "../../../index.js";
|
|
17
19
|
|
|
20
|
+
const client = new QueryClient();
|
|
21
|
+
const QueryProvider: FC<PropsWithChildren> = ({ children }) => (
|
|
22
|
+
<QueryClientProvider client={client}>{children}</QueryClientProvider>
|
|
23
|
+
);
|
|
24
|
+
|
|
18
25
|
describe("useWalletObserver", () => {
|
|
19
26
|
it("should correctly retrieve the context", async () => {
|
|
20
27
|
const { result } = renderHook<
|
|
@@ -22,16 +29,18 @@ describe("useWalletObserver", () => {
|
|
|
22
29
|
ReturnType<typeof useWalletObserver>
|
|
23
30
|
>(() => useWalletObserver(), {
|
|
24
31
|
wrapper: (props) => (
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
...
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
<QueryProvider>
|
|
33
|
+
<WalletObserverProvider
|
|
34
|
+
{...{
|
|
35
|
+
...props,
|
|
36
|
+
observerOptions: {
|
|
37
|
+
...props.options?.observerOptions,
|
|
38
|
+
// Quick resolve time for tests.
|
|
39
|
+
connectTimeout: 10,
|
|
40
|
+
},
|
|
41
|
+
}}
|
|
42
|
+
/>
|
|
43
|
+
</QueryProvider>
|
|
35
44
|
),
|
|
36
45
|
});
|
|
37
46
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
1
2
|
import { renderHook } from "@testing-library/react-hooks";
|
|
2
3
|
import { describe, expect, it } from "bun:test";
|
|
4
|
+
import { FC, PropsWithChildren } from "react";
|
|
3
5
|
|
|
4
6
|
import { WalletObserver } from "../../../classes/WalletObserver.class.js";
|
|
5
7
|
import {
|
|
@@ -8,6 +10,11 @@ import {
|
|
|
8
10
|
} from "../../../index.js";
|
|
9
11
|
import { useProviderWalletObserverRef } from "../../WalletObserverProvider/hooks/useProviderWalletObserverRef.js";
|
|
10
12
|
|
|
13
|
+
const client = new QueryClient();
|
|
14
|
+
const QueryProvider: FC<PropsWithChildren> = ({ children }) => (
|
|
15
|
+
<QueryClientProvider client={client}>{children}</QueryClientProvider>
|
|
16
|
+
);
|
|
17
|
+
|
|
11
18
|
describe("useWalletObserverRef", () => {
|
|
12
19
|
it("should correctly retrieve the instance", async () => {
|
|
13
20
|
const { result } = renderHook<
|
|
@@ -15,16 +22,18 @@ describe("useWalletObserverRef", () => {
|
|
|
15
22
|
ReturnType<typeof useProviderWalletObserverRef>
|
|
16
23
|
>(() => useProviderWalletObserverRef(), {
|
|
17
24
|
wrapper: (props) => (
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
...
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
<QueryProvider>
|
|
26
|
+
<WalletObserverProvider
|
|
27
|
+
{...{
|
|
28
|
+
...props,
|
|
29
|
+
observerOptions: {
|
|
30
|
+
...props.options?.observerOptions,
|
|
31
|
+
// Quick resolve time for tests.
|
|
32
|
+
connectTimeout: 10,
|
|
33
|
+
},
|
|
34
|
+
}}
|
|
35
|
+
/>
|
|
36
|
+
</QueryProvider>
|
|
28
37
|
),
|
|
29
38
|
});
|
|
30
39
|
|
package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useProviderRefreshInterval = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
/**
|
|
9
|
-
* Internal use only. This hook is responsible for attaching
|
|
10
|
-
* a refresh interval to the WalletObserver. If set to 0, then
|
|
11
|
-
* the refresh interval is not attached.
|
|
12
|
-
*
|
|
13
|
-
* @param observer
|
|
14
|
-
* @param refreshInterval
|
|
15
|
-
* @param syncWallet
|
|
16
|
-
*/
|
|
17
|
-
var useProviderRefreshInterval = exports.useProviderRefreshInterval = function useProviderRefreshInterval(observer, syncWallet, refreshInterval) {
|
|
18
|
-
(0, _react.useEffect)(function () {
|
|
19
|
-
if (!refreshInterval) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
var interval = setInterval(syncWallet, refreshInterval);
|
|
23
|
-
return function () {
|
|
24
|
-
clearInterval(interval);
|
|
25
|
-
};
|
|
26
|
-
}, [refreshInterval, syncWallet, observer]);
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=useProviderRefreshInterval.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useProviderRefreshInterval.js","names":["_react","require","useProviderRefreshInterval","exports","observer","syncWallet","refreshInterval","useEffect","interval","setInterval","clearInterval"],"sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { WalletObserver } from \"../../../../classes/WalletObserver.class.js\";\n\n/**\n * Internal use only. This hook is responsible for attaching\n * a refresh interval to the WalletObserver. If set to 0, then\n * the refresh interval is not attached.\n *\n * @param observer\n * @param refreshInterval\n * @param syncWallet\n */\nexport const useProviderRefreshInterval = (\n observer: WalletObserver,\n syncWallet: () => Promise<void>,\n refreshInterval?: number,\n) => {\n useEffect(() => {\n if (!refreshInterval) {\n return;\n }\n\n const interval = setInterval(syncWallet, refreshInterval);\n\n return () => {\n clearInterval(interval);\n };\n }, [refreshInterval, syncWallet, observer]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAA7BA,0BAA0BA,CACrCE,QAAwB,EACxBC,UAA+B,EAC/BC,eAAwB,EACrB;EACH,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAI,CAACD,eAAe,EAAE;MACpB;IACF;IAEA,IAAME,QAAQ,GAAGC,WAAW,CAACJ,UAAU,EAAEC,eAAe,CAAC;IAEzD,OAAO,YAAM;MACXI,aAAa,CAACF,QAAQ,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CAACF,eAAe,EAAED,UAAU,EAAED,QAAQ,CAAC,CAAC;AAC7C,CAAC","ignoreList":[]}
|
package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Internal use only. This hook is responsible for attaching
|
|
4
|
-
* a refresh interval to the WalletObserver. If set to 0, then
|
|
5
|
-
* the refresh interval is not attached.
|
|
6
|
-
*
|
|
7
|
-
* @param observer
|
|
8
|
-
* @param refreshInterval
|
|
9
|
-
* @param syncWallet
|
|
10
|
-
*/
|
|
11
|
-
export const useProviderRefreshInterval = (observer, syncWallet, refreshInterval) => {
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
if (!refreshInterval) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const interval = setInterval(syncWallet, refreshInterval);
|
|
17
|
-
return () => {
|
|
18
|
-
clearInterval(interval);
|
|
19
|
-
};
|
|
20
|
-
}, [refreshInterval, syncWallet, observer]);
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=useProviderRefreshInterval.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useProviderRefreshInterval.js","names":["useEffect","useProviderRefreshInterval","observer","syncWallet","refreshInterval","interval","setInterval","clearInterval"],"sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { WalletObserver } from \"../../../../classes/WalletObserver.class.js\";\n\n/**\n * Internal use only. This hook is responsible for attaching\n * a refresh interval to the WalletObserver. If set to 0, then\n * the refresh interval is not attached.\n *\n * @param observer\n * @param refreshInterval\n * @param syncWallet\n */\nexport const useProviderRefreshInterval = (\n observer: WalletObserver,\n syncWallet: () => Promise<void>,\n refreshInterval?: number,\n) => {\n useEffect(() => {\n if (!refreshInterval) {\n return;\n }\n\n const interval = setInterval(syncWallet, refreshInterval);\n\n return () => {\n clearInterval(interval);\n };\n }, [refreshInterval, syncWallet, observer]);\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAIjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGA,CACxCC,QAAwB,EACxBC,UAA+B,EAC/BC,eAAwB,KACrB;EACHJ,SAAS,CAAC,MAAM;IACd,IAAI,CAACI,eAAe,EAAE;MACpB;IACF;IAEA,MAAMC,QAAQ,GAAGC,WAAW,CAACH,UAAU,EAAEC,eAAe,CAAC;IAEzD,OAAO,MAAM;MACXG,aAAa,CAACF,QAAQ,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CAACD,eAAe,EAAED,UAAU,EAAED,QAAQ,CAAC,CAAC;AAC7C,CAAC","ignoreList":[]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { WalletObserver } from "../../../../classes/WalletObserver.class.js";
|
|
2
|
-
/**
|
|
3
|
-
* Internal use only. This hook is responsible for attaching
|
|
4
|
-
* a refresh interval to the WalletObserver. If set to 0, then
|
|
5
|
-
* the refresh interval is not attached.
|
|
6
|
-
*
|
|
7
|
-
* @param observer
|
|
8
|
-
* @param refreshInterval
|
|
9
|
-
* @param syncWallet
|
|
10
|
-
*/
|
|
11
|
-
export declare const useProviderRefreshInterval: (observer: WalletObserver, syncWallet: () => Promise<void>, refreshInterval?: number) => void;
|
|
12
|
-
//# sourceMappingURL=useProviderRefreshInterval.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useProviderRefreshInterval.d.ts","sourceRoot":"","sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,aAC3B,cAAc,cACZ,MAAM,QAAQ,IAAI,CAAC,oBACb,MAAM,SAazB,CAAC"}
|
package/src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
|
|
3
|
-
import { WalletObserver } from "../../../../classes/WalletObserver.class.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Internal use only. This hook is responsible for attaching
|
|
7
|
-
* a refresh interval to the WalletObserver. If set to 0, then
|
|
8
|
-
* the refresh interval is not attached.
|
|
9
|
-
*
|
|
10
|
-
* @param observer
|
|
11
|
-
* @param refreshInterval
|
|
12
|
-
* @param syncWallet
|
|
13
|
-
*/
|
|
14
|
-
export const useProviderRefreshInterval = (
|
|
15
|
-
observer: WalletObserver,
|
|
16
|
-
syncWallet: () => Promise<void>,
|
|
17
|
-
refreshInterval?: number,
|
|
18
|
-
) => {
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!refreshInterval) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const interval = setInterval(syncWallet, refreshInterval);
|
|
25
|
-
|
|
26
|
-
return () => {
|
|
27
|
-
clearInterval(interval);
|
|
28
|
-
};
|
|
29
|
-
}, [refreshInterval, syncWallet, observer]);
|
|
30
|
-
};
|