solid-wagmi 0.1.0 → 0.2.1
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/README.md +20 -0
- package/dist/esm/src/context.js.map +1 -0
- package/dist/esm/src/errors/context.js +12 -0
- package/dist/esm/src/errors/context.js.map +1 -0
- package/dist/esm/src/exports/actions.js.map +1 -0
- package/dist/esm/src/exports/chains.js.map +1 -0
- package/dist/esm/src/exports/connectors.js.map +1 -0
- package/dist/esm/{exports → src/exports}/index.js +4 -0
- package/dist/esm/src/exports/index.js.map +1 -0
- package/dist/esm/src/exports/query.js.map +1 -0
- package/dist/esm/{hooks → src/hooks}/useAccount.js +1 -1
- package/dist/esm/src/hooks/useAccount.js.map +1 -0
- package/dist/esm/src/hooks/useAccount.test.js +16 -0
- package/dist/esm/src/hooks/useAccount.test.js.map +1 -0
- package/dist/esm/src/hooks/useBalance.js +15 -0
- package/dist/esm/src/hooks/useBalance.js.map +1 -0
- package/dist/esm/src/hooks/useBalance.test.js +64 -0
- package/dist/esm/src/hooks/useBalance.test.js.map +1 -0
- package/dist/esm/{hooks → src/hooks}/useChainId.js +1 -1
- package/dist/esm/src/hooks/useChainId.js.map +1 -0
- package/dist/esm/src/hooks/useChainId.test.js +15 -0
- package/dist/esm/src/hooks/useChainId.test.js.map +1 -0
- package/dist/esm/{hooks → src/hooks}/useConfig.js +2 -2
- package/dist/esm/src/hooks/useConfig.js.map +1 -0
- package/dist/esm/src/hooks/useConfig.test.js +19 -0
- package/dist/esm/src/hooks/useConfig.test.js.map +1 -0
- package/dist/esm/{hooks → src/hooks}/useConnect.js +1 -1
- package/dist/esm/src/hooks/useConnect.js.map +1 -0
- package/dist/esm/src/hooks/useConnect.test.js +19 -0
- package/dist/esm/src/hooks/useConnect.test.js.map +1 -0
- package/dist/esm/{hooks → src/hooks}/useConnections.js +1 -1
- package/dist/esm/src/hooks/useConnections.js.map +1 -0
- package/dist/esm/src/hooks/useConnections.test.js +13 -0
- package/dist/esm/src/hooks/useConnections.test.js.map +1 -0
- package/dist/esm/{hooks → src/hooks}/useDisconnect.js +1 -1
- package/dist/esm/src/hooks/useDisconnect.js.map +1 -0
- package/dist/esm/src/hooks/useDisconnect.test.js +25 -0
- package/dist/esm/src/hooks/useDisconnect.test.js.map +1 -0
- package/dist/esm/src/hooks/useReadContract.js +24 -0
- package/dist/esm/src/hooks/useReadContract.js.map +1 -0
- package/dist/esm/src/hooks/useReadContract.test.js +16 -0
- package/dist/esm/src/hooks/useReadContract.test.js.map +1 -0
- package/dist/esm/src/hooks/useReadContracts.js +42 -0
- package/dist/esm/src/hooks/useReadContracts.js.map +1 -0
- package/dist/esm/src/hooks/useReadContracts.test.js +26 -0
- package/dist/esm/src/hooks/useReadContracts.test.js.map +1 -0
- package/dist/esm/src/hooks/useWriteContract.js +17 -0
- package/dist/esm/src/hooks/useWriteContract.js.map +1 -0
- package/dist/esm/src/hooks/useWriteContract.test.js +17 -0
- package/dist/esm/src/hooks/useWriteContract.test.js.map +1 -0
- package/dist/esm/src/types/index.js +2 -0
- package/dist/esm/src/types/index.js.map +1 -0
- package/dist/esm/test/chains.js +43 -0
- package/dist/esm/test/chains.js.map +1 -0
- package/dist/esm/test/clients.js +41 -0
- package/dist/esm/test/clients.js.map +1 -0
- package/dist/esm/test/config.js +19 -0
- package/dist/esm/test/config.js.map +1 -0
- package/dist/esm/test/constants.js +295 -0
- package/dist/esm/test/constants.js.map +1 -0
- package/dist/esm/test/lib.js +18 -0
- package/dist/esm/test/lib.js.map +1 -0
- package/dist/esm/test/utils.js +27 -0
- package/dist/esm/test/utils.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/src/context.d.ts.map +1 -0
- package/dist/types/{errors → src/errors}/context.d.ts +1 -0
- package/dist/types/src/errors/context.d.ts.map +1 -0
- package/dist/types/src/exports/actions.d.ts.map +1 -0
- package/dist/types/src/exports/chains.d.ts.map +1 -0
- package/dist/types/src/exports/connectors.d.ts.map +1 -0
- package/dist/types/{exports → src/exports}/index.d.ts +4 -0
- package/dist/types/src/exports/index.d.ts.map +1 -0
- package/dist/types/src/exports/query.d.ts.map +1 -0
- package/dist/types/src/hooks/useAccount.d.ts.map +1 -0
- package/dist/types/src/hooks/useAccount.test.d.ts +2 -0
- package/dist/types/src/hooks/useAccount.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useBalance.d.ts +7 -0
- package/dist/types/src/hooks/useBalance.d.ts.map +1 -0
- package/dist/types/src/hooks/useBalance.test.d.ts +2 -0
- package/dist/types/src/hooks/useBalance.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useChainId.d.ts.map +1 -0
- package/dist/types/src/hooks/useChainId.test.d.ts +2 -0
- package/dist/types/src/hooks/useChainId.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useConfig.d.ts +7 -0
- package/dist/types/src/hooks/useConfig.d.ts.map +1 -0
- package/dist/types/src/hooks/useConfig.test.d.ts +2 -0
- package/dist/types/src/hooks/useConfig.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useConnect.d.ts.map +1 -0
- package/dist/types/src/hooks/useConnect.test.d.ts +2 -0
- package/dist/types/src/hooks/useConnect.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useConnections.d.ts.map +1 -0
- package/dist/types/src/hooks/useConnections.test.d.ts +2 -0
- package/dist/types/src/hooks/useConnections.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useDisconnect.d.ts.map +1 -0
- package/dist/types/src/hooks/useDisconnect.test.d.ts +2 -0
- package/dist/types/src/hooks/useDisconnect.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useReadContract.d.ts +10 -0
- package/dist/types/src/hooks/useReadContract.d.ts.map +1 -0
- package/dist/types/src/hooks/useReadContract.test.d.ts +2 -0
- package/dist/types/src/hooks/useReadContract.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useReadContracts.d.ts +10 -0
- package/dist/types/src/hooks/useReadContracts.d.ts.map +1 -0
- package/dist/types/src/hooks/useReadContracts.test.d.ts +2 -0
- package/dist/types/src/hooks/useReadContracts.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useWriteContract.d.ts +13 -0
- package/dist/types/src/hooks/useWriteContract.d.ts.map +1 -0
- package/dist/types/src/hooks/useWriteContract.test.d.ts +2 -0
- package/dist/types/src/hooks/useWriteContract.test.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +25 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/test/chains.d.ts +898 -0
- package/dist/types/test/chains.d.ts.map +1 -0
- package/dist/types/test/clients.d.ts +920 -0
- package/dist/types/test/clients.d.ts.map +1 -0
- package/dist/types/test/config.d.ts +488 -0
- package/dist/types/test/config.d.ts.map +1 -0
- package/dist/types/test/constants.d.ts +1857 -0
- package/dist/types/test/constants.d.ts.map +1 -0
- package/dist/types/test/lib.d.ts +2 -0
- package/dist/types/test/lib.d.ts.map +1 -0
- package/dist/types/test/utils.d.ts +17 -0
- package/dist/types/test/utils.d.ts.map +1 -0
- package/package.json +21 -3
- package/src/errors/context.ts +3 -1
- package/src/exports/index.ts +4 -0
- package/src/hooks/useAccount.ts +1 -1
- package/src/hooks/useBalance.ts +45 -0
- package/src/hooks/useChainId.ts +1 -1
- package/src/hooks/useConfig.ts +14 -4
- package/src/hooks/useConnect.ts +1 -1
- package/src/hooks/useConnections.ts +1 -1
- package/src/hooks/useDisconnect.ts +1 -1
- package/src/hooks/useReadContract.ts +101 -0
- package/src/hooks/useReadContracts.ts +104 -0
- package/src/hooks/useWriteContract.ts +78 -0
- package/src/types/index.ts +116 -0
- package/dist/esm/context.js.map +0 -1
- package/dist/esm/errors/context.js +0 -6
- package/dist/esm/errors/context.js.map +0 -1
- package/dist/esm/exports/actions.js.map +0 -1
- package/dist/esm/exports/chains.js.map +0 -1
- package/dist/esm/exports/connectors.js.map +0 -1
- package/dist/esm/exports/index.js.map +0 -1
- package/dist/esm/exports/query.js.map +0 -1
- package/dist/esm/hooks/useAccount.js.map +0 -1
- package/dist/esm/hooks/useChainId.js.map +0 -1
- package/dist/esm/hooks/useConfig.js.map +0 -1
- package/dist/esm/hooks/useConnect.js.map +0 -1
- package/dist/esm/hooks/useConnections.js.map +0 -1
- package/dist/esm/hooks/useDisconnect.js.map +0 -1
- package/dist/types/context.d.ts.map +0 -1
- package/dist/types/errors/context.d.ts.map +0 -1
- package/dist/types/exports/actions.d.ts.map +0 -1
- package/dist/types/exports/chains.d.ts.map +0 -1
- package/dist/types/exports/connectors.d.ts.map +0 -1
- package/dist/types/exports/index.d.ts.map +0 -1
- package/dist/types/exports/query.d.ts.map +0 -1
- package/dist/types/hooks/useAccount.d.ts.map +0 -1
- package/dist/types/hooks/useChainId.d.ts.map +0 -1
- package/dist/types/hooks/useConfig.d.ts +0 -2
- package/dist/types/hooks/useConfig.d.ts.map +0 -1
- package/dist/types/hooks/useConnect.d.ts.map +0 -1
- package/dist/types/hooks/useConnections.d.ts.map +0 -1
- package/dist/types/hooks/useDisconnect.d.ts.map +0 -1
- /package/dist/esm/{context.js → src/context.js} +0 -0
- /package/dist/esm/{exports → src/exports}/actions.js +0 -0
- /package/dist/esm/{exports → src/exports}/chains.js +0 -0
- /package/dist/esm/{exports → src/exports}/connectors.js +0 -0
- /package/dist/esm/{exports → src/exports}/query.js +0 -0
- /package/dist/types/{context.d.ts → src/context.d.ts} +0 -0
- /package/dist/types/{exports → src/exports}/actions.d.ts +0 -0
- /package/dist/types/{exports → src/exports}/chains.d.ts +0 -0
- /package/dist/types/{exports → src/exports}/connectors.d.ts +0 -0
- /package/dist/types/{exports → src/exports}/query.d.ts +0 -0
- /package/dist/types/{hooks → src/hooks}/useAccount.d.ts +0 -0
- /package/dist/types/{hooks → src/hooks}/useChainId.d.ts +0 -0
- /package/dist/types/{hooks → src/hooks}/useConnect.d.ts +0 -0
- /package/dist/types/{hooks → src/hooks}/useConnections.d.ts +0 -0
- /package/dist/types/{hooks → src/hooks}/useDisconnect.d.ts +0 -0
package/README.md
CHANGED
|
@@ -22,3 +22,23 @@ export const config = createConfig({
|
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
24
|
```
|
|
25
|
+
|
|
26
|
+
# App root
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/solid-query";
|
|
30
|
+
import config from "./config";
|
|
31
|
+
const queryClient = new QueryClient();
|
|
32
|
+
|
|
33
|
+
function AppRoot() {
|
|
34
|
+
return (
|
|
35
|
+
<QueryClientProvider client={queryClient}>
|
|
36
|
+
<WagmiProvider config={config}>
|
|
37
|
+
{props.children}
|
|
38
|
+
</WagmiProvider>
|
|
39
|
+
</QueryClientProvider>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This library does use wagmi's philosophy, to fully understand how you can implement it within your solid.js app, read the [wagmi docs](https://wagmi.sh/react/getting-started) first
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAc,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,aAAa,EAEb,OAAO,EACP,UAAU,GACX,MAAM,UAAU,CAAC;AAOlB,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,EAAY,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,KAK7B;IACC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE;QAC3C,QAAQ;QACR,cAAc;QACd,kBAAkB;KACnB,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC;IAE9D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEtE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG;QAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG;YAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;QAC/B,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class WagmiProviderNotFoundError extends Error {
|
|
2
|
+
constructor() {
|
|
3
|
+
super(WagmiProviderNotFoundError.MESSAGE);
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
Object.defineProperty(WagmiProviderNotFoundError, "MESSAGE", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
configurable: true,
|
|
9
|
+
writable: true,
|
|
10
|
+
value: "`useConfig` must be used withtin <WagmiProvider/>"
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/errors/context.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAGnD;QACE,KAAK,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;;AAJa;;;;WAAU,mDAAmD;GAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../src/exports/actions.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../src/exports/chains.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../../../src/exports/connectors.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -10,11 +10,15 @@ export { WagmiProviderNotFoundError } from "../errors/context.js";
|
|
|
10
10
|
// Hooks
|
|
11
11
|
// ///////////////////////////////////////////////////////////////
|
|
12
12
|
export { useAccount } from "../hooks/useAccount.js";
|
|
13
|
+
export { useBalance } from "../hooks/useBalance.js";
|
|
13
14
|
export { useChainId } from "../hooks/useChainId.js";
|
|
14
15
|
export { useConfig } from "../hooks/useConfig.js";
|
|
15
16
|
export { useConnect } from "../hooks/useConnect.js";
|
|
16
17
|
export { useConnections } from "../hooks/useConnections.js";
|
|
17
18
|
export { useDisconnect } from "../hooks/useDisconnect.js";
|
|
19
|
+
export { useReadContract } from "../hooks/useReadContract.js";
|
|
20
|
+
export { useReadContracts } from "../hooks/useReadContracts.js";
|
|
21
|
+
export { useWriteContract } from "../hooks/useWriteContract.js";
|
|
18
22
|
////////////////////////////////////////////////////////////////////////////////
|
|
19
23
|
// @wagmi/core
|
|
20
24
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,UAAU;AACV,kEAAkE;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,kEAAkE;AAClE,SAAS;AACT,kEAAkE;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,kEAAkE;AAClE,QAAQ;AACR,kEAAkE;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,qCAAqC;AACrC,YAAY;AACZ,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,aAAa;AACb,aAAa;AACb,MAAM,EACN,SAAS,EACT,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,SAAS,EACT,4BAA4B,EAC5B,kBAAkB,EAClB,SAAS,GA2BV,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/exports/query.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { getAccount, watchAccount } from "@wagmi/core";
|
|
|
2
2
|
import { createSignal, onCleanup, onMount } from "solid-js";
|
|
3
3
|
import { useConfig } from "./useConfig.js";
|
|
4
4
|
export function useAccount() {
|
|
5
|
-
const
|
|
5
|
+
const config = useConfig();
|
|
6
6
|
const [account, setAccount] = createSignal(getAccount(config));
|
|
7
7
|
// Watch account
|
|
8
8
|
let cleanup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAccount.js","sourceRoot":"","sources":["../../../../src/hooks/useAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/D,gBAAgB;IAChB,IAAI,OAAqB,CAAC;IAC1B,OAAO,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE7B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import { connect, disconnect } from "@wagmi/core";
|
|
3
|
+
import { accounts } from "../../test/constants.js";
|
|
4
|
+
import { renderHook } from "../../test/lib.js";
|
|
5
|
+
import { useAccount } from "./useAccount.js";
|
|
6
|
+
import { useConfig } from "./useConfig.js";
|
|
7
|
+
test("useAccount", async () => {
|
|
8
|
+
const account = renderHook(useAccount);
|
|
9
|
+
const config = renderHook(useConfig);
|
|
10
|
+
expect(account().address).undefined;
|
|
11
|
+
// Connect mocked account
|
|
12
|
+
await connect(config, { connector: config.connectors[0] });
|
|
13
|
+
expect(account().address).toBe(accounts[0]);
|
|
14
|
+
await disconnect(config, { connector: config.connectors[0] });
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=useAccount.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAccount.test.js","sourceRoot":"","sources":["../../../../src/hooks/useAccount.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAEpC,yBAAyB;IACzB,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/solid-query";
|
|
2
|
+
import { getBalanceQueryOptions, } from "@wagmi/core/query";
|
|
3
|
+
import { useChainId } from "./useChainId.js";
|
|
4
|
+
import { useConfig } from "./useConfig.js";
|
|
5
|
+
export function useBalance(params) {
|
|
6
|
+
const config = useConfig(params);
|
|
7
|
+
const chain = useChainId();
|
|
8
|
+
const options = () => getBalanceQueryOptions(config, { chainId: chain().id, ...params() });
|
|
9
|
+
const enabled = () => Boolean(params().address && (params().query?.enabled ?? true));
|
|
10
|
+
return useQuery(() => ({
|
|
11
|
+
...options(),
|
|
12
|
+
enabled: enabled(),
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useBalance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBalance.js","sourceRoot":"","sources":["../../../../src/hooks/useBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAOjD,OAAO,EACL,sBAAsB,GAKvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAe3C,MAAM,UAAU,UAAU,CAAC,MAAkC;IAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,sBAAsB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjE,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,GAAG,OAAO,EAAE;QACZ,OAAO,EAAE,OAAO,EAAE;KACnB,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { parseEther } from "viem";
|
|
2
|
+
import { beforeEach, test, vi } from "vitest";
|
|
3
|
+
import { testClient } from "../../test/clients.js";
|
|
4
|
+
import { accounts } from "../../test/constants.js";
|
|
5
|
+
import { renderHook } from "../../test/lib.js";
|
|
6
|
+
import { useBalance } from "./useBalance.js";
|
|
7
|
+
const address = accounts[0];
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
try {
|
|
10
|
+
await testClient.mainnet.setBalance({
|
|
11
|
+
address,
|
|
12
|
+
value: parseEther("10000"),
|
|
13
|
+
});
|
|
14
|
+
await testClient.mainnet.mine({ blocks: 1 });
|
|
15
|
+
await testClient.mainnet2.setBalance({ address, value: parseEther("69") });
|
|
16
|
+
await testClient.mainnet2.mine({ blocks: 1 });
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
console.log("ERROR", e);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
test("default", async () => {
|
|
23
|
+
const result = renderHook(() => useBalance(() => ({ address })));
|
|
24
|
+
await vi.waitUntil(() => result.isError, { timeout: 5_000 });
|
|
25
|
+
// const [data] = splitProps(result, ["data"]);
|
|
26
|
+
// expect(data.data).toMatchObject(
|
|
27
|
+
// expect.objectContaining({
|
|
28
|
+
// decimals: expect.any(Number),
|
|
29
|
+
// symbol: expect.any(String),
|
|
30
|
+
// value: expect.any(BigInt),
|
|
31
|
+
// })
|
|
32
|
+
// );
|
|
33
|
+
// expect(data.data).toMatchInlineSnapshot(`
|
|
34
|
+
// {
|
|
35
|
+
// "decimals": 18,
|
|
36
|
+
// "formatted": "10000",
|
|
37
|
+
// "symbol": "ETH",
|
|
38
|
+
// "value": 10000000000000000000000n,
|
|
39
|
+
// }
|
|
40
|
+
// `);
|
|
41
|
+
});
|
|
42
|
+
test("parameters: chainId", async () => {
|
|
43
|
+
// const result = renderHook(() =>
|
|
44
|
+
// useBalance(() => ({ address, chainId: chain.mainnet2.id }))
|
|
45
|
+
// );
|
|
46
|
+
// await vi.waitUntil(() => result.isSuccess, { timeout: 5_000 });
|
|
47
|
+
// const [data] = splitProps(result, ["data"]);
|
|
48
|
+
// expect(data.data).toMatchObject(
|
|
49
|
+
// expect.objectContaining({
|
|
50
|
+
// decimals: expect.any(Number),
|
|
51
|
+
// symbol: expect.any(String),
|
|
52
|
+
// value: expect.any(BigInt),
|
|
53
|
+
// })
|
|
54
|
+
// );
|
|
55
|
+
// expect(data.data).toMatchInlineSnapshot(`
|
|
56
|
+
// {
|
|
57
|
+
// "decimals": 18,
|
|
58
|
+
// "formatted": "69",
|
|
59
|
+
// "symbol": "WAG",
|
|
60
|
+
// "value": 69000000000000000000n,
|
|
61
|
+
// }
|
|
62
|
+
// `);
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=useBalance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBalance.test.js","sourceRoot":"","sources":["../../../../src/hooks/useBalance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE5B,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;YAClC,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACzB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjE,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7D,+CAA+C;IAE/C,mCAAmC;IACnC,8BAA8B;IAC9B,oCAAoC;IACpC,kCAAkC;IAClC,iCAAiC;IACjC,OAAO;IACP,KAAK;IAEL,4CAA4C;IAC5C,MAAM;IACN,sBAAsB;IACtB,4BAA4B;IAC5B,uBAAuB;IACvB,yCAAyC;IACzC,MAAM;IACN,MAAM;AACR,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;IACrC,kCAAkC;IAClC,gEAAgE;IAChE,KAAK;IACL,kEAAkE;IAClE,+CAA+C;IAC/C,mCAAmC;IACnC,8BAA8B;IAC9B,oCAAoC;IACpC,kCAAkC;IAClC,iCAAiC;IACjC,OAAO;IACP,KAAK;IACL,4CAA4C;IAC5C,MAAM;IACN,sBAAsB;IACtB,yBAAyB;IACzB,uBAAuB;IACvB,sCAAsC;IACtC,MAAM;IACN,MAAM;AACR,CAAC,CAAC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { createMemo, createSignal, onCleanup, onMount } from "solid-js";
|
|
|
3
3
|
import { extractChain } from "viem";
|
|
4
4
|
import { useConfig } from "./useConfig.js";
|
|
5
5
|
export function useChainId() {
|
|
6
|
-
const
|
|
6
|
+
const config = useConfig();
|
|
7
7
|
const [chainId, setChainID] = createSignal(getChainId(config));
|
|
8
8
|
// Watch chain id
|
|
9
9
|
let cleanup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChainId.js","sourceRoot":"","sources":["../../../../src/hooks/useChainId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/D,iBAAiB;IACjB,IAAI,OAAqB,CAAC;IAC1B,OAAO,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CACvD,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { mainnet2 } from "../../test/chains.js";
|
|
3
|
+
import { renderHook } from "../../test/lib.js";
|
|
4
|
+
import { useChainId } from "./useChainId.js";
|
|
5
|
+
import { useConfig } from "./useConfig.js";
|
|
6
|
+
describe("useChainId", () => {
|
|
7
|
+
it("default", async () => {
|
|
8
|
+
const chain = renderHook(useChainId);
|
|
9
|
+
const config = renderHook(useConfig);
|
|
10
|
+
expect(chain().id).toMatchInlineSnapshot("1");
|
|
11
|
+
config.setState({ ...config.state, chainId: mainnet2.id });
|
|
12
|
+
expect(chain().id).toMatchInlineSnapshot(`${mainnet2.id}`);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=useChainId.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChainId.test.js","sourceRoot":"","sources":["../../../../src/hooks/useChainId.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAE9C,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useContext } from "solid-js";
|
|
2
2
|
import { WagmiContext } from "../context.js";
|
|
3
3
|
import { WagmiProviderNotFoundError } from "../errors/context.js";
|
|
4
|
-
export function useConfig() {
|
|
5
|
-
const config = useContext(WagmiContext);
|
|
4
|
+
export function useConfig(parameters) {
|
|
5
|
+
const config = parameters?.().config ?? useContext(WagmiContext);
|
|
6
6
|
if (!config)
|
|
7
7
|
throw new WagmiProviderNotFoundError();
|
|
8
8
|
return config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../../../src/hooks/useConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AASlE,MAAM,UAAU,SAAS,CACvB,UAAwC;IAExC,MAAM,MAAM,GAAG,UAAU,EAAE,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAEjE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,0BAA0B,EAAE,CAAC;IAEpD,OAAO,MAAqC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { renderHook as primitiveRenderHook } from "@solidjs/testing-library";
|
|
2
|
+
import { expect, test, vi } from "vitest";
|
|
3
|
+
import { renderHook } from "../../test/lib.js";
|
|
4
|
+
import { WagmiProviderNotFoundError } from "../errors/context.js";
|
|
5
|
+
import { useConfig } from "./useConfig.js";
|
|
6
|
+
test("mounts", async () => {
|
|
7
|
+
const config = renderHook(() => useConfig());
|
|
8
|
+
expect(config).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
test("behavior: throws when not inside Provider", () => {
|
|
11
|
+
vi.spyOn(console, "error").mockImplementation(() => { });
|
|
12
|
+
try {
|
|
13
|
+
primitiveRenderHook(() => useConfig());
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
expect(error).toMatchInlineSnapshot(`[Error: ${WagmiProviderNotFoundError.MESSAGE}]`);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=useConfig.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConfig.test.js","sourceRoot":"","sources":["../../../../src/hooks/useConfig.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IACxB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC;QACH,mBAAmB,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CACjC,WAAW,0BAA0B,CAAC,OAAO,GAAG,CACjD,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { connectMutationOptions } from "@wagmi/core/query";
|
|
|
3
3
|
import { createEffect, onCleanup } from "solid-js";
|
|
4
4
|
import { useConfig } from "./useConfig.js";
|
|
5
5
|
export function useConnect() {
|
|
6
|
-
const
|
|
6
|
+
const config = useConfig();
|
|
7
7
|
const mutationOptions = connectMutationOptions(config);
|
|
8
8
|
const { mutate, mutateAsync, ...result } = useMutation(() => ({
|
|
9
9
|
...mutationOptions,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnect.js","sourceRoot":"","sources":["../../../../src/hooks/useConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,eAAe,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,GAAG,eAAe;KACnB,CAAC,CAAC,CAAC;IAEJ,uEAAuE;IACvE,YAAY,CAAC,GAAG,EAAE;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAC5B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,EACtB,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE;YACzB,IAAI,cAAc,KAAK,WAAW,IAAI,MAAM,KAAK,cAAc;gBAC7D,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC,CACF,CAAC;QACF,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { expect, test, vi } from "vitest";
|
|
2
|
+
import { renderHook } from "../../test/lib.js";
|
|
3
|
+
import { useAccount } from "./useAccount.js";
|
|
4
|
+
import { useConfig } from "./useConfig.js";
|
|
5
|
+
import { useConnect } from "./useConnect.js";
|
|
6
|
+
test("useAccount", async () => {
|
|
7
|
+
const account = renderHook(useAccount);
|
|
8
|
+
const config = renderHook(useConfig);
|
|
9
|
+
const connect = renderHook(useConnect);
|
|
10
|
+
expect(account().address).not.toBeDefined();
|
|
11
|
+
expect(account().status).toEqual("disconnected");
|
|
12
|
+
connect.connect({ connector: config.connectors[0] });
|
|
13
|
+
await vi.waitFor(() => {
|
|
14
|
+
expect(account().isConnected).to.be.true;
|
|
15
|
+
});
|
|
16
|
+
expect(account().address).toBeDefined();
|
|
17
|
+
expect(account().status).toEqual("connected");
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=useConnect.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnect.test.js","sourceRoot":"","sources":["../../../../src/hooks/useConnect.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEvC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjD,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;IAEtD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QACpB,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { getConnections, watchConnections } from "@wagmi/core";
|
|
|
2
2
|
import { createSignal, onCleanup, onMount } from "solid-js";
|
|
3
3
|
import { useConfig } from "./useConfig.js";
|
|
4
4
|
export function useConnections() {
|
|
5
|
-
const
|
|
5
|
+
const config = useConfig();
|
|
6
6
|
const [connections, setConnections] = createSignal(getConnections(config));
|
|
7
7
|
let cleanup;
|
|
8
8
|
onMount(() => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnections.js","sourceRoot":"","sources":["../../../../src/hooks/useConnections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3E,IAAI,OAAiC,CAAC;IACtC,OAAO,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE7B,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { connect } from "@wagmi/core";
|
|
2
|
+
import { expect, test } from "vitest";
|
|
3
|
+
import { renderHook } from "../../test/lib.js";
|
|
4
|
+
import { useConfig } from "./useConfig.js";
|
|
5
|
+
import { useConnections } from "./useConnections.js";
|
|
6
|
+
test("default", async () => {
|
|
7
|
+
const config = renderHook(useConfig);
|
|
8
|
+
const connections = renderHook(() => useConnections());
|
|
9
|
+
expect(connections()).toEqual([]);
|
|
10
|
+
await connect(config, { connector: config.connectors[0] });
|
|
11
|
+
expect(connections().length).toBe(1);
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=useConnections.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnections.test.js","sourceRoot":"","sources":["../../../../src/hooks/useConnections.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACzB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IAEvD,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;IAE5D,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { createMemo } from "solid-js";
|
|
|
4
4
|
import { useConfig } from "./useConfig.js";
|
|
5
5
|
import { useConnections } from "./useConnections.js";
|
|
6
6
|
export function useDisconnect() {
|
|
7
|
-
const
|
|
7
|
+
const config = useConfig();
|
|
8
8
|
const connections = useConnections();
|
|
9
9
|
const mutationOptions = disconnectMutationOptions(config);
|
|
10
10
|
const { mutate, mutateAsync, ...result } = useMutation(() => ({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDisconnect.js","sourceRoot":"","sources":["../../../../src/hooks/useDisconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,GAAG,eAAe;KACnB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3E,OAAO;QACL,GAAG,MAAM;QACT,UAAU;QACV,UAAU,EAAE,MAAM;QAClB,eAAe,EAAE,WAAW;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { connect } from "@wagmi/core";
|
|
2
|
+
import { beforeEach, expect, test, vi } from "vitest";
|
|
3
|
+
import { config } from "../../test/config.js";
|
|
4
|
+
import { renderHook } from "../../test/lib.js";
|
|
5
|
+
import { useAccount } from "./useAccount.js";
|
|
6
|
+
import { useConfig } from "./useConfig.js";
|
|
7
|
+
import { useDisconnect } from "./useDisconnect.js";
|
|
8
|
+
const connector = config.connectors[0];
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await connect(config, { connector });
|
|
11
|
+
});
|
|
12
|
+
test("useDisconnect", async () => {
|
|
13
|
+
const account = renderHook(useAccount);
|
|
14
|
+
const config = renderHook(useConfig);
|
|
15
|
+
const disconnect = renderHook(useDisconnect);
|
|
16
|
+
expect(account().address).toBeDefined();
|
|
17
|
+
expect(account().status).toEqual("connected");
|
|
18
|
+
disconnect.disconnect({ connector: config.connectors[0] });
|
|
19
|
+
await vi.waitFor(() => {
|
|
20
|
+
expect(account().isConnected).to.be.false;
|
|
21
|
+
});
|
|
22
|
+
expect(account().address).not.toBeDefined();
|
|
23
|
+
expect(account().status).toEqual("disconnected");
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=useDisconnect.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDisconnect.test.js","sourceRoot":"","sources":["../../../../src/hooks/useDisconnect.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;AAExC,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAE7C,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9C,UAAU,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;IAE5D,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QACpB,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/solid-query";
|
|
2
|
+
import { readContractQueryOptions, } from "@wagmi/core/query";
|
|
3
|
+
import {} from "solid-js";
|
|
4
|
+
import {} from "viem";
|
|
5
|
+
import { useConfig } from "./useConfig.js";
|
|
6
|
+
export function useReadContract(params) {
|
|
7
|
+
const config = useConfig(params);
|
|
8
|
+
return useQuery(() => {
|
|
9
|
+
const { address, abi, functionName, query = {} } = params();
|
|
10
|
+
const { initialData, ...queryLeftovers } = query;
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
const code = params().code;
|
|
13
|
+
const options = readContractQueryOptions(config, params());
|
|
14
|
+
const enabled = Boolean((address || code) && abi && functionName && (query?.enabled ?? true));
|
|
15
|
+
return {
|
|
16
|
+
...options,
|
|
17
|
+
...queryLeftovers,
|
|
18
|
+
// Initial Data type gets messed up when wrapped in function
|
|
19
|
+
initiData: initialData instanceof Function ? initialData() : initialData,
|
|
20
|
+
enabled,
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=useReadContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReadContract.js","sourceRoot":"","sources":["../../../../src/hooks/useReadContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACL,wBAAwB,GAKzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAiB,MAAM,UAAU,CAAC;AACzC,OAAO,EAKN,MAAM,MAAM,CAAC;AAMd,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAwC3C,MAAM,UAAU,eAAe,CAO7B,MAEC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,QAAQ,CAAC,GAAG,EAAE;QACnB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5D,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,CAAC;QACjD,aAAa;QACb,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAuB,CAAC;QAE9C,MAAM,OAAO,GAAG,wBAAwB,CACtC,MAAM,EACN,MAAM,EAAE,CACT,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,CACrB,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CACrE,CAAC;QAEF,OAAO;YACL,GAAG,OAAO;YACV,GAAG,cAAc;YAEjB,4DAA4D;YAC5D,SAAS,EACP,WAAW,YAAY,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAG,CAAC,CAAC,CAAC,WAAY;YACjE,OAAO;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { expect, test, vi } from "vitest";
|
|
2
|
+
import { abi, address } from "../../test/constants.js";
|
|
3
|
+
import { renderHook } from "../../test/lib.js";
|
|
4
|
+
import { useReadContract } from "./useReadContract.js";
|
|
5
|
+
test("default", async () => {
|
|
6
|
+
const result = renderHook(() => useReadContract(() => ({
|
|
7
|
+
address: address.wagmiMintExample,
|
|
8
|
+
abi: abi.wagmiMintExample,
|
|
9
|
+
functionName: "balanceOf",
|
|
10
|
+
args: ["0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC"],
|
|
11
|
+
chainId: 1,
|
|
12
|
+
})));
|
|
13
|
+
await vi.waitUntil(() => result.isSuccess, { timeout: 10_000 });
|
|
14
|
+
expect(result.data).toMatchInlineSnapshot(`10n`);
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=useReadContract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReadContract.test.js","sourceRoot":"","sources":["../../../../src/hooks/useReadContract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACzB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAC7B,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC,gBAAgB;QACjC,GAAG,EAAE,GAAG,CAAC,gBAAgB;QACzB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,4CAA4C,CAAU;QAC7D,OAAO,EAAE,CAAC;KACX,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/solid-query";
|
|
2
|
+
import { readContractsQueryOptions, } from "@wagmi/core/query";
|
|
3
|
+
import { createMemo } from "solid-js";
|
|
4
|
+
import {} from "viem";
|
|
5
|
+
import { useChainId } from "./useChainId.js";
|
|
6
|
+
import { useConfig } from "./useConfig.js";
|
|
7
|
+
export function useReadContracts(params) {
|
|
8
|
+
const contracts = createMemo(() => params().contracts ?? []);
|
|
9
|
+
const config = useConfig(params);
|
|
10
|
+
const chainId = useChainId();
|
|
11
|
+
const contractsChainId = createMemo(() => {
|
|
12
|
+
const firstChainId = contracts()[0]
|
|
13
|
+
?.chainId;
|
|
14
|
+
if (contracts().every((contract) => contract.chainId === firstChainId))
|
|
15
|
+
return firstChainId;
|
|
16
|
+
return undefined;
|
|
17
|
+
});
|
|
18
|
+
const enabled = createMemo(() => {
|
|
19
|
+
let isContractsValid = false;
|
|
20
|
+
for (const contract of contracts()) {
|
|
21
|
+
const { abi, address, functionName } = contract;
|
|
22
|
+
if (!abi || !address || !functionName) {
|
|
23
|
+
isContractsValid = false;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
isContractsValid = true;
|
|
27
|
+
}
|
|
28
|
+
return Boolean(isContractsValid && (params().query?.enabled ?? true));
|
|
29
|
+
});
|
|
30
|
+
return useQuery(() => {
|
|
31
|
+
const { query = {} } = params();
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
const code = params().code;
|
|
34
|
+
const options = readContractsQueryOptions(config, { ...params(), chainId: contractsChainId() ?? chainId().id });
|
|
35
|
+
return {
|
|
36
|
+
...query,
|
|
37
|
+
...options,
|
|
38
|
+
enabled,
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=useReadContracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReadContracts.js","sourceRoot":"","sources":["../../../../src/hooks/useReadContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjD,OAAO,EACL,yBAAyB,GAK1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAmC,MAAM,MAAM,CAAC;AAMvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAwB3C,MAAM,UAAU,gBAAgB,CAM9B,MAEC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;QACvC,MAAM,YAAY,GAAI,SAAS,EAAE,CAAC,CAAC,CAAsC;YACvE,EAAE,OAAO,CAAC;QACZ,IACG,SAAS,EAA6B,CAAC,KAAK,CAC3C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,YAAY,CAChD;YAED,OAAO,YAAY,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,GAClC,QAAsC,CAAC;YACzC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,gBAAgB,GAAG,KAAK,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,GAAG,EAAE;QACnB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,aAAa;QACb,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAuB,CAAC;QAE9C,MAAM,OAAO,GAAG,yBAAyB,CACvC,MAAM,EACN,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAC7D,CAAC;QAEF,OAAO;YACL,GAAG,KAAK;YACR,GAAG,OAAO;YACV,OAAO;SACD,CAAC;IACX,CAAC,CAAoE,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { expect, test, vi } from "vitest";
|
|
2
|
+
import { abi, address } from "../../test/constants.js";
|
|
3
|
+
import { renderHook } from "../../test/lib.js";
|
|
4
|
+
import { useReadContracts } from "./useReadContracts.js";
|
|
5
|
+
test("default", async () => {
|
|
6
|
+
const result = renderHook(() => useReadContracts(() => ({
|
|
7
|
+
contracts: [
|
|
8
|
+
{
|
|
9
|
+
address: address.wagmiMintExample,
|
|
10
|
+
abi: abi.wagmiMintExample,
|
|
11
|
+
functionName: "balanceOf",
|
|
12
|
+
args: ["0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC"],
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
address: address.wagmiMintExample,
|
|
16
|
+
abi: abi.wagmiMintExample,
|
|
17
|
+
functionName: "totalSupply",
|
|
18
|
+
args: [],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
})));
|
|
22
|
+
await vi.waitUntil(() => result.isSuccess, { timeout: 10_000 });
|
|
23
|
+
console.log(result.data);
|
|
24
|
+
expect(result.data?.[0].result).toMatchInlineSnapshot(`10n`);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=useReadContracts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReadContracts.test.js","sourceRoot":"","sources":["../../../../src/hooks/useReadContracts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACzB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAC7B,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;QACtB,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,OAAO,CAAC,gBAAgB;gBACjC,GAAG,EAAE,GAAG,CAAC,gBAAgB;gBACzB,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,4CAAqD,CAAC;aAC9D;YACD;gBACE,OAAO,EAAE,OAAO,CAAC,gBAAgB;gBACjC,GAAG,EAAE,GAAG,CAAC,gBAAgB;gBACzB,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE,EAAE;aACT;SACF;KACF,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useMutation } from "@tanstack/solid-query";
|
|
2
|
+
import { writeContractMutationOptions, } from "@wagmi/core/query";
|
|
3
|
+
import { useConfig } from "./useConfig.js";
|
|
4
|
+
export function useWriteContract(params) {
|
|
5
|
+
const config = useConfig();
|
|
6
|
+
const mutationOptions = writeContractMutationOptions(config);
|
|
7
|
+
const { mutate, mutateAsync, ...result } = useMutation(() => ({
|
|
8
|
+
...(params?.().mutation ?? {}),
|
|
9
|
+
...mutationOptions,
|
|
10
|
+
}));
|
|
11
|
+
return {
|
|
12
|
+
...result,
|
|
13
|
+
writeContract: mutate,
|
|
14
|
+
writeContractAsync: mutateAsync,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=useWriteContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWriteContract.js","sourceRoot":"","sources":["../../../../src/hooks/useWriteContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,4BAA4B,GAK7B,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAyC3C,MAAM,UAAU,gBAAgB,CAI9B,MAA0D;IAE1D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,eAAe,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC9B,GAAG,eAAe;KACnB,CAAC,CAAC,CAAC;IAGJ,OAAO;QACL,GAAI,MAAiB;QACrB,aAAa,EAAE,MAAiC;QAChD,kBAAkB,EAAE,WAA2C;KAChE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { connect } from "@wagmi/core";
|
|
2
|
+
import { test } from "vitest";
|
|
3
|
+
import { config } from "../../test/config.js";
|
|
4
|
+
const connector = config.connectors[0];
|
|
5
|
+
test("default", async () => {
|
|
6
|
+
await connect(config, { connector });
|
|
7
|
+
// const account = renderHook(useAccount);
|
|
8
|
+
// const write = await renderHook(() => useWriteContract());
|
|
9
|
+
// const t = await write.writeContract({
|
|
10
|
+
// abi: abi.wagmiMintExample,
|
|
11
|
+
// address: address.wagmiMintExample,
|
|
12
|
+
// functionName: "mint",
|
|
13
|
+
// });
|
|
14
|
+
// await vi.waitUntil(() => write.isSuccess, { timeout: 50_000 });
|
|
15
|
+
// await disconnect(config, { connector });
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=useWriteContract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWriteContract.test.js","sourceRoot":"","sources":["../../../../src/hooks/useWriteContract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;AAExC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACzB,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACrC,0CAA0C;IAE1C,4DAA4D;IAE5D,wCAAwC;IACxC,+BAA+B;IAC/B,uCAAuC;IACvC,0BAA0B;IAC1B,MAAM;IAEN,kEAAkE;IAElE,6CAA6C;AAC/C,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":""}
|