@velora-dex/widget 0.3.6 → 0.3.7-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +179 -129
- package/dist/core/index.js.map +1 -1
- package/dist/core/state/apiConfigAtom.d.ts +14 -0
- package/dist/core/state/apiConfigAtom.d.ts.map +1 -0
- package/dist/core/state/apiConfigAtom.js +20 -0
- package/dist/core/state/apiConfigAtom.js.map +1 -0
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +3 -14
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -12
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +32 -19
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +18 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\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 fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: 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?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\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 { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\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 { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\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 fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\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 const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\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 action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\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 // 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\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\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 let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\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 fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: 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?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\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 { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\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 { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\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 fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\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 const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\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 action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\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 // 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\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\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 let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"AAGA,OAAO,EAkBL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAKlB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAEhC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAsB,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/useSDK.js
CHANGED
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { constructPartialSDK, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructPostDeltaOrder, constructGetBridgeInfo, constructIsTokenSupportedInDelta, constructViemContractCaller, constructCancelDeltaOrder, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx, constructAxiosFetcher, constructFillOrderDirectly, constructPreSignDeltaOrder, constructGetLimitOrders, constructBuildLimitOrder, constructPostLimitOrder, constructAllLimitOrdersHandlers, constructFetchFetcher } from '@velora-dex/sdk';
|
|
4
4
|
import { encodeFunctionData } from 'viem';
|
|
5
5
|
import { getLogger } from '../core/logger.js';
|
|
6
6
|
import { getApiURL } from '../lib/constants/urls.js';
|
|
7
|
+
import { useApiConfig } from '../core/state/apiConfigAtom.js';
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
function useSDKFetcher() {
|
|
10
|
+
"use no memo";
|
|
11
|
+
const apiConfig = useApiConfig();
|
|
12
|
+
return useMemo(() => {
|
|
13
|
+
return constructAxiosFetcher(axios, apiConfig);
|
|
14
|
+
}, [apiConfig]);
|
|
15
|
+
}
|
|
16
|
+
function useKeepAliveSDKFetcher() {
|
|
17
|
+
"use no memo";
|
|
18
|
+
const apiConfig = useApiConfig();
|
|
19
|
+
return useMemo(() => {
|
|
20
|
+
if (typeof window === "undefined") return;
|
|
21
|
+
return constructFetchFetcher(window.fetch, {
|
|
22
|
+
...apiConfig,
|
|
23
|
+
keepalive: true
|
|
24
|
+
});
|
|
25
|
+
}, [apiConfig]);
|
|
26
|
+
}
|
|
9
27
|
function useMarketSwapSDK({
|
|
10
28
|
chainId,
|
|
11
29
|
apiURL
|
|
12
30
|
}) {
|
|
13
31
|
"use no memo";
|
|
32
|
+
const fetcher = useSDKFetcher();
|
|
14
33
|
const sdk = useMemo(() => {
|
|
15
34
|
const SDKconfig = {
|
|
16
35
|
apiURL: apiURL ?? getApiURL(),
|
|
@@ -18,7 +37,7 @@ function useMarketSwapSDK({
|
|
|
18
37
|
fetcher
|
|
19
38
|
};
|
|
20
39
|
return constructPartialSDK(SDKconfig, constructGetRate, constructGetSpender, constructBuildTx);
|
|
21
|
-
}, [apiURL, chainId]);
|
|
40
|
+
}, [apiURL, chainId, fetcher]);
|
|
22
41
|
return {
|
|
23
42
|
appVersion: sdk.version,
|
|
24
43
|
chainId: sdk.chainId,
|
|
@@ -34,6 +53,7 @@ function useLimitOrdersSDK({
|
|
|
34
53
|
client
|
|
35
54
|
}) {
|
|
36
55
|
"use no memo";
|
|
56
|
+
const fetcher = useSDKFetcher();
|
|
37
57
|
const sdk = useMemo(() => {
|
|
38
58
|
limitSDKLogger.once.log("init sdk");
|
|
39
59
|
const SDKconfig = {
|
|
@@ -49,7 +69,7 @@ function useLimitOrdersSDK({
|
|
|
49
69
|
...SDKconfig,
|
|
50
70
|
contractCaller
|
|
51
71
|
}, constructAllLimitOrdersHandlers);
|
|
52
|
-
}, [client, account, apiURL, chainId]);
|
|
72
|
+
}, [client, account, apiURL, chainId, fetcher]);
|
|
53
73
|
return {
|
|
54
74
|
appVersion: sdk.version,
|
|
55
75
|
chainId: sdk.chainId,
|
|
@@ -85,24 +105,15 @@ const useFetchOnlySDK = ({
|
|
|
85
105
|
apiURL
|
|
86
106
|
}) => {
|
|
87
107
|
"use no memo";
|
|
108
|
+
const fetcher = useKeepAliveSDKFetcher();
|
|
88
109
|
const sdk = useMemo(() => {
|
|
89
|
-
if (
|
|
90
|
-
const _fetcher = constructFetchFetcher(window.fetch);
|
|
91
|
-
const fetcher2 = (params) => {
|
|
92
|
-
return _fetcher({
|
|
93
|
-
...params,
|
|
94
|
-
requestParams: {
|
|
95
|
-
...params.requestParams,
|
|
96
|
-
keepalive: true
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
};
|
|
110
|
+
if (!fetcher) return;
|
|
100
111
|
return constructPartialSDK({
|
|
101
112
|
apiURL: apiURL ?? getApiURL(),
|
|
102
113
|
chainId,
|
|
103
|
-
fetcher
|
|
114
|
+
fetcher
|
|
104
115
|
}, constructPostDeltaOrder);
|
|
105
|
-
}, [apiURL, chainId]);
|
|
116
|
+
}, [apiURL, chainId, fetcher]);
|
|
106
117
|
return {
|
|
107
118
|
appVersion: sdk?.version,
|
|
108
119
|
chainId: sdk?.chainId,
|
|
@@ -117,6 +128,7 @@ const useCalldataSDK = ({
|
|
|
117
128
|
client
|
|
118
129
|
}) => {
|
|
119
130
|
"use no memo";
|
|
131
|
+
const fetcher = useSDKFetcher();
|
|
120
132
|
const sdk = useMemo(() => {
|
|
121
133
|
if (!client) return;
|
|
122
134
|
calldataSDKLogger.once.log("init sdk");
|
|
@@ -128,7 +140,7 @@ const useCalldataSDK = ({
|
|
|
128
140
|
contractCaller
|
|
129
141
|
};
|
|
130
142
|
return constructPartialSDK(SDKconfig, constructFillOrderDirectly, constructPreSignDeltaOrder, constructBuildDeltaOrder);
|
|
131
|
-
}, [apiURL, chainId, client]);
|
|
143
|
+
}, [apiURL, chainId, client, fetcher]);
|
|
132
144
|
return {
|
|
133
145
|
appVersion: sdk?.version,
|
|
134
146
|
chainId: sdk?.chainId,
|
|
@@ -144,6 +156,7 @@ function useDeltaSDK({
|
|
|
144
156
|
client
|
|
145
157
|
}) {
|
|
146
158
|
"use no memo";
|
|
159
|
+
const fetcher = useSDKFetcher();
|
|
147
160
|
const sdk = useMemo(() => {
|
|
148
161
|
deltaSDKLogger.once.log("init sdk");
|
|
149
162
|
const SDKconfig = {
|
|
@@ -159,7 +172,7 @@ function useDeltaSDK({
|
|
|
159
172
|
...SDKconfig,
|
|
160
173
|
contractCaller
|
|
161
174
|
}, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructPostDeltaOrder, constructCancelDeltaOrder, constructGetBridgeInfo, constructIsTokenSupportedInDelta, constructSignDeltaOrder);
|
|
162
|
-
}, [apiURL, chainId, client, account]);
|
|
175
|
+
}, [apiURL, chainId, client, account, fetcher]);
|
|
163
176
|
return {
|
|
164
177
|
appVersion: sdk.version,
|
|
165
178
|
chainId: sdk.chainId,
|
package/dist/hooks/useSDK.js.map
CHANGED
|
@@ -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 constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\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 PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { getLogger } from \"@/core/logger\";\nimport { getApiURL } from \"@/lib/constants/urls\";\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: apiURL ?? getApiURL(),\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 client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\nconst limitSDKLogger = getLogger(\"LimitOrdersSDK\");\n\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}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\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): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n limitSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (typeof window === \"undefined\") return;\n const _fetcher = constructFetchFetcher(window.fetch);\n const fetcher: typeof _fetcher = (params) => {\n return _fetcher({\n ...params,\n requestParams: {\n ...params.requestParams,\n keepalive: true,\n },\n });\n };\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials always\n // which is incompatible with API CORS settings\n return constructPartialSDK(\n {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nconst calldataSDKLogger = getLogger(\"CalldataSDK\");\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client) return;\n calldataSDKLogger.once.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder\n );\n }, [apiURL, chainId, client]);\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 PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nconst deltaSDKLogger = getLogger(\"DeltaSDK\");\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 deltaSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\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 constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [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","getApiURL","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","limitSDKLogger","getLogger","useLimitOrdersSDK","account","client","once","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","window","_fetcher","constructFetchFetcher","fetch","requestParams","keepalive","constructPostDeltaOrder","calldataSDKLogger","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","deltaSDKLogger","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}
|
|
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 constructFetchFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPreSignDeltaOrder,\n constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\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 PreSignDeltaOrderFunctions,\n type CancelDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder,\n constructFillOrderDirectly,\n type GetLimitOrdersFunctions,\n type BuildLimitOrderFunctions,\n type PostLimitOrderFunctions,\n type FillOrderDirectlyFunctions,\n type ContractCallerFunctions,\n} from \"@velora-dex/sdk\";\nimport { encodeFunctionData, type Address, type Hash, type Hex } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { getLogger } from \"@/core/logger\";\nimport { getApiURL } from \"@/lib/constants/urls\";\nimport { useApiConfig } from \"@/core/state/apiConfigAtom\";\n\nfunction useSDKFetcher() {\n \"use no memo\";\n\n const apiConfig = useApiConfig();\n\n return useMemo(() => {\n return constructAxiosFetcher(axios, apiConfig);\n }, [apiConfig]);\n}\n\nfunction useKeepAliveSDKFetcher() {\n \"use no memo\";\n\n const apiConfig = useApiConfig();\n\n return useMemo(() => {\n if (typeof window === \"undefined\") return;\n return constructFetchFetcher(window.fetch, {\n ...apiConfig,\n keepalive: true,\n });\n }, [apiConfig]);\n}\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 fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\ntype ReadOnlyLimitOrdersSDK = Prettify<\n GetLimitOrdersFunctions & BuildLimitOrderFunctions & PostLimitOrderFunctions\n>;\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n\nconst limitSDKLogger = getLogger(\"LimitOrdersSDK\");\n\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}): ConstructedSDKOutput<ReadOnlyLimitOrdersSDK>;\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): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams): ConstructedSDKOutput<\n LimitOrdersSDK | ReadOnlyLimitOrdersSDK\n> {\n \"use no memo\";\n\n const fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n limitSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetLimitOrders,\n constructBuildLimitOrder,\n constructPostLimitOrder\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructAllLimitOrdersHandlers\n );\n }, [client, account, apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\n// ContractCaller that returns Contract[method](args) calldata instead of sending out a transaction\ntype CalldataContractCaller = ContractCallerFunctions<Hex>;\n\nconst constructCalldataContractCaller = (): CalldataContractCaller => {\n const transactCall: CalldataContractCaller[\"transactCall\"] = async (\n params\n ) => {\n const { abi, contractMethod: functionName, args } = params;\n const calldata = encodeFunctionData<typeof abi, string>({\n abi,\n functionName,\n args,\n });\n return calldata;\n };\n\n // won't be used, but needed for types\n const staticCall = () => {\n throw new Error(\"Not implemented\");\n };\n\n return {\n transactCall,\n staticCall,\n signTypedDataCall: staticCall,\n };\n};\n\n// can be used to POST final data before page is closed\nexport const useFetchOnlySDK = ({\n chainId,\n apiURL,\n}: SDKCreateParams): Partial<ConstructedSDKOutput<PostDeltaOrderFunctions>> => {\n \"use no memo\";\n\n // fetch, unlike axios allows for `keepalive` parameter,\n // so we can use it to keep the request alive a bit after the page is closed.\n // the alternative of using navigator.sendBeacon doesn't work with API because it includes credentials=always\n // which is incompatible with API CORS settings\n const fetcher = useKeepAliveSDKFetcher();\n\n const sdk = useMemo(() => {\n if (!fetcher) return;\n\n return constructPartialSDK(\n {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n },\n constructPostDeltaOrder\n );\n }, [apiURL, chainId, fetcher]);\n\n return {\n appVersion: sdk?.version,\n chainId: sdk?.chainId,\n apiURL: sdk?.apiURL,\n sdk,\n };\n};\n\nconst calldataSDKLogger = getLogger(\"CalldataSDK\");\n\nexport const useCalldataSDK = ({\n chainId,\n apiURL,\n client,\n}: Omit<LimitOrdersSDKCreateParams, \"account\">): Partial<\n ConstructedSDKOutput<\n FillOrderDirectlyFunctions<Hex> &\n PreSignDeltaOrderFunctions<Hex> &\n BuildDeltaOrderFunctions\n >\n> => {\n \"use no memo\";\n\n const fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n if (!client) return;\n calldataSDKLogger.once.log(\"init sdk\");\n\n const contractCaller = constructCalldataContractCaller();\n\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructFillOrderDirectly,\n constructPreSignDeltaOrder,\n constructBuildDeltaOrder\n );\n }, [apiURL, chainId, client, fetcher]);\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 PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<\n ReadOnlyDeltaSDK & SignDeltaOrderFunctions & CancelDeltaOrderFunctions\n>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nconst deltaSDKLogger = getLogger(\"DeltaSDK\");\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 fetcher = useSDKFetcher();\n\n const sdk = useMemo(() => {\n deltaSDKLogger.once.log(\"init sdk\");\n const SDKconfig = {\n apiURL: apiURL ?? getApiURL(),\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\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 constructPostDeltaOrder,\n constructCancelDeltaOrder,\n constructGetBridgeInfo,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [apiURL, chainId, client, account, fetcher]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["useSDKFetcher","apiConfig","useApiConfig","useMemo","constructAxiosFetcher","axios","useKeepAliveSDKFetcher","window","constructFetchFetcher","fetch","keepalive","useMarketSwapSDK","chainId","apiURL","fetcher","sdk","SDKconfig","getApiURL","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","limitSDKLogger","getLogger","useLimitOrdersSDK","account","client","once","log","constructGetLimitOrders","constructBuildLimitOrder","constructPostLimitOrder","contractCaller","constructViemContractCaller","constructAllLimitOrdersHandlers","constructCalldataContractCaller","transactCall","params","abi","contractMethod","functionName","args","calldata","encodeFunctionData","staticCall","Error","signTypedDataCall","useFetchOnlySDK","constructPostDeltaOrder","calldataSDKLogger","useCalldataSDK","constructFillOrderDirectly","constructPreSignDeltaOrder","constructBuildDeltaOrder","deltaSDKLogger","useDeltaSDK","constructGetDeltaOrders","constructGetDeltaPrice","constructGetBridgeInfo","constructIsTokenSupportedInDelta","constructCancelDeltaOrder","constructSignDeltaOrder"],"mappings":"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"}
|
|
@@ -26,5 +26,7 @@ export declare function shortenAddress(address: string, slashIndex?: number, rig
|
|
|
26
26
|
export declare function replaceUnderscoresWithSpaces(str: string): string;
|
|
27
27
|
export declare function isValidUrl(url: string): boolean;
|
|
28
28
|
export declare function unorderedShallowEqual<T>(a: T[], b: T[]): boolean;
|
|
29
|
+
export declare function constructPropertiesEqual<K extends string>(properties: readonly K[]): (a: Partial<Record<K, unknown>>, b: Partial<Record<K, unknown>>) => boolean;
|
|
30
|
+
export declare function shallowEqual<T>(a: T, b: T): boolean;
|
|
29
31
|
export {};
|
|
30
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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;AAI7C,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,EACxB,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,KAC5C,CAAC,IAAI,CAAQ,CAAC;AAEjB,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAChD,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAEtB;AAED,KAAK,cAAc,CAAC,CAAC,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE5C,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,CAAC,SAAS,MAAM,CAAC,EACjB,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAE1E;AAED,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;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,WAOrC;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,WAOtD"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils/index.js
CHANGED
|
@@ -69,6 +69,23 @@ function unorderedShallowEqual(a, b) {
|
|
|
69
69
|
}
|
|
70
70
|
return true;
|
|
71
71
|
}
|
|
72
|
+
function shallowEqual(a, b) {
|
|
73
|
+
if (a === b) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
if (typeof a !== "object" || typeof b !== "object" || !a || !b) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
const aKeys = Object.keys(a);
|
|
80
|
+
const bKeys = Object.keys(b);
|
|
81
|
+
if (aKeys.length !== bKeys.length) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return aKeys.every((key) => (
|
|
85
|
+
// b[key] exists, and not a[key] === undefined && b[key] doesn't exist
|
|
86
|
+
Object.prototype.hasOwnProperty.call(b, key) && a[key] === b[key]
|
|
87
|
+
));
|
|
88
|
+
}
|
|
72
89
|
|
|
73
|
-
export { assertProp, cn, filterInvalidTokenAddress, filterUnique, gatherObjectsByProp, hasCorrectAddressLength, isNonNullableEntry, isTruthy, isValidUrl, replaceUnderscoresWithSpaces, shortenAddress, shortenText, stringIncludes, unorderedShallowEqual };
|
|
90
|
+
export { assertProp, cn, filterInvalidTokenAddress, filterUnique, gatherObjectsByProp, hasCorrectAddressLength, isNonNullableEntry, isTruthy, isValidUrl, replaceUnderscoresWithSpaces, shallowEqual, shortenAddress, shortenText, stringIncludes, unorderedShallowEqual };
|
|
74
91
|
//# sourceMappingURL=index.js.map
|
|
@@ -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\";\nimport { assert } from \"ts-essentials\";\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>(\n x: T | false | 0 | 0n | \"\" | null | undefined\n): x is T => !!x;\n\nexport function isNonNullableEntry<T>(\n entry: [key: string, value: T | null | undefined]\n): entry is [string, T] {\n return entry[1] !== null && entry[1] !== undefined;\n}\n\ntype ReturnIfTruthy<T> = typeof isTruthy<T>;\n\nexport function assertProp<\n T extends Record<string, unknown>,\n K extends keyof T,\n>(obj: T, prop: K): asserts obj is T & { [P in K]-?: ReturnIfTruthy<T[P]> } {\n assert(isTruthy(obj[prop]), `${String(prop)} is required`);\n}\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\nexport function replaceUnderscoresWithSpaces(str: string): string {\n return str.replace(/_/g, \" \");\n}\n\nexport function isValidUrl(url: string) {\n try {\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function unorderedShallowEqual<T>(a: T[], b: T[]) {\n if (a.length !== b.length) return false;\n const setA = new Set(a);\n for (const item of b) {\n if (!setA.has(item)) return false;\n }\n return true;\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","isNonNullableEntry","entry","undefined","assertProp","obj","prop","assert","String","hasCorrectAddressLength","maybeAddress","filterInvalidTokenAddress","address","stringIncludes","a","b","toLowerCase","includes","shortenText","str","start","end","regexp","RegExp","replace","shortenAddress","slashIndex","rightCutLength","replaceUnderscoresWithSpaces","isValidUrl","url","URL","unorderedShallowEqual","setA","item"],"mappings":"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"}
|
|
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\";\nimport { assert } from \"ts-essentials\";\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>(\n x: T | false | 0 | 0n | \"\" | null | undefined\n): x is T => !!x;\n\nexport function isNonNullableEntry<T>(\n entry: [key: string, value: T | null | undefined]\n): entry is [string, T] {\n return entry[1] !== null && entry[1] !== undefined;\n}\n\ntype ReturnIfTruthy<T> = typeof isTruthy<T>;\n\nexport function assertProp<\n T extends Record<string, unknown>,\n K extends keyof T,\n>(obj: T, prop: K): asserts obj is T & { [P in K]-?: ReturnIfTruthy<T[P]> } {\n assert(isTruthy(obj[prop]), `${String(prop)} is required`);\n}\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\nexport function replaceUnderscoresWithSpaces(str: string): string {\n return str.replace(/_/g, \" \");\n}\n\nexport function isValidUrl(url: string) {\n try {\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function unorderedShallowEqual<T>(a: T[], b: T[]) {\n if (a.length !== b.length) return false;\n const setA = new Set(a);\n for (const item of b) {\n if (!setA.has(item)) return false;\n }\n return true;\n}\n\nexport function constructPropertiesEqual<K extends string>(\n properties: readonly K[]\n): (a: Partial<Record<K, unknown>>, b: Partial<Record<K, unknown>>) => boolean {\n return (a, b) => {\n return properties.every((key) => a[key] === b[key]);\n };\n}\n\nexport function shallowEqual<T>(a: T, b: T): boolean {\n // both the same value, check would pass for primitive values\n if (a === b) {\n return true;\n }\n\n // not an object, and checks for primitive have already been made\n if (typeof a !== \"object\" || typeof b !== \"object\" || !a || !b) {\n return false;\n }\n // both objects, check if they have the same keys\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n // different number of keys\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(\n (key) =>\n // b[key] exists, and not a[key] === undefined && b[key] doesn't exist\n Object.prototype.hasOwnProperty.call(b, key) &&\n a[key as keyof typeof a] === b[key as keyof typeof b]\n );\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","isNonNullableEntry","entry","undefined","assertProp","obj","prop","assert","String","hasCorrectAddressLength","maybeAddress","filterInvalidTokenAddress","address","stringIncludes","a","b","toLowerCase","includes","shortenText","str","start","end","regexp","RegExp","replace","shortenAddress","slashIndex","rightCutLength","replaceUnderscoresWithSpaces","isValidUrl","url","URL","unorderedShallowEqual","setA","item","shallowEqual","aKeys","Object","bKeys","every","prototype","hasOwnProperty","call"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ const privyConfig = {
|
|
|
28
28
|
},
|
|
29
29
|
// another option is to give an invalid ID,
|
|
30
30
|
// but then it retries indefinitely
|
|
31
|
-
walletConnectCloudProjectId: "
|
|
31
|
+
walletConnectCloudProjectId: "7535ce67d223b89670980f2442899904",
|
|
32
32
|
// Privy doesn't accept const Chain[]
|
|
33
33
|
supportedChains: chains
|
|
34
34
|
// defaultChain: chains[0], @TODO set to App's selected chain
|
|
@@ -7,7 +7,7 @@ import { LOCAL_STORAGE_PREFIX } from '../../constants/storage.js';
|
|
|
7
7
|
|
|
8
8
|
const connectors = [
|
|
9
9
|
walletConnect({
|
|
10
|
-
projectId: "
|
|
10
|
+
projectId: "7535ce67d223b89670980f2442899904"
|
|
11
11
|
}),
|
|
12
12
|
injected(),
|
|
13
13
|
// metaMask() as CreateConnectorFn, // injected() detects metamask already
|
package/dist/styles.css
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
.velora-widget {
|
|
74
74
|
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
75
75
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
76
76
|
--color-red-800: oklch(44.4% .177 26.899);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velora-dex/widget",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7-dev.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@tanstack/react-pacer": "^0.14.0",
|
|
75
75
|
"@tanstack/react-virtual": "^3.13.12",
|
|
76
76
|
"@uniswap/token-lists": "1.0.0-beta.34",
|
|
77
|
-
"@velora-dex/sdk": "9.3.1",
|
|
77
|
+
"@velora-dex/sdk": "9.3.2-dev.1",
|
|
78
78
|
"@wagmi/core": "^2.18.1",
|
|
79
79
|
"axios": "^1.11.0",
|
|
80
80
|
"big.js": "^7.0.1",
|