@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
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\nimport { useTrackedPrice } from \"./common/useTrackedPrice\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage();\n const swapSide = useSwapSide();\n\n const trackedPrice = useTrackedPrice({\n price: marketPrice,\n slippage: resolvedSlippage,\n side: swapSide,\n });\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const usingPrice = trackedPrice.get.usingPrice();\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: usingPrice?.srcToken ?? marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: trackedPrice.get.approvedAmount() ?? marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: usingPrice?.side ?? swapSide,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n console.log(\"Build tx success\");\n },\n onError: (error) => {\n console.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n console.log(\"Swap tx success\");\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = useWidgetConfig().partner;\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmountRef, we will only get new prices that satisfy the allowance\n let marketPriceToUse = trackedPrice.get.usingPrice();\n // usingPriceRef.current can be null depending on reset() timing (e.g. inside retry)\n if (!marketPriceToUse) {\n marketPriceToUse = marketPrice || null;\n trackedPrice.set.usingPrice(marketPriceToUse);\n }\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // freeze final price to avoid any changes to displayed and result amounts\n trackedPrice.set.finalPrice(marketPriceToUse);\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n /* @TODO fill in when and if available\n referrer: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions:\n // ignoreChecks: true,\n // ignoreGasEstimate: true,\n // ignoreAllowance: true,\n // onlyParams: true,\n // @TODO turn on ignore options when necessary (for Safe),\n gasParams,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n console.log(\"🚀 ~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n console.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n trackedPrice.resetTrackedPrice();\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n trackedPrice.resetTrackedPrice();\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n reset();\n return runMarketSwapFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice =\n trackedPrice.get.finalPrice() ||\n trackedPrice.get.usingPrice() ||\n marketPrice;\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","t1","price","slippage","side","trackedPrice","useTrackedPrice","t2","get","usingPrice","t3","srcToken","t4","srcAmount","approvedAmount","t5","t6","spenderContractType","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","t7","Symbol","for","onSuccess","_temp","onError","_temp2","t8","mutationOptions","buildTxMut","useBuildTx","t9","error","isError","isPending","isSuccess","buildTxParams","t10","_temp3","_temp4","sendSwapTxMut","useSendMarketSwapTx","t11","txHash","hash","swapTxMined","useAwaitTx","t12","isLoading","t13","t14","t15","data","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","swap","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t16","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t17","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","useWidgetConfig","t18","set","t19","onTxSent","undefined","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","signPermitAsync","value","assert","marketPriceToUse","amountsAfterSlippage","applySlippage","destAmount","finalPrice","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","permitEncodedArgs","priceRoute","swapTxOptions","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t20","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","nonces","resetTrackedPrice","t21","mutationFn","mutationKey","_temp5","_temp6","onSettled","marketSwapMut","useMutation","runMarketSwapFlow","t22","t23","options","retryFlow","t24","usedPrice","t25","result","error_2","data_1","error_0"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\nimport { useLogger } from \"@/widget/logger\";\nimport { useTrackedPrice } from \"./common/useTrackedPrice\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const logger = useLogger(\"MarketFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage();\n const swapSide = useSwapSide();\n\n const trackedPrice = useTrackedPrice({\n price: marketPrice,\n slippage: resolvedSlippage,\n side: swapSide,\n });\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const usingPrice = trackedPrice.get.usingPrice();\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: usingPrice?.srcToken ?? marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: trackedPrice.get.approvedAmount() ?? marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: usingPrice?.side ?? swapSide,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n logger.log(\"Build tx success\");\n },\n onError: (error) => {\n logger.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n logger.log(\"Swap tx success\");\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = useWidgetConfig().partner;\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmountRef, we will only get new prices that satisfy the allowance\n let marketPriceToUse = trackedPrice.get.usingPrice();\n // usingPriceRef.current can be null depending on reset() timing (e.g. inside retry)\n if (!marketPriceToUse) {\n marketPriceToUse = marketPrice || null;\n trackedPrice.set.usingPrice(marketPriceToUse);\n }\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // freeze final price to avoid any changes to displayed and result amounts\n trackedPrice.set.finalPrice(marketPriceToUse);\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n /* @TODO fill in when and if available\n referrer: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions:\n // ignoreChecks: true,\n // ignoreGasEstimate: true,\n // ignoreAllowance: true,\n // onlyParams: true,\n // @TODO turn on ignore options when necessary (for Safe),\n gasParams,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n logger.log(\"~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n logger.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n trackedPrice.resetTrackedPrice();\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n trackedPrice.resetTrackedPrice();\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n reset();\n return runMarketSwapFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice =\n trackedPrice.get.finalPrice() ||\n trackedPrice.get.usingPrice() ||\n marketPrice;\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","t1","price","slippage","side","trackedPrice","useTrackedPrice","t2","get","usingPrice","t3","srcToken","t4","srcAmount","approvedAmount","t5","t6","spenderContractType","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","t7","onSuccess","log","onError","error","t8","mutationOptions","buildTxMut","useBuildTx","t9","isError","isPending","isSuccess","buildTxParams","t10","error_0","sendSwapTxMut","useSendMarketSwapTx","t11","txHash","hash","swapTxMined","useAwaitTx","t12","isLoading","t13","t14","t15","data","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","swap","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t16","Symbol","for","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t17","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","useWidgetConfig","t18","set","t19","onTxSent","undefined","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","actionType","receiptPromise","signPermitAsync","value","assert","marketPriceToUse","amountsAfterSlippage","applySlippage","destAmount","finalPrice","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","permitEncodedArgs","priceRoute","swapTxOptions","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t20","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","t21","data_1","error_2","t22","nonces","resetTrackedPrice","t23","mutationFn","mutationKey","onSettled","marketSwapMut","useMutation","runMarketSwapFlow","t24","t25","options","retryFlow","t26","usedPrice","t27","result"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC7C,CAAC;AAIF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAwGzB"}
1
+ {"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC7C,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAyGzB"}
@@ -1,12 +1,12 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
2
  import { useMarketFlow } from './useMarketFlow.js';
3
3
  import { constructTxLinkForChain } from '../../../lib/utils/explorer.js';
4
- import 'clsx';
5
- import 'tailwind-merge';
4
+ import { useLogger } from '../../../widget/logger.js';
6
5
  import { isUserCancelledError } from './common/errors.js';
7
6
 
8
7
  function useMarketSwapStep(options) {
9
- const $ = distExports.c(19);
8
+ const $ = distExports.c(20);
9
+ const logger = useLogger("MarketSwapStep");
10
10
  const marketFlow = useMarketFlow(options);
11
11
  const startMarketSwap = marketFlow.runMarketSwapFlow;
12
12
  const reset = marketFlow.reset;
@@ -38,26 +38,32 @@ function useMarketSwapStep(options) {
38
38
  const isCancellable = approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;
39
39
  const txHash = marketFlow.swap.txHash;
40
40
  let explorerLink;
41
- if ($[0] !== isCancellable || $[1] !== marketFlow || $[2] !== step || $[3] !== txHash) {
41
+ if ($[0] !== isCancellable || $[1] !== logger.once || $[2] !== marketFlow || $[3] !== step || $[4] !== txHash) {
42
42
  explorerLink = txHash ? constructTxLinkForChain({
43
43
  chainId: marketFlow.chainId,
44
44
  txHash
45
45
  }) : void 0;
46
+ logger.once.log("step", step, marketFlow, {
47
+ isCancellable,
48
+ explorerLink,
49
+ txHash
50
+ });
46
51
  $[0] = isCancellable;
47
- $[1] = marketFlow;
48
- $[2] = step;
49
- $[3] = txHash;
50
- $[4] = explorerLink;
52
+ $[1] = logger.once;
53
+ $[2] = marketFlow;
54
+ $[3] = step;
55
+ $[4] = txHash;
56
+ $[5] = explorerLink;
51
57
  } else {
52
- explorerLink = $[4];
58
+ explorerLink = $[5];
53
59
  }
54
60
  let t0;
55
- if ($[5] !== marketFlow.error) {
61
+ if ($[6] !== marketFlow.error) {
56
62
  t0 = isUserCancelledError(marketFlow.error) ? null : marketFlow.error;
57
- $[5] = marketFlow.error;
58
- $[6] = t0;
63
+ $[6] = marketFlow.error;
64
+ $[7] = t0;
59
65
  } else {
60
- t0 = $[6];
66
+ t0 = $[7];
61
67
  }
62
68
  const error = t0;
63
69
  let erroredStep;
@@ -75,7 +81,7 @@ function useMarketSwapStep(options) {
75
81
  }
76
82
  }
77
83
  let t1;
78
- if ($[7] !== cancelFlow || $[8] !== error || $[9] !== erroredStep || $[10] !== explorerLink || $[11] !== isCancellable || $[12] !== marketFlow.result || $[13] !== marketFlow.usedPrice || $[14] !== reset || $[15] !== retryFlow || $[16] !== startMarketSwap || $[17] !== step) {
84
+ if ($[8] !== cancelFlow || $[9] !== error || $[10] !== erroredStep || $[11] !== explorerLink || $[12] !== isCancellable || $[13] !== marketFlow.result || $[14] !== marketFlow.usedPrice || $[15] !== reset || $[16] !== retryFlow || $[17] !== startMarketSwap || $[18] !== step) {
79
85
  t1 = {
80
86
  startMarketSwap,
81
87
  reset,
@@ -89,20 +95,20 @@ function useMarketSwapStep(options) {
89
95
  result: marketFlow.result,
90
96
  usedPrice: marketFlow.usedPrice
91
97
  };
92
- $[7] = cancelFlow;
93
- $[8] = error;
94
- $[9] = erroredStep;
95
- $[10] = explorerLink;
96
- $[11] = isCancellable;
97
- $[12] = marketFlow.result;
98
- $[13] = marketFlow.usedPrice;
99
- $[14] = reset;
100
- $[15] = retryFlow;
101
- $[16] = startMarketSwap;
102
- $[17] = step;
103
- $[18] = t1;
98
+ $[8] = cancelFlow;
99
+ $[9] = error;
100
+ $[10] = erroredStep;
101
+ $[11] = explorerLink;
102
+ $[12] = isCancellable;
103
+ $[13] = marketFlow.result;
104
+ $[14] = marketFlow.usedPrice;
105
+ $[15] = reset;
106
+ $[16] = retryFlow;
107
+ $[17] = startMarketSwap;
108
+ $[18] = step;
109
+ $[19] = t1;
104
110
  } else {
105
- t1 = $[18];
111
+ t1 = $[19];
106
112
  }
107
113
  return t1;
108
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { createLogger } from \"@/lib/utils\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStepKey;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nconst logger = createLogger(\"MarketSwapStep\");\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n step = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxPending) {\n step = \"swap-tx-execution\";\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"swap-tx-confirmation\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation = step === \"swap-tx-confirmation\";\n\n const notYetSwapTxSent =\n step === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (marketFlow.approval.isError || marketFlow.signPermit.isError) {\n erroredStep = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isTxPending","approvalIsStarted","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCancellable","txHash","explorerLink","constructTxLinkForChain","chainId","undefined","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/widget/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStepKey;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n step = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxPending) {\n step = \"swap-tx-execution\";\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"swap-tx-confirmation\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation = step === \"swap-tx-confirmation\";\n\n const notYetSwapTxSent =\n step === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (marketFlow.approval.isError || marketFlow.signPermit.isError) {\n erroredStep = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isTxPending","approvalIsStarted","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCancellable","txHash","explorerLink","once","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitTx.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAGL,KAAK,sCAAsC,EAC3C,KAAK,sCAAsC,EAC5C,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,oBAAoB,CAAC,MAAM,GAAG,sBAAsB,IAAI;IAClE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,sCAAsC,CAC5C,OAAO,WAAW,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC,OAAO,CAAC,CAAC;CACZ,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAChE,OAAO,WAAW,EAClB,gBAAgB,CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,MAAM,GAAG,sBAAsB,IAC9D,sCAAsC,CACpC,OAAO,WAAW,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC;AAEJ,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,wBAAgB,UAAU,CAAC,MAAM,GAAG,sBAAsB,EAAE,EAC1D,OAAO,EACP,aAAa,EACb,IAAI,EACJ,KAAK,GACN,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAoB7D;AAED,KAAK,iBAAiB,GAAG,CACvB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG;IAClE,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,wBAAgB,kBAAkB,IAAI,iBAAiB,CA4BtD"}
1
+ {"version":3,"file":"useAwaitTx.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAGL,KAAK,sCAAsC,EAC3C,KAAK,sCAAsC,EAC5C,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,oBAAoB,CAAC,MAAM,GAAG,sBAAsB,IAAI;IAClE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,sCAAsC,CAC5C,OAAO,WAAW,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC,OAAO,CAAC,CAAC;CACZ,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAChE,OAAO,WAAW,EAClB,gBAAgB,CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,MAAM,GAAG,sBAAsB,IAC9D,sCAAsC,CACpC,OAAO,WAAW,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC;AAEJ,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,wBAAgB,UAAU,CAAC,MAAM,GAAG,sBAAsB,EAAE,EAC1D,OAAO,EACP,aAAa,EACb,IAAI,EACJ,KAAK,GACN,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAqB7D;AAED,KAAK,iBAAiB,GAAG,CACvB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG;IAClE,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,wBAAgB,kBAAkB,IAAI,iBAAiB,CA4BtD"}
@@ -3,27 +3,30 @@ import { useQueryClient } from '@tanstack/react-query';
3
3
  import { waitForTransactionReceipt } from '@wagmi/core';
4
4
  import { useConfig, useWaitForTransactionReceipt } from 'wagmi';
5
5
  import { waitForTransactionReceiptQueryKey } from 'wagmi/query';
6
+ import { useLogger } from '../../../widget/logger.js';
6
7
 
7
8
  function useAwaitTx(t0) {
8
- const $ = distExports.c(8);
9
+ const $ = distExports.c(9);
9
10
  const {
10
11
  chainId,
11
12
  confirmations,
12
13
  hash,
13
14
  query
14
15
  } = t0;
16
+ const logger = useLogger("AwaitTx");
15
17
  let t1;
16
- if ($[0] !== hash) {
18
+ if ($[0] !== hash || $[1] !== logger) {
17
19
  t1 = (data) => {
18
- console.log("onReplaced:tx", hash, data);
20
+ logger.log("onReplaced:tx", hash, data);
19
21
  };
20
22
  $[0] = hash;
21
- $[1] = t1;
23
+ $[1] = logger;
24
+ $[2] = t1;
22
25
  } else {
23
- t1 = $[1];
26
+ t1 = $[2];
24
27
  }
25
28
  let t2;
26
- if ($[2] !== chainId || $[3] !== confirmations || $[4] !== hash || $[5] !== query || $[6] !== t1) {
29
+ if ($[3] !== chainId || $[4] !== confirmations || $[5] !== hash || $[6] !== query || $[7] !== t1) {
27
30
  t2 = {
28
31
  chainId,
29
32
  confirmations,
@@ -31,14 +34,14 @@ function useAwaitTx(t0) {
31
34
  query,
32
35
  onReplaced: t1
33
36
  };
34
- $[2] = chainId;
35
- $[3] = confirmations;
36
- $[4] = hash;
37
- $[5] = query;
38
- $[6] = t1;
39
- $[7] = t2;
37
+ $[3] = chainId;
38
+ $[4] = confirmations;
39
+ $[5] = hash;
40
+ $[6] = query;
41
+ $[7] = t1;
42
+ $[8] = t2;
40
43
  } else {
41
- t2 = $[7];
44
+ t2 = $[8];
42
45
  }
43
46
  const queryResult = useWaitForTransactionReceipt(t2);
44
47
  return queryResult;
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitTx.js","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { ReplacementReturnType, TransactionReceipt } from \"viem\";\nimport { waitForTransactionReceipt } from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport {\n waitForTransactionReceiptQueryKey,\n type WaitForTransactionReceiptData,\n} from \"wagmi/query\";\n\nexport type UseAwaitTxParameters<Select = DefaultTxReceiptSelect> = {\n chainId: SupportedChainId;\n confirmations?: number;\n hash?: `0x${string}`;\n query?: UseWaitForTransactionReceiptParameters<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >[\"query\"];\n};\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type DefaultTxReceiptSelect = WaitForTransactionReceiptData<\n typeof wagmiConfig,\n SupportedChainId\n>;\n\nexport type UseAwaitTxReturnType<Select = DefaultTxReceiptSelect> =\n UseWaitForTransactionReceiptReturnType<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >;\n\nexport type TxReceiptFromWagmi = DefaultTxReceiptSelect;\n\nexport function useAwaitTx<Select = DefaultTxReceiptSelect>({\n chainId,\n confirmations,\n hash,\n query,\n}: UseAwaitTxParameters<Select>): UseAwaitTxReturnType<Select> {\n const queryResult = useWaitForTransactionReceipt<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >({\n chainId,\n confirmations,\n hash,\n query,\n onReplaced: (data) => {\n // @TODO connect to some atom if needed to detect cancelled/sped-up txs,\n // but sped-up txs may be detected correct internally and re-awaited with a new hash,\n // need to test\n // https://viem.sh/docs/actions/public/waitForTransactionReceipt.html#json-rpc-methods\n console.log(\"onReplaced:tx\", hash, data);\n },\n });\n\n return queryResult;\n}\n\ntype EnsureTxReceiptFn = (\n options: Required<Pick<UseAwaitTxParameters, \"hash\" | \"chainId\">> & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\nexport function useEnsureTxReceipt(): EnsureTxReceiptFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n\n const ensureTxReceipt: EnsureTxReceiptFn = async ({\n hash,\n chainId,\n onReplaced,\n }) => {\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n });\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(wagmiConfig, {\n hash,\n chainId,\n onReplaced,\n });\n },\n });\n\n return receipt;\n };\n\n return ensureTxReceipt;\n}\n"],"names":["useAwaitTx","t0","$","_c","chainId","confirmations","hash","query","t1","data","console","log","t2","onReplaced","queryResult","useWaitForTransactionReceipt","useEnsureTxReceipt","queryClient","useQueryClient","wagmiConfig","useConfig","queryKey","waitForTransactionReceiptQueryKey","receipt","ensureQueryData","queryFn","waitForTransactionReceipt","ensureTxReceipt"],"mappings":"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"}
1
+ {"version":3,"file":"useAwaitTx.js","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { ReplacementReturnType, TransactionReceipt } from \"viem\";\nimport { waitForTransactionReceipt } from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport {\n waitForTransactionReceiptQueryKey,\n type WaitForTransactionReceiptData,\n} from \"wagmi/query\";\nimport { useLogger } from \"@/widget/logger\";\n\nexport type UseAwaitTxParameters<Select = DefaultTxReceiptSelect> = {\n chainId: SupportedChainId;\n confirmations?: number;\n hash?: `0x${string}`;\n query?: UseWaitForTransactionReceiptParameters<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >[\"query\"];\n};\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type DefaultTxReceiptSelect = WaitForTransactionReceiptData<\n typeof wagmiConfig,\n SupportedChainId\n>;\n\nexport type UseAwaitTxReturnType<Select = DefaultTxReceiptSelect> =\n UseWaitForTransactionReceiptReturnType<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >;\n\nexport type TxReceiptFromWagmi = DefaultTxReceiptSelect;\n\nexport function useAwaitTx<Select = DefaultTxReceiptSelect>({\n chainId,\n confirmations,\n hash,\n query,\n}: UseAwaitTxParameters<Select>): UseAwaitTxReturnType<Select> {\n const logger = useLogger(\"AwaitTx\");\n const queryResult = useWaitForTransactionReceipt<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >({\n chainId,\n confirmations,\n hash,\n query,\n onReplaced: (data) => {\n // @TODO connect to some atom if needed to detect cancelled/sped-up txs,\n // but sped-up txs may be detected correct internally and re-awaited with a new hash,\n // need to test\n // https://viem.sh/docs/actions/public/waitForTransactionReceipt.html#json-rpc-methods\n logger.log(\"onReplaced:tx\", hash, data);\n },\n });\n\n return queryResult;\n}\n\ntype EnsureTxReceiptFn = (\n options: Required<Pick<UseAwaitTxParameters, \"hash\" | \"chainId\">> & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\nexport function useEnsureTxReceipt(): EnsureTxReceiptFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n\n const ensureTxReceipt: EnsureTxReceiptFn = async ({\n hash,\n chainId,\n onReplaced,\n }) => {\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n });\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(wagmiConfig, {\n hash,\n chainId,\n onReplaced,\n });\n },\n });\n\n return receipt;\n };\n\n return ensureTxReceipt;\n}\n"],"names":["useAwaitTx","t0","$","_c","chainId","confirmations","hash","query","logger","useLogger","t1","data","log","t2","onReplaced","queryResult","useWaitForTransactionReceipt","useEnsureTxReceipt","queryClient","useQueryClient","wagmiConfig","useConfig","queryKey","waitForTransactionReceiptQueryKey","receipt","ensureQueryData","queryFn","waitForTransactionReceipt","ensureTxReceipt"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitTxs.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAwaitTxs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAa,KAAK,sCAAsC,EAAE,MAAM,OAAO,CAAC;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIvD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,cAAc,GAAG,kBAAkB,EAAE,IAAI;IACzE,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,KACjD,cAAc,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sCAAsC,CACxE,OAAO,WAAW,EAClB,gBAAgB,CACjB,EAAE,CAAC;AAEJ;;GAEG;AACH,wBAAgB,WAAW,CACzB,cAAc,GAAG,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,EAC5D,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,cAAc,CA8BzE"}
1
+ {"version":3,"file":"useAwaitTxs.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAwaitTxs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAa,KAAK,sCAAsC,EAAE,MAAM,OAAO,CAAC;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,cAAc,GAAG,kBAAkB,EAAE,IAAI;IACzE,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,KACjD,cAAc,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sCAAsC,CACxE,OAAO,WAAW,EAClB,gBAAgB,CACjB,EAAE,CAAC;AAEJ;;GAEG;AACH,wBAAgB,WAAW,CACzB,cAAc,GAAG,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,EAC5D,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,cAAc,CA+BzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import { useMemo } from 'react';
3
3
  import { constructPartialSDK, constructAxiosFetcher, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructViemContractCaller, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx } from '@velora-dex/sdk';
4
+ import { useLogger } from '../widget/logger.js';
4
5
 
5
6
  const fetcher = constructAxiosFetcher(axios);
6
7
  function useMarketSwapSDK({
@@ -30,8 +31,9 @@ function useDeltaSDK({
30
31
  client
31
32
  }) {
32
33
  "use no memo";
34
+ const logger = useLogger("DeltaSDK");
33
35
  const sdk = useMemo(() => {
34
- console.log("Recalculating sdk");
36
+ logger.log("init sdk");
35
37
  const SDKconfig = {
36
38
  apiURL,
37
39
  chainId,
@@ -45,7 +47,7 @@ function useDeltaSDK({
45
47
  ...SDKconfig,
46
48
  contractCaller
47
49
  }, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructSignDeltaOrder);
48
- }, [account, apiURL, client, chainId]);
50
+ }, [logger, apiURL, chainId, client, account]);
49
51
  return {
50
52
  appVersion: sdk.version,
51
53
  chainId: sdk.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const sdk = useMemo(() => {\n console.log(\"Recalculating sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [account, apiURL, client, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useDeltaSDK","account","client","console","log","constructGetDeltaOrders","constructGetDeltaPrice","constructBuildDeltaOrder","constructBuildCrosschainOrderBridge","constructPostDeltaOrder","constructGetBridgeInfo","constructGetMulticallHandlers","constructIsTokenSupportedInDelta","contractCaller","constructViemContractCaller","constructSignDeltaOrder"],"mappings":";;;;AAuCA,MAAMA,OAAAA,GAAUC,sBAAsBC,KAAK,CAAA;AAmBpC,SAASC,gBAAAA,CAAiB;AAAA,EAC/BC,OAAAA;AAAAA,EACAC;AACe,CAAA,EAAwC;AACvD,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,MAAMC,SAAAA,GAAY;AAAA,MAChBH,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,OAAOS,mBAAAA,CACLD,SAAAA,EACAE,gBAAAA,EACAC,mBAAAA,EACAC,gBACF,CAAA;AAAA,GACF,EAAG,CAACP,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLS,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBV,SAASE,GAAAA,CAAIF,OAAAA;AAAAA,IACbC,QAAQC,GAAAA,CAAID,MAAAA;AAAAA,IACZC;AAAAA,GACF;AACF;AA+GO,SAASS,WAAAA,CAAY;AAAA,EAC1BX,OAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAW,OAAAA;AAAAA,EACAC;AACoB,CAAA,EAAsD;AAC1E,EAAA,aAAA;AAGA,EAAA,MAAMX,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,OAAAA,CAAQC,IAAI,mBAAmB,CAAA;AAC/B,IAAA,MAAMX,SAAAA,GAAY;AAAA,MAChBH,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACiB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,mBAAAA,CACLD,WACAY,uBAAAA,EACAC,sBAAAA,EACAC,0BACAC,mCAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCACF,CAAA;AAAA;AAGF,IAAA,MAAMC,cAAAA,GAAiBC,2BAAAA,CAA4BZ,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWoB;AAAAA,KAAe,EAC/BR,yBACAC,sBAAAA,EACAC,wBAAAA,EACAC,qCACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCAAAA,EACAG,uBACF,CAAA;AAAA,KACC,CAACd,OAAAA,EAASX,MAAAA,EAAQY,MAAAA,EAAQb,OAAO,CAAC,CAAA;AAErC,EAAA,OAAO;AAAA,IACLS,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBV,SAASE,GAAAA,CAAIF,OAAAA;AAAAA,IACbC,QAAQC,GAAAA,CAAID,MAAAA;AAAAA,IACZC;AAAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { useLogger } from \"@/widget/logger\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useDeltaSDK","account","client","logger","useLogger","log","constructGetDeltaOrders","constructGetDeltaPrice","constructBuildDeltaOrder","constructBuildCrosschainOrderBridge","constructPostDeltaOrder","constructGetBridgeInfo","constructGetMulticallHandlers","constructIsTokenSupportedInDelta","contractCaller","constructViemContractCaller","constructSignDeltaOrder"],"mappings":";;;;;AAwCA,MAAMA,OAAAA,GAAUC,sBAAsBC,KAAK,CAAA;AAmBpC,SAASC,gBAAAA,CAAiB;AAAA,EAC/BC,OAAAA;AAAAA,EACAC;AACe,CAAA,EAAwC;AACvD,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,MAAMC,SAAAA,GAAY;AAAA,MAChBH,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,OAAOS,mBAAAA,CACLD,SAAAA,EACAE,gBAAAA,EACAC,mBAAAA,EACAC,gBACF,CAAA;AAAA,GACF,EAAG,CAACP,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLS,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBV,SAASE,GAAAA,CAAIF,OAAAA;AAAAA,IACbC,QAAQC,GAAAA,CAAID,MAAAA;AAAAA,IACZC;AAAAA,GACF;AACF;AA+GO,SAASS,WAAAA,CAAY;AAAA,EAC1BX,OAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAW,OAAAA;AAAAA,EACAC;AACoB,CAAA,EAAsD;AAC1E,EAAA,aAAA;AAGA,EAAA,MAAMC,MAAAA,GAASC,UAAU,UAAU,CAAA;AAEnC,EAAA,MAAMb,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,MAAAA,CAAOE,IAAI,UAAU,CAAA;AACrB,IAAA,MAAMZ,SAAAA,GAAY;AAAA,MAChBH,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACiB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,mBAAAA,CACLD,WACAa,uBAAAA,EACAC,sBAAAA,EACAC,0BACAC,mCAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCACF,CAAA;AAAA;AAGF,IAAA,MAAMC,cAAAA,GAAiBC,2BAAAA,CAA4Bb,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWqB;AAAAA,KAAe,EAC/BR,yBACAC,sBAAAA,EACAC,wBAAAA,EACAC,qCACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCAAAA,EACAG,uBACF,CAAA;AAAA,KACC,CAACb,MAAAA,EAAQb,QAAQD,OAAAA,EAASa,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAE7C,EAAA,OAAO;AAAA,IACLH,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBV,SAASE,GAAAA,CAAIF,OAAAA;AAAAA,IACbC,QAAQC,GAAAA,CAAID,MAAAA;AAAAA,IACZC;AAAAA,GACF;AACF;;;;"}
@@ -8,7 +8,6 @@ export declare const isTruthy: <T>(x: T | false | 0 | "" | null | undefined) =>
8
8
  export declare function hasCorrectAddressLength(maybeAddress: string): boolean;
9
9
  export declare const filterInvalidTokenAddress: ({ address, }: Pick<Token, "address">) => boolean;
10
10
  export declare const stringIncludes: (a: string, b: string) => boolean;
11
- export { createLogger, devLogger } from './logger';
12
11
  /**
13
12
  * Shorten any string with more than 6 characters (included) by inserting ellipsis placeholder in between
14
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,QAAQ,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAC5B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACrB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,QAAQ,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAwBrB,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,QAAQ,EAAE,CAAC,EAAE,EAEb,mBAAmB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,GACvC,CAAC,EAAE,CAWL;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG,CAAC,IAAI,CACvE,CAAC;AAEN,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,eAAO,MAAM,yBAAyB,GAAI,cAEvC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,YAAqC,CAAC;AAE/D,eAAO,MAAM,cAAc,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,OAErD,CAAC;AAGF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,MAAK,MAAU,KACd,MAGF,CAAC;AAEF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,UAAU,SAAI,EACd,cAAc,SAAI,GACjB,MAAM,CAGR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,QAAQ,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAC5B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACrB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,QAAQ,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAwBrB,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,QAAQ,EAAE,CAAC,EAAE,EAEb,mBAAmB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,GACvC,CAAC,EAAE,CAWL;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG,CAAC,IAAI,CACvE,CAAC;AAEN,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,eAAO,MAAM,yBAAyB,GAAI,cAEvC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,YAAqC,CAAC;AAE/D,eAAO,MAAM,cAAc,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,OAErD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,MAAK,MAAU,KACd,MAGF,CAAC;AAEF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,UAAU,SAAI,EACd,cAAc,SAAI,GACjB,MAAM,CAGR"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/utils/index.ts"],"sourcesContent":["import type { Token } from \"@/tokens/state/types\";\nimport { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n// reduce element[] to Object{key: prop, val?: element}\n// for example\n// gatherObjectsByProp(Token[], token => token.address) => Record<address, Token|undefined>\nexport function gatherObjectsByProp<T>(\n elements: T[],\n pickProp: (elem: T) => string\n): Record<string, T>;\nexport function gatherObjectsByProp<T, U>(\n elements: T[],\n pickProp: (elem: T) => string,\n transform: (elem: T, accumElem?: U) => U\n): Record<string, U>;\nexport function gatherObjectsByProp<T, U>(\n elements: T[],\n pickProp: (elem: T) => string,\n transform?: (elem: T, accumElem?: U) => U\n): Record<string, T> | Record<string, U> {\n return elements.reduce<Record<string, T> | Record<string, U>>(\n (accum, element) => {\n const key = pickProp(element);\n\n const accumElem: T | U | undefined = accum[key];\n const transformedElement = transform\n ? // if transform is available, can only be U | undefined\n transform(element, accumElem as U | undefined)\n : element;\n\n accum[key] = transformedElement;\n\n return accum;\n },\n {}\n );\n}\n\nexport function filterUnique<T, U>(\n elements: T[],\n // supports multikey filtering, if only one key required return [U]\n constructUniqueKeys: (element: T) => U[]\n): T[] {\n if (elements.length <= 1) return elements;\n const hasSeen = new Set<U>();\n\n return elements.filter((element) => {\n const keys = constructUniqueKeys(element);\n if (keys.some((key) => hasSeen.has(key))) return false;\n\n keys.forEach((key) => hasSeen.add(key));\n return true;\n });\n}\n\nexport const isTruthy = <T>(x: T | false | 0 | \"\" | null | undefined): x is T =>\n !!x;\n\nexport function hasCorrectAddressLength(maybeAddress: string): boolean {\n return maybeAddress.length === 42;\n}\n\nexport const filterInvalidTokenAddress = ({\n address,\n}: Pick<Token, \"address\">) => hasCorrectAddressLength(address);\n\nexport const stringIncludes = (a: string, b: string): boolean => {\n return a.toLowerCase().includes(b.toLowerCase());\n};\n\n// Logger utilities\nexport { createLogger, devLogger } from \"./logger\";\n\n/**\n * Shorten any string with more than 6 characters (included) by inserting ellipsis placeholder in between\n *\n * @param {string} str the string to shorten\n * @param {number} start how much to leave off the start\n * @param {number} [end=0] how much to leave off the end\n * @returns {string} shortened text\n */\nexport const shortenText = (\n str: string,\n start: number,\n end: number = 0\n): string => {\n const regexp = new RegExp(`(.{${start}}).{3,}(.{${end}})`);\n return str.replace(regexp, \"$1...$2\");\n};\n\nexport function shortenAddress(\n address: string,\n slashIndex = 6,\n rightCutLength = 4\n): string {\n // An ethereum address has 42 characters\n return shortenText(address, slashIndex, rightCutLength);\n}\n"],"names":["cn","inputs","twMerge","clsx","gatherObjectsByProp","elements","pickProp","transform","reduce","accum","element","key","accumElem","transformedElement","filterUnique","constructUniqueKeys","length","hasSeen","Set","filter","keys","some","has","forEach","add","isTruthy","x","hasCorrectAddressLength","maybeAddress","filterInvalidTokenAddress","address","stringIncludes","a","b","toLowerCase","includes","shortenText","str","start","end","regexp","RegExp","replace","shortenAddress","slashIndex","rightCutLength"],"mappings":";;;AAIO,SAASA,MAAMC,MAAAA,EAAsB;AAC1C,EAAA,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,MAAM,CAAC,CAAA;AAC7B;AAcO,SAASG,mBAAAA,CACdC,QAAAA,EACAC,QAAAA,EACAC,SAAAA,EACuC;AACvC,EAAA,OAAOF,QAAAA,CAASG,MAAAA,CACd,CAACC,KAAAA,EAAOC,OAAAA,KAAY;AAClB,IAAA,MAAMC,GAAAA,GAAML,SAASI,OAAO,CAAA;AAE5B,IAAA,MAAME,SAAAA,GAA+BH,MAAME,GAAG,CAAA;AAC9C,IAAA,MAAME,kBAAAA,GAAqBN,SAAAA;AAAAA;AAAAA,MAEvBA,SAAAA,CAAUG,SAASE,SAA0B;AAAA,QAC7CF,OAAAA;AAEJD,IAAAA,KAAAA,CAAME,GAAG,CAAA,GAAIE,kBAAAA;AAEb,IAAA,OAAOJ,KAAAA;AAAAA,GACT,EACA,EACF,CAAA;AACF;AAEO,SAASK,YAAAA,CACdT,UAEAU,mBAAAA,EACK;AACL,EAAA,IAAIV,QAAAA,CAASW,MAAAA,IAAU,CAAA,EAAG,OAAOX,QAAAA;AACjC,EAAA,MAAMY,OAAAA,uBAAcC,GAAAA,EAAO;AAE3B,EAAA,OAAOb,QAAAA,CAASc,OAAQT,CAAAA,OAAAA,KAAY;AAClC,IAAA,MAAMU,IAAAA,GAAOL,oBAAoBL,OAAO,CAAA;AACxC,IAAA,IAAIU,IAAAA,CAAKC,KAAMV,CAAAA,GAAAA,KAAQM,OAAAA,CAAQK,IAAIX,GAAG,CAAC,GAAG,OAAO,KAAA;AAEjDS,IAAAA,IAAAA,CAAKG,OAAAA,CAASZ,CAAAA,GAAAA,KAAQM,OAAAA,CAAQO,GAAAA,CAAIb,GAAG,CAAC,CAAA;AACtC,IAAA,OAAO,IAAA;AAAA,GACR,CAAA;AACH;AAEO,MAAMc,QAAAA,GAAW,CAAIC,CAAAA,KAC1B,CAAC,CAACA;AAEG,SAASC,wBAAwBC,YAAAA,EAA+B;AACrE,EAAA,OAAOA,aAAaZ,MAAAA,KAAW,EAAA;AACjC;AAEO,MAAMa,4BAA4BA,CAAC;AAAA,EACxCC;AACsB,CAAA,KAAMH,wBAAwBG,OAAO;AAEtD,MAAMC,cAAAA,GAAiBA,CAACC,CAAAA,EAAWC,CAAAA,KAAuB;AAC/D,EAAA,OAAOD,EAAEE,WAAAA,EAAY,CAAEC,QAAAA,CAASF,CAAAA,CAAEC,aAAa,CAAA;AACjD;AAaO,MAAME,WAAAA,GAAcA,CACzBC,GAAAA,EACAC,KAAAA,EACAC,MAAc,CAAA,KACH;AACX,EAAA,MAAMC,SAAS,IAAIC,MAAAA,CAAO,MAAMH,KAAK,CAAA,UAAA,EAAaC,GAAG,CAAA,EAAA,CAAI,CAAA;AACzD,EAAA,OAAOF,GAAAA,CAAIK,OAAAA,CAAQF,MAAAA,EAAQ,SAAS,CAAA;AACtC;AAEO,SAASG,cAAAA,CACdb,OAAAA,EACAc,UAAAA,GAAa,CAAA,EACbC,iBAAiB,CAAA,EACT;AAER,EAAA,OAAOT,WAAAA,CAAYN,OAAAA,EAASc,UAAAA,EAAYC,cAAc,CAAA;AACxD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/utils/index.ts"],"sourcesContent":["import type { Token } from \"@/tokens/state/types\";\nimport { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n// reduce element[] to Object{key: prop, val?: element}\n// for example\n// gatherObjectsByProp(Token[], token => token.address) => Record<address, Token|undefined>\nexport function gatherObjectsByProp<T>(\n elements: T[],\n pickProp: (elem: T) => string\n): Record<string, T>;\nexport function gatherObjectsByProp<T, U>(\n elements: T[],\n pickProp: (elem: T) => string,\n transform: (elem: T, accumElem?: U) => U\n): Record<string, U>;\nexport function gatherObjectsByProp<T, U>(\n elements: T[],\n pickProp: (elem: T) => string,\n transform?: (elem: T, accumElem?: U) => U\n): Record<string, T> | Record<string, U> {\n return elements.reduce<Record<string, T> | Record<string, U>>(\n (accum, element) => {\n const key = pickProp(element);\n\n const accumElem: T | U | undefined = accum[key];\n const transformedElement = transform\n ? // if transform is available, can only be U | undefined\n transform(element, accumElem as U | undefined)\n : element;\n\n accum[key] = transformedElement;\n\n return accum;\n },\n {}\n );\n}\n\nexport function filterUnique<T, U>(\n elements: T[],\n // supports multikey filtering, if only one key required return [U]\n constructUniqueKeys: (element: T) => U[]\n): T[] {\n if (elements.length <= 1) return elements;\n const hasSeen = new Set<U>();\n\n return elements.filter((element) => {\n const keys = constructUniqueKeys(element);\n if (keys.some((key) => hasSeen.has(key))) return false;\n\n keys.forEach((key) => hasSeen.add(key));\n return true;\n });\n}\n\nexport const isTruthy = <T>(x: T | false | 0 | \"\" | null | undefined): x is T =>\n !!x;\n\nexport function hasCorrectAddressLength(maybeAddress: string): boolean {\n return maybeAddress.length === 42;\n}\n\nexport const filterInvalidTokenAddress = ({\n address,\n}: Pick<Token, \"address\">) => hasCorrectAddressLength(address);\n\nexport const stringIncludes = (a: string, b: string): boolean => {\n return a.toLowerCase().includes(b.toLowerCase());\n};\n\n/**\n * Shorten any string with more than 6 characters (included) by inserting ellipsis placeholder in between\n *\n * @param {string} str the string to shorten\n * @param {number} start how much to leave off the start\n * @param {number} [end=0] how much to leave off the end\n * @returns {string} shortened text\n */\nexport const shortenText = (\n str: string,\n start: number,\n end: number = 0\n): string => {\n const regexp = new RegExp(`(.{${start}}).{3,}(.{${end}})`);\n return str.replace(regexp, \"$1...$2\");\n};\n\nexport function shortenAddress(\n address: string,\n slashIndex = 6,\n rightCutLength = 4\n): string {\n // An ethereum address has 42 characters\n return shortenText(address, slashIndex, rightCutLength);\n}\n"],"names":["cn","inputs","twMerge","clsx","gatherObjectsByProp","elements","pickProp","transform","reduce","accum","element","key","accumElem","transformedElement","filterUnique","constructUniqueKeys","length","hasSeen","Set","filter","keys","some","has","forEach","add","isTruthy","x","hasCorrectAddressLength","maybeAddress","filterInvalidTokenAddress","address","stringIncludes","a","b","toLowerCase","includes","shortenText","str","start","end","regexp","RegExp","replace","shortenAddress","slashIndex","rightCutLength"],"mappings":";;;AAIO,SAASA,MAAMC,MAAAA,EAAsB;AAC1C,EAAA,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,MAAM,CAAC,CAAA;AAC7B;AAcO,SAASG,mBAAAA,CACdC,QAAAA,EACAC,QAAAA,EACAC,SAAAA,EACuC;AACvC,EAAA,OAAOF,QAAAA,CAASG,MAAAA,CACd,CAACC,KAAAA,EAAOC,OAAAA,KAAY;AAClB,IAAA,MAAMC,GAAAA,GAAML,SAASI,OAAO,CAAA;AAE5B,IAAA,MAAME,SAAAA,GAA+BH,MAAME,GAAG,CAAA;AAC9C,IAAA,MAAME,kBAAAA,GAAqBN,SAAAA;AAAAA;AAAAA,MAEvBA,SAAAA,CAAUG,SAASE,SAA0B;AAAA,QAC7CF,OAAAA;AAEJD,IAAAA,KAAAA,CAAME,GAAG,CAAA,GAAIE,kBAAAA;AAEb,IAAA,OAAOJ,KAAAA;AAAAA,GACT,EACA,EACF,CAAA;AACF;AAEO,SAASK,YAAAA,CACdT,UAEAU,mBAAAA,EACK;AACL,EAAA,IAAIV,QAAAA,CAASW,MAAAA,IAAU,CAAA,EAAG,OAAOX,QAAAA;AACjC,EAAA,MAAMY,OAAAA,uBAAcC,GAAAA,EAAO;AAE3B,EAAA,OAAOb,QAAAA,CAASc,OAAQT,CAAAA,OAAAA,KAAY;AAClC,IAAA,MAAMU,IAAAA,GAAOL,oBAAoBL,OAAO,CAAA;AACxC,IAAA,IAAIU,IAAAA,CAAKC,KAAMV,CAAAA,GAAAA,KAAQM,OAAAA,CAAQK,IAAIX,GAAG,CAAC,GAAG,OAAO,KAAA;AAEjDS,IAAAA,IAAAA,CAAKG,OAAAA,CAASZ,CAAAA,GAAAA,KAAQM,OAAAA,CAAQO,GAAAA,CAAIb,GAAG,CAAC,CAAA;AACtC,IAAA,OAAO,IAAA;AAAA,GACR,CAAA;AACH;AAEO,MAAMc,QAAAA,GAAW,CAAIC,CAAAA,KAC1B,CAAC,CAACA;AAEG,SAASC,wBAAwBC,YAAAA,EAA+B;AACrE,EAAA,OAAOA,aAAaZ,MAAAA,KAAW,EAAA;AACjC;AAEO,MAAMa,4BAA4BA,CAAC;AAAA,EACxCC;AACsB,CAAA,KAAMH,wBAAwBG,OAAO;AAEtD,MAAMC,cAAAA,GAAiBA,CAACC,CAAAA,EAAWC,CAAAA,KAAuB;AAC/D,EAAA,OAAOD,EAAEE,WAAAA,EAAY,CAAEC,QAAAA,CAASF,CAAAA,CAAEC,aAAa,CAAA;AACjD;AAUO,MAAME,WAAAA,GAAcA,CACzBC,GAAAA,EACAC,KAAAA,EACAC,MAAc,CAAA,KACH;AACX,EAAA,MAAMC,SAAS,IAAIC,MAAAA,CAAO,MAAMH,KAAK,CAAA,UAAA,EAAaC,GAAG,CAAA,EAAA,CAAI,CAAA;AACzD,EAAA,OAAOF,GAAAA,CAAIK,OAAAA,CAAQF,MAAAA,EAAQ,SAAS,CAAA;AACtC;AAEO,SAASG,cAAAA,CACdb,OAAAA,EACAc,UAAAA,GAAa,CAAA,EACbC,iBAAiB,CAAA,EACT;AAER,EAAA,OAAOT,WAAAA,CAAYN,OAAAA,EAASc,UAAAA,EAAYC,cAAc,CAAA;AACxD;;;;"}