@velora-dex/widget 0.2.5-dev.2 → 0.2.5-dev.3

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.
@@ -1,7 +1,4 @@
1
1
  import { SwapSideUnion } from '@velora-dex/sdk';
2
- export declare const userSwapSideAtom: import('jotai').PrimitiveAtom<SwapSideUnion | undefined> & {
3
- init: SwapSideUnion | undefined;
4
- };
5
2
  export declare const swapSideAtom: import('jotai').Atom<SwapSideUnion>;
6
3
  export declare const useSwapSide: () => SwapSideUnion;
7
4
  //# sourceMappingURL=swapSideAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swapSideAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,eAAO,MAAM,gBAAgB;;CAAwB,CAAC;AAEtD,eAAO,MAAM,YAAY,qCAsBvB,CAAC;AAEH,eAAO,MAAM,WAAW,qBAEvB,CAAC"}
1
+ {"version":3,"file":"swapSideAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,eAAO,MAAM,YAAY,qCAsBvB,CAAC;AAEH,eAAO,MAAM,WAAW,qBAEvB,CAAC"}
@@ -2,8 +2,8 @@ import { swapTokenToAtom } from '../../../../core/inputs/state/selectedTokenAtom
2
2
  import { currentSwapInputAtom } from '../../../../core/state/currentSwapInputAtom.js';
3
3
  import { tradeModeAtom } from '../../../../core/state/tradeModeAtom.js';
4
4
  import { atom, useAtomValue } from 'jotai';
5
+ import { swapSideFromPropsAtom } from './swapSideFromPropsAtom.js';
5
6
 
6
- const userSwapSideAtom = atom();
7
7
  const swapSideAtom = atom((get) => {
8
8
  const tradeMode = get(tradeModeAtom);
9
9
  if (tradeMode !== "swap") {
@@ -13,9 +13,9 @@ const swapSideAtom = atom((get) => {
13
13
  if (!tokenTo) {
14
14
  return "SELL";
15
15
  }
16
- const userSwapSide = get(userSwapSideAtom);
17
- if (userSwapSide) {
18
- return userSwapSide;
16
+ const swapSideFromProps = get(swapSideFromPropsAtom);
17
+ if (swapSideFromProps) {
18
+ return swapSideFromProps;
19
19
  }
20
20
  const currentSwapInput = get(currentSwapInputAtom);
21
21
  return currentSwapInput === "from" ? "SELL" : "BUY";
@@ -24,5 +24,5 @@ const useSwapSide = () => {
24
24
  return useAtomValue(swapSideAtom);
25
25
  };
26
26
 
27
- export { swapSideAtom, useSwapSide, userSwapSideAtom };
27
+ export { swapSideAtom, useSwapSide };
28
28
  //# sourceMappingURL=swapSideAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swapSideAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"sourcesContent":["import { swapTokenToAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom, useAtomValue } from \"jotai\";\n\nexport const userSwapSideAtom = atom<SwapSideUnion>();\n\nexport const swapSideAtom = atom<SwapSideUnion>((get) => {\n const tradeMode = get(tradeModeAtom);\n\n if (tradeMode !== \"swap\") {\n return \"SELL\";\n }\n\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) {\n return \"SELL\";\n }\n\n const userSwapSide = get(userSwapSideAtom);\n\n if (userSwapSide) {\n return userSwapSide;\n }\n\n const currentSwapInput = get(currentSwapInputAtom);\n\n return currentSwapInput === \"from\" ? \"SELL\" : \"BUY\";\n});\n\nexport const useSwapSide = () => {\n return useAtomValue(swapSideAtom);\n};\n"],"names":["userSwapSideAtom","atom","swapSideAtom","get","tradeMode","tradeModeAtom","tokenTo","swapTokenToAtom","userSwapSide","currentSwapInput","currentSwapInputAtom","useSwapSide","useAtomValue"],"mappings":";;;;;AAMO,MAAMA,mBAAmBC,IAAAA;AAEzB,MAAMC,YAAAA,GAAeD,KAAqBE,CAAAA,GAAAA,KAAQ;AACvD,EAAA,MAAMC,SAAAA,GAAYD,IAAIE,aAAa,CAAA;AAEnC,EAAA,IAAID,cAAc,MAAA,EAAQ;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,OAAAA,GAAUH,IAAII,eAAe,CAAA;AAEnC,EAAA,IAAI,CAACD,OAAAA,EAAS;AACZ,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,YAAAA,GAAeL,IAAIH,gBAAgB,CAAA;AAEzC,EAAA,IAAIQ,YAAAA,EAAc;AAChB,IAAA,OAAOA,YAAAA;AAAAA,EACT;AAEA,EAAA,MAAMC,gBAAAA,GAAmBN,IAAIO,oBAAoB,CAAA;AAEjD,EAAA,OAAOD,gBAAAA,KAAqB,SAAS,MAAA,GAAS,KAAA;AAChD,CAAC;AAEM,MAAME,cAAcA,MAAA;AAAA,EAAA,OAClBC,aAAaV,YAAY,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"swapSideAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"sourcesContent":["import { swapTokenToAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom, useAtomValue } from \"jotai\";\nimport { swapSideFromPropsAtom } from \"./swapSideFromPropsAtom\";\n\nexport const swapSideAtom = atom<SwapSideUnion>((get) => {\n const tradeMode = get(tradeModeAtom);\n\n if (tradeMode !== \"swap\") {\n return \"SELL\";\n }\n\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) {\n return \"SELL\";\n }\n\n const swapSideFromProps = get(swapSideFromPropsAtom);\n\n if (swapSideFromProps) {\n return swapSideFromProps;\n }\n\n const currentSwapInput = get(currentSwapInputAtom);\n\n return currentSwapInput === \"from\" ? \"SELL\" : \"BUY\";\n});\n\nexport const useSwapSide = () => {\n return useAtomValue(swapSideAtom);\n};\n"],"names":["swapSideAtom","atom","get","tradeMode","tradeModeAtom","tokenTo","swapTokenToAtom","swapSideFromProps","swapSideFromPropsAtom","currentSwapInput","currentSwapInputAtom","useSwapSide","useAtomValue"],"mappings":";;;;;;AAOO,MAAMA,YAAAA,GAAeC,KAAqBC,CAAAA,GAAAA,KAAQ;AACvD,EAAA,MAAMC,SAAAA,GAAYD,IAAIE,aAAa,CAAA;AAEnC,EAAA,IAAID,cAAc,MAAA,EAAQ;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,OAAAA,GAAUH,IAAII,eAAe,CAAA;AAEnC,EAAA,IAAI,CAACD,OAAAA,EAAS;AACZ,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,iBAAAA,GAAoBL,IAAIM,qBAAqB,CAAA;AAEnD,EAAA,IAAID,iBAAAA,EAAmB;AACrB,IAAA,OAAOA,iBAAAA;AAAAA,EACT;AAEA,EAAA,MAAME,gBAAAA,GAAmBP,IAAIQ,oBAAoB,CAAA;AAEjD,EAAA,OAAOD,gBAAAA,KAAqB,SAAS,MAAA,GAAS,KAAA;AAChD,CAAC;AAEM,MAAME,cAAcA,MAAA;AAAA,EAAA,OAClBC,aAAaZ,YAAY,CAAA;AAAC;;;;"}
@@ -0,0 +1,5 @@
1
+ import { SwapSideUnion } from '@velora-dex/sdk';
2
+ export declare const swapSideFromPropsAtom: import('jotai').PrimitiveAtom<SwapSideUnion | undefined> & {
3
+ init: SwapSideUnion | undefined;
4
+ };
5
+ //# sourceMappingURL=swapSideFromPropsAtom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swapSideFromPropsAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideFromPropsAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,eAAO,MAAM,qBAAqB;;CAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { atom } from 'jotai';
2
+
3
+ const swapSideFromPropsAtom = atom();
4
+
5
+ export { swapSideFromPropsAtom };
6
+ //# sourceMappingURL=swapSideFromPropsAtom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swapSideFromPropsAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideFromPropsAtom.ts"],"sourcesContent":["import type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom } from \"jotai\";\n\nexport const swapSideFromPropsAtom = atom<SwapSideUnion>();"],"names":["swapSideFromPropsAtom","atom"],"mappings":";;AAGO,MAAMA,wBAAwBC,IAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,eAAO,MAAM,kBAAkB;;CAA2B,CAAC;AAwU3D,wBAAgB,2BAA2B,SAE1C;AAED,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,IAAI,EACJ,eAAe,EACf,aAAa,GACd,GAAE,cAAmB,QA+BrB"}
1
+ {"version":3,"file":"setTokenByAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,eAAO,MAAM,kBAAkB;;CAA2B,CAAC;AAsU3D,wBAAgB,2BAA2B,SAE1C;AAED,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,IAAI,EACJ,eAAe,EACf,aAAa,GACd,GAAE,cAAmB,QA+BrB"}
@@ -19,7 +19,8 @@ import { assert } from 'ts-essentials';
19
19
  import { bridgeInfoAtom } from '../../../hooks/swap/prices/delta/queries/useBridgeInfo.js';
20
20
  import { isTradeMode } from '../../../lib/tradeMode.js';
21
21
  import { enabledTradeModesAtom } from '../../state/enabledTradeModesAtom.js';
22
- import { userSwapSideAtom } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
22
+ import { swapSideAtom } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
23
+ import { swapSideFromPropsAtom } from '../../../components/widget/SwapModeSwitcher/state/swapSideFromPropsAtom.js';
23
24
  import { getClosestTimeUnit } from '../../limit/state/utils.js';
24
25
 
25
26
  const formInputPropsAtom = atom({});
@@ -156,17 +157,16 @@ const formInputPropsEffectAtom = atomEffect((get, set) => {
156
157
  const selectTokenToAtom = tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;
157
158
  set(selectTokenToAtom, newTokenTo);
158
159
  }
159
- let side = formInputProps.side || "SELL";
160
- if (!isValidSide(side)) {
160
+ let side = formInputProps.side;
161
+ if (isValidSide(side)) {
162
+ set(swapSideFromPropsAtom, side);
163
+ } else {
161
164
  logger.warn("invalid side provided, must be BUY or SELL", {
162
165
  side
163
166
  });
164
- side = "SELL";
167
+ side = get.peek(swapSideAtom);
165
168
  }
166
169
  assert(isValidSide(side), "side must be BUY or SELL");
167
- if (side !== get.peek(userSwapSideAtom)) {
168
- set(userSwapSideAtom, side);
169
- }
170
170
  const isSwap = selectedForm === "swap";
171
171
  const isLimitOrOtc = selectedForm === "limit" || selectedForm === "otc";
172
172
  const isSwapWithSell = isSwap && side === "SELL";
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.js","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"sourcesContent":["import { atom, useAtom, useSetAtom, type Setter } from \"jotai\";\nimport { atomEffect, type Effect } from \"jotai-effect\";\nimport { isAddress, type Address } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { nativeTokensByChainId } from \"@/tokens/constructor\";\nimport { fromListsAtom } from \"@/tokens/state/fromListsAtom\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"@/tokens/state/importedTokensAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useLayoutEffect } from \"react\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { tradeModeAtom, userTradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToDeadlineTimeUnitAtom,\n tradeModeToPayAmountUnitAtom,\n tradeModeToPriceRateAmountAtom,\n tradeModeToReceiveAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToTokenAtoms,\n} from \"./common\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { autoAddImportedTokenAtom } from \"@/tokens/state/addImportedTokenAtom\";\nimport { getLogger } from \"@/core/logger\";\nimport { assert } from \"ts-essentials\";\nimport { bridgeInfoAtom } from \"@/hooks/swap/prices/delta/queries/useBridgeInfo\";\nimport { isTradeMode } from \"@/lib/tradeMode\";\nimport { enabledTradeModesAtom } from \"@/core/state/enabledTradeModesAtom\";\nimport type { FormInputProps } from \"./types\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { userSwapSideAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getClosestTimeUnit } from \"@/core/limit/state/utils\";\n\nexport const formInputPropsAtom = atom<FormInputProps>({});\n\n// in case formInputPros passed to Widget are not exactly expected types\ntype RelaxedFormInputProps = {\n [K in keyof FormInputProps]?: NonNullable<FormInputProps[K]> extends string\n ? string\n : NonNullable<FormInputProps[K]> extends number\n ? number\n : FormInputProps[K];\n};\n\nconst logger = getLogger(\"FormInputProps\");\n\ntype GetterWithPeek = Parameters<Effect>[0];\n\ntype FindTokenAtomsInput = {\n tokenToFind: { address: Address; network: SupportedChainId };\n get: GetterWithPeek;\n set: Setter;\n};\n\nfunction findTokenInAtoms({\n get,\n set,\n tokenToFind,\n}: FindTokenAtomsInput): Token | undefined {\n const tokenFromAddress = tokenToFind.address;\n const chainId = tokenToFind.network;\n\n if (isETHaddress(tokenFromAddress)) {\n // if tokenFrom is ETH, set the native token for tokenFrom Input\n const nativeToken = nativeTokensByChainId[chainId];\n return nativeToken;\n }\n\n const tokenFromLowercase = tokenFromAddress.toLowerCase();\n\n // find the token from the token Lists for the srcChainId,\n // and retry to find the token when allTokens are updated (token lists loaded)\n const tokensMap = get(fromListsAtom).listByChainId[chainId]?.addressMap;\n const tokenFromLists = tokensMap?.[tokenFromLowercase];\n if (tokenFromLists) {\n return tokenFromLists;\n }\n\n // find the token from the imported tokens,\n // don't retry if user imports more tokens during the session\n const importedTokens = get.peek(importedTokensAtom);\n const importedToken = importedTokens[chainId]?.find(\n (token) => token.address.toLowerCase() === tokenFromLowercase\n );\n if (importedToken) {\n return importedToken;\n }\n\n // subscribe to auto-imported tokens, which will be added to only when tokenAddress prop is supplied from outside the widget\n const autoImportedTokens = get(autoImportedTokensAtom);\n // looking through auto-imported tokens isn't strictly necessary because importedTokens atom is updated together with autoImportedTokens atom,\n // except for consistency, and so that we don't have to subscribe to importedTokens atom that would retrigger formProps matching on manual token import\n const autoImportedToken = autoImportedTokens.find(\n (token) =>\n token.address.toLowerCase() === tokenFromLowercase &&\n token.network === chainId\n );\n if (autoImportedToken) {\n return autoImportedToken;\n }\n\n logger.info(\n \"token not available in widget. Will attempt to import from chain\",\n {\n address: tokenFromAddress,\n chainId,\n }\n );\n\n // trigger Token fetch and eventual import when tokenFromAddress is not found in available token lists and atoms\n set(autoAddImportedTokenAtom, { address: tokenFromAddress, chainId });\n}\n\nfunction isValidSide(side: string | undefined): side is SwapSideUnion {\n return side === \"BUY\" || side === \"SELL\";\n}\n\nconst formInputPropsEffectAtom = atomEffect((get, set) => {\n // subscribe to bridgeInfoAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfoAtom);\n\n const enabledTradeModes = get(enabledTradeModesAtom);\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const {\n tokenFromAddress,\n srcChainId,\n sendAmount,\n receiveAmount,\n priceRateAmount,\n orderDeadline,\n } = formInputProps;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId = formInputProps.destChainId;\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || \"swap\";\n if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid or disabled selectedForm provided\", { selectedForm });\n // fallback to first enabled trade mode from the config\n selectedForm = enabledTradeModes[0];\n }\n\n // necessary for type safety\n assert(isTradeMode(selectedForm), \"selectedForm must be a valid trade mode\");\n\n const formAtoms = tradeModeToTokenAtoms[selectedForm];\n const currentTokenFrom = get.peek(formAtoms.tokenFromAtom);\n const currentTokenTo = get.peek(formAtoms.tokenToAtom);\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n if (currentTradeMode !== selectedForm) {\n set(userTradeModeAtom, selectedForm);\n }\n\n let newTokenFrom: Token | undefined;\n let newTokenTo: Token | undefined;\n\n // if chain isn't given in props, match current srcChainId\n const defaultChainId = currentTokenFrom.network;\n\n if (selectedForm !== \"swap\") {\n // non-swap forms are single-chain only,\n // force destChainId = srcChainId\n destChainId = srcChainId;\n }\n\n if (\n selectedForm === \"otc\" &&\n tokenToAddress &&\n isETHaddress(tokenToAddress)\n ) {\n const wethMapping: Record<number, Address> = wrappedNativeCurrency;\n // OTC Orders don't support ETH as tokenTo=takerAsset,\n // more logical to use WETH instead of no token at all\n tokenToAddress = wethMapping[destChainId || defaultChainId];\n }\n\n {\n // match tokenFromAddress and srcChainId to a new tokenFrom to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenFromAddress, network: srcChainId },\n currentToken: currentTokenFrom,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenFrom = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n {\n // match tokenToAddress and destChainId to a new tokenTo to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenToAddress, network: destChainId },\n currentToken: currentTokenTo,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenTo = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n if (newTokenFrom && newTokenTo && areTokensSame(newTokenFrom, newTokenTo)) {\n // if tokens are the same, skip tokenTo\n newTokenTo = undefined;\n }\n\n if (\n !newTokenFrom &&\n !tokenFromAddress &&\n srcChainId &&\n isSupportedChainId(srcChainId) &&\n srcChainId !== currentTokenFrom.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [defaultTokenFrom] = pickDefaultTokenPair(srcChainId, selectedForm);\n // set default token for the chain\n newTokenFrom = defaultTokenFrom;\n }\n\n if (\n !newTokenTo &&\n !tokenToAddress &&\n destChainId &&\n isSupportedChainId(destChainId) &&\n destChainId !== currentTokenTo?.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [, defaultTokenTo] = pickDefaultTokenPair(destChainId, selectedForm);\n // set default token for the chain\n newTokenTo = defaultTokenTo;\n }\n\n if (newTokenFrom) {\n const selectTokenFromAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenFromAtom;\n set(selectTokenFromAtom, newTokenFrom);\n }\n if (newTokenTo) {\n const selectTokenToAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;\n set(selectTokenToAtom, newTokenTo);\n }\n\n let side = formInputProps.side || \"SELL\";\n if (!isValidSide(side)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid side provided, must be BUY or SELL\", { side });\n // fallback to SELL\n side = \"SELL\";\n }\n\n // necessary for type safety\n assert(isValidSide(side), \"side must be BUY or SELL\");\n\n if (side !== get.peek(userSwapSideAtom)) {\n set(userSwapSideAtom, side);\n }\n\n const isSwap = selectedForm === \"swap\";\n const isLimitOrOtc = selectedForm === \"limit\" || selectedForm === \"otc\";\n\n const isSwapWithSell = isSwap && side === \"SELL\";\n const isSwapWithBuy = isSwap && side === \"BUY\";\n\n if (\n sendAmount &&\n Number(sendAmount) >= 0 &&\n (isSwapWithSell || isLimitOrOtc)\n ) {\n const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];\n const currentSendAmount = get.peek(formPayAmountAtom.read);\n if (currentSendAmount !== sendAmount) {\n set(formPayAmountAtom.write, sendAmount);\n }\n }\n\n if (receiveAmount && Number(receiveAmount) >= 0 && isSwapWithBuy) {\n const formReceiveAmountAtom =\n tradeModeToReceiveAmountUnitAtom[selectedForm];\n const currentReceiveAmount = get.peek(formReceiveAmountAtom.read);\n if (currentReceiveAmount !== receiveAmount) {\n set(formReceiveAmountAtom.write, receiveAmount);\n }\n }\n\n if (selectedForm === \"limit\" || selectedForm === \"otc\") {\n if (priceRateAmount && Number(priceRateAmount) >= 0) {\n const formPriceRateAmountAtom =\n tradeModeToPriceRateAmountAtom[selectedForm];\n const currentPriceRateAmount = get.peek(formPriceRateAmountAtom.read);\n if (currentPriceRateAmount !== priceRateAmount) {\n set(formPriceRateAmountAtom.write, priceRateAmount);\n }\n }\n\n if (orderDeadline !== undefined && !isNaN(Number(orderDeadline))) {\n const timeUnitAtom = tradeModeToDeadlineTimeUnitAtom[selectedForm];\n const currentDeadlineTimeUnit = get.peek(timeUnitAtom);\n const newDeadlineTimeUnit = getClosestTimeUnit(orderDeadline);\n if (\n currentDeadlineTimeUnit.label !== newDeadlineTimeUnit.label ||\n currentDeadlineTimeUnit.value !== newDeadlineTimeUnit.value\n ) {\n set(timeUnitAtom, newDeadlineTimeUnit);\n }\n }\n }\n});\n\nfunction getTokenToFind({\n tokenFromProps,\n currentToken,\n defaultChainId,\n}: {\n tokenFromProps: { address?: string; network?: number };\n currentToken?: Token;\n defaultChainId: SupportedChainId;\n}): { address: Address; network: SupportedChainId } | undefined {\n if (!tokenFromProps.address) return;\n // guard against malformed addresses passed through props\n if (!isAddress(tokenFromProps.address)) {\n logger.warn(\"malformed token address provided\", {\n address: tokenFromProps.address,\n });\n return;\n }\n\n const network = tokenFromProps.network || defaultChainId;\n\n // unsupported chainId provided, can't select this Token\n if (!isSupportedChainId(network)) {\n logger.warn(\"unsupported chainId provided\", { network });\n return;\n }\n\n if (\n currentToken &&\n areTokensSame(currentToken, {\n address: tokenFromProps.address,\n network,\n })\n ) {\n // same token already there\n return;\n }\n\n return { address: tokenFromProps.address, network };\n}\n\nexport function useActivateFormInputEffects() {\n useAtom(formInputPropsEffectAtom);\n}\n\nexport function useSetFormInputFromProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n receiveAmount,\n side,\n priceRateAmount,\n orderDeadline,\n}: FormInputProps = {}) {\n const setFormInputProps = useSetAtom(formInputPropsAtom);\n\n // match props together as they are supplied together from outside the Widget,\n // on any one prop change, the whole form input props are updated as long as they are passed together to the Widget\n useLayoutEffect(() => {\n setFormInputProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n receiveAmount,\n side,\n priceRateAmount,\n orderDeadline,\n });\n }, [\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n setFormInputProps,\n receiveAmount,\n side,\n priceRateAmount,\n orderDeadline,\n ]);\n}\n"],"names":["formInputPropsAtom","atom","logger","getLogger","findTokenInAtoms","get","set","tokenToFind","tokenFromAddress","address","chainId","network","isETHaddress","nativeToken","nativeTokensByChainId","tokenFromLowercase","toLowerCase","tokensMap","fromListsAtom","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedTokensAtom","importedToken","find","token","autoImportedTokens","autoImportedTokensAtom","autoImportedToken","info","autoAddImportedTokenAtom","isValidSide","side","formInputPropsEffectAtom","atomEffect","bridgeInfoAtom","enabledTradeModes","enabledTradeModesAtom","formInputProps","srcChainId","sendAmount","receiveAmount","priceRateAmount","orderDeadline","log","destChainId","tokenToAddress","selectedForm","isTradeMode","includes","warn","assert","formAtoms","tradeModeToTokenAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","tradeModeAtom","userTradeModeAtom","newTokenFrom","newTokenTo","defaultChainId","wethMapping","wrappedNativeCurrency","getTokenToFind","tokenFromProps","currentToken","areTokensSame","undefined","isSupportedChainId","defaultTokenFrom","pickDefaultTokenPair","defaultTokenTo","selectTokenFromAtom","tradeModeToSetTokenAtoms","selectTokenToAtom","userSwapSideAtom","isSwap","isLimitOrOtc","isSwapWithSell","isSwapWithBuy","Number","formPayAmountAtom","tradeModeToPayAmountUnitAtom","currentSendAmount","read","write","formReceiveAmountAtom","tradeModeToReceiveAmountUnitAtom","currentReceiveAmount","formPriceRateAmountAtom","tradeModeToPriceRateAmountAtom","currentPriceRateAmount","isNaN","timeUnitAtom","tradeModeToDeadlineTimeUnitAtom","currentDeadlineTimeUnit","newDeadlineTimeUnit","getClosestTimeUnit","label","value","isAddress","useActivateFormInputEffects","useAtom","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","useSetAtom","t2","t3","useLayoutEffect"],"mappings":"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"}
1
+ {"version":3,"file":"setTokenByAddressAtom.js","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"sourcesContent":["import { atom, useAtom, useSetAtom, type Setter } from \"jotai\";\nimport { atomEffect, type Effect } from \"jotai-effect\";\nimport { isAddress, type Address } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { nativeTokensByChainId } from \"@/tokens/constructor\";\nimport { fromListsAtom } from \"@/tokens/state/fromListsAtom\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"@/tokens/state/importedTokensAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useLayoutEffect } from \"react\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { tradeModeAtom, userTradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToDeadlineTimeUnitAtom,\n tradeModeToPayAmountUnitAtom,\n tradeModeToPriceRateAmountAtom,\n tradeModeToReceiveAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToTokenAtoms,\n} from \"./common\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { autoAddImportedTokenAtom } from \"@/tokens/state/addImportedTokenAtom\";\nimport { getLogger } from \"@/core/logger\";\nimport { assert } from \"ts-essentials\";\nimport { bridgeInfoAtom } from \"@/hooks/swap/prices/delta/queries/useBridgeInfo\";\nimport { isTradeMode } from \"@/lib/tradeMode\";\nimport { enabledTradeModesAtom } from \"@/core/state/enabledTradeModesAtom\";\nimport type { FormInputProps } from \"./types\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { swapSideAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { swapSideFromPropsAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideFromPropsAtom\";\nimport { getClosestTimeUnit } from \"@/core/limit/state/utils\";\n\nexport const formInputPropsAtom = atom<FormInputProps>({});\n\n// in case formInputPros passed to Widget are not exactly expected types\ntype RelaxedFormInputProps = {\n [K in keyof FormInputProps]?: NonNullable<FormInputProps[K]> extends string\n ? string\n : NonNullable<FormInputProps[K]> extends number\n ? number\n : FormInputProps[K];\n};\n\nconst logger = getLogger(\"FormInputProps\");\n\ntype GetterWithPeek = Parameters<Effect>[0];\n\ntype FindTokenAtomsInput = {\n tokenToFind: { address: Address; network: SupportedChainId };\n get: GetterWithPeek;\n set: Setter;\n};\n\nfunction findTokenInAtoms({\n get,\n set,\n tokenToFind,\n}: FindTokenAtomsInput): Token | undefined {\n const tokenFromAddress = tokenToFind.address;\n const chainId = tokenToFind.network;\n\n if (isETHaddress(tokenFromAddress)) {\n // if tokenFrom is ETH, set the native token for tokenFrom Input\n const nativeToken = nativeTokensByChainId[chainId];\n return nativeToken;\n }\n\n const tokenFromLowercase = tokenFromAddress.toLowerCase();\n\n // find the token from the token Lists for the srcChainId,\n // and retry to find the token when allTokens are updated (token lists loaded)\n const tokensMap = get(fromListsAtom).listByChainId[chainId]?.addressMap;\n const tokenFromLists = tokensMap?.[tokenFromLowercase];\n if (tokenFromLists) {\n return tokenFromLists;\n }\n\n // find the token from the imported tokens,\n // don't retry if user imports more tokens during the session\n const importedTokens = get.peek(importedTokensAtom);\n const importedToken = importedTokens[chainId]?.find(\n (token) => token.address.toLowerCase() === tokenFromLowercase\n );\n if (importedToken) {\n return importedToken;\n }\n\n // subscribe to auto-imported tokens, which will be added to only when tokenAddress prop is supplied from outside the widget\n const autoImportedTokens = get(autoImportedTokensAtom);\n // looking through auto-imported tokens isn't strictly necessary because importedTokens atom is updated together with autoImportedTokens atom,\n // except for consistency, and so that we don't have to subscribe to importedTokens atom that would retrigger formProps matching on manual token import\n const autoImportedToken = autoImportedTokens.find(\n (token) =>\n token.address.toLowerCase() === tokenFromLowercase &&\n token.network === chainId\n );\n if (autoImportedToken) {\n return autoImportedToken;\n }\n\n logger.info(\n \"token not available in widget. Will attempt to import from chain\",\n {\n address: tokenFromAddress,\n chainId,\n }\n );\n\n // trigger Token fetch and eventual import when tokenFromAddress is not found in available token lists and atoms\n set(autoAddImportedTokenAtom, { address: tokenFromAddress, chainId });\n}\n\nfunction isValidSide(side: string | undefined): side is SwapSideUnion {\n return side === \"BUY\" || side === \"SELL\";\n}\n\nconst formInputPropsEffectAtom = atomEffect((get, set) => {\n // subscribe to bridgeInfoAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfoAtom);\n\n const enabledTradeModes = get(enabledTradeModesAtom);\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const {\n tokenFromAddress,\n srcChainId,\n sendAmount,\n receiveAmount,\n priceRateAmount,\n orderDeadline,\n } = formInputProps;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId = formInputProps.destChainId;\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || \"swap\";\n if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid or disabled selectedForm provided\", { selectedForm });\n // fallback to first enabled trade mode from the config\n selectedForm = enabledTradeModes[0];\n }\n\n // necessary for type safety\n assert(isTradeMode(selectedForm), \"selectedForm must be a valid trade mode\");\n\n const formAtoms = tradeModeToTokenAtoms[selectedForm];\n const currentTokenFrom = get.peek(formAtoms.tokenFromAtom);\n const currentTokenTo = get.peek(formAtoms.tokenToAtom);\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n if (currentTradeMode !== selectedForm) {\n set(userTradeModeAtom, selectedForm);\n }\n\n let newTokenFrom: Token | undefined;\n let newTokenTo: Token | undefined;\n\n // if chain isn't given in props, match current srcChainId\n const defaultChainId = currentTokenFrom.network;\n\n if (selectedForm !== \"swap\") {\n // non-swap forms are single-chain only,\n // force destChainId = srcChainId\n destChainId = srcChainId;\n }\n\n if (\n selectedForm === \"otc\" &&\n tokenToAddress &&\n isETHaddress(tokenToAddress)\n ) {\n const wethMapping: Record<number, Address> = wrappedNativeCurrency;\n // OTC Orders don't support ETH as tokenTo=takerAsset,\n // more logical to use WETH instead of no token at all\n tokenToAddress = wethMapping[destChainId || defaultChainId];\n }\n\n {\n // match tokenFromAddress and srcChainId to a new tokenFrom to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenFromAddress, network: srcChainId },\n currentToken: currentTokenFrom,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenFrom = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n {\n // match tokenToAddress and destChainId to a new tokenTo to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenToAddress, network: destChainId },\n currentToken: currentTokenTo,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenTo = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n if (newTokenFrom && newTokenTo && areTokensSame(newTokenFrom, newTokenTo)) {\n // if tokens are the same, skip tokenTo\n newTokenTo = undefined;\n }\n\n if (\n !newTokenFrom &&\n !tokenFromAddress &&\n srcChainId &&\n isSupportedChainId(srcChainId) &&\n srcChainId !== currentTokenFrom.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [defaultTokenFrom] = pickDefaultTokenPair(srcChainId, selectedForm);\n // set default token for the chain\n newTokenFrom = defaultTokenFrom;\n }\n\n if (\n !newTokenTo &&\n !tokenToAddress &&\n destChainId &&\n isSupportedChainId(destChainId) &&\n destChainId !== currentTokenTo?.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [, defaultTokenTo] = pickDefaultTokenPair(destChainId, selectedForm);\n // set default token for the chain\n newTokenTo = defaultTokenTo;\n }\n\n if (newTokenFrom) {\n const selectTokenFromAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenFromAtom;\n set(selectTokenFromAtom, newTokenFrom);\n }\n if (newTokenTo) {\n const selectTokenToAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;\n set(selectTokenToAtom, newTokenTo);\n }\n\n let side = formInputProps.side;\n if (isValidSide(side)) {\n set(swapSideFromPropsAtom, side);\n } else {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid side provided, must be BUY or SELL\", { side });\n // fallback to current swap side\n side = get.peek(swapSideAtom);\n }\n\n // necessary for type safety\n assert(isValidSide(side), \"side must be BUY or SELL\");\n\n const isSwap = selectedForm === \"swap\";\n const isLimitOrOtc = selectedForm === \"limit\" || selectedForm === \"otc\";\n\n const isSwapWithSell = isSwap && side === \"SELL\";\n const isSwapWithBuy = isSwap && side === \"BUY\";\n\n if (\n sendAmount &&\n Number(sendAmount) >= 0 &&\n (isSwapWithSell || isLimitOrOtc)\n ) {\n const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];\n const currentSendAmount = get.peek(formPayAmountAtom.read);\n if (currentSendAmount !== sendAmount) {\n set(formPayAmountAtom.write, sendAmount);\n }\n }\n\n if (receiveAmount && Number(receiveAmount) >= 0 && isSwapWithBuy) {\n const formReceiveAmountAtom =\n tradeModeToReceiveAmountUnitAtom[selectedForm];\n const currentReceiveAmount = get.peek(formReceiveAmountAtom.read);\n if (currentReceiveAmount !== receiveAmount) {\n set(formReceiveAmountAtom.write, receiveAmount);\n }\n }\n\n if (selectedForm === \"limit\" || selectedForm === \"otc\") {\n if (priceRateAmount && Number(priceRateAmount) >= 0) {\n const formPriceRateAmountAtom =\n tradeModeToPriceRateAmountAtom[selectedForm];\n const currentPriceRateAmount = get.peek(formPriceRateAmountAtom.read);\n if (currentPriceRateAmount !== priceRateAmount) {\n set(formPriceRateAmountAtom.write, priceRateAmount);\n }\n }\n\n if (orderDeadline !== undefined && !isNaN(Number(orderDeadline))) {\n const timeUnitAtom = tradeModeToDeadlineTimeUnitAtom[selectedForm];\n const currentDeadlineTimeUnit = get.peek(timeUnitAtom);\n const newDeadlineTimeUnit = getClosestTimeUnit(orderDeadline);\n if (\n currentDeadlineTimeUnit.label !== newDeadlineTimeUnit.label ||\n currentDeadlineTimeUnit.value !== newDeadlineTimeUnit.value\n ) {\n set(timeUnitAtom, newDeadlineTimeUnit);\n }\n }\n }\n});\n\nfunction getTokenToFind({\n tokenFromProps,\n currentToken,\n defaultChainId,\n}: {\n tokenFromProps: { address?: string; network?: number };\n currentToken?: Token;\n defaultChainId: SupportedChainId;\n}): { address: Address; network: SupportedChainId } | undefined {\n if (!tokenFromProps.address) return;\n // guard against malformed addresses passed through props\n if (!isAddress(tokenFromProps.address)) {\n logger.warn(\"malformed token address provided\", {\n address: tokenFromProps.address,\n });\n return;\n }\n\n const network = tokenFromProps.network || defaultChainId;\n\n // unsupported chainId provided, can't select this Token\n if (!isSupportedChainId(network)) {\n logger.warn(\"unsupported chainId provided\", { network });\n return;\n }\n\n if (\n currentToken &&\n areTokensSame(currentToken, {\n address: tokenFromProps.address,\n network,\n })\n ) {\n // same token already there\n return;\n }\n\n return { address: tokenFromProps.address, network };\n}\n\nexport function useActivateFormInputEffects() {\n useAtom(formInputPropsEffectAtom);\n}\n\nexport function useSetFormInputFromProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n receiveAmount,\n side,\n priceRateAmount,\n orderDeadline,\n}: FormInputProps = {}) {\n const setFormInputProps = useSetAtom(formInputPropsAtom);\n\n // match props together as they are supplied together from outside the Widget,\n // on any one prop change, the whole form input props are updated as long as they are passed together to the Widget\n useLayoutEffect(() => {\n setFormInputProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n receiveAmount,\n side,\n priceRateAmount,\n orderDeadline,\n });\n }, [\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n setFormInputProps,\n receiveAmount,\n side,\n priceRateAmount,\n orderDeadline,\n ]);\n}\n"],"names":["formInputPropsAtom","atom","logger","getLogger","findTokenInAtoms","get","set","tokenToFind","tokenFromAddress","address","chainId","network","isETHaddress","nativeToken","nativeTokensByChainId","tokenFromLowercase","toLowerCase","tokensMap","fromListsAtom","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedTokensAtom","importedToken","find","token","autoImportedTokens","autoImportedTokensAtom","autoImportedToken","info","autoAddImportedTokenAtom","isValidSide","side","formInputPropsEffectAtom","atomEffect","bridgeInfoAtom","enabledTradeModes","enabledTradeModesAtom","formInputProps","srcChainId","sendAmount","receiveAmount","priceRateAmount","orderDeadline","log","destChainId","tokenToAddress","selectedForm","isTradeMode","includes","warn","assert","formAtoms","tradeModeToTokenAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","tradeModeAtom","userTradeModeAtom","newTokenFrom","newTokenTo","defaultChainId","wethMapping","wrappedNativeCurrency","getTokenToFind","tokenFromProps","currentToken","areTokensSame","undefined","isSupportedChainId","defaultTokenFrom","pickDefaultTokenPair","defaultTokenTo","selectTokenFromAtom","tradeModeToSetTokenAtoms","selectTokenToAtom","swapSideFromPropsAtom","swapSideAtom","isSwap","isLimitOrOtc","isSwapWithSell","isSwapWithBuy","Number","formPayAmountAtom","tradeModeToPayAmountUnitAtom","currentSendAmount","read","write","formReceiveAmountAtom","tradeModeToReceiveAmountUnitAtom","currentReceiveAmount","formPriceRateAmountAtom","tradeModeToPriceRateAmountAtom","currentPriceRateAmount","isNaN","timeUnitAtom","tradeModeToDeadlineTimeUnitAtom","currentDeadlineTimeUnit","newDeadlineTimeUnit","getClosestTimeUnit","label","value","isAddress","useActivateFormInputEffects","useAtom","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","useSetAtom","t2","t3","useLayoutEffect"],"mappings":"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"}
@@ -11,7 +11,7 @@ export type FormInputProps = {
11
11
  tokenToAddress?: Address;
12
12
  /** @description The chainId of the tokenTo, only functional together with selectedForm = "swap"*/
13
13
  destChainId?: SupportedChainId;
14
- /** @description The amount of the pay input, if selectedForm is "swap" - only functional together with side = "SELL" */
14
+ /** @description The amount of the pay input, functional when selectedForm is "limit" or "otc", or when selectedForm is "swap" with side = "SELL" */
15
15
  sendAmount?: string;
16
16
  /** @description The amount of the receive input, only functional together with selectedForm = "swap" and side = "BUY" */
17
17
  receiveAmount?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mGAAmG;IACnG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,wHAAwH;IACxH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yHAAyH;IACzH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qHAAqH;IACrH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mGAAmG;IACnG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,oJAAoJ;IACpJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yHAAyH;IACzH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qHAAqH;IACrH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const currentSwapInputAtom: import('jotai').PrimitiveAtom<"from" | "to"> & {
1
+ export declare const currentSwapInputAtom: import('jotai').WritableAtom<"from" | "to", ["from" | "to"], void> & {
2
2
  init: "from" | "to";
3
3
  };
4
4
  //# sourceMappingURL=currentSwapInputAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"currentSwapInputAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/currentSwapInputAtom.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB;;CAA8B,CAAC"}
1
+ {"version":3,"file":"currentSwapInputAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/currentSwapInputAtom.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;CAOhC,CAAC"}
@@ -1,6 +1,10 @@
1
+ import { swapSideFromPropsAtom } from '../../components/widget/SwapModeSwitcher/state/swapSideFromPropsAtom.js';
1
2
  import { atom } from 'jotai';
2
3
 
3
- const currentSwapInputAtom = atom("from");
4
+ const currentSwapInputAtom = atom("from", (_, set, newInput) => {
5
+ set(currentSwapInputAtom, newInput);
6
+ set(swapSideFromPropsAtom, void 0);
7
+ });
4
8
 
5
9
  export { currentSwapInputAtom };
6
10
  //# sourceMappingURL=currentSwapInputAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currentSwapInputAtom.js","sources":["../../../src/core/state/currentSwapInputAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\n\nexport const currentSwapInputAtom = atom<\"from\" | \"to\">(\"from\");\n"],"names":["currentSwapInputAtom","atom"],"mappings":";;AAEO,MAAMA,oBAAAA,GAAuBC,KAAoB,MAAM;;;;"}
1
+ {"version":3,"file":"currentSwapInputAtom.js","sources":["../../../src/core/state/currentSwapInputAtom.ts"],"sourcesContent":["import { swapSideFromPropsAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideFromPropsAtom\";\nimport { atom } from \"jotai\";\n\nexport const currentSwapInputAtom = atom<\"from\" | \"to\", [\"from\" | \"to\"], void>(\n \"from\",\n (_, set, newInput) => {\n set(currentSwapInputAtom, newInput);\n // reset side from input props to prioritize user selection\n set(swapSideFromPropsAtom, undefined);\n }\n);\n"],"names":["currentSwapInputAtom","atom","_","set","newInput","swapSideFromPropsAtom","undefined"],"mappings":";;;AAGO,MAAMA,uBAAuBC,IAAAA,CAClC,MAAA,EACA,CAACC,CAAAA,EAAGC,KAAKC,QAAAA,KAAa;AACpBD,EAAAA,GAAAA,CAAIH,sBAAsBI,QAAQ,CAAA;AAElCD,EAAAA,GAAAA,CAAIE,uBAAuBC,MAAS,CAAA;AACtC,CACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velora-dex/widget",
3
- "version": "0.2.5-dev.2",
3
+ "version": "0.2.5-dev.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [