@ape.swap/bonds-sdk 5.1.49-test.6 → 5.1.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/components/TokenSelectorModal/TokenRow.d.ts +2 -1
  2. package/dist/components/TokenSelectorModal/TokenRow.js +2 -8
  3. package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -1
  4. package/dist/components/TokenSelectorModal/index.d.ts +1 -0
  5. package/dist/components/TokenSelectorModal/index.js +2 -2
  6. package/dist/components/TokenSelectorModal/index.js.map +1 -1
  7. package/dist/components/TokenSelectorPanel/index.d.ts +2 -1
  8. package/dist/components/TokenSelectorPanel/index.js +2 -2
  9. package/dist/components/TokenSelectorPanel/index.js.map +1 -1
  10. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  11. package/dist/components/uikit-sdk/Svg/tokens/APTOS.js.map +1 -1
  12. package/dist/config/constants/networks.js +1 -2
  13. package/dist/config/constants/networks.js.map +1 -1
  14. package/dist/config/constants/suiZapTokens.d.ts +2 -10
  15. package/dist/config/constants/suiZapTokens.js +9 -26
  16. package/dist/config/constants/suiZapTokens.js.map +1 -1
  17. package/dist/config/constants/tokens.js +0 -12
  18. package/dist/config/constants/tokens.js.map +1 -1
  19. package/dist/config/constants/tooltips.js.map +1 -1
  20. package/dist/constants/suiConstants.d.ts +0 -1
  21. package/dist/constants/suiConstants.js +1 -7
  22. package/dist/constants/suiConstants.js.map +1 -1
  23. package/dist/hooks/useMonitorTx.js.map +1 -1
  24. package/dist/state/bonds/fetchBillsUserAptos.js +2 -2
  25. package/dist/state/bonds/fetchBillsUserAptos.js.map +1 -1
  26. package/dist/state/bonds/fetchBillsUserSui.js +3 -5
  27. package/dist/state/bonds/fetchBillsUserSui.js.map +1 -1
  28. package/dist/state/bonds/fetchBondsDataSui.js +9 -11
  29. package/dist/state/bonds/fetchBondsDataSui.js.map +1 -1
  30. package/dist/state/bonds/useUserBonds.js.map +1 -1
  31. package/dist/state/zap/useSuiZapQuote.d.ts +2 -2
  32. package/dist/state/zap/useSuiZapQuote.js +2 -2
  33. package/dist/state/zap/useSuiZapQuote.js.map +1 -1
  34. package/dist/utils/aptosHelpers.js.map +1 -1
  35. package/dist/utils/suiHelpers.js +3 -2
  36. package/dist/utils/suiHelpers.js.map +1 -1
  37. package/dist/views/BuyBond/BuyComponent.js +1 -1
  38. package/dist/views/BuyBond/BuyComponent.js.map +1 -1
  39. package/dist/views/BuyBond/BuyComponentAptos.js +1 -1
  40. package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -1
  41. package/dist/views/BuyBond/BuyComponentPreTGE.js +1 -1
  42. package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
  43. package/dist/views/BuyBond/BuyComponentSolana.js +1 -1
  44. package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
  45. package/dist/views/BuyBond/BuyComponentSui.js +1 -1
  46. package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
  47. package/dist/views/BuyBond/components/Estimations.js +6 -7
  48. package/dist/views/BuyBond/components/Estimations.js.map +1 -1
  49. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +2 -1
  50. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -1
  51. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +1 -1
  52. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
  53. package/dist/views/YourBonds/YourBonds.js.map +1 -1
  54. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js +0 -1
  55. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js.map +1 -1
  56. package/package.json +2 -2
  57. package/dist/state/bonds/useBondNFTData.d.ts +0 -8
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { ChainId, Token } from '@ape.swap/apeswap-lists';
3
- declare const TokenRow: ({ token, chainId, handleTokenSelect, tokenBalance, }: {
3
+ declare const TokenRow: ({ token, chainId, handleTokenSelect, tokenBalance, isConnected, }: {
4
4
  token: "NATIVE" | Token;
5
5
  chainId: ChainId;
6
6
  handleTokenSelect: (currency: string) => void;
7
7
  tokenBalance?: string;
8
+ isConnected: boolean;
8
9
  }) => React.JSX.Element;
9
10
  export default TokenRow;
@@ -1,22 +1,16 @@
1
1
  import { jsxs, jsx, Fragment } from 'theme-ui/jsx-runtime';
2
2
  import Flex from '../uikit-sdk/Flex/index.js';
3
3
  import TokenImage from '../uikit-sdk/TokenImage/index.js';
4
- import { ChainId } from '@ape.swap/apeswap-lists';
5
4
  import BigNumber from 'bignumber.js';
6
5
  import { Spinner } from 'theme-ui';
7
6
  import { getSymbol } from '../../utils/getNativeTicker.js';
8
7
  import isArray from 'lodash-es/isArray.js';
9
- import useEVMAccount from '../../hooks/accounts/useEVMAccount.js';
10
- import useSOLAccount from '../../hooks/accounts/useSOLAccount.js';
11
8
 
12
- const TokenRow = ({ token, chainId, handleTokenSelect, tokenBalance, }) => {
9
+ const TokenRow = ({ token, chainId, handleTokenSelect, tokenBalance, isConnected, }) => {
13
10
  const symbol = getSymbol(token, chainId);
14
11
  const tokenAddress = token === 'NATIVE' ? 'NATIVE' : token.address[chainId];
15
- const { address } = useEVMAccount();
16
- const { publicKey: accountSolana } = useSOLAccount();
17
- const accountToUse = chainId === ChainId.SOL ? accountSolana?.toString() : address;
18
12
  const splited = typeof token !== 'string' ? token?.symbol?.split('-') : undefined;
19
- return (jsxs(Flex, { sx: { p: '8px', justifyContent: 'space-between', cursor: 'pointer', '&:hover': { background: 'white4' } }, onClick: () => handleTokenSelect(tokenAddress ?? ''), children: [jsxs(Flex, { children: [isArray(splited) ? (jsx(TokenImage, { symbol: splited[0], symbol2: splited[1], size: 28, chain: chainId })) : (jsx(TokenImage, { symbol: getSymbol(token, chainId), size: 28, chain: chainId })), jsx(Flex, { sx: { mx: '8px', lineHeight: '28px', fontSize: '14px' }, children: symbol })] }), accountToUse && (jsx(Flex, { sx: { fontSize: '14px' }, children: tokenBalance === '0' ? ('0') : !tokenBalance ? (jsx(Spinner, { size: 15 })) : (jsx(Fragment, { children: new BigNumber(tokenBalance ?? '0')?.toPrecision(5) })) }))] }));
13
+ return (jsxs(Flex, { sx: { p: '8px', justifyContent: 'space-between', cursor: 'pointer', '&:hover': { background: 'white4' } }, onClick: () => handleTokenSelect(tokenAddress ?? ''), children: [jsxs(Flex, { children: [isArray(splited) ? (jsx(TokenImage, { symbol: splited[0], symbol2: splited[1], size: 28, chain: chainId })) : (jsx(TokenImage, { symbol: getSymbol(token, chainId), size: 28, chain: chainId })), jsx(Flex, { sx: { mx: '8px', lineHeight: '28px', fontSize: '14px' }, children: symbol })] }), isConnected && (jsx(Flex, { sx: { fontSize: '14px' }, children: tokenBalance === '0' ? ('0') : !tokenBalance ? (jsx(Spinner, { size: 15 })) : (jsx(Fragment, { children: new BigNumber(tokenBalance ?? '0')?.toPrecision(5) })) }))] }));
20
14
  };
21
15
 
22
16
  export { TokenRow as default };
@@ -1 +1 @@
1
- {"version":3,"file":"TokenRow.js","sources":["../../../src/components/TokenSelectorModal/TokenRow.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../uikit-sdk/Flex'\nimport TokenImage from '../uikit-sdk/TokenImage'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport BigNumber from 'bignumber.js'\nimport { Spinner } from 'theme-ui'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport isArray from 'lodash-es/isArray.js'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\n\nconst TokenRow = ({\n token,\n chainId,\n handleTokenSelect,\n tokenBalance,\n}: {\n token: 'NATIVE' | Token\n chainId: ChainId\n handleTokenSelect: (currency: string) => void\n tokenBalance?: string\n}) => {\n const symbol = getSymbol(token, chainId)\n const tokenAddress = token === 'NATIVE' ? 'NATIVE' : token.address[chainId]\n const { address } = useEVMAccount()\n const { publicKey: accountSolana } = useSOLAccount()\n const accountToUse = chainId === ChainId.SOL ? accountSolana?.toString() : address\n\n const splited = typeof token !== 'string' ? token?.symbol?.split('-') : undefined\n\n return (\n <Flex\n sx={{ p: '8px', justifyContent: 'space-between', cursor: 'pointer', '&:hover': { background: 'white4' } }}\n onClick={() => handleTokenSelect(tokenAddress ?? '')}\n >\n <Flex>\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={28} chain={chainId} />\n ) : (\n <TokenImage symbol={getSymbol(token, chainId)} size={28} chain={chainId} />\n )}\n <Flex sx={{ mx: '8px', lineHeight: '28px', fontSize: '14px' }}>{symbol}</Flex>\n </Flex>\n {accountToUse && (\n <Flex sx={{ fontSize: '14px' }}>\n {tokenBalance === '0' ? (\n '0'\n ) : !tokenBalance ? (\n <Spinner size={15} />\n ) : (\n <>{new BigNumber(tokenBalance ?? '0')?.toPrecision(5)}</>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default TokenRow\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;;;;;;AAWA,MAAM,QAAQ,GAAG,CAAC,EAChB,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,YAAY,GAMb,KAAI;IACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;AACxC,IAAA,MAAM,YAAY,GAAG,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3E,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;IACnC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;AACpD,IAAA,MAAM,YAAY,GAAG,OAAO,KAAK,OAAO,CAAC,GAAG,GAAG,aAAa,EAAE,QAAQ,EAAE,GAAG,OAAO;IAElF,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAEjF,QACEA,KAAC,IAAI,EAAA,EACH,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EACzG,OAAO,EAAE,MAAM,iBAAiB,CAAC,YAAY,IAAI,EAAE,CAAC,EAAA,QAAA,EAAA,CAEpDA,KAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACF,OAAO,CAAC,OAAO,CAAC,IACfC,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAA,CAAI,KAEjFA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,GAAI,CAC5E,EACDA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,MAAM,EAAA,CAAQ,IACzE,EACN,YAAY,KACXA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAC3B,YAAY,KAAK,GAAG,IACnB,GAAG,IACD,CAAC,YAAY,IACfA,GAAA,CAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,KAErBA,GAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAG,IAAI,SAAS,CAAC,YAAY,IAAI,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAA,CAAI,CAC1D,EAAA,CACI,CACR,CAAA,EAAA,CACI;AAEX;;;;"}
1
+ {"version":3,"file":"TokenRow.js","sources":["../../../src/components/TokenSelectorModal/TokenRow.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../uikit-sdk/Flex'\nimport TokenImage from '../uikit-sdk/TokenImage'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport BigNumber from 'bignumber.js'\nimport { Spinner } from 'theme-ui'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport isArray from 'lodash-es/isArray.js'\n\nconst TokenRow = ({\n token,\n chainId,\n handleTokenSelect,\n tokenBalance,\n isConnected,\n}: {\n token: 'NATIVE' | Token\n chainId: ChainId\n handleTokenSelect: (currency: string) => void\n tokenBalance?: string\n isConnected: boolean\n}) => {\n const symbol = getSymbol(token, chainId)\n const tokenAddress = token === 'NATIVE' ? 'NATIVE' : token.address[chainId]\n\n const splited = typeof token !== 'string' ? token?.symbol?.split('-') : undefined\n\n return (\n <Flex\n sx={{ p: '8px', justifyContent: 'space-between', cursor: 'pointer', '&:hover': { background: 'white4' } }}\n onClick={() => handleTokenSelect(tokenAddress ?? '')}\n >\n <Flex>\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={28} chain={chainId} />\n ) : (\n <TokenImage symbol={getSymbol(token, chainId)} size={28} chain={chainId} />\n )}\n <Flex sx={{ mx: '8px', lineHeight: '28px', fontSize: '14px' }}>{symbol}</Flex>\n </Flex>\n {isConnected && (\n <Flex sx={{ fontSize: '14px' }}>\n {tokenBalance === '0' ? (\n '0'\n ) : !tokenBalance ? (\n <Spinner size={15} />\n ) : (\n <>{new BigNumber(tokenBalance ?? '0')?.toPrecision(5)}</>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default TokenRow\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;;;AASA,MAAM,QAAQ,GAAG,CAAC,EAChB,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,WAAW,GAOZ,KAAI;IACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;AACxC,IAAA,MAAM,YAAY,GAAG,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;IAE3E,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAEjF,QACEA,KAAC,IAAI,EAAA,EACH,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EACzG,OAAO,EAAE,MAAM,iBAAiB,CAAC,YAAY,IAAI,EAAE,CAAC,EAAA,QAAA,EAAA,CAEpDA,KAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACF,OAAO,CAAC,OAAO,CAAC,IACfC,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAA,CAAI,KAEjFA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,GAAI,CAC5E,EACDA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,MAAM,EAAA,CAAQ,IACzE,EACN,WAAW,KACVA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAC3B,YAAY,KAAK,GAAG,IACnB,GAAG,IACD,CAAC,YAAY,IACfA,GAAA,CAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,KAErBA,GAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAG,IAAI,SAAS,CAAC,YAAY,IAAI,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAA,CAAI,CAC1D,EAAA,CACI,CACR,CAAA,EAAA,CACI;AAEX;;;;"}
@@ -5,6 +5,7 @@ interface TokenSelectorModalProps {
5
5
  handleCurrencySelect: (currency: string) => void;
6
6
  chainId: ChainId;
7
7
  onDismiss?: () => void;
8
+ isConnected: boolean;
8
9
  }
9
10
  declare const TokenSelectorModal: React.FC<TokenSelectorModalProps>;
10
11
  export default TokenSelectorModal;
@@ -7,7 +7,7 @@ import Modal from '../uikit-sdk/Modal/index.js';
7
7
  import Flex from '../uikit-sdk/Flex/index.js';
8
8
  import Input from '../uikit-sdk/Input/Input.js';
9
9
 
10
- const TokenSelectorModal = ({ bondPrincipalToken, handleCurrencySelect, chainId, onDismiss, }) => {
10
+ const TokenSelectorModal = ({ bondPrincipalToken, handleCurrencySelect, chainId, onDismiss, isConnected, }) => {
11
11
  const [searchQuery, setSearchQuery] = useState('');
12
12
  const { sortedZapList } = useSortedZapList(chainId, bondPrincipalToken);
13
13
  const parsedList = sortedZapList?.filter((token) => {
@@ -41,7 +41,7 @@ const TokenSelectorModal = ({ bondPrincipalToken, handleCurrencySelect, chainId,
41
41
  height: '300px',
42
42
  overflowY: 'auto',
43
43
  }, children: parsedList.map((token) => {
44
- return (jsx(TokenRow, { token: token.token, chainId: chainId, handleTokenSelect: handleTokenSelect, tokenBalance: token.balance }, token.token === 'NATIVE' ? 'NATIVE' : token.token.address[chainId]));
44
+ return (jsx(TokenRow, { token: token.token, chainId: chainId, handleTokenSelect: handleTokenSelect, tokenBalance: token.balance, isConnected: isConnected }, token.token === 'NATIVE' ? 'NATIVE' : token.token.address[chainId]));
45
45
  }) })] }) }) }));
46
46
  };
47
47
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/TokenSelectorModal/index.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react'\nimport { ChainId, Token, WNATIVE } from '@ape.swap/apeswap-lists'\nimport TokenRow from './TokenRow'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport Modal from '../uikit-sdk/Modal'\nimport Flex from '../uikit-sdk/Flex'\nimport Input from '../uikit-sdk/Input/Input'\n\ninterface TokenSelectorModalProps {\n bondPrincipalToken?: Token // should be ADDED to the inputList\n handleCurrencySelect: (currency: string) => void\n chainId: ChainId\n onDismiss?: () => void\n}\n\nconst TokenSelectorModal: React.FC<TokenSelectorModalProps> = ({\n bondPrincipalToken,\n handleCurrencySelect,\n chainId,\n onDismiss,\n}) => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n const { sortedZapList } = useSortedZapList(chainId, bondPrincipalToken)\n\n const parsedList =\n sortedZapList?.filter((token) => {\n // Search filter\n return !searchQuery\n ? true\n : token.token === 'NATIVE'\n ? WNATIVE[chainId as ChainId]?.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n : token.token.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n }) ?? []\n\n const handleTokenSelect = useCallback(\n (currency: string) => {\n handleCurrencySelect(currency)\n setSearchQuery('')\n if (onDismiss) onDismiss()\n },\n [onDismiss, handleCurrencySelect, setSearchQuery],\n )\n\n const handleInput = useCallback(\n (event: any) => {\n const input = event.target.value\n setSearchQuery(input)\n },\n [setSearchQuery],\n )\n\n return (\n <Modal onDismiss={onDismiss} title=\"Tokens\" className=\"token-selector-modal\">\n <Flex\n sx={{\n flexDirection: 'column',\n maxHeight: 'none',\n height: 'auto',\n width: 'auto',\n overflowY: 'auto',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ position: 'relative', margin: '10px 0px 15px 0px' }}>\n <Input\n id=\"token-search-input\"\n placeholder=\"Name or Address\"\n autoComplete=\"off\"\n value={searchQuery}\n onChange={handleInput}\n autoFocus\n />\n </Flex>\n <Flex\n sx={{\n borderRadius: 'normal',\n background: 'white3',\n flexDirection: 'column',\n height: '300px',\n overflowY: 'auto',\n }}\n >\n {parsedList.map((token) => {\n return (\n <TokenRow\n key={token.token === 'NATIVE' ? 'NATIVE' : token.token.address[chainId]}\n token={token.token}\n chainId={chainId}\n handleTokenSelect={handleTokenSelect}\n tokenBalance={token.balance}\n />\n )\n })}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TokenSelectorModal\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/TokenSelectorModal/index.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react'\nimport { ChainId, Token, WNATIVE } from '@ape.swap/apeswap-lists'\nimport TokenRow from './TokenRow'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport Modal from '../uikit-sdk/Modal'\nimport Flex from '../uikit-sdk/Flex'\nimport Input from '../uikit-sdk/Input/Input'\n\ninterface TokenSelectorModalProps {\n bondPrincipalToken?: Token // should be ADDED to the inputList\n handleCurrencySelect: (currency: string) => void\n chainId: ChainId\n onDismiss?: () => void\n isConnected: boolean\n}\n\nconst TokenSelectorModal: React.FC<TokenSelectorModalProps> = ({\n bondPrincipalToken,\n handleCurrencySelect,\n chainId,\n onDismiss,\n isConnected,\n}) => {\n const [searchQuery, setSearchQuery] = useState<string>('')\n const { sortedZapList } = useSortedZapList(chainId, bondPrincipalToken)\n\n const parsedList =\n sortedZapList?.filter((token) => {\n // Search filter\n return !searchQuery\n ? true\n : token.token === 'NATIVE'\n ? WNATIVE[chainId as ChainId]?.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n : token.token.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n }) ?? []\n\n const handleTokenSelect = useCallback(\n (currency: string) => {\n handleCurrencySelect(currency)\n setSearchQuery('')\n if (onDismiss) onDismiss()\n },\n [onDismiss, handleCurrencySelect, setSearchQuery],\n )\n\n const handleInput = useCallback(\n (event: any) => {\n const input = event.target.value\n setSearchQuery(input)\n },\n [setSearchQuery],\n )\n\n return (\n <Modal onDismiss={onDismiss} title=\"Tokens\" className=\"token-selector-modal\">\n <Flex\n sx={{\n flexDirection: 'column',\n maxHeight: 'none',\n height: 'auto',\n width: 'auto',\n overflowY: 'auto',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ position: 'relative', margin: '10px 0px 15px 0px' }}>\n <Input\n id=\"token-search-input\"\n placeholder=\"Name or Address\"\n autoComplete=\"off\"\n value={searchQuery}\n onChange={handleInput}\n autoFocus\n />\n </Flex>\n <Flex\n sx={{\n borderRadius: 'normal',\n background: 'white3',\n flexDirection: 'column',\n height: '300px',\n overflowY: 'auto',\n }}\n >\n {parsedList.map((token) => {\n return (\n <TokenRow\n key={token.token === 'NATIVE' ? 'NATIVE' : token.token.address[chainId]}\n token={token.token}\n chainId={chainId}\n handleTokenSelect={handleTokenSelect}\n tokenBalance={token.balance}\n isConnected={isConnected}\n />\n )\n })}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TokenSelectorModal\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ChainId, MarketingCampaign, Token } from '@ape.swap/apeswap-lists';
3
- declare const TokenSelectorPanel: ({ typedValue, setTypedValue, selectedToken, bondChainId, handleValueBtn, handleCurrencySelect, enableZap, tokenBalance, selectedTokenPrice, bondPrincipalToken, inputDisabled, marketingCampaign, }: {
3
+ declare const TokenSelectorPanel: ({ typedValue, setTypedValue, selectedToken, bondChainId, handleValueBtn, handleCurrencySelect, enableZap, tokenBalance, selectedTokenPrice, bondPrincipalToken, inputDisabled, marketingCampaign, isConnected, }: {
4
4
  typedValue: string;
5
5
  setTypedValue: (value: React.SetStateAction<string>) => void;
6
6
  selectedToken?: "NATIVE" | Token;
@@ -13,5 +13,6 @@ declare const TokenSelectorPanel: ({ typedValue, setTypedValue, selectedToken, b
13
13
  bondPrincipalToken?: Token;
14
14
  inputDisabled?: boolean;
15
15
  marketingCampaign?: MarketingCampaign;
16
+ isConnected: boolean;
16
17
  }) => React.JSX.Element;
17
18
  export default TokenSelectorPanel;
@@ -17,7 +17,7 @@ import { MCColorMapping } from '../../utils/campaignStyles.js';
17
17
  import Svg from '../uikit-sdk/Svg/index.js';
18
18
  import Button from '../uikit-sdk/Button/Button.js';
19
19
 
20
- const TokenSelectorPanel = ({ typedValue, setTypedValue, selectedToken, bondChainId, handleValueBtn, handleCurrencySelect, enableZap, tokenBalance, selectedTokenPrice, bondPrincipalToken, inputDisabled = false, marketingCampaign, }) => {
20
+ const TokenSelectorPanel = ({ typedValue, setTypedValue, selectedToken, bondChainId, handleValueBtn, handleCurrencySelect, enableZap, tokenBalance, selectedTokenPrice, bondPrincipalToken, inputDisabled = false, marketingCampaign, isConnected, }) => {
21
21
  const { address: account } = useEVMAccount();
22
22
  const { publicKey: solanaAccount } = useSOLAccount();
23
23
  const { address: aptosAccount } = useAPTAccount();
@@ -34,7 +34,7 @@ const TokenSelectorPanel = ({ typedValue, setTypedValue, selectedToken, bondChai
34
34
  const handleInputChange = (event) => {
35
35
  setTypedValue(event.target.value);
36
36
  };
37
- const [onTokenSelectorModal] = useModal(jsx(TokenSelectorModal, { bondPrincipalToken: bondPrincipalToken, handleCurrencySelect: handleCurrencySelect, chainId: bondChainId }), true, false, `tokenSelectorOnLiquidityModal${bondPrincipalToken?.address?.[bondChainId]}-${bondPrincipalToken?.symbol}`);
37
+ const [onTokenSelectorModal] = useModal(jsx(TokenSelectorModal, { bondPrincipalToken: bondPrincipalToken, handleCurrencySelect: handleCurrencySelect, chainId: bondChainId, isConnected: isConnected }), true, false, `tokenSelectorOnLiquidityModal${bondPrincipalToken?.address?.[bondChainId]}-${bondPrincipalToken?.symbol}`);
38
38
  return (jsxs(Flex, { className: "token-selector-panel", sx: { borderRadius: 'normal', background: MCColorMapping.white3[marketingCampaign] }, children: [jsxs(Flex, { className: "input-container inputrow", children: [jsx(Flex, { className: "input-container input", children: jsx(Input, { placeholder: "0.0", value: typedValue, pattern: "^[0-9]*[.,]?[0-9]*$", onChange: handleInputChange, onInput: (v) => {
39
39
  if (v.currentTarget.value.includes(',')) {
40
40
  v.currentTarget.value = v.currentTarget.value.replace(/,/g, '.');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/TokenSelectorPanel/index.tsx"],"sourcesContent":["import React, { FormEvent } from 'react'\nimport { Flex, Input } from 'theme-ui'\nimport { isNumber } from '../../utils/numbers'\nimport TokenImage from '../uikit-sdk/TokenImage'\nimport { ChainId, MarketingCampaign, Token } from '@ape.swap/apeswap-lists'\nimport useModal from '../../hooks/useModal'\nimport TokenSelectorModal from '../TokenSelectorModal'\nimport BigNumber from 'bignumber.js'\nimport isArray from 'lodash-es/isArray.js'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { formatUSDNumber } from '../../utils/displayHelpers'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport { MCColorMapping } from '../../utils/campaignStyles'\nimport Svg from '../uikit-sdk/Svg'\nimport Button from '../uikit-sdk/Button/Button'\n\nconst TokenSelectorPanel = ({\n typedValue,\n setTypedValue,\n selectedToken,\n bondChainId,\n handleValueBtn,\n handleCurrencySelect,\n enableZap,\n tokenBalance,\n selectedTokenPrice,\n bondPrincipalToken,\n inputDisabled = false,\n marketingCampaign,\n}: {\n typedValue: string\n setTypedValue: (value: React.SetStateAction<string>) => void\n selectedToken?: 'NATIVE' | Token\n bondChainId: ChainId\n handleValueBtn?: (value: string) => void\n handleCurrencySelect: (value: string) => void\n enableZap?: boolean\n tokenBalance?: string\n selectedTokenPrice?: number\n bondPrincipalToken?: Token // Used to ADD this token to the inputList\n inputDisabled?: boolean\n marketingCampaign?: MarketingCampaign\n}) => {\n const { address: account } = useEVMAccount()\n const { publicKey: solanaAccount } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n\n const showBalance =\n bondChainId === ChainId.SOL\n ? !!solanaAccount\n : bondChainId === ChainId.APTOS\n ? !!aptosAccount\n : bondChainId === ChainId.SUI\n ? !!suiAccount\n : !!account\n const tokenBalanceString = tokenBalance ? new BigNumber(tokenBalance).toPrecision(5) : 'loading'\n\n const splited = typeof selectedToken !== 'string' ? selectedToken?.symbol?.split('-') : undefined\n const handleInputChange = (event: { target: { value: React.SetStateAction<string> } }) => {\n setTypedValue(event.target.value)\n }\n\n const [onTokenSelectorModal] = useModal(\n <TokenSelectorModal\n bondPrincipalToken={bondPrincipalToken}\n handleCurrencySelect={handleCurrencySelect}\n chainId={bondChainId}\n />,\n true,\n false,\n `tokenSelectorOnLiquidityModal${bondPrincipalToken?.address?.[bondChainId]}-${bondPrincipalToken?.symbol}`,\n )\n\n return (\n <Flex\n className=\"token-selector-panel\"\n sx={{ borderRadius: 'normal', background: MCColorMapping.white3[marketingCampaign!] }}\n >\n <Flex className=\"input-container inputrow\">\n <Flex className=\"input-container input\">\n <Input\n placeholder=\"0.0\"\n value={typedValue}\n pattern=\"^[0-9]*[.,]?[0-9]*$\"\n onChange={handleInputChange}\n onInput={(v: FormEvent<HTMLInputElement>) => {\n if (v.currentTarget.value.includes(',')) {\n v.currentTarget.value = v.currentTarget.value.replace(/,/g, '.')\n }\n if (v.currentTarget.value.includes('%')) {\n v.currentTarget.value = v.currentTarget.value.replace(/[^0-9]/g, '')\n }\n if (v.currentTarget.value === '.') {\n v.currentTarget.value = '0.'\n }\n v.currentTarget.value =\n !!v.currentTarget.value && isNumber(v.currentTarget.value) && parseFloat(v.currentTarget.value) >= 0\n ? v.currentTarget.value\n : v.currentTarget.value.slice(0, v.currentTarget.value.length - 1)\n }}\n disabled={inputDisabled}\n />\n </Flex>\n\n {/* TOKEN SELECTOR PANEL */}\n\n <Flex\n className=\"input-container token\"\n onClick={() => (enableZap ? onTokenSelectorModal() : null)}\n sx={{\n cursor: enableZap ? 'pointer' : 'default',\n borderRadius: 'normal',\n background: MCColorMapping.white4[marketingCampaign!],\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '10px' }}>\n <Flex className=\"input-container bondicon\">\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={28} chain={bondChainId} />\n ) : (\n <TokenImage symbol={getSymbol(selectedToken, bondChainId)} size={28} chain={bondChainId} />\n )}\n </Flex>\n <Flex className=\"title-container tokenname\">{getSymbol(selectedToken, bondChainId)}</Flex>\n </Flex>\n {enableZap && (\n <Flex sx={{ mr: '8px' }}>\n <Svg icon=\"caret\" />\n </Flex>\n )}\n </Flex>\n </Flex>\n <Flex className=\"input-container balancerow\">\n <Flex sx={{ opacity: 0.6 }}>\n {selectedTokenPrice && typedValue\n ? `$${formatUSDNumber((selectedTokenPrice * parseFloat(typedValue)).toFixed(2))}`\n : ''}\n </Flex>\n <Flex>\n {showBalance && <Flex className=\"balancerow text\">Balance: {tokenBalanceString}</Flex>}\n <Flex className=\"balancerow max\">\n {showBalance && tokenBalance && tokenBalance !== '0' && handleValueBtn && (\n <Button\n className=\"max-button\"\n onClick={() => handleValueBtn(new BigNumber(tokenBalance ?? '0')?.toString())}\n >\n Max\n </Button>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default TokenSelectorPanel\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/TokenSelectorPanel/index.tsx"],"sourcesContent":["import React, { FormEvent } from 'react'\nimport { Flex, Input } from 'theme-ui'\nimport { isNumber } from '../../utils/numbers'\nimport TokenImage from '../uikit-sdk/TokenImage'\nimport { ChainId, MarketingCampaign, Token } from '@ape.swap/apeswap-lists'\nimport useModal from '../../hooks/useModal'\nimport TokenSelectorModal from '../TokenSelectorModal'\nimport BigNumber from 'bignumber.js'\nimport isArray from 'lodash-es/isArray.js'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { formatUSDNumber } from '../../utils/displayHelpers'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport { MCColorMapping } from '../../utils/campaignStyles'\nimport Svg from '../uikit-sdk/Svg'\nimport Button from '../uikit-sdk/Button/Button'\n\nconst TokenSelectorPanel = ({\n typedValue,\n setTypedValue,\n selectedToken,\n bondChainId,\n handleValueBtn,\n handleCurrencySelect,\n enableZap,\n tokenBalance,\n selectedTokenPrice,\n bondPrincipalToken,\n inputDisabled = false,\n marketingCampaign,\n isConnected,\n}: {\n typedValue: string\n setTypedValue: (value: React.SetStateAction<string>) => void\n selectedToken?: 'NATIVE' | Token\n bondChainId: ChainId\n handleValueBtn?: (value: string) => void\n handleCurrencySelect: (value: string) => void\n enableZap?: boolean\n tokenBalance?: string\n selectedTokenPrice?: number\n bondPrincipalToken?: Token // Used to ADD this token to the inputList\n inputDisabled?: boolean\n marketingCampaign?: MarketingCampaign\n isConnected: boolean\n}) => {\n const { address: account } = useEVMAccount()\n const { publicKey: solanaAccount } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n\n const showBalance =\n bondChainId === ChainId.SOL\n ? !!solanaAccount\n : bondChainId === ChainId.APTOS\n ? !!aptosAccount\n : bondChainId === ChainId.SUI\n ? !!suiAccount\n : !!account\n const tokenBalanceString = tokenBalance ? new BigNumber(tokenBalance).toPrecision(5) : 'loading'\n\n const splited = typeof selectedToken !== 'string' ? selectedToken?.symbol?.split('-') : undefined\n const handleInputChange = (event: { target: { value: React.SetStateAction<string> } }) => {\n setTypedValue(event.target.value)\n }\n\n const [onTokenSelectorModal] = useModal(\n <TokenSelectorModal\n bondPrincipalToken={bondPrincipalToken}\n handleCurrencySelect={handleCurrencySelect}\n chainId={bondChainId}\n isConnected={isConnected}\n />,\n true,\n false,\n `tokenSelectorOnLiquidityModal${bondPrincipalToken?.address?.[bondChainId]}-${bondPrincipalToken?.symbol}`,\n )\n\n return (\n <Flex\n className=\"token-selector-panel\"\n sx={{ borderRadius: 'normal', background: MCColorMapping.white3[marketingCampaign!] }}\n >\n <Flex className=\"input-container inputrow\">\n <Flex className=\"input-container input\">\n <Input\n placeholder=\"0.0\"\n value={typedValue}\n pattern=\"^[0-9]*[.,]?[0-9]*$\"\n onChange={handleInputChange}\n onInput={(v: FormEvent<HTMLInputElement>) => {\n if (v.currentTarget.value.includes(',')) {\n v.currentTarget.value = v.currentTarget.value.replace(/,/g, '.')\n }\n if (v.currentTarget.value.includes('%')) {\n v.currentTarget.value = v.currentTarget.value.replace(/[^0-9]/g, '')\n }\n if (v.currentTarget.value === '.') {\n v.currentTarget.value = '0.'\n }\n v.currentTarget.value =\n !!v.currentTarget.value && isNumber(v.currentTarget.value) && parseFloat(v.currentTarget.value) >= 0\n ? v.currentTarget.value\n : v.currentTarget.value.slice(0, v.currentTarget.value.length - 1)\n }}\n disabled={inputDisabled}\n />\n </Flex>\n\n {/* TOKEN SELECTOR PANEL */}\n\n <Flex\n className=\"input-container token\"\n onClick={() => (enableZap ? onTokenSelectorModal() : null)}\n sx={{\n cursor: enableZap ? 'pointer' : 'default',\n borderRadius: 'normal',\n background: MCColorMapping.white4[marketingCampaign!],\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '10px' }}>\n <Flex className=\"input-container bondicon\">\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={28} chain={bondChainId} />\n ) : (\n <TokenImage symbol={getSymbol(selectedToken, bondChainId)} size={28} chain={bondChainId} />\n )}\n </Flex>\n <Flex className=\"title-container tokenname\">{getSymbol(selectedToken, bondChainId)}</Flex>\n </Flex>\n {enableZap && (\n <Flex sx={{ mr: '8px' }}>\n <Svg icon=\"caret\" />\n </Flex>\n )}\n </Flex>\n </Flex>\n <Flex className=\"input-container balancerow\">\n <Flex sx={{ opacity: 0.6 }}>\n {selectedTokenPrice && typedValue\n ? `$${formatUSDNumber((selectedTokenPrice * parseFloat(typedValue)).toFixed(2))}`\n : ''}\n </Flex>\n <Flex>\n {showBalance && <Flex className=\"balancerow text\">Balance: {tokenBalanceString}</Flex>}\n <Flex className=\"balancerow max\">\n {showBalance && tokenBalance && tokenBalance !== '0' && handleValueBtn && (\n <Button\n className=\"max-button\"\n onClick={() => handleValueBtn(new BigNumber(tokenBalance ?? '0')?.toString())}\n >\n Max\n </Button>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default TokenSelectorPanel\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React from 'react'\nimport { styles } from './styles'\nimport ButtonsRow from './ButtonsRow'\nimport { BLOCK_EXPLORER } from '../../config/constants/chains'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { IS_APTOS_MAINNET } from '../../constants/aptosConstants'\nimport Flex from '../uikit-sdk/Flex'\nimport Svg from '../uikit-sdk/Svg'\nimport { Link } from 'theme-ui'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport ExpandedViewButton from '../../views/BuyBond/components/ExpandedViewButton'\nimport track from '../../utils/track'\n\nexport interface TooltipProps {\n earnTokenContract: string\n earnTokenSymbol: string\n bondContract: string\n projectLink?: string\n twitter?: string\n chain: number\n isSoldOut?: boolean\n billType?: string\n cgId?: string\n dexscreener?: string\n}\n\nconst BondInfoTooltip: React.FunctionComponent<TooltipProps> = ({\n earnTokenContract,\n earnTokenSymbol,\n bondContract,\n projectLink,\n twitter,\n chain,\n isSoldOut = false,\n billType,\n cgId,\n dexscreener,\n}) => {\n const config = useSDKConfig()\n const explorerLink = BLOCK_EXPLORER[chain as ChainId]\n const urlPage =\n chain === ChainId.SOL\n ? 'account'\n : chain === ChainId.APTOS\n ? 'object'\n : chain === ChainId.SUI\n ? 'object'\n : 'address'\n const aptosNetworkParam =\n chain === ChainId.APTOS ? `?network=${IS_APTOS_MAINNET ? 'mainnet' : 'testnet'}` : ''\n const tokenLink = `${explorerLink}/${urlPage}/${earnTokenContract}${aptosNetworkParam}`\n const bondLink = `${explorerLink}/${urlPage}/${bondContract}${aptosNetworkParam}`\n const bondDashboard = `https://dashboard.ape.bond/bond/${bondContract}`\n\n const handleProjectViewNavigation = () => {\n window.location.href = `/bonds/${bondContract}/${chain}`\n track({\n event: 'projectInfoClick',\n chain: chain,\n data: {\n cat: 'Table',\n bond: earnTokenSymbol,\n bondChain: chain,\n },\n })\n }\n return (\n <Flex sx={{ flexDirection: 'column', flexWrap: 'wrap' }}>\n <ButtonsRow\n twitter={twitter}\n projectLink={projectLink}\n earnTokenContract={earnTokenContract}\n cgId={cgId}\n dexscreener={dexscreener}\n />\n {config?.referenceId === 'apebond' && !isSoldOut && billType !== 'fcfs' && (\n <Flex sx={{ width: '100%', my: '5px', justifyContent: 'center', position: 'relative', height: '25px' }}>\n <ExpandedViewButton handleNavigation={handleProjectViewNavigation} rightPos={'-5px'} />\n </Flex>\n )}\n <Flex sx={{ justifyContent: 'center' }}>\n <Flex sx={{ width: '144px', flexDirection: 'column' }}>\n <Flex sx={styles.linkRow}>\n {tokenLink && (\n <Link href={tokenLink} sx={styles.link} target=\"_blank\">\n View Token Contract\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"external\" color=\"text\" width={10} />\n </Flex>\n </Link>\n )}\n </Flex>\n <Flex sx={styles.linkRow}>\n {bondLink && (\n <Link href={bondLink} sx={styles.link} target=\"_blank\">\n View Bond Contract\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"external\" color=\"text\" width={10} />\n </Flex>\n </Link>\n )}\n </Flex>\n <Flex sx={styles.linkRow}>\n {billType !== 'fcfs' && (\n <Link href={bondDashboard} sx={styles.link} target=\"_blank\" rel=\"noopener noreferrer\">\n View Bond Insights\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"external\" color=\"text\" width={10} />\n </Flex>\n </Link>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default BondInfoTooltip\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;AA0BA,MAAM,eAAe,GAA0C,CAAC,EAC9D,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,OAAO,EACP,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,IAAI,EACJ,WAAW,GACZ,KAAI;AACH,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAgB,CAAC;AACrD,IAAA,MAAM,OAAO,GACX,KAAK,KAAK,OAAO,CAAC;AAChB,UAAE;AACF,UAAE,KAAK,KAAK,OAAO,CAAC;AAClB,cAAE;AACF,cAAE,KAAK,KAAK,OAAO,CAAC;AAClB,kBAAE;kBACA,SAAS;IACnB,MAAM,iBAAiB,GACrB,KAAK,KAAK,OAAO,CAAC,KAAK,GAAG,CAAA,SAAA,EAAY,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA,CAAE,GAAG,EAAE;IACvF,MAAM,SAAS,GAAG,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,iBAAiB,CAAA,EAAG,iBAAiB,CAAA,CAAE;IACvF,MAAM,QAAQ,GAAG,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,YAAY,CAAA,EAAG,iBAAiB,CAAA,CAAE;AACjF,IAAA,MAAM,aAAa,GAAG,CAAA,gCAAA,EAAmC,YAAY,EAAE;IAEvE,MAAM,2BAA2B,GAAG,MAAK;QACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,YAAY,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE;AACxD,QAAA,KAAK,CAAC;AACJ,YAAA,KAAK,EAAE,kBAAkB;AACzB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,OAAO;AACZ,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA;AACF,SAAA,CAAC;AACJ,IAAA,CAAC;AACD,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACrDC,GAAA,CAAC,UAAU,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EAAA,CACxB,EACD,MAAM,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,MAAM,KACrEA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,QAAA,EACpGA,GAAA,CAAC,kBAAkB,EAAA,EAAC,gBAAgB,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,EAAA,CAAI,GAClF,CACR,EACDA,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA,QAAA,EACpCD,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACnDC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EACrB,SAAS,KACRD,IAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAA,QAAA,EAAA,CAAA,qBAAA,EAErDC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EACrBA,IAAC,GAAG,EAAA,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,EAAA,CAAI,GAC1C,CAAA,EAAA,CACF,CACR,EAAA,CACI,EACPA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EACrB,QAAQ,KACPD,IAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAA,QAAA,EAAA,CAAA,oBAAA,EAEpDC,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,YACrBA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,EAAA,CAAI,EAAA,CAC1C,CAAA,EAAA,CACF,CACR,GACI,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,OAAO,YACrB,QAAQ,KAAK,MAAM,KAClBD,IAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAAA,oBAAA,EAEnFC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EACrBA,GAAA,CAAC,GAAG,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,EAAA,CAAI,EAAA,CAC1C,CAAA,EAAA,CACF,CACR,EAAA,CACI,CAAA,EAAA,CACF,EAAA,CACF,CAAA,EAAA,CACF;AAEX;;;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React from 'react'\nimport { styles } from './styles'\nimport ButtonsRow from './ButtonsRow'\nimport { BLOCK_EXPLORER } from '../../config/constants/chains'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { IS_APTOS_MAINNET } from '../../constants/aptosConstants'\nimport Flex from '../uikit-sdk/Flex'\nimport Svg from '../uikit-sdk/Svg'\nimport { Link } from 'theme-ui'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport ExpandedViewButton from '../../views/BuyBond/components/ExpandedViewButton'\nimport track from '../../utils/track'\n\nexport interface TooltipProps {\n earnTokenContract: string\n earnTokenSymbol: string\n bondContract: string\n projectLink?: string\n twitter?: string\n chain: number\n isSoldOut?: boolean\n billType?: string\n cgId?: string\n dexscreener?: string\n}\n\nconst BondInfoTooltip: React.FunctionComponent<TooltipProps> = ({\n earnTokenContract,\n earnTokenSymbol,\n bondContract,\n projectLink,\n twitter,\n chain,\n isSoldOut = false,\n billType,\n cgId,\n dexscreener,\n}) => {\n const config = useSDKConfig()\n const explorerLink = BLOCK_EXPLORER[chain as ChainId]\n const urlPage =\n chain === ChainId.SOL\n ? 'account'\n : chain === ChainId.APTOS\n ? 'object'\n : chain === ChainId.SUI\n ? 'object'\n : 'address'\n const aptosNetworkParam = chain === ChainId.APTOS ? `?network=${IS_APTOS_MAINNET ? 'mainnet' : 'testnet'}` : ''\n const tokenLink = `${explorerLink}/${urlPage}/${earnTokenContract}${aptosNetworkParam}`\n const bondLink = `${explorerLink}/${urlPage}/${bondContract}${aptosNetworkParam}`\n const bondDashboard = `https://dashboard.ape.bond/bond/${bondContract}`\n\n const handleProjectViewNavigation = () => {\n window.location.href = `/bonds/${bondContract}/${chain}`\n track({\n event: 'projectInfoClick',\n chain: chain,\n data: {\n cat: 'Table',\n bond: earnTokenSymbol,\n bondChain: chain,\n },\n })\n }\n return (\n <Flex sx={{ flexDirection: 'column', flexWrap: 'wrap' }}>\n <ButtonsRow\n twitter={twitter}\n projectLink={projectLink}\n earnTokenContract={earnTokenContract}\n cgId={cgId}\n dexscreener={dexscreener}\n />\n {config?.referenceId === 'apebond' && !isSoldOut && billType !== 'fcfs' && (\n <Flex sx={{ width: '100%', my: '5px', justifyContent: 'center', position: 'relative', height: '25px' }}>\n <ExpandedViewButton handleNavigation={handleProjectViewNavigation} rightPos={'-5px'} />\n </Flex>\n )}\n <Flex sx={{ justifyContent: 'center' }}>\n <Flex sx={{ width: '144px', flexDirection: 'column' }}>\n <Flex sx={styles.linkRow}>\n {tokenLink && (\n <Link href={tokenLink} sx={styles.link} target=\"_blank\">\n View Token Contract\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"external\" color=\"text\" width={10} />\n </Flex>\n </Link>\n )}\n </Flex>\n <Flex sx={styles.linkRow}>\n {bondLink && (\n <Link href={bondLink} sx={styles.link} target=\"_blank\">\n View Bond Contract\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"external\" color=\"text\" width={10} />\n </Flex>\n </Link>\n )}\n </Flex>\n <Flex sx={styles.linkRow}>\n {billType !== 'fcfs' && (\n <Link href={bondDashboard} sx={styles.link} target=\"_blank\" rel=\"noopener noreferrer\">\n View Bond Insights\n <Flex sx={{ ml: '5px' }}>\n <Svg icon=\"external\" color=\"text\" width={10} />\n </Flex>\n </Link>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default BondInfoTooltip\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"APTOS.js","sources":["../../../../../src/components/uikit-sdk/Svg/tokens/APTOS.tsx"],"sourcesContent":["import React from 'react'\nimport { SvgProps } from '../types'\n\nconst APTOS: React.FC<SvgProps> = ({ width }) => {\n return (\n <svg\n width={width || '30'}\n height={width || '30'}\n viewBox=\"-5 -5 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect x=\"-5\" y=\"-5\" width=\"40\" height=\"40\" fill=\"#2D3134\" />\n <path\n d=\"M1.53 8.55C0.9 9.87 0.47 11.31 0.25 12.81H12.77L15.5 8.55H1.53Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M29.75 12.81C29.53 11.31 29.1 9.87 28.47 8.55H20.96L18.23 4.29H25.43C22.74 1.66 19.06 0.04 15 0.04C10.94 0.04 7.26 1.66 4.57 4.29H18.23L15.5 8.55L18.23 12.81H29.75Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M7.3 21.33L4.57 25.58C7.26 28.21 10.93 29.86 15 29.86C19.06 29.86 22.79 28.3 25.48 25.58H10.04L7.3 21.33Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M10.03 17.07H0.25C0.47 18.57 0.9 20 1.53 21.32H7.3L10.03 17.07Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M12.77 21.33H28.47C29.1 20 29.53 18.57 29.75 17.07H15.5L12.77 12.81L10.03 17.07\"\n fill=\"#fff\"\n />\n </svg>\n )\n}\n\nexport default APTOS\n"],"names":["_jsxs","_jsx"],"mappings":";;AAGA,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,EAAE,KAAI;IAC9C,QACEA,cACE,KAAK,EAAE,KAAK,IAAI,IAAI,EACpB,MAAM,EAAE,KAAK,IAAI,IAAI,EACrB,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAElCC,cAAM,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAA,CAAG,EAC5DA,GAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,iEAAiE,EACnE,IAAI,EAAC,MAAM,EAAA,CACX,EACFA,GAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,sKAAsK,EACxK,IAAI,EAAC,MAAM,EAAA,CACX,EACFA,cACE,CAAC,EAAC,2GAA2G,EAC7G,IAAI,EAAC,MAAM,EAAA,CACX,EACFA,cACE,CAAC,EAAC,iEAAiE,EACnE,IAAI,EAAC,MAAM,EAAA,CACX,EACFA,cACE,CAAC,EAAC,iFAAiF,EACnF,IAAI,EAAC,MAAM,EAAA,CACX,CAAA,EAAA,CACE;AAEV;;;;"}
1
+ {"version":3,"file":"APTOS.js","sources":["../../../../../src/components/uikit-sdk/Svg/tokens/APTOS.tsx"],"sourcesContent":["import React from 'react'\nimport { SvgProps } from '../types'\n\nconst APTOS: React.FC<SvgProps> = ({ width }) => {\n return (\n <svg\n width={width || '30'}\n height={width || '30'}\n viewBox=\"-5 -5 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect x=\"-5\" y=\"-5\" width=\"40\" height=\"40\" fill=\"#2D3134\" />\n <path d=\"M1.53 8.55C0.9 9.87 0.47 11.31 0.25 12.81H12.77L15.5 8.55H1.53Z\" fill=\"#fff\" />\n <path\n d=\"M29.75 12.81C29.53 11.31 29.1 9.87 28.47 8.55H20.96L18.23 4.29H25.43C22.74 1.66 19.06 0.04 15 0.04C10.94 0.04 7.26 1.66 4.57 4.29H18.23L15.5 8.55L18.23 12.81H29.75Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M7.3 21.33L4.57 25.58C7.26 28.21 10.93 29.86 15 29.86C19.06 29.86 22.79 28.3 25.48 25.58H10.04L7.3 21.33Z\"\n fill=\"#fff\"\n />\n <path d=\"M10.03 17.07H0.25C0.47 18.57 0.9 20 1.53 21.32H7.3L10.03 17.07Z\" fill=\"#fff\" />\n <path d=\"M12.77 21.33H28.47C29.1 20 29.53 18.57 29.75 17.07H15.5L12.77 12.81L10.03 17.07\" fill=\"#fff\" />\n </svg>\n )\n}\n\nexport default APTOS\n"],"names":["_jsxs","_jsx"],"mappings":";;AAGA,MAAM,KAAK,GAAuB,CAAC,EAAE,KAAK,EAAE,KAAI;IAC9C,QACEA,cACE,KAAK,EAAE,KAAK,IAAI,IAAI,EACpB,MAAM,EAAE,KAAK,IAAI,IAAI,EACrB,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAElCC,cAAM,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAA,CAAG,EAC5DA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,iEAAiE,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,EACxFA,GAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,sKAAsK,EACxK,IAAI,EAAC,MAAM,EAAA,CACX,EACFA,cACE,CAAC,EAAC,2GAA2G,EAC7G,IAAI,EAAC,MAAM,EAAA,CACX,EACFA,cAAM,CAAC,EAAC,iEAAiE,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,EACxFA,cAAM,CAAC,EAAC,iFAAiF,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,CAAA,EAAA,CACpG;AAEV;;;;"}
@@ -1,6 +1,5 @@
1
1
  import { ChainId } from '@ape.swap/apeswap-lists';
2
2
  import { APTOS_FULLNODE_URL } from '../../constants/aptosConstants.js';
3
- import { SUI_FULLNODE_URL } from '../../constants/suiConstants.js';
4
3
 
5
4
  const PUBLIC_RPC_URLS = {
6
5
  [ChainId.BSC]: [
@@ -64,7 +63,7 @@ const PUBLIC_RPC_URLS = {
64
63
  // ChainId enum yet.
65
64
  [ChainId.APTOS]: [APTOS_FULLNODE_URL],
66
65
  // Sui fullnode — public RPC, no API key required (see suiConstants.ts).
67
- [ChainId.SUI]: [SUI_FULLNODE_URL],
66
+ [ChainId.SUI]: ['https://fullnode.mainnet.sui.io:443'],
68
67
  // SOL RPC is not public. Production URL (morning-autumn-dream) is domain-protected, development URL (ancient-cold-sailboat) is free, use with caution.
69
68
  [ChainId.SOL]: process.env.NODE_ENV === 'production'
70
69
  ? ['https://morning-autumn-dream.solana-mainnet.quiknode.pro/1ef6069950c798a43a112c0fe5eb157309427db8']
@@ -1 +1 @@
1
- {"version":3,"file":"networks.js","sources":["../../../src/config/constants/networks.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { APTOS_FULLNODE_URL } from '../../constants/aptosConstants'\nimport { SUI_FULLNODE_URL } from '../../constants/suiConstants'\n\nexport const PUBLIC_RPC_URLS: Partial<Record<ChainId, string[]>> = {\n [ChainId.BSC]: [\n 'https://bsc-dataseed.binance.org/',\n 'https://bsc-dataseed1.defibit.io',\n 'https://endpoints.omniatech.io/v1/bsc/mainnet/public',\n ],\n [ChainId.ARBITRUM]: ['https://arb1.arbitrum.io/rpc'],\n [ChainId.BSC_TESTNET]: ['https://data-seed-prebsc-2-s3.binance.org:8545/'],\n [ChainId.MATIC]: [\n 'https://polygon.drpc.org',\n 'https://1rpc.io/matic',\n 'https://polygon-rpc.com/', // this is now freemium\n 'https://polygon-mainnet.public.blastapi.io/',\n 'https://rpc-mainnet.matic.network',\n 'https://matic-mainnet.chainstacklabs.com',\n ],\n [ChainId.MAINNET]: [\n 'https://ethereum-rpc.publicnode.com',\n 'https://eth.drpc.org',\n 'https://eth-mainnet.public.blastapi.io',\n 'https://rpc.ankr.com/eth',\n ],\n [ChainId.TLOS]: ['https://mainnet.telos.net/evm'],\n [ChainId.INEVM]: ['https://mainnet.rpc.inevm.com/http'],\n [ChainId.SEPOLIA]: ['https://eth-sepolia-public.unifra.io'],\n [ChainId.LINEA]: [\n 'https://rpc.linea.build',\n 'https://linea.drpc.org',\n 'https://linea.blockpi.network/v1/rpc/public',\n 'https://linea.decubate.com',\n ],\n [ChainId.LIGHTLINK]: [\n 'https://replicator.phoenix.lightlink.io/rpc/v1',\n 'https://endpoints.omniatech.io/v1/lightlink/phoenix/public',\n ],\n [ChainId.IOTA]: ['https://json-rpc.evm.iotaledger.net/'],\n [ChainId.IOTA_TESTNET]: ['https://json-rpc.evm.testnet.iotaledger.net/'],\n [ChainId.BASE]: ['https://base-rpc.publicnode.com', 'https://mainnet.base.org'],\n [ChainId.GRAPHLINQ]: ['https://glq-dataseed.graphlinq.io'],\n [ChainId.AVAX]: ['https://avalanche-c-chain-rpc.publicnode.com', 'https://avax.meowrpc.com'],\n [ChainId.BLAST]: ['https://rpc.blast.io'],\n [ChainId.CROSSFI]: ['https://rpc.mainnet.ms'],\n [ChainId.MONAD_TESTNET]: ['https://testnet-rpc2.monad.xyz/52227f026fa8fac9e2014c58fbf5643369b3bfc6'],\n [ChainId.MONAD]: [\n 'https://rpc.monad.xyz',\n 'https://rpc1.monad.xyz',\n 'https://rpc2.monad.xyz',\n 'https://rpc3.monad.xyz',\n 'https://rpc4.monad.xyz',\n ],\n [ChainId.SONIC]: ['https://rpc.soniclabs.com'],\n [ChainId.BERACHAIN]: ['https://rpc.berachain.com', 'https://berachain.drpc.org'],\n [ChainId.KATANA]: ['https://rpc-katana.t.conduit.xyz/NRcSLqEG4Hw55GzTSu6Sratq94kKtUGfH'],\n [ChainId.UNICHAIN]: ['https://unichain-rpc.publicnode.com', 'https://unichain.drpc.org'],\n [ChainId.MEGAETH_TESTNET]: ['https://carrot.megaeth.com/rpc'],\n [ChainId.HYPEREVM]: ['https://rpc.hyperliquid.xyz/evm'],\n\n // Aptos fullnode — URL is clean; the API key goes in the Authorization\n // header, not as a query param (see aptosConstants.ts). The cast on\n // APTOS_CHAIN_ID is required because the synthetic id is not in the\n // ChainId enum yet.\n [ChainId.APTOS]: [APTOS_FULLNODE_URL],\n\n // Sui fullnode — public RPC, no API key required (see suiConstants.ts).\n [ChainId.SUI]: [SUI_FULLNODE_URL],\n\n // SOL RPC is not public. Production URL (morning-autumn-dream) is domain-protected, development URL (ancient-cold-sailboat) is free, use with caution.\n [ChainId.SOL]:\n process.env.NODE_ENV === 'production'\n ? ['https://morning-autumn-dream.solana-mainnet.quiknode.pro/1ef6069950c798a43a112c0fe5eb157309427db8']\n : [\n 'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',\n 'https://mainnet.helius-rpc.com/?api-key=d80b11e0-692f-4da0-91d6-830799c8c385',\n ], // mainnet\n // [ChainId.SOL]: ['https://devnet.helius-rpc.com/?api-key=095f6fc7-1be0-4d94-a737-4a5ee0d82ea5'], // devnet\n}\n\n// Multiple Helius SOL RPC endpoints for rotation\nexport const HELIUS_SOL_RPC_ENDPOINTS = [\n 'https://mainnet.helius-rpc.com/?api-key=d80b11e0-692f-4da0-91d6-830799c8c385', // apefede09@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=8631ce42-9000-490d-9ac3-f3a81de508b2', // apebond.design@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=c097651d-ae13-4ab4-ae4c-fef7e48d4561', // n0mbr3al3at0r10@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=a5c4ea36-fa6b-4bcc-a7a4-e10012b9ea7e', // RandomApe personal mail\n]\n\n// export const HELIUS_SOL_RPC_ENDPOINTS = ['https://devnet.helius-rpc.com/?api-key=095f6fc7-1be0-4d94-a737-4a5ee0d82ea5'] //devnet\n\n// Function to get a random Helius SOL RPC endpoint\nexport const getRandomHeliusRPC = (): string => {\n const randomIndex = Math.floor(Math.random() * HELIUS_SOL_RPC_ENDPOINTS.length)\n return HELIUS_SOL_RPC_ENDPOINTS[randomIndex]\n}\n\n// Keep the current export for backward compatibility\nexport const HELIUS_SOL_RPC = getRandomHeliusRPC()\n\n// Custom RPC registry — set by the consumer via the `customRPCS` prop\nlet _customRPCS: Partial<Record<ChainId, string[]>> = {}\n\nexport const setCustomRPCS = (urls: Partial<Record<ChainId, string[]>>) => {\n _customRPCS = urls\n}\n\nexport const getRPC = (chain: ChainId): string => {\n return _customRPCS?.[chain]?.[0] ?? (PUBLIC_RPC_URLS?.[chain]?.[0] as string)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networks.js","sources":["../../../src/config/constants/networks.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { APTOS_FULLNODE_URL } from '../../constants/aptosConstants'\n\nexport const PUBLIC_RPC_URLS: Partial<Record<ChainId, string[]>> = {\n [ChainId.BSC]: [\n 'https://bsc-dataseed.binance.org/',\n 'https://bsc-dataseed1.defibit.io',\n 'https://endpoints.omniatech.io/v1/bsc/mainnet/public',\n ],\n [ChainId.ARBITRUM]: ['https://arb1.arbitrum.io/rpc'],\n [ChainId.BSC_TESTNET]: ['https://data-seed-prebsc-2-s3.binance.org:8545/'],\n [ChainId.MATIC]: [\n 'https://polygon.drpc.org',\n 'https://1rpc.io/matic',\n 'https://polygon-rpc.com/', // this is now freemium\n 'https://polygon-mainnet.public.blastapi.io/',\n 'https://rpc-mainnet.matic.network',\n 'https://matic-mainnet.chainstacklabs.com',\n ],\n [ChainId.MAINNET]: [\n 'https://ethereum-rpc.publicnode.com',\n 'https://eth.drpc.org',\n 'https://eth-mainnet.public.blastapi.io',\n 'https://rpc.ankr.com/eth',\n ],\n [ChainId.TLOS]: ['https://mainnet.telos.net/evm'],\n [ChainId.INEVM]: ['https://mainnet.rpc.inevm.com/http'],\n [ChainId.SEPOLIA]: ['https://eth-sepolia-public.unifra.io'],\n [ChainId.LINEA]: [\n 'https://rpc.linea.build',\n 'https://linea.drpc.org',\n 'https://linea.blockpi.network/v1/rpc/public',\n 'https://linea.decubate.com',\n ],\n [ChainId.LIGHTLINK]: [\n 'https://replicator.phoenix.lightlink.io/rpc/v1',\n 'https://endpoints.omniatech.io/v1/lightlink/phoenix/public',\n ],\n [ChainId.IOTA]: ['https://json-rpc.evm.iotaledger.net/'],\n [ChainId.IOTA_TESTNET]: ['https://json-rpc.evm.testnet.iotaledger.net/'],\n [ChainId.BASE]: ['https://base-rpc.publicnode.com', 'https://mainnet.base.org'],\n [ChainId.GRAPHLINQ]: ['https://glq-dataseed.graphlinq.io'],\n [ChainId.AVAX]: ['https://avalanche-c-chain-rpc.publicnode.com', 'https://avax.meowrpc.com'],\n [ChainId.BLAST]: ['https://rpc.blast.io'],\n [ChainId.CROSSFI]: ['https://rpc.mainnet.ms'],\n [ChainId.MONAD_TESTNET]: ['https://testnet-rpc2.monad.xyz/52227f026fa8fac9e2014c58fbf5643369b3bfc6'],\n [ChainId.MONAD]: [\n 'https://rpc.monad.xyz',\n 'https://rpc1.monad.xyz',\n 'https://rpc2.monad.xyz',\n 'https://rpc3.monad.xyz',\n 'https://rpc4.monad.xyz',\n ],\n [ChainId.SONIC]: ['https://rpc.soniclabs.com'],\n [ChainId.BERACHAIN]: ['https://rpc.berachain.com', 'https://berachain.drpc.org'],\n [ChainId.KATANA]: ['https://rpc-katana.t.conduit.xyz/NRcSLqEG4Hw55GzTSu6Sratq94kKtUGfH'],\n [ChainId.UNICHAIN]: ['https://unichain-rpc.publicnode.com', 'https://unichain.drpc.org'],\n [ChainId.MEGAETH_TESTNET]: ['https://carrot.megaeth.com/rpc'],\n [ChainId.HYPEREVM]: ['https://rpc.hyperliquid.xyz/evm'],\n\n // Aptos fullnode — URL is clean; the API key goes in the Authorization\n // header, not as a query param (see aptosConstants.ts). The cast on\n // APTOS_CHAIN_ID is required because the synthetic id is not in the\n // ChainId enum yet.\n [ChainId.APTOS]: [APTOS_FULLNODE_URL],\n\n // Sui fullnode — public RPC, no API key required (see suiConstants.ts).\n [ChainId.SUI]: ['https://fullnode.mainnet.sui.io:443'],\n\n // SOL RPC is not public. Production URL (morning-autumn-dream) is domain-protected, development URL (ancient-cold-sailboat) is free, use with caution.\n [ChainId.SOL]:\n process.env.NODE_ENV === 'production'\n ? ['https://morning-autumn-dream.solana-mainnet.quiknode.pro/1ef6069950c798a43a112c0fe5eb157309427db8']\n : [\n 'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',\n 'https://mainnet.helius-rpc.com/?api-key=d80b11e0-692f-4da0-91d6-830799c8c385',\n ], // mainnet\n // [ChainId.SOL]: ['https://devnet.helius-rpc.com/?api-key=095f6fc7-1be0-4d94-a737-4a5ee0d82ea5'], // devnet\n}\n\n// Multiple Helius SOL RPC endpoints for rotation\nexport const HELIUS_SOL_RPC_ENDPOINTS = [\n 'https://mainnet.helius-rpc.com/?api-key=d80b11e0-692f-4da0-91d6-830799c8c385', // apefede09@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=8631ce42-9000-490d-9ac3-f3a81de508b2', // apebond.design@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=c097651d-ae13-4ab4-ae4c-fef7e48d4561', // n0mbr3al3at0r10@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=a5c4ea36-fa6b-4bcc-a7a4-e10012b9ea7e', // RandomApe personal mail\n]\n\n// export const HELIUS_SOL_RPC_ENDPOINTS = ['https://devnet.helius-rpc.com/?api-key=095f6fc7-1be0-4d94-a737-4a5ee0d82ea5'] //devnet\n\n// Function to get a random Helius SOL RPC endpoint\nexport const getRandomHeliusRPC = (): string => {\n const randomIndex = Math.floor(Math.random() * HELIUS_SOL_RPC_ENDPOINTS.length)\n return HELIUS_SOL_RPC_ENDPOINTS[randomIndex]\n}\n\n// Keep the current export for backward compatibility\nexport const HELIUS_SOL_RPC = getRandomHeliusRPC()\n\n// Custom RPC registry — set by the consumer via the `customRPCS` prop\nlet _customRPCS: Partial<Record<ChainId, string[]>> = {}\n\nexport const setCustomRPCS = (urls: Partial<Record<ChainId, string[]>>) => {\n _customRPCS = urls\n}\n\nexport const getRPC = (chain: ChainId): string => {\n return _customRPCS?.[chain]?.[0] ?? (PUBLIC_RPC_URLS?.[chain]?.[0] as string)\n}\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,6 @@
1
- export interface SuiZapToken {
2
- symbol: string;
3
- name: string;
4
- address: string;
5
- decimals: number;
6
- logoUrl?: string;
7
- }
8
- export declare const SUI_ZAP_TOKENS: SuiZapToken[];
9
- export declare const getSuiZapTokens: () => SuiZapToken[];
1
+ import { Token } from '@ape.swap/apeswap-lists';
10
2
  /**
11
3
  * Find a zap token by its address. Includes SUI even though it's not in the
12
4
  * selector list (NATIVE resolves to SUI for quote purposes).
13
5
  */
14
- export declare const findSuiZapToken: (address: string | undefined) => SuiZapToken | undefined;
6
+ export declare const findSuiZapToken: (address: string | undefined) => Token | undefined;
@@ -1,4 +1,4 @@
1
- import '../../constants/suiConstants.js';
1
+ import { ChainId, zapInputTokens } from '@ape.swap/apeswap-lists';
2
2
 
3
3
  // =============================================================================
4
4
  // Sui zap tokens — static list of tokens available for zap on Sui
@@ -12,31 +12,14 @@ import '../../constants/suiConstants.js';
12
12
  // Including it would cause a duplicate in the token selector.
13
13
  //
14
14
  // TODO(sui): Move to @ape.swap/apeswap-lists when it supports Sui.
15
- // MAINNET-TODO: Verify these coin type addresses match your mainnet tokens.
16
- const SUI_ZAP_TOKENS_MAINNET = [
17
- {
18
- symbol: 'USDC',
19
- name: 'USD Coin',
20
- address: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC',
21
- decimals: 6,
22
- },
23
- {
24
- symbol: 'USDT',
25
- name: 'Tether USD',
26
- address: '0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN',
27
- decimals: 6,
28
- },
29
- {
30
- symbol: 'wETH',
31
- name: 'Wrapped Ether',
32
- address: '0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN',
33
- decimals: 8,
34
- },
35
- ];
36
- const SUI_ZAP_TOKENS = SUI_ZAP_TOKENS_MAINNET ;
37
15
  // SUI entry used only by findSuiZapToken for zap quote resolution.
38
16
  // Not in SUI_ZAP_TOKENS to avoid duplicate in the selector (NATIVE covers it).
39
- const SUI_TOKEN = { symbol: 'SUI', name: 'Sui', address: '0x2::sui::SUI', decimals: 9 };
17
+ const SUI_TOKEN = {
18
+ symbol: 'SUI',
19
+ address: { [ChainId.SUI]: '0x2::sui::SUI' },
20
+ decimals: { [ChainId.SUI]: 9 },
21
+ active: true,
22
+ };
40
23
  /**
41
24
  * Find a zap token by its address. Includes SUI even though it's not in the
42
25
  * selector list (NATIVE resolves to SUI for quote purposes).
@@ -46,8 +29,8 @@ const findSuiZapToken = (address) => {
46
29
  return undefined;
47
30
  if (address.toLowerCase() === '0x2::sui::sui')
48
31
  return SUI_TOKEN;
49
- return SUI_ZAP_TOKENS.find((t) => t.address.toLowerCase() === address.toLowerCase());
32
+ return zapInputTokens?.[ChainId.SUI]?.find((t) => t.address[ChainId.SUI]?.toLowerCase() === address.toLowerCase());
50
33
  };
51
34
 
52
- export { SUI_ZAP_TOKENS, findSuiZapToken };
35
+ export { findSuiZapToken };
53
36
  //# sourceMappingURL=suiZapTokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"suiZapTokens.js","sources":["../../../src/config/constants/suiZapTokens.ts"],"sourcesContent":["// =============================================================================\n// Sui zap tokens — static list of tokens available for zap on Sui\n// =============================================================================\n//\n// Equivalent to zapInputTokens[ChainId.SOL] from @ape.swap/apeswap-lists.\n// Until that package supports Sui, we maintain this local list.\n//\n// SUI native is NOT included here — it is covered by the 'NATIVE' entry that\n// useSortedZapList injects automatically (via WNATIVE[ChainId.SUI]).\n// Including it would cause a duplicate in the token selector.\n//\n// TODO(sui): Move to @ape.swap/apeswap-lists when it supports Sui.\n\nimport { IS_SUI_MAINNET, SUI_PACKAGE_ID } from '../../constants/suiConstants'\n\nexport interface SuiZapToken {\n symbol: string\n name: string\n address: string\n decimals: number\n logoUrl?: string\n}\n\nconst SUI_ZAP_TOKENS_TESTNET: SuiZapToken[] = [\n {\n symbol: 'tUSDC',\n name: 'Test USDC',\n address: `${SUI_PACKAGE_ID}::test_principal_token::TEST_PRINCIPAL_TOKEN`,\n decimals: 6,\n },\n]\n\n// MAINNET-TODO: Verify these coin type addresses match your mainnet tokens.\nconst SUI_ZAP_TOKENS_MAINNET: SuiZapToken[] = [\n {\n symbol: 'USDC',\n name: 'USD Coin',\n address: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC',\n decimals: 6,\n },\n {\n symbol: 'USDT',\n name: 'Tether USD',\n address: '0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN',\n decimals: 6,\n },\n {\n symbol: 'wETH',\n name: 'Wrapped Ether',\n address: '0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN',\n decimals: 8,\n },\n]\n\nexport const SUI_ZAP_TOKENS: SuiZapToken[] = IS_SUI_MAINNET ? SUI_ZAP_TOKENS_MAINNET : SUI_ZAP_TOKENS_TESTNET\n\nexport const getSuiZapTokens = (): SuiZapToken[] => SUI_ZAP_TOKENS\n\n// SUI entry used only by findSuiZapToken for zap quote resolution.\n// Not in SUI_ZAP_TOKENS to avoid duplicate in the selector (NATIVE covers it).\nconst SUI_TOKEN: SuiZapToken = { symbol: 'SUI', name: 'Sui', address: '0x2::sui::SUI', decimals: 9 }\n\n/**\n * Find a zap token by its address. Includes SUI even though it's not in the\n * selector list (NATIVE resolves to SUI for quote purposes).\n */\nexport const findSuiZapToken = (address: string | undefined): SuiZapToken | undefined => {\n if (!address) return undefined\n if (address.toLowerCase() === '0x2::sui::sui') return SUI_TOKEN\n return SUI_ZAP_TOKENS.find((t) => t.address.toLowerCase() === address.toLowerCase())\n}\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqBA;AACA,MAAM,sBAAsB,GAAkB;AAC5C,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,gFAAgF;AACzF,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,OAAO,EAAE,gFAAgF;AACzF,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,OAAO,EAAE,gFAAgF;AACzF,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;CACF;AAEM,MAAM,cAAc,GAAmC,sBAAsB;AAIpF;AACA;AACA,MAAM,SAAS,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE;AAEpG;;;AAGG;AACI,MAAM,eAAe,GAAG,CAAC,OAA2B,KAA6B;AACtF,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,SAAS;AAC9B,IAAA,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe;AAAE,QAAA,OAAO,SAAS;IAC/D,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;AACtF;;;;"}
1
+ {"version":3,"file":"suiZapTokens.js","sources":["../../../src/config/constants/suiZapTokens.ts"],"sourcesContent":["// =============================================================================\n// Sui zap tokens — static list of tokens available for zap on Sui\n// =============================================================================\n//\n// Equivalent to zapInputTokens[ChainId.SOL] from @ape.swap/apeswap-lists.\n// Until that package supports Sui, we maintain this local list.\n//\n// SUI native is NOT included here — it is covered by the 'NATIVE' entry that\n// useSortedZapList injects automatically (via WNATIVE[ChainId.SUI]).\n// Including it would cause a duplicate in the token selector.\n//\n// TODO(sui): Move to @ape.swap/apeswap-lists when it supports Sui.\n\nimport { ChainId, Token, zapInputTokens } from '@ape.swap/apeswap-lists'\n\n// SUI entry used only by findSuiZapToken for zap quote resolution.\n// Not in SUI_ZAP_TOKENS to avoid duplicate in the selector (NATIVE covers it).\nconst SUI_TOKEN: Token = {\n symbol: 'SUI',\n address: { [ChainId.SUI]: '0x2::sui::SUI' },\n decimals: { [ChainId.SUI]: 9 },\n active: true,\n}\n\n/**\n * Find a zap token by its address. Includes SUI even though it's not in the\n * selector list (NATIVE resolves to SUI for quote purposes).\n */\nexport const findSuiZapToken = (address: string | undefined): Token | undefined => {\n if (!address) return undefined\n if (address.toLowerCase() === '0x2::sui::sui') return SUI_TOKEN\n return zapInputTokens?.[ChainId.SUI]?.find((t) => t.address[ChainId.SUI]?.toLowerCase() === address.toLowerCase())\n}\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA,MAAM,SAAS,GAAU;AACvB,IAAA,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,EAAE;IAC3C,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE;AAC9B,IAAA,MAAM,EAAE,IAAI;CACb;AAED;;;AAGG;AACI,MAAM,eAAe,GAAG,CAAC,OAA2B,KAAuB;AAChF,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,SAAS;AAC9B,IAAA,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe;AAAE,QAAA,OAAO,SAAS;AAC/D,IAAA,OAAO,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;AACpH;;;;"}
@@ -1,7 +1,6 @@
1
1
  import { zapInputTokens, ChainId, WNATIVE } from '@ape.swap/apeswap-lists';
2
2
  export { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists';
3
3
  import { APTOS_ZAP_TOKENS } from './aptosZapTokens.js';
4
- import { SUI_ZAP_TOKENS } from './suiZapTokens.js';
5
4
 
6
5
  // Inject Aptos zap tokens into the shared zapInputTokens map so the existing
7
6
  // TokenSelectorModal / useSortedZapList infrastructure picks them up.
@@ -24,17 +23,6 @@ if (!WNATIVE[ChainId.APTOS]) {
24
23
  decimals: { [ChainId.APTOS]: 8 },
25
24
  };
26
25
  }
27
- // Inject Sui zap tokens into the shared zapInputTokens map so the existing
28
- // TokenSelectorModal / useSortedZapList infrastructure picks them up.
29
- // TODO(sui): Remove these runtime patches once @ape.swap/apeswap-lists ships Sui natively.
30
- if (!zapInputTokens[ChainId.SUI]) {
31
- zapInputTokens[ChainId.SUI] = SUI_ZAP_TOKENS.map((t) => ({
32
- symbol: t.symbol,
33
- address: { [ChainId.SUI]: t.address },
34
- active: true,
35
- decimals: { [ChainId.SUI]: t.decimals },
36
- }));
37
- }
38
26
  // Inject WNATIVE for Sui so useSortedZapList / getNativeTicker resolve SUI.
39
27
  // SUI is not a wrapped token, but the infrastructure expects a WNATIVE entry.
40
28
  if (!WNATIVE[ChainId.SUI]) {
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sources":["../../../src/config/constants/tokens.ts"],"sourcesContent":["import { ChainId, Token, WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { APTOS_ZAP_TOKENS } from './aptosZapTokens'\nimport { SUI_ZAP_TOKENS } from './suiZapTokens'\n\n// Inject Aptos zap tokens into the shared zapInputTokens map so the existing\n// TokenSelectorModal / useSortedZapList infrastructure picks them up.\n// TODO(aptos): Remove these runtime patches once @ape.swap/apeswap-lists ships Aptos natively.\nif (!zapInputTokens[ChainId.APTOS]) {\n ;(zapInputTokens as Record<number, Token[]>)[ChainId.APTOS] = APTOS_ZAP_TOKENS.map((t) => ({\n symbol: t.symbol,\n address: { [ChainId.APTOS]: t.faAddress } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.APTOS]: t.decimals } as Partial<Record<ChainId, number | null>>,\n }))\n}\n\n// Inject WNATIVE for Aptos so useSortedZapList / getNativeTicker resolve APT.\n// APT is not a wrapped token, but the infrastructure expects a WNATIVE entry.\nif (!WNATIVE[ChainId.APTOS]) {\n ;(WNATIVE as Record<number, Token>)[ChainId.APTOS] = {\n symbol: 'WAPT',\n address: { [ChainId.APTOS]: '0xa' } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.APTOS]: 8 } as Partial<Record<ChainId, number | null>>,\n }\n}\n\n// Inject Sui zap tokens into the shared zapInputTokens map so the existing\n// TokenSelectorModal / useSortedZapList infrastructure picks them up.\n// TODO(sui): Remove these runtime patches once @ape.swap/apeswap-lists ships Sui natively.\nif (!zapInputTokens[ChainId.SUI]) {\n ;(zapInputTokens as Record<number, Token[]>)[ChainId.SUI] = SUI_ZAP_TOKENS.map((t) => ({\n symbol: t.symbol,\n address: { [ChainId.SUI]: t.address } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.SUI]: t.decimals } as Partial<Record<ChainId, number | null>>,\n }))\n}\n\n// Inject WNATIVE for Sui so useSortedZapList / getNativeTicker resolve SUI.\n// SUI is not a wrapped token, but the infrastructure expects a WNATIVE entry.\nif (!WNATIVE[ChainId.SUI]) {\n ;(WNATIVE as Record<number, Token>)[ChainId.SUI] = {\n symbol: 'WSUI',\n address: { [ChainId.SUI]: '0x2::sui::SUI' } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.SUI]: 9 } as Partial<Record<ChainId, number | null>>,\n }\n}\n\nexport { WNATIVE, zapInputTokens }\n"],"names":[],"mappings":";;;;;AAIA;AACA;AACA;AACA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,IAAA,cAA0C,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;QACzF,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,EAAsC;AAC7E,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAA6C;AACrF,KAAA,CAAC,CAAC;AACL;AAEA;AACA;AACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,IAAA,OAAiC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;AACnD,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,EAAsC;AACvE,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAA6C;KAC5E;AACH;AAEA;AACA;AACA;AACA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9B,IAAA,cAA0C,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAsC;AACzE,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAA6C;AACnF,KAAA,CAAC,CAAC;AACL;AAEA;AACA;AACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvB,IAAA,OAAiC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;AACjD,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,EAAsC;AAC/E,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAA6C;KAC1E;AACH"}
1
+ {"version":3,"file":"tokens.js","sources":["../../../src/config/constants/tokens.ts"],"sourcesContent":["import { ChainId, Token, WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { APTOS_ZAP_TOKENS } from './aptosZapTokens'\n\n// Inject Aptos zap tokens into the shared zapInputTokens map so the existing\n// TokenSelectorModal / useSortedZapList infrastructure picks them up.\n// TODO(aptos): Remove these runtime patches once @ape.swap/apeswap-lists ships Aptos natively.\nif (!zapInputTokens[ChainId.APTOS]) {\n ;(zapInputTokens as Record<number, Token[]>)[ChainId.APTOS] = APTOS_ZAP_TOKENS.map((t) => ({\n symbol: t.symbol,\n address: { [ChainId.APTOS]: t.faAddress } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.APTOS]: t.decimals } as Partial<Record<ChainId, number | null>>,\n }))\n}\n\n// Inject WNATIVE for Aptos so useSortedZapList / getNativeTicker resolve APT.\n// APT is not a wrapped token, but the infrastructure expects a WNATIVE entry.\nif (!WNATIVE[ChainId.APTOS]) {\n ;(WNATIVE as Record<number, Token>)[ChainId.APTOS] = {\n symbol: 'WAPT',\n address: { [ChainId.APTOS]: '0xa' } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.APTOS]: 8 } as Partial<Record<ChainId, number | null>>,\n }\n}\n\n// Inject WNATIVE for Sui so useSortedZapList / getNativeTicker resolve SUI.\n// SUI is not a wrapped token, but the infrastructure expects a WNATIVE entry.\nif (!WNATIVE[ChainId.SUI]) {\n ;(WNATIVE as Record<number, Token>)[ChainId.SUI] = {\n symbol: 'WSUI',\n address: { [ChainId.SUI]: '0x2::sui::SUI' } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.SUI]: 9 } as Partial<Record<ChainId, number | null>>,\n }\n}\n\nexport { WNATIVE, zapInputTokens }\n"],"names":[],"mappings":";;;;AAGA;AACA;AACA;AACA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,IAAA,cAA0C,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;QACzF,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,EAAsC;AAC7E,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAA6C;AACrF,KAAA,CAAC,CAAC;AACL;AAEA;AACA;AACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,IAAA,OAAiC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;AACnD,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,EAAsC;AACvE,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAA6C;KAC5E;AACH;AAEA;AACA;AACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvB,IAAA,OAAiC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;AACjD,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,EAAsC;AAC/E,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAA6C;KAC1E;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltips.js","sources":["../../../src/config/constants/tooltips.ts"],"sourcesContent":["//TODO: remove this shit\n\nexport const TooltipText = {\n Discount: 'This is the percentage of additional tokens you’ll get based on the current bond’s bonus.',\n ARR: 'This is the Annualized Rate of Return you would receive considering the current bonus, adjusted for APR.',\n Terms: 'This is the amount of days it will take for all tokens in the Bond to fully vest.',\n TokensRemaining: 'This is the amount of remaining tokens for sale in this Bond.',\n MaxBuy: (payoutToken: string) =>\n `This is the maximum amount of ${payoutToken} you can currently purchase through this Bond.`,\n Premium: 'This is the dollar value of the bonus tokens you’ll receive at current market price.',\n Fee: 'This is the platform fee (2%).',\n Boost: 'This is the dollar value of the additional tokens you’ll receive thanks to your Ape Tier at current market price.',\n}\n\nexport const PromotionTooltipText = {\n welcomeBonus: {\n header: 'Your first purchase is eligible for a Welcome Bonus boost of 5%!',\n boost: 'Your first purchase is eligible for a Welcome Bonus boost of 5%!',\n },\n}\n\ntype PromotionTooltipContent = {\n header: string\n boost: string\n}\n\nconst DEFAULT_PROMOTION_TOOLTIP_CONTENT: PromotionTooltipContent = {\n header: '',\n boost: TooltipText.Boost,\n}\n\nconst PROMOTION_TOOLTIP_CONTENT: Partial<Record<string, PromotionTooltipContent>> = {\n 'welcome bonus': PromotionTooltipText.welcomeBonus,\n}\n\nconst getPromotionTooltipContent = (promotion?: string | null): PromotionTooltipContent => {\n if (!promotion) return DEFAULT_PROMOTION_TOOLTIP_CONTENT\n return PROMOTION_TOOLTIP_CONTENT[promotion] ?? DEFAULT_PROMOTION_TOOLTIP_CONTENT\n}\n\nexport const getBoostTooltipText = (promotion?: string | null) => getPromotionTooltipContent(promotion).boost\n\nexport const getHeaderPromotionTooltipText = (promotion?: string | null) =>\n getPromotionTooltipContent(promotion).header\n\nexport const UserBillTooltipText = {\n FullyVested: 'This is the time remaining until all tokens from the bond are available to claim.',\n Pending: 'This is the amount of unvested tokens that cannot be claimed yet.',\n Claimable: 'This is the amount of tokens that have vested and are available to claim.',\n YouSpent: 'This is the dollar amount you spent on the bond at the time of purchase.',\n Claimed: 'This is the amount of tokens that you have already claimed.',\n}\n"],"names":[],"mappings":"AAAA;AAEO,MAAM,WAAW,GAAG;AACzB,IAAA,QAAQ,EAAE,2FAA2F;AACrG,IAAA,GAAG,EAAE,0GAA0G;AAC/G,IAAA,KAAK,EAAE,mFAAmF;AAC1F,IAAA,eAAe,EAAE,+DAA+D;IAChF,MAAM,EAAE,CAAC,WAAmB,KAC1B,CAAA,8BAAA,EAAiC,WAAW,CAAA,8CAAA,CAAgD;AAC9F,IAAA,OAAO,EAAE,sFAAsF;AAC/F,IAAA,GAAG,EAAE,gCAAgC;AACrC,IAAA,KAAK,EAAE,mHAAmH;;AAGrH,MAAM,oBAAoB,GAAG;AAClC,IAAA,YAAY,EAAE;AACZ,QAAA,MAAM,EAAE,kEAAkE;AAC1E,QAAA,KAAK,EAAE,kEAAkE;AAC1E,KAAA;;AAQH,MAAM,iCAAiC,GAA4B;AACjE,IAAA,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,WAAW,CAAC,KAAK;CACzB;AAED,MAAM,yBAAyB,GAAqD;IAClF,eAAe,EAAE,oBAAoB,CAAC,YAAY;CACnD;AAED,MAAM,0BAA0B,GAAG,CAAC,SAAyB,KAA6B;AACxF,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,iCAAiC;AACxD,IAAA,OAAO,yBAAyB,CAAC,SAAS,CAAC,IAAI,iCAAiC;AAClF,CAAC;AAEM,MAAM,mBAAmB,GAAG,CAAC,SAAyB,KAAK,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAEjG,MAAM,6BAA6B,GAAG,CAAC,SAAyB,KACrE,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAEjC,MAAM,mBAAmB,GAAG;AACjC,IAAA,WAAW,EAAE,mFAAmF;AAChG,IAAA,OAAO,EAAE,mEAAmE;AAC5E,IAAA,SAAS,EAAE,2EAA2E;AACtF,IACA,OAAO,EAAE,6DAA6D;;;;;"}
1
+ {"version":3,"file":"tooltips.js","sources":["../../../src/config/constants/tooltips.ts"],"sourcesContent":["//TODO: remove this shit\n\nexport const TooltipText = {\n Discount: 'This is the percentage of additional tokens you’ll get based on the current bond’s bonus.',\n ARR: 'This is the Annualized Rate of Return you would receive considering the current bonus, adjusted for APR.',\n Terms: 'This is the amount of days it will take for all tokens in the Bond to fully vest.',\n TokensRemaining: 'This is the amount of remaining tokens for sale in this Bond.',\n MaxBuy: (payoutToken: string) =>\n `This is the maximum amount of ${payoutToken} you can currently purchase through this Bond.`,\n Premium: 'This is the dollar value of the bonus tokens you’ll receive at current market price.',\n Fee: 'This is the platform fee (2%).',\n Boost:\n 'This is the dollar value of the additional tokens you’ll receive thanks to your Ape Tier at current market price.',\n}\n\nexport const PromotionTooltipText = {\n welcomeBonus: {\n header: 'Your first purchase is eligible for a Welcome Bonus boost of 5%!',\n boost: 'Your first purchase is eligible for a Welcome Bonus boost of 5%!',\n },\n}\n\ntype PromotionTooltipContent = {\n header: string\n boost: string\n}\n\nconst DEFAULT_PROMOTION_TOOLTIP_CONTENT: PromotionTooltipContent = {\n header: '',\n boost: TooltipText.Boost,\n}\n\nconst PROMOTION_TOOLTIP_CONTENT: Partial<Record<string, PromotionTooltipContent>> = {\n 'welcome bonus': PromotionTooltipText.welcomeBonus,\n}\n\nconst getPromotionTooltipContent = (promotion?: string | null): PromotionTooltipContent => {\n if (!promotion) return DEFAULT_PROMOTION_TOOLTIP_CONTENT\n return PROMOTION_TOOLTIP_CONTENT[promotion] ?? DEFAULT_PROMOTION_TOOLTIP_CONTENT\n}\n\nexport const getBoostTooltipText = (promotion?: string | null) => getPromotionTooltipContent(promotion).boost\n\nexport const getHeaderPromotionTooltipText = (promotion?: string | null) => getPromotionTooltipContent(promotion).header\n\nexport const UserBillTooltipText = {\n FullyVested: 'This is the time remaining until all tokens from the bond are available to claim.',\n Pending: 'This is the amount of unvested tokens that cannot be claimed yet.',\n Claimable: 'This is the amount of tokens that have vested and are available to claim.',\n YouSpent: 'This is the dollar amount you spent on the bond at the time of purchase.',\n Claimed: 'This is the amount of tokens that you have already claimed.',\n}\n"],"names":[],"mappings":"AAAA;AAEO,MAAM,WAAW,GAAG;AACzB,IAAA,QAAQ,EAAE,2FAA2F;AACrG,IAAA,GAAG,EAAE,0GAA0G;AAC/G,IAAA,KAAK,EAAE,mFAAmF;AAC1F,IAAA,eAAe,EAAE,+DAA+D;IAChF,MAAM,EAAE,CAAC,WAAmB,KAC1B,CAAA,8BAAA,EAAiC,WAAW,CAAA,8CAAA,CAAgD;AAC9F,IAAA,OAAO,EAAE,sFAAsF;AAC/F,IAAA,GAAG,EAAE,gCAAgC;AACrC,IAAA,KAAK,EACH,mHAAmH;;AAGhH,MAAM,oBAAoB,GAAG;AAClC,IAAA,YAAY,EAAE;AACZ,QAAA,MAAM,EAAE,kEAAkE;AAC1E,QAAA,KAAK,EAAE,kEAAkE;AAC1E,KAAA;;AAQH,MAAM,iCAAiC,GAA4B;AACjE,IAAA,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,WAAW,CAAC,KAAK;CACzB;AAED,MAAM,yBAAyB,GAAqD;IAClF,eAAe,EAAE,oBAAoB,CAAC,YAAY;CACnD;AAED,MAAM,0BAA0B,GAAG,CAAC,SAAyB,KAA6B;AACxF,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,iCAAiC;AACxD,IAAA,OAAO,yBAAyB,CAAC,SAAS,CAAC,IAAI,iCAAiC;AAClF,CAAC;AAEM,MAAM,mBAAmB,GAAG,CAAC,SAAyB,KAAK,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAEjG,MAAM,6BAA6B,GAAG,CAAC,SAAyB,KAAK,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAE3G,MAAM,mBAAmB,GAAG;AACjC,IAAA,WAAW,EAAE,mFAAmF;AAChG,IAAA,OAAO,EAAE,mEAAmE;AAC5E,IAAA,SAAS,EAAE,2EAA2E;AACtF,IACA,OAAO,EAAE,6DAA6D;;;;;"}
@@ -1,7 +1,6 @@
1
1
  export declare const IS_SUI_MAINNET = true;
2
2
  export declare const SUI_NETWORK: 'mainnet' | 'testnet';
3
3
  export declare const SUI_PACKAGE_ID: string;
4
- export declare const SUI_FULLNODE_URL: string;
5
4
  export declare const SUI_BOND_MODULE: string;
6
5
  export declare const SUI_DEPOSIT_FUNCTION: string;
7
6
  export declare const SUI_CLAIM_FUNCTION: string;
@@ -15,12 +15,6 @@ if (typeof window !== 'undefined' &&
15
15
  console.warn('[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +
16
16
  'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.');
17
17
  }
18
- // ---------------------------------------------------------------------------
19
- // Network endpoints (fullnode + explorer)
20
- // ---------------------------------------------------------------------------
21
- // Sui public RPC does not require API keys.
22
- const SUI_FULLNODE_URL = 'https://fullnode.mainnet.sui.io:443'
23
- ;
24
18
  // Entry functions (write path)
25
19
  const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`;
26
20
  const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`;
@@ -29,5 +23,5 @@ const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`;
29
23
  // ---------------------------------------------------------------------------
30
24
  const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg';
31
25
 
32
- export { IS_SUI_MAINNET, SUI_CLAIM_FUNCTION, SUI_DEPOSIT_FUNCTION, SUI_FULLNODE_URL, SUI_PACKAGE_ID, SUI_PLACEHOLDER_BILL_IMAGE };
26
+ export { IS_SUI_MAINNET, SUI_CLAIM_FUNCTION, SUI_DEPOSIT_FUNCTION, SUI_PACKAGE_ID, SUI_PLACEHOLDER_BILL_IMAGE };
33
27
  //# sourceMappingURL=suiConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"suiConstants.js","sources":["../../src/constants/suiConstants.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_SUI_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_SUI_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_SUI_MAINNET = true\n\nexport const SUI_NETWORK: 'mainnet' | 'testnet' = IS_SUI_MAINNET ? 'mainnet' : 'testnet'\n\n// ---------------------------------------------------------------------------\n// Package ID (single Move package containing bond, factory, treasury modules)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move-sui deployment.\n// MAINNET-TODO: Replace with your mainnet package ID after deploying contracts.\nconst SUI_PACKAGE_ID_TESTNET = '0x50c08fbf9c330f7658e1400f847f46b76165c8a68630e09a2d5ade0ceaa47264'\nconst SUI_PACKAGE_ID_MAINNET = '0x802ed2854f6523fc106644da079e0758ca759f63d9d577774b79c51b91f1a460'\n\nexport const SUI_PACKAGE_ID = IS_SUI_MAINNET ? SUI_PACKAGE_ID_MAINNET : SUI_PACKAGE_ID_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Sui interaction.\nif (\n typeof window !== 'undefined' &&\n IS_SUI_MAINNET &&\n SUI_PACKAGE_ID === SUI_PACKAGE_ID_MAINNET &&\n SUI_PACKAGE_ID_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +\n 'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Network endpoints (fullnode + explorer)\n// ---------------------------------------------------------------------------\n// Sui public RPC does not require API keys.\nexport const SUI_FULLNODE_URL = IS_SUI_MAINNET\n ? 'https://fullnode.mainnet.sui.io:443'\n : 'https://fullnode.testnet.sui.io:443'\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `SUI_PACKAGE_ID` so each path follows the\n// `package::module::function` convention used by the Sui Move VM.\nexport const SUI_BOND_MODULE = `${SUI_PACKAGE_ID}::bond`\n\n// Entry functions (write path)\nexport const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`\nexport const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`\n\n// View / read functions\nexport const SUI_VIEW_MARKET_INFO = `${SUI_PACKAGE_ID}::bond::market_info`\nexport const SUI_VIEW_BILL_INFO = `${SUI_PACKAGE_ID}::bond::bill_info`\nexport const SUI_VIEW_VESTING_PROGRESS = `${SUI_PACKAGE_ID}::bond::vesting_progress`\nexport const SUI_VIEW_USER_BILLS = `${SUI_PACKAGE_ID}::bond_nft::user_bills`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG;AAU9B,MAAM,sBAAsB,GAAG,oEAAoE;AAE5F,MAAM,cAAc,GAAoB,sBAAsB;AAErE;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,cAAc;AACd,IAAA,cAAc,KAAK,sBAAsB;AACzC,IAAA,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3C;IACA,OAAO,CAAC,IAAI,CACV,uEAAuE;AACrE,QAAA,kFAAkF,CACrF;AACH;AAEA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,GACzB;;AAUJ;AACO,MAAM,oBAAoB,GAAG,CAAA,EAAG,cAAc;AAC9C,MAAM,kBAAkB,GAAG,CAAA,EAAG,cAAc;AAQnD;AACA;AACA;AACO,MAAM,0BAA0B,GAAG;;;;"}
1
+ {"version":3,"file":"suiConstants.js","sources":["../../src/constants/suiConstants.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_SUI_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_SUI_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_SUI_MAINNET = true\n\nexport const SUI_NETWORK: 'mainnet' | 'testnet' = IS_SUI_MAINNET ? 'mainnet' : 'testnet'\n\n// ---------------------------------------------------------------------------\n// Package ID (single Move package containing bond, factory, treasury modules)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move-sui deployment.\n// MAINNET-TODO: Replace with your mainnet package ID after deploying contracts.\nconst SUI_PACKAGE_ID_TESTNET = '0x50c08fbf9c330f7658e1400f847f46b76165c8a68630e09a2d5ade0ceaa47264'\nconst SUI_PACKAGE_ID_MAINNET = '0x802ed2854f6523fc106644da079e0758ca759f63d9d577774b79c51b91f1a460'\n\nexport const SUI_PACKAGE_ID = IS_SUI_MAINNET ? SUI_PACKAGE_ID_MAINNET : SUI_PACKAGE_ID_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Sui interaction.\nif (\n typeof window !== 'undefined' &&\n IS_SUI_MAINNET &&\n SUI_PACKAGE_ID === SUI_PACKAGE_ID_MAINNET &&\n SUI_PACKAGE_ID_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +\n 'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `SUI_PACKAGE_ID` so each path follows the\n// `package::module::function` convention used by the Sui Move VM.\nexport const SUI_BOND_MODULE = `${SUI_PACKAGE_ID}::bond`\n\n// Entry functions (write path)\nexport const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`\nexport const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`\n\n// View / read functions\nexport const SUI_VIEW_MARKET_INFO = `${SUI_PACKAGE_ID}::bond::market_info`\nexport const SUI_VIEW_BILL_INFO = `${SUI_PACKAGE_ID}::bond::bill_info`\nexport const SUI_VIEW_VESTING_PROGRESS = `${SUI_PACKAGE_ID}::bond::vesting_progress`\nexport const SUI_VIEW_USER_BILLS = `${SUI_PACKAGE_ID}::bond_nft::user_bills`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG;AAU9B,MAAM,sBAAsB,GAAG,oEAAoE;AAE5F,MAAM,cAAc,GAAoB,sBAAsB;AAErE;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,cAAc;AACd,IAAA,cAAc,KAAK,sBAAsB;AACzC,IAAA,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3C;IACA,OAAO,CAAC,IAAI,CACV,uEAAuE;AACrE,QAAA,kFAAkF,CACrF;AACH;AASA;AACO,MAAM,oBAAoB,GAAG,CAAA,EAAG,cAAc;AAC9C,MAAM,kBAAkB,GAAG,CAAA,EAAG,cAAc;AAQnD;AACA;AACA;AACO,MAAM,0BAA0B,GAAG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMonitorTx.js","sources":["../../src/hooks/useMonitorTx.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { useWaitForTransactionReceipt } from 'wagmi'\nimport { useEffect } from 'react'\nimport { usePopups } from '../state/popups/usePopups'\nimport type { TransactionReceipt } from 'viem'\n\nexport const useMonitorTx = (txHash?: string | null, chainId?: ChainId): { isLoading: boolean; isSuccess: boolean; data: TransactionReceipt | undefined } => {\n const { addToastError, addToastSuccess } = usePopups()\n const transactionReceipt = useWaitForTransactionReceipt({\n confirmations: 0,\n chainId: chainId,\n hash: txHash as `0x${string}`,\n })\n const { isLoading, isSuccess: isConfirmed, error, isError, data } = transactionReceipt ?? {}\n\n useEffect(() => {\n if (txHash && isError) {\n addToastError(error.message, txHash, chainId)\n }\n if (txHash && isConfirmed) {\n addToastSuccess(txHash, chainId)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, isError, isConfirmed, isLoading])\n\n return { isLoading: txHash ? isLoading : false, isSuccess: txHash ? isConfirmed : false, data }\n}\n"],"names":[],"mappings":";;;;MAMa,YAAY,GAAG,CAAC,MAAsB,EAAE,OAAiB,KAAsF;IAC1J,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE;IACtD,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AACtD,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,MAAuB;AAC9B,KAAA,CAAC;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,IAAI,EAAE;IAE5F,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,IAAI,OAAO,EAAE;YACrB,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QAC/C;AACA,QAAA,IAAI,MAAM,IAAI,WAAW,EAAE;AACzB,YAAA,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC;;IAEF,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE;AACjG;;;;"}
1
+ {"version":3,"file":"useMonitorTx.js","sources":["../../src/hooks/useMonitorTx.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { useWaitForTransactionReceipt } from 'wagmi'\nimport { useEffect } from 'react'\nimport { usePopups } from '../state/popups/usePopups'\nimport type { TransactionReceipt } from 'viem'\n\nexport const useMonitorTx = (\n txHash?: string | null,\n chainId?: ChainId,\n): { isLoading: boolean; isSuccess: boolean; data: TransactionReceipt | undefined } => {\n const { addToastError, addToastSuccess } = usePopups()\n const transactionReceipt = useWaitForTransactionReceipt({\n confirmations: 0,\n chainId: chainId,\n hash: txHash as `0x${string}`,\n })\n const { isLoading, isSuccess: isConfirmed, error, isError, data } = transactionReceipt ?? {}\n\n useEffect(() => {\n if (txHash && isError) {\n addToastError(error.message, txHash, chainId)\n }\n if (txHash && isConfirmed) {\n addToastSuccess(txHash, chainId)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, isError, isConfirmed, isLoading])\n\n return { isLoading: txHash ? isLoading : false, isSuccess: txHash ? isConfirmed : false, data }\n}\n"],"names":[],"mappings":";;;;MAMa,YAAY,GAAG,CAC1B,MAAsB,EACtB,OAAiB,KACmE;IACpF,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE;IACtD,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AACtD,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,MAAuB;AAC9B,KAAA,CAAC;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,IAAI,EAAE;IAE5F,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,IAAI,OAAO,EAAE;YACrB,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QAC/C;AACA,QAAA,IAAI,MAAM,IAAI,WAAW,EAAE;AACzB,YAAA,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC;;IAEF,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE;AACjG;;;;"}
@@ -72,7 +72,7 @@ async function fetchUserOwnedAptosBonds(user, bondData, tokenPrices, priceApiUrl
72
72
  principalPrice = parseFloat(res.data.price ?? '0');
73
73
  }
74
74
  catch {
75
- principalPrice = 1.0;
75
+ principalPrice = 0;
76
76
  }
77
77
  }
78
78
  if (payoutPrice === undefined && priceApiUrl) {
@@ -81,7 +81,7 @@ async function fetchUserOwnedAptosBonds(user, bondData, tokenPrices, priceApiUrl
81
81
  payoutPrice = parseFloat(res.data.price ?? '0');
82
82
  }
83
83
  catch {
84
- payoutPrice = 0.05;
84
+ payoutPrice = 0;
85
85
  }
86
86
  }
87
87
  const payoutTotal = String(billInfo.payout ?? '0');