@ape.swap/bonds-sdk 6.2.0-test.0 → 6.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/components/MenuSelect/MenuSelect.d.ts +1 -1
  2. package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
  3. package/dist/components/ProgressBar/ProgressBarWrapper.d.ts +1 -1
  4. package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -1
  5. package/dist/components/TokenInfoAndName/index.d.ts +0 -1
  6. package/dist/components/TokenInfoAndName/index.js +1 -1
  7. package/dist/components/TokenInfoAndName/index.js.map +1 -1
  8. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  9. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  10. package/dist/components/uikit-sdk/Button/Button.js +0 -36
  11. package/dist/components/uikit-sdk/Button/Button.js.map +1 -1
  12. package/dist/components/uikit-sdk/Button/types.d.ts +6 -10
  13. package/dist/components/uikit-sdk/Button/types.js +0 -5
  14. package/dist/components/uikit-sdk/Button/types.js.map +1 -1
  15. package/dist/components/uikit-sdk/Checkbox/types.d.ts +2 -1
  16. package/dist/components/uikit-sdk/Checkbox/types.js.map +1 -1
  17. package/dist/components/uikit-sdk/Skeleton/styles.d.ts +0 -12
  18. package/dist/components/uikit-sdk/Skeleton/styles.js +1 -1
  19. package/dist/components/uikit-sdk/Skeleton/styles.js.map +1 -1
  20. package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.d.ts +2 -2
  21. package/dist/components/uikit-sdk/Svg/styles.d.ts +0 -2
  22. package/dist/components/uikit-sdk/Svg/styles.js.map +1 -1
  23. package/dist/components/uikit-sdk/Text/types.d.ts +1 -1
  24. package/dist/components/uikit-sdk/Text/types.js +1 -1
  25. package/dist/components/uikit-sdk/Text/types.js.map +1 -1
  26. package/dist/components/uikit-sdk/TooltipBubble/types.d.ts +2 -1
  27. package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -1
  28. package/dist/config/constants/aptosZapTokens.d.ts +0 -9
  29. package/dist/config/constants/aptosZapTokens.js +1 -2
  30. package/dist/config/constants/aptosZapTokens.js.map +1 -1
  31. package/dist/config/constants/networks.d.ts +0 -2
  32. package/dist/config/constants/networks.js +1 -1
  33. package/dist/config/constants/networks.js.map +1 -1
  34. package/dist/config/constants/tokens.d.ts +1 -2
  35. package/dist/constants/aptosConstants.d.ts +0 -6
  36. package/dist/constants/aptosConstants.js +15 -1
  37. package/dist/constants/aptosConstants.js.map +1 -1
  38. package/dist/constants/solanaConstants.d.ts +0 -6
  39. package/dist/constants/solanaConstants.js +0 -21
  40. package/dist/constants/solanaConstants.js.map +1 -1
  41. package/dist/constants/suiConstants.d.ts +0 -5
  42. package/dist/constants/suiConstants.js +11 -0
  43. package/dist/constants/suiConstants.js.map +1 -1
  44. package/dist/hooks/useSortedZapList.d.ts +1 -1
  45. package/dist/hooks/useSortedZapList.js +1 -2
  46. package/dist/hooks/useSortedZapList.js.map +1 -1
  47. package/dist/hooks/useTokenFromZapList.js +0 -1
  48. package/dist/hooks/useTokenFromZapList.js.map +1 -1
  49. package/dist/state/balance/useCurrencyBalanceSolana.d.ts +0 -2
  50. package/dist/state/balance/useCurrencyBalanceSolana.js +0 -1
  51. package/dist/state/balance/useCurrencyBalanceSolana.js.map +1 -1
  52. package/dist/state/bondApiStats/useGetBondApiStats.d.ts +0 -1
  53. package/dist/state/bondApiStats/useGetBondApiStats.js +1 -1
  54. package/dist/state/bondApiStats/useGetBondApiStats.js.map +1 -1
  55. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.d.ts +1 -2
  56. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js +1 -1
  57. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +1 -1
  58. package/dist/state/bonds/useBondsList.d.ts +1 -2
  59. package/dist/state/bonds/useBondsList.js +1 -1
  60. package/dist/state/bonds/useBondsList.js.map +1 -1
  61. package/dist/state/bonds/useBondsListPreTGE.d.ts +1 -2
  62. package/dist/state/bonds/useBondsListPreTGE.js +1 -1
  63. package/dist/state/bonds/useBondsListPreTGE.js.map +1 -1
  64. package/dist/state/bonds/useTierProofSignature.d.ts +0 -1
  65. package/dist/state/bonds/useTierProofSignature.js +1 -1
  66. package/dist/state/bonds/useTierProofSignature.js.map +1 -1
  67. package/dist/state/bonds/useUserBondsPreTGE.d.ts +3 -4
  68. package/dist/state/bonds/useUserBondsPreTGE.js +1 -1
  69. package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
  70. package/dist/state/historicalPrice/useHistoricalPrice.d.ts +1 -2
  71. package/dist/state/historicalPrice/useHistoricalPrice.js +1 -1
  72. package/dist/state/historicalPrice/useHistoricalPrice.js.map +1 -1
  73. package/dist/state/hotBonds/useHotBonds.d.ts +0 -2
  74. package/dist/state/hotBonds/useHotBonds.js +1 -1
  75. package/dist/state/hotBonds/useHotBonds.js.map +1 -1
  76. package/dist/state/price/useCurrencyPrice.js +1 -2
  77. package/dist/state/price/useCurrencyPrice.js.map +1 -1
  78. package/dist/state/recommendations/useGetBondRecommendations.d.ts +0 -1
  79. package/dist/state/recommendations/useGetBondRecommendations.js +1 -1
  80. package/dist/state/recommendations/useGetBondRecommendations.js.map +1 -1
  81. package/dist/state/tiers/useTierPoints.d.ts +0 -6
  82. package/dist/state/tiers/useTierPoints.js +1 -1
  83. package/dist/state/tiers/useTierPoints.js.map +1 -1
  84. package/dist/state/zap/useAptosZapQuote.d.ts +1 -16
  85. package/dist/state/zap/useAptosZapQuote.js.map +1 -1
  86. package/dist/state/zap/useSoulZapBondQuote.js +0 -1
  87. package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
  88. package/dist/state/zap/useSuiZapQuote.d.ts +1 -1
  89. package/dist/state/zap/useSuiZapQuote.js.map +1 -1
  90. package/dist/theme/base.d.ts +1 -4
  91. package/dist/theme/base.js +1 -1
  92. package/dist/theme/base.js.map +1 -1
  93. package/dist/theme/components.d.ts +0 -20
  94. package/dist/theme/components.js +1 -1
  95. package/dist/theme/components.js.map +1 -1
  96. package/dist/types/aptosBonds.d.ts +0 -60
  97. package/dist/types/bondIssuanceCodec.d.ts +0 -1
  98. package/dist/types/bondIssuanceCodec.js.map +1 -1
  99. package/dist/types/bondTermCodec.d.ts +0 -1
  100. package/dist/types/bondTermCodec.js.map +1 -1
  101. package/dist/types/solanaBonds.d.ts +4 -3
  102. package/dist/utils/aptosHelpers.d.ts +1 -14
  103. package/dist/utils/aptosHelpers.js +30 -2
  104. package/dist/utils/aptosHelpers.js.map +1 -1
  105. package/dist/utils/calculateSolanaTrueBillPrice.d.ts +0 -1
  106. package/dist/utils/calculateSolanaTrueBillPrice.js +0 -5
  107. package/dist/utils/calculateSolanaTrueBillPrice.js.map +1 -1
  108. package/dist/utils/convertToBigish.d.ts +0 -1
  109. package/dist/utils/convertToBigish.js +1 -1
  110. package/dist/utils/convertToBigish.js.map +1 -1
  111. package/dist/utils/displayHelpers.d.ts +0 -6
  112. package/dist/utils/displayHelpers.js +1 -1
  113. package/dist/utils/displayHelpers.js.map +1 -1
  114. package/dist/utils/formatNumber.d.ts +0 -7
  115. package/dist/utils/formatNumber.js +1 -1
  116. package/dist/utils/formatNumber.js.map +1 -1
  117. package/dist/utils/getNativeTicker.js +0 -1
  118. package/dist/utils/getNativeTicker.js.map +1 -1
  119. package/dist/utils/suiHelpers.d.ts +0 -2
  120. package/dist/utils/suiHelpers.js +13 -15
  121. package/dist/utils/suiHelpers.js.map +1 -1
  122. package/dist/views/Bonds/Bonds.d.ts +0 -4
  123. package/dist/views/Bonds/Bonds.js.map +1 -1
  124. package/dist/views/Bonds/components/BondRows/ActiveBondRows.d.ts +1 -1
  125. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
  126. package/dist/views/Bonds/components/BondRows/BondRow.d.ts +2 -2
  127. package/dist/views/Bonds/components/BondRows/BondRow.js +3 -1
  128. package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
  129. package/dist/views/Bonds/components/BondRows/ModalHandler.js +5 -2
  130. package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -1
  131. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.d.ts +1 -1
  132. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -1
  133. package/dist/views/Bonds/utils.d.ts +0 -2
  134. package/dist/views/Bonds/utils.js.map +1 -1
  135. package/dist/views/BuyBond/BuyBondModal.d.ts +3 -3
  136. package/dist/views/BuyBond/BuyBondModal.js +5 -3
  137. package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
  138. package/dist/views/BuyBond/BuyComponent.d.ts +2 -2
  139. package/dist/views/BuyBond/BuyComponent.js +6 -3
  140. package/dist/views/BuyBond/BuyComponent.js.map +1 -1
  141. package/dist/views/BuyBond/BuyComponentAptos.d.ts +1 -1
  142. package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -1
  143. package/dist/views/BuyBond/BuyComponentSolana.d.ts +1 -1
  144. package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
  145. package/dist/views/BuyBond/BuyComponentSui.d.ts +1 -1
  146. package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
  147. package/dist/views/ProjectView/ProjectView.js +2 -2
  148. package/dist/views/ProjectView/ProjectView.js.map +1 -1
  149. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.d.ts +1 -1
  150. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
  151. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.d.ts +1 -1
  152. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
  153. package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.d.ts +1 -1
  154. package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js.map +1 -1
  155. package/dist/views/ProjectView/components/BondStats/types.d.ts +2 -1
  156. package/dist/views/ProjectView/components/BondStats/types.js.map +1 -1
  157. package/dist/views/SingleBond/SingleBond.js +2 -2
  158. package/dist/views/SingleBond/SingleBond.js.map +1 -1
  159. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.d.ts +1 -1
  160. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
  161. package/package.json +6 -5
  162. package/dist/components/AccordionText/index.d.ts +0 -6
  163. package/dist/components/RestrictedRegionModal/index.d.ts +0 -5
  164. package/dist/components/TabNavigation/index.d.ts +0 -8
  165. package/dist/components/uikit-sdk/Input/NumericInput.d.ts +0 -9
  166. package/dist/components/uikit-sdk/Modal/ModalFooter.d.ts +0 -4
  167. package/dist/components/uikit-sdk/Svg/Icons/Audit.d.ts +0 -4
  168. package/dist/components/uikit-sdk/Svg/Icons/Fire.d.ts +0 -4
  169. package/dist/components/uikit-sdk/Svg/Icons/FullLogo.d.ts +0 -4
  170. package/dist/components/uikit-sdk/Svg/Icons/Instagram.d.ts +0 -4
  171. package/dist/components/uikit-sdk/Svg/Icons/Language.d.ts +0 -4
  172. package/dist/components/uikit-sdk/Svg/Icons/Medium.d.ts +0 -4
  173. package/dist/components/uikit-sdk/Svg/Icons/Pool.d.ts +0 -4
  174. package/dist/components/uikit-sdk/Svg/Icons/Reddit.d.ts +0 -4
  175. package/dist/components/uikit-sdk/Svg/Icons/Telegram.d.ts +0 -4
  176. package/dist/components/uikit-sdk/Svg/Icons/Website.d.ts +0 -4
  177. package/dist/components/uikit-sdk/Svg/tokens/BSC.d.ts +0 -4
  178. package/dist/components/uikit-sdk/Svg/tokens/CELO.d.ts +0 -4
  179. package/dist/components/uikit-sdk/Svg/tokens/CRONOS.d.ts +0 -4
  180. package/dist/components/uikit-sdk/Svg/tokens/FANTOM.d.ts +0 -4
  181. package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.d.ts +0 -4
  182. package/dist/components/uikit-sdk/Svg/tokens/OKX.d.ts +0 -4
  183. package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.d.ts +0 -4
  184. package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.d.ts +0 -4
  185. package/dist/config/constants/tokens.js +0 -36
  186. package/dist/config/constants/tokens.js.map +0 -1
  187. package/dist/contexts/RefreshContext.d.ts +0 -10
  188. package/dist/hooks/useRefresh.d.ts +0 -6
  189. package/dist/hooks/useTimer.d.ts +0 -2
  190. package/dist/state/bondApiStats/useUserApiStats.d.ts +0 -22
  191. package/dist/state/bonds/aptosBondsConfig.d.ts +0 -4
  192. package/dist/state/bonds/fetchUsersBonds/getBillNftData.d.ts +0 -9
  193. package/dist/state/geoFencing/useGeoFencing.d.ts +0 -5
  194. package/dist/state/zap/useSoulZapTokenQuote.d.ts +0 -3
  195. package/dist/state/zap/useTierOptimizationPreview.d.ts +0 -27
  196. package/dist/views/ZapModal/index.d.ts +0 -13
  197. package/dist/views/ZapModal/styles.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["export type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nexport const breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal: 102 },\n styles: {\n root: {\n fontFamily: 'body',\n webkitFontSmoothing: 'antialiasing',\n fontWeight: 600,\n color: 'text',\n bg: 'white1',\n textDecoration: 'none',\n },\n a: {\n color: 'text',\n textDecoration: 'none',\n ':hover': {\n color: 'secondary',\n textDecoration: 'underline',\n },\n },\n nav: {\n textDecoration: 'none',\n breakpoints: [`@media screen and (min-width: ${breakpointMap.lg}px)`],\n a: {\n textDecoration: 'none',\n },\n },\n progress: {\n primary: 'primary',\n color: 'green',\n background: '#DAA628',\n height: '20px',\n },\n hr: {\n background: 'dividerColor',\n height: '1px',\n border: 'none',\n },\n h1: {\n variant: 'text.heading',\n fontSize: '30px',\n lineHeight: '45px',\n },\n h2: {\n variant: 'text.heading',\n fontSize: '25px',\n lineHeight: '37px',\n },\n h3: {\n variant: 'text.heading',\n fontSize: '22px',\n lineHeight: '33px',\n },\n h4: {\n variant: 'text.heading',\n fontSize: '20px',\n lineHeight: '30px',\n },\n h5: {\n variant: 'text.heading',\n fontSize: '16px',\n lineHeight: '24px',\n },\n banner: {\n variant: 'text.heading',\n fontWeight: '800',\n fontSize: '60px',\n lineHeight: '66px',\n },\n input: {\n fontFamily: 'base',\n fontWeight: 'base',\n },\n },\n}\n\nexport default baseTheme\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nconst breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal: 102 },\n styles: {\n root: {\n fontFamily: 'body',\n webkitFontSmoothing: 'antialiasing',\n fontWeight: 600,\n color: 'text',\n bg: 'white1',\n textDecoration: 'none',\n },\n a: {\n color: 'text',\n textDecoration: 'none',\n ':hover': {\n color: 'secondary',\n textDecoration: 'underline',\n },\n },\n nav: {\n textDecoration: 'none',\n breakpoints: [`@media screen and (min-width: ${breakpointMap.lg}px)`],\n a: {\n textDecoration: 'none',\n },\n },\n progress: {\n primary: 'primary',\n color: 'green',\n background: '#DAA628',\n height: '20px',\n },\n hr: {\n background: 'dividerColor',\n height: '1px',\n border: 'none',\n },\n h1: {\n variant: 'text.heading',\n fontSize: '30px',\n lineHeight: '45px',\n },\n h2: {\n variant: 'text.heading',\n fontSize: '25px',\n lineHeight: '37px',\n },\n h3: {\n variant: 'text.heading',\n fontSize: '22px',\n lineHeight: '33px',\n },\n h4: {\n variant: 'text.heading',\n fontSize: '20px',\n lineHeight: '30px',\n },\n h5: {\n variant: 'text.heading',\n fontSize: '16px',\n lineHeight: '24px',\n },\n banner: {\n variant: 'text.heading',\n fontWeight: '800',\n fontSize: '60px',\n lineHeight: '66px',\n },\n input: {\n fontFamily: 'base',\n fontWeight: 'base',\n },\n },\n}\n\nexport default baseTheme\n"],"names":[],"mappings":"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"}
@@ -1,23 +1,3 @@
1
- export declare const textUnderlineHover: {
2
- '::after': {
3
- content: string;
4
- position: string;
5
- background: string;
6
- left: string;
7
- bottom: string;
8
- height: string;
9
- width: string;
10
- borderRadius: string;
11
- transform: string;
12
- transformOrigin: string;
13
- transition: string;
14
- backfaceVisibility: string;
15
- };
16
- ':hover::after': {
17
- transform: string;
18
- transformOrigin: string;
19
- };
20
- };
21
1
  declare const components: {
22
2
  text: {
23
3
  heading: {
@@ -361,5 +361,5 @@ const components = {
361
361
  },
362
362
  };
363
363
 
364
- export { components as default, textUnderlineHover };
364
+ export { components as default };
365
365
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../src/theme/components.ts"],"sourcesContent":["export const textUnderlineHover = {\n '::after': {\n content: \"''\",\n position: 'absolute',\n background: 'text',\n left: '0px',\n bottom: '0px',\n height: '1.5px',\n width: '100%',\n borderRadius: 'normal',\n transform: 'scaleX(0)',\n transformOrigin: 'bottom right',\n transition: 'transform 0.25s ease-out',\n backfaceVisibility: 'hidden',\n },\n ':hover::after': {\n transform: 'scaleX(1)',\n transformOrigin: 'bottom left',\n },\n}\n\nconst buttonBaseStyles = {\n padding: '10px 20px 10px 19px',\n fontSize: '16px',\n fontFamily: 'body',\n cursor: 'pointer',\n fontWeight: 700,\n display: 'flex',\n alignItems: 'center',\n '&&': {\n borderRadius: 'normal',\n },\n}\n\nconst components = {\n text: {\n heading: {\n fontFamily: 'body',\n fontWeight: 'bold',\n },\n lg: { fontSize: 6, lineHeight: '33px' },\n md: { fontSize: 3, lineHeight: '24px' },\n sm: { fontSize: 1, lineHeight: '18px' },\n },\n input: {\n fontFamily: 'body',\n fontWeight: 700,\n sm: {\n background: 'white3',\n borderRadius: 'normal',\n height: '32px',\n width: '200px',\n },\n md: {\n background: 'white3',\n borderRadius: 'normal',\n height: '36px',\n width: '200px',\n },\n lg: {\n background: 'white3',\n borderRadius: 'normal',\n height: '48px',\n width: '200px',\n },\n },\n textarea: {\n padding: '10px 13px 10px 10px',\n borderRadius: 'normal',\n border: 'none',\n fontWeight: 'normal',\n background: 'lvl1',\n resize: 'none',\n color: 'textareaColor',\n '&:focus': {\n outline: 'none !important',\n },\n },\n checkbox: {\n background: 'white2',\n borderRadius: 'normal',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'white3',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + svg': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-primaryButton)',\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n '& + svg': {\n display: 'block',\n },\n },\n '&:focus:not(:checked)': {\n outline: 'none',\n boxShadow: 'none',\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n },\n radio: {\n background: 'lvl1',\n borderRadius: '50px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'lvl2',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + span': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n backgroundColor: 'radioChecked',\n borderRadius: '50px',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-yellow)',\n borderColor: 'var(--theme-ui-colors-yellow)',\n '& + span': {\n display: 'block',\n },\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-yellow), 0px 0px 0px 4px rgb(255, 179, 0, .2)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n label: {\n inline: {\n display: 'inline-flex',\n alignItems: 'center',\n columnGap: 2,\n },\n },\n borders: {\n primaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n primaryBtnDisable: '3px solid transparent',\n secondaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n secondaryButtonDisable: '3px solid #FDFBF5',\n mode: {\n dark: {\n secondaryButtonDisable: '3px solid #F9F4E7',\n },\n },\n },\n buttons: {\n primary: {\n ...buttonBaseStyles,\n background: 'primaryButton',\n border: 'primaryButton',\n color: 'primaryBright',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'textDisabledButton',\n border: 'primaryBtnDisable',\n opacity: 0.9,\n },\n '&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n background: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n secondary: {\n ...buttonBaseStyles,\n background: 'transparent',\n border: 'secondaryButton',\n color: 'var(--theme-ui-colors-primaryButton)',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n border: 'primaryBtnDisable',\n },\n '&&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n tertiary: {\n ...buttonBaseStyles,\n background: 'white3',\n border: 'none',\n color: 'text',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'white4',\n },\n '&:disabled': {},\n },\n },\n text: {\n ...buttonBaseStyles,\n background: 'transparent',\n color: 'text',\n\n '&:hover': {\n '&:not([disabled])': {\n color: 'var(--theme-ui-colors-yellow)',\n },\n '&:disabled': {},\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n },\n success: {\n ...buttonBaseStyles,\n background: 'success',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredSuccess',\n },\n '&:disabled': {},\n },\n },\n danger: {\n ...buttonBaseStyles,\n background: 'error',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredDanger',\n },\n '&:disabled': {},\n },\n },\n circular: {\n width: '40px',\n height: '40px',\n background: 'white3',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n cursor: 'pointer',\n padding: '1px',\n transition: 'all .3s linear',\n\n '&:hover': {\n filter: 'brightness(85%)',\n },\n\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n },\n cards: {\n primary: {\n background: 'navbar',\n borderRadius: 'normal',\n },\n },\n flex: {\n dexContainer: {\n width: '100%',\n maxWidth: '420px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n flexDirection: 'column',\n },\n v3SubDexContainer: {\n width: '100%',\n maxWidth: '600px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n margin: '0px 10px',\n flexDirection: 'column',\n },\n navContainer: {\n height: '35px',\n padding: '0px 15px',\n background: 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n cursor: 'pointer',\n transition: 'all .3s linear',\n '&:hover': {\n filter: 'brightness(95%)',\n },\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n link: {\n ...textUnderlineHover,\n cursor: 'pointer',\n textDecoration: 'none',\n display: 'inline-block',\n },\n tag: {\n padding: '5px',\n borderRadius: 'normal',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n switch: {\n backgroundColor: 'white4',\n 'input:checked ~ &': {\n backgroundColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n}\n\nexport default components\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sources":["../../src/theme/components.ts"],"sourcesContent":["const textUnderlineHover = {\n '::after': {\n content: \"''\",\n position: 'absolute',\n background: 'text',\n left: '0px',\n bottom: '0px',\n height: '1.5px',\n width: '100%',\n borderRadius: 'normal',\n transform: 'scaleX(0)',\n transformOrigin: 'bottom right',\n transition: 'transform 0.25s ease-out',\n backfaceVisibility: 'hidden',\n },\n ':hover::after': {\n transform: 'scaleX(1)',\n transformOrigin: 'bottom left',\n },\n}\n\nconst buttonBaseStyles = {\n padding: '10px 20px 10px 19px',\n fontSize: '16px',\n fontFamily: 'body',\n cursor: 'pointer',\n fontWeight: 700,\n display: 'flex',\n alignItems: 'center',\n '&&': {\n borderRadius: 'normal',\n },\n}\n\nconst components = {\n text: {\n heading: {\n fontFamily: 'body',\n fontWeight: 'bold',\n },\n lg: { fontSize: 6, lineHeight: '33px' },\n md: { fontSize: 3, lineHeight: '24px' },\n sm: { fontSize: 1, lineHeight: '18px' },\n },\n input: {\n fontFamily: 'body',\n fontWeight: 700,\n sm: {\n background: 'white3',\n borderRadius: 'normal',\n height: '32px',\n width: '200px',\n },\n md: {\n background: 'white3',\n borderRadius: 'normal',\n height: '36px',\n width: '200px',\n },\n lg: {\n background: 'white3',\n borderRadius: 'normal',\n height: '48px',\n width: '200px',\n },\n },\n textarea: {\n padding: '10px 13px 10px 10px',\n borderRadius: 'normal',\n border: 'none',\n fontWeight: 'normal',\n background: 'lvl1',\n resize: 'none',\n color: 'textareaColor',\n '&:focus': {\n outline: 'none !important',\n },\n },\n checkbox: {\n background: 'white2',\n borderRadius: 'normal',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'white3',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + svg': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-primaryButton)',\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n '& + svg': {\n display: 'block',\n },\n },\n '&:focus:not(:checked)': {\n outline: 'none',\n boxShadow: 'none',\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n },\n radio: {\n background: 'lvl1',\n borderRadius: '50px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'lvl2',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + span': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n backgroundColor: 'radioChecked',\n borderRadius: '50px',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-yellow)',\n borderColor: 'var(--theme-ui-colors-yellow)',\n '& + span': {\n display: 'block',\n },\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-yellow), 0px 0px 0px 4px rgb(255, 179, 0, .2)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n label: {\n inline: {\n display: 'inline-flex',\n alignItems: 'center',\n columnGap: 2,\n },\n },\n borders: {\n primaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n primaryBtnDisable: '3px solid transparent',\n secondaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n secondaryButtonDisable: '3px solid #FDFBF5',\n mode: {\n dark: {\n secondaryButtonDisable: '3px solid #F9F4E7',\n },\n },\n },\n buttons: {\n primary: {\n ...buttonBaseStyles,\n background: 'primaryButton',\n border: 'primaryButton',\n color: 'primaryBright',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'textDisabledButton',\n border: 'primaryBtnDisable',\n opacity: 0.9,\n },\n '&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n background: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n secondary: {\n ...buttonBaseStyles,\n background: 'transparent',\n border: 'secondaryButton',\n color: 'var(--theme-ui-colors-primaryButton)',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n border: 'primaryBtnDisable',\n },\n '&&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n tertiary: {\n ...buttonBaseStyles,\n background: 'white3',\n border: 'none',\n color: 'text',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'white4',\n },\n '&:disabled': {},\n },\n },\n text: {\n ...buttonBaseStyles,\n background: 'transparent',\n color: 'text',\n\n '&:hover': {\n '&:not([disabled])': {\n color: 'var(--theme-ui-colors-yellow)',\n },\n '&:disabled': {},\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n },\n success: {\n ...buttonBaseStyles,\n background: 'success',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredSuccess',\n },\n '&:disabled': {},\n },\n },\n danger: {\n ...buttonBaseStyles,\n background: 'error',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredDanger',\n },\n '&:disabled': {},\n },\n },\n circular: {\n width: '40px',\n height: '40px',\n background: 'white3',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n cursor: 'pointer',\n padding: '1px',\n transition: 'all .3s linear',\n\n '&:hover': {\n filter: 'brightness(85%)',\n },\n\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n },\n cards: {\n primary: {\n background: 'navbar',\n borderRadius: 'normal',\n },\n },\n flex: {\n dexContainer: {\n width: '100%',\n maxWidth: '420px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n flexDirection: 'column',\n },\n v3SubDexContainer: {\n width: '100%',\n maxWidth: '600px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n margin: '0px 10px',\n flexDirection: 'column',\n },\n navContainer: {\n height: '35px',\n padding: '0px 15px',\n background: 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n cursor: 'pointer',\n transition: 'all .3s linear',\n '&:hover': {\n filter: 'brightness(95%)',\n },\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n link: {\n ...textUnderlineHover,\n cursor: 'pointer',\n textDecoration: 'none',\n display: 'inline-block',\n },\n tag: {\n padding: '5px',\n borderRadius: 'normal',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n switch: {\n backgroundColor: 'white4',\n 'input:checked ~ &': {\n backgroundColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n}\n\nexport default components\n"],"names":[],"mappings":"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"}
@@ -3,88 +3,28 @@
3
3
  * `control_variable` is the BCV scaled by `bond::PERCENTAGE_BASE` (1e6).
4
4
  * `vesting_term` and timestamps are in seconds.
5
5
  */
6
- export interface AptosBondTerms {
7
- control_variable: string;
8
- vesting_term: string;
9
- minimum_price: string;
10
- max_payout: string;
11
- max_debt: string;
12
- max_total_payout: string;
13
- initial_debt: string;
14
- }
15
6
  /**
16
7
  * AptosBondMarket — subset of `apebond::bond::BondMarket` that we actually
17
8
  * read from the SDK. `extend_ref`, `operators`, `redeemer_approved` and the
18
9
  * full `bills` map are intentionally omitted to keep the TS shape lean.
19
10
  */
20
- export interface AptosBondMarket {
21
- payout_token: {
22
- inner: string;
23
- };
24
- principal_token: {
25
- inner: string;
26
- };
27
- treasury: {
28
- inner: string;
29
- };
30
- fee_in_principal_recipient: string;
31
- fee_in_payout_recipient: string;
32
- terms: AptosBondTerms;
33
- fee_in_principal: string;
34
- fee_in_payout: string;
35
- total_principal_billed: string;
36
- total_payout_given: string;
37
- payout_token_initial_supply: string;
38
- total_debt: string;
39
- last_decay: string;
40
- last_bcv_update_timestamp: string;
41
- min_bcv_update_interval: string;
42
- paused: boolean;
43
- emergency_paused: boolean;
44
- name: string;
45
- }
46
11
  /**
47
12
  * Derived pricing view — the values that the `bond_pricing` view function
48
13
  * returns in a single shot. Kept as a separate interface because some
49
14
  * consumers only care about pricing and we do not want to force them to read
50
15
  * the whole market resource.
51
16
  */
52
- export interface AptosBondPricing {
53
- bond_price: string;
54
- true_bond_price: string;
55
- debt_ratio: string;
56
- debt_decay: string;
57
- current_debt: string;
58
- }
59
17
  /**
60
18
  * Bill — mirror of `apebond::bond::Bill`. One per user position.
61
19
  */
62
- export interface AptosBill {
63
- payout: string;
64
- payout_claimed: string;
65
- vesting_term: string;
66
- vesting_start_timestamp: string;
67
- last_claim_timestamp: string;
68
- true_price_paid: string;
69
- }
70
20
  /**
71
21
  * Arguments forwarded to `apebond::bond::deposit`. Numeric values are always
72
22
  * stringified BigInts to keep compatibility with the Aptos TS SDK which
73
23
  * serialises BCS arguments from strings.
74
24
  */
75
- export interface AptosDepositPayload {
76
- market: string;
77
- amount: string;
78
- max_price: string;
79
- depositor: string;
80
- }
81
25
  /**
82
26
  * Arguments forwarded to `apebond::bond::claim(market, bill_id: u64)`.
83
27
  */
84
- export interface AptosClaimPayload {
85
- market: string;
86
- bill_id: string;
87
- }
88
28
  /**
89
29
  * Tuple shape returned by `apebond::bond::market_info(market)` — 27 elements.
90
30
  *
@@ -20,4 +20,3 @@ export interface BondIssuanceAccount {
20
20
  }
21
21
  export declare const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount>;
22
22
  export declare function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean;
23
- export declare function getBondStatusString(status: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"bondIssuanceCodec.js","sources":["../../src/types/bondIssuanceCodec.ts"],"sourcesContent":["import { Address, getAddressDecoder } from '@solana/addresses'\nimport {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU32Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_ISSUANCE_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondIssuance account interface based on IDL\nexport interface BondIssuanceAccount {\n anchorDiscriminator: ReadonlyUint8Array\n issuanceCounter: number\n bondCounter: number\n payoutMint: Address\n principalMint: Address\n principalMintDecimals: number\n payoutMintDecimals: number\n treasuryAta: Address\n status: number // 0 = Paused, 1 = Active, 2 = Closed\n feeInPrincipal: bigint\n feePrincipalRecipient: Address\n feeInPayout: bigint\n feePayoutRecipient: Address\n partnerPrincipalRecipient: Address\n collection: Address\n bump: number\n}\n\n// BondIssuance discriminator from IDL\n\n// Create the BondIssuance account decoder using Solana Kit's codec utilities\nexport const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['issuanceCounter', getU32Decoder()],\n ['bondCounter', getU32Decoder()],\n ['payoutMint', getAddressDecoder()],\n ['principalMint', getAddressDecoder()],\n ['principalMintDecimals', getU8Decoder()],\n ['payoutMintDecimals', getU8Decoder()],\n ['treasuryAta', getAddressDecoder()],\n ['status', getU8Decoder()],\n ['feeInPrincipal', getU64Decoder()],\n ['feePrincipalRecipient', getAddressDecoder()],\n ['feeInPayout', getU64Decoder()],\n ['feePayoutRecipient', getAddressDecoder()],\n ['partnerPrincipalRecipient', getAddressDecoder()],\n ['collection', getAddressDecoder()],\n ['bump', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_ISSUANCE_DISCRIMINATOR[index])\n}\n\n// Helper function to get status string\nexport function getBondStatusString(status: number): string {\n switch (status) {\n case 0:\n return 'Paused'\n case 1:\n return 'Active'\n case 2:\n return 'Closed'\n default:\n return 'Unknown'\n }\n}\n"],"names":[],"mappings":";;;;AAiCA;AAEA;AACO,MAAM,mBAAmB,GAA0C,gBAAgB,CAAC;IACzF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;AACtC,IAAA,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC;AACzC,IAAA,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACtC,IAAA,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACpC,IAAA,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;AAC9C,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AAC3C,IAAA,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,CAAC;AAClD,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;AACzB,CAAA;AAED;AACM,SAAU,+BAA+B,CAAC,IAAwB,EAAA;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACtG;;;;"}
1
+ {"version":3,"file":"bondIssuanceCodec.js","sources":["../../src/types/bondIssuanceCodec.ts"],"sourcesContent":["import { Address, getAddressDecoder } from '@solana/addresses'\nimport {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU32Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_ISSUANCE_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondIssuance account interface based on IDL\nexport interface BondIssuanceAccount {\n anchorDiscriminator: ReadonlyUint8Array\n issuanceCounter: number\n bondCounter: number\n payoutMint: Address\n principalMint: Address\n principalMintDecimals: number\n payoutMintDecimals: number\n treasuryAta: Address\n status: number // 0 = Paused, 1 = Active, 2 = Closed\n feeInPrincipal: bigint\n feePrincipalRecipient: Address\n feeInPayout: bigint\n feePayoutRecipient: Address\n partnerPrincipalRecipient: Address\n collection: Address\n bump: number\n}\n\n// BondIssuance discriminator from IDL\n\n// Create the BondIssuance account decoder using Solana Kit's codec utilities\nexport const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['issuanceCounter', getU32Decoder()],\n ['bondCounter', getU32Decoder()],\n ['payoutMint', getAddressDecoder()],\n ['principalMint', getAddressDecoder()],\n ['principalMintDecimals', getU8Decoder()],\n ['payoutMintDecimals', getU8Decoder()],\n ['treasuryAta', getAddressDecoder()],\n ['status', getU8Decoder()],\n ['feeInPrincipal', getU64Decoder()],\n ['feePrincipalRecipient', getAddressDecoder()],\n ['feeInPayout', getU64Decoder()],\n ['feePayoutRecipient', getAddressDecoder()],\n ['partnerPrincipalRecipient', getAddressDecoder()],\n ['collection', getAddressDecoder()],\n ['bump', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_ISSUANCE_DISCRIMINATOR[index])\n}\n"],"names":[],"mappings":";;;;AAiCA;AAEA;AACO,MAAM,mBAAmB,GAA0C,gBAAgB,CAAC;IACzF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;AACtC,IAAA,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC;AACzC,IAAA,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACtC,IAAA,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACpC,IAAA,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;AAC9C,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AAC3C,IAAA,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,CAAC;AAClD,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;AACzB,CAAA;AAED;AACM,SAAU,+BAA+B,CAAC,IAAwB,EAAA;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACtG;;;;"}
@@ -13,4 +13,3 @@ export interface BondTermAccount {
13
13
  }
14
14
  export declare const bondTermDecoder: FixedSizeDecoder<BondTermAccount>;
15
15
  export declare function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean;
16
- export declare function getVestingStrategyString(strategy: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"bondTermCodec.js","sources":["../../src/types/bondTermCodec.ts"],"sourcesContent":["import {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_TERM_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondTerm account interface based on IDL\nexport interface BondTermAccount {\n anchorDiscriminator: ReadonlyUint8Array\n controlVariable: bigint\n vestingEnd: bigint\n minimumDebt: bigint\n maxPayout: bigint\n maxDebt: bigint\n maxTotalPayout: bigint\n initialDebt: bigint\n payoutTokenInitialSupply: bigint\n vestingStrategy: number\n}\n\n// Create the BondTerm account decoder\nexport const bondTermDecoder: FixedSizeDecoder<BondTermAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['controlVariable', getU64Decoder()],\n ['vestingEnd', getU64Decoder()],\n ['minimumDebt', getU64Decoder()],\n ['maxPayout', getU64Decoder()],\n ['maxDebt', getU64Decoder()],\n ['maxTotalPayout', getU64Decoder()],\n ['initialDebt', getU64Decoder()],\n ['payoutTokenInitialSupply', getU64Decoder()],\n ['vestingStrategy', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_TERM_DISCRIMINATOR[index])\n}\n\n// Helper function to get vesting strategy string\nexport function getVestingStrategyString(strategy: number): string {\n // Add your vesting strategy mapping based on your program\n switch (strategy) {\n case 0:\n return 'Linear'\n case 1:\n return 'Cliff'\n default:\n return 'Unknown'\n }\n}\n"],"names":[],"mappings":";;;AAyBA;AACO,MAAM,eAAe,GAAsC,gBAAgB,CAAC;IACjF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;AAC/B,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;AAC9B,IAAA,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;AAC5B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,0BAA0B,EAAE,aAAa,EAAE,CAAC;AAC7C,IAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACpC,CAAA;AAED;AACM,SAAU,2BAA2B,CAAC,IAAwB,EAAA;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAClG;;;;"}
1
+ {"version":3,"file":"bondTermCodec.js","sources":["../../src/types/bondTermCodec.ts"],"sourcesContent":["import {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_TERM_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondTerm account interface based on IDL\nexport interface BondTermAccount {\n anchorDiscriminator: ReadonlyUint8Array\n controlVariable: bigint\n vestingEnd: bigint\n minimumDebt: bigint\n maxPayout: bigint\n maxDebt: bigint\n maxTotalPayout: bigint\n initialDebt: bigint\n payoutTokenInitialSupply: bigint\n vestingStrategy: number\n}\n\n// Create the BondTerm account decoder\nexport const bondTermDecoder: FixedSizeDecoder<BondTermAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['controlVariable', getU64Decoder()],\n ['vestingEnd', getU64Decoder()],\n ['minimumDebt', getU64Decoder()],\n ['maxPayout', getU64Decoder()],\n ['maxDebt', getU64Decoder()],\n ['maxTotalPayout', getU64Decoder()],\n ['initialDebt', getU64Decoder()],\n ['payoutTokenInitialSupply', getU64Decoder()],\n ['vestingStrategy', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_TERM_DISCRIMINATOR[index])\n}\n"],"names":[],"mappings":";;;AAyBA;AACO,MAAM,eAAe,GAAsC,gBAAgB,CAAC;IACjF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;AAC/B,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;AAC9B,IAAA,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;AAC5B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,0BAA0B,EAAE,aAAa,EAAE,CAAC;AAC7C,IAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACpC,CAAA;AAED;AACM,SAAU,2BAA2B,CAAC,IAAwB,EAAA;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAClG;;;;"}
@@ -18,17 +18,17 @@ export interface BondIssuance {
18
18
  collection: string;
19
19
  bump: number;
20
20
  }
21
- export interface Status {
21
+ interface Status {
22
22
  active: Record<string, never>;
23
23
  }
24
- export interface BondPricing {
24
+ interface BondPricing {
25
25
  totalDebt: string;
26
26
  totalPayout: string;
27
27
  lastDecay: string;
28
28
  lastBcvUpdateTimestamp: string;
29
29
  lastBcvUpdateInterval: string;
30
30
  }
31
- export interface BondTerm {
31
+ interface BondTerm {
32
32
  controlVariable: string;
33
33
  vestingEnd: string;
34
34
  minimumDebt: string;
@@ -43,3 +43,4 @@ export interface SolanaBondData extends BondIssuance, BondPricing {
43
43
  totalPayoutGiven: string;
44
44
  trueBillPrice: string;
45
45
  }
46
+ export {};
@@ -1,25 +1,13 @@
1
1
  import { Aptos } from '@aptos-labs/ts-sdk';
2
- import type { AptosBillInfo, AptosClaimPayload, AptosDepositPayload, AptosMarketInfoTuple, AptosVestingProgressTuple } from '../types/aptosBonds';
2
+ import type { AptosBillInfo, AptosMarketInfoTuple, AptosVestingProgressTuple } from '../types/aptosBonds';
3
3
  export declare const getAptosClient: () => Aptos;
4
4
  export declare const safeExtractAddress: (input: unknown) => string | undefined;
5
- export declare const toAtomicUnits: (amount: string | number, decimals: number) => string;
6
- export declare const buildDepositPayload: (args: AptosDepositPayload) => {
7
- function: `${string}::${string}::${string}`;
8
- typeArguments: string[];
9
- functionArguments: (string | number)[];
10
- };
11
- export declare const buildClaimPayload: (args: AptosClaimPayload) => {
12
- function: `${string}::${string}::${string}`;
13
- typeArguments: string[];
14
- functionArguments: (string | number)[];
15
- };
16
5
  interface AptosTxnWithEvents {
17
6
  events?: Array<{
18
7
  type: string;
19
8
  data: Record<string, unknown>;
20
9
  }>;
21
10
  }
22
- export declare const extractEventData: <T = Record<string, unknown>>(txn: AptosTxnWithEvents, eventSuffix: string) => T | undefined;
23
11
  /**
24
12
  * `bond::DepositEvent` — emitted by the deposit entry function.
25
13
  * Contains bill_id, bill_address, deposit_amount, payout_amount, price.
@@ -42,7 +30,6 @@ export declare const extractBillMinted: (txn: AptosTxnWithEvents) => {
42
30
  bill_id: string;
43
31
  owner: string;
44
32
  } | undefined;
45
- export declare const aptosIndexerFetch: <T = unknown>(url: string, query: string, variables?: Record<string, unknown>) => Promise<T>;
46
33
  /**
47
34
  * `bond::market_info(market)` — returns the 27-element market info tuple.
48
35
  */
@@ -1,5 +1,4 @@
1
1
  import { AptosConfig, Aptos } from '@aptos-labs/ts-sdk';
2
- import 'bignumber.js';
3
2
  import { APTOS_VIEW_USER_BILLS, APTOS_NETWORK, APTOS_FULLNODE_URL, APTOS_VIEW_BOND_MARKET_BY_ID, APTOS_VIEW_NFT_ADDRESS, APTOS_VIEW_BILL_INFO, APTOS_VIEW_VESTING_PROGRESS, getRandomAptosApiKey, APTOS_VIEW_MARKET_INFO } from '../constants/aptosConstants.js';
4
3
 
5
4
  // ---------------------------------------------------------------------------
@@ -97,6 +96,35 @@ const extractBillMinted = (txn) => {
97
96
  return { bill_id: deposit.bill_id, owner: deposit.depositor };
98
97
  };
99
98
  // ---------------------------------------------------------------------------
99
+ // Fetch helper — GraphQL to the Aptos indexer
100
+ // ---------------------------------------------------------------------------
101
+ // Uses the same API key that is configured on the Aptos client. Everything
102
+ // else on the HTTP layer goes through the Aptos ts-sdk, but the indexer
103
+ // needs a raw `fetch` call because GraphQL is not part of the SDK surface.
104
+ // export const aptosIndexerFetch = async <T = unknown>(
105
+ // url: string,
106
+ // query: string,
107
+ // variables?: Record<string, unknown>,
108
+ // ): Promise<T> => {
109
+ // const apiKey = getRandomAptosApiKey()
110
+ // const response = await fetch(url, {
111
+ // method: 'POST',
112
+ // headers: {
113
+ // 'Content-Type': 'application/json',
114
+ // ...(apiKey && { Authorization: `Bearer ${apiKey}` }),
115
+ // },
116
+ // body: JSON.stringify({ query, variables }),
117
+ // })
118
+ // if (!response.ok) {
119
+ // throw new Error(`Aptos indexer request failed: ${response.status}`)
120
+ // }
121
+ // const json = (await response.json()) as { data: T; errors?: Array<{ message: string }> }
122
+ // if (json.errors?.length) {
123
+ // throw new Error(`Aptos indexer returned errors: ${json.errors.map((e) => e.message).join(', ')}`)
124
+ // }
125
+ // return json.data
126
+ // }
127
+ // ---------------------------------------------------------------------------
100
128
  // View function readers (PLAN_001 Etapa 5b — real read skeleton)
101
129
  // ---------------------------------------------------------------------------
102
130
  // Thin wrappers around `aptos.view(...)` for the specific view functions the
@@ -198,5 +226,5 @@ const readNftAddressByBillId = async (billId) => {
198
226
  return String(result[0] ?? '');
199
227
  };
200
228
 
201
- export { extractBillMinted, extractDepositEvent, extractEventData, getAptosClient, readAptosBillInfo, readAptosMarketInfo, readBondMarketByBillId, readNftAddressByBillId, readUserBillIds, readVestingProgress, safeExtractAddress };
229
+ export { extractBillMinted, extractDepositEvent, getAptosClient, readAptosBillInfo, readAptosMarketInfo, readBondMarketByBillId, readNftAddressByBillId, readUserBillIds, readVestingProgress, safeExtractAddress };
202
230
  //# sourceMappingURL=aptosHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aptosHelpers.js","sources":["../../src/utils/aptosHelpers.ts"],"sourcesContent":["import { Aptos, AptosConfig } from '@aptos-labs/ts-sdk'\nimport BigNumber from 'bignumber.js'\nimport {\n APTOS_CLAIM_FUNCTION,\n APTOS_DEPOSIT_FUNCTION,\n APTOS_FULLNODE_URL,\n APTOS_NETWORK,\n APTOS_VIEW_BILL_INFO,\n APTOS_VIEW_BOND_MARKET_BY_ID,\n APTOS_VIEW_MARKET_INFO,\n APTOS_VIEW_NFT_ADDRESS,\n APTOS_VIEW_USER_BILLS,\n APTOS_VIEW_VESTING_PROGRESS,\n getRandomAptosApiKey,\n} from '../constants/aptosConstants'\nimport type {\n AptosBillInfo,\n AptosClaimPayload,\n AptosDepositPayload,\n AptosMarketInfoTuple,\n AptosVestingProgressTuple,\n} from '../types/aptosBonds'\n\n// ---------------------------------------------------------------------------\n// Aptos client — lazy singleton\n// ---------------------------------------------------------------------------\n// We keep one client per (network, api key) pair. The API key is picked with\n// `getRandomAptosApiKey()` on first call, so different sessions hit a\n// different key (very simple load balancing). If the pool is empty we fall\n// back to unauthenticated requests.\nlet _aptosClient: Aptos | undefined\n\nexport const getAptosClient = (): Aptos => {\n if (_aptosClient) return _aptosClient\n const apiKey = getRandomAptosApiKey()\n // The Aptos ts-sdk exposes `API_KEY` directly on `clientConfig`; it adds\n // the `Authorization: Bearer <key>` header internally. This is the\n // idiomatic way to authenticate — no manual header wiring needed.\n const config = new AptosConfig({\n network: APTOS_NETWORK,\n ...(apiKey && { clientConfig: { API_KEY: apiKey } }),\n })\n _aptosClient = new Aptos(config)\n return _aptosClient\n}\n\n// ---------------------------------------------------------------------------\n// Address normalisation\n// ---------------------------------------------------------------------------\n// Aptos wallet adapters can surface account addresses in several shapes:\n// plain string, `{ data: Uint8Array }`, `Uint8Array`, or an `AccountAddress`\n// instance. This helper returns a canonical `0x`-prefixed hex string, or\n// `undefined` if the input cannot be decoded. We keep the interface loose so\n// callers can pass whatever the SDK hands them.\nexport const safeExtractAddress = (input: unknown): string | undefined => {\n if (input == null) return undefined\n\n // Already a string\n if (typeof input === 'string') {\n return input.startsWith('0x') ? input : `0x${input}`\n }\n\n // AccountAddress instance (has `toString()` that returns `0x...`)\n if (typeof input === 'object' && typeof (input as { toString?: () => string }).toString === 'function') {\n const asObject = input as { data?: Uint8Array | number[]; toString: () => string }\n // Prefer `.data` if it looks like a byte array — `.toString()` on\n // AccountAddress already returns the canonical hex, but some wallets\n // return `{ data: Uint8Array }` without the method.\n if (asObject.data instanceof Uint8Array) {\n return bytesToHex(asObject.data)\n }\n if (Array.isArray(asObject.data)) {\n return bytesToHex(new Uint8Array(asObject.data))\n }\n const stringified = asObject.toString()\n if (stringified.startsWith('0x')) return stringified\n }\n\n // Raw Uint8Array\n if (input instanceof Uint8Array) {\n return bytesToHex(input)\n }\n\n // Raw number[]\n if (Array.isArray(input)) {\n return bytesToHex(new Uint8Array(input))\n }\n\n return undefined\n}\n\nconst bytesToHex = (bytes: Uint8Array): string => {\n let out = '0x'\n for (let i = 0; i < bytes.length; i++) {\n out += bytes[i].toString(16).padStart(2, '0')\n }\n return out\n}\n\n// ---------------------------------------------------------------------------\n// Unit conversion\n// ---------------------------------------------------------------------------\n// User inputs live in \"whole tokens\" (e.g. \"1.5 USDC\"). The Aptos ts-sdk\n// serialises numeric function arguments from strings, so we convert to\n// atomic units and return a stringified BigInt.\nexport const toAtomicUnits = (amount: string | number, decimals: number): string => {\n if (amount === '' || amount == null) return '0'\n const bn = new BigNumber(amount).times(new BigNumber(10).pow(decimals))\n // Floor so we never over-spend what the user typed.\n return bn.integerValue(BigNumber.ROUND_FLOOR).toFixed(0)\n}\n\n// ---------------------------------------------------------------------------\n// Payload builders\n// ---------------------------------------------------------------------------\n// These return the `InputEntryFunctionData` shape consumed by\n// `wallet.signAndSubmitTransaction({ sender, data: ... })`. Keeping them in\n// one place means the buy/claim components do not have to repeat the\n// function-name and argument order.\n\nexport const buildDepositPayload = (args: AptosDepositPayload) => ({\n function: APTOS_DEPOSIT_FUNCTION,\n typeArguments: [] as string[],\n functionArguments: [args.market, args.amount, args.max_price, args.depositor] as (string | number)[],\n})\n\nexport const buildClaimPayload = (args: AptosClaimPayload) => ({\n function: APTOS_CLAIM_FUNCTION,\n typeArguments: [] as string[],\n // `apebond::bond::claim(market, bill_id: u64)` — the contract takes the\n // scalar bill_id, NOT the object address.\n functionArguments: [args.market, args.bill_id] as (string | number)[],\n})\n\n// ---------------------------------------------------------------------------\n// Event extractors\n// ---------------------------------------------------------------------------\n// Parse events out of a `waitForTransaction` response. The event `type`\n// format is `${module}::${EventStruct}`. We match by `.endsWith('::Foo')` so\n// we do not have to hard-code the full module path (which contains the\n// contract address).\n\ninterface AptosTxnWithEvents {\n events?: Array<{ type: string; data: Record<string, unknown> }>\n}\n\nexport const extractEventData = <T = Record<string, unknown>>(\n txn: AptosTxnWithEvents,\n eventSuffix: string,\n): T | undefined => {\n const event = txn?.events?.find((e) => e.type.includes(eventSuffix))\n return event?.data as T | undefined\n}\n\n/**\n * `bond::DepositEvent` — emitted by the deposit entry function.\n * Contains bill_id, bill_address, deposit_amount, payout_amount, price.\n */\nexport const extractDepositEvent = (\n txn: AptosTxnWithEvents,\n):\n | {\n bill_id: string\n bill_address: string\n market: string\n deposit_amount: string\n payout_amount: string\n price: string\n depositor: string\n recipient: string\n }\n | undefined => extractEventData(txn, '::DepositEvent')\n\n/**\n * Extract bill_id from transaction events. Checks both `BillMinted` (from bond_nft)\n * and `DepositEvent` (from bond) since the contract emits both.\n */\nexport const extractBillMinted = (txn: AptosTxnWithEvents): { bill_id: string; owner: string } | undefined => {\n // Try BillMinted event first (emitted by bond_nft module)\n const billMinted = extractEventData<{ bill_id: string; owner: string }>(txn, '::BillMinted')\n if (billMinted) return billMinted\n // Fall back to DepositEvent (emitted by bond module)\n const deposit = extractDepositEvent(txn)\n if (!deposit) return undefined\n return { bill_id: deposit.bill_id, owner: deposit.depositor }\n}\n\n// ---------------------------------------------------------------------------\n// Fetch helper — GraphQL to the Aptos indexer\n// ---------------------------------------------------------------------------\n// Uses the same API key that is configured on the Aptos client. Everything\n// else on the HTTP layer goes through the Aptos ts-sdk, but the indexer\n// needs a raw `fetch` call because GraphQL is not part of the SDK surface.\nexport const aptosIndexerFetch = async <T = unknown>(\n url: string,\n query: string,\n variables?: Record<string, unknown>,\n): Promise<T> => {\n const apiKey = getRandomAptosApiKey()\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(apiKey && { Authorization: `Bearer ${apiKey}` }),\n },\n body: JSON.stringify({ query, variables }),\n })\n if (!response.ok) {\n throw new Error(`Aptos indexer request failed: ${response.status}`)\n }\n const json = (await response.json()) as { data: T; errors?: Array<{ message: string }> }\n if (json.errors?.length) {\n throw new Error(`Aptos indexer returned errors: ${json.errors.map((e) => e.message).join(', ')}`)\n }\n return json.data\n}\n\n// ---------------------------------------------------------------------------\n// View function readers (PLAN_001 Etapa 5b — real read skeleton)\n// ---------------------------------------------------------------------------\n// Thin wrappers around `aptos.view(...)` for the specific view functions the\n// SDK needs. Every reader throws on RPC / contract error — callers should\n// wrap in try/catch so a missing deployment degrades gracefully rather than\n// crashing the UI.\n//\n// Shapes are verified against apebond-move-playground pages. See the matching\n// `AptosMarketInfoTuple` / `AptosBillInfo` / `AptosVestingProgressTuple`\n// types for documentation on each field.\n\n/**\n * `bond::market_info(market)` — returns the 27-element market info tuple.\n */\nexport const readAptosMarketInfo = async (marketAddress: string): Promise<AptosMarketInfoTuple> => {\n const aptos = getAptosClient()\n const result = await aptos.view({\n payload: {\n function: APTOS_VIEW_MARKET_INFO,\n functionArguments: [marketAddress],\n },\n })\n return result as unknown as AptosMarketInfoTuple\n}\n\n/**\n * `bond::bill_info(market, bill_id)` — returns the Bill struct for a\n * specific bill. The contract takes `bill_id: u64` (NOT the object address).\n * Uses REST directly to avoid SDK remoteAbi serialisation bug with u64 args.\n */\nexport const readAptosBillInfo = async (marketAddress: string, billId: string): Promise<AptosBillInfo> => {\n const result = await viewViaRest(APTOS_VIEW_BILL_INFO, [marketAddress, billId])\n return result[0] as unknown as AptosBillInfo\n}\n\n/**\n * `bond_nft::user_bills(user)` — returns all bill_ids owned by the user\n * across every deployed market. The view returns `[bill_ids]` (the inner\n * array is at index 0), so we unwrap it here.\n */\nexport const readUserBillIds = async (user: string): Promise<string[]> => {\n const aptos = getAptosClient()\n const result = await aptos.view({\n payload: {\n function: APTOS_VIEW_USER_BILLS,\n functionArguments: [user],\n },\n })\n const ids = (result[0] ?? []) as unknown as Array<string | number>\n return ids.map((id) => String(id))\n}\n\n/**\n * `bond::vesting_progress(market, bill_id)` — returns `[vested_amount, claimable_amount]`.\n * Note: this is in `bond` module (not `bond_nft`), and takes the market as first argument.\n * Uses REST directly to avoid SDK remoteAbi serialisation bug with u64 args.\n */\nexport const readVestingProgress = async (\n marketAddress: string,\n billId: string,\n): Promise<AptosVestingProgressTuple> => {\n const result = await viewViaRest(APTOS_VIEW_VESTING_PROGRESS, [marketAddress, billId])\n return [String(result[0] ?? '0'), String(result[1] ?? '0')] as const\n}\n\n// ---------------------------------------------------------------------------\n// REST-based view call — bypasses the SDK's remoteAbi serialisation which\n// has a bug in v6.x where u64 arguments to functions returning `address` get\n// mis-serialised. The REST endpoint handles string arguments natively.\n// ---------------------------------------------------------------------------\nconst viewViaRest = async (fn: string, args: string[], typeArgs: string[] = []): Promise<unknown[]> => {\n const apiKey = getRandomAptosApiKey()\n const res = await fetch(`${APTOS_FULLNODE_URL}/view`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(apiKey && { Authorization: `Bearer ${apiKey}` }),\n },\n body: JSON.stringify({\n function: fn,\n type_arguments: typeArgs,\n arguments: args,\n }),\n })\n if (!res.ok) {\n const text = await res.text()\n throw new Error(`View call ${fn} failed: ${res.status} ${text}`)\n }\n return (await res.json()) as unknown[]\n}\n\n/**\n * `bond_nft::bond_market_by_id(bill_id)` — which market owns this bill.\n * Uses REST directly — SDK's aptos.view() mis-serialises u64→address functions.\n */\nexport const readBondMarketByBillId = async (billId: string): Promise<string> => {\n const result = await viewViaRest(APTOS_VIEW_BOND_MARKET_BY_ID, [billId])\n return String(result[0] ?? '')\n}\n\n/**\n * `bond_nft::nft_address(bill_id)` — resolve the scalar bill_id to the\n * on-chain NFT object address (aka `bill_addr`). Needed to then call\n * `bond::bill_info(market, bill_addr)` or `bond::claim(market, bill_addr)`.\n * Uses REST directly — SDK's aptos.view() mis-serialises u64→address functions.\n */\nexport const readNftAddressByBillId = async (billId: string): Promise<string> => {\n const result = await viewViaRest(APTOS_VIEW_NFT_ADDRESS, [billId])\n return String(result[0] ?? '')\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aptosHelpers.js","sources":["../../src/utils/aptosHelpers.ts"],"sourcesContent":["import { Aptos, AptosConfig } from '@aptos-labs/ts-sdk'\nimport {\n APTOS_FULLNODE_URL,\n APTOS_NETWORK,\n APTOS_VIEW_BILL_INFO,\n APTOS_VIEW_BOND_MARKET_BY_ID,\n APTOS_VIEW_MARKET_INFO,\n APTOS_VIEW_NFT_ADDRESS,\n APTOS_VIEW_USER_BILLS,\n APTOS_VIEW_VESTING_PROGRESS,\n getRandomAptosApiKey,\n} from '../constants/aptosConstants'\nimport type { AptosBillInfo, AptosMarketInfoTuple, AptosVestingProgressTuple } from '../types/aptosBonds'\n\n// ---------------------------------------------------------------------------\n// Aptos client — lazy singleton\n// ---------------------------------------------------------------------------\n// We keep one client per (network, api key) pair. The API key is picked with\n// `getRandomAptosApiKey()` on first call, so different sessions hit a\n// different key (very simple load balancing). If the pool is empty we fall\n// back to unauthenticated requests.\nlet _aptosClient: Aptos | undefined\n\nexport const getAptosClient = (): Aptos => {\n if (_aptosClient) return _aptosClient\n const apiKey = getRandomAptosApiKey()\n // The Aptos ts-sdk exposes `API_KEY` directly on `clientConfig`; it adds\n // the `Authorization: Bearer <key>` header internally. This is the\n // idiomatic way to authenticate — no manual header wiring needed.\n const config = new AptosConfig({\n network: APTOS_NETWORK,\n ...(apiKey && { clientConfig: { API_KEY: apiKey } }),\n })\n _aptosClient = new Aptos(config)\n return _aptosClient\n}\n\n// ---------------------------------------------------------------------------\n// Address normalisation\n// ---------------------------------------------------------------------------\n// Aptos wallet adapters can surface account addresses in several shapes:\n// plain string, `{ data: Uint8Array }`, `Uint8Array`, or an `AccountAddress`\n// instance. This helper returns a canonical `0x`-prefixed hex string, or\n// `undefined` if the input cannot be decoded. We keep the interface loose so\n// callers can pass whatever the SDK hands them.\nexport const safeExtractAddress = (input: unknown): string | undefined => {\n if (input == null) return undefined\n\n // Already a string\n if (typeof input === 'string') {\n return input.startsWith('0x') ? input : `0x${input}`\n }\n\n // AccountAddress instance (has `toString()` that returns `0x...`)\n if (typeof input === 'object' && typeof (input as { toString?: () => string }).toString === 'function') {\n const asObject = input as { data?: Uint8Array | number[]; toString: () => string }\n // Prefer `.data` if it looks like a byte array — `.toString()` on\n // AccountAddress already returns the canonical hex, but some wallets\n // return `{ data: Uint8Array }` without the method.\n if (asObject.data instanceof Uint8Array) {\n return bytesToHex(asObject.data)\n }\n if (Array.isArray(asObject.data)) {\n return bytesToHex(new Uint8Array(asObject.data))\n }\n const stringified = asObject.toString()\n if (stringified.startsWith('0x')) return stringified\n }\n\n // Raw Uint8Array\n if (input instanceof Uint8Array) {\n return bytesToHex(input)\n }\n\n // Raw number[]\n if (Array.isArray(input)) {\n return bytesToHex(new Uint8Array(input))\n }\n\n return undefined\n}\n\nconst bytesToHex = (bytes: Uint8Array): string => {\n let out = '0x'\n for (let i = 0; i < bytes.length; i++) {\n out += bytes[i].toString(16).padStart(2, '0')\n }\n return out\n}\n\n// ---------------------------------------------------------------------------\n// Unit conversion\n// ---------------------------------------------------------------------------\n// User inputs live in \"whole tokens\" (e.g. \"1.5 USDC\"). The Aptos ts-sdk\n// serialises numeric function arguments from strings, so we convert to\n// atomic units and return a stringified BigInt.\n// export const toAtomicUnits = (amount: string | number, decimals: number): string => {\n// if (amount === '' || amount == null) return '0'\n// const bn = new BigNumber(amount).times(new BigNumber(10).pow(decimals))\n// // Floor so we never over-spend what the user typed.\n// return bn.integerValue(BigNumber.ROUND_FLOOR).toFixed(0)\n// }\n\n// ---------------------------------------------------------------------------\n// Payload builders\n// ---------------------------------------------------------------------------\n// These return the `InputEntryFunctionData` shape consumed by\n// `wallet.signAndSubmitTransaction({ sender, data: ... })`. Keeping them in\n// one place means the buy/claim components do not have to repeat the\n// function-name and argument order.\n\n// export const buildDepositPayload = (args: AptosDepositPayload) => ({\n// function: APTOS_DEPOSIT_FUNCTION,\n// typeArguments: [] as string[],\n// functionArguments: [args.market, args.amount, args.max_price, args.depositor] as (string | number)[],\n// })\n//\n// export const buildClaimPayload = (args: AptosClaimPayload) => ({\n// function: APTOS_CLAIM_FUNCTION,\n// typeArguments: [] as string[],\n// // `apebond::bond::claim(market, bill_id: u64)` — the contract takes the\n// // scalar bill_id, NOT the object address.\n// functionArguments: [args.market, args.bill_id] as (string | number)[],\n// })\n\n// ---------------------------------------------------------------------------\n// Event extractors\n// ---------------------------------------------------------------------------\n// Parse events out of a `waitForTransaction` response. The event `type`\n// format is `${module}::${EventStruct}`. We match by `.endsWith('::Foo')` so\n// we do not have to hard-code the full module path (which contains the\n// contract address).\n\ninterface AptosTxnWithEvents {\n events?: Array<{ type: string; data: Record<string, unknown> }>\n}\n\nconst extractEventData = <T = Record<string, unknown>>(txn: AptosTxnWithEvents, eventSuffix: string): T | undefined => {\n const event = txn?.events?.find((e) => e.type.includes(eventSuffix))\n return event?.data as T | undefined\n}\n\n/**\n * `bond::DepositEvent` — emitted by the deposit entry function.\n * Contains bill_id, bill_address, deposit_amount, payout_amount, price.\n */\nexport const extractDepositEvent = (\n txn: AptosTxnWithEvents,\n):\n | {\n bill_id: string\n bill_address: string\n market: string\n deposit_amount: string\n payout_amount: string\n price: string\n depositor: string\n recipient: string\n }\n | undefined => extractEventData(txn, '::DepositEvent')\n\n/**\n * Extract bill_id from transaction events. Checks both `BillMinted` (from bond_nft)\n * and `DepositEvent` (from bond) since the contract emits both.\n */\nexport const extractBillMinted = (txn: AptosTxnWithEvents): { bill_id: string; owner: string } | undefined => {\n // Try BillMinted event first (emitted by bond_nft module)\n const billMinted = extractEventData<{ bill_id: string; owner: string }>(txn, '::BillMinted')\n if (billMinted) return billMinted\n // Fall back to DepositEvent (emitted by bond module)\n const deposit = extractDepositEvent(txn)\n if (!deposit) return undefined\n return { bill_id: deposit.bill_id, owner: deposit.depositor }\n}\n\n// ---------------------------------------------------------------------------\n// Fetch helper — GraphQL to the Aptos indexer\n// ---------------------------------------------------------------------------\n// Uses the same API key that is configured on the Aptos client. Everything\n// else on the HTTP layer goes through the Aptos ts-sdk, but the indexer\n// needs a raw `fetch` call because GraphQL is not part of the SDK surface.\n// export const aptosIndexerFetch = async <T = unknown>(\n// url: string,\n// query: string,\n// variables?: Record<string, unknown>,\n// ): Promise<T> => {\n// const apiKey = getRandomAptosApiKey()\n// const response = await fetch(url, {\n// method: 'POST',\n// headers: {\n// 'Content-Type': 'application/json',\n// ...(apiKey && { Authorization: `Bearer ${apiKey}` }),\n// },\n// body: JSON.stringify({ query, variables }),\n// })\n// if (!response.ok) {\n// throw new Error(`Aptos indexer request failed: ${response.status}`)\n// }\n// const json = (await response.json()) as { data: T; errors?: Array<{ message: string }> }\n// if (json.errors?.length) {\n// throw new Error(`Aptos indexer returned errors: ${json.errors.map((e) => e.message).join(', ')}`)\n// }\n// return json.data\n// }\n\n// ---------------------------------------------------------------------------\n// View function readers (PLAN_001 Etapa 5b — real read skeleton)\n// ---------------------------------------------------------------------------\n// Thin wrappers around `aptos.view(...)` for the specific view functions the\n// SDK needs. Every reader throws on RPC / contract error — callers should\n// wrap in try/catch so a missing deployment degrades gracefully rather than\n// crashing the UI.\n//\n// Shapes are verified against apebond-move-playground pages. See the matching\n// `AptosMarketInfoTuple` / `AptosBillInfo` / `AptosVestingProgressTuple`\n// types for documentation on each field.\n\n/**\n * `bond::market_info(market)` — returns the 27-element market info tuple.\n */\nexport const readAptosMarketInfo = async (marketAddress: string): Promise<AptosMarketInfoTuple> => {\n const aptos = getAptosClient()\n const result = await aptos.view({\n payload: {\n function: APTOS_VIEW_MARKET_INFO,\n functionArguments: [marketAddress],\n },\n })\n return result as unknown as AptosMarketInfoTuple\n}\n\n/**\n * `bond::bill_info(market, bill_id)` — returns the Bill struct for a\n * specific bill. The contract takes `bill_id: u64` (NOT the object address).\n * Uses REST directly to avoid SDK remoteAbi serialisation bug with u64 args.\n */\nexport const readAptosBillInfo = async (marketAddress: string, billId: string): Promise<AptosBillInfo> => {\n const result = await viewViaRest(APTOS_VIEW_BILL_INFO, [marketAddress, billId])\n return result[0] as unknown as AptosBillInfo\n}\n\n/**\n * `bond_nft::user_bills(user)` — returns all bill_ids owned by the user\n * across every deployed market. The view returns `[bill_ids]` (the inner\n * array is at index 0), so we unwrap it here.\n */\nexport const readUserBillIds = async (user: string): Promise<string[]> => {\n const aptos = getAptosClient()\n const result = await aptos.view({\n payload: {\n function: APTOS_VIEW_USER_BILLS,\n functionArguments: [user],\n },\n })\n const ids = (result[0] ?? []) as unknown as Array<string | number>\n return ids.map((id) => String(id))\n}\n\n/**\n * `bond::vesting_progress(market, bill_id)` — returns `[vested_amount, claimable_amount]`.\n * Note: this is in `bond` module (not `bond_nft`), and takes the market as first argument.\n * Uses REST directly to avoid SDK remoteAbi serialisation bug with u64 args.\n */\nexport const readVestingProgress = async (\n marketAddress: string,\n billId: string,\n): Promise<AptosVestingProgressTuple> => {\n const result = await viewViaRest(APTOS_VIEW_VESTING_PROGRESS, [marketAddress, billId])\n return [String(result[0] ?? '0'), String(result[1] ?? '0')] as const\n}\n\n// ---------------------------------------------------------------------------\n// REST-based view call — bypasses the SDK's remoteAbi serialisation which\n// has a bug in v6.x where u64 arguments to functions returning `address` get\n// mis-serialised. The REST endpoint handles string arguments natively.\n// ---------------------------------------------------------------------------\nconst viewViaRest = async (fn: string, args: string[], typeArgs: string[] = []): Promise<unknown[]> => {\n const apiKey = getRandomAptosApiKey()\n const res = await fetch(`${APTOS_FULLNODE_URL}/view`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(apiKey && { Authorization: `Bearer ${apiKey}` }),\n },\n body: JSON.stringify({\n function: fn,\n type_arguments: typeArgs,\n arguments: args,\n }),\n })\n if (!res.ok) {\n const text = await res.text()\n throw new Error(`View call ${fn} failed: ${res.status} ${text}`)\n }\n return (await res.json()) as unknown[]\n}\n\n/**\n * `bond_nft::bond_market_by_id(bill_id)` — which market owns this bill.\n * Uses REST directly — SDK's aptos.view() mis-serialises u64→address functions.\n */\nexport const readBondMarketByBillId = async (billId: string): Promise<string> => {\n const result = await viewViaRest(APTOS_VIEW_BOND_MARKET_BY_ID, [billId])\n return String(result[0] ?? '')\n}\n\n/**\n * `bond_nft::nft_address(bill_id)` — resolve the scalar bill_id to the\n * on-chain NFT object address (aka `bill_addr`). Needed to then call\n * `bond::bill_info(market, bill_addr)` or `bond::claim(market, bill_addr)`.\n * Uses REST directly — SDK's aptos.view() mis-serialises u64→address functions.\n */\nexport const readNftAddressByBillId = async (billId: string): Promise<string> => {\n const result = await viewViaRest(APTOS_VIEW_NFT_ADDRESS, [billId])\n return String(result[0] ?? '')\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export declare function fetchSolanaTrueBillPrice(bondIssuanceAddress: string): Promise<string>;
2
1
  /**
3
2
  * This is the Typescript implementation of the Rust true_bond_price function since the on-chain program requires a real wallet
4
3
  */
@@ -1,9 +1,4 @@
1
- import '@solana/web3.js';
2
1
  import { BigNumber } from 'bignumber.js';
3
- import '../constants/solanaConstants.js';
4
- import 'buffer';
5
- import '../config/constants/networks.js';
6
- import '@ape.swap/apeswap-lists';
7
2
 
8
3
  /**
9
4
  * This is the Typescript implementation of the Rust true_bond_price function since the on-chain program requires a real wallet
@@ -1 +1 @@
1
- {"version":3,"file":"calculateSolanaTrueBillPrice.js","sources":["../../src/utils/calculateSolanaTrueBillPrice.ts"],"sourcesContent":["import { Connection, PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js'\nimport { BigNumber } from 'bignumber.js'\nimport { derivePda } from './derivePda'\nimport { SOLANA_DUMMY_PUBLIC_KEY, PROGRAM_ID, TRUE_BILL_PRICE_DISCRIMINATOR } from '../constants/solanaConstants'\nimport { Buffer } from 'buffer'\nimport { getRPC } from '../config/constants/networks'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport async function fetchSolanaTrueBillPrice(bondIssuanceAddress: string): Promise<string> {\n try {\n if (!bondIssuanceAddress) {\n console.error('No bond issuance address')\n return '0'\n }\n\n const connection = new Connection(getRPC(ChainId.SOL), 'confirmed')\n\n const bondIssuancePubkey = new PublicKey(bondIssuanceAddress)\n const bondTermPda = derivePda('bond_term', bondIssuancePubkey, PROGRAM_ID)\n const bondPricingPda = derivePda('bond_pricing', bondIssuancePubkey, PROGRAM_ID)\n\n const keys = [\n { pubkey: bondPricingPda, isSigner: false, isWritable: false },\n { pubkey: bondTermPda, isSigner: false, isWritable: false },\n { pubkey: bondIssuancePubkey, isSigner: false, isWritable: false },\n ]\n\n const instruction = new TransactionInstruction({\n keys,\n programId: PROGRAM_ID,\n data: TRUE_BILL_PRICE_DISCRIMINATOR,\n })\n\n // Create a transaction and add the instruction\n const transaction = new Transaction().add(instruction)\n\n transaction.feePayer = SOLANA_DUMMY_PUBLIC_KEY\n\n // Simulate the transaction\n const simulated = await connection.simulateTransaction(transaction)\n\n // if (bondIssuanceAddress.toLowerCase() === 'HmXQWRzwDCEdft3owvaL1yG41RL2FL8G26gbx2qVkL7s'.toLowerCase()) {\n // const asd = 'asd'\n // console.log(asd)\n // }\n const returnData = simulated.value.returnData\n if (!returnData) {\n throw new Error('No return data from simulation')\n }\n\n const [data, encoding] = returnData.data\n if (encoding !== 'base64') {\n throw new Error(`Unexpected return data encoding: ${encoding}`)\n }\n\n const decodedData = Buffer.from(data, 'base64')\n const trueBillPrice = new BigNumber(decodedData.readBigUInt64LE(0).toString())\n\n return trueBillPrice.multipliedBy(1e6).toString()\n } catch (e) {\n console.error('Error calculating true bill price:', e)\n return '0'\n }\n}\n\n/**\n * This is the Typescript implementation of the Rust true_bond_price function since the on-chain program requires a real wallet\n */\nexport function calculateTrueBondPrice(\n bondPricing: any,\n bondTerm: any,\n currentTimestamp: number,\n principalMintDecimals: number,\n payoutMintDecimals: number,\n feeInPrincipal: number,\n): string {\n try {\n // Extract values from the account data\n const totalDebt = new BigNumber(bondPricing.totalDebt?.toString() ?? '0')\n const lastDecay = new BigNumber(bondPricing.lastDecay?.toString() ?? '0')\n const controlVariable = new BigNumber(bondTerm.controlVariable?.toString() ?? '0')\n const vestingEnd = new BigNumber(bondTerm.vestingEnd?.toString() ?? '0')\n const minimumDebt = new BigNumber(bondTerm.minimumDebt?.toString() ?? '0')\n const payoutTokenInitialSupply = new BigNumber(bondTerm.payoutTokenInitialSupply?.toString() ?? '0')\n\n // Constants for price calculation (1e16 and 1e18)\n const e16 = new BigNumber('10000000000000000')\n const e18 = new BigNumber('1000000000000000000')\n const principalDecimalsMultiplier = new BigNumber(10).pow(principalMintDecimals)\n\n // Calculate debt ratio\n const debtRatio = calculateDebtRatio(\n totalDebt,\n lastDecay,\n new BigNumber(currentTimestamp),\n vestingEnd,\n payoutMintDecimals,\n payoutTokenInitialSupply,\n )\n\n // Calculate price: (control_variable * debt_ratio * 1e16) / principal_decimals / 1e18\n const numerator = controlVariable.multipliedBy(debtRatio).multipliedBy(e16)\n const price = numerator.dividedBy(principalDecimalsMultiplier).dividedBy(e18)\n\n // Apply minimum debt floor\n const priceToUse = price.lt(minimumDebt) ? minimumDebt : price\n const feeToUse = feeInPrincipal\n const reverseFee = new BigNumber(feeToUse / 100 / (1 - feeToUse / 100))\n return new BigNumber(priceToUse).plus(new BigNumber(priceToUse).times(reverseFee)).toFixed(0)\n } catch (error) {\n console.error('Error in price calculation:', error)\n return '0'\n }\n}\n\n/**\n * This is the Typescript implementation of the Rust debt_ratio function\n */\nfunction calculateDebtRatio(\n totalDebt: BigNumber,\n lastDecay: BigNumber,\n currentTimestamp: BigNumber,\n vestingEnd: BigNumber,\n payoutDecimals: number,\n payoutTokenInitialSupply: BigNumber,\n): BigNumber {\n try {\n // If vesting term is 0 or initial supply is 0, return 0\n if (vestingEnd.isZero() || payoutTokenInitialSupply.isZero()) {\n return new BigNumber(0)\n }\n\n // Calculate time elapsed since last decay (with underflow protection)\n const timeSinceLast = currentTimestamp.isLessThan(lastDecay) ? new BigNumber(0) : currentTimestamp.minus(lastDecay)\n\n // Calculate decay amount: (total_debt * time_since_last) / vesting_term\n const decayAmount = totalDebt.multipliedBy(timeSinceLast).dividedBy(vestingEnd)\n\n // Cap decay amount at total debt\n const finalDecayAmount = decayAmount.isGreaterThan(totalDebt) ? totalDebt : decayAmount\n\n // Calculate current debt: total_debt - decay_amount\n const currentDebt = totalDebt.minus(finalDecayAmount)\n\n // Calculate debt ratio: (current_debt * payout_decimals_multiplier * 1e18) / initial_supply\n const payoutDecimalsMultiplier = new BigNumber(10).pow(payoutDecimals)\n const e18 = new BigNumber('1000000000000000000')\n\n const numerator = currentDebt.multipliedBy(payoutDecimalsMultiplier).multipliedBy(e18)\n\n return numerator.dividedBy(payoutTokenInitialSupply)\n } catch (error) {\n console.error('Error calculating debt ratio:', error)\n return new BigNumber(0)\n }\n}\n"],"names":[],"mappings":";;;;;;;AAiEA;;AAEG;AACG,SAAU,sBAAsB,CACpC,WAAgB,EAChB,QAAa,EACb,gBAAwB,EACxB,qBAA6B,EAC7B,kBAA0B,EAC1B,cAAsB,EAAA;AAEtB,IAAA,IAAI;;AAEF,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;AACzE,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;AACzE,QAAA,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;AAClF,QAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;AACxE,QAAA,MAAM,WAAW,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;AAC1E,QAAA,MAAM,wBAAwB,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;;AAGpG,QAAA,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,mBAAmB,CAAC;AAC9C,QAAA,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,qBAAqB,CAAC;AAChD,QAAA,MAAM,2BAA2B,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC;;QAGhF,MAAM,SAAS,GAAG,kBAAkB,CAClC,SAAS,EACT,SAAS,EACT,IAAI,SAAS,CAAC,gBAAgB,CAAC,EAC/B,UAAU,EACV,kBAAkB,EAClB,wBAAwB,CACzB;;AAGD,QAAA,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;AAC3E,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;;AAG7E,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,KAAK;QAC9D,MAAM,QAAQ,GAAG,cAAc;AAC/B,QAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QACvE,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;AACnD,QAAA,OAAO,GAAG;IACZ;AACF;AAEA;;AAEG;AACH,SAAS,kBAAkB,CACzB,SAAoB,EACpB,SAAoB,EACpB,gBAA2B,EAC3B,UAAqB,EACrB,cAAsB,EACtB,wBAAmC,EAAA;AAEnC,IAAA,IAAI;;QAEF,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,wBAAwB,CAAC,MAAM,EAAE,EAAE;AAC5D,YAAA,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;QACzB;;QAGA,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;;AAGnH,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;;AAG/E,QAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,WAAW;;QAGvF,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;;AAGrD,QAAA,MAAM,wBAAwB,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;AACtE,QAAA,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,qBAAqB,CAAC;AAEhD,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;AAEtF,QAAA,OAAO,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC;IACtD;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC;AACrD,QAAA,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;IACzB;AACF;;;;"}
1
+ {"version":3,"file":"calculateSolanaTrueBillPrice.js","sources":["../../src/utils/calculateSolanaTrueBillPrice.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js'\n\n/**\n * This is the Typescript implementation of the Rust true_bond_price function since the on-chain program requires a real wallet\n */\nexport function calculateTrueBondPrice(\n bondPricing: any,\n bondTerm: any,\n currentTimestamp: number,\n principalMintDecimals: number,\n payoutMintDecimals: number,\n feeInPrincipal: number,\n): string {\n try {\n // Extract values from the account data\n const totalDebt = new BigNumber(bondPricing.totalDebt?.toString() ?? '0')\n const lastDecay = new BigNumber(bondPricing.lastDecay?.toString() ?? '0')\n const controlVariable = new BigNumber(bondTerm.controlVariable?.toString() ?? '0')\n const vestingEnd = new BigNumber(bondTerm.vestingEnd?.toString() ?? '0')\n const minimumDebt = new BigNumber(bondTerm.minimumDebt?.toString() ?? '0')\n const payoutTokenInitialSupply = new BigNumber(bondTerm.payoutTokenInitialSupply?.toString() ?? '0')\n\n // Constants for price calculation (1e16 and 1e18)\n const e16 = new BigNumber('10000000000000000')\n const e18 = new BigNumber('1000000000000000000')\n const principalDecimalsMultiplier = new BigNumber(10).pow(principalMintDecimals)\n\n // Calculate debt ratio\n const debtRatio = calculateDebtRatio(\n totalDebt,\n lastDecay,\n new BigNumber(currentTimestamp),\n vestingEnd,\n payoutMintDecimals,\n payoutTokenInitialSupply,\n )\n\n // Calculate price: (control_variable * debt_ratio * 1e16) / principal_decimals / 1e18\n const numerator = controlVariable.multipliedBy(debtRatio).multipliedBy(e16)\n const price = numerator.dividedBy(principalDecimalsMultiplier).dividedBy(e18)\n\n // Apply minimum debt floor\n const priceToUse = price.lt(minimumDebt) ? minimumDebt : price\n const feeToUse = feeInPrincipal\n const reverseFee = new BigNumber(feeToUse / 100 / (1 - feeToUse / 100))\n return new BigNumber(priceToUse).plus(new BigNumber(priceToUse).times(reverseFee)).toFixed(0)\n } catch (error) {\n console.error('Error in price calculation:', error)\n return '0'\n }\n}\n\n/**\n * This is the Typescript implementation of the Rust debt_ratio function\n */\nfunction calculateDebtRatio(\n totalDebt: BigNumber,\n lastDecay: BigNumber,\n currentTimestamp: BigNumber,\n vestingEnd: BigNumber,\n payoutDecimals: number,\n payoutTokenInitialSupply: BigNumber,\n): BigNumber {\n try {\n // If vesting term is 0 or initial supply is 0, return 0\n if (vestingEnd.isZero() || payoutTokenInitialSupply.isZero()) {\n return new BigNumber(0)\n }\n\n // Calculate time elapsed since last decay (with underflow protection)\n const timeSinceLast = currentTimestamp.isLessThan(lastDecay) ? new BigNumber(0) : currentTimestamp.minus(lastDecay)\n\n // Calculate decay amount: (total_debt * time_since_last) / vesting_term\n const decayAmount = totalDebt.multipliedBy(timeSinceLast).dividedBy(vestingEnd)\n\n // Cap decay amount at total debt\n const finalDecayAmount = decayAmount.isGreaterThan(totalDebt) ? totalDebt : decayAmount\n\n // Calculate current debt: total_debt - decay_amount\n const currentDebt = totalDebt.minus(finalDecayAmount)\n\n // Calculate debt ratio: (current_debt * payout_decimals_multiplier * 1e18) / initial_supply\n const payoutDecimalsMultiplier = new BigNumber(10).pow(payoutDecimals)\n const e18 = new BigNumber('1000000000000000000')\n\n const numerator = currentDebt.multipliedBy(payoutDecimalsMultiplier).multipliedBy(e18)\n\n return numerator.dividedBy(payoutTokenInitialSupply)\n } catch (error) {\n console.error('Error calculating debt ratio:', error)\n return new BigNumber(0)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- export declare function adjustDecimals(numStr: string): string;
2
1
  export declare const convertToBigish: (numberString?: string, decimals?: number) => string;
@@ -21,5 +21,5 @@ const convertToBigish = (numberString, decimals = 18) => {
21
21
  return new BigNumber(adjustedDecimals).times(new BigNumber(10).pow(decimals)).toFixed(0);
22
22
  };
23
23
 
24
- export { adjustDecimals, convertToBigish };
24
+ export { convertToBigish };
25
25
  //# sourceMappingURL=convertToBigish.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertToBigish.js","sources":["../../src/utils/convertToBigish.ts"],"sourcesContent":["import BigNumber from 'bignumber.js'\n\nexport function adjustDecimals(numStr: string) {\n const parts = numStr.split('.')\n if (parts.length < 2) {\n // This means the number doesn't have any decimals\n return numStr\n }\n if (parts[1].length > 18) {\n parts[1] = parts[1].slice(0, 18) // Take the first 18 decimals\n return parts[0] + '.' + parts[1]\n } else {\n return numStr\n }\n}\n\nexport const convertToBigish = (numberString?: string, decimals: number = 18) => {\n if (!numberString || !decimals) return ''\n\n const adjustedDecimals = adjustDecimals(numberString)\n\n return new BigNumber(adjustedDecimals).times(new BigNumber(10).pow(decimals)).toFixed(0)\n}\n"],"names":[],"mappings":";;AAEM,SAAU,cAAc,CAAC,MAAc,EAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEpB,QAAA,OAAO,MAAM;IACf;IACA,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE;AACxB,QAAA,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAClC;SAAO;AACL,QAAA,OAAO,MAAM;IACf;AACF;AAEO,MAAM,eAAe,GAAG,CAAC,YAAqB,EAAE,QAAA,GAAmB,EAAE,KAAI;AAC9E,IAAA,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,EAAE;AAEzC,IAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,CAAC;IAErD,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F;;;;"}
1
+ {"version":3,"file":"convertToBigish.js","sources":["../../src/utils/convertToBigish.ts"],"sourcesContent":["import BigNumber from 'bignumber.js'\n\nfunction adjustDecimals(numStr: string) {\n const parts = numStr.split('.')\n if (parts.length < 2) {\n // This means the number doesn't have any decimals\n return numStr\n }\n if (parts[1].length > 18) {\n parts[1] = parts[1].slice(0, 18) // Take the first 18 decimals\n return parts[0] + '.' + parts[1]\n } else {\n return numStr\n }\n}\n\nexport const convertToBigish = (numberString?: string, decimals: number = 18) => {\n if (!numberString || !decimals) return ''\n\n const adjustedDecimals = adjustDecimals(numberString)\n\n return new BigNumber(adjustedDecimals).times(new BigNumber(10).pow(decimals)).toFixed(0)\n}\n"],"names":[],"mappings":";;AAEA,SAAS,cAAc,CAAC,MAAc,EAAA;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEpB,QAAA,OAAO,MAAM;IACf;IACA,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE;AACxB,QAAA,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAClC;SAAO;AACL,QAAA,OAAO,MAAM;IACf;AACF;AAEO,MAAM,eAAe,GAAG,CAAC,YAAqB,EAAE,QAAA,GAAmB,EAAE,KAAI;AAC9E,IAAA,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,EAAE;AAEzC,IAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,CAAC;IAErD,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F;;;;"}
@@ -15,16 +15,10 @@ export declare const getVestingTermsString: (bond?: BondsData | BillsConfig) =>
15
15
  export declare const getVestingTermsTooltipString: (bond?: BondsData | BillsConfig) => string | undefined;
16
16
  export declare const discountEarnTokenPrice: (bond: BondsData, useTiers?: boolean) => string | undefined;
17
17
  export declare const discountEarnTokenPriceForUser: (bond: BondsData, useTiers?: boolean, userTier?: LaunchBondTiers) => string;
18
- export declare const SAFETY_THRESHOLD = 5;
19
- export declare const getSafetyAvailable: (bond?: BondsData, allowLowValueBonds?: boolean) => BigNumber;
20
- export declare const getSafetyPurchaseLimit: (bond?: BondsData, allowLowValueBonds?: boolean) => BigNumber;
21
18
  export declare const getMaxBuy: (bond?: BondsData, allowLowValueBonds?: boolean) => BigNumber;
22
19
  export declare function formatUSDNumber(input: string): string;
23
- export declare const youSpendUSD: (bond: BondsData, inputValue: string) => string;
24
20
  export declare const getPayoutAmount: (bond?: BondsData, inputValue?: string, userPoints?: string | null) => number;
25
- export declare const youGetUSD: (bond?: BondsData, inputValue?: string, userPoints?: string) => number;
26
21
  export declare const getRawBonus: (bond?: BondsData, inputValue?: string, userPoints?: string) => string;
27
- export declare const getFeeAmount: (bond?: BondsData, inputValue?: string, userPoints?: string) => number;
28
22
  export declare const getBonusColor: (premiumString: string) => string;
29
23
  /**
30
24
  * Calculates the principal token amount needed to receive a target payout amount.
@@ -205,5 +205,5 @@ const remainingPercentage = (bond) => {
205
205
  return remainingTokens.div(totalMaxPayout).times(100).toNumber();
206
206
  };
207
207
 
208
- export { SAFETY_THRESHOLD, claimable, claimableUSD, claimed, claimedUSD, discountEarnTokenPrice, discountEarnTokenPriceForUser, earnTokenPrice, formatUSDNumber, getBonusColor, getMaxBuy, getPayoutAmount, getPendingVestingString, getPercentageVested, getPrincipalAmount, getRawBonus, getRemainingTokensString, getSafetyAvailable, getSafetyPurchaseLimit, getTimeLeftForFullyVested, getVestingTermsString, getVestingTermsTooltipString, pending, pendingUSD, remainingPercentage, youGetUSD, youSpendUSD };
208
+ export { claimable, claimableUSD, claimed, claimedUSD, discountEarnTokenPrice, discountEarnTokenPriceForUser, earnTokenPrice, formatUSDNumber, getBonusColor, getMaxBuy, getPayoutAmount, getPendingVestingString, getPercentageVested, getPrincipalAmount, getRawBonus, getRemainingTokensString, getTimeLeftForFullyVested, getVestingTermsString, getVestingTermsTooltipString, pending, pendingUSD, remainingPercentage };
209
209
  //# sourceMappingURL=displayHelpers.js.map