@velora-dex/widget 0.0.16 → 0.0.17

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 (124) hide show
  1. package/dist/components/ui/dialog.d.ts.map +1 -1
  2. package/dist/components/ui/dialog.js +3 -1
  3. package/dist/components/ui/dialog.js.map +1 -1
  4. package/dist/components/ui/sonner.d.ts.map +1 -1
  5. package/dist/components/ui/sonner.js +3 -2
  6. package/dist/components/ui/sonner.js.map +1 -1
  7. package/dist/components/web3/AccountButton.d.ts.map +1 -1
  8. package/dist/components/web3/AccountButton.js +42 -51
  9. package/dist/components/web3/AccountButton.js.map +1 -1
  10. package/dist/components/web3/ConnectWallets/privy/button.d.ts.map +1 -1
  11. package/dist/components/web3/ConnectWallets/privy/button.js +99 -76
  12. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  13. package/dist/components/web3/ConnectWallets/privy/connectRunner.d.ts.map +1 -1
  14. package/dist/components/web3/ConnectWallets/privy/connectRunner.js +5 -3
  15. package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
  16. package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
  17. package/dist/components/widget/AppHeader/AppHeader.js +1 -2
  18. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  19. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +1 -2
  20. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  21. package/dist/components/widget/Drawer/state/useDrawerControls.js +49 -52
  22. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  23. package/dist/components/widget/NetworkIcon/NetworkIconSquare.d.ts.map +1 -1
  24. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +3 -1
  25. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  26. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.d.ts.map +1 -1
  27. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js +3 -1
  28. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  29. package/dist/components/widget/ReceiverAddress/ReceiverAddress.d.ts.map +1 -1
  30. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +52 -61
  31. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  32. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
  33. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +3 -1
  34. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
  35. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
  36. package/dist/components/widget/SelectToken/SelectTokenButton.js +88 -106
  37. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  38. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +1 -1
  39. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
  40. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +47 -56
  41. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  42. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
  43. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +33 -28
  44. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
  45. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.d.ts.map +1 -1
  46. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js +17 -14
  47. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
  48. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.d.ts.map +1 -1
  49. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js +18 -15
  50. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
  51. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -1
  52. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +2 -4
  53. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  54. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts.map +1 -1
  55. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +6 -4
  56. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
  57. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  58. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +12 -11
  59. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  60. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  61. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +90 -76
  62. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  63. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
  64. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +148 -122
  65. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  66. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  67. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +249 -213
  68. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  69. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  70. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +32 -26
  71. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  72. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  73. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +175 -160
  74. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  75. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  76. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +33 -27
  77. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  78. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  79. package/dist/hooks/txs/queries/useAwaitTx.js +16 -13
  80. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  81. package/dist/hooks/txs/queries/useAwaitTxs.d.ts.map +1 -1
  82. package/dist/hooks/useSDK.d.ts.map +1 -1
  83. package/dist/hooks/useSDK.js +4 -2
  84. package/dist/hooks/useSDK.js.map +1 -1
  85. package/dist/lib/utils/index.d.ts +0 -1
  86. package/dist/lib/utils/index.d.ts.map +1 -1
  87. package/dist/lib/utils/index.js.map +1 -1
  88. package/dist/lib/utils/logger.d.ts +5 -8
  89. package/dist/lib/utils/logger.d.ts.map +1 -1
  90. package/dist/lib/utils/logger.js +211 -2
  91. package/dist/lib/utils/logger.js.map +1 -1
  92. package/dist/test/Configurator.d.ts.map +1 -1
  93. package/dist/widget/ConnectWalletDrawerButton.d.ts.map +1 -1
  94. package/dist/widget/ConnectWalletDrawerButton.js +39 -48
  95. package/dist/widget/ConnectWalletDrawerButton.js.map +1 -1
  96. package/dist/widget/TradeFlowButton.d.ts.map +1 -1
  97. package/dist/widget/TradeFlowButton.js +0 -1
  98. package/dist/widget/TradeFlowButton.js.map +1 -1
  99. package/dist/widget/index.d.ts.map +1 -1
  100. package/dist/widget/index.js +46 -42
  101. package/dist/widget/index.js.map +1 -1
  102. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  103. package/dist/widget/inputs/hooks/useTokenFromInputProps.js +17 -14
  104. package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  105. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  106. package/dist/widget/inputs/hooks/useTokenToInputProps.js +18 -15
  107. package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
  108. package/dist/widget/inputs/state/subscriptions.d.ts.map +1 -1
  109. package/dist/widget/inputs/state/subscriptions.js +2 -1
  110. package/dist/widget/inputs/state/subscriptions.js.map +1 -1
  111. package/dist/widget/logger.d.ts +8 -0
  112. package/dist/widget/logger.d.ts.map +1 -0
  113. package/dist/widget/logger.js +32 -0
  114. package/dist/widget/logger.js.map +1 -0
  115. package/dist/widget/state/configActionsAtom.d.ts.map +1 -1
  116. package/dist/widget/state/configActionsAtom.js +2 -0
  117. package/dist/widget/state/configActionsAtom.js.map +1 -1
  118. package/dist/widget/state/configAtom.d.ts +4 -1
  119. package/dist/widget/state/configAtom.d.ts.map +1 -1
  120. package/dist/widget/state/configAtom.js +1 -0
  121. package/dist/widget/state/configAtom.js.map +1 -1
  122. package/dist/widget/types.d.ts +13 -2
  123. package/dist/widget/types.d.ts.map +1 -1
  124. package/package.json +1 -1
@@ -5,19 +5,21 @@ import { useDepositWeth } from '../../../../hooks/txs/mutations/useDepositWeth.j
5
5
  import { useEnsureTxReceipt } from '../../../../hooks/txs/queries/useAwaitTx.js';
6
6
  import { handleTxSent } from '../../../../lib/utils/toasts.js';
7
7
  import { selectTokenFromAtom } from '../../../../widget/inputs/state/selectedTokenActionsAtom.js';
8
+ import { useLogger } from '../../../../widget/logger.js';
8
9
  import { useMutation } from '@tanstack/react-query';
9
10
  import { useSetAtom } from 'jotai';
10
11
  import { useChainId } from 'wagmi';
11
12
 
12
13
  const WETH_DEPOSIT_MUTATION_KEY = "wethDeposit";
13
14
  function useSubmitDepositTxMutation(t0) {
14
- const $ = distExports.c(18);
15
+ const $ = distExports.c(21);
15
16
  const {
16
17
  amount,
17
18
  onSuccess: _onSuccess,
18
19
  onError: _onError
19
20
  } = t0;
20
21
  const chainId = useChainId();
22
+ const logger = useLogger("SubmitDepositTxMutation");
21
23
  let t1;
22
24
  if ($[0] !== amount) {
23
25
  t1 = {
@@ -33,14 +35,14 @@ function useSubmitDepositTxMutation(t0) {
33
35
  } = useDepositWeth(t1);
34
36
  const ensureTxReceipt = useEnsureTxReceipt();
35
37
  let t2;
36
- if ($[2] !== chainId || $[3] !== depositAsync || $[4] !== ensureTxReceipt) {
38
+ if ($[2] !== chainId || $[3] !== depositAsync || $[4] !== ensureTxReceipt || $[5] !== logger) {
37
39
  t2 = async () => {
38
40
  const depositTxHash = await depositAsync();
39
41
  const depositTxReceiptPromise = ensureTxReceipt({
40
42
  hash: depositTxHash,
41
43
  chainId,
42
44
  onReplaced: (data) => {
43
- console.log("onReplaced:depositTx", depositTxHash, data);
45
+ logger.log("onReplaced:depositTx", depositTxHash, data);
44
46
  }
45
47
  });
46
48
  handleTxSent({
@@ -49,70 +51,73 @@ function useSubmitDepositTxMutation(t0) {
49
51
  receiptPromise: depositTxReceiptPromise
50
52
  });
51
53
  const depositTxReceipt = await depositTxReceiptPromise;
52
- console.log("🚀 ~ depositTx ~ receipt:", depositTxReceipt);
54
+ logger.log("~ depositTx ~ receipt:", depositTxReceipt);
53
55
  return depositTxReceipt;
54
56
  };
55
57
  $[2] = chainId;
56
58
  $[3] = depositAsync;
57
59
  $[4] = ensureTxReceipt;
58
- $[5] = t2;
60
+ $[5] = logger;
61
+ $[6] = t2;
59
62
  } else {
60
- t2 = $[5];
63
+ t2 = $[6];
61
64
  }
62
65
  const submitDepositTx = t2;
63
66
  const setTokenFrom = useSetAtom(selectTokenFromAtom);
64
67
  const wrappedNativeToken = useWrappedNativeToken();
65
68
  const invalidateBalancesAndAllowances = useInvalidateTokenDataQuery();
66
69
  let t3;
67
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
70
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
68
71
  t3 = [WETH_DEPOSIT_MUTATION_KEY];
69
- $[6] = t3;
72
+ $[7] = t3;
70
73
  } else {
71
- t3 = $[6];
74
+ t3 = $[7];
72
75
  }
73
76
  let t4;
74
- if ($[7] !== _onSuccess || $[8] !== invalidateBalancesAndAllowances || $[9] !== setTokenFrom || $[10] !== wrappedNativeToken) {
77
+ if ($[8] !== _onSuccess || $[9] !== invalidateBalancesAndAllowances || $[10] !== logger || $[11] !== setTokenFrom || $[12] !== wrappedNativeToken) {
75
78
  t4 = (data_0) => {
76
- console.log("Deposit tx success", data_0);
79
+ logger.log("Deposit tx success", data_0);
77
80
  invalidateBalancesAndAllowances({
78
81
  allowance: false
79
82
  });
80
83
  setTokenFrom(wrappedNativeToken);
81
84
  _onSuccess?.(data_0);
82
85
  };
83
- $[7] = _onSuccess;
84
- $[8] = invalidateBalancesAndAllowances;
85
- $[9] = setTokenFrom;
86
- $[10] = wrappedNativeToken;
87
- $[11] = t4;
86
+ $[8] = _onSuccess;
87
+ $[9] = invalidateBalancesAndAllowances;
88
+ $[10] = logger;
89
+ $[11] = setTokenFrom;
90
+ $[12] = wrappedNativeToken;
91
+ $[13] = t4;
88
92
  } else {
89
- t4 = $[11];
93
+ t4 = $[13];
90
94
  }
91
95
  let t5;
92
- if ($[12] !== _onError) {
96
+ if ($[14] !== _onError || $[15] !== logger) {
93
97
  t5 = (error) => {
94
- console.error("Deposit tx error", error);
98
+ logger.error("Deposit tx error", error);
95
99
  _onError?.(error);
96
100
  };
97
- $[12] = _onError;
98
- $[13] = t5;
101
+ $[14] = _onError;
102
+ $[15] = logger;
103
+ $[16] = t5;
99
104
  } else {
100
- t5 = $[13];
105
+ t5 = $[16];
101
106
  }
102
107
  let t6;
103
- if ($[14] !== submitDepositTx || $[15] !== t4 || $[16] !== t5) {
108
+ if ($[17] !== submitDepositTx || $[18] !== t4 || $[19] !== t5) {
104
109
  t6 = {
105
110
  mutationFn: submitDepositTx,
106
111
  mutationKey: t3,
107
112
  onSuccess: t4,
108
113
  onError: t5
109
114
  };
110
- $[14] = submitDepositTx;
111
- $[15] = t4;
112
- $[16] = t5;
113
- $[17] = t6;
115
+ $[17] = submitDepositTx;
116
+ $[18] = t4;
117
+ $[19] = t5;
118
+ $[20] = t6;
114
119
  } else {
115
- t6 = $[17];
120
+ t6 = $[20];
116
121
  }
117
122
  return useMutation(t6);
118
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSubmitDepositTxMutation.js","sources":["../../../../../src/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.ts"],"sourcesContent":["import { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { useWrappedNativeToken } from \"@/hooks/tokens/useNativeToken\";\nimport { useDepositWeth } from \"@/hooks/txs/mutations/useDepositWeth\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { handleTxSent } from \"@/lib/utils/toasts\";\nimport { selectTokenFromAtom } from \"@/widget/inputs/state/selectedTokenActionsAtom\";\nimport { useMutation, type UseMutationResult } from \"@tanstack/react-query\";\nimport { useSetAtom } from \"jotai\";\nimport type { TransactionReceipt } from \"viem\";\nimport { useChainId } from \"wagmi\";\n\nconst WETH_DEPOSIT_MUTATION_KEY = \"wethDeposit\";\n\nexport function useSubmitDepositTxMutation({\n amount,\n onSuccess: _onSuccess,\n onError: _onError,\n}: {\n amount?: string;\n onSuccess?: (txReceipt: TransactionReceipt) => void;\n onError?: (error: Error) => void;\n}): UseMutationResult<TransactionReceipt, Error, void> {\n const chainId = useChainId();\n\n const { depositAsync } = useDepositWeth({\n amount,\n });\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const submitDepositTx = async () => {\n const depositTxHash = await depositAsync();\n\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:depositTx\", depositTxHash, data);\n },\n });\n\n handleTxSent({\n chainId,\n txHash: depositTxHash,\n actionType: \"wrapETH\",\n receiptPromise: depositTxReceiptPromise,\n });\n\n const depositTxReceipt = await depositTxReceiptPromise;\n\n console.log(\"🚀 ~ depositTx ~ receipt:\", depositTxReceipt);\n\n return depositTxReceipt;\n };\n\n const setTokenFrom = useSetAtom(selectTokenFromAtom);\n const wrappedNativeToken = useWrappedNativeToken();\n const invalidateBalancesAndAllowances = useInvalidateTokenDataQuery();\n\n return useMutation<TransactionReceipt, Error, void>({\n mutationFn: submitDepositTx,\n mutationKey: [WETH_DEPOSIT_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Deposit tx success\", data);\n invalidateBalancesAndAllowances({ allowance: false });\n setTokenFrom(wrappedNativeToken);\n _onSuccess?.(data);\n },\n onError: (error) => {\n console.error(\"Deposit tx error\", error);\n _onError?.(error);\n },\n });\n}\n"],"names":["WETH_DEPOSIT_MUTATION_KEY","useSubmitDepositTxMutation","t0","$","_c","amount","onSuccess","_onSuccess","onError","_onError","chainId","useChainId","t1","depositAsync","useDepositWeth","ensureTxReceipt","useEnsureTxReceipt","t2","depositTxHash","depositTxReceiptPromise","hash","onReplaced","data","console","log","handleTxSent","txHash","receiptPromise","depositTxReceipt","submitDepositTx","setTokenFrom","useSetAtom","selectTokenFromAtom","wrappedNativeToken","useWrappedNativeToken","invalidateBalancesAndAllowances","useInvalidateTokenDataQuery","t3","Symbol","for","t4","data_0","allowance","t5","error","t6","mutationFn","mutationKey","useMutation"],"mappings":"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"}
1
+ {"version":3,"file":"useSubmitDepositTxMutation.js","sources":["../../../../../src/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.ts"],"sourcesContent":["import { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { useWrappedNativeToken } from \"@/hooks/tokens/useNativeToken\";\nimport { useDepositWeth } from \"@/hooks/txs/mutations/useDepositWeth\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { handleTxSent } from \"@/lib/utils/toasts\";\nimport { selectTokenFromAtom } from \"@/widget/inputs/state/selectedTokenActionsAtom\";\nimport { useLogger } from \"@/widget/logger\";\nimport { useMutation, type UseMutationResult } from \"@tanstack/react-query\";\nimport { useSetAtom } from \"jotai\";\nimport type { TransactionReceipt } from \"viem\";\nimport { useChainId } from \"wagmi\";\n\nconst WETH_DEPOSIT_MUTATION_KEY = \"wethDeposit\";\n\nexport function useSubmitDepositTxMutation({\n amount,\n onSuccess: _onSuccess,\n onError: _onError,\n}: {\n amount?: string;\n onSuccess?: (txReceipt: TransactionReceipt) => void;\n onError?: (error: Error) => void;\n}): UseMutationResult<TransactionReceipt, Error, void> {\n const chainId = useChainId();\n const logger = useLogger(\"SubmitDepositTxMutation\");\n\n const { depositAsync } = useDepositWeth({\n amount,\n });\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const submitDepositTx = async () => {\n const depositTxHash = await depositAsync();\n\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:depositTx\", depositTxHash, data);\n },\n });\n\n handleTxSent({\n chainId,\n txHash: depositTxHash,\n actionType: \"wrapETH\",\n receiptPromise: depositTxReceiptPromise,\n });\n\n const depositTxReceipt = await depositTxReceiptPromise;\n\n logger.log(\"~ depositTx ~ receipt:\", depositTxReceipt);\n\n return depositTxReceipt;\n };\n\n const setTokenFrom = useSetAtom(selectTokenFromAtom);\n const wrappedNativeToken = useWrappedNativeToken();\n const invalidateBalancesAndAllowances = useInvalidateTokenDataQuery();\n\n return useMutation<TransactionReceipt, Error, void>({\n mutationFn: submitDepositTx,\n mutationKey: [WETH_DEPOSIT_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Deposit tx success\", data);\n invalidateBalancesAndAllowances({ allowance: false });\n setTokenFrom(wrappedNativeToken);\n _onSuccess?.(data);\n },\n onError: (error) => {\n logger.error(\"Deposit tx error\", error);\n _onError?.(error);\n },\n });\n}\n"],"names":["WETH_DEPOSIT_MUTATION_KEY","useSubmitDepositTxMutation","t0","$","_c","amount","onSuccess","_onSuccess","onError","_onError","chainId","useChainId","logger","useLogger","t1","depositAsync","useDepositWeth","ensureTxReceipt","useEnsureTxReceipt","t2","depositTxHash","depositTxReceiptPromise","hash","onReplaced","data","log","handleTxSent","txHash","receiptPromise","depositTxReceipt","submitDepositTx","setTokenFrom","useSetAtom","selectTokenFromAtom","wrappedNativeToken","useWrappedNativeToken","invalidateBalancesAndAllowances","useInvalidateTokenDataQuery","t3","Symbol","for","t4","data_0","allowance","t5","error","t6","mutationFn","mutationKey","useMutation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetPermitInfo.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAK5B,KAAK,qBAAqB,GAAG,SAAS;IACpC,YAAY;IACZ,OAAO,CAAC;IACR,gBAAgB,CAAC;CAClB,CAAC;AAEF,KAAK,UAAU,GAAG,mBAAmB,GAAG;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,qBAAqB,GAAG,wBAAwB,GAAG;IACtD,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG,UAAU,GAAG,qBAAqB,CAAC;AAE3D,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,gBAAgB,IAAI;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,EACvE,UAAU,GAAG,SAAS,CACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,gBAAgB,IAC9D,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhC,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,EAAE,EAC1D,YAAY,EACZ,OAAO,EACP,KAAK,GACN,EAAE,0BAA0B,CAAC,MAAM,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,CA+CzE"}
1
+ {"version":3,"file":"useGetPermitInfo.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAM5B,KAAK,qBAAqB,GAAG,SAAS;IACpC,YAAY;IACZ,OAAO,CAAC;IACR,gBAAgB,CAAC;CAClB,CAAC;AAEF,KAAK,UAAU,GAAG,mBAAmB,GAAG;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,qBAAqB,GAAG,wBAAwB,GAAG;IACtD,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG,UAAU,GAAG,qBAAqB,CAAC;AAE3D,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,gBAAgB,IAAI;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,EACvE,UAAU,GAAG,SAAS,CACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,gBAAgB,IAC9D,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhC,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,EAAE,EAC1D,YAAY,EACZ,OAAO,EACP,KAAK,GACN,EAAE,0BAA0B,CAAC,MAAM,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAgDzE"}
@@ -4,14 +4,16 @@ import { detectPermitSupportType } from '../../utils/detect.js';
4
4
  import { useConfig } from 'wagmi';
5
5
  import { constructAddressLinkForChain } from '../../../../lib/utils/explorer.js';
6
6
  import { assert } from 'ts-essentials';
7
+ import { useLogger } from '../../../../widget/logger.js';
7
8
 
8
9
  function useGetPermitInfo(t0) {
9
- const $ = distExports.c(14);
10
+ const $ = distExports.c(15);
10
11
  const {
11
12
  tokenAddress,
12
13
  chainId,
13
14
  query
14
15
  } = t0;
16
+ const logger = useLogger("PERMIT1::GetPermitInfo");
15
17
  const config = useConfig();
16
18
  const queryEnabled = query?.enabled ?? true;
17
19
  let t1;
@@ -33,7 +35,7 @@ function useGetPermitInfo(t0) {
33
35
  t3 = $[4];
34
36
  }
35
37
  let t4;
36
- if ($[5] !== chainId || $[6] !== config || $[7] !== tokenAddress) {
38
+ if ($[5] !== chainId || $[6] !== config || $[7] !== logger || $[8] !== tokenAddress) {
37
39
  t4 = async () => {
38
40
  assert(tokenAddress, "tokenAddress is required");
39
41
  assert(chainId, "chainId is required");
@@ -47,8 +49,8 @@ function useGetPermitInfo(t0) {
47
49
  tokenAddress,
48
50
  chainId
49
51
  };
50
- console.log("PERMIT1::permitInfo result", result);
51
- console.log("PERMIT1::check Token at explorer", constructAddressLinkForChain({
52
+ logger.log("result", result);
53
+ logger.log("check Token in explorer", constructAddressLinkForChain({
52
54
  chainId,
53
55
  address: tokenAddress
54
56
  }) + "#writeContract");
@@ -56,14 +58,15 @@ function useGetPermitInfo(t0) {
56
58
  };
57
59
  $[5] = chainId;
58
60
  $[6] = config;
59
- $[7] = tokenAddress;
60
- $[8] = t4;
61
+ $[7] = logger;
62
+ $[8] = tokenAddress;
63
+ $[9] = t4;
61
64
  } else {
62
- t4 = $[8];
65
+ t4 = $[9];
63
66
  }
64
67
  const t5 = queryEnabled && !!tokenAddress && !!chainId;
65
68
  let t6;
66
- if ($[9] !== query || $[10] !== t3 || $[11] !== t4 || $[12] !== t5) {
69
+ if ($[10] !== query || $[11] !== t3 || $[12] !== t4 || $[13] !== t5) {
67
70
  t6 = {
68
71
  queryKey: t3,
69
72
  queryFn: t4,
@@ -72,13 +75,13 @@ function useGetPermitInfo(t0) {
72
75
  ...query,
73
76
  enabled: t5
74
77
  };
75
- $[9] = query;
76
- $[10] = t3;
77
- $[11] = t4;
78
- $[12] = t5;
79
- $[13] = t6;
78
+ $[10] = query;
79
+ $[11] = t3;
80
+ $[12] = t4;
81
+ $[13] = t5;
82
+ $[14] = t6;
80
83
  } else {
81
- t6 = $[13];
84
+ t6 = $[14];
82
85
  }
83
86
  const queryResult = useQuery(t6);
84
87
  return queryResult;
@@ -1 +1 @@
1
- {"version":3,"file":"useGetPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n console.log(\"PERMIT1::permitInfo result\", result);\n console.log(\n \"PERMIT1::check Token at explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","console","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":"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"}
1
+ {"version":3,"file":"useGetPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\nimport { useLogger } from \"@/widget/logger\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const logger = useLogger(\"PERMIT1::GetPermitInfo\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n logger.log(\"result\", result);\n logger.log(\n \"check Token in explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTryToSignPermit1.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,KAAK,uBAAuB,GAAG;IAC7B,eAAe;IACf,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO,CAAC;IACR,OAAO,CAAC;IACR,MAAM,CAAC;CACR,CAAC;AAEF,KAAK,wBAAwB,CAAC,MAAM,GAAG,mBAAmB,IAAI,OAAO,CACnE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CACpC,GAAG;IACF,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CACb,mBAAmB,EACnB,KAAK,EACL,MAAM,EACN,uBAAuB,CACxB,EACD,UAAU,GAAG,SAAS,CACvB,CAAC;CACH,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,GAAG,mBAAmB,EAAE,EAChE,UAAU,EACV,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CA8ClE"}
1
+ {"version":3,"file":"useTryToSignPermit1.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,KAAK,uBAAuB,GAAG;IAC7B,eAAe;IACf,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO,CAAC;IACR,OAAO,CAAC;IACR,MAAM,CAAC;CACR,CAAC;AAEF,KAAK,wBAAwB,CAAC,MAAM,GAAG,mBAAmB,IAAI,OAAO,CACnE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CACpC,GAAG;IACF,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CACb,mBAAmB,EACnB,KAAK,EACL,MAAM,EACN,uBAAuB,CACxB,EACD,UAAU,GAAG,SAAS,CACvB,CAAC;CACH,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,GAAG,mBAAmB,EAAE,EAChE,UAAU,EACV,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CA+ClE"}
@@ -3,9 +3,10 @@ import { useQuery } from '@tanstack/react-query';
3
3
  import { trySignPermit1 } from '../../utils/trySignPermit1.js';
4
4
  import { useConfig } from 'wagmi';
5
5
  import { assert } from 'ts-essentials';
6
+ import { useLogger } from '../../../../widget/logger.js';
6
7
 
7
8
  function useTryToSignPermit1(t0) {
8
- const $ = distExports.c(17);
9
+ const $ = distExports.c(18);
9
10
  const {
10
11
  permitInfo,
11
12
  tokenAddress,
@@ -14,6 +15,7 @@ function useTryToSignPermit1(t0) {
14
15
  chainId,
15
16
  query
16
17
  } = t0;
18
+ const logger = useLogger("PERMIT1::TryToSignPermit1");
17
19
  const config = useConfig();
18
20
  const queryEnabled = query?.enabled ?? true;
19
21
  let t1;
@@ -28,7 +30,7 @@ function useTryToSignPermit1(t0) {
28
30
  t1 = $[4];
29
31
  }
30
32
  let t2;
31
- if ($[5] !== amount || $[6] !== chainId || $[7] !== config || $[8] !== permitInfo || $[9] !== spenderAddress || $[10] !== tokenAddress) {
33
+ if ($[5] !== amount || $[6] !== chainId || $[7] !== config || $[8] !== logger || $[9] !== permitInfo || $[10] !== spenderAddress || $[11] !== tokenAddress) {
32
34
  t2 = async () => {
33
35
  assert(permitInfo, "permitInfo is required");
34
36
  assert(tokenAddress, "tokenAddress is required");
@@ -41,22 +43,23 @@ function useTryToSignPermit1(t0) {
41
43
  spenderAddress,
42
44
  amount
43
45
  });
44
- console.log("PERMIT1::TrySignPermitResult", result);
46
+ logger.log("result", result);
45
47
  return result;
46
48
  };
47
49
  $[5] = amount;
48
50
  $[6] = chainId;
49
51
  $[7] = config;
50
- $[8] = permitInfo;
51
- $[9] = spenderAddress;
52
- $[10] = tokenAddress;
53
- $[11] = t2;
52
+ $[8] = logger;
53
+ $[9] = permitInfo;
54
+ $[10] = spenderAddress;
55
+ $[11] = tokenAddress;
56
+ $[12] = t2;
54
57
  } else {
55
- t2 = $[11];
58
+ t2 = $[12];
56
59
  }
57
60
  const t3 = queryEnabled && !!(permitInfo && tokenAddress && !!chainId);
58
61
  let t4;
59
- if ($[12] !== query || $[13] !== t1 || $[14] !== t2 || $[15] !== t3) {
62
+ if ($[13] !== query || $[14] !== t1 || $[15] !== t2 || $[16] !== t3) {
60
63
  t4 = {
61
64
  queryKey: t1,
62
65
  queryFn: t2,
@@ -68,13 +71,13 @@ function useTryToSignPermit1(t0) {
68
71
  ...query,
69
72
  enabled: t3
70
73
  };
71
- $[12] = query;
72
- $[13] = t1;
73
- $[14] = t2;
74
- $[15] = t3;
75
- $[16] = t4;
74
+ $[13] = query;
75
+ $[14] = t1;
76
+ $[15] = t2;
77
+ $[16] = t3;
78
+ $[17] = t4;
76
79
  } else {
77
- t4 = $[16];
80
+ t4 = $[17];
78
81
  }
79
82
  const queryResult = useQuery(t4);
80
83
  return queryResult;
@@ -1 +1 @@
1
- {"version":3,"file":"useTryToSignPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { trySignPermit1 } from \"../../utils/trySignPermit1\";\nimport type {\n TrySignPermitParams,\n TrySignPermitResult,\n} from \"../../utils/trySignPermit1\";\nimport { useConfig } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\n\ntype TryToSingPermitQueryKey = [\n \"trySignPermit\",\n TrySignPermitParams[\"permitInfo\"]?,\n Address?,\n Address?,\n bigint?,\n];\n\ntype UseTryToSignPermitParams<Select = TrySignPermitResult> = Partial<\n Omit<TrySignPermitParams, \"config\">\n> & {\n query?: Omit<\n UseQueryOptions<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport function useTryToSignPermit1<Select = TrySignPermitResult>({\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n chainId,\n query,\n}: UseTryToSignPermitParams<Select>): UseQueryResult<Select, Error> {\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >({\n queryKey: [\n \"trySignPermit\",\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n ],\n queryFn: async () => {\n assert(permitInfo, \"permitInfo is required\");\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const result = await trySignPermit1({\n config,\n permitInfo,\n tokenAddress,\n chainId,\n spenderAddress,\n amount,\n });\n\n console.log(\"PERMIT1::TrySignPermitResult\", result);\n\n return result;\n },\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n retry: false,\n ...query,\n enabled: queryEnabled && !!(permitInfo && tokenAddress && !!chainId),\n });\n\n return queryResult;\n}\n"],"names":["useTryToSignPermit1","t0","$","_c","permitInfo","tokenAddress","spenderAddress","amount","chainId","query","config","useConfig","queryEnabled","enabled","t1","t2","assert","result","trySignPermit1","console","log","t3","t4","queryKey","queryFn","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","gcTime","retry","queryResult","useQuery"],"mappings":"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"}
1
+ {"version":3,"file":"useTryToSignPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { trySignPermit1 } from \"../../utils/trySignPermit1\";\nimport type {\n TrySignPermitParams,\n TrySignPermitResult,\n} from \"../../utils/trySignPermit1\";\nimport { useConfig } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { useLogger } from \"@/widget/logger\";\n\ntype TryToSingPermitQueryKey = [\n \"trySignPermit\",\n TrySignPermitParams[\"permitInfo\"]?,\n Address?,\n Address?,\n bigint?,\n];\n\ntype UseTryToSignPermitParams<Select = TrySignPermitResult> = Partial<\n Omit<TrySignPermitParams, \"config\">\n> & {\n query?: Omit<\n UseQueryOptions<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport function useTryToSignPermit1<Select = TrySignPermitResult>({\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n chainId,\n query,\n}: UseTryToSignPermitParams<Select>): UseQueryResult<Select, Error> {\n const logger = useLogger(\"PERMIT1::TryToSignPermit1\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >({\n queryKey: [\n \"trySignPermit\",\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n ],\n queryFn: async () => {\n assert(permitInfo, \"permitInfo is required\");\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const result = await trySignPermit1({\n config,\n permitInfo,\n tokenAddress,\n chainId,\n spenderAddress,\n amount,\n });\n\n logger.log(\"result\", result);\n\n return result;\n },\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n retry: false,\n ...query,\n enabled: queryEnabled && !!(permitInfo && tokenAddress && !!chainId),\n });\n\n return queryResult;\n}\n"],"names":["useTryToSignPermit1","t0","$","_c","permitInfo","tokenAddress","spenderAddress","amount","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","t2","assert","result","trySignPermit1","log","t3","t4","queryKey","queryFn","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","gcTime","retry","queryResult","useQuery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2Allowance.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,UAAU,yBAAyB;IACjC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAIF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAc,GACf,EAAE,yBAAyB,GAAG,yBAAyB,CA2CvD"}
1
+ {"version":3,"file":"usePermit2Allowance.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,UAAU,yBAAyB;IACjC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAc,GACf,EAAE,yBAAyB,GAAG,yBAAyB,CA4CvD"}
@@ -2,12 +2,9 @@ import { d as distExports } from '../../../../_virtual/index.js';
2
2
  import { useAccount } from 'wagmi';
3
3
  import { isETH } from '../../../../tokens/utils/eth.js';
4
4
  import { useTokenAllowance } from '../../../tokens/allowance/useTokenAllowance.js';
5
- import 'clsx';
6
- import 'tailwind-merge';
7
- import { createLogger } from '../../../../lib/utils/logger.js';
5
+ import { useLogger } from '../../../../widget/logger.js';
8
6
  import { PERMIT2_ADDRESS } from '../../utils/construct.js';
9
7
 
10
- const logger = createLogger();
11
8
  function usePermit2Allowance(t0) {
12
9
  const $ = distExports.c(13);
13
10
  const {
@@ -17,6 +14,7 @@ function usePermit2Allowance(t0) {
17
14
  enabled: t1
18
15
  } = t0;
19
16
  const enabled = t1 === void 0 ? true : t1;
17
+ const logger = useLogger("PERMIT2::Allowance");
20
18
  const {
21
19
  address: user
22
20
  } = useAccount();
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2Allowance.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport type { Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useTokenAllowance } from \"@/hooks/tokens/allowance/useTokenAllowance\";\nimport { createLogger } from \"@/lib/utils\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\ninterface UsePermit2AllowanceParams {\n token?: Pick<Token, \"address\" | \"network\">;\n spender?: Address;\n amount?: bigint;\n enabled?: boolean;\n}\n\ntype UsePermit2AllowanceResult = {\n canUsePermit2: boolean;\n enoughAllowanceForPermit2: boolean;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: () => void;\n permit2Allowance: bigint | null;\n};\n\nconst logger = createLogger(\"PERMIT2::Allowance\");\n\nexport function usePermit2Allowance({\n token,\n spender,\n amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const { address: user } = useAccount();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n\n const enoughAllowanceForPermit2 = !!(\n amount &&\n allowanceForPermit2Query.data &&\n allowanceForPermit2Query.data >= amount\n );\n\n const canUsePermit2 = !!(\n tokenNotETH &&\n user &&\n spender &&\n amount &&\n enoughAllowanceForPermit2\n );\n\n logger.once.log({\n canUsePermit2,\n enoughAllowanceForPermit2,\n allowance: allowanceForPermit2Query.data,\n error: allowanceForPermit2Query.error,\n });\n\n return {\n canUsePermit2,\n enoughAllowanceForPermit2,\n isLoading: allowanceForPermit2Query.isLoading,\n isError: allowanceForPermit2Query.isError,\n isSuccess: allowanceForPermit2Query.isSuccess,\n error: allowanceForPermit2Query.error,\n permit2Allowance: allowanceForPermit2Query.data ?? null,\n refetch: allowanceForPermit2Query.refetch,\n };\n}\n"],"names":["logger","createLogger","usePermit2Allowance","t0","$","_c","token","spender","amount","enabled","t1","undefined","address","user","useAccount","tokenNotETH","isETH","t2","t3","network","t4","tokenAddress","PERMIT2_ADDRESS","chainId","allowanceForPermit2Query","useTokenAllowance","enoughAllowanceForPermit2","data","canUsePermit2","once","log","allowance","error","t5","t6","isError","isLoading","isSuccess","refetch","permit2Allowance"],"mappings":";;;;;;;;;AA0BA,MAAMA,MAAAA,GAASC,aAAiC,CAAA;AAEzC,SAAAC,oBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA6B,EAAA,MAAA;AAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAP,EAAAA;AAIlC,EAAA,MAAAM,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAEA,EAAA,MAAA;AAAA,IAAAE,OAAAA,EAAAC;AAAAA,MAA0BC,UAAAA,EAAW;AAErC,EAAA,MAAAC,WAAAA,GAAoBT,KAAAA,KAAUU,KAAAA,CAAMV,KAAK,CAAA;AAGzB,EAAA,MAAAW,KAAAX,KAAAA,EAAKM,OAAAA;AAEV,EAAA,MAAAM,KAAAZ,KAAAA,EAAKa,OAAAA;AAAS,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAhB,CAAAA,CAAA,CAAA,CAAA,KAAAK,OAAAA,IAAAL,CAAAA,QAAAa,EAAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAc,EAAAA,EAAA;AAH0BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,YAAAA,EACnCJ,EAAAA;AAAAA,MAAcV,OAAAA,EAAAe,eAAAA;AAAAA,MAAAC,OAAAA,EAEnBL,EAAAA;AAAAA,MAAcT;AAAAA,KAAA;AAExBL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAa,EAAAA;AAAAb,IAAAA,CAAAA,MAAAc,EAAAA;AAAAd,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA;AALD,EAAA,MAAAoB,wBAAAA,GAAiCC,kBAAkBL,EAKlD,CAAA;AAED,EAAA,MAAAM,4BAAA,CAAA,EACElB,UACAgB,wBAAAA,CAAwBG,IAAAA,IACxBH,yBAAwBG,IAAAA,IAASnB,MAAAA,CAAAA;AAGnC,EAAA,MAAAoB,gBAAA,CAAA,EACEb,WAAAA,IACAF,IAAAA,IACAN,WACAC,MAAAA,IACAkB,yBAAAA,CAAAA;AAGF1B,EAAAA,MAAAA,CAAA6B,KAAAC,GAAAA,CAAA;AAAA,IAAAF,aAAAA;AAAAA,IAAAF,yBAAAA;AAAAA,IAAAK,WAGaP,wBAAAA,CAAwBG,IAAAA;AAAAA,IAAAK,OAC5BR,wBAAAA,CAAwBQ;AAAAA,GAChC,CAAA;AASmB,EAAA,MAAAC,EAAAA,GAAAT,yBAAwBG,IAAAA,IAAA,IAAA;AAAa,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAA9B,EAAA,CAAA,CAAA,KAAAoB,wBAAAA,CAAAQ,KAAAA,IAAA5B,EAAA,CAAA,CAAA,KAAAoB,wBAAAA,CAAAW,OAAAA,IAAA/B,EAAA,CAAA,CAAA,KAAAoB,wBAAAA,CAAAY,SAAAA,IAAAhC,EAAA,CAAA,CAAA,KAAAoB,wBAAAA,CAAAa,SAAAA,IAAAjC,SAAAoB,wBAAAA,CAAAc,OAAAA,IAAAlC,EAAA,CAAA,CAAA,KAAAwB,aAAAA,IAAAxB,CAAAA,CAAA,EAAA,CAAA,KAAAsB,yBAAAA,IAAAtB,CAAAA,SAAA6B,EAAAA,EAAA;AAPlDC,IAAAA,EAAAA,GAAA;AAAA,MAAAN,aAAAA;AAAAA,MAAAF,yBAAAA;AAAAA,MAAAU,WAGMZ,wBAAAA,CAAwBY,SAAAA;AAAAA,MAAAD,SAC1BX,wBAAAA,CAAwBW,OAAAA;AAAAA,MAAAE,WACtBb,wBAAAA,CAAwBa,SAAAA;AAAAA,MAAAL,OAC5BR,wBAAAA,CAAwBQ,KAAAA;AAAAA,MAAAO,gBAAAA,EACbN,EAAAA;AAAAA,MAAqCK,SAC9Cd,wBAAAA,CAAwBc;AAAAA,KAAA;AAClClC,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,wBAAAA,CAAAQ,KAAAA;AAAA5B,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,wBAAAA,CAAAW,OAAAA;AAAA/B,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,wBAAAA,CAAAY,SAAAA;AAAAhC,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,wBAAAA,CAAAa,SAAAA;AAAAjC,IAAAA,CAAAA,CAAA,CAAA,IAAAoB,wBAAAA,CAAAc,OAAAA;AAAAlC,IAAAA,CAAAA,MAAAwB,aAAAA;AAAAxB,IAAAA,CAAAA,OAAAsB,yBAAAA;AAAAtB,IAAAA,CAAAA,OAAA6B,EAAAA;AAAA7B,IAAAA,CAAAA,OAAA8B,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA9B,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OATM8B,EAAAA;AASN;;;;"}
1
+ {"version":3,"file":"usePermit2Allowance.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport type { Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useTokenAllowance } from \"@/hooks/tokens/allowance/useTokenAllowance\";\nimport { useLogger } from \"@/widget/logger\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\ninterface UsePermit2AllowanceParams {\n token?: Pick<Token, \"address\" | \"network\">;\n spender?: Address;\n amount?: bigint;\n enabled?: boolean;\n}\n\ntype UsePermit2AllowanceResult = {\n canUsePermit2: boolean;\n enoughAllowanceForPermit2: boolean;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: () => void;\n permit2Allowance: bigint | null;\n};\n\nexport function usePermit2Allowance({\n token,\n spender,\n amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const logger = useLogger(\"PERMIT2::Allowance\");\n const { address: user } = useAccount();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n\n const enoughAllowanceForPermit2 = !!(\n amount &&\n allowanceForPermit2Query.data &&\n allowanceForPermit2Query.data >= amount\n );\n\n const canUsePermit2 = !!(\n tokenNotETH &&\n user &&\n spender &&\n amount &&\n enoughAllowanceForPermit2\n );\n\n logger.once.log({\n canUsePermit2,\n enoughAllowanceForPermit2,\n allowance: allowanceForPermit2Query.data,\n error: allowanceForPermit2Query.error,\n });\n\n return {\n canUsePermit2,\n enoughAllowanceForPermit2,\n isLoading: allowanceForPermit2Query.isLoading,\n isError: allowanceForPermit2Query.isError,\n isSuccess: allowanceForPermit2Query.isSuccess,\n error: allowanceForPermit2Query.error,\n permit2Allowance: allowanceForPermit2Query.data ?? null,\n refetch: allowanceForPermit2Query.refetch,\n };\n}\n"],"names":["usePermit2Allowance","t0","$","_c","token","spender","amount","enabled","t1","undefined","logger","useLogger","address","user","useAccount","tokenNotETH","isETH","t2","t3","network","t4","tokenAddress","PERMIT2_ADDRESS","chainId","allowanceForPermit2Query","useTokenAllowance","enoughAllowanceForPermit2","data","canUsePermit2","once","log","allowance","error","t5","t6","isError","isLoading","isSuccess","refetch","permit2Allowance"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2TransferFromNonce.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,MAAM,CAAC;AAOhD;;;;;;;;;;;;GAYG;AAGH,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAUF,UAAU,kCAAkC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,iCAAiC,GAAG;IAE9C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,CACP,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,QAAa,EACb,OAAc,GACf,EAAE,kCAAkC;;;;;;;;EAiFpC;AAyED,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAmC7D"}
1
+ {"version":3,"file":"usePermit2TransferFromNonce.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,MAAM,CAAC;AAQhD;;;;;;;;;;;;GAYG;AAGH,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAUF,UAAU,kCAAkC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,iCAAiC,GAAG;IAE9C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,CACP,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,QAAa,EACb,OAAc,GACf,EAAE,kCAAkC;;;;;;;;EAkFpC;AAyED,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAmC7D"}
@@ -5,6 +5,7 @@ import { readContract } from '@wagmi/core';
5
5
  import { assert } from 'ts-essentials';
6
6
  import { PERMIT2_ABI } from '../../utils/abi.js';
7
7
  import { PERMIT2_ADDRESS } from '../../utils/construct.js';
8
+ import { useLogger, getLogger } from '../../../../widget/logger.js';
8
9
 
9
10
  const PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = "permit2-nonce";
10
11
  function usePermit2TransferFromNonce({
@@ -15,6 +16,7 @@ function usePermit2TransferFromNonce({
15
16
  }) {
16
17
  const queryClient = useQueryClient();
17
18
  const config = useConfig();
19
+ const logger = useLogger("PERMIT2::TransferFromNonce");
18
20
  const queryKey = [PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY, owner, chainId];
19
21
  const {
20
22
  data: nonceState_0,
@@ -36,7 +38,7 @@ function usePermit2TransferFromNonce({
36
38
  startWord: last?.word ?? initWord
37
39
  });
38
40
  if (!nextOpenWord) {
39
- console.warn("No available nonce found");
41
+ logger.warn("No available nonce found");
40
42
  return null;
41
43
  }
42
44
  const {
@@ -45,7 +47,7 @@ function usePermit2TransferFromNonce({
45
47
  } = nextOpenWord;
46
48
  const bitPos = getFirstUnsetBit(bitmap);
47
49
  if (bitPos === -1) {
48
- console.warn("No available nonce found");
50
+ logger.warn("No available nonce found");
49
51
  return null;
50
52
  }
51
53
  const nonceState = {
@@ -53,7 +55,7 @@ function usePermit2TransferFromNonce({
53
55
  bitmap,
54
56
  nonce: word * 256n + BigInt(bitPos)
55
57
  };
56
- console.log("PERMIT2::nonceState", nonceState);
58
+ logger.log("nonceState", nonceState);
57
59
  return nonceState;
58
60
  },
59
61
  // Useful defaults
@@ -92,7 +94,7 @@ async function getNextOpenWord({
92
94
  }
93
95
  word += 1n;
94
96
  if (word - startWord > 1024n) {
95
- console.warn("Exceeded nonce search limit");
97
+ getLogger("PERMIT2::getNextOpenWord").warn("Exceeded nonce search limit");
96
98
  return null;
97
99
  }
98
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"sourcesContent":["import {\n useQuery,\n useQueryClient,\n type QueryObserverResult,\n type RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { type Address, maxUint256 } from \"viem\";\nimport { useConfig, type Config } from \"wagmi\";\nimport { readContract } from \"@wagmi/core\";\nimport { assert } from \"ts-essentials\";\nimport { PERMIT2_ABI } from \"../../utils/abi\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\n/**\n * Permit2 stores nonces using a nested bitmap structure:\n *\n * mapping(address => mapping(uint256 => uint256)) public nonceBitmap;\n *\n * - The outer key (`address`) is the permit signer (the `owner`)\n * - The inner key (`uint256 word`) is the index of a 256-bit \"page\"\n * - The value (`uint256`) is the bitmap for that page — each bit (0 to 255) represents a nonce\n * - If bit `i` is `0`, then nonce `word * 256 + i` is **unused**\n * - If bit `i` is `1`, then that nonce has **already been used**\n *\n * This is what enables Permit2 to support unordered nonces while saving gas.\n */\n\n// Result of finding an available nonce\ntype NonceState = {\n word: bigint; // which 256-bit \"page\" of the bitmap we used\n bitmap: bigint; // the bitmap for that word\n nonce: bigint; // full 256-based offset: word * 256 + bit index\n};\n\nconst PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = \"permit2-nonce\";\n\ntype Permit2TransferFromQueryKey = [\n typeof PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner?: Address,\n chainId?: number,\n];\n\ninterface UsePermit2TransferFromNonceOptions {\n owner?: Address;\n chainId?: number;\n initWord?: bigint; // word offset to begin scanning from\n enabled?: boolean;\n}\n\nexport type UsePermit2TransferFromNonceResult = {\n // null when no can't calculate Permit2 nonce\n nonceToUse?: bigint | null;\n nonceState?: NonceState | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<NonceState | null, Error>>;\n};\n\n/**\n * React hook to find the next unused Permit2 nonce for `permitTransferFrom`.\n *\n * Permit2 stores nonces as a bitmap:\n * - Each address has a mapping from uint256 => uint256\n * - Each value is a 256-bit bitmap (called a \"word\")\n * - If a bit is 1, the nonce (word * 256 + bit index) is used\n * - If it's 0, it's free and can be used\n */\nexport function usePermit2TransferFromNonce({\n owner,\n chainId,\n initWord = 0n,\n enabled = true,\n}: UsePermit2TransferFromNonceOptions) {\n const queryClient = useQueryClient();\n const config = useConfig();\n\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n const {\n data: nonceState,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useQuery<\n NonceState | null,\n Error,\n NonceState | null,\n Permit2TransferFromQueryKey\n >({\n enabled: enabled && !!(owner && chainId),\n\n queryKey,\n\n queryFn: async () => {\n // Safety checks\n assert(owner, \"owner is required\");\n assert(chainId, \"chainId is required\");\n\n // Try to resume scanning from last known state if available\n const last = queryClient.getQueryData<NonceState>(queryKey);\n\n // Find a bitmap word that has at least one unused bit (i.e. a usable nonce)\n const nextOpenWord = await getNextOpenWord({\n owner,\n config,\n startWord: last?.word ?? initWord,\n });\n\n if (!nextOpenWord) {\n console.warn(\"No available nonce found\");\n return null;\n }\n\n const { word, bitmap } = nextOpenWord;\n // Identify the first 0-bit in the bitmap — that’s our next nonce\n const bitPos = getFirstUnsetBit(bitmap);\n if (bitPos === -1) {\n console.warn(\"No available nonce found\");\n return null;\n }\n\n const nonceState = {\n word,\n bitmap,\n nonce: word * 256n + BigInt(bitPos),\n };\n\n console.log(\"PERMIT2::nonceState\", nonceState);\n\n // The final usable nonce is: word * 256 + bit index\n return nonceState;\n },\n\n // Useful defaults\n refetchOnWindowFocus: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n });\n\n return {\n nonceState,\n nonceToUse: nonceState === null ? null : nonceState?.nonce,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n\ninterface GetNextOpenWordInput {\n owner: Address;\n config: Config;\n startWord: bigint;\n}\n\n/**\n * Scans bitmap word-by-word starting at `startWord` until it finds\n * one with at least one unused bit (i.e., not all bits are set to 1).\n */\nasync function getNextOpenWord({\n owner,\n config,\n startWord,\n}: GetNextOpenWordInput): Promise<{ word: bigint; bitmap: bigint } | null> {\n let word = startWord;\n const MAX = maxUint256; // full 256-bit word (0xffff...ffff)\n\n while (true) {\n // Read the bitmap word for the given owner and word index\n const bitmap = await readContract(config, {\n address: PERMIT2_ADDRESS,\n abi: PERMIT2_ABI,\n functionName: \"nonceBitmap\",\n args: [owner, word],\n });\n\n // If the bitmap is not fully used (i.e., not all bits are 1)\n if (bitmap !== MAX) {\n return { word, bitmap };\n }\n\n word += 1n;\n\n // Fail-safe: don't scan more than 1024 words (262,144 nonces)\n if (word - startWord > 1024n) {\n console.warn(\"Exceeded nonce search limit\");\n return null;\n }\n }\n}\n\n/**\n * Returns the index (0–255) of the first unset (zero) bit in a 256-bit bitmap.\n *\n * Uses a classic bit-hack: (~bitmap) & (bitmap + 1)\n *\n * This produces a bitmask with only the lowest 0-bit set to 1.\n * Example:\n * bitmap = 0b1110 → unset bit at index 0\n * ~bitmap = 0b...0001\n * bitmap + 1 = 0b1111\n * result = 0b0001 → bitmask for index 0\n *\n * We then convert the bitmask to binary and count how many bits it takes\n * to shift that 1 into place = its position.\n */\nfunction getFirstUnsetBit(bitmap: bigint): number {\n // Create a bitmask with a 1 only at the first 0-bit (LSB side)\n const mask = ~bitmap & (bitmap + 1n);\n\n // If all bits are set (mask is zero), there are no available nonces\n if (mask === 0n) return -1;\n\n // Convert mask to binary and count digits – the length is the index + 1\n // e.g. mask = 0b1000 → \"1000\" → length = 4 → index = 3\n return mask.toString(2).length - 1;\n}\n\n/////// MARK NONCE AS USED ///////\n\ntype SetNonceInput = {\n owner: Address;\n chainId: number;\n usedNonce: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n /**\n * Mark a nonce as \"used\" in the local cache after submitting a transaction or order\n * This prevents reuse of the same nonce while it's still pending on-chain.\n */\n markNonceAsUsed: (input: SetNonceInput) => void;\n};\n\n/**\n * Hook to manually bump the locally cached Permit2 nonce to avoid reuse\n *\n * Permit2 allows unordered nonces, but while a tx is pending, it's safer to use\n * a strictly increasing nonce to avoid accidental replays or reuse.\n *\n * clearing an unsued nonce is not necessary because nonces are unordered\n */\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const queryClient = useQueryClient();\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n usedNonce,\n }) => {\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n // Update cached nonce state if the used nonce was >= current one\n queryClient.setQueryData<NonceState>(queryKey, (oldNonceState) => {\n if (!oldNonceState) return oldNonceState; // should not happen unless cache was cleared\n\n // If we're already past this nonce, nothing to do\n if (oldNonceState.nonce > usedNonce) return oldNonceState;\n\n const newNonce = oldNonceState.nonce + 1n;\n const { word, bitPos } = splitNonce(newNonce);\n\n return {\n word,\n bitmap: 1n << bitPos, // ✅ convert bit index to actual 256-bit bitmap\n nonce: newNonce,\n };\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n\n/**\n * Splits a Permit2 nonce into:\n * - `word`: which 256-bit bitmap page (nonce / 256)\n * - `bitPos`: position within that word (nonce % 256)\n */\nfunction splitNonce(nonce: bigint): { word: bigint; bitPos: bigint } {\n const word = nonce / 256n;\n const bitPos = nonce % 256n;\n return { word, bitPos };\n}\n"],"names":["PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY","usePermit2TransferFromNonce","owner","chainId","initWord","enabled","queryClient","useQueryClient","config","useConfig","queryKey","data","nonceState","isLoading","isError","isSuccess","error","refetch","useQuery","queryFn","assert","last","getQueryData","nextOpenWord","getNextOpenWord","startWord","word","console","warn","bitmap","bitPos","getFirstUnsetBit","nonce","BigInt","log","refetchOnWindowFocus","notifyOnChangeProps","nonceToUse","MAX","maxUint256","readContract","address","PERMIT2_ADDRESS","abi","PERMIT2_ABI","functionName","args","mask","toString","length","useMarkNonceAsUsed","markNonceAsUsed","usedNonce","setQueryData","oldNonceState","newNonce","splitNonce"],"mappings":"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"}
1
+ {"version":3,"file":"usePermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"sourcesContent":["import {\n useQuery,\n useQueryClient,\n type QueryObserverResult,\n type RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { type Address, maxUint256 } from \"viem\";\nimport { useConfig, type Config } from \"wagmi\";\nimport { readContract } from \"@wagmi/core\";\nimport { assert } from \"ts-essentials\";\nimport { PERMIT2_ABI } from \"../../utils/abi\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\nimport { getLogger, useLogger } from \"@/widget/logger\";\n\n/**\n * Permit2 stores nonces using a nested bitmap structure:\n *\n * mapping(address => mapping(uint256 => uint256)) public nonceBitmap;\n *\n * - The outer key (`address`) is the permit signer (the `owner`)\n * - The inner key (`uint256 word`) is the index of a 256-bit \"page\"\n * - The value (`uint256`) is the bitmap for that page — each bit (0 to 255) represents a nonce\n * - If bit `i` is `0`, then nonce `word * 256 + i` is **unused**\n * - If bit `i` is `1`, then that nonce has **already been used**\n *\n * This is what enables Permit2 to support unordered nonces while saving gas.\n */\n\n// Result of finding an available nonce\ntype NonceState = {\n word: bigint; // which 256-bit \"page\" of the bitmap we used\n bitmap: bigint; // the bitmap for that word\n nonce: bigint; // full 256-based offset: word * 256 + bit index\n};\n\nconst PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = \"permit2-nonce\";\n\ntype Permit2TransferFromQueryKey = [\n typeof PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner?: Address,\n chainId?: number,\n];\n\ninterface UsePermit2TransferFromNonceOptions {\n owner?: Address;\n chainId?: number;\n initWord?: bigint; // word offset to begin scanning from\n enabled?: boolean;\n}\n\nexport type UsePermit2TransferFromNonceResult = {\n // null when no can't calculate Permit2 nonce\n nonceToUse?: bigint | null;\n nonceState?: NonceState | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<NonceState | null, Error>>;\n};\n\n/**\n * React hook to find the next unused Permit2 nonce for `permitTransferFrom`.\n *\n * Permit2 stores nonces as a bitmap:\n * - Each address has a mapping from uint256 => uint256\n * - Each value is a 256-bit bitmap (called a \"word\")\n * - If a bit is 1, the nonce (word * 256 + bit index) is used\n * - If it's 0, it's free and can be used\n */\nexport function usePermit2TransferFromNonce({\n owner,\n chainId,\n initWord = 0n,\n enabled = true,\n}: UsePermit2TransferFromNonceOptions) {\n const queryClient = useQueryClient();\n const config = useConfig();\n const logger = useLogger(\"PERMIT2::TransferFromNonce\");\n\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n const {\n data: nonceState,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useQuery<\n NonceState | null,\n Error,\n NonceState | null,\n Permit2TransferFromQueryKey\n >({\n enabled: enabled && !!(owner && chainId),\n\n queryKey,\n\n queryFn: async () => {\n // Safety checks\n assert(owner, \"owner is required\");\n assert(chainId, \"chainId is required\");\n\n // Try to resume scanning from last known state if available\n const last = queryClient.getQueryData<NonceState>(queryKey);\n\n // Find a bitmap word that has at least one unused bit (i.e. a usable nonce)\n const nextOpenWord = await getNextOpenWord({\n owner,\n config,\n startWord: last?.word ?? initWord,\n });\n\n if (!nextOpenWord) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const { word, bitmap } = nextOpenWord;\n // Identify the first 0-bit in the bitmap — that’s our next nonce\n const bitPos = getFirstUnsetBit(bitmap);\n if (bitPos === -1) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const nonceState = {\n word,\n bitmap,\n nonce: word * 256n + BigInt(bitPos),\n };\n\n logger.log(\"nonceState\", nonceState);\n\n // The final usable nonce is: word * 256 + bit index\n return nonceState;\n },\n\n // Useful defaults\n refetchOnWindowFocus: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n });\n\n return {\n nonceState,\n nonceToUse: nonceState === null ? null : nonceState?.nonce,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n\ninterface GetNextOpenWordInput {\n owner: Address;\n config: Config;\n startWord: bigint;\n}\n\n/**\n * Scans bitmap word-by-word starting at `startWord` until it finds\n * one with at least one unused bit (i.e., not all bits are set to 1).\n */\nasync function getNextOpenWord({\n owner,\n config,\n startWord,\n}: GetNextOpenWordInput): Promise<{ word: bigint; bitmap: bigint } | null> {\n let word = startWord;\n const MAX = maxUint256; // full 256-bit word (0xffff...ffff)\n\n while (true) {\n // Read the bitmap word for the given owner and word index\n const bitmap = await readContract(config, {\n address: PERMIT2_ADDRESS,\n abi: PERMIT2_ABI,\n functionName: \"nonceBitmap\",\n args: [owner, word],\n });\n\n // If the bitmap is not fully used (i.e., not all bits are 1)\n if (bitmap !== MAX) {\n return { word, bitmap };\n }\n\n word += 1n;\n\n // Fail-safe: don't scan more than 1024 words (262,144 nonces)\n if (word - startWord > 1024n) {\n getLogger(\"PERMIT2::getNextOpenWord\").warn(\"Exceeded nonce search limit\");\n return null;\n }\n }\n}\n\n/**\n * Returns the index (0–255) of the first unset (zero) bit in a 256-bit bitmap.\n *\n * Uses a classic bit-hack: (~bitmap) & (bitmap + 1)\n *\n * This produces a bitmask with only the lowest 0-bit set to 1.\n * Example:\n * bitmap = 0b1110 → unset bit at index 0\n * ~bitmap = 0b...0001\n * bitmap + 1 = 0b1111\n * result = 0b0001 → bitmask for index 0\n *\n * We then convert the bitmask to binary and count how many bits it takes\n * to shift that 1 into place = its position.\n */\nfunction getFirstUnsetBit(bitmap: bigint): number {\n // Create a bitmask with a 1 only at the first 0-bit (LSB side)\n const mask = ~bitmap & (bitmap + 1n);\n\n // If all bits are set (mask is zero), there are no available nonces\n if (mask === 0n) return -1;\n\n // Convert mask to binary and count digits – the length is the index + 1\n // e.g. mask = 0b1000 → \"1000\" → length = 4 → index = 3\n return mask.toString(2).length - 1;\n}\n\n/////// MARK NONCE AS USED ///////\n\ntype SetNonceInput = {\n owner: Address;\n chainId: number;\n usedNonce: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n /**\n * Mark a nonce as \"used\" in the local cache after submitting a transaction or order\n * This prevents reuse of the same nonce while it's still pending on-chain.\n */\n markNonceAsUsed: (input: SetNonceInput) => void;\n};\n\n/**\n * Hook to manually bump the locally cached Permit2 nonce to avoid reuse\n *\n * Permit2 allows unordered nonces, but while a tx is pending, it's safer to use\n * a strictly increasing nonce to avoid accidental replays or reuse.\n *\n * clearing an unsued nonce is not necessary because nonces are unordered\n */\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const queryClient = useQueryClient();\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n usedNonce,\n }) => {\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n // Update cached nonce state if the used nonce was >= current one\n queryClient.setQueryData<NonceState>(queryKey, (oldNonceState) => {\n if (!oldNonceState) return oldNonceState; // should not happen unless cache was cleared\n\n // If we're already past this nonce, nothing to do\n if (oldNonceState.nonce > usedNonce) return oldNonceState;\n\n const newNonce = oldNonceState.nonce + 1n;\n const { word, bitPos } = splitNonce(newNonce);\n\n return {\n word,\n bitmap: 1n << bitPos, // ✅ convert bit index to actual 256-bit bitmap\n nonce: newNonce,\n };\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n\n/**\n * Splits a Permit2 nonce into:\n * - `word`: which 256-bit bitmap page (nonce / 256)\n * - `bitPos`: position within that word (nonce % 256)\n */\nfunction splitNonce(nonce: bigint): { word: bigint; bitPos: bigint } {\n const word = nonce / 256n;\n const bitPos = nonce % 256n;\n return { word, bitPos };\n}\n"],"names":["PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY","usePermit2TransferFromNonce","owner","chainId","initWord","enabled","queryClient","useQueryClient","config","useConfig","logger","useLogger","queryKey","data","nonceState","isLoading","isError","isSuccess","error","refetch","useQuery","queryFn","assert","last","getQueryData","nextOpenWord","getNextOpenWord","startWord","word","warn","bitmap","bitPos","getFirstUnsetBit","nonce","BigInt","log","refetchOnWindowFocus","notifyOnChangeProps","nonceToUse","MAX","maxUint256","readContract","address","PERMIT2_ADDRESS","abi","PERMIT2_ABI","functionName","args","getLogger","mask","toString","length","useMarkNonceAsUsed","markNonceAsUsed","usedNonce","setQueryData","oldNonceState","newNonce","splitNonce"],"mappings":"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"}