@levrbet/shared 0.1.169 → 0.1.171

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/core/contracts/instances.d.ts +17 -3
  2. package/dist/core/contracts/instances.js +30 -2
  3. package/dist/core/contracts/instances.js.map +1 -1
  4. package/dist/core/utils/misc.utils.d.ts +6 -0
  5. package/dist/core/utils/misc.utils.js +17 -1
  6. package/dist/core/utils/misc.utils.js.map +1 -1
  7. package/dist/react/hooks/auth/useAuthHeaders.js +2 -1
  8. package/dist/react/hooks/auth/useAuthHeaders.js.map +1 -1
  9. package/dist/react/hooks/contracts/erc20/index.d.ts +6 -0
  10. package/dist/react/hooks/contracts/erc20/index.js +23 -0
  11. package/dist/react/hooks/contracts/erc20/index.js.map +1 -0
  12. package/dist/react/hooks/contracts/erc20/useApproveErc20.d.ts +13 -0
  13. package/dist/react/hooks/contracts/erc20/useApproveErc20.js +28 -0
  14. package/dist/react/hooks/contracts/erc20/useApproveErc20.js.map +1 -0
  15. package/dist/react/hooks/contracts/erc20/useErc20Allowance.d.ts +10 -0
  16. package/dist/react/hooks/contracts/erc20/useErc20Allowance.js +34 -0
  17. package/dist/react/hooks/contracts/erc20/useErc20Allowance.js.map +1 -0
  18. package/dist/react/hooks/contracts/erc20/useErc20Balance.d.ts +22 -0
  19. package/dist/react/hooks/contracts/erc20/useErc20Balance.js +95 -0
  20. package/dist/react/hooks/contracts/erc20/useErc20Balance.js.map +1 -0
  21. package/dist/react/hooks/contracts/erc20/useErc20Decimals.d.ts +8 -0
  22. package/dist/react/hooks/contracts/erc20/useErc20Decimals.js +28 -0
  23. package/dist/react/hooks/contracts/erc20/useErc20Decimals.js.map +1 -0
  24. package/dist/react/hooks/contracts/erc20/useErc20Symbol.d.ts +8 -0
  25. package/dist/react/hooks/contracts/erc20/useErc20Symbol.js +28 -0
  26. package/dist/react/hooks/contracts/erc20/useErc20Symbol.js.map +1 -0
  27. package/dist/react/hooks/contracts/erc20/useTransferErc20.d.ts +13 -0
  28. package/dist/react/hooks/contracts/erc20/useTransferErc20.js +31 -0
  29. package/dist/react/hooks/contracts/erc20/useTransferErc20.js.map +1 -0
  30. package/dist/react/hooks/contracts/index.d.ts +1 -0
  31. package/dist/react/hooks/contracts/index.js +1 -0
  32. package/dist/react/hooks/contracts/index.js.map +1 -1
  33. package/dist/react/hooks/contracts/useContracts.d.ts +7 -1
  34. package/dist/react/hooks/contracts/useContracts.js +24 -2
  35. package/dist/react/hooks/contracts/useContracts.js.map +1 -1
  36. package/dist/react/index.d.ts +1 -0
  37. package/dist/react/index.js +1 -0
  38. package/dist/react/index.js.map +1 -1
  39. package/dist/react/injectedDependencies.d.ts +4 -3
  40. package/dist/react/injectedDependencies.js +2 -1
  41. package/dist/react/injectedDependencies.js.map +1 -1
  42. package/dist/react/queryKeys.d.ts +17 -0
  43. package/dist/react/queryKeys.js +23 -0
  44. package/dist/react/queryKeys.js.map +1 -0
  45. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import type { Account, Chain, GetContractReturnType, PublicClient, Transport, WalletClient } from "viem";
1
+ import type { Account, Address, Chain, GetContractReturnType, PublicClient, Transport, WalletClient } from "viem";
2
+ import { erc20Abi } from "viem";
2
3
  import { LevrChain, LevrEnv } from "../types";
3
4
  import { abis, LevrBaseMarket } from "./abis";
4
5
  import { LevrMarketId } from "./constants";
@@ -14,7 +15,7 @@ export type CustomWalletClient = WalletClient<Transport, Chain, Account>;
14
15
  * @returns An instance of the contract typed according to its ABI and the provided wallet client.
15
16
  * @throws Will throw an error if the contract address is not found for the given contract name and chain.
16
17
  */
17
- export declare function getLevrContract<T extends keyof typeof abis>(contractName: T, chainId: LevrChain, levrEnv: LevrEnv, { publicClient, walletClient }: {
18
+ export declare function getLevrContract<T extends keyof typeof abis>(contractName: T, chainId: LevrChain, levrEnv: LevrEnv, { publicClient, walletClient }?: {
18
19
  publicClient?: PublicClient;
19
20
  walletClient?: WalletClient;
20
21
  }): GetContractReturnType<(typeof abis)[T], CustomWalletClient>;
@@ -28,7 +29,20 @@ export declare function getLevrContract<T extends keyof typeof abis>(contractNam
28
29
  * @returns An instance of the Levr Market contract, typed for use with or without a wallet client.
29
30
  * @throws If the contract address cannot be found for the specified market and chain.
30
31
  */
31
- export declare function getLevrMarketContract(marketId: LevrMarketId, chainId: LevrChain, levrEnv: LevrEnv, { publicClient, walletClient }: {
32
+ export declare function getLevrMarketContract(marketId: LevrMarketId, chainId: LevrChain, levrEnv: LevrEnv, { publicClient, walletClient }?: {
32
33
  publicClient?: PublicClient;
33
34
  walletClient?: WalletClient;
34
35
  }): GetContractReturnType<typeof LevrBaseMarket, CustomWalletClient>;
36
+ /**
37
+ * Retrieves an instance of an ERC20 token contract.
38
+ *
39
+ * @param address - The address of the ERC20 token contract.
40
+ * @param chainId - The chain ID where the contract is deployed.
41
+ * @param publicClient - (Optional) A public client for read operations.
42
+ * @param walletClient - (Optional) A wallet client to interact with the contract using a signer.
43
+ * @returns An instance of the ERC20 contract, typed for use with or without a wallet client.
44
+ */
45
+ export declare function getErc20Contract(address: Address, chainId: LevrChain, { publicClient, walletClient }?: {
46
+ publicClient?: PublicClient;
47
+ walletClient?: WalletClient;
48
+ }): GetContractReturnType<typeof erc20Abi, CustomWalletClient>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLevrContract = getLevrContract;
4
4
  exports.getLevrMarketContract = getLevrMarketContract;
5
+ exports.getErc20Contract = getErc20Contract;
5
6
  const viem_1 = require("viem");
6
7
  const abis_1 = require("./abis");
7
8
  const addresses_1 = require("./addresses");
@@ -17,7 +18,7 @@ const clients_1 = require("./clients");
17
18
  * @returns An instance of the contract typed according to its ABI and the provided wallet client.
18
19
  * @throws Will throw an error if the contract address is not found for the given contract name and chain.
19
20
  */
20
- function getLevrContract(contractName, chainId, levrEnv, { publicClient, walletClient }) {
21
+ function getLevrContract(contractName, chainId, levrEnv, { publicClient, walletClient } = {}) {
21
22
  const address = addresses_1.levrContractAddresses[levrEnv][chainId][contractName];
22
23
  if (!address)
23
24
  throw new Error(`Contract address not found for ${contractName} on chain ${chainId.toString()}`);
@@ -49,7 +50,7 @@ function getLevrContract(contractName, chainId, levrEnv, { publicClient, walletC
49
50
  * @returns An instance of the Levr Market contract, typed for use with or without a wallet client.
50
51
  * @throws If the contract address cannot be found for the specified market and chain.
51
52
  */
52
- function getLevrMarketContract(marketId, chainId, levrEnv, { publicClient, walletClient }) {
53
+ function getLevrMarketContract(marketId, chainId, levrEnv, { publicClient, walletClient } = {}) {
53
54
  const address = addresses_1.levrMarketContracts[levrEnv][chainId][marketId];
54
55
  if (!address)
55
56
  throw new Error(`Contract address not found for levrMarketId ${marketId} on chain ${chainId.toString()}`);
@@ -70,4 +71,31 @@ function getLevrMarketContract(marketId, chainId, levrEnv, { publicClient, walle
70
71
  client: publicClient,
71
72
  });
72
73
  }
74
+ /**
75
+ * Retrieves an instance of an ERC20 token contract.
76
+ *
77
+ * @param address - The address of the ERC20 token contract.
78
+ * @param chainId - The chain ID where the contract is deployed.
79
+ * @param publicClient - (Optional) A public client for read operations.
80
+ * @param walletClient - (Optional) A wallet client to interact with the contract using a signer.
81
+ * @returns An instance of the ERC20 contract, typed for use with or without a wallet client.
82
+ */
83
+ function getErc20Contract(address, chainId, { publicClient, walletClient } = {}) {
84
+ publicClient = publicClient ? publicClient : clients_1.publicClientService.getPublicClient(chainId);
85
+ if (walletClient) {
86
+ return (0, viem_1.getContract)({
87
+ address,
88
+ abi: viem_1.erc20Abi,
89
+ client: {
90
+ public: publicClient,
91
+ wallet: walletClient,
92
+ },
93
+ });
94
+ }
95
+ return (0, viem_1.getContract)({
96
+ address,
97
+ abi: viem_1.erc20Abi,
98
+ client: publicClient,
99
+ });
100
+ }
73
101
  //# sourceMappingURL=instances.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instances.js","sourceRoot":"","sources":["../../../src/core/contracts/instances.ts"],"names":[],"mappings":";;AAqBA,0CA+BC;AAaD,sDA6BC;AA7FD,+BAAkC;AAElC,iCAA6C;AAC7C,2CAAwE;AACxE,uCAA+C;AAK/C;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC3B,YAAe,EACf,OAAkB,EAClB,OAAgB,EAChB,EAAE,YAAY,EAAE,YAAY,EAAgE;IAE5F,MAAM,OAAO,GAAG,iCAAqB,CAAC,OAAO,CAAC,CAAC,OAAwD,CAAC,CAAC,YAAY,CAEtG,CAAA;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,aAAa,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAE9G,MAAM,GAAG,GAAG,WAAI,CAAC,YAAY,CAAC,CAAA;IAE9B,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAEzF,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,IAAA,kBAAW,EAAC;YACf,OAAO;YACP,GAAG;YACH,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;aACvB;SACJ,CAAgE,CAAA;IACrE,CAAC;IAED,OAAO,IAAA,kBAAW,EAAC;QACf,OAAO;QACP,GAAG;QACH,MAAM,EAAE,YAAY;KACvB,CAAgE,CAAA;AACrE,CAAC;AAGD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACjC,QAAsB,EACtB,OAAkB,EAClB,OAAgB,EAChB,EAAE,YAAY,EAAE,YAAY,EAAgE;IAE5F,MAAM,OAAO,GAAG,+BAAmB,CAAC,OAAO,CAAC,CAAC,OAAwD,CAAC,CAAC,QAAQ,CAEhG,CAAA;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,aAAa,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEvH,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAEzF,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,IAAA,kBAAW,EAAC;YACf,OAAO;YACP,GAAG,EAAE,qBAAc;YACnB,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;aACvB;SACJ,CAAqE,CAAA;IAC1E,CAAC;IAED,OAAO,IAAA,kBAAW,EAAC;QACf,OAAO;QACP,GAAG,EAAE,qBAAc;QACnB,MAAM,EAAE,YAAY;KACvB,CAAgF,CAAA;AACrF,CAAC"}
1
+ {"version":3,"file":"instances.js","sourceRoot":"","sources":["../../../src/core/contracts/instances.ts"],"names":[],"mappings":";;AAqBA,0CA+BC;AAYD,sDA6BC;AAWD,4CAuBC;AA9HD,+BAA4C;AAE5C,iCAA6C;AAC7C,2CAAwE;AACxE,uCAA+C;AAK/C;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC3B,YAAe,EACf,OAAkB,EAClB,OAAgB,EAChB,EAAE,YAAY,EAAE,YAAY,KAAmE,EAAE;IAEjG,MAAM,OAAO,GAAG,iCAAqB,CAAC,OAAO,CAAC,CAAC,OAAwD,CAAC,CAAC,YAAY,CAEtG,CAAA;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,aAAa,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAE9G,MAAM,GAAG,GAAG,WAAI,CAAC,YAAY,CAAC,CAAA;IAE9B,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAEzF,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,IAAA,kBAAW,EAAC;YACf,OAAO;YACP,GAAG;YACH,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;aACvB;SACJ,CAAgE,CAAA;IACrE,CAAC;IAED,OAAO,IAAA,kBAAW,EAAC;QACf,OAAO;QACP,GAAG;QACH,MAAM,EAAE,YAAY;KACvB,CAAgE,CAAA;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACjC,QAAsB,EACtB,OAAkB,EAClB,OAAgB,EAChB,EAAE,YAAY,EAAE,YAAY,KAAmE,EAAE;IAEjG,MAAM,OAAO,GAAG,+BAAmB,CAAC,OAAO,CAAC,CAAC,OAAwD,CAAC,CAAC,QAAQ,CAEhG,CAAA;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,aAAa,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEvH,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAEzF,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,IAAA,kBAAW,EAAC;YACf,OAAO;YACP,GAAG,EAAE,qBAAc;YACnB,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;aACvB;SACJ,CAAqE,CAAA;IAC1E,CAAC;IAED,OAAO,IAAA,kBAAW,EAAC;QACf,OAAO;QACP,GAAG,EAAE,qBAAc;QACnB,MAAM,EAAE,YAAY;KACvB,CAAgF,CAAA;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC5B,OAAgB,EAChB,OAAkB,EAClB,EAAE,YAAY,EAAE,YAAY,KAAmE,EAAE;IAEjG,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAEzF,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,IAAA,kBAAW,EAAC;YACf,OAAO;YACP,GAAG,EAAE,eAAQ;YACb,MAAM,EAAE;gBACJ,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;aACvB;SACJ,CAA+D,CAAA;IACpE,CAAC;IAED,OAAO,IAAA,kBAAW,EAAC;QACf,OAAO;QACP,GAAG,EAAE,eAAQ;QACb,MAAM,EAAE,YAAY;KACvB,CAA0E,CAAA;AAC/E,CAAC"}
@@ -6,3 +6,9 @@ export declare const argHash: (...args: (string | number | bigint)[]) => string;
6
6
  * @returns A promise that resolves after the specified duration.
7
7
  */
8
8
  export declare const sleep: (value: ms.StringValue) => Promise<void>;
9
+ /**
10
+ * Format a number with comma separators
11
+ * @param value - The number to format
12
+ * @returns The formatted number string with commas
13
+ */
14
+ export declare const formatNumberWithCommas: (value: number | string) => string;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sleep = exports.argHash = void 0;
6
+ exports.formatNumberWithCommas = exports.sleep = exports.argHash = void 0;
7
7
  const ms_1 = __importDefault(require("ms"));
8
8
  const argHash = (...args) => args.join("-");
9
9
  exports.argHash = argHash;
@@ -14,4 +14,20 @@ exports.argHash = argHash;
14
14
  */
15
15
  const sleep = (value) => new Promise((resolve) => setTimeout(resolve, (0, ms_1.default)(value)));
16
16
  exports.sleep = sleep;
17
+ /**
18
+ * Format a number with comma separators
19
+ * @param value - The number to format
20
+ * @returns The formatted number string with commas
21
+ */
22
+ const formatNumberWithCommas = (value) => {
23
+ const num = typeof value === "string" ? parseFloat(value) : value;
24
+ if (isNaN(num))
25
+ return "0";
26
+ const parts = num.toString().split(".");
27
+ const integer = parts[0] || "0";
28
+ const decimal = parts[1];
29
+ const formattedInteger = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
30
+ return decimal ? `${formattedInteger}.${decimal}` : formattedInteger;
31
+ };
32
+ exports.formatNumberWithCommas = formatNumberWithCommas;
17
33
  //# sourceMappingURL=misc.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.utils.js","sourceRoot":"","sources":["../../../src/core/utils/misc.utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEZ,MAAM,OAAO,GAAG,CAAC,GAAG,IAAkC,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAA3E,QAAA,OAAO,WAAoE;AAExF;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,KAAqB,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAA,YAAE,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAA1G,QAAA,KAAK,SAAqG"}
1
+ {"version":3,"file":"misc.utils.js","sourceRoot":"","sources":["../../../src/core/utils/misc.utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEZ,MAAM,OAAO,GAAG,CAAC,GAAG,IAAkC,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAA3E,QAAA,OAAO,WAAoE;AAExF;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,KAAqB,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAA,YAAE,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAA1G,QAAA,KAAK,SAAqG;AAEvH;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,KAAsB,EAAU,EAAE;IACrE,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACjE,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAE1B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;IAEtE,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAA;AACxE,CAAC,CAAA;AAVY,QAAA,sBAAsB,0BAUlC"}
@@ -27,6 +27,7 @@ const ms_1 = __importDefault(require("ms"));
27
27
  const core_1 = require("../../../core");
28
28
  const constants_1 = require("../../../core/privy/constants");
29
29
  const injectedDependencies_1 = require("../../injectedDependencies");
30
+ const queryKeys_1 = require("../../queryKeys");
30
31
  function useBaseAuthHeaders(levrAuth, props = {}) {
31
32
  const { address } = props;
32
33
  const { usePrivy, useIdentityToken, useUser, useQuery } = (0, injectedDependencies_1.getDependencies)();
@@ -34,7 +35,7 @@ function useBaseAuthHeaders(levrAuth, props = {}) {
34
35
  const { identityToken } = useIdentityToken();
35
36
  const { refreshUser } = useUser();
36
37
  return useQuery({
37
- queryKey: ["authHeaders", levrAuth, user?.id, address].filter((k) => !lodash_1.default.isNil(k)),
38
+ queryKey: queryKeys_1.queryKeys.auth.headers(levrAuth, user?.id, address),
38
39
  queryFn: async () => {
39
40
  if (!user)
40
41
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthHeaders.js","sourceRoot":"","sources":["../../../../src/react/hooks/auth/useAuthHeaders.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;AAEH,oDAAsB;AACtB,4CAAmB;AAGnB,wCAA0D;AAC1D,6DAAoH;AACpH,qEAA4D;AAM5D,SAAS,kBAAkB,CAAC,QAAkB,EAAE,QAA6B,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAC3E,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC3C,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;IAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAA;IAEjC,OAAO,QAAQ,CAAC;QACZ,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAA;YACpB,MAAM,WAAW,EAAE,CAAA;YAEnB,OAAO;gBACH,CAAC,uBAAgB,CAAC,EAAE,QAAQ;gBAC5B,CAAC,8BAAkB,CAAC,EAAE,OAAO;gBAC7B,CAAC,qCAAyB,CAAC,EAAE,MAAM,cAAc,EAAE;gBACnD,CAAC,iCAAqB,CAAC,EAAE,aAAa;aACzC,CAAA;QACL,CAAC;QACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACvB,eAAe,EAAE,IAAA,YAAE,EAAC,IAAI,CAAC;KAC5B,CAAC,CAAA;AACN,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,kBAAkB,CAAC,eAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAAhG,QAAA,cAAc,kBAAkF;AAEtG,MAAM,mBAAmB,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,kBAAkB,CAAC,eAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAAtG,QAAA,mBAAmB,uBAAmF"}
1
+ {"version":3,"file":"useAuthHeaders.js","sourceRoot":"","sources":["../../../../src/react/hooks/auth/useAuthHeaders.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;AAEH,oDAAsB;AACtB,4CAAmB;AAGnB,wCAA0D;AAC1D,6DAAoH;AACpH,qEAA4D;AAC5D,+CAA2C;AAM3C,SAAS,kBAAkB,CAAC,QAAkB,EAAE,QAA6B,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAC3E,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC3C,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;IAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAA;IAEjC,OAAO,QAAQ,CAAC;QACZ,QAAQ,EAAE,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QAC7D,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAA;YACpB,MAAM,WAAW,EAAE,CAAA;YAEnB,OAAO;gBACH,CAAC,uBAAgB,CAAC,EAAE,QAAQ;gBAC5B,CAAC,8BAAkB,CAAC,EAAE,OAAO;gBAC7B,CAAC,qCAAyB,CAAC,EAAE,MAAM,cAAc,EAAE;gBACnD,CAAC,iCAAqB,CAAC,EAAE,aAAa;aACzC,CAAA;QACL,CAAC;QACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACvB,eAAe,EAAE,IAAA,YAAE,EAAC,IAAI,CAAC;KAC5B,CAAC,CAAA;AACN,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,kBAAkB,CAAC,eAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAAhG,QAAA,cAAc,kBAAkF;AAEtG,MAAM,mBAAmB,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,kBAAkB,CAAC,eAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAAtG,QAAA,mBAAmB,uBAAmF"}
@@ -0,0 +1,6 @@
1
+ export * from "./useApproveErc20";
2
+ export * from "./useErc20Allowance";
3
+ export * from "./useErc20Balance";
4
+ export * from "./useErc20Decimals";
5
+ export * from "./useErc20Symbol";
6
+ export * from "./useTransferErc20";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useApproveErc20"), exports);
18
+ __exportStar(require("./useErc20Allowance"), exports);
19
+ __exportStar(require("./useErc20Balance"), exports);
20
+ __exportStar(require("./useErc20Decimals"), exports);
21
+ __exportStar(require("./useErc20Symbol"), exports);
22
+ __exportStar(require("./useTransferErc20"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,sDAAmC;AACnC,oDAAiC;AACjC,qDAAkC;AAClC,mDAAgC;AAChC,qDAAkC"}
@@ -0,0 +1,13 @@
1
+ import { Address } from "viem";
2
+ import { LevrChain } from "../../../../core";
3
+ interface UseApproveErc20Params {
4
+ erc20Address?: Address;
5
+ chainId?: LevrChain;
6
+ spenderAddress?: Address;
7
+ }
8
+ export declare const useApproveErc20: ({ erc20Address, chainId: _chainId, spenderAddress }?: UseApproveErc20Params) => import("@tanstack/react-query").UseMutationResult<{
9
+ hash: `0x${string}`;
10
+ }, Error, {
11
+ amount: bigint;
12
+ }, unknown>;
13
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useApproveErc20 = void 0;
4
+ const core_1 = require("../../../../core");
5
+ const injectedDependencies_1 = require("../../../injectedDependencies");
6
+ const queryKeys_1 = require("../../../queryKeys");
7
+ const useApproveErc20 = ({ erc20Address, chainId: _chainId, spenderAddress } = {}) => {
8
+ const { useMutation, useChainId, useConnectorClient, useAccount } = (0, injectedDependencies_1.getDependencies)();
9
+ const chainId = useChainId?.() ?? _chainId;
10
+ const { data: walletClient } = useConnectorClient?.() ?? {};
11
+ const { address: userAddress } = useAccount?.() ?? {};
12
+ return useMutation({
13
+ mutationFn: async ({ amount }) => {
14
+ if (!erc20Address || !chainId || !spenderAddress)
15
+ throw new Error("Missing erc20Address, chainId, or spenderAddress");
16
+ if (!walletClient)
17
+ throw new Error("Wallet client not available");
18
+ const contract = (0, core_1.getErc20Contract)(erc20Address, chainId, { walletClient });
19
+ const hash = await contract.write.approve([spenderAddress, amount]);
20
+ return { hash };
21
+ },
22
+ meta: {
23
+ invalidatesQueries: [queryKeys_1.queryKeys.erc20.allowance(erc20Address, userAddress, spenderAddress, chainId)],
24
+ },
25
+ });
26
+ };
27
+ exports.useApproveErc20 = useApproveErc20;
28
+ //# sourceMappingURL=useApproveErc20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApproveErc20.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/useApproveErc20.ts"],"names":[],"mappings":";;;AACA,2CAA8D;AAC9D,wEAA+D;AAC/D,kDAA8C;AAQvC,MAAM,eAAe,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,KAA4B,EAAE,EAAE,EAAE;IAC/G,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IACrF,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAC1C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAA;IAC3D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,CAAA;IAErD,OAAO,WAAY,CAAC;QAChB,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAsB,EAAE,EAAE;YACjD,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACrH,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YAEjE,MAAM,QAAQ,GAAG,IAAA,uBAAgB,EAAC,YAAY,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;YAC1E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;YAEnE,OAAO,EAAE,IAAI,EAAE,CAAA;QACnB,CAAC;QACD,IAAI,EAAE;YACF,kBAAkB,EAAE,CAAC,qBAAS,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;SACtG;KACJ,CAAC,CAAA;AACN,CAAC,CAAA;AApBY,QAAA,eAAe,mBAoB3B"}
@@ -0,0 +1,10 @@
1
+ import { Address } from "viem";
2
+ import { LevrChain } from "../../../../core";
3
+ interface UseErc20AllowanceParams {
4
+ erc20Address?: Address;
5
+ ownerAddress?: Address;
6
+ spenderAddress?: Address;
7
+ chainId?: LevrChain;
8
+ }
9
+ export declare const useErc20Allowance: ({ erc20Address, ownerAddress: _ownerAddress, spenderAddress, chainId: _chainId, }: UseErc20AllowanceParams) => import("@tanstack/react-query").UseQueryResult<bigint, Error>;
10
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useErc20Allowance = void 0;
7
+ const react_query_1 = require("@tanstack/react-query");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const core_1 = require("../../../../core");
10
+ const injectedDependencies_1 = require("../../../injectedDependencies");
11
+ const queryKeys_1 = require("../../../queryKeys");
12
+ const erc20AllowanceQueryOptions = ({ erc20Address, ownerAddress, spenderAddress, chainId }) => (0, react_query_1.queryOptions)({
13
+ queryKey: queryKeys_1.queryKeys.erc20.allowance(erc20Address, ownerAddress, spenderAddress, chainId),
14
+ queryFn: async () => {
15
+ if (!erc20Address || !ownerAddress || !spenderAddress || !chainId) {
16
+ throw new Error("Missing erc20Address, ownerAddress, spenderAddress, or chainId");
17
+ }
18
+ const contract = (0, core_1.getErc20Contract)(erc20Address, chainId);
19
+ return await contract.read.allowance([ownerAddress, spenderAddress]);
20
+ },
21
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(ownerAddress) && !lodash_1.default.isNil(spenderAddress) && !lodash_1.default.isNil(chainId),
22
+ });
23
+ const useErc20Allowance = ({ erc20Address, ownerAddress: _ownerAddress, spenderAddress, chainId: _chainId, }) => {
24
+ const { useQuery, useAccount, useChainId } = (0, injectedDependencies_1.getDependencies)();
25
+ const { address } = useAccount?.() ?? {};
26
+ const ownerAddress = _ownerAddress ?? address;
27
+ const chainId = useChainId?.() ?? _chainId;
28
+ return useQuery({
29
+ ...erc20AllowanceQueryOptions({ erc20Address, ownerAddress, spenderAddress, chainId }),
30
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(ownerAddress) && !lodash_1.default.isNil(spenderAddress) && !lodash_1.default.isNil(chainId),
31
+ });
32
+ };
33
+ exports.useErc20Allowance = useErc20Allowance;
34
+ //# sourceMappingURL=useErc20Allowance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErc20Allowance.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/useErc20Allowance.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAoD;AACpD,oDAAsB;AAEtB,2CAA8D;AAC9D,wEAA+D;AAC/D,kDAA8C;AAS9C,MAAM,0BAA0B,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAA2B,EAAE,EAAE,CACpH,IAAA,0BAAY,EAAC;IACT,QAAQ,EAAE,qBAAS,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC;IACxF,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,uBAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACxD,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;CAC7G,CAAC,CAAA;AAEC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,YAAY,EACZ,YAAY,EAAE,aAAa,EAC3B,cAAc,EACd,OAAO,EAAE,QAAQ,GACK,EAAE,EAAE;IAC1B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,CAAA;IACxC,MAAM,YAAY,GAAG,aAAa,IAAI,OAAO,CAAA;IAC7C,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACZ,GAAG,0BAA0B,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;QACtF,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7G,CAAC,CAAA;AACN,CAAC,CAAA;AAfY,QAAA,iBAAiB,qBAe7B"}
@@ -0,0 +1,22 @@
1
+ import { Address } from "viem";
2
+ import { LevrChain } from "../../../../core";
3
+ interface UseErc20BalanceParams {
4
+ erc20Address?: Address;
5
+ userAddress?: Address;
6
+ chainId?: LevrChain;
7
+ }
8
+ interface UseErc20FormattedBalanceParams extends UseErc20BalanceParams {
9
+ decimalPlaces?: number;
10
+ }
11
+ export declare const useErc20Balance: ({ erc20Address, userAddress: _userAddress, chainId: _chainId }: UseErc20BalanceParams) => import("@tanstack/react-query").UseQueryResult<bigint, Error>;
12
+ /**
13
+ * Hook to get formatted ERC20 balance
14
+ * @param decimalPlaces - Number of decimal places to show (default: 2). Truncates by removing excess decimals.
15
+ */
16
+ export declare const useErc20FormattedBalance: ({ erc20Address, userAddress: _userAddress, chainId: _chainId, decimalPlaces, }: UseErc20FormattedBalanceParams) => import("@tanstack/react-query").UseQueryResult<string, Error>;
17
+ /**
18
+ * Hook to get ERC20 balance formatted with commas
19
+ * @param decimalPlaces - Number of decimal places to show (default: 2). Truncates by removing excess decimals.
20
+ */
21
+ export declare const useErc20NumberFormattedBalance: ({ erc20Address, userAddress: _userAddress, chainId: _chainId, decimalPlaces, }: UseErc20FormattedBalanceParams) => import("@tanstack/react-query").UseQueryResult<string, Error>;
22
+ export {};
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useErc20NumberFormattedBalance = exports.useErc20FormattedBalance = exports.useErc20Balance = void 0;
7
+ const react_query_1 = require("@tanstack/react-query");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const viem_1 = require("viem");
10
+ const core_1 = require("../../../../core");
11
+ const injectedDependencies_1 = require("../../../injectedDependencies");
12
+ const queryKeys_1 = require("../../../queryKeys");
13
+ const useErc20Decimals_1 = require("./useErc20Decimals");
14
+ const erc20BalanceQueryOptions = ({ erc20Address, userAddress, chainId }) => (0, react_query_1.queryOptions)({
15
+ queryKey: queryKeys_1.queryKeys.erc20.balance(erc20Address, userAddress, chainId),
16
+ queryFn: async () => {
17
+ if (!erc20Address || !userAddress || !chainId)
18
+ throw new Error("Missing erc20Address, userAddress, or chainId");
19
+ const contract = (0, core_1.getErc20Contract)(erc20Address, chainId);
20
+ return await contract.read.balanceOf([userAddress]);
21
+ },
22
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(userAddress) && !lodash_1.default.isNil(chainId),
23
+ });
24
+ const useErc20Balance = ({ erc20Address, userAddress: _userAddress, chainId: _chainId }) => {
25
+ const { useQuery, useAccount, useChainId } = (0, injectedDependencies_1.getDependencies)();
26
+ const { address } = useAccount?.() ?? {};
27
+ const userAddress = _userAddress ?? address;
28
+ const chainId = useChainId?.() ?? _chainId;
29
+ return useQuery({
30
+ ...erc20BalanceQueryOptions({ erc20Address, userAddress, chainId }),
31
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(userAddress) && !lodash_1.default.isNil(chainId),
32
+ });
33
+ };
34
+ exports.useErc20Balance = useErc20Balance;
35
+ /**
36
+ * Hook to get formatted ERC20 balance
37
+ * @param decimalPlaces - Number of decimal places to show (default: 2). Truncates by removing excess decimals.
38
+ */
39
+ const useErc20FormattedBalance = ({ erc20Address, userAddress: _userAddress, chainId: _chainId, decimalPlaces = 2, }) => {
40
+ const { useQuery, useAccount, useChainId } = (0, injectedDependencies_1.getDependencies)();
41
+ const { address } = useAccount?.() ?? {};
42
+ const userAddress = _userAddress ?? address;
43
+ const chainId = useChainId?.() ?? _chainId;
44
+ const { data: decimals } = (0, useErc20Decimals_1.useErc20Decimals)({ erc20Address, chainId });
45
+ return useQuery({
46
+ ...erc20BalanceQueryOptions({ erc20Address, userAddress, chainId }),
47
+ select: (balance) => {
48
+ if (lodash_1.default.isNil(decimals))
49
+ return "0";
50
+ const formatted = (0, viem_1.formatUnits)(balance, decimals);
51
+ // Truncate to specified decimal places by removing excess decimals
52
+ const parts = formatted.split(".");
53
+ if (parts.length === 1 || decimalPlaces === 0) {
54
+ return parts[0] || "0";
55
+ }
56
+ const truncatedDecimals = parts[1]?.slice(0, decimalPlaces) || "";
57
+ return truncatedDecimals ? `${parts[0]}.${truncatedDecimals}` : parts[0] || "0";
58
+ },
59
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(userAddress) && !lodash_1.default.isNil(chainId) && !lodash_1.default.isNil(decimals),
60
+ });
61
+ };
62
+ exports.useErc20FormattedBalance = useErc20FormattedBalance;
63
+ /**
64
+ * Hook to get ERC20 balance formatted with commas
65
+ * @param decimalPlaces - Number of decimal places to show (default: 2). Truncates by removing excess decimals.
66
+ */
67
+ const useErc20NumberFormattedBalance = ({ erc20Address, userAddress: _userAddress, chainId: _chainId, decimalPlaces = 2, }) => {
68
+ const { useQuery, useAccount, useChainId } = (0, injectedDependencies_1.getDependencies)();
69
+ const { address } = useAccount?.() ?? {};
70
+ const userAddress = _userAddress ?? address;
71
+ const chainId = useChainId?.() ?? _chainId;
72
+ const { data: decimals } = (0, useErc20Decimals_1.useErc20Decimals)({ erc20Address, chainId });
73
+ return useQuery({
74
+ ...erc20BalanceQueryOptions({ erc20Address, userAddress, chainId }),
75
+ select: (balance) => {
76
+ if (lodash_1.default.isNil(decimals))
77
+ return "0";
78
+ const formatted = (0, viem_1.formatUnits)(balance, decimals);
79
+ // Truncate to specified decimal places by removing excess decimals
80
+ const parts = formatted.split(".");
81
+ let truncated;
82
+ if (parts.length === 1 || decimalPlaces === 0) {
83
+ truncated = parts[0] || "0";
84
+ }
85
+ else {
86
+ const truncatedDecimals = parts[1]?.slice(0, decimalPlaces) || "";
87
+ truncated = truncatedDecimals ? `${parts[0]}.${truncatedDecimals}` : parts[0] || "0";
88
+ }
89
+ return (0, core_1.formatNumberWithCommas)(truncated);
90
+ },
91
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(userAddress) && !lodash_1.default.isNil(chainId) && !lodash_1.default.isNil(decimals),
92
+ });
93
+ };
94
+ exports.useErc20NumberFormattedBalance = useErc20NumberFormattedBalance;
95
+ //# sourceMappingURL=useErc20Balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErc20Balance.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/useErc20Balance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Address } from "viem";
2
+ import { LevrChain } from "../../../../core";
3
+ interface UseErc20DecimalParams {
4
+ erc20Address?: Address;
5
+ chainId?: LevrChain;
6
+ }
7
+ export declare const useErc20Decimals: ({ erc20Address, chainId: _chainId }: UseErc20DecimalParams) => import("@tanstack/react-query").UseQueryResult<number, Error>;
8
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useErc20Decimals = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const core_1 = require("../../../../core");
9
+ const injectedDependencies_1 = require("../../../injectedDependencies");
10
+ const queryKeys_1 = require("../../../queryKeys");
11
+ const useErc20Decimals = ({ erc20Address, chainId: _chainId }) => {
12
+ const { useQuery, useChainId } = (0, injectedDependencies_1.getDependencies)();
13
+ const chainId = useChainId?.() ?? _chainId;
14
+ return useQuery({
15
+ queryKey: queryKeys_1.queryKeys.erc20.decimals(erc20Address, chainId),
16
+ queryFn: async () => {
17
+ if (!erc20Address || !chainId)
18
+ throw new Error("Missing erc20Address or chainId");
19
+ const contract = (0, core_1.getErc20Contract)(erc20Address, chainId);
20
+ return await contract.read.decimals();
21
+ },
22
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(chainId),
23
+ staleTime: Infinity,
24
+ gcTime: Infinity,
25
+ });
26
+ };
27
+ exports.useErc20Decimals = useErc20Decimals;
28
+ //# sourceMappingURL=useErc20Decimals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErc20Decimals.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/useErc20Decimals.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsB;AAEtB,2CAA8D;AAC9D,wEAA+D;AAC/D,kDAA8C;AAOvC,MAAM,gBAAgB,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAyB,EAAE,EAAE;IAC3F,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAClD,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACZ,QAAQ,EAAE,qBAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QACzD,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAEjF,MAAM,QAAQ,GAAG,IAAA,uBAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAExD,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QACzC,CAAC;QACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACpD,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ;KACnB,CAAC,CAAA;AACN,CAAC,CAAA;AAjBY,QAAA,gBAAgB,oBAiB5B"}
@@ -0,0 +1,8 @@
1
+ import { Address } from "viem";
2
+ import { LevrChain } from "../../../../core";
3
+ interface UseErc20SymbolParams {
4
+ erc20Address?: Address;
5
+ chainId?: LevrChain;
6
+ }
7
+ export declare const useErc20Symbol: ({ erc20Address, chainId: _chainId }: UseErc20SymbolParams) => import("@tanstack/react-query").UseQueryResult<string, Error>;
8
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useErc20Symbol = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const core_1 = require("../../../../core");
9
+ const injectedDependencies_1 = require("../../../injectedDependencies");
10
+ const queryKeys_1 = require("../../../queryKeys");
11
+ const useErc20Symbol = ({ erc20Address, chainId: _chainId }) => {
12
+ const { useQuery, useChainId } = (0, injectedDependencies_1.getDependencies)();
13
+ const chainId = useChainId?.() ?? _chainId;
14
+ return useQuery({
15
+ queryKey: queryKeys_1.queryKeys.erc20.symbol(erc20Address, chainId),
16
+ queryFn: async () => {
17
+ if (!erc20Address || !chainId)
18
+ throw new Error("Missing erc20Address or chainId");
19
+ const contract = (0, core_1.getErc20Contract)(erc20Address, chainId);
20
+ return await contract.read.symbol();
21
+ },
22
+ enabled: !lodash_1.default.isNil(erc20Address) && !lodash_1.default.isNil(chainId),
23
+ staleTime: Infinity,
24
+ gcTime: Infinity,
25
+ });
26
+ };
27
+ exports.useErc20Symbol = useErc20Symbol;
28
+ //# sourceMappingURL=useErc20Symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErc20Symbol.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/useErc20Symbol.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsB;AAEtB,2CAA8D;AAC9D,wEAA+D;AAC/D,kDAA8C;AAOvC,MAAM,cAAc,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAwB,EAAE,EAAE;IACxF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAClD,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAE1C,OAAO,QAAQ,CAAC;QACZ,QAAQ,EAAE,qBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;QACvD,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAEjF,MAAM,QAAQ,GAAG,IAAA,uBAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAExD,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;QACvC,CAAC;QACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACpD,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ;KACnB,CAAC,CAAA;AACN,CAAC,CAAA;AAjBY,QAAA,cAAc,kBAiB1B"}
@@ -0,0 +1,13 @@
1
+ import { Address } from "viem";
2
+ import { LevrChain } from "../../../../core";
3
+ interface UseTransferErc20Params {
4
+ erc20Address?: Address;
5
+ chainId?: LevrChain;
6
+ toAddress?: Address;
7
+ }
8
+ export declare const useTransferErc20: ({ erc20Address, chainId: _chainId, toAddress }?: UseTransferErc20Params) => import("@tanstack/react-query").UseMutationResult<{
9
+ hash: `0x${string}`;
10
+ }, Error, {
11
+ amount: bigint;
12
+ }, unknown>;
13
+ export {};
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTransferErc20 = void 0;
4
+ const core_1 = require("../../../../core");
5
+ const injectedDependencies_1 = require("../../../injectedDependencies");
6
+ const queryKeys_1 = require("../../../queryKeys");
7
+ const useTransferErc20 = ({ erc20Address, chainId: _chainId, toAddress } = {}) => {
8
+ const { useMutation, useChainId, useConnectorClient, useAccount } = (0, injectedDependencies_1.getDependencies)();
9
+ const chainId = useChainId?.() ?? _chainId;
10
+ const { data: walletClient } = useConnectorClient?.() ?? {};
11
+ const { address: userAddress } = useAccount?.() ?? {};
12
+ return useMutation({
13
+ mutationFn: async ({ amount }) => {
14
+ if (!erc20Address || !chainId || !toAddress)
15
+ throw new Error("Missing erc20Address, chainId, or toAddress");
16
+ if (!walletClient)
17
+ throw new Error("Wallet client not available");
18
+ const contract = (0, core_1.getErc20Contract)(erc20Address, chainId, { walletClient });
19
+ const hash = await contract.write.transfer([toAddress, amount]);
20
+ return { hash };
21
+ },
22
+ meta: {
23
+ invalidatesQueries: [
24
+ queryKeys_1.queryKeys.erc20.balance(erc20Address, userAddress, chainId),
25
+ queryKeys_1.queryKeys.erc20.balance(erc20Address, toAddress, chainId),
26
+ ],
27
+ },
28
+ });
29
+ };
30
+ exports.useTransferErc20 = useTransferErc20;
31
+ //# sourceMappingURL=useTransferErc20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTransferErc20.js","sourceRoot":"","sources":["../../../../../src/react/hooks/contracts/erc20/useTransferErc20.ts"],"names":[],"mappings":";;;AACA,2CAA8D;AAC9D,wEAA+D;AAC/D,kDAA8C;AAQvC,MAAM,gBAAgB,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,KAA6B,EAAE,EAAE,EAAE;IAC5G,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IACrF,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAC1C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAA;IAC3D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,CAAA;IAErD,OAAO,WAAY,CAAC;QAChB,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAsB,EAAE,EAAE;YACjD,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC3G,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YAEjE,MAAM,QAAQ,GAAG,IAAA,uBAAgB,EAAC,YAAY,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;YAC1E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;YAE/D,OAAO,EAAE,IAAI,EAAE,CAAA;QACnB,CAAC;QACD,IAAI,EAAE;YACF,kBAAkB,EAAE;gBAChB,qBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC;gBAC3D,qBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;aAC5D;SACJ;KACJ,CAAC,CAAA;AACN,CAAC,CAAA;AAvBY,QAAA,gBAAgB,oBAuB5B"}
@@ -1,2 +1,3 @@
1
+ export * from "./erc20";
1
2
  export * from "./useContracts";
2
3
  export * from "./useLevrMarketContractAddresses";
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./erc20"), exports);
17
18
  __exportStar(require("./useContracts"), exports);
18
19
  __exportStar(require("./useLevrMarketContractAddresses"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/react/hooks/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,mEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/react/hooks/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,iDAA8B;AAC9B,mEAAgD"}
@@ -1,5 +1,6 @@
1
1
  import { UseQueryResult } from "@tanstack/react-query";
2
- import { getLevrContract } from "../../../core";
2
+ import { Address } from "viem";
3
+ import { getErc20Contract, getLevrContract, LevrChain } from "../../../core";
3
4
  import { UseContractParams } from "../../types";
4
5
  export interface UseContractsReturn {
5
6
  levrConfigProvider: ReturnType<typeof getLevrContract<"levrConfigProvider">>;
@@ -112,3 +113,8 @@ export declare const useContractAddresses: (params?: UseContractParams) => {
112
113
  readonly levrMarketMaker: "0x5c48f5aa8d216548147e4688c9f4e81acbc15324";
113
114
  readonly levrMarketRiskSentinel: "0xcb4b4b18bc2d4f9e7e4a7bbb372e31d547635dcc";
114
115
  };
116
+ export interface UseErc20ContractParams {
117
+ tokenAddress: Address;
118
+ chainId?: LevrChain;
119
+ }
120
+ export declare const useErc20Contract: (params: UseErc20ContractParams) => UseQueryResult<ReturnType<typeof getErc20Contract>, Error>;
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useContractAddresses = exports.useContracts = void 0;
6
+ exports.useErc20Contract = exports.useContractAddresses = exports.useContracts = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const core_1 = require("../../../core");
9
9
  const injectedDependencies_1 = require("../../injectedDependencies");
10
+ const queryKeys_1 = require("../../queryKeys");
10
11
  const useContracts = (params) => {
11
12
  const { useQuery, useAccount, useChainId, useConnectorClient, levrEnv } = (0, injectedDependencies_1.getDependencies)();
12
13
  const { chainId: _chainId } = params ?? {};
@@ -14,7 +15,7 @@ const useContracts = (params) => {
14
15
  const chainId = useChainId?.() ?? _chainId;
15
16
  const { data: walletClient } = useConnectorClient?.() ?? { data: undefined };
16
17
  return useQuery({
17
- queryKey: ["contracts", address, chainId, walletClient?.account?.address],
18
+ queryKey: queryKeys_1.queryKeys.contracts.all(address, chainId, walletClient?.account?.address),
18
19
  queryFn: async () => {
19
20
  if (!chainId)
20
21
  throw new Error("No chainId");
@@ -56,4 +57,25 @@ const useContractAddresses = (params) => {
56
57
  return core_1.levrContractAddresses[levrEnv][chainId];
57
58
  };
58
59
  exports.useContractAddresses = useContractAddresses;
60
+ const useErc20Contract = (params) => {
61
+ const { useQuery, useAccount, useChainId, useConnectorClient } = (0, injectedDependencies_1.getDependencies)();
62
+ const { tokenAddress, chainId: _chainId } = params;
63
+ const { address } = useAccount?.() ?? { address: null };
64
+ const chainId = useChainId?.() ?? _chainId;
65
+ const { data: walletClient } = useConnectorClient?.() ?? { data: undefined };
66
+ return useQuery({
67
+ queryKey: queryKeys_1.queryKeys.contracts.erc20(tokenAddress, address, chainId, walletClient?.account?.address),
68
+ queryFn: async () => {
69
+ if (!chainId)
70
+ throw new Error("No chainId");
71
+ return (0, core_1.getErc20Contract)(tokenAddress, chainId, { walletClient });
72
+ },
73
+ enabled: !lodash_1.default.isNil(chainId) && !lodash_1.default.isNil(tokenAddress),
74
+ staleTime: Infinity,
75
+ gcTime: Infinity,
76
+ retry: false,
77
+ throwOnError: true,
78
+ });
79
+ };
80
+ exports.useErc20Contract = useErc20Contract;
59
81
  //# sourceMappingURL=useContracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useContracts.js","sourceRoot":"","sources":["../../../../src/react/hooks/contracts/useContracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useContracts.js","sourceRoot":"","sources":["../../../../src/react/hooks/contracts/useContracts.ts"],"names":[],"mappings":";;;;;;AACA,oDAAsB;AAEtB,wCAAmG;AACnG,qEAA4D;AAC5D,+CAA2C;AAyBpC,MAAM,YAAY,GAAG,CAAC,MAA0B,EAA6C,EAAE;IAClG,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAC3F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACvD,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAC1C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAE5E,OAAO,QAAQ,CAAC;QACZ,QAAQ,EAAE,qBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC;QACnF,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;YAE3C,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAU,CAAA;YAElE,OAAO;gBACH,kBAAkB,EAAE,IAAA,sBAAe,EAAC,oBAAoB,EAAE,GAAG,YAAY,CAAC;gBAC1E,gBAAgB,EAAE,IAAA,sBAAe,EAAC,kBAAkB,EAAE,GAAG,YAAY,CAAC;gBACtE,kBAAkB,EAAE,IAAA,sBAAe,EAAC,oBAAoB,EAAE,GAAG,YAAY,CAAC;gBAC1E,eAAe,EAAE,IAAA,sBAAe,EAAC,iBAAiB,EAAE,GAAG,YAAY,CAAC;gBACpE,qBAAqB,EAAE,IAAA,sBAAe,EAAC,uBAAuB,EAAE,GAAG,YAAY,CAAC;gBAChF,WAAW,EAAE,IAAA,sBAAe,EAAC,aAAa,EAAE,GAAG,YAAY,CAAC;gBAC5D,cAAc,EAAE,IAAA,sBAAe,EAAC,gBAAgB,EAAE,GAAG,YAAY,CAAC;gBAClE,eAAe,EAAE,IAAA,sBAAe,EAAC,iBAAiB,EAAE,GAAG,YAAY,CAAC;gBACpE,sBAAsB,EAAE,IAAA,sBAAe,EAAC,wBAAwB,EAAE,GAAG,YAAY,CAAC;gBAClF,gBAAgB,EAAE,IAAA,sBAAe,EAAC,kBAAkB,EAAE,GAAG,YAAY,CAAC;gBACtE,iBAAiB,EAAE,IAAA,sBAAe,EAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC;gBACxE,aAAa,EAAE,IAAA,sBAAe,EAAC,eAAe,EAAE,GAAG,YAAY,CAAC;gBAChE,aAAa,EAAE,IAAA,sBAAe,EAAC,eAAe,EAAE,GAAG,YAAY,CAAC;gBAChE,YAAY,EAAE,IAAA,sBAAe,EAAC,cAAc,EAAE,GAAG,YAAY,CAAC;gBAC9D,aAAa,EAAE,IAAA,sBAAe,EAAC,eAAe,EAAE,GAAG,YAAY,CAAC;gBAChE,iBAAiB,EAAE,IAAA,sBAAe,EAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC;gBACxE,mBAAmB,EAAE,IAAA,sBAAe,EAAC,qBAAqB,EAAE,GAAG,YAAY,CAAC;gBAC5E,YAAY,EAAE,IAAA,sBAAe,EAAC,cAAc,EAAE,GAAG,YAAY,CAAC;gBAC9D,QAAQ,EAAE,IAAA,sBAAe,EAAC,UAAU,EAAE,GAAG,YAAY,CAAC;aACzD,CAAA;QACL,CAAC;QACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1B,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,IAAI;KACrB,CAAC,CAAA;AACN,CAAC,CAAA;AA1CY,QAAA,YAAY,gBA0CxB;AAEM,MAAM,oBAAoB,GAAG,CAAC,MAA0B,EAAE,EAAE;IAC/D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IACjD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,IAAI,gBAAS,CAAC,aAAa,CAAA;IAErE,OAAO,4BAAqB,CAAC,OAAO,CAAC,CAAC,OAA+D,CAAC,CAAA;AAC1G,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAOM,MAAM,gBAAgB,GAAG,CAAC,MAA8B,EAA8D,EAAE;IAC3H,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,IAAA,sCAAe,GAAE,CAAA;IAClF,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAClD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACvD,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAA;IAC1C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAE5E,OAAO,QAAQ,CAAC;QACZ,QAAQ,EAAE,qBAAS,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC;QACnG,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;YAE3C,OAAO,IAAA,uBAAgB,EAAC,YAAY,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QACpD,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,IAAI;KACrB,CAAC,CAAA;AACN,CAAC,CAAA;AApBY,QAAA,gBAAgB,oBAoB5B"}
@@ -2,4 +2,5 @@ export * from "../core";
2
2
  export * from "./hooks";
3
3
  export * from "./injectedDependencies";
4
4
  export * from "./queryClient";
5
+ export * from "./queryKeys";
5
6
  export * from "./types";
@@ -18,5 +18,6 @@ __exportStar(require("../core"), exports);
18
18
  __exportStar(require("./hooks"), exports);
19
19
  __exportStar(require("./injectedDependencies"), exports);
20
20
  __exportStar(require("./queryClient"), exports);
21
+ __exportStar(require("./queryKeys"), exports);
21
22
  __exportStar(require("./types"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,yDAAsC;AACtC,gDAA6B;AAE7B,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,yDAAsC;AACtC,gDAA6B;AAC7B,8CAA2B;AAC3B,0CAAuB"}
@@ -19,16 +19,17 @@
19
19
  * After injection, all hooks from this library will use the consumer's live React context and configuration.
20
20
  */
21
21
  import { useIdentityToken, usePrivy, useUser } from "@privy-io/react-auth";
22
- import type { useQuery } from "@tanstack/react-query";
23
- import type { WalletClient } from "viem";
22
+ import type { useMutation, useQuery } from "@tanstack/react-query";
23
+ import type { Address, WalletClient } from "viem";
24
24
  import { LevrChain, LevrEnv } from "../core";
25
25
  export interface InjectedDependencies {
26
26
  usePrivy: typeof usePrivy;
27
27
  useIdentityToken: typeof useIdentityToken;
28
28
  useUser: typeof useUser;
29
29
  useQuery: typeof useQuery;
30
+ useMutation: typeof useMutation;
30
31
  useAccount?: () => {
31
- address?: string | null;
32
+ address?: Address;
32
33
  };
33
34
  useChainId?: () => LevrChain | undefined;
34
35
  useConnectorClient?: () => {
@@ -57,8 +57,9 @@ function injectDependencies(dependencies) {
57
57
  !dependencies.useIdentityToken ||
58
58
  !dependencies.useUser ||
59
59
  !dependencies.useQuery ||
60
+ !dependencies.useMutation ||
60
61
  !dependencies.levrEnv) {
61
- throw new Error("All dependencies must be provided: usePrivy, useIdentityToken, useUser, useQuery, and levrEnv");
62
+ throw new Error("All dependencies must be provided: usePrivy, useIdentityToken, useUser, useQuery, useMutation, and levrEnv");
62
63
  }
63
64
  injectedDependencies = dependencies;
64
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"injectedDependencies.js","sourceRoot":"","sources":["../../src/react/injectedDependencies.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;AA2CH,gDAoBC;AAaD,0CAWC;AAOD,8DAEC;AA9ED;;GAEG;AACH,IAAI,oBAAoB,GAAgC,IAAI,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,kBAAkB,CAAC,YAAkC;IACjE,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CACR,oDAAoD;YAChD,iFAAiF,CACxF,CAAA;IACL,CAAC;IAED,uDAAuD;IACvD,IACI,CAAC,YAAY,CAAC,QAAQ;QACtB,CAAC,YAAY,CAAC,gBAAgB;QAC9B,CAAC,YAAY,CAAC,OAAO;QACrB,CAAC,YAAY,CAAC,QAAQ;QACtB,CAAC,YAAY,CAAC,OAAO,EACvB,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAA;IACpH,CAAC;IAED,oBAAoB,GAAG,YAAY,CAAA;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe;IAC3B,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACX,uCAAuC;YACnC,6FAA6F;YAC7F,4CAA4C;YAC5C,iGAAiG,CACxG,CAAA;IACL,CAAC;IAED,OAAO,oBAAoB,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB;IACrC,oBAAoB,GAAG,IAAI,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"injectedDependencies.js","sourceRoot":"","sources":["../../src/react/injectedDependencies.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;AA4CH,gDAuBC;AAaD,0CAWC;AAOD,8DAEC;AAjFD;;GAEG;AACH,IAAI,oBAAoB,GAAgC,IAAI,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,kBAAkB,CAAC,YAAkC;IACjE,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CACR,oDAAoD;YAChD,iFAAiF,CACxF,CAAA;IACL,CAAC;IAED,uDAAuD;IACvD,IACI,CAAC,YAAY,CAAC,QAAQ;QACtB,CAAC,YAAY,CAAC,gBAAgB;QAC9B,CAAC,YAAY,CAAC,OAAO;QACrB,CAAC,YAAY,CAAC,QAAQ;QACtB,CAAC,YAAY,CAAC,WAAW;QACzB,CAAC,YAAY,CAAC,OAAO,EACvB,CAAC;QACC,MAAM,IAAI,KAAK,CACX,4GAA4G,CAC/G,CAAA;IACL,CAAC;IAED,oBAAoB,GAAG,YAAY,CAAA;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe;IAC3B,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACX,uCAAuC;YACnC,6FAA6F;YAC7F,4CAA4C;YAC5C,iGAAiG,CACxG,CAAA;IACL,CAAC;IAED,OAAO,oBAAoB,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB;IACrC,oBAAoB,GAAG,IAAI,CAAA;AAC/B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Address } from "viem";
2
+ import { LevrAuth, LevrChain } from "../core";
3
+ export declare const queryKeys: {
4
+ readonly auth: {
5
+ readonly headers: (levrAuth: LevrAuth, userId?: string, address?: Address) => string[];
6
+ };
7
+ readonly contracts: {
8
+ readonly all: (address?: Address | string | null, chainId?: LevrChain, walletAddress?: Address | string) => (string | LevrChain)[];
9
+ readonly erc20: (tokenAddress: Address, address?: Address | string | null, chainId?: LevrChain, walletAddress?: Address | string) => (string | LevrChain)[];
10
+ };
11
+ readonly erc20: {
12
+ readonly decimals: (tokenAddress?: Address, chainId?: LevrChain) => (string | LevrChain)[];
13
+ readonly symbol: (tokenAddress?: Address, chainId?: LevrChain) => (string | LevrChain)[];
14
+ readonly balance: (tokenAddress?: Address, userAddress?: Address | string | null, chainId?: LevrChain) => (string | LevrChain)[];
15
+ readonly allowance: (tokenAddress?: Address, ownerAddress?: Address | string | null, spenderAddress?: Address | string | null, chainId?: LevrChain) => (string | LevrChain)[];
16
+ };
17
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.queryKeys = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ exports.queryKeys = {
9
+ auth: {
10
+ headers: (levrAuth, userId, address) => ["authHeaders", levrAuth, userId, address].filter((k) => !lodash_1.default.isNil(k)),
11
+ },
12
+ contracts: {
13
+ all: (address, chainId, walletAddress) => ["contracts", address, chainId, walletAddress].filter((k) => !lodash_1.default.isNil(k)),
14
+ erc20: (tokenAddress, address, chainId, walletAddress) => ["erc20Contract", tokenAddress, address, chainId, walletAddress].filter((k) => !lodash_1.default.isNil(k)),
15
+ },
16
+ erc20: {
17
+ decimals: (tokenAddress, chainId) => ["erc20", "decimals", tokenAddress, chainId].filter((k) => !lodash_1.default.isNil(k)),
18
+ symbol: (tokenAddress, chainId) => ["erc20", "symbol", tokenAddress, chainId].filter((k) => !lodash_1.default.isNil(k)),
19
+ balance: (tokenAddress, userAddress, chainId) => ["erc20", "balance", tokenAddress, userAddress, chainId].filter((k) => !lodash_1.default.isNil(k)),
20
+ allowance: (tokenAddress, ownerAddress, spenderAddress, chainId) => ["erc20", "allowance", tokenAddress, ownerAddress, spenderAddress, chainId].filter((k) => !lodash_1.default.isNil(k)),
21
+ },
22
+ };
23
+ //# sourceMappingURL=queryKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryKeys.js","sourceRoot":"","sources":["../../src/react/queryKeys.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsB;AAIT,QAAA,SAAS,GAAG;IACrB,IAAI,EAAE;QACF,OAAO,EAAE,CAAC,QAAkB,EAAE,MAAe,EAAE,OAAiB,EAAE,EAAE,CAChE,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC5E;IACD,SAAS,EAAE;QACP,GAAG,EAAE,CAAC,OAAiC,EAAE,OAAmB,EAAE,aAAgC,EAAE,EAAE,CAC9F,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,EAAE,CACH,YAAqB,EACrB,OAAiC,EACjC,OAAmB,EACnB,aAAgC,EAClC,EAAE,CAAC,CAAC,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACnG;IACD,KAAK,EAAE;QACH,QAAQ,EAAE,CAAC,YAAsB,EAAE,OAAmB,EAAE,EAAE,CACtD,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,YAAsB,EAAE,OAAmB,EAAE,EAAE,CACpD,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC,YAAsB,EAAE,WAAqC,EAAE,OAAmB,EAAE,EAAE,CAC5F,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvF,SAAS,EAAE,CACP,YAAsB,EACtB,YAAsC,EACtC,cAAwC,EACxC,OAAmB,EACrB,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9G;CACK,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levrbet/shared",
3
- "version": "0.1.169",
3
+ "version": "0.1.171",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {