@ape.swap/bonds-sdk 6.2.8 → 6.2.10

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 (73) hide show
  1. package/README.md +2 -3
  2. package/dist/components/CustomClaimModals/PostClaimModal.d.ts +8 -0
  3. package/dist/components/CustomClaimModals/PostClaimModal.js +15 -0
  4. package/dist/components/CustomClaimModals/PostClaimModal.js.map +1 -0
  5. package/dist/components/uikit-sdk/Svg/Icons/L1X.d.ts +4 -0
  6. package/dist/components/uikit-sdk/Svg/Icons/L1X.js +8 -0
  7. package/dist/components/uikit-sdk/Svg/Icons/L1X.js.map +1 -0
  8. package/dist/config/constants/addresses.js +1 -0
  9. package/dist/config/constants/addresses.js.map +1 -1
  10. package/dist/config/constants/chains.js +6 -0
  11. package/dist/config/constants/chains.js.map +1 -1
  12. package/dist/config/constants/networks.js +1 -0
  13. package/dist/config/constants/networks.js.map +1 -1
  14. package/dist/hooks/useSendReferenceId.js +2 -2
  15. package/dist/hooks/useSendReferenceId.js.map +1 -1
  16. package/dist/state/bondApiStats/useGetBondApiStats.js +2 -3
  17. package/dist/state/bondApiStats/useGetBondApiStats.js.map +1 -1
  18. package/dist/state/bonds/fetchBondsData/cleanBillsData.js +7 -7
  19. package/dist/state/bonds/fetchBondsData/cleanBillsData.js.map +1 -1
  20. package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js +5 -5
  21. package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js.map +1 -1
  22. package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js +5 -5
  23. package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js.map +1 -1
  24. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsAptos.js +5 -5
  25. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsAptos.js.map +1 -1
  26. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js +7 -7
  27. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +1 -1
  28. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSOL.js +7 -7
  29. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSOL.js.map +1 -1
  30. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSUI.js +5 -5
  31. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSUI.js.map +1 -1
  32. package/dist/state/bonds/useBondsData.js +3 -3
  33. package/dist/state/bonds/useBondsData.js.map +1 -1
  34. package/dist/state/bonds/useBondsList.js +2 -3
  35. package/dist/state/bonds/useBondsList.js.map +1 -1
  36. package/dist/state/bonds/useBondsListPreTGE.js +2 -3
  37. package/dist/state/bonds/useBondsListPreTGE.js.map +1 -1
  38. package/dist/state/bonds/useTierProofSignature.js +3 -3
  39. package/dist/state/bonds/useTierProofSignature.js.map +1 -1
  40. package/dist/state/bonds/useUserBonds.js +4 -4
  41. package/dist/state/bonds/useUserBonds.js.map +1 -1
  42. package/dist/state/hotBonds/useHotBonds.js +3 -3
  43. package/dist/state/hotBonds/useHotBonds.js.map +1 -1
  44. package/dist/state/recommendations/useGetBondRecommendations.js +2 -2
  45. package/dist/state/recommendations/useGetBondRecommendations.js.map +1 -1
  46. package/dist/state/tokenPrices/useTokenPrices.js +2 -3
  47. package/dist/state/tokenPrices/useTokenPrices.js.map +1 -1
  48. package/dist/state/zap/useAptosZapQuote.js +2 -3
  49. package/dist/state/zap/useAptosZapQuote.js.map +1 -1
  50. package/dist/state/zap/useSoulZapBondQuote.js +3 -3
  51. package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
  52. package/dist/state/zap/useSuiZapQuote.js +2 -3
  53. package/dist/state/zap/useSuiZapQuote.js.map +1 -1
  54. package/dist/utils/httpClient.d.ts +11 -0
  55. package/dist/utils/httpClient.js +48 -0
  56. package/dist/utils/httpClient.js.map +1 -0
  57. package/dist/views/BuyBond/BuyComponentSui.js +2 -3
  58. package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
  59. package/dist/views/ProjectView/components/BondStats/LineChart.d.ts +10 -0
  60. package/dist/views/ProjectView/components/BondStats/LineChart.js +150 -0
  61. package/dist/views/ProjectView/components/BondStats/LineChart.js.map +1 -0
  62. package/dist/views/ProjectView/components/BondStats/index.js +17 -44
  63. package/dist/views/ProjectView/components/BondStats/index.js.map +1 -1
  64. package/dist/views/ProjectView/components/BondStats/types.d.ts +2 -37
  65. package/dist/views/ProjectView/components/BondStats/types.js +1 -28
  66. package/dist/views/ProjectView/components/BondStats/types.js.map +1 -1
  67. package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js +5 -0
  68. package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js.map +1 -1
  69. package/dist/views/YourBondsModal/components/Actions/Actions.js +5 -0
  70. package/dist/views/YourBondsModal/components/Actions/Actions.js.map +1 -1
  71. package/dist/views/YourBondsModal/components/LinkShare/utils.js +8 -7
  72. package/dist/views/YourBondsModal/components/LinkShare/utils.js.map +1 -1
  73. package/package.json +2 -6
package/README.md CHANGED
@@ -21,13 +21,13 @@ To install the package via npm or yarn, run the following command:
21
21
  npm:
22
22
 
23
23
  ```bash
24
- npm install "@ape.swap/bonds-sdk@solana" @bigmi/react@^0.6.5 @lifi/widget@^3.40.6 @mysten/dapp-kit@^0.19.11 @solana/kit@2.3.0 @solana/spl-token@^0.4.14 @solana/wallet-adapter-react@^0.15.39 @solana/wallet-adapter-react-ui@^0.9.39 @solana/web3.js@^1.98.4 @tanstack/react-query@^5.90.2 axios@^1.8.2 wagmi@^2.14.16 swiper
24
+ npm install "@ape.swap/bonds-sdk@solana" @bigmi/react@^0.6.5 @lifi/widget@^3.40.6 @mysten/dapp-kit@^0.19.11 @solana/kit@2.3.0 @solana/spl-token@^0.4.14 @solana/wallet-adapter-react@^0.15.39 @solana/wallet-adapter-react-ui@^0.9.39 @solana/web3.js@^1.98.4 @tanstack/react-query@^5.90.2 wagmi@^2.14.16 swiper
25
25
  ```
26
26
 
27
27
  yarn:
28
28
 
29
29
  ```bash
30
- yarn add "@ape.swap/bonds-sdk@solana" @bigmi/react@^0.6.5 @lifi/widget@^3.40.6 @mysten/dapp-kit@^0.19.11 @solana/kit@2.3.0 @solana/spl-token@^0.4.14 @solana/wallet-adapter-react@^0.15.39 @solana/wallet-adapter-react-ui@^0.9.39 @solana/web3.js@^1.98.4 @tanstack/react-query@^5.90.2 axios@^1.8.2 wagmi@^2.14.16 swiper
30
+ yarn add "@ape.swap/bonds-sdk@solana" @bigmi/react@^0.6.5 @lifi/widget@^3.40.6 @mysten/dapp-kit@^0.19.11 @solana/kit@2.3.0 @solana/spl-token@^0.4.14 @solana/wallet-adapter-react@^0.15.39 @solana/wallet-adapter-react-ui@^0.9.39 @solana/web3.js@^1.98.4 @tanstack/react-query@^5.90.2 wagmi@^2.14.16 swiper
31
31
  ```
32
32
 
33
33
  ---
@@ -48,7 +48,6 @@ The following are some key dependencies you must have for the SDK to work proper
48
48
  - **@solana/wallet-adapter-react-ui** (^0.9.39): Pre-built UI components for Solana wallet connections.
49
49
  - **@solana/web3.js** (^1.98.4): Core library for interacting with the Solana blockchain.
50
50
  - **@tanstack/react-query** (^5.90.2): Powerful data synchronization and caching library for React applications.
51
- - **Axios** (^1.8.2): Promise-based HTTP client for making API requests.
52
51
 
53
52
  Optional:
54
53
 
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ declare const PostClaimModal: ({ tokenSymbol, text, imgUrl, ctaUrl, }: {
3
+ tokenSymbol: string;
4
+ text: string;
5
+ imgUrl: string;
6
+ ctaUrl: string;
7
+ }) => React.JSX.Element;
8
+ export default PostClaimModal;
@@ -0,0 +1,15 @@
1
+ import { jsx, jsxs } from 'theme-ui/jsx-runtime';
2
+ import { Image } from 'theme-ui';
3
+ import Modal from '../uikit-sdk/Modal/index.js';
4
+ import Flex from '../uikit-sdk/Flex/index.js';
5
+ import Button from '../uikit-sdk/Button/Button.js';
6
+
7
+ const PostClaimModal = ({ tokenSymbol, text, imgUrl, ctaUrl, }) => {
8
+ const handleClick = () => {
9
+ window.open(ctaUrl, '_blank');
10
+ };
11
+ return (jsx(Modal, { title: `You've Claimed ${tokenSymbol}!`, children: jsxs(Flex, { sx: { flexDirection: 'column' }, children: [jsx(Flex, { sx: { fontSize: '12px', lineHeight: '20px', color: 'primaryButton', mt: '10px' }, children: "Did You Know?" }), jsxs(Flex, { sx: { flexDirection: 'column', gap: '10px' }, children: [jsx(Flex, { children: text }), jsx(Image, { src: imgUrl, onClick: handleClick, sx: { cursor: 'pointer' } }), jsx(Button, { sx: { width: '100%', mt: '10px' }, onClick: handleClick, children: "Claim now" })] })] }) }));
12
+ };
13
+
14
+ export { PostClaimModal as default };
15
+ //# sourceMappingURL=PostClaimModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostClaimModal.js","sources":["../../../src/components/CustomClaimModals/PostClaimModal.tsx"],"sourcesContent":["import React from 'react'\nimport { Image } from 'theme-ui'\nimport Modal from '../uikit-sdk/Modal'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\n\nconst PostClaimModal = ({\n tokenSymbol,\n text,\n imgUrl,\n ctaUrl,\n}: {\n tokenSymbol: string\n text: string\n imgUrl: string\n ctaUrl: string\n}) => {\n const handleClick = () => {\n window.open(ctaUrl, '_blank')\n }\n\n return (\n <Modal title={`You've Claimed ${tokenSymbol}!`}>\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ fontSize: '12px', lineHeight: '20px', color: 'primaryButton', mt: '10px' }}>Did You Know?</Flex>\n <Flex sx={{ flexDirection: 'column', gap: '10px' }}>\n <Flex>{text}</Flex>\n <Image src={imgUrl} onClick={handleClick} sx={{ cursor: 'pointer' }} />\n <Button sx={{ width: '100%', mt: '10px' }} onClick={handleClick}>\n Claim now\n </Button>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default PostClaimModal\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAMA,MAAM,cAAc,GAAG,CAAC,EACtB,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,GAMP,KAAI;IACH,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC/B,IAAA,CAAC;IAED,QACEA,GAAA,CAAC,KAAK,EAAA,EAAC,KAAK,EAAE,CAAA,eAAA,EAAkB,WAAW,CAAA,CAAA,CAAG,EAAA,QAAA,EAC5CC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACnCD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,eAAA,EAAA,CAAsB,EAC5GC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAChDD,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,IAAI,EAAA,CAAQ,EACnBA,GAAA,CAAC,KAAK,IAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,CAAI,EACvEA,GAAA,CAAC,MAAM,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAA,QAAA,EAAA,WAAA,EAAA,CAEtD,CAAA,EAAA,CACJ,CAAA,EAAA,CACF,EAAA,CACD;AAEZ;;;;"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { SvgProps } from '../types';
3
+ declare const L1X: React.FC<SvgProps>;
4
+ export default L1X;
@@ -0,0 +1,8 @@
1
+ import { jsxs, jsx } from 'theme-ui/jsx-runtime';
2
+
3
+ const L1X = ({ width }) => {
4
+ return (jsxs("svg", { width: width || '26', height: width || '26', viewBox: "0 0 26 26", fill: "NONE", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M11.4577 25.5775H14.1197V18.6122H11.4577V25.5775ZM18.6819 14.1198H25.5775V11.4577H18.6819V14.1198ZM0 14.1198H7.03501V11.4577H0V14.1198ZM14.1939 9.50128C13.4175 10.2776 12.16 10.2776 11.3836 9.50128L4.68705 2.80471L2.80471 4.68705L9.50131 11.3836C10.2777 12.16 10.2777 13.4175 9.50131 14.1939L2.80471 20.8905L4.68705 22.7728L11.3836 16.0762C12.16 15.2998 13.4175 15.2998 14.1939 16.0762L20.8905 22.7728L22.7728 20.8905L16.0762 14.1939C15.3009 13.4175 15.3009 12.16 16.0762 11.3836L22.7728 4.68705L20.8905 2.80471L14.1939 9.50128ZM11.4577 6.9642H14.1197V0H11.4577V6.96533V6.9642Z", fill: "url(#paint0_linear_3110_5599)" }), jsx("defs", { children: jsxs("linearGradient", { id: "paint0_linear_3110_5599", x1: "13.2283", y1: "0.321661", x2: "13.2283", y2: "25.8991", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "#7900FF" }), jsx("stop", { offset: "0.07", stopColor: "#890CE2" }), jsx("stop", { offset: "0.2", stopColor: "#A824AC" }), jsx("stop", { offset: "0.34", stopColor: "#C2387F" }), jsx("stop", { offset: "0.47", stopColor: "#D84959" }), jsx("stop", { offset: "0.61", stopColor: "#E9563C" }), jsx("stop", { offset: "0.74", stopColor: "#F55F27" }), jsx("stop", { offset: "0.87", stopColor: "#FC651B" }), jsx("stop", { offset: "1", stopColor: "#FF6717" })] }) })] }));
5
+ };
6
+
7
+ export { L1X as default };
8
+ //# sourceMappingURL=L1X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"L1X.js","sources":["../../../../../src/components/uikit-sdk/Svg/Icons/L1X.tsx"],"sourcesContent":["import React from 'react'\nimport { SvgProps } from '../types'\n\nconst L1X: React.FC<SvgProps> = ({ width }) => {\n return (\n <svg\n width={width || '26'}\n height={width || '26'}\n viewBox=\"0 0 26 26\"\n fill=\"NONE\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4577 25.5775H14.1197V18.6122H11.4577V25.5775ZM18.6819 14.1198H25.5775V11.4577H18.6819V14.1198ZM0 14.1198H7.03501V11.4577H0V14.1198ZM14.1939 9.50128C13.4175 10.2776 12.16 10.2776 11.3836 9.50128L4.68705 2.80471L2.80471 4.68705L9.50131 11.3836C10.2777 12.16 10.2777 13.4175 9.50131 14.1939L2.80471 20.8905L4.68705 22.7728L11.3836 16.0762C12.16 15.2998 13.4175 15.2998 14.1939 16.0762L20.8905 22.7728L22.7728 20.8905L16.0762 14.1939C15.3009 13.4175 15.3009 12.16 16.0762 11.3836L22.7728 4.68705L20.8905 2.80471L14.1939 9.50128ZM11.4577 6.9642H14.1197V0H11.4577V6.96533V6.9642Z\"\n fill=\"url(#paint0_linear_3110_5599)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_3110_5599\"\n x1=\"13.2283\"\n y1=\"0.321661\"\n x2=\"13.2283\"\n y2=\"25.8991\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#7900FF\" />\n <stop offset=\"0.07\" stopColor=\"#890CE2\" />\n <stop offset=\"0.2\" stopColor=\"#A824AC\" />\n <stop offset=\"0.34\" stopColor=\"#C2387F\" />\n <stop offset=\"0.47\" stopColor=\"#D84959\" />\n <stop offset=\"0.61\" stopColor=\"#E9563C\" />\n <stop offset=\"0.74\" stopColor=\"#F55F27\" />\n <stop offset=\"0.87\" stopColor=\"#FC651B\" />\n <stop offset=\"1\" stopColor=\"#FF6717\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nexport default L1X\n"],"names":["_jsxs","_jsx"],"mappings":";;AAGA,MAAM,GAAG,GAAuB,CAAC,EAAE,KAAK,EAAE,KAAI;AAC5C,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,KAAK,IAAI,IAAI,EACpB,MAAM,EAAE,KAAK,IAAI,IAAI,EACrB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAElCC,GAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,mkBAAmkB,EACrkB,IAAI,EAAC,+BAA+B,EAAA,CACpC,EACFA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACED,IAAA,CAAA,gBAAA,EAAA,EACE,EAAE,EAAC,yBAAyB,EAC5B,EAAE,EAAC,SAAS,EACZ,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,SAAS,EACZ,EAAE,EAAC,SAAS,EACZ,aAAa,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAE9BC,cAAM,SAAS,EAAC,SAAS,EAAA,CAAG,EAC5BA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAC1CA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,GAAG,EACzCA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,GAAG,EAC1CA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,GAAG,EAC1CA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAC1CA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAC1CA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAC1CA,GAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,GAAG,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,CAAA,EAAA,CACxB,EAAA,CACZ,CAAA,EAAA,CACH;AAEV;;;;"}
@@ -30,6 +30,7 @@ const MULTICALL_V2 = {
30
30
  [ChainId.HYPEREVM]: '0xcA11bde05977b3631167028862bE2a173976CA11',
31
31
  [ChainId.BITTENSOR_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',
32
32
  [ChainId.ROBINHOOD]: '0xcA11bde05977b3631167028862bE2a173976CA11',
33
+ [ChainId.L1X]: '0x04476AdDf4B7C36e870D177db63B5e11380A834F',
33
34
  };
34
35
  const SOUL_ZAP_TOKEN_MANAGER = '0x372F055470ef14EB79AfA1e1Ae301629FE1E050F';
35
36
  const SoulZapTokenManager = {
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.js","sources":["../../../src/config/constants/addresses.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { ZapSupportedChainId } from './variables'\n\ntype AddressMap = { [chainId: number]: string }\n\nexport const ABOND_ADDRESSES = {\n [ChainId.BSC]: '0x34294AfABCbaFfc616ac6614F6d2e17260b78BEd',\n}\n\nexport const MULTICALL_V2: AddressMap = {\n [ChainId.BSC]: '0x38ce767d81de3940CFa5020B55af1A400ED4F657',\n [ChainId.BSC_TESTNET]: '0x67ADCB4dF3931b0C5Da724058ADC2174a9844412',\n [ChainId.MATIC]: '0x95028E5B8a734bb7E2071F96De89BABe75be9C8E',\n [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [ChainId.TLOS]: '0xa1a283f10f578201a97a8f69d8c15828b778f04b',\n [ChainId.ARBITRUM]: '0x089d8780e1c0789d0ef786bf001bee52d8351cad',\n [ChainId.SEPOLIA]: '0x4170Ebf53bbA01eb45594ad6F090d7FE5407be68',\n [ChainId.INEVM]: '0x7039F6DDB900762c33842e406fB908EB8a03fB84',\n [ChainId.LINEA]: '0x3f6F9c727C9fdf70Fe56f6e22Bc4dcb75206a78c',\n [ChainId.LIGHTLINK]: '0xb9a543d7B7dF05C8845AeA6627dE4a6622Ac863C',\n [ChainId.IOTA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BASE]: '0xDF845ff2dA2325Df9C6CC3DDF7418C54E16bbFDF',\n [ChainId.GRAPHLINQ]: '0xCc88b233BbcE04c064C627ad5627da6e24a8A067',\n [ChainId.AVAX]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BLAST]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.CROSSFI]: '0x007bAC6A07894A69fBcA94ED6274005093E1c44E',\n [ChainId.MONAD_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MONAD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.SONIC]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BERACHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.KATANA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.UNICHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MEGAETH_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.HYPEREVM]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BITTENSOR_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.ROBINHOOD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n}\n\nconst SOUL_ZAP_TOKEN_MANAGER = '0x372F055470ef14EB79AfA1e1Ae301629FE1E050F'\n\nexport const SoulZapTokenManager: Partial<Record<ZapSupportedChainId, string>> = {\n [ChainId.MAINNET]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.MATIC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BSC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BASE]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ARBITRUM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.HYPEREVM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ROBINHOOD]: SOUL_ZAP_TOKEN_MANAGER,\n //\n // Chains below this point have not been re-deployed yet\n //\n // [ChainId.LINEA]: '',\n // [ChainId.AVAX]: '',\n // [ChainId.BLAST]: '',\n // [ChainId.BERACHAIN]: '',\n // [ChainId.SONIC]: '',\n // [ChainId.KATANA]: '',\n //\n // Chains bellow this point are just placeholders\n //\n [ChainId.SOL]: '', //placeholder for typecheck\n [ChainId.APTOS]: '', //placeholder for typecheck — Aptos zap uses Panora, not SoulZap\n [ChainId.SUI]: '', //placeholder for typecheck — Sui zap TBD0xB77eA97089Bf8B127732eaEf08E0019380fF70e6\n}\n\nexport const ACF_TO_ABOND: string = '0xEce2b9C3704632Ce760271B0b84E3A4A698Ca962'\n\nexport const LENS_CONTRACT = '0x6Fb7A34A271cc0F4016db6A3BAA6206757a9a164'\n"],"names":[],"mappings":";;AAKO,MAAM,eAAe,GAAG;AAC7B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;;AAGtD,MAAM,YAAY,GAAe;AACtC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;AAC3D,IAAA,CAAC,OAAO,CAAC,WAAW,GAAG,4CAA4C;AACnE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,4CAA4C;AACrE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,4CAA4C;AAC9D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,4CAA4C;AACvE,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,4CAA4C;AACzE,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;;AAGnE,MAAM,sBAAsB,GAAG,4CAA4C;AAEpE,MAAM,mBAAmB,GAAiD;AAC/E,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,sBAAsB;AACzC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,sBAAsB;AACvC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,sBAAsB;AACrC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,sBAAsB;AACtC,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,sBAAsB;AAC1C,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,sBAAsB;AAC1C,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,sBAAsB;;;;;;;;;;;;;AAa3C,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;AACjB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AACnB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;;AAGZ,MAAM,YAAY,GAAW;AAE7B,MAAM,aAAa,GAAG;;;;"}
1
+ {"version":3,"file":"addresses.js","sources":["../../../src/config/constants/addresses.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { ZapSupportedChainId } from './variables'\n\ntype AddressMap = { [chainId: number]: string }\n\nexport const ABOND_ADDRESSES = {\n [ChainId.BSC]: '0x34294AfABCbaFfc616ac6614F6d2e17260b78BEd',\n}\n\nexport const MULTICALL_V2: AddressMap = {\n [ChainId.BSC]: '0x38ce767d81de3940CFa5020B55af1A400ED4F657',\n [ChainId.BSC_TESTNET]: '0x67ADCB4dF3931b0C5Da724058ADC2174a9844412',\n [ChainId.MATIC]: '0x95028E5B8a734bb7E2071F96De89BABe75be9C8E',\n [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [ChainId.TLOS]: '0xa1a283f10f578201a97a8f69d8c15828b778f04b',\n [ChainId.ARBITRUM]: '0x089d8780e1c0789d0ef786bf001bee52d8351cad',\n [ChainId.SEPOLIA]: '0x4170Ebf53bbA01eb45594ad6F090d7FE5407be68',\n [ChainId.INEVM]: '0x7039F6DDB900762c33842e406fB908EB8a03fB84',\n [ChainId.LINEA]: '0x3f6F9c727C9fdf70Fe56f6e22Bc4dcb75206a78c',\n [ChainId.LIGHTLINK]: '0xb9a543d7B7dF05C8845AeA6627dE4a6622Ac863C',\n [ChainId.IOTA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BASE]: '0xDF845ff2dA2325Df9C6CC3DDF7418C54E16bbFDF',\n [ChainId.GRAPHLINQ]: '0xCc88b233BbcE04c064C627ad5627da6e24a8A067',\n [ChainId.AVAX]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BLAST]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.CROSSFI]: '0x007bAC6A07894A69fBcA94ED6274005093E1c44E',\n [ChainId.MONAD_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MONAD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.SONIC]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BERACHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.KATANA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.UNICHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MEGAETH_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.HYPEREVM]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BITTENSOR_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.ROBINHOOD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.L1X]: '0x04476AdDf4B7C36e870D177db63B5e11380A834F',\n}\n\nconst SOUL_ZAP_TOKEN_MANAGER = '0x372F055470ef14EB79AfA1e1Ae301629FE1E050F'\n\nexport const SoulZapTokenManager: Partial<Record<ZapSupportedChainId, string>> = {\n [ChainId.MAINNET]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.MATIC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BSC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BASE]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ARBITRUM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.HYPEREVM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ROBINHOOD]: SOUL_ZAP_TOKEN_MANAGER,\n //\n // Chains below this point have not been re-deployed yet\n //\n // [ChainId.LINEA]: '',\n // [ChainId.AVAX]: '',\n // [ChainId.BLAST]: '',\n // [ChainId.BERACHAIN]: '',\n // [ChainId.SONIC]: '',\n // [ChainId.KATANA]: '',\n //\n // Chains bellow this point are just placeholders\n //\n [ChainId.SOL]: '', //placeholder for typecheck\n [ChainId.APTOS]: '', //placeholder for typecheck — Aptos zap uses Panora, not SoulZap\n [ChainId.SUI]: '', //placeholder for typecheck — Sui zap TBD0xB77eA97089Bf8B127732eaEf08E0019380fF70e6\n}\n\nexport const ACF_TO_ABOND: string = '0xEce2b9C3704632Ce760271B0b84E3A4A698Ca962'\n\nexport const LENS_CONTRACT = '0x6Fb7A34A271cc0F4016db6A3BAA6206757a9a164'\n"],"names":[],"mappings":";;AAKO,MAAM,eAAe,GAAG;AAC7B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;;AAGtD,MAAM,YAAY,GAAe;AACtC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;AAC3D,IAAA,CAAC,OAAO,CAAC,WAAW,GAAG,4CAA4C;AACnE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,4CAA4C;AACrE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,4CAA4C;AAC9D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,4CAA4C;AACvE,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,4CAA4C;AACzE,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;;AAG7D,MAAM,sBAAsB,GAAG,4CAA4C;AAEpE,MAAM,mBAAmB,GAAiD;AAC/E,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,sBAAsB;AACzC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,sBAAsB;AACvC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,sBAAsB;AACrC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,sBAAsB;AACtC,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,sBAAsB;AAC1C,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,sBAAsB;AAC1C,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,sBAAsB;;;;;;;;;;;;;AAa3C,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;AACjB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AACnB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;;AAGZ,MAAM,YAAY,GAAW;AAE7B,MAAM,aAAa,GAAG;;;;"}
@@ -27,6 +27,7 @@ import APTOS from '../../components/uikit-sdk/Svg/tokens/APTOS.js';
27
27
  import SUI from '../../components/uikit-sdk/Svg/tokens/SUI.js';
28
28
  import BitTensor from '../../components/uikit-sdk/Svg/Icons/BitTensor.js';
29
29
  import Robinhood from '../../components/uikit-sdk/Svg/Icons/Robinhood.js';
30
+ import L1X from '../../components/uikit-sdk/Svg/Icons/L1X.js';
30
31
 
31
32
  // These are the lists we will display to the user
32
33
  const MAINNET_CHAINS = [
@@ -54,6 +55,7 @@ const MAINNET_CHAINS = [
54
55
  ChainId.HYPEREVM,
55
56
  ChainId.BITTENSOR_TESTNET,
56
57
  ChainId.ROBINHOOD,
58
+ ChainId.L1X,
57
59
  ];
58
60
  const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET];
59
61
  // Network Icons
@@ -86,6 +88,7 @@ const NETWORK_ICONS = {
86
88
  [ChainId.SUI]: SUI,
87
89
  [ChainId.BITTENSOR_TESTNET]: BitTensor,
88
90
  [ChainId.ROBINHOOD]: Robinhood,
91
+ [ChainId.L1X]: L1X,
89
92
  };
90
93
  // Network labels
91
94
  const NETWORK_LABEL = {
@@ -119,6 +122,7 @@ const NETWORK_LABEL = {
119
122
  [ChainId.SUI]: 'Sui',
120
123
  [ChainId.BITTENSOR_TESTNET]: 'Bittensor Testnet',
121
124
  [ChainId.ROBINHOOD]: 'Robinhood',
125
+ [ChainId.L1X]: 'Layer 1X',
122
126
  };
123
127
  const SHORT_NETWORK_LABEL = {
124
128
  [ChainId.BSC]: 'BNB',
@@ -145,6 +149,7 @@ const SHORT_NETWORK_LABEL = {
145
149
  [ChainId.SUI]: 'Sui',
146
150
  [ChainId.BITTENSOR_TESTNET]: 'Bitt',
147
151
  [ChainId.ROBINHOOD]: 'Robin',
152
+ [ChainId.L1X]: 'L1X',
148
153
  };
149
154
  // Network block explorers
150
155
  const BLOCK_EXPLORER = {
@@ -178,6 +183,7 @@ const BLOCK_EXPLORER = {
178
183
  [ChainId.SUI]: 'https://suiscan.xyz/mainnet',
179
184
  [ChainId.BITTENSOR_TESTNET]: 'https://evm-testscan.dev.opentensor.ai',
180
185
  [ChainId.ROBINHOOD]: 'https://robinhoodchain.blockscout.com',
186
+ [ChainId.L1X]: 'https://explorer.l1xapp.com',
181
187
  };
182
188
 
183
189
  export { BLOCK_EXPLORER, MAINNET_CHAINS, NETWORK_ICONS, NETWORK_LABEL, SHORT_NETWORK_LABEL, TESTNET_CHAINS };
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sources":["../../../src/config/constants/chains.ts"],"sourcesContent":["// Network chain ids\nimport type React from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n// Ensure the ChainId.APTOS and ChainId.SUI runtime patches run before the maps below evaluate\nimport '../../constants/aptosConstants'\nimport '../../constants/suiConstants'\nimport { SvgProps } from '../../components/uikit-sdk/Svg/types'\nimport BNB from '../../components/uikit-sdk/Svg/tokens/BNB'\nimport POLYGON from '../../components/uikit-sdk/Svg/tokens/POLYGON'\nimport ETH from '../../components/uikit-sdk/Svg/tokens/ETH'\nimport TLOS from '../../components/uikit-sdk/Svg/tokens/TLOS'\nimport ARBITRUM from '../../components/uikit-sdk/Svg/tokens/ARBITRUM'\nimport INEVM from '../../components/uikit-sdk/Svg/tokens/INEVM'\nimport LINEA from '../../components/uikit-sdk/Svg/tokens/LINEA'\nimport LIGHTLINK from '../../components/uikit-sdk/Svg/tokens/LIGHTLINK'\nimport IOTA from '../../components/uikit-sdk/Svg/tokens/IOTA'\nimport BASE from '../../components/uikit-sdk/Svg/tokens/BASE'\nimport GRAPHLINQ from '../../components/uikit-sdk/Svg/tokens/GraphLinq'\nimport AVAX from '../../components/uikit-sdk/Svg/tokens/AVAX'\nimport BLAST from '../../components/uikit-sdk/Svg/tokens/BLAST'\nimport CROSSFI from '../../components/uikit-sdk/Svg/tokens/CROSSFI'\nimport MONAD from '../../components/uikit-sdk/Svg/tokens/MONAD'\nimport SONIC from '../../components/uikit-sdk/Svg/tokens/SONIC'\nimport BERA from '../../components/uikit-sdk/Svg/tokens/BERA'\nimport SOL from '../../components/uikit-sdk/Svg/tokens/SOL'\nimport KATANA from '../../components/uikit-sdk/Svg/tokens/KATANA'\nimport UNICHAIN from '../../components/uikit-sdk/Svg/tokens/UNICHAIN'\nimport MEGAETH from '../../components/uikit-sdk/Svg/tokens/MEGAETH'\nimport HYPEREVM from '../../components/uikit-sdk/Svg/tokens/HYPEREVM'\nimport APTOS from '../../components/uikit-sdk/Svg/tokens/APTOS'\nimport SUI from '../../components/uikit-sdk/Svg/tokens/SUI'\nimport BitTensor from '../../components/uikit-sdk/Svg/Icons/BitTensor'\nimport Robinhood from '../../components/uikit-sdk/Svg/Icons/Robinhood'\n\n// These are the lists we will display to the user\nexport const MAINNET_CHAINS = [\n ChainId.MAINNET,\n ChainId.BSC,\n ChainId.MATIC,\n ChainId.BASE,\n ChainId.IOTA,\n ChainId.LINEA,\n ChainId.ARBITRUM,\n ChainId.APTOS,\n ChainId.SUI,\n ChainId.LIGHTLINK,\n ChainId.GRAPHLINQ,\n ChainId.AVAX,\n ChainId.BLAST,\n ChainId.CROSSFI,\n ChainId.SONIC,\n ChainId.MONAD,\n ChainId.BERACHAIN,\n ChainId.SOL,\n ChainId.KATANA,\n ChainId.UNICHAIN,\n ChainId.MEGAETH_TESTNET,\n ChainId.HYPEREVM,\n ChainId.BITTENSOR_TESTNET,\n ChainId.ROBINHOOD,\n]\n\nexport const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET]\n\n// Network Icons\nexport const NETWORK_ICONS: Partial<Record<number, React.ComponentType<SvgProps>>> = {\n [ChainId.BSC]: BNB,\n [ChainId.MATIC]: POLYGON,\n [ChainId.MAINNET]: ETH,\n [ChainId.TLOS]: TLOS,\n [ChainId.ARBITRUM]: ARBITRUM,\n [ChainId.INEVM]: INEVM,\n [ChainId.SEPOLIA]: ETH,\n [ChainId.LINEA]: LINEA,\n [ChainId.LIGHTLINK]: LIGHTLINK,\n [ChainId.IOTA]: IOTA,\n [ChainId.BASE]: BASE,\n [ChainId.GRAPHLINQ]: GRAPHLINQ,\n [ChainId.AVAX]: AVAX,\n [ChainId.BLAST]: BLAST,\n [ChainId.CROSSFI]: CROSSFI,\n [ChainId.MONAD_TESTNET]: MONAD,\n [ChainId.MONAD]: MONAD,\n [ChainId.SONIC]: SONIC,\n [ChainId.BERACHAIN]: BERA,\n [ChainId.SOL]: SOL,\n [ChainId.KATANA]: KATANA,\n [ChainId.UNICHAIN]: UNICHAIN,\n [ChainId.MEGAETH_TESTNET]: MEGAETH,\n [ChainId.HYPEREVM]: HYPEREVM,\n [ChainId.APTOS]: APTOS,\n [ChainId.SUI]: SUI,\n [ChainId.BITTENSOR_TESTNET]: BitTensor,\n [ChainId.ROBINHOOD]: Robinhood,\n}\n\n// Network labels\nexport const NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.BSC_TESTNET]: 'BNB Testnet',\n [ChainId.MATIC]: 'Polygon',\n [ChainId.MAINNET]: 'Ethereum',\n [ChainId.TLOS]: 'Telos',\n [ChainId.ARBITRUM]: 'Arbitrum',\n [ChainId.INEVM]: 'inEVM',\n [ChainId.SEPOLIA]: 'Sepolia',\n [ChainId.LINEA]: 'Linea',\n [ChainId.LIGHTLINK]: 'Lightlink',\n [ChainId.IOTA]: 'Iota',\n [ChainId.IOTA_TESTNET]: 'Iota Testnet',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'GraphLinq',\n [ChainId.AVAX]: 'Avalanche',\n [ChainId.BLAST]: 'Blast',\n [ChainId.CROSSFI]: 'Crossfi',\n [ChainId.MONAD_TESTNET]: 'Monad Testnet',\n [ChainId.MONAD]: 'Monad',\n [ChainId.SONIC]: 'Sonic',\n [ChainId.BERACHAIN]: 'Berachain',\n [ChainId.SOL]: 'Solana',\n [ChainId.KATANA]: 'Katana',\n [ChainId.UNICHAIN]: 'Unichain',\n [ChainId.MEGAETH_TESTNET]: 'MegaETH Testnet',\n [ChainId.HYPEREVM]: 'HyperEVM',\n [ChainId.APTOS]: 'Aptos',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bittensor Testnet',\n [ChainId.ROBINHOOD]: 'Robinhood',\n}\n\nexport const SHORT_NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.MATIC]: 'Pol',\n [ChainId.MAINNET]: 'Eth',\n [ChainId.TLOS]: 'Telo',\n [ChainId.ARBITRUM]: 'Arb',\n [ChainId.LINEA]: 'Line',\n [ChainId.LIGHTLINK]: 'Ligh',\n [ChainId.IOTA]: 'Iota',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'Grap',\n [ChainId.AVAX]: 'Avax',\n [ChainId.BLAST]: 'Bla',\n [ChainId.CROSSFI]: 'Cro',\n [ChainId.MONAD]: 'Mona',\n [ChainId.SONIC]: 'Son',\n [ChainId.BERACHAIN]: 'Bera',\n [ChainId.SOL]: 'Sol',\n [ChainId.KATANA]: 'Kat',\n [ChainId.UNICHAIN]: 'Unic',\n [ChainId.HYPEREVM]: 'Hyp',\n [ChainId.APTOS]: 'Apt',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bitt',\n [ChainId.ROBINHOOD]: 'Robin',\n}\n\n// Network block explorers\nexport const BLOCK_EXPLORER: Record<number, string> = {\n [ChainId.MAINNET]: 'https://etherscan.io',\n [ChainId.ARBITRUM]: 'https://arbiscan.io',\n [ChainId.MATIC]: 'https://polygonscan.com',\n [ChainId.BSC]: 'https://bscscan.com',\n [ChainId.BSC_TESTNET]: 'https://testnet.bscscan.com',\n [ChainId.TLOS]: 'https://www.teloscan.io',\n [ChainId.INEVM]: 'https://explorer.inevm.com',\n [ChainId.SEPOLIA]: 'https://sepolia.etherscan.io',\n [ChainId.LINEA]: 'https://lineascan.build',\n [ChainId.LIGHTLINK]: 'https://phoenix.lightlink.io',\n [ChainId.IOTA]: 'https://explorer.evm.iota.org',\n [ChainId.IOTA_TESTNET]: 'https://explorer.evm.testnet.iotaledger.net/',\n [ChainId.BASE]: 'https://basescan.org',\n [ChainId.GRAPHLINQ]: 'https://graphlinq.dex.guru',\n [ChainId.AVAX]: 'https://snowtrace.io/',\n [ChainId.BLAST]: 'https://blastscan.io',\n [ChainId.CROSSFI]: 'https://xfiscan.com',\n [ChainId.MONAD_TESTNET]: 'https://testnet.monadexplorer.com/',\n [ChainId.MONAD]: 'https://monadvision.com/',\n [ChainId.SONIC]: 'https://sonicscan.org',\n [ChainId.BERACHAIN]: 'https://berascan.com',\n [ChainId.SOL]: 'https://solscan.io',\n [ChainId.KATANA]: 'https://explorer.katanarpc.com',\n [ChainId.UNICHAIN]: 'https://uniscan.xyz',\n [ChainId.MEGAETH_TESTNET]: 'https://megaexplorer.xyz',\n [ChainId.HYPEREVM]: 'https://hyperevmscan.io',\n [ChainId.APTOS]: 'https://explorer.aptoslabs.com',\n [ChainId.SUI]: 'https://suiscan.xyz/mainnet',\n [ChainId.BITTENSOR_TESTNET]: 'https://evm-testscan.dev.opentensor.ai',\n [ChainId.ROBINHOOD]: 'https://robinhoodchain.blockscout.com',\n}\n"],"names":["MONAD","SONIC"],"mappings":"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"}
1
+ {"version":3,"file":"chains.js","sources":["../../../src/config/constants/chains.ts"],"sourcesContent":["// Network chain ids\nimport type React from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n// Ensure the ChainId.APTOS and ChainId.SUI runtime patches run before the maps below evaluate\nimport '../../constants/aptosConstants'\nimport '../../constants/suiConstants'\nimport { SvgProps } from '../../components/uikit-sdk/Svg/types'\nimport BNB from '../../components/uikit-sdk/Svg/tokens/BNB'\nimport POLYGON from '../../components/uikit-sdk/Svg/tokens/POLYGON'\nimport ETH from '../../components/uikit-sdk/Svg/tokens/ETH'\nimport TLOS from '../../components/uikit-sdk/Svg/tokens/TLOS'\nimport ARBITRUM from '../../components/uikit-sdk/Svg/tokens/ARBITRUM'\nimport INEVM from '../../components/uikit-sdk/Svg/tokens/INEVM'\nimport LINEA from '../../components/uikit-sdk/Svg/tokens/LINEA'\nimport LIGHTLINK from '../../components/uikit-sdk/Svg/tokens/LIGHTLINK'\nimport IOTA from '../../components/uikit-sdk/Svg/tokens/IOTA'\nimport BASE from '../../components/uikit-sdk/Svg/tokens/BASE'\nimport GRAPHLINQ from '../../components/uikit-sdk/Svg/tokens/GraphLinq'\nimport AVAX from '../../components/uikit-sdk/Svg/tokens/AVAX'\nimport BLAST from '../../components/uikit-sdk/Svg/tokens/BLAST'\nimport CROSSFI from '../../components/uikit-sdk/Svg/tokens/CROSSFI'\nimport MONAD from '../../components/uikit-sdk/Svg/tokens/MONAD'\nimport SONIC from '../../components/uikit-sdk/Svg/tokens/SONIC'\nimport BERA from '../../components/uikit-sdk/Svg/tokens/BERA'\nimport SOL from '../../components/uikit-sdk/Svg/tokens/SOL'\nimport KATANA from '../../components/uikit-sdk/Svg/tokens/KATANA'\nimport UNICHAIN from '../../components/uikit-sdk/Svg/tokens/UNICHAIN'\nimport MEGAETH from '../../components/uikit-sdk/Svg/tokens/MEGAETH'\nimport HYPEREVM from '../../components/uikit-sdk/Svg/tokens/HYPEREVM'\nimport APTOS from '../../components/uikit-sdk/Svg/tokens/APTOS'\nimport SUI from '../../components/uikit-sdk/Svg/tokens/SUI'\nimport BitTensor from '../../components/uikit-sdk/Svg/Icons/BitTensor'\nimport Robinhood from '../../components/uikit-sdk/Svg/Icons/Robinhood'\nimport L1X from '../../components/uikit-sdk/Svg/Icons/L1X'\n\n// These are the lists we will display to the user\nexport const MAINNET_CHAINS = [\n ChainId.MAINNET,\n ChainId.BSC,\n ChainId.MATIC,\n ChainId.BASE,\n ChainId.IOTA,\n ChainId.LINEA,\n ChainId.ARBITRUM,\n ChainId.APTOS,\n ChainId.SUI,\n ChainId.LIGHTLINK,\n ChainId.GRAPHLINQ,\n ChainId.AVAX,\n ChainId.BLAST,\n ChainId.CROSSFI,\n ChainId.SONIC,\n ChainId.MONAD,\n ChainId.BERACHAIN,\n ChainId.SOL,\n ChainId.KATANA,\n ChainId.UNICHAIN,\n ChainId.MEGAETH_TESTNET,\n ChainId.HYPEREVM,\n ChainId.BITTENSOR_TESTNET,\n ChainId.ROBINHOOD,\n ChainId.L1X,\n]\n\nexport const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET]\n\n// Network Icons\nexport const NETWORK_ICONS: Partial<Record<number, React.ComponentType<SvgProps>>> = {\n [ChainId.BSC]: BNB,\n [ChainId.MATIC]: POLYGON,\n [ChainId.MAINNET]: ETH,\n [ChainId.TLOS]: TLOS,\n [ChainId.ARBITRUM]: ARBITRUM,\n [ChainId.INEVM]: INEVM,\n [ChainId.SEPOLIA]: ETH,\n [ChainId.LINEA]: LINEA,\n [ChainId.LIGHTLINK]: LIGHTLINK,\n [ChainId.IOTA]: IOTA,\n [ChainId.BASE]: BASE,\n [ChainId.GRAPHLINQ]: GRAPHLINQ,\n [ChainId.AVAX]: AVAX,\n [ChainId.BLAST]: BLAST,\n [ChainId.CROSSFI]: CROSSFI,\n [ChainId.MONAD_TESTNET]: MONAD,\n [ChainId.MONAD]: MONAD,\n [ChainId.SONIC]: SONIC,\n [ChainId.BERACHAIN]: BERA,\n [ChainId.SOL]: SOL,\n [ChainId.KATANA]: KATANA,\n [ChainId.UNICHAIN]: UNICHAIN,\n [ChainId.MEGAETH_TESTNET]: MEGAETH,\n [ChainId.HYPEREVM]: HYPEREVM,\n [ChainId.APTOS]: APTOS,\n [ChainId.SUI]: SUI,\n [ChainId.BITTENSOR_TESTNET]: BitTensor,\n [ChainId.ROBINHOOD]: Robinhood,\n [ChainId.L1X]: L1X,\n}\n\n// Network labels\nexport const NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.BSC_TESTNET]: 'BNB Testnet',\n [ChainId.MATIC]: 'Polygon',\n [ChainId.MAINNET]: 'Ethereum',\n [ChainId.TLOS]: 'Telos',\n [ChainId.ARBITRUM]: 'Arbitrum',\n [ChainId.INEVM]: 'inEVM',\n [ChainId.SEPOLIA]: 'Sepolia',\n [ChainId.LINEA]: 'Linea',\n [ChainId.LIGHTLINK]: 'Lightlink',\n [ChainId.IOTA]: 'Iota',\n [ChainId.IOTA_TESTNET]: 'Iota Testnet',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'GraphLinq',\n [ChainId.AVAX]: 'Avalanche',\n [ChainId.BLAST]: 'Blast',\n [ChainId.CROSSFI]: 'Crossfi',\n [ChainId.MONAD_TESTNET]: 'Monad Testnet',\n [ChainId.MONAD]: 'Monad',\n [ChainId.SONIC]: 'Sonic',\n [ChainId.BERACHAIN]: 'Berachain',\n [ChainId.SOL]: 'Solana',\n [ChainId.KATANA]: 'Katana',\n [ChainId.UNICHAIN]: 'Unichain',\n [ChainId.MEGAETH_TESTNET]: 'MegaETH Testnet',\n [ChainId.HYPEREVM]: 'HyperEVM',\n [ChainId.APTOS]: 'Aptos',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bittensor Testnet',\n [ChainId.ROBINHOOD]: 'Robinhood',\n [ChainId.L1X]: 'Layer 1X',\n}\n\nexport const SHORT_NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.MATIC]: 'Pol',\n [ChainId.MAINNET]: 'Eth',\n [ChainId.TLOS]: 'Telo',\n [ChainId.ARBITRUM]: 'Arb',\n [ChainId.LINEA]: 'Line',\n [ChainId.LIGHTLINK]: 'Ligh',\n [ChainId.IOTA]: 'Iota',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'Grap',\n [ChainId.AVAX]: 'Avax',\n [ChainId.BLAST]: 'Bla',\n [ChainId.CROSSFI]: 'Cro',\n [ChainId.MONAD]: 'Mona',\n [ChainId.SONIC]: 'Son',\n [ChainId.BERACHAIN]: 'Bera',\n [ChainId.SOL]: 'Sol',\n [ChainId.KATANA]: 'Kat',\n [ChainId.UNICHAIN]: 'Unic',\n [ChainId.HYPEREVM]: 'Hyp',\n [ChainId.APTOS]: 'Apt',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bitt',\n [ChainId.ROBINHOOD]: 'Robin',\n [ChainId.L1X]: 'L1X',\n}\n\n// Network block explorers\nexport const BLOCK_EXPLORER: Record<number, string> = {\n [ChainId.MAINNET]: 'https://etherscan.io',\n [ChainId.ARBITRUM]: 'https://arbiscan.io',\n [ChainId.MATIC]: 'https://polygonscan.com',\n [ChainId.BSC]: 'https://bscscan.com',\n [ChainId.BSC_TESTNET]: 'https://testnet.bscscan.com',\n [ChainId.TLOS]: 'https://www.teloscan.io',\n [ChainId.INEVM]: 'https://explorer.inevm.com',\n [ChainId.SEPOLIA]: 'https://sepolia.etherscan.io',\n [ChainId.LINEA]: 'https://lineascan.build',\n [ChainId.LIGHTLINK]: 'https://phoenix.lightlink.io',\n [ChainId.IOTA]: 'https://explorer.evm.iota.org',\n [ChainId.IOTA_TESTNET]: 'https://explorer.evm.testnet.iotaledger.net/',\n [ChainId.BASE]: 'https://basescan.org',\n [ChainId.GRAPHLINQ]: 'https://graphlinq.dex.guru',\n [ChainId.AVAX]: 'https://snowtrace.io/',\n [ChainId.BLAST]: 'https://blastscan.io',\n [ChainId.CROSSFI]: 'https://xfiscan.com',\n [ChainId.MONAD_TESTNET]: 'https://testnet.monadexplorer.com/',\n [ChainId.MONAD]: 'https://monadvision.com/',\n [ChainId.SONIC]: 'https://sonicscan.org',\n [ChainId.BERACHAIN]: 'https://berascan.com',\n [ChainId.SOL]: 'https://solscan.io',\n [ChainId.KATANA]: 'https://explorer.katanarpc.com',\n [ChainId.UNICHAIN]: 'https://uniscan.xyz',\n [ChainId.MEGAETH_TESTNET]: 'https://megaexplorer.xyz',\n [ChainId.HYPEREVM]: 'https://hyperevmscan.io',\n [ChainId.APTOS]: 'https://explorer.aptoslabs.com',\n [ChainId.SUI]: 'https://suiscan.xyz/mainnet',\n [ChainId.BITTENSOR_TESTNET]: 'https://evm-testscan.dev.opentensor.ai',\n [ChainId.ROBINHOOD]: 'https://robinhoodchain.blockscout.com',\n [ChainId.L1X]: 'https://explorer.l1xapp.com',\n}\n"],"names":["MONAD","SONIC"],"mappings":"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"}
@@ -59,6 +59,7 @@ const PUBLIC_RPC_URLS = {
59
59
  [ChainId.HYPEREVM]: ['https://rpc.hyperliquid.xyz/evm'],
60
60
  [ChainId.BITTENSOR_TESTNET]: ['https://bittensor-testnet-lite-public.nodies.app'],
61
61
  [ChainId.ROBINHOOD]: ['https://rpc.mainnet.chain.robinhood.com'],
62
+ [ChainId.L1X]: ['https://v2-mainnet-rpc.l1x.foundation'],
62
63
  // Aptos fullnode — URL is clean; the API key goes in the Authorization
63
64
  // header, not as a query param (see aptosConstants.ts). The cast on
64
65
  // APTOS_CHAIN_ID is required because the synthetic id is not in the
@@ -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'\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 [ChainId.BITTENSOR_TESTNET]: ['https://bittensor-testnet-lite-public.nodies.app'],\n [ChainId.ROBINHOOD]: ['https://rpc.mainnet.chain.robinhood.com'],\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\nconst 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\nconst 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 [ChainId.BITTENSOR_TESTNET]: ['https://bittensor-testnet-lite-public.nodies.app'],\n [ChainId.ROBINHOOD]: ['https://rpc.mainnet.chain.robinhood.com'],\n [ChainId.L1X]: ['https://v2-mainnet-rpc.l1x.foundation'],\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\nconst 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\nconst 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,6 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
  import { useSDKConfig, useURLByEnvironment } from '../state/useSDKConfig.js';
3
- import axios from 'axios';
3
+ import { apiPost } from '../utils/httpClient.js';
4
4
 
5
5
  const useSendReferenceId = () => {
6
6
  const config = useSDKConfig();
@@ -13,7 +13,7 @@ const useSendReferenceId = () => {
13
13
  billContract,
14
14
  reason,
15
15
  };
16
- const response = await axios.post(`${apiV2URL}/bills/widget`, data);
16
+ const response = await apiPost(`${apiV2URL}/bills/widget`, data);
17
17
  console.log(response);
18
18
  }, [config?.referenceId, apiV2URL]);
19
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useSendReferenceId.js","sources":["../../src/hooks/useSendReferenceId.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useSDKConfig, useURLByEnvironment } from '../state/useSDKConfig'\nimport axios from 'axios'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport const useSendReferenceId = () => {\n const config = useSDKConfig()\n const apiV2URL = useURLByEnvironment('apiV2')\n\n return useCallback(\n async (billContract: string, chainId: ChainId, hash: string, reason?: string) => {\n const data = {\n chainId,\n transactionHash: hash,\n referenceId: config?.referenceId,\n billContract,\n reason,\n }\n const response = await axios.post(`${apiV2URL}/bills/widget`, data)\n console.log(response)\n },\n [config?.referenceId, apiV2URL],\n )\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,kBAAkB,GAAG,MAAK;AACrC,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAE7C,IAAA,OAAO,WAAW,CAChB,OAAO,YAAoB,EAAE,OAAgB,EAAE,IAAY,EAAE,MAAe,KAAI;AAC9E,QAAA,MAAM,IAAI,GAAG;YACX,OAAO;AACP,YAAA,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,MAAM,EAAE,WAAW;YAChC,YAAY;YACZ,MAAM;SACP;AACD,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,QAAQ,CAAA,aAAA,CAAe,EAAE,IAAI,CAAC;AACnE,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACvB,CAAC,EACD,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAChC;AACH;;;;"}
1
+ {"version":3,"file":"useSendReferenceId.js","sources":["../../src/hooks/useSendReferenceId.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useSDKConfig, useURLByEnvironment } from '../state/useSDKConfig'\nimport { apiPost } from '../utils/httpClient'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport const useSendReferenceId = () => {\n const config = useSDKConfig()\n const apiV2URL = useURLByEnvironment('apiV2')\n\n return useCallback(\n async (billContract: string, chainId: ChainId, hash: string, reason?: string) => {\n const data = {\n chainId,\n transactionHash: hash,\n referenceId: config?.referenceId,\n billContract,\n reason,\n }\n const response = await apiPost(`${apiV2URL}/bills/widget`, data)\n console.log(response)\n },\n [config?.referenceId, apiV2URL],\n )\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,kBAAkB,GAAG,MAAK;AACrC,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAE7C,IAAA,OAAO,WAAW,CAChB,OAAO,YAAoB,EAAE,OAAgB,EAAE,IAAY,EAAE,MAAe,KAAI;AAC9E,QAAA,MAAM,IAAI,GAAG;YACX,OAAO;AACP,YAAA,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,MAAM,EAAE,WAAW;YAChC,YAAY;YACZ,MAAM;SACP;QACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAA,EAAG,QAAQ,CAAA,aAAA,CAAe,EAAE,IAAI,CAAC;AAChE,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACvB,CAAC,EACD,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAChC;AACH;;;;"}
@@ -1,10 +1,9 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import axios from 'axios';
2
+ import { apiGet } from '../../utils/httpClient.js';
3
3
  import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
4
4
 
5
5
  const getBondApiStats = async (contractAddress) => {
6
- const { data } = await axios.get(`https://api.ape.bond/collector/salesInfo/bond/${contractAddress}/0`);
7
- return data;
6
+ return apiGet(`https://api.ape.bond/collector/salesInfo/bond/${contractAddress}/0`);
8
7
  };
9
8
  function useGetBondApiStats(contractAddress) {
10
9
  return useQuery({
@@ -1 +1 @@
1
- {"version":3,"file":"useGetBondApiStats.js","sources":["../../../src/state/bondApiStats/useGetBondApiStats.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport axios from 'axios'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\n\nexport interface Sales {\n billNftId: number\n chainId: number\n contractAddress: string\n createdAddressOwner: string\n createdAt: number\n deposit: number\n dollarValue: number\n lp: string\n payout: number\n payoutToken: string\n payoutTokenPrice: number\n referenceId: string\n transactionHash: string\n vestingTime: number\n}\n\nexport interface BondApiStats {\n ROE: string\n percentageSold: number\n totalDollarValue: number\n valueRemaining: number\n Sales: Sales[]\n}\n\nconst getBondApiStats = async (contractAddress?: string): Promise<BondApiStats> => {\n const { data } = await axios.get(`https://api.ape.bond/collector/salesInfo/bond/${contractAddress}/0`)\n return data\n}\n\nexport default function useGetBondApiStats(contractAddress?: string) {\n return useQuery({\n queryKey: [`${QUERY_KEYS.BOND_API_STATS}-${contractAddress}`],\n queryFn: () => getBondApiStats(contractAddress),\n refetchInterval: 300000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n retry: 1,\n })\n}\n"],"names":[],"mappings":";;;;AA6BA,MAAM,eAAe,GAAG,OAAO,eAAwB,KAA2B;AAChF,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,8CAAA,EAAiD,eAAe,CAAA,EAAA,CAAI,CAAC;AACtG,IAAA,OAAO,IAAI;AACb,CAAC;AAEa,SAAU,kBAAkB,CAAC,eAAwB,EAAA;AACjE,IAAA,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,CAAA,EAAG,UAAU,CAAC,cAAc,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;AAC7D,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,eAAe,CAAC;AAC/C,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"useGetBondApiStats.js","sources":["../../../src/state/bondApiStats/useGetBondApiStats.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { apiGet } from '../../utils/httpClient'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\n\nexport interface Sales {\n billNftId: number\n chainId: number\n contractAddress: string\n createdAddressOwner: string\n createdAt: number\n deposit: number\n dollarValue: number\n lp: string\n payout: number\n payoutToken: string\n payoutTokenPrice: number\n referenceId: string\n transactionHash: string\n vestingTime: number\n}\n\nexport interface BondApiStats {\n ROE: string\n percentageSold: number\n totalDollarValue: number\n valueRemaining: number\n Sales: Sales[]\n}\n\nconst getBondApiStats = async (contractAddress?: string): Promise<BondApiStats> => {\n return apiGet<BondApiStats>(`https://api.ape.bond/collector/salesInfo/bond/${contractAddress}/0`)\n}\n\nexport default function useGetBondApiStats(contractAddress?: string) {\n return useQuery({\n queryKey: [`${QUERY_KEYS.BOND_API_STATS}-${contractAddress}`],\n queryFn: () => getBondApiStats(contractAddress),\n refetchInterval: 300000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n retry: 1,\n })\n}\n"],"names":[],"mappings":";;;;AA6BA,MAAM,eAAe,GAAG,OAAO,eAAwB,KAA2B;AAChF,IAAA,OAAO,MAAM,CAAe,CAAA,8CAAA,EAAiD,eAAe,CAAA,EAAA,CAAI,CAAC;AACnG,CAAC;AAEa,SAAU,kBAAkB,CAAC,eAAwB,EAAA;AACjE,IAAA,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,CAAA,EAAG,UAAU,CAAC,cAAc,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;AAC7D,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,eAAe,CAAC;AAC/C,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ChainId, BillVersion } from '@ape.swap/apeswap-lists';
2
- import axios from 'axios';
2
+ import { apiGet } from '../../../utils/httpClient.js';
3
3
  import { getBalanceNumber } from '../../../utils/getBalanceNumber.js';
4
4
  import { calculateTrueBondPrice } from '../../../utils/calculateSolanaTrueBillPrice.js';
5
5
  import { TIER_MAPPING } from '../../tiers/useTierPoints.js';
@@ -14,9 +14,9 @@ const cleanBillsData = async (billIds, chunkedBills, chainId, bills, tokenPrices
14
14
  if (principalTokenPrice === undefined || !!principalTokenPrice.error) {
15
15
  try {
16
16
  // Missing token price, therefor make a single call to api to fetch it
17
- const res = await axios.get(`${PRICE_API_URL}/realtime/price?token=${bill?.lpToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`);
18
- console.log('Individual call for: ', bill.lpToken.symbol, '. Price: ', res.data.price);
19
- principalTokenPrice = res.data;
17
+ const price = await apiGet(`${PRICE_API_URL}/realtime/price?token=${bill?.lpToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`);
18
+ console.log('Individual call for: ', bill.lpToken.symbol, '. Price: ', price.price);
19
+ principalTokenPrice = price;
20
20
  }
21
21
  catch {
22
22
  console.error('Failed to fetch price for: ', bill.lpToken.symbol);
@@ -27,9 +27,9 @@ const cleanBillsData = async (billIds, chunkedBills, chainId, bills, tokenPrices
27
27
  if (payoutTokenPrice === undefined || !!payoutTokenPrice.error) {
28
28
  try {
29
29
  // Missing token price, therefor make a single call to api to fetch it
30
- const res = await axios.get(`${PRICE_API_URL}/realtime/price?token=${bill?.earnToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`);
31
- console.log('Individual call for: ', bill.earnToken.symbol, '. Price: ', res.data.price);
32
- payoutTokenPrice = res.data;
30
+ const price = await apiGet(`${PRICE_API_URL}/realtime/price?token=${bill?.earnToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`);
31
+ console.log('Individual call for: ', bill.earnToken.symbol, '. Price: ', price.price);
32
+ payoutTokenPrice = price;
33
33
  }
34
34
  catch {
35
35
  console.error('Failed to fetch price for: ', bill.earnToken.symbol);
@@ -1 +1 @@
1
- {"version":3,"file":"cleanBillsData.js","sources":["../../../../src/state/bonds/fetchBondsData/cleanBillsData.ts"],"sourcesContent":["import { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../tokenPrices/useTokenPrices'\nimport { BondsData, TrueBondPrices } from '../../../types/bonds'\nimport axios from 'axios'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { calculateTrueBondPrice } from '../../../utils/calculateSolanaTrueBillPrice'\nimport { TIER_MAPPING } from '../../tiers/useTierPoints'\nimport { formatUnits, mulDivRound, parseUnits } from '../../../utils/fixedPoint'\nimport { PRICE_API_URL } from '../../../config/constants/variables'\n\nexport const cleanBillsData = async (\n billIds: number[],\n chunkedBills: any[],\n chainId: ChainId,\n bills: BillsConfig[],\n tokenPrices?: TokenPrices[],\n): Promise<BondsData[]> => {\n const data: BondsData[] = await Promise.all(\n chunkedBills?.map(async (chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n let principalTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (principalTokenPrice === undefined || !!principalTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${PRICE_API_URL}/realtime/price?token=${bill?.lpToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.lpToken.symbol, '. Price: ', res.data.price)\n principalTokenPrice = res.data\n } catch {\n console.error('Failed to fetch price for: ', bill.lpToken.symbol)\n }\n }\n\n let payoutTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (payoutTokenPrice === undefined || !!payoutTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${PRICE_API_URL}/realtime/price?token=${bill?.earnToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.earnToken.symbol, '. Price: ', res.data.price)\n payoutTokenPrice = res.data\n } catch {\n console.error('Failed to fetch price for: ', bill.earnToken.symbol)\n }\n }\n const lpPrice = principalTokenPrice?.price ?? 0\n const earnTokenPrice = payoutTokenPrice?.price ?? 0\n\n const [\n trueBillPriceFromChunk,\n totalPayoutGiven,\n terms,\n maxTotalPayout,\n feeInPayoutRaw,\n feeInPrincipalRaw,\n paused,\n ,\n customTreasuryBalance,\n bondPricing,\n bondTerms,\n ] = chunk\n let trueBillPrice = trueBillPriceFromChunk\n\n const feeInPayout = Number(feeInPayoutRaw / 10000)\n const feeInPrincipal = Number(feeInPrincipalRaw / 10000)\n const tierBoostRate = bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = Number(\n formatUnits(\n BigInt(maxTotalPayout ?? '0') - BigInt(totalPayoutGiven),\n bill?.earnToken.decimals[bill?.chainId] ?? 18,\n ),\n )\n const treasuryBalance = customTreasuryBalance\n ? getBalanceNumber(customTreasuryBalance, bill?.earnToken?.decimals?.[bill?.chainId] ?? 18)\n : null\n\n if (chainId === ChainId.SOL) {\n const principalDecimals = bill?.lpToken.decimals[ChainId.SOL] as number\n const payoutDecimals = bill?.earnToken.decimals[ChainId.SOL] as number\n const timeStamp = Math.floor(Date.now() / 1000)\n trueBillPrice = calculateTrueBondPrice(\n bondPricing,\n bondTerms,\n timeStamp,\n principalDecimals,\n payoutDecimals,\n feeInPrincipal,\n )\n }\n\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data?.points?.toString(),\n trueBondPrice: data?.trueBondPrice.toString(),\n discount: getRawDiscount(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n bonus: getRawBonus(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discountWithFee: getDiscountWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n bonusWithFee: getBonusWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n boost: TIER_MAPPING[data?.points?.toString() as keyof typeof TIER_MAPPING],\n }\n })\n } else {\n const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n const discount = getRawDiscount(trueBillPrice, lpPrice, earnTokenPrice)\n const discountWithFee = getDiscountWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n trueBondPrices = [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n discount,\n discountWithFee,\n },\n ]\n }\n const cleanedData: BondsData = {\n ...bill,\n soldOut: paused[0] ? true : bill.soldOut,\n feeInPayout,\n feeInPrincipal,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString(),\n payoutTokenPrice: earnTokenPrice?.toString(),\n tokensRemaining:\n treasuryBalance !== null ? Math.min(treasuryBalance, tokensRemaining).toString() : tokensRemaining.toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: typeof vestingTerm === 'number' ? vestingTerm : parseInt(vestingTerm),\n tierBoostRate: bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate,\n }\n return cleanedData\n }),\n )\n return data\n}\n\n// Scale used to carry percentage ratios (tier boost, reverse fee) into integer math\n// alongside the wei-scale `trueBillPrice`, so the huge integer never round-trips through\n// a JS float before the final getBalanceNumber() conversion.\nconst RATIO_SCALE = 1_000_000_000_000n // 1e12\nconst scaleRatio = (ratio: number): bigint => parseUnits(ratio.toString(), 12)\n\nconst getBonusWithFee = (\n feeInPayout: number,\n tierBoostRate: number,\n trueBillPrice: string,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const fee = feeInPayout ?? 0\n const reverseFee = fee / 100 / (1 - fee / 100)\n const trueBillPriceBig = BigInt(trueBillPrice)\n const tierAdjusted = mulDivRound(trueBillPriceBig, scaleRatio((100 + tierBoostRate) / 100), RATIO_SCALE)\n const feeAdjusted = mulDivRound(trueBillPriceBig, scaleRatio(reverseFee), RATIO_SCALE)\n const trueBondPrice = tierAdjusted + feeAdjusted\n const priceUSDMinusFee = getBalanceNumber(trueBondPrice) * lpPrice\n const bonusWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n const validatedBonus = bonusWithoutFee > 0 ? (bonusWithoutFee / (100 - bonusWithoutFee)) * 100 : 0\n return validatedBonus\n}\n\nconst getRawBonus = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice\n const discount: number = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100\n return discount > 0 ? (discount / (100 - discount)) * 100 : 0\n}\n\nconst getRawDiscount = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n\n return ((earnTokenPrice - lpPrice * trueBondPrice) / earnTokenPrice) * 100\n}\n\nconst getDiscountWithFee = (\n feeInPayout: number,\n tierBoostRate: number,\n trueBillPrice: any,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n const trueBondPriceWithFee = trueBondPrice * (1 / ((100 - (feeInPayout ?? 0)) / 100))\n const discount = ((earnTokenPrice - lpPrice * trueBondPriceWithFee) / earnTokenPrice) * 100\n const discountToReturn = 100 - ((100 - discount) / (100 - tierBoostRate)) * 100\n return discountToReturn\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanBillsData.js","sources":["../../../../src/state/bonds/fetchBondsData/cleanBillsData.ts"],"sourcesContent":["import { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../tokenPrices/useTokenPrices'\nimport { BondsData, TrueBondPrices } from '../../../types/bonds'\nimport { apiGet } from '../../../utils/httpClient'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { calculateTrueBondPrice } from '../../../utils/calculateSolanaTrueBillPrice'\nimport { TIER_MAPPING } from '../../tiers/useTierPoints'\nimport { formatUnits, mulDivRound, parseUnits } from '../../../utils/fixedPoint'\nimport { PRICE_API_URL } from '../../../config/constants/variables'\n\nexport const cleanBillsData = async (\n billIds: number[],\n chunkedBills: any[],\n chainId: ChainId,\n bills: BillsConfig[],\n tokenPrices?: TokenPrices[],\n): Promise<BondsData[]> => {\n const data: BondsData[] = await Promise.all(\n chunkedBills?.map(async (chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n let principalTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (principalTokenPrice === undefined || !!principalTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const price = await apiGet<TokenPrices>(\n `${PRICE_API_URL}/realtime/price?token=${bill?.lpToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.lpToken.symbol, '. Price: ', price.price)\n principalTokenPrice = price\n } catch {\n console.error('Failed to fetch price for: ', bill.lpToken.symbol)\n }\n }\n\n let payoutTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (payoutTokenPrice === undefined || !!payoutTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const price = await apiGet<TokenPrices>(\n `${PRICE_API_URL}/realtime/price?token=${bill?.earnToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.earnToken.symbol, '. Price: ', price.price)\n payoutTokenPrice = price\n } catch {\n console.error('Failed to fetch price for: ', bill.earnToken.symbol)\n }\n }\n const lpPrice = principalTokenPrice?.price ?? 0\n const earnTokenPrice = payoutTokenPrice?.price ?? 0\n\n const [\n trueBillPriceFromChunk,\n totalPayoutGiven,\n terms,\n maxTotalPayout,\n feeInPayoutRaw,\n feeInPrincipalRaw,\n paused,\n ,\n customTreasuryBalance,\n bondPricing,\n bondTerms,\n ] = chunk\n let trueBillPrice = trueBillPriceFromChunk\n\n const feeInPayout = Number(feeInPayoutRaw / 10000)\n const feeInPrincipal = Number(feeInPrincipalRaw / 10000)\n const tierBoostRate = bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = Number(\n formatUnits(\n BigInt(maxTotalPayout ?? '0') - BigInt(totalPayoutGiven),\n bill?.earnToken.decimals[bill?.chainId] ?? 18,\n ),\n )\n const treasuryBalance = customTreasuryBalance\n ? getBalanceNumber(customTreasuryBalance, bill?.earnToken?.decimals?.[bill?.chainId] ?? 18)\n : null\n\n if (chainId === ChainId.SOL) {\n const principalDecimals = bill?.lpToken.decimals[ChainId.SOL] as number\n const payoutDecimals = bill?.earnToken.decimals[ChainId.SOL] as number\n const timeStamp = Math.floor(Date.now() / 1000)\n trueBillPrice = calculateTrueBondPrice(\n bondPricing,\n bondTerms,\n timeStamp,\n principalDecimals,\n payoutDecimals,\n feeInPrincipal,\n )\n }\n\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data?.points?.toString(),\n trueBondPrice: data?.trueBondPrice.toString(),\n discount: getRawDiscount(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n bonus: getRawBonus(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discountWithFee: getDiscountWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n bonusWithFee: getBonusWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n boost: TIER_MAPPING[data?.points?.toString() as keyof typeof TIER_MAPPING],\n }\n })\n } else {\n const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n const discount = getRawDiscount(trueBillPrice, lpPrice, earnTokenPrice)\n const discountWithFee = getDiscountWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n trueBondPrices = [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n discount,\n discountWithFee,\n },\n ]\n }\n const cleanedData: BondsData = {\n ...bill,\n soldOut: paused[0] ? true : bill.soldOut,\n feeInPayout,\n feeInPrincipal,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString(),\n payoutTokenPrice: earnTokenPrice?.toString(),\n tokensRemaining:\n treasuryBalance !== null ? Math.min(treasuryBalance, tokensRemaining).toString() : tokensRemaining.toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: typeof vestingTerm === 'number' ? vestingTerm : parseInt(vestingTerm),\n tierBoostRate: bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate,\n }\n return cleanedData\n }),\n )\n return data\n}\n\n// Scale used to carry percentage ratios (tier boost, reverse fee) into integer math\n// alongside the wei-scale `trueBillPrice`, so the huge integer never round-trips through\n// a JS float before the final getBalanceNumber() conversion.\nconst RATIO_SCALE = 1_000_000_000_000n // 1e12\nconst scaleRatio = (ratio: number): bigint => parseUnits(ratio.toString(), 12)\n\nconst getBonusWithFee = (\n feeInPayout: number,\n tierBoostRate: number,\n trueBillPrice: string,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const fee = feeInPayout ?? 0\n const reverseFee = fee / 100 / (1 - fee / 100)\n const trueBillPriceBig = BigInt(trueBillPrice)\n const tierAdjusted = mulDivRound(trueBillPriceBig, scaleRatio((100 + tierBoostRate) / 100), RATIO_SCALE)\n const feeAdjusted = mulDivRound(trueBillPriceBig, scaleRatio(reverseFee), RATIO_SCALE)\n const trueBondPrice = tierAdjusted + feeAdjusted\n const priceUSDMinusFee = getBalanceNumber(trueBondPrice) * lpPrice\n const bonusWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n const validatedBonus = bonusWithoutFee > 0 ? (bonusWithoutFee / (100 - bonusWithoutFee)) * 100 : 0\n return validatedBonus\n}\n\nconst getRawBonus = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice\n const discount: number = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100\n return discount > 0 ? (discount / (100 - discount)) * 100 : 0\n}\n\nconst getRawDiscount = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n\n return ((earnTokenPrice - lpPrice * trueBondPrice) / earnTokenPrice) * 100\n}\n\nconst getDiscountWithFee = (\n feeInPayout: number,\n tierBoostRate: number,\n trueBillPrice: any,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n const trueBondPriceWithFee = trueBondPrice * (1 / ((100 - (feeInPayout ?? 0)) / 100))\n const discount = ((earnTokenPrice - lpPrice * trueBondPriceWithFee) / earnTokenPrice) * 100\n const discountToReturn = 100 - ((100 - discount) / (100 - tierBoostRate)) * 100\n return discountToReturn\n}\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ChainId } from '@ape.swap/apeswap-lists';
2
2
  import { readAptosMarketInfo } from '../../../utils/aptosHelpers.js';
3
3
  import { formatUnits } from '../../../utils/fixedPoint.js';
4
- import axios from 'axios';
4
+ import { apiGet } from '../../../utils/httpClient.js';
5
5
  import { PRICE_API_URL } from '../../../config/constants/variables.js';
6
6
 
7
7
  // =============================================================================
@@ -33,8 +33,8 @@ const fetchBondsDataAptos = async (bonds, aptosPrices) => {
33
33
  let principalPrice = aptosPrices?.find((t) => t.tokenAddress.toLowerCase() === principalAddr)?.price;
34
34
  if (principalPrice === undefined) {
35
35
  try {
36
- const res = await axios.get(`${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
37
- principalPrice = res.data.price ?? 0;
36
+ const res = await apiGet(`${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
37
+ principalPrice = res.price ?? 0;
38
38
  }
39
39
  catch {
40
40
  principalPrice = 0;
@@ -44,8 +44,8 @@ const fetchBondsDataAptos = async (bonds, aptosPrices) => {
44
44
  if (payoutPrice === undefined) {
45
45
  try {
46
46
  // Missing token price, therefor make a single call to api to fetch it
47
- const res = await axios.get(`${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
48
- payoutPrice = res.data.price ?? 0;
47
+ const res = await apiGet(`${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
48
+ payoutPrice = res.price ?? 0;
49
49
  }
50
50
  catch {
51
51
  payoutPrice = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchBondsDataAptos.js","sources":["../../../../src/state/bonds/fetchBondsData/fetchBondsDataAptos.ts"],"sourcesContent":["// =============================================================================\n// Aptos bond enrichment — builds BondsData[] from BillsConfig[] + prices\n// =============================================================================\n//\n// On-chain first: reads bond::market_info via view function for each config\n// and projects the tuple onto BondsData. No backend dependency (realtime-api\n// does not support Aptos).\n\nimport { BillsConfig, ChainId } from '@ape.swap/apeswap-lists'\nimport { BondsData } from '../../../types/bonds'\nimport { TokenPrices } from '../../tokenPrices/useTokenPrices'\nimport { readAptosMarketInfo } from '../../../utils/aptosHelpers'\nimport { formatUnits } from '../../../utils/fixedPoint'\nimport axios from 'axios'\nimport { PRICE_API_URL } from '../../../config/constants/variables'\n\nconst APTOS_KEY = ChainId.APTOS\n\n/**\n * Enrich Aptos bond configs into full BondsData objects.\n *\n * Calls `bond::market_info(market)` for each config and projects the tuple\n * onto BondsData. Scale conversion: contract returns `true_bill_price` as u64\n * scaled by PRICE_DECIMALS = 1e8; the SDK stores `trueBondPrice` scaled by\n * 1e18 (legacy EVM format) → multiply by 1e10.\n */\nexport const fetchBondsDataAptos = async (bonds?: BillsConfig[], aptosPrices?: TokenPrices[]): Promise<BondsData[]> => {\n const aptosConfigs = bonds?.filter((b) => !b.soldOut)\n if (!aptosConfigs || aptosConfigs?.length === 0) return []\n\n const enriched = await Promise.all(\n aptosConfigs.map(async (bond): Promise<BondsData | null> => {\n const marketAddr = bond.contractAddress[APTOS_KEY]\n if (!marketAddr) return null\n try {\n // Firstly we fetch prices\n let principalPrice = aptosPrices?.find((t) => t.tokenAddress.toLowerCase() === principalAddr)?.price!\n if (principalPrice === undefined) {\n try {\n const res = await axios.get(\n `${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n principalPrice = res.data.price ?? 0\n } catch {\n principalPrice = 0\n }\n }\n\n let payoutPrice = aptosPrices?.find((t) => t.tokenAddress.toLowerCase() === payoutAddr)?.price!\n if (payoutPrice === undefined) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n payoutPrice = res.data.price ?? 0\n } catch {\n payoutPrice = 0\n }\n }\n\n const info = await readAptosMarketInfo(marketAddr)\n const principalAddr = bond.lpToken.address[APTOS_KEY]?.toLowerCase()\n const payoutAddr = bond.earnToken.address[APTOS_KEY]?.toLowerCase()\n\n // Convert on-chain u64 (scaled 1e8) to the SDK's legacy 1e18 scale\n const trueBillPriceU64 = info[17]\n const trueBondPriceScaled = (BigInt(trueBillPriceU64) * 10n ** 10n).toString()\n const trueBondPriceHuman = Number(trueBillPriceU64) / 1e8\n\n // Same formula as getRawDiscount / getRawBonus in state/bonds/utils.ts\n const discount = payoutPrice > 0 ? ((payoutPrice - principalPrice * trueBondPriceHuman) / payoutPrice) * 100 : 0\n const bonus = discount > 0 && discount < 100 ? (discount / (100 - discount)) * 100 : 0\n\n // Fees: u64 in PERCENTAGE_BASE (1e6) → divide by 10_000 for human %\n const feeInPayout = Number(info[14]) / 10_000\n const feeInPrincipal = Number(info[13]) / 10_000\n const trueBondPriceWithFee =\n feeInPayout < 100 ? trueBondPriceHuman * (1 / ((100 - feeInPayout) / 100)) : trueBondPriceHuman\n const discountWithFee =\n payoutPrice > 0 ? ((payoutPrice - principalPrice * trueBondPriceWithFee) / payoutPrice) * 100 : 0\n const bonusWithFee =\n discountWithFee > 0 && discountWithFee < 100 ? (discountWithFee / (100 - discountWithFee)) * 100 : 0\n\n const payoutDecimals = bond.earnToken.decimals[APTOS_KEY] ?? 8\n const tokensRemaining = formatUnits(BigInt(info[23]) - BigInt(info[5]), payoutDecimals)\n\n return {\n ...bond,\n soldOut: info[2] || info[3] ? true : bond.soldOut,\n maxTotalPayout: String(info[23]),\n totalPayoutGiven: String(info[5]),\n maxPayout: String(info[21]),\n tokensRemaining,\n showcaseTokenName: bond.earnToken.symbol,\n vestingTerm: Number(info[19]),\n feeInPayout,\n feeInPrincipal,\n trueBondPrices: [\n {\n trueBondPrice: trueBondPriceScaled,\n points: '0',\n discount,\n discountWithFee,\n bonus,\n bonusWithFee,\n boost: 0,\n },\n ],\n principalTokenPrice: principalPrice.toString(),\n payoutTokenPrice: payoutPrice.toString(),\n }\n } catch (e) {\n console.warn(`[Aptos] Failed to read market_info for ${marketAddr}`, e)\n // Hide the bond from the list when on-chain data is unavailable —\n // showing a card with all zeros is confusing for users.\n return null\n }\n }),\n )\n return enriched.filter((b): b is BondsData => b !== null)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchBondsDataAptos.js","sources":["../../../../src/state/bonds/fetchBondsData/fetchBondsDataAptos.ts"],"sourcesContent":["// =============================================================================\n// Aptos bond enrichment — builds BondsData[] from BillsConfig[] + prices\n// =============================================================================\n//\n// On-chain first: reads bond::market_info via view function for each config\n// and projects the tuple onto BondsData. No backend dependency (realtime-api\n// does not support Aptos).\n\nimport { BillsConfig, ChainId } from '@ape.swap/apeswap-lists'\nimport { BondsData } from '../../../types/bonds'\nimport { TokenPrices } from '../../tokenPrices/useTokenPrices'\nimport { readAptosMarketInfo } from '../../../utils/aptosHelpers'\nimport { formatUnits } from '../../../utils/fixedPoint'\nimport { apiGet } from '../../../utils/httpClient'\nimport { PRICE_API_URL } from '../../../config/constants/variables'\n\nconst APTOS_KEY = ChainId.APTOS\n\n/**\n * Enrich Aptos bond configs into full BondsData objects.\n *\n * Calls `bond::market_info(market)` for each config and projects the tuple\n * onto BondsData. Scale conversion: contract returns `true_bill_price` as u64\n * scaled by PRICE_DECIMALS = 1e8; the SDK stores `trueBondPrice` scaled by\n * 1e18 (legacy EVM format) → multiply by 1e10.\n */\nexport const fetchBondsDataAptos = async (bonds?: BillsConfig[], aptosPrices?: TokenPrices[]): Promise<BondsData[]> => {\n const aptosConfigs = bonds?.filter((b) => !b.soldOut)\n if (!aptosConfigs || aptosConfigs?.length === 0) return []\n\n const enriched = await Promise.all(\n aptosConfigs.map(async (bond): Promise<BondsData | null> => {\n const marketAddr = bond.contractAddress[APTOS_KEY]\n if (!marketAddr) return null\n try {\n // Firstly we fetch prices\n let principalPrice = aptosPrices?.find((t) => t.tokenAddress.toLowerCase() === principalAddr)?.price!\n if (principalPrice === undefined) {\n try {\n const res = await apiGet<{ price: number }>(\n `${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n principalPrice = res.price ?? 0\n } catch {\n principalPrice = 0\n }\n }\n\n let payoutPrice = aptosPrices?.find((t) => t.tokenAddress.toLowerCase() === payoutAddr)?.price!\n if (payoutPrice === undefined) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await apiGet<{ price: number }>(\n `${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n payoutPrice = res.price ?? 0\n } catch {\n payoutPrice = 0\n }\n }\n\n const info = await readAptosMarketInfo(marketAddr)\n const principalAddr = bond.lpToken.address[APTOS_KEY]?.toLowerCase()\n const payoutAddr = bond.earnToken.address[APTOS_KEY]?.toLowerCase()\n\n // Convert on-chain u64 (scaled 1e8) to the SDK's legacy 1e18 scale\n const trueBillPriceU64 = info[17]\n const trueBondPriceScaled = (BigInt(trueBillPriceU64) * 10n ** 10n).toString()\n const trueBondPriceHuman = Number(trueBillPriceU64) / 1e8\n\n // Same formula as getRawDiscount / getRawBonus in state/bonds/utils.ts\n const discount = payoutPrice > 0 ? ((payoutPrice - principalPrice * trueBondPriceHuman) / payoutPrice) * 100 : 0\n const bonus = discount > 0 && discount < 100 ? (discount / (100 - discount)) * 100 : 0\n\n // Fees: u64 in PERCENTAGE_BASE (1e6) → divide by 10_000 for human %\n const feeInPayout = Number(info[14]) / 10_000\n const feeInPrincipal = Number(info[13]) / 10_000\n const trueBondPriceWithFee =\n feeInPayout < 100 ? trueBondPriceHuman * (1 / ((100 - feeInPayout) / 100)) : trueBondPriceHuman\n const discountWithFee =\n payoutPrice > 0 ? ((payoutPrice - principalPrice * trueBondPriceWithFee) / payoutPrice) * 100 : 0\n const bonusWithFee =\n discountWithFee > 0 && discountWithFee < 100 ? (discountWithFee / (100 - discountWithFee)) * 100 : 0\n\n const payoutDecimals = bond.earnToken.decimals[APTOS_KEY] ?? 8\n const tokensRemaining = formatUnits(BigInt(info[23]) - BigInt(info[5]), payoutDecimals)\n\n return {\n ...bond,\n soldOut: info[2] || info[3] ? true : bond.soldOut,\n maxTotalPayout: String(info[23]),\n totalPayoutGiven: String(info[5]),\n maxPayout: String(info[21]),\n tokensRemaining,\n showcaseTokenName: bond.earnToken.symbol,\n vestingTerm: Number(info[19]),\n feeInPayout,\n feeInPrincipal,\n trueBondPrices: [\n {\n trueBondPrice: trueBondPriceScaled,\n points: '0',\n discount,\n discountWithFee,\n bonus,\n bonusWithFee,\n boost: 0,\n },\n ],\n principalTokenPrice: principalPrice.toString(),\n payoutTokenPrice: payoutPrice.toString(),\n }\n } catch (e) {\n console.warn(`[Aptos] Failed to read market_info for ${marketAddr}`, e)\n // Hide the bond from the list when on-chain data is unavailable —\n // showing a card with all zeros is confusing for users.\n return null\n }\n }),\n )\n return enriched.filter((b): b is BondsData => b !== null)\n}\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK;AAE/B;;;;;;;AAOG;AACI,MAAM,mBAAmB,GAAG,OAAO,KAAqB,EAAE,WAA2B,KAA0B;AACpH,IAAA,MAAM,YAAY,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,IAAA,IAAI,CAAC,YAAY,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE;AAE1D,IAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,YAAY,CAAC,GAAG,CAAC,OAAO,IAAI,KAA+B;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;AAC5B,QAAA,IAAI;;YAEF,IAAI,cAAc,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,EAAE,KAAM;AACrG,YAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,gBAAA,IAAI;oBACF,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,GAAG,aAAa,CAAA,sBAAA,EAAyB,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA,OAAA,EAAU,IAAI,EAAE,OAAO,CAAA,CAAE,CAC1G;AACD,oBAAA,cAAc,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC;gBACjC;AAAE,gBAAA,MAAM;oBACN,cAAc,GAAG,CAAC;gBACpB;YACF;YAEA,IAAI,WAAW,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,EAAE,KAAM;AAC/F,YAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,gBAAA,IAAI;;oBAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,GAAG,aAAa,CAAA,sBAAA,EAAyB,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA,OAAA,EAAU,IAAI,EAAE,OAAO,CAAA,CAAE,CAC5G;AACD,oBAAA,WAAW,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC;gBAC9B;AAAE,gBAAA,MAAM;oBACN,WAAW,GAAG,CAAC;gBACjB;YACF;AAEA,YAAA,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC;AAClD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE;AACpE,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE;;AAGnE,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;AACjC,YAAA,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,QAAQ,EAAE;YAC9E,MAAM,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,GAAG;;YAGzD,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,cAAc,GAAG,kBAAkB,IAAI,WAAW,IAAI,GAAG,GAAG,CAAC;YAChH,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;;YAGtF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAM;YAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAM;YAChD,MAAM,oBAAoB,GACxB,WAAW,GAAG,GAAG,GAAG,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB;YACjG,MAAM,eAAe,GACnB,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,cAAc,GAAG,oBAAoB,IAAI,WAAW,IAAI,GAAG,GAAG,CAAC;YACnG,MAAM,YAAY,GAChB,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,GAAG,GAAG,CAAC,eAAe,IAAI,GAAG,GAAG,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC;AAEtG,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;YAEvF,OAAO;AACL,gBAAA,GAAG,IAAI;AACP,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO;AACjD,gBAAA,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,gBAAA,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,gBAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,eAAe;AACf,gBAAA,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;AACxC,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7B,WAAW;gBACX,cAAc;AACd,gBAAA,cAAc,EAAE;AACd,oBAAA;AACE,wBAAA,aAAa,EAAE,mBAAmB;AAClC,wBAAA,MAAM,EAAE,GAAG;wBACX,QAAQ;wBACR,eAAe;wBACf,KAAK;wBACL,YAAY;AACZ,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA;AACF,iBAAA;AACD,gBAAA,mBAAmB,EAAE,cAAc,CAAC,QAAQ,EAAE;AAC9C,gBAAA,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE;aACzC;QACH;QAAE,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,CAAA,uCAAA,EAA0C,UAAU,CAAA,CAAE,EAAE,CAAC,CAAC;;;AAGvE,YAAA,OAAO,IAAI;QACb;IACF,CAAC,CAAC,CACH;AACD,IAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAqB,CAAC,KAAK,IAAI,CAAC;AAC3D;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { ChainId } from '@ape.swap/apeswap-lists';
2
2
  import { getSuiClient } from '../../../utils/suiHelpers.js';
3
3
  import { formatUnits } from '../../../utils/fixedPoint.js';
4
- import axios from 'axios';
4
+ import { apiGet } from '../../../utils/httpClient.js';
5
5
  import { PRICE_API_URL } from '../../../config/constants/variables.js';
6
6
 
7
7
  // =============================================================================
@@ -116,8 +116,8 @@ const fetchBondsDataSUI = async (bondsParam, prices) => {
116
116
  if (principalPrice === undefined) {
117
117
  // principalPrice = 1
118
118
  try {
119
- const res = await axios.get(`${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
120
- principalPrice = res.data.price ?? 0;
119
+ const res = await apiGet(`${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
120
+ principalPrice = res.price ?? 0;
121
121
  }
122
122
  catch {
123
123
  console.error('Failed to fetch price for: ', bond.lpToken.symbol);
@@ -128,8 +128,8 @@ const fetchBondsDataSUI = async (bondsParam, prices) => {
128
128
  if (payoutPrice === undefined) {
129
129
  try {
130
130
  // Missing token price, therefor make a single call to api to fetch it
131
- const res = await axios.get(`${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
132
- payoutPrice = res.data.price ?? 0;
131
+ const res = await apiGet(`${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`);
132
+ payoutPrice = res.price ?? 0;
133
133
  }
134
134
  catch {
135
135
  console.error('Failed to fetch price for: ', bond.earnToken.symbol);