@ape.swap/bonds-sdk 6.2.28 → 7.0.0-test.0

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 (453) hide show
  1. package/README.md +205 -114
  2. package/dist/adapters/all/index.d.ts +13 -0
  3. package/dist/adapters/all/index.js +15 -0
  4. package/dist/adapters/all/index.js.map +1 -0
  5. package/dist/{views/YourBondsModal/components/Actions → adapters/aptos}/ActionsAptos.d.ts +1 -1
  6. package/dist/{views/YourBondsModal/components/Actions → adapters/aptos}/ActionsAptos.js +11 -11
  7. package/dist/adapters/aptos/ActionsAptos.js.map +1 -0
  8. package/dist/adapters/aptos/AptosAccountBridge.d.ts +3 -0
  9. package/dist/adapters/aptos/AptosAccountBridge.js +12 -0
  10. package/dist/adapters/aptos/AptosAccountBridge.js.map +1 -0
  11. package/dist/{views/BuyBond → adapters/aptos}/BuyComponentAptos.js +8 -8
  12. package/dist/adapters/aptos/BuyComponentAptos.js.map +1 -0
  13. package/dist/adapters/aptos/ClaimAllActionAptos.d.ts +5 -0
  14. package/dist/adapters/aptos/ClaimAllActionAptos.js +73 -0
  15. package/dist/adapters/aptos/ClaimAllActionAptos.js.map +1 -0
  16. package/dist/{components/ConnectAptosWalletButton → adapters/aptos}/ConnectAptosWalletButton.js +2 -2
  17. package/dist/adapters/aptos/ConnectAptosWalletButton.js.map +1 -0
  18. package/dist/{components/ConnectoToVmBanners → adapters/aptos}/ConnectToAptosBanner.js +4 -4
  19. package/dist/adapters/aptos/ConnectToAptosBanner.js.map +1 -0
  20. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/aptos}/TransferActionAptos.d.ts +1 -1
  21. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/aptos}/TransferActionAptos.js +1 -1
  22. package/dist/adapters/aptos/TransferActionAptos.js.map +1 -0
  23. package/dist/{views/YourBonds/components/UserBondRow → adapters/aptos}/UserBondRowAptos.d.ts +1 -1
  24. package/dist/{views/YourBonds/components/UserBondRow → adapters/aptos}/UserBondRowAptos.js +22 -22
  25. package/dist/adapters/aptos/UserBondRowAptos.js.map +1 -0
  26. package/dist/{utils → adapters/aptos}/aptosHelpers.d.ts +1 -1
  27. package/dist/{utils → adapters/aptos}/aptosHelpers.js +1 -1
  28. package/dist/adapters/aptos/aptosHelpers.js.map +1 -0
  29. package/dist/{state/bonds/fetchBondsData → adapters/aptos}/fetchBondsDataAptos.d.ts +2 -2
  30. package/dist/{state/bonds/fetchBondsData → adapters/aptos}/fetchBondsDataAptos.js +3 -3
  31. package/dist/adapters/aptos/fetchBondsDataAptos.js.map +1 -0
  32. package/dist/{state/bonds/fetchUsersBonds → adapters/aptos}/fetchUsersBondsAptos.d.ts +2 -2
  33. package/dist/{state/bonds/fetchUsersBonds → adapters/aptos}/fetchUsersBondsAptos.js +4 -4
  34. package/dist/adapters/aptos/fetchUsersBondsAptos.js.map +1 -0
  35. package/dist/adapters/aptos/index.d.ts +6 -0
  36. package/dist/adapters/aptos/index.js +37 -0
  37. package/dist/adapters/aptos/index.js.map +1 -0
  38. package/dist/{hooks/accounts → adapters/aptos}/useAPTAccount.js +1 -1
  39. package/dist/{hooks/accounts → adapters/aptos}/useAPTAccount.js.map +1 -1
  40. package/dist/adapters/aptos/useAptosZapQuote.js.map +1 -0
  41. package/dist/{state/balance → adapters/aptos}/useCurrencyBalanceAptos.js +1 -1
  42. package/dist/adapters/aptos/useCurrencyBalanceAptos.js.map +1 -0
  43. package/dist/{views/YourBondsModal/components/Actions → adapters/evm}/Actions.d.ts +1 -1
  44. package/dist/{views/YourBondsModal/components/Actions → adapters/evm}/Actions.js +18 -18
  45. package/dist/adapters/evm/Actions.js.map +1 -0
  46. package/dist/adapters/evm/BuyComponent.d.ts +5 -0
  47. package/dist/{views/BuyBond → adapters/evm}/BuyComponent.js +44 -27
  48. package/dist/adapters/evm/BuyComponent.js.map +1 -0
  49. package/dist/adapters/evm/ClaimAllActionEVM.d.ts +5 -0
  50. package/dist/adapters/evm/ClaimAllActionEVM.js +60 -0
  51. package/dist/adapters/evm/ClaimAllActionEVM.js.map +1 -0
  52. package/dist/{components/ConnectoToVmBanners → adapters/evm}/ConnectToEvmBanner.js +3 -3
  53. package/dist/adapters/evm/ConnectToEvmBanner.js.map +1 -0
  54. package/dist/adapters/evm/EvmAccountBridge.d.ts +6 -0
  55. package/dist/adapters/evm/EvmAccountBridge.js +15 -0
  56. package/dist/adapters/evm/EvmAccountBridge.js.map +1 -0
  57. package/dist/{views/TransactionModal → adapters/evm}/TransactionModal.d.ts +1 -1
  58. package/dist/{views/TransactionModal → adapters/evm}/TransactionModal.js +5 -4
  59. package/dist/adapters/evm/TransactionModal.js.map +1 -0
  60. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/evm}/TransferAction.d.ts +1 -1
  61. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/evm}/TransferAction.js +8 -8
  62. package/dist/adapters/evm/TransferAction.js.map +1 -0
  63. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm}/UserBondRow.d.ts +1 -1
  64. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm}/UserBondRow.js +27 -27
  65. package/dist/adapters/evm/UserBondRow.js.map +1 -0
  66. package/dist/adapters/evm/balances.d.ts +6 -0
  67. package/dist/adapters/evm/balances.js +61 -0
  68. package/dist/adapters/evm/balances.js.map +1 -0
  69. package/dist/{state/bonds/fetchBondsData → adapters/evm}/fetchBondsDataEVM.d.ts +2 -2
  70. package/dist/{state/bonds/fetchBondsData → adapters/evm}/fetchBondsDataEVM.js +8 -8
  71. package/dist/adapters/evm/fetchBondsDataEVM.js.map +1 -0
  72. package/dist/{state/bonds/fetchUsersBonds → adapters/evm}/fetchUsersBondsEVM.d.ts +2 -2
  73. package/dist/{state/bonds/fetchUsersBonds → adapters/evm}/fetchUsersBondsEVM.js +4 -4
  74. package/dist/adapters/evm/fetchUsersBondsEVM.js.map +1 -0
  75. package/dist/adapters/evm/getTierPoints.d.ts +3 -0
  76. package/dist/adapters/evm/getTierPoints.js +48 -0
  77. package/dist/adapters/evm/getTierPoints.js.map +1 -0
  78. package/dist/adapters/evm/index.d.ts +6 -0
  79. package/dist/adapters/evm/index.js +53 -0
  80. package/dist/adapters/evm/index.js.map +1 -0
  81. package/dist/{utils → adapters/evm}/multicall.js +3 -3
  82. package/dist/adapters/evm/multicall.js.map +1 -0
  83. package/dist/{views/BuyBond → adapters/evm/preTGE}/BuyComponentPreTGE.js +27 -27
  84. package/dist/adapters/evm/preTGE/BuyComponentPreTGE.js.map +1 -0
  85. package/dist/{views/Bonds/components/BondRows → adapters/evm/preTGE}/ModalHandlerPreTGE.js +4 -4
  86. package/dist/adapters/evm/preTGE/ModalHandlerPreTGE.js.map +1 -0
  87. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/PreTGEActions.d.ts +1 -1
  88. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/PreTGEActions.js +9 -9
  89. package/dist/adapters/evm/preTGE/PreTGEActions.js.map +1 -0
  90. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowPreTGE.d.ts +1 -1
  91. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowPreTGE.js +9 -9
  92. package/dist/adapters/evm/preTGE/UserBondRowPreTGE.js.map +1 -0
  93. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowYield.d.ts +1 -1
  94. package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowYield.js +11 -11
  95. package/dist/adapters/evm/preTGE/UserBondRowYield.js.map +1 -0
  96. package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/YourBondsModalYield.d.ts +1 -1
  97. package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/YourBondsModalYield.js +22 -22
  98. package/dist/adapters/evm/preTGE/YourBondsModalYield/YourBondsModalYield.js.map +1 -0
  99. package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.d.ts +1 -1
  100. package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js +10 -10
  101. package/dist/adapters/evm/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +1 -0
  102. package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.d.ts +1 -1
  103. package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js +5 -5
  104. package/dist/adapters/evm/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -0
  105. package/dist/{state/bonds/fetchBondsData → adapters/evm/preTGE}/fetchBondsDataPreTGE.d.ts +1 -1
  106. package/dist/{state/bonds/fetchBondsData → adapters/evm/preTGE}/fetchBondsDataPreTGE.js +1 -1
  107. package/dist/adapters/evm/preTGE/fetchBondsDataPreTGE.js.map +1 -0
  108. package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.d.ts +5 -0
  109. package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.js +204 -0
  110. package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.js.map +1 -0
  111. package/dist/{state/allowance → adapters/evm}/useAllowance.js +4 -4
  112. package/dist/adapters/evm/useAllowance.js.map +1 -0
  113. package/dist/adapters/evm/useEVMAccount.js.map +1 -0
  114. package/dist/{hooks → adapters/evm}/useMonitorTx.js +1 -1
  115. package/dist/adapters/evm/useMonitorTx.js.map +1 -0
  116. package/dist/{state/zap → adapters/evm}/useSoulZapBondQuote.js +5 -14
  117. package/dist/adapters/evm/useSoulZapBondQuote.js.map +1 -0
  118. package/dist/{state/bonds → adapters/evm}/useTierProofSignature.js +2 -2
  119. package/dist/adapters/evm/useTierProofSignature.js.map +1 -0
  120. package/dist/adapters/lifi/LifiModal.d.ts +4 -0
  121. package/dist/{views/LifiModal → adapters/lifi}/LifiModal.js +9 -5
  122. package/dist/adapters/lifi/LifiModal.js.map +1 -0
  123. package/dist/adapters/lifi/index.d.ts +6 -0
  124. package/dist/adapters/lifi/index.js +34 -0
  125. package/dist/adapters/lifi/index.js.map +1 -0
  126. package/dist/adapters/registry.d.ts +8 -0
  127. package/dist/adapters/registry.js +24 -0
  128. package/dist/adapters/registry.js.map +1 -0
  129. package/dist/{views/YourBondsModal/components/Actions → adapters/solana}/ActionsSolana.d.ts +1 -1
  130. package/dist/{views/YourBondsModal/components/Actions → adapters/solana}/ActionsSolana.js +13 -13
  131. package/dist/adapters/solana/ActionsSolana.js.map +1 -0
  132. package/dist/{views/BuyBond → adapters/solana}/BuyComponentSolana.js +18 -15
  133. package/dist/adapters/solana/BuyComponentSolana.js.map +1 -0
  134. package/dist/{components/ConnectSolanaWalletButton → adapters/solana}/ConnectSolanaWalletButton.js +2 -2
  135. package/dist/adapters/solana/ConnectSolanaWalletButton.js.map +1 -0
  136. package/dist/{components/ConnectoToVmBanners → adapters/solana}/ConnectToSolanaBanner.js +3 -3
  137. package/dist/adapters/solana/ConnectToSolanaBanner.js.map +1 -0
  138. package/dist/adapters/solana/SolanaAccountBridge.d.ts +3 -0
  139. package/dist/adapters/solana/SolanaAccountBridge.js +13 -0
  140. package/dist/adapters/solana/SolanaAccountBridge.js.map +1 -0
  141. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/solana}/TransferActionSolana.d.ts +1 -1
  142. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/solana}/TransferActionSolana.js +6 -6
  143. package/dist/adapters/solana/TransferActionSolana.js.map +1 -0
  144. package/dist/{views/YourBonds/components/UserBondRow → adapters/solana}/UserBondRowSolana.d.ts +1 -1
  145. package/dist/{views/YourBonds/components/UserBondRow → adapters/solana}/UserBondRowSolana.js +23 -23
  146. package/dist/adapters/solana/UserBondRowSolana.js.map +1 -0
  147. package/dist/{utils → adapters/solana}/calculateSolanaTrueBillPrice.js +1 -1
  148. package/dist/adapters/solana/calculateSolanaTrueBillPrice.js.map +1 -0
  149. package/dist/{types → adapters/solana/codecs}/bondCodec.d.ts +2 -2
  150. package/dist/{types → adapters/solana/codecs}/bondCodec.js +2 -3
  151. package/dist/adapters/solana/codecs/bondCodec.js.map +1 -0
  152. package/dist/{types → adapters/solana/codecs}/bondIssuanceCodec.d.ts +2 -2
  153. package/dist/{types → adapters/solana/codecs}/bondIssuanceCodec.js +2 -3
  154. package/dist/adapters/solana/codecs/bondIssuanceCodec.js.map +1 -0
  155. package/dist/{types → adapters/solana/codecs}/bondPricingCodec.d.ts +1 -1
  156. package/dist/{types → adapters/solana/codecs}/bondPricingCodec.js +2 -2
  157. package/dist/adapters/solana/codecs/bondPricingCodec.js.map +1 -0
  158. package/dist/{types → adapters/solana/codecs}/bondTermCodec.d.ts +1 -1
  159. package/dist/{types → adapters/solana/codecs}/bondTermCodec.js +2 -2
  160. package/dist/adapters/solana/codecs/bondTermCodec.js.map +1 -0
  161. package/dist/adapters/solana/derivePda.js.map +1 -0
  162. package/dist/{state/bonds/fetchBondsData → adapters/solana}/fetchBondsDataSOL.d.ts +2 -2
  163. package/dist/{state/bonds/fetchBondsData → adapters/solana}/fetchBondsDataSOL.js +8 -8
  164. package/dist/adapters/solana/fetchBondsDataSOL.js.map +1 -0
  165. package/dist/{state/bonds/fetchUsersBonds → adapters/solana}/fetchUsersBondsSOL.d.ts +2 -2
  166. package/dist/{state/bonds/fetchUsersBonds → adapters/solana}/fetchUsersBondsSOL.js +5 -5
  167. package/dist/{state/bonds/fetchUsersBonds → adapters/solana}/fetchUsersBondsSOL.js.map +1 -1
  168. package/dist/{utils → adapters/solana}/getSolanaAccount.d.ts +1 -1
  169. package/dist/{utils → adapters/solana}/getSolanaAccount.js +4 -4
  170. package/dist/adapters/solana/getSolanaAccount.js.map +1 -0
  171. package/dist/adapters/solana/index.d.ts +8 -0
  172. package/dist/adapters/solana/index.js +40 -0
  173. package/dist/adapters/solana/index.js.map +1 -0
  174. package/dist/adapters/solana/polyfills.d.ts +1 -0
  175. package/dist/adapters/solana/polyfills.js +7 -0
  176. package/dist/adapters/solana/polyfills.js.map +1 -0
  177. package/dist/adapters/solana/solanaAtaHelper.js.map +1 -0
  178. package/dist/{constants → adapters/solana}/solanaConstants.js +1 -1
  179. package/dist/adapters/solana/solanaConstants.js.map +1 -0
  180. package/dist/adapters/solana/solanaMulticall.js.map +1 -0
  181. package/dist/{utils → adapters/solana}/solanaRpc.js +2 -2
  182. package/dist/adapters/solana/solanaRpc.js.map +1 -0
  183. package/dist/{state/balance → adapters/solana}/useCurrencyBalanceSolana.d.ts +4 -0
  184. package/dist/{state/balance → adapters/solana}/useCurrencyBalanceSolana.js +9 -2
  185. package/dist/adapters/solana/useCurrencyBalanceSolana.js.map +1 -0
  186. package/dist/adapters/solana/useJupiterSolanaQuote.js.map +1 -0
  187. package/dist/adapters/solana/useSOLAccount.js.map +1 -0
  188. package/dist/{views/YourBondsModal/components/Actions → adapters/sui}/ActionsSui.d.ts +1 -1
  189. package/dist/{views/YourBondsModal/components/Actions → adapters/sui}/ActionsSui.js +11 -11
  190. package/dist/adapters/sui/ActionsSui.js.map +1 -0
  191. package/dist/{views/BuyBond → adapters/sui}/BuyComponentSui.js +9 -9
  192. package/dist/adapters/sui/BuyComponentSui.js.map +1 -0
  193. package/dist/adapters/sui/ClaimAllActionSui.d.ts +5 -0
  194. package/dist/adapters/sui/ClaimAllActionSui.js +89 -0
  195. package/dist/adapters/sui/ClaimAllActionSui.js.map +1 -0
  196. package/dist/{components/ConnectoToVmBanners → adapters/sui}/ConnectToSuiBanner.js +4 -4
  197. package/dist/adapters/sui/ConnectToSuiBanner.js.map +1 -0
  198. package/dist/adapters/sui/SuiAccountBridge.d.ts +3 -0
  199. package/dist/adapters/sui/SuiAccountBridge.js +12 -0
  200. package/dist/adapters/sui/SuiAccountBridge.js.map +1 -0
  201. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/sui}/TransferActionSui.d.ts +1 -1
  202. package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/sui}/TransferActionSui.js +7 -7
  203. package/dist/adapters/sui/TransferActionSui.js.map +1 -0
  204. package/dist/{views/YourBonds/components/UserBondRow → adapters/sui}/UserBondRowSui.d.ts +1 -1
  205. package/dist/{views/YourBonds/components/UserBondRow → adapters/sui}/UserBondRowSui.js +22 -22
  206. package/dist/adapters/sui/UserBondRowSui.js.map +1 -0
  207. package/dist/{state/bonds/fetchBondsData → adapters/sui}/fetchBondsDataSui.d.ts +2 -2
  208. package/dist/{state/bonds/fetchBondsData → adapters/sui}/fetchBondsDataSui.js +3 -3
  209. package/dist/adapters/sui/fetchBondsDataSui.js.map +1 -0
  210. package/dist/{state/bonds/fetchUsersBonds → adapters/sui}/fetchUsersBondsSUI.d.ts +2 -2
  211. package/dist/{state/bonds/fetchUsersBonds → adapters/sui}/fetchUsersBondsSUI.js +4 -4
  212. package/dist/adapters/sui/fetchUsersBondsSUI.js.map +1 -0
  213. package/dist/adapters/sui/index.d.ts +6 -0
  214. package/dist/adapters/sui/index.js +37 -0
  215. package/dist/adapters/sui/index.js.map +1 -0
  216. package/dist/adapters/sui/suiConstants.js.map +1 -0
  217. package/dist/{utils → adapters/sui}/suiHelpers.js +1 -1
  218. package/dist/adapters/sui/suiHelpers.js.map +1 -0
  219. package/dist/adapters/sui/suiZapTokens.js.map +1 -0
  220. package/dist/{state/balance → adapters/sui}/useCurrencyBalanceSui.js +1 -1
  221. package/dist/adapters/sui/useCurrencyBalanceSui.js.map +1 -0
  222. package/dist/adapters/sui/useSUIAccount.js.map +1 -0
  223. package/dist/{state/zap → adapters/sui}/useSuiZapQuote.js +1 -1
  224. package/dist/adapters/sui/useSuiZapQuote.js.map +1 -0
  225. package/dist/adapters/types.d.ts +110 -0
  226. package/dist/components/TokenSelectorPanel/index.js +6 -16
  227. package/dist/components/TokenSelectorPanel/index.js.map +1 -1
  228. package/dist/config/constants/chains.d.ts +0 -2
  229. package/dist/config/constants/chains.js +0 -2
  230. package/dist/config/constants/chains.js.map +1 -1
  231. package/dist/config/constants/queryKeys.d.ts +1 -0
  232. package/dist/config/constants/queryKeys.js +1 -0
  233. package/dist/config/constants/queryKeys.js.map +1 -1
  234. package/dist/config/constants/variables.d.ts +0 -1
  235. package/dist/config/constants/variables.js +1 -19
  236. package/dist/config/constants/variables.js.map +1 -1
  237. package/dist/main.d.ts +1 -1
  238. package/dist/main.js +1 -1
  239. package/dist/main.js.map +1 -1
  240. package/dist/providers/index.js +3 -2
  241. package/dist/providers/index.js.map +1 -1
  242. package/dist/state/balance/useCurrencyBalance.js +3 -23
  243. package/dist/state/balance/useCurrencyBalance.js.map +1 -1
  244. package/dist/state/balance/useUserTokensBalance.js +8 -78
  245. package/dist/state/balance/useUserTokensBalance.js.map +1 -1
  246. package/dist/state/bonds/fetchBondsData/{cleanBillsData.js → bondPricing.js} +1 -1
  247. package/dist/state/bonds/fetchBondsData/bondPricing.js.map +1 -0
  248. package/dist/state/bonds/useBondsData.js +23 -35
  249. package/dist/state/bonds/useBondsData.js.map +1 -1
  250. package/dist/state/bonds/useUserBonds.d.ts +3 -1
  251. package/dist/state/bonds/useUserBonds.js +21 -33
  252. package/dist/state/bonds/useUserBonds.js.map +1 -1
  253. package/dist/state/bonds/useUserBondsPreTGE.d.ts +1 -2
  254. package/dist/state/bonds/useUserBondsPreTGE.js +7 -203
  255. package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
  256. package/dist/state/chainAccount/useChainAccount.d.ts +13 -0
  257. package/dist/state/chainAccount/useChainAccount.js +30 -0
  258. package/dist/state/chainAccount/useChainAccount.js.map +1 -0
  259. package/dist/state/hotBonds/useHotBonds.js +1 -1
  260. package/dist/state/hotBonds/useHotBonds.js.map +1 -1
  261. package/dist/state/tiers/tiers.d.ts +66 -0
  262. package/dist/state/tiers/tiers.js +97 -0
  263. package/dist/state/tiers/tiers.js.map +1 -0
  264. package/dist/state/tiers/useTierPoints.d.ts +2 -66
  265. package/dist/state/tiers/useTierPoints.js +13 -145
  266. package/dist/state/tiers/useTierPoints.js.map +1 -1
  267. package/dist/state/useSDKConfig.d.ts +3 -0
  268. package/dist/state/useSDKConfig.js +53 -6
  269. package/dist/state/useSDKConfig.js.map +1 -1
  270. package/dist/styles.css +1 -1
  271. package/dist/utils/displayHelpers.js +1 -1
  272. package/dist/utils/displayHelpers.js.map +1 -1
  273. package/dist/views/Bonds/components/BondRows/BondRow.js +6 -2
  274. package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
  275. package/dist/views/Bonds/components/BondRows/ModalHandler.js +8 -35
  276. package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -1
  277. package/dist/views/Bonds/components/BonusComponents/BonusTable.js +2 -1
  278. package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
  279. package/dist/views/Bonds/components/CheckURL/index.js +8 -4
  280. package/dist/views/Bonds/components/CheckURL/index.js.map +1 -1
  281. package/dist/views/Bonds/components/RecommendationCards/index.js +3 -3
  282. package/dist/views/Bonds/components/RecommendationCards/index.js.map +1 -1
  283. package/dist/views/Bonds/utils.js +1 -1
  284. package/dist/views/Bonds/utils.js.map +1 -1
  285. package/dist/views/BuyBond/BuyBondModal.js +2 -7
  286. package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
  287. package/dist/views/BuyBond/ChainBuyComponent.d.ts +5 -0
  288. package/dist/views/BuyBond/ChainBuyComponent.js +11 -0
  289. package/dist/views/BuyBond/ChainBuyComponent.js.map +1 -0
  290. package/dist/views/BuyBond/components/BondModalHeader.js +2 -1
  291. package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
  292. package/dist/views/BuyBond/components/BondModalMinTierHeader.js +1 -1
  293. package/dist/views/BuyBond/components/BondModalMinTierHeader.js.map +1 -1
  294. package/dist/views/BuyBond/components/Estimations.js +2 -1
  295. package/dist/views/BuyBond/components/Estimations.js.map +1 -1
  296. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +2 -1
  297. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
  298. package/dist/views/BuyBond/index.d.ts +2 -2
  299. package/dist/views/BuyBond/index.js.map +1 -1
  300. package/dist/views/BuyBond/utils.js +1 -1
  301. package/dist/views/BuyBond/utils.js.map +1 -1
  302. package/dist/views/ProjectView/ProjectView.js +2 -2
  303. package/dist/views/ProjectView/ProjectView.js.map +1 -1
  304. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js +2 -2
  305. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
  306. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js +2 -2
  307. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
  308. package/dist/views/ProjectView/components/PriceChart/index.js +1 -1
  309. package/dist/views/ProjectView/components/PriceChart/index.js.map +1 -1
  310. package/dist/views/ProjectView/components/RecommendationCards/index.js +4 -4
  311. package/dist/views/ProjectView/components/RecommendationCards/index.js.map +1 -1
  312. package/dist/views/SingleBond/SingleBond.js +2 -2
  313. package/dist/views/SingleBond/SingleBond.js.map +1 -1
  314. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +4 -3
  315. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
  316. package/dist/views/YourBonds/YourBonds.js +25 -28
  317. package/dist/views/YourBonds/YourBonds.js.map +1 -1
  318. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +8 -175
  319. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -1
  320. package/dist/views/YourBonds/components/ClaimAll/index.js +4 -6
  321. package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -1
  322. package/dist/views/YourBondsModal/YourBondsModal.js +3 -5
  323. package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -1
  324. package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js +3 -3
  325. package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js.map +1 -1
  326. package/dist/views/YourBondsModal/components/TransferBondModal/index.js +3 -6
  327. package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
  328. package/package.json +88 -5
  329. package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.js.map +0 -1
  330. package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js.map +0 -1
  331. package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.js.map +0 -1
  332. package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js.map +0 -1
  333. package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js.map +0 -1
  334. package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.js.map +0 -1
  335. package/dist/config/constants/suiZapTokens.js.map +0 -1
  336. package/dist/constants/solanaConstants.js.map +0 -1
  337. package/dist/constants/suiConstants.js.map +0 -1
  338. package/dist/hooks/accounts/useEVMAccount.js.map +0 -1
  339. package/dist/hooks/accounts/useSOLAccount.js.map +0 -1
  340. package/dist/hooks/accounts/useSUIAccount.js.map +0 -1
  341. package/dist/hooks/useMonitorTx.js.map +0 -1
  342. package/dist/providers/AptosWalletProvider.d.ts +0 -5
  343. package/dist/providers/SolanaWalletProvider.d.ts +0 -5
  344. package/dist/providers/SuiWalletProvider.d.ts +0 -5
  345. package/dist/state/allowance/useAllowance.js.map +0 -1
  346. package/dist/state/balance/useCurrencyBalanceAptos.js.map +0 -1
  347. package/dist/state/balance/useCurrencyBalanceSolana.js.map +0 -1
  348. package/dist/state/balance/useCurrencyBalanceSui.js.map +0 -1
  349. package/dist/state/bonds/fetchBondsData/cleanBillsData.js.map +0 -1
  350. package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js.map +0 -1
  351. package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.js.map +0 -1
  352. package/dist/state/bonds/fetchBondsData/fetchBondsDataPreTGE.js.map +0 -1
  353. package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.js.map +0 -1
  354. package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js.map +0 -1
  355. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsAptos.js.map +0 -1
  356. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +0 -1
  357. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSUI.js.map +0 -1
  358. package/dist/state/bonds/useTierProofSignature.js.map +0 -1
  359. package/dist/state/zap/useAptosZapQuote.js.map +0 -1
  360. package/dist/state/zap/useJupiterSolanaQuote.js.map +0 -1
  361. package/dist/state/zap/useSoulZapBondQuote.js.map +0 -1
  362. package/dist/state/zap/useSuiZapQuote.js.map +0 -1
  363. package/dist/types/bondCodec.js.map +0 -1
  364. package/dist/types/bondIssuanceCodec.js.map +0 -1
  365. package/dist/types/bondPricingCodec.js.map +0 -1
  366. package/dist/types/bondTermCodec.js.map +0 -1
  367. package/dist/utils/aptosHelpers.js.map +0 -1
  368. package/dist/utils/calculateSolanaTrueBillPrice.js.map +0 -1
  369. package/dist/utils/derivePda.js.map +0 -1
  370. package/dist/utils/getSolanaAccount.js.map +0 -1
  371. package/dist/utils/multicall.js.map +0 -1
  372. package/dist/utils/solanaAtaHelper.js.map +0 -1
  373. package/dist/utils/solanaMulticall.js.map +0 -1
  374. package/dist/utils/solanaRpc.js.map +0 -1
  375. package/dist/utils/suiHelpers.js.map +0 -1
  376. package/dist/views/Bonds/components/BondRows/ModalHandlerPreTGE.js.map +0 -1
  377. package/dist/views/BuyBond/BuyComponent.d.ts +0 -11
  378. package/dist/views/BuyBond/BuyComponent.js.map +0 -1
  379. package/dist/views/BuyBond/BuyComponentAptos.js.map +0 -1
  380. package/dist/views/BuyBond/BuyComponentPreTGE.js.map +0 -1
  381. package/dist/views/BuyBond/BuyComponentSolana.js.map +0 -1
  382. package/dist/views/BuyBond/BuyComponentSui.js.map +0 -1
  383. package/dist/views/LifiModal/LifiModal.d.ts +0 -6
  384. package/dist/views/LifiModal/LifiModal.js.map +0 -1
  385. package/dist/views/TransactionModal/TransactionModal.js.map +0 -1
  386. package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js.map +0 -1
  387. package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js.map +0 -1
  388. package/dist/views/YourBonds/components/UserBondRow/UserBondRowAptos.js.map +0 -1
  389. package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js.map +0 -1
  390. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js.map +0 -1
  391. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.js.map +0 -1
  392. package/dist/views/YourBonds/components/UserBondRow/UserBondRowYield.js.map +0 -1
  393. package/dist/views/YourBonds/components/UserBondRow/index.d.ts +0 -5
  394. package/dist/views/YourBondsModal/components/Actions/Actions.js.map +0 -1
  395. package/dist/views/YourBondsModal/components/Actions/ActionsAptos.js.map +0 -1
  396. package/dist/views/YourBondsModal/components/Actions/ActionsSolana.js.map +0 -1
  397. package/dist/views/YourBondsModal/components/Actions/ActionsSui.js.map +0 -1
  398. package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js.map +0 -1
  399. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionAptos.js.map +0 -1
  400. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js.map +0 -1
  401. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js.map +0 -1
  402. package/dist/views/YourBondsModalYield/YourBondsModalYield.js.map +0 -1
  403. package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +0 -1
  404. package/dist/views/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +0 -1
  405. /package/dist/{views/BuyBond → adapters/aptos}/BuyComponentAptos.d.ts +0 -0
  406. /package/dist/{components/ConnectAptosWalletButton → adapters/aptos}/ConnectAptosWalletButton.d.ts +0 -0
  407. /package/dist/{components/ConnectoToVmBanners → adapters/aptos}/ConnectToAptosBanner.d.ts +0 -0
  408. /package/dist/{types → adapters/aptos}/aptosBonds.d.ts +0 -0
  409. /package/dist/{hooks/accounts → adapters/aptos}/useAPTAccount.d.ts +0 -0
  410. /package/dist/{state/zap → adapters/aptos}/useAptosZapQuote.d.ts +0 -0
  411. /package/dist/{state/zap → adapters/aptos}/useAptosZapQuote.js +0 -0
  412. /package/dist/{state/balance → adapters/aptos}/useCurrencyBalanceAptos.d.ts +0 -0
  413. /package/dist/{components/ConnectoToVmBanners → adapters/evm}/ConnectToEvmBanner.d.ts +0 -0
  414. /package/dist/{utils → adapters/evm}/multicall.d.ts +0 -0
  415. /package/dist/{views/BuyBond → adapters/evm/preTGE}/BuyComponentPreTGE.d.ts +0 -0
  416. /package/dist/{views/Bonds/components/BondRows → adapters/evm/preTGE}/ModalHandlerPreTGE.d.ts +0 -0
  417. /package/dist/{state/allowance → adapters/evm}/useAllowance.d.ts +0 -0
  418. /package/dist/{hooks/accounts → adapters/evm}/useEVMAccount.d.ts +0 -0
  419. /package/dist/{hooks/accounts → adapters/evm}/useEVMAccount.js +0 -0
  420. /package/dist/{hooks → adapters/evm}/useMonitorTx.d.ts +0 -0
  421. /package/dist/{state/zap → adapters/evm}/useSoulZapBondQuote.d.ts +0 -0
  422. /package/dist/{state/bonds → adapters/evm}/useTierProofSignature.d.ts +0 -0
  423. /package/dist/{views/BuyBond → adapters/solana}/BuyComponentSolana.d.ts +0 -0
  424. /package/dist/{components/ConnectSolanaWalletButton → adapters/solana}/ConnectSolanaWalletButton.d.ts +0 -0
  425. /package/dist/{components/ConnectoToVmBanners → adapters/solana}/ConnectToSolanaBanner.d.ts +0 -0
  426. /package/dist/{utils → adapters/solana}/calculateSolanaTrueBillPrice.d.ts +0 -0
  427. /package/dist/{types → adapters/solana/codecs}/index.d.ts +0 -0
  428. /package/dist/{utils → adapters/solana}/derivePda.d.ts +0 -0
  429. /package/dist/{utils → adapters/solana}/derivePda.js +0 -0
  430. /package/dist/{types → adapters/solana}/helius.d.ts +0 -0
  431. /package/dist/{utils → adapters/solana}/solanaAtaHelper.d.ts +0 -0
  432. /package/dist/{utils → adapters/solana}/solanaAtaHelper.js +0 -0
  433. /package/dist/{types → adapters/solana}/solanaBonds.d.ts +0 -0
  434. /package/dist/{constants → adapters/solana}/solanaConstants.d.ts +0 -0
  435. /package/dist/{utils → adapters/solana}/solanaMulticall.d.ts +0 -0
  436. /package/dist/{utils → adapters/solana}/solanaMulticall.js +0 -0
  437. /package/dist/{utils → adapters/solana}/solanaRpc.d.ts +0 -0
  438. /package/dist/{state/zap → adapters/solana}/useJupiterSolanaQuote.d.ts +0 -0
  439. /package/dist/{state/zap → adapters/solana}/useJupiterSolanaQuote.js +0 -0
  440. /package/dist/{hooks/accounts → adapters/solana}/useSOLAccount.d.ts +0 -0
  441. /package/dist/{hooks/accounts → adapters/solana}/useSOLAccount.js +0 -0
  442. /package/dist/{views/BuyBond → adapters/sui}/BuyComponentSui.d.ts +0 -0
  443. /package/dist/{components/ConnectoToVmBanners → adapters/sui}/ConnectToSuiBanner.d.ts +0 -0
  444. /package/dist/{constants → adapters/sui}/suiConstants.d.ts +0 -0
  445. /package/dist/{constants → adapters/sui}/suiConstants.js +0 -0
  446. /package/dist/{utils → adapters/sui}/suiHelpers.d.ts +0 -0
  447. /package/dist/{config/constants → adapters/sui}/suiZapTokens.d.ts +0 -0
  448. /package/dist/{config/constants → adapters/sui}/suiZapTokens.js +0 -0
  449. /package/dist/{state/balance → adapters/sui}/useCurrencyBalanceSui.d.ts +0 -0
  450. /package/dist/{hooks/accounts → adapters/sui}/useSUIAccount.d.ts +0 -0
  451. /package/dist/{hooks/accounts → adapters/sui}/useSUIAccount.js +0 -0
  452. /package/dist/{state/zap → adapters/sui}/useSuiZapQuote.d.ts +0 -0
  453. /package/dist/state/bonds/fetchBondsData/{cleanBillsData.d.ts → bondPricing.d.ts} +0 -0
@@ -9,33 +9,27 @@ import PlaceholderMonkey from '../../components/PlaceholderMonkey/index.js';
9
9
  import useChainFilterOption from '../../state/chainFilterOption/useChainFilterOption.js';
10
10
  import YourBondsMenu from './components/YourBondsMenu/YourBondsMenu.js';
11
11
  import { useSDKConfig } from '../../state/useSDKConfig.js';
12
- import { ChainId } from '@ape.swap/apeswap-lists';
13
- import ConnectToSolanaCard from '../../components/ConnectoToVmBanners/ConnectToSolanaBanner.js';
14
- import ConnectToEVMBanner from '../../components/ConnectoToVmBanners/ConnectToEvmBanner.js';
15
- import ConnectToAptosBanner from '../../components/ConnectoToVmBanners/ConnectToAptosBanner.js';
16
- import ConnectToSuiBanner from '../../components/ConnectoToVmBanners/ConnectToSuiBanner.js';
17
- import UserBondRow from './components/UserBondRow/UserBondRow.js';
18
- import UserBondRowSolana from './components/UserBondRow/UserBondRowSolana.js';
19
- import UserBondRowAptos from './components/UserBondRow/UserBondRowAptos.js';
20
- import UserBondRowSui from './components/UserBondRow/UserBondRowSui.js';
21
- import UserBondRowPreTGE from './components/UserBondRow/UserBondRowPreTGE.js';
22
12
  import useUserBondsPreTGE from '../../state/bonds/useUserBondsPreTGE.js';
23
- import useEVMAccount from '../../hooks/accounts/useEVMAccount.js';
24
- import useSOLAccount from '../../hooks/accounts/useSOLAccount.js';
25
- import useAPTAccount from '../../hooks/accounts/useAPTAccount.js';
26
- import useSUIAccount from '../../hooks/accounts/useSUIAccount.js';
13
+ import useChainAccount from '../../state/chainAccount/useChainAccount.js';
14
+ import { getAdapterForChain, getRegisteredAdapters } from '../../adapters/registry.js';
27
15
  import useBondsData from '../../state/bonds/useBondsData.js';
28
- import UserBondRowYield from './components/UserBondRow/UserBondRowYield.js';
29
16
 
17
+ /** The adapter's "connect your wallet" banner, while its family is configured but not connected. */
18
+ const AdapterConnectBanner = ({ adapter, chains }) => {
19
+ const { address } = useChainAccount(adapter.ecosystem);
20
+ if (address || !chains.some((chainId) => adapter.supportsChain(chainId)))
21
+ return null;
22
+ return (jsx(Flex, { className: "ape:w-full ape:mt-[5px]", children: jsx(adapter.ConnectBanner, {}) }));
23
+ };
30
24
  const YourBonds = ({ showOnly }) => {
31
25
  useTokenPrices();
32
26
  useBondsData();
33
27
  // Hooks
34
28
  const SDKConfig = useSDKConfig();
35
- const { address: account } = useEVMAccount();
36
- const { publicKey: solanaAccount } = useSOLAccount();
37
- const { address: aptosAccount } = useAPTAccount();
38
- const { address: suiAccount } = useSUIAccount();
29
+ const { address: account } = useChainAccount('evm');
30
+ const { address: solanaAccount } = useChainAccount('sol');
31
+ const { address: aptosAccount } = useChainAccount('aptos');
32
+ const { address: suiAccount } = useChainAccount('sui');
39
33
  const { data: userBonds, isFetched: userBondsFetched } = useUserBonds();
40
34
  const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption();
41
35
  const { data: preTGEUserBonds, isFetched: preTGEFetched } = useUserBondsPreTGE();
@@ -155,16 +149,19 @@ const YourBonds = ({ showOnly }) => {
155
149
  return (bondsToRender && bondsToRender.length > 0) || !!preTGEBondsToRender?.length;
156
150
  }, [bondsToRender, preTGEBondsToRender]);
157
151
  return (jsxs(Flex, { className: "yourbonds table-container ape:w-full ape:flex ape:flex-col ape:px-[10px]", children: [!showOnly && (jsx(YourBondsMenu, { chainFilterOption: chainFilterOption, setChainFilterOption: setChainFilterOption, filterOptions: filterOptions, filterOption: filterOption, setFilterOption: handleFilterOption, setInputValue: setInputValue, inputValue: inputValue, handleSort: handleSort })), !account && !solanaAccount && !aptosAccount && !suiAccount ? (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(PlaceholderMonkey, { text: 'You are not connected.' }) })) : hasBonds && hasFetched ? (jsxs(Fragment, { children: [preTGEBondsToRender?.map((userBond, index) => {
158
- return userBond.yieldBond ? (jsx(UserBondRowYield, { userBond: userBond }, index)) : (jsx(UserBondRowPreTGE, { userBond: userBond }, index));
152
+ // PreTGE / launch / Yield bonds come from the chain's adapter (EVM only today)
153
+ const preTGE = getAdapterForChain(userBond.chainId)?.preTGE;
154
+ if (!preTGE)
155
+ return null;
156
+ return userBond.yieldBond ? (jsx(preTGE.YieldRow, { userBond: userBond }, index)) : (jsx(preTGE.UserBondRow, { userBond: userBond }, index));
159
157
  }), bondsToRender.map((bond) => {
160
- if (bond.bond?.chainId === ChainId.SOL)
161
- return jsx(UserBondRowSolana, { bill: bond }, `${bond?.billNftAddress}-${bond.id}`);
162
- if (bond.bond?.chainId === ChainId.APTOS)
163
- return jsx(UserBondRowAptos, { bill: bond }, `aptos-${bond?.id}`);
164
- if (bond.bond?.chainId === ChainId.SUI)
165
- return jsx(UserBondRowSui, { bill: bond }, `sui-${bond?.id}`);
166
- return jsx(UserBondRow, { bill: bond }, `${bond?.id}-${bond?.billNftAddress}`);
167
- })] })) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(PlaceholderMonkey, { text: 'No results, change filters.' }) })) : hasFetched && !hasBonds ? (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(PlaceholderMonkey, { text: `You do not own any ${[account && 'EVM', solanaAccount && 'SOL', aptosAccount && 'Aptos', suiAccount && 'Sui'].filter(Boolean).join(' nor ') || 'EVM'} Bonds.` }) })) : (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(Spinner, { size: 100 }) })), jsxs(Flex, { className: "ape:w-full ape:flex-col ape:xl:flex-row ape:gap-[10px] ape:my-[10px]", children: [!account && (jsx(Flex, { className: "ape:w-full ape:mt-[5px]", children: jsx(ConnectToEVMBanner, {}) })), !solanaAccount && SDKConfig.chains?.includes(ChainId.SOL) && (jsx(Flex, { className: "ape:w-full ape:mt-[5px]", children: jsx(ConnectToSolanaCard, {}) })), !aptosAccount && SDKConfig.chains?.includes(ChainId.APTOS) && (jsx(Flex, { className: "ape:w-full ape:mt-[5px]", children: jsx(ConnectToAptosBanner, {}) })), !suiAccount && SDKConfig.chains?.includes(ChainId.SUI) && (jsx(Flex, { className: "ape:w-full ape:mt-[5px]", children: jsx(ConnectToSuiBanner, {}) }))] })] }));
158
+ const chainId = bond.bond?.chainId;
159
+ // Chains without a registered adapter are unsupported
160
+ const adapter = getAdapterForChain(chainId);
161
+ if (!adapter)
162
+ return null;
163
+ return jsx(adapter.UserBondRow, { bill: bond }, `${adapter.ecosystem}-${bond?.id}-${bond?.billNftAddress}`);
164
+ })] })) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(PlaceholderMonkey, { text: 'No results, change filters.' }) })) : hasFetched && !hasBonds ? (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(PlaceholderMonkey, { text: `You do not own any ${[account && 'EVM', solanaAccount && 'SOL', aptosAccount && 'Aptos', suiAccount && 'Sui'].filter(Boolean).join(' nor ') || 'EVM'} Bonds.` }) })) : (jsx(Flex, { className: "placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]", children: jsx(Spinner, { size: 100 }) })), jsx(Flex, { className: "ape:w-full ape:flex-col ape:xl:flex-row ape:gap-[10px] ape:my-[10px]", children: getRegisteredAdapters().map((adapter) => (jsx(AdapterConnectBanner, { adapter: adapter, chains: SDKConfig.chains ?? [] }, adapter.ecosystem))) })] }));
168
165
  };
169
166
 
170
167
  export { YourBonds as default };
@@ -1 +1 @@
1
- {"version":3,"file":"YourBonds.js","sources":["../../../src/views/YourBonds/YourBonds.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react'\nimport Spinner from '../../components/uikit-sdk/Spinner'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport { UserBill } from '../../types/yourbonds'\nimport { claimableUSD, pendingUSD, getTimeLeftForFullyVested } from '../../utils/displayHelpers'\nimport useUserBonds from '../../state/bonds/useUserBonds'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport PlaceholderMonkey from '../../components/PlaceholderMonkey'\nimport useChainFilterOption from '../../state/chainFilterOption/useChainFilterOption'\nimport YourBondsMenu from './components/YourBondsMenu/YourBondsMenu'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport ConnectToSolanaBanner from '../../components/ConnectoToVmBanners/ConnectToSolanaBanner'\nimport ConnectToEVMBanner from '../../components/ConnectoToVmBanners/ConnectToEvmBanner'\nimport ConnectToAptosBanner from '../../components/ConnectoToVmBanners/ConnectToAptosBanner'\nimport ConnectToSuiBanner from '../../components/ConnectoToVmBanners/ConnectToSuiBanner'\nimport {\n UserBondRowPreTGE,\n UserBondRowSolana,\n UserBondRowAptos,\n UserBondRowSui,\n UserBondRow,\n} from './components/UserBondRow'\nimport useUserBondsPreTGE from '../../state/bonds/useUserBondsPreTGE'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport UserBondRowYield from './components/UserBondRow/UserBondRowYield'\n\ntype SortDirection = 'asc' | 'desc'\nexport type SortableKeys = 'claimable' | 'pending' | 'terms'\n\nconst YourBonds = ({ showOnly }: { showOnly?: string }) => {\n useTokenPrices()\n useBondsData()\n // Hooks\n const SDKConfig = useSDKConfig()\n const { address: account } = useEVMAccount()\n const { publicKey: solanaAccount } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const { data: userBonds, isFetched: userBondsFetched } = useUserBonds()\n const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption()\n const { data: preTGEUserBonds, isFetched: preTGEFetched } = useUserBondsPreTGE()\n const hasFetched = userBondsFetched && (preTGEFetched || !account)\n\n // State\n const [sortConfig, setSortConfig] = useState<{ key: SortableKeys; direction: SortDirection } | null>({\n key: 'claimable',\n direction: 'desc',\n })\n\n const [inputValue, setInputValue] = useState('')\n const filterOptions = ['CLAIMABLE', 'ALL']\n const [filterOption, setFilterOption] = useState(filterOptions[0])\n\n const preTGEBondsToRender = preTGEUserBonds\n ?.filter((userBond) => {\n if (!userBond?.accountInfo?.hasRedeemed) {\n return parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0\n } else if (userBond.yieldBond && parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0) {\n return (userBond?.yieldData?.depositedAssets ?? 0) > 0\n } else {\n return userBond?.userOwnedBillsData?.payout !== '0'\n }\n })\n .filter(\n (userBond) =>\n chainFilterOption.includes(userBond.chainId?.toString() ?? '') || chainFilterOption.includes('All Chains'),\n )\n .filter((userBond) => userBond.earnToken.symbol?.toLowerCase().includes(inputValue.toLowerCase()))\n\n const handleSort = (key: SortableKeys) => {\n let direction: SortDirection = 'desc'\n if (sortConfig?.key === key && sortConfig?.direction === 'desc') {\n direction = 'asc'\n }\n setSortConfig({ key, direction })\n }\n\n const bondsToRender = useMemo((): UserBill[] => {\n if (!userBonds) return []\n let bondsToReturn = userBonds\n\n // Handle Filtering //\n\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.onlyPartner ? bond.bond.bondPartner === SDKConfig.bondPartner : true\n })\n\n if (SDKConfig.bondPartner) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.bondPartner === SDKConfig.bondPartner\n })\n }\n\n // Filter Single Token View\n if (showOnly) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond?.bond?.earnToken?.symbol?.toLowerCase() === showOnly.toLowerCase()\n })\n }\n\n // Filter by search query\n if (inputValue !== '') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return [\n bond?.bond?.showcaseTokenName?.toLowerCase(),\n bond?.bond?.earnToken?.symbol?.toLowerCase(),\n bond?.bond?.lpToken?.symbol?.toLowerCase(),\n ].some((property) => property?.includes(inputValue.toLowerCase()))\n })\n }\n\n // Filter by chain selector\n if (!chainFilterOption.includes('All Chains')) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return chainFilterOption.includes(bond?.bond?.chainId?.toString() ?? '')\n })\n }\n\n // Filter by filter option (claimable or all buttons)\n if (filterOption === 'CLAIMABLE') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n if (bond?.bond?.vestingCliff) {\n return bond.payout !== '0'\n }\n return bond.pendingRewards !== '0'\n })\n }\n\n // Handle sorting //\n if (sortConfig !== null) {\n bondsToReturn = bondsToReturn?.sort((a, b) => {\n let aValue: number, bValue: number\n\n if (sortConfig.key === 'claimable') {\n aValue = claimableUSD(a)\n bValue = claimableUSD(b)\n } else if (sortConfig.key === 'pending') {\n aValue = pendingUSD(a)\n bValue = pendingUSD(b)\n } else if (sortConfig.key === 'terms') {\n // little nasty trick to have the lowest time (closest to being fully vested) show up first when sorting ascending\n const aRemainingTime = getTimeLeftForFullyVested(b)\n const bRemainingTime = getTimeLeftForFullyVested(a)\n\n aValue = aRemainingTime\n bValue = bRemainingTime\n } else {\n aValue = a[sortConfig.key]\n bValue = b[sortConfig.key]\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n }\n return bondsToReturn\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [userBonds, sortConfig, inputValue, chainFilterOption, filterOption, userBondsFetched])\n\n const handleFilterOption = useCallback((newOption: string) => {\n setFilterOption(newOption)\n }, [])\n\n const hasBonds = useMemo(() => {\n return (bondsToRender && bondsToRender.length > 0) || !!preTGEBondsToRender?.length\n }, [bondsToRender, preTGEBondsToRender])\n\n return (\n <Flex className=\"yourbonds table-container ape:w-full ape:flex ape:flex-col ape:px-[10px]\">\n {!showOnly && (\n <YourBondsMenu\n chainFilterOption={chainFilterOption}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={handleFilterOption}\n setInputValue={setInputValue}\n inputValue={inputValue}\n handleSort={handleSort}\n />\n )}\n {!account && !solanaAccount && !aptosAccount && !suiAccount ? (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <PlaceholderMonkey text={'You are not connected.'} />\n </Flex>\n ) : hasBonds && hasFetched ? (\n <>\n {preTGEBondsToRender?.map((userBond, index) => {\n return userBond.yieldBond ? (\n <UserBondRowYield userBond={userBond} key={index} />\n ) : (\n <UserBondRowPreTGE userBond={userBond} key={index} />\n )\n })}\n {bondsToRender.map((bond) => {\n if (bond.bond?.chainId === ChainId.SOL)\n return <UserBondRowSolana bill={bond} key={`${bond?.billNftAddress}-${bond.id}`} />\n if (bond.bond?.chainId === ChainId.APTOS) return <UserBondRowAptos bill={bond} key={`aptos-${bond?.id}`} />\n if (bond.bond?.chainId === ChainId.SUI) return <UserBondRowSui bill={bond} key={`sui-${bond?.id}`} />\n return <UserBondRow bill={bond} key={`${bond?.id}-${bond?.billNftAddress}`} />\n })}\n </>\n ) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <PlaceholderMonkey text={'No results, change filters.'} />\n </Flex>\n ) : hasFetched && !hasBonds ? (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <PlaceholderMonkey\n text={`You do not own any ${[account && 'EVM', solanaAccount && 'SOL', aptosAccount && 'Aptos', suiAccount && 'Sui'].filter(Boolean).join(' nor ') || 'EVM'} Bonds.`}\n />\n </Flex>\n ) : (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <Spinner size={100} />\n </Flex>\n )}\n <Flex className=\"ape:w-full ape:flex-col ape:xl:flex-row ape:gap-[10px] ape:my-[10px]\">\n {!account && (\n <Flex className=\"ape:w-full ape:mt-[5px]\">\n <ConnectToEVMBanner />\n </Flex>\n )}\n {!solanaAccount && SDKConfig.chains?.includes(ChainId.SOL) && (\n <Flex className=\"ape:w-full ape:mt-[5px]\">\n <ConnectToSolanaBanner />\n </Flex>\n )}\n {!aptosAccount && SDKConfig.chains?.includes(ChainId.APTOS) && (\n <Flex className=\"ape:w-full ape:mt-[5px]\">\n <ConnectToAptosBanner />\n </Flex>\n )}\n {!suiAccount && SDKConfig.chains?.includes(ChainId.SUI) && (\n <Flex className=\"ape:w-full ape:mt-[5px]\">\n <ConnectToSuiBanner />\n </Flex>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBonds\n"],"names":["_jsxs","_jsx","_Fragment","ConnectToSolanaBanner"],"mappings":"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"}
1
+ {"version":3,"file":"YourBonds.js","sources":["../../../src/views/YourBonds/YourBonds.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react'\nimport Spinner from '../../components/uikit-sdk/Spinner'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport { UserBill } from '../../types/yourbonds'\nimport { claimableUSD, pendingUSD, getTimeLeftForFullyVested } from '../../utils/displayHelpers'\nimport useUserBonds from '../../state/bonds/useUserBonds'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport PlaceholderMonkey from '../../components/PlaceholderMonkey'\nimport useChainFilterOption from '../../state/chainFilterOption/useChainFilterOption'\nimport YourBondsMenu from './components/YourBondsMenu/YourBondsMenu'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport useUserBondsPreTGE from '../../state/bonds/useUserBondsPreTGE'\nimport useChainAccount from '../../state/chainAccount/useChainAccount'\nimport { getAdapterForChain, getRegisteredAdapters } from '../../adapters/registry'\nimport type { ChainAdapter } from '../../adapters/types'\nimport useBondsData from '../../state/bonds/useBondsData'\n\ntype SortDirection = 'asc' | 'desc'\n\n/** The adapter's \"connect your wallet\" banner, while its family is configured but not connected. */\nconst AdapterConnectBanner = ({ adapter, chains }: { adapter: ChainAdapter; chains: number[] }) => {\n const { address } = useChainAccount(adapter.ecosystem)\n if (address || !chains.some((chainId) => adapter.supportsChain(chainId))) return null\n return (\n <Flex className=\"ape:w-full ape:mt-[5px]\">\n <adapter.ConnectBanner />\n </Flex>\n )\n}\nexport type SortableKeys = 'claimable' | 'pending' | 'terms'\n\nconst YourBonds = ({ showOnly }: { showOnly?: string }) => {\n useTokenPrices()\n useBondsData()\n // Hooks\n const SDKConfig = useSDKConfig()\n const { address: account } = useChainAccount('evm')\n const { address: solanaAccount } = useChainAccount('sol')\n const { address: aptosAccount } = useChainAccount('aptos')\n const { address: suiAccount } = useChainAccount('sui')\n const { data: userBonds, isFetched: userBondsFetched } = useUserBonds()\n const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption()\n const { data: preTGEUserBonds, isFetched: preTGEFetched } = useUserBondsPreTGE()\n const hasFetched = userBondsFetched && (preTGEFetched || !account)\n\n // State\n const [sortConfig, setSortConfig] = useState<{ key: SortableKeys; direction: SortDirection } | null>({\n key: 'claimable',\n direction: 'desc',\n })\n\n const [inputValue, setInputValue] = useState('')\n const filterOptions = ['CLAIMABLE', 'ALL']\n const [filterOption, setFilterOption] = useState(filterOptions[0])\n\n const preTGEBondsToRender = preTGEUserBonds\n ?.filter((userBond) => {\n if (!userBond?.accountInfo?.hasRedeemed) {\n return parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0\n } else if (userBond.yieldBond && parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0) {\n return (userBond?.yieldData?.depositedAssets ?? 0) > 0\n } else {\n return userBond?.userOwnedBillsData?.payout !== '0'\n }\n })\n .filter(\n (userBond) =>\n chainFilterOption.includes(userBond.chainId?.toString() ?? '') || chainFilterOption.includes('All Chains'),\n )\n .filter((userBond) => userBond.earnToken.symbol?.toLowerCase().includes(inputValue.toLowerCase()))\n\n const handleSort = (key: SortableKeys) => {\n let direction: SortDirection = 'desc'\n if (sortConfig?.key === key && sortConfig?.direction === 'desc') {\n direction = 'asc'\n }\n setSortConfig({ key, direction })\n }\n\n const bondsToRender = useMemo((): UserBill[] => {\n if (!userBonds) return []\n let bondsToReturn = userBonds\n\n // Handle Filtering //\n\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.onlyPartner ? bond.bond.bondPartner === SDKConfig.bondPartner : true\n })\n\n if (SDKConfig.bondPartner) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.bondPartner === SDKConfig.bondPartner\n })\n }\n\n // Filter Single Token View\n if (showOnly) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond?.bond?.earnToken?.symbol?.toLowerCase() === showOnly.toLowerCase()\n })\n }\n\n // Filter by search query\n if (inputValue !== '') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return [\n bond?.bond?.showcaseTokenName?.toLowerCase(),\n bond?.bond?.earnToken?.symbol?.toLowerCase(),\n bond?.bond?.lpToken?.symbol?.toLowerCase(),\n ].some((property) => property?.includes(inputValue.toLowerCase()))\n })\n }\n\n // Filter by chain selector\n if (!chainFilterOption.includes('All Chains')) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return chainFilterOption.includes(bond?.bond?.chainId?.toString() ?? '')\n })\n }\n\n // Filter by filter option (claimable or all buttons)\n if (filterOption === 'CLAIMABLE') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n if (bond?.bond?.vestingCliff) {\n return bond.payout !== '0'\n }\n return bond.pendingRewards !== '0'\n })\n }\n\n // Handle sorting //\n if (sortConfig !== null) {\n bondsToReturn = bondsToReturn?.sort((a, b) => {\n let aValue: number, bValue: number\n\n if (sortConfig.key === 'claimable') {\n aValue = claimableUSD(a)\n bValue = claimableUSD(b)\n } else if (sortConfig.key === 'pending') {\n aValue = pendingUSD(a)\n bValue = pendingUSD(b)\n } else if (sortConfig.key === 'terms') {\n // little nasty trick to have the lowest time (closest to being fully vested) show up first when sorting ascending\n const aRemainingTime = getTimeLeftForFullyVested(b)\n const bRemainingTime = getTimeLeftForFullyVested(a)\n\n aValue = aRemainingTime\n bValue = bRemainingTime\n } else {\n aValue = a[sortConfig.key]\n bValue = b[sortConfig.key]\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n }\n return bondsToReturn\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [userBonds, sortConfig, inputValue, chainFilterOption, filterOption, userBondsFetched])\n\n const handleFilterOption = useCallback((newOption: string) => {\n setFilterOption(newOption)\n }, [])\n\n const hasBonds = useMemo(() => {\n return (bondsToRender && bondsToRender.length > 0) || !!preTGEBondsToRender?.length\n }, [bondsToRender, preTGEBondsToRender])\n\n return (\n <Flex className=\"yourbonds table-container ape:w-full ape:flex ape:flex-col ape:px-[10px]\">\n {!showOnly && (\n <YourBondsMenu\n chainFilterOption={chainFilterOption}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={handleFilterOption}\n setInputValue={setInputValue}\n inputValue={inputValue}\n handleSort={handleSort}\n />\n )}\n {!account && !solanaAccount && !aptosAccount && !suiAccount ? (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <PlaceholderMonkey text={'You are not connected.'} />\n </Flex>\n ) : hasBonds && hasFetched ? (\n <>\n {preTGEBondsToRender?.map((userBond, index) => {\n // PreTGE / launch / Yield bonds come from the chain's adapter (EVM only today)\n const preTGE = getAdapterForChain(userBond.chainId)?.preTGE\n if (!preTGE) return null\n return userBond.yieldBond ? (\n <preTGE.YieldRow userBond={userBond} key={index} />\n ) : (\n <preTGE.UserBondRow userBond={userBond} key={index} />\n )\n })}\n {bondsToRender.map((bond) => {\n const chainId = bond.bond?.chainId as ChainId\n // Chains without a registered adapter are unsupported\n const adapter = getAdapterForChain(chainId)\n if (!adapter) return null\n return <adapter.UserBondRow bill={bond} key={`${adapter.ecosystem}-${bond?.id}-${bond?.billNftAddress}`} />\n })}\n </>\n ) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <PlaceholderMonkey text={'No results, change filters.'} />\n </Flex>\n ) : hasFetched && !hasBonds ? (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <PlaceholderMonkey\n text={`You do not own any ${[account && 'EVM', solanaAccount && 'SOL', aptosAccount && 'Aptos', suiAccount && 'Sui'].filter(Boolean).join(' nor ') || 'EVM'} Bonds.`}\n />\n </Flex>\n ) : (\n <Flex className=\"placeholder-monkey-wrapper ape:w-full ape:flex-col ape:pt-[100px] ape:pb-[100px] ape:bg-white2 ape:items-center ape:rounded-[10px] ape:mt-[15px] ape:justify-center ape:h-[400px]\">\n <Spinner size={100} />\n </Flex>\n )}\n <Flex className=\"ape:w-full ape:flex-col ape:xl:flex-row ape:gap-[10px] ape:my-[10px]\">\n {getRegisteredAdapters().map((adapter) => (\n <AdapterConnectBanner key={adapter.ecosystem} adapter={adapter} chains={SDKConfig.chains ?? []} />\n ))}\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBonds\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1,36 +1,22 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useState, useEffect } from 'react';
3
- import { useSwitchChain, useWriteContract } from 'wagmi';
4
3
  import { ChainId } from '@ape.swap/apeswap-lists';
5
4
  import useUserBonds from '../../../../state/bonds/useUserBonds.js';
6
- import Button from '../../../../components/uikit-sdk/Button/Button.js';
7
5
  import Flex from '../../../../components/uikit-sdk/Flex/index.js';
8
6
  import Modal from '../../../../components/uikit-sdk/Modal/index.js';
9
7
  import Text from '../../../../components/uikit-sdk/Text/index.js';
10
8
  import TokenImage from '../../../../components/uikit-sdk/TokenImage/index.js';
11
- import { NETWORK_LABEL } from '../../../../config/constants/chains.js';
12
9
  import ChainOptionsList from '../../../../components/ChainOptionList/ChainOptionsList.js';
13
10
  import { useSDKConfig } from '../../../../state/useSDKConfig.js';
14
11
  import ChainOptionsButtons from '../../../../components/ChainOptionList/ChainOptionsButtons.js';
15
- import BOND_ABI from '../../../../config/abi/BOND_2_4_0.json.js';
16
- import track from '../../../../utils/track.js';
17
- import { usePopups } from '../../../../state/popups/usePopups.js';
18
- import { reportError } from '../../../../utils/reportError.js';
19
- import useEVMAccount from '../../../../hooks/accounts/useEVMAccount.js';
20
- import useAPTAccount from '../../../../hooks/accounts/useAPTAccount.js';
21
- import useSUIAccount from '../../../../hooks/accounts/useSUIAccount.js';
22
- import { APTOS_CLAIM_FUNCTION } from '../../../../constants/aptosConstants.js';
23
- import { SUI_CLAIM_FUNCTION } from '../../../../constants/suiConstants.js';
24
- import { getAptosClient } from '../../../../utils/aptosHelpers.js';
25
- import { Transaction } from '@mysten/sui/transactions';
26
- import { verifySuiTxSuccess } from '../../../../utils/suiHelpers.js';
12
+ import useChainAccount from '../../../../state/chainAccount/useChainAccount.js';
13
+ import { getAdapterForChain } from '../../../../adapters/registry.js';
27
14
  import Arrow from '../../../../components/uikit-sdk/Svg/Icons/Arrow.js';
28
15
 
29
16
  const ClaimAllModal = () => {
30
- const { chainId, address: account } = useEVMAccount();
31
- const { address: aptosAccount, signAndSubmitTransaction } = useAPTAccount();
32
- const { address: suiAccount, signAndExecuteTransaction } = useSUIAccount();
33
- const { switchChain } = useSwitchChain();
17
+ const { chainId } = useChainAccount('evm');
18
+ const { address: aptosAccount } = useChainAccount('aptos');
19
+ const { address: suiAccount } = useChainAccount('sui');
34
20
  const SDKConfig = useSDKConfig();
35
21
  const chains = SDKConfig?.chains;
36
22
  const [selectedChain, setSelectedChain] = useState(chainId ?? (aptosAccount ? ChainId.APTOS : suiAccount ? ChainId.SUI : 56));
@@ -55,159 +41,8 @@ const ClaimAllModal = () => {
55
41
  return acc;
56
42
  }, []);
57
43
  const bondsOfSelectedChain = groupedBills?.filter((group) => group.bond.chainId === selectedChain);
58
- const ownedBillsAmount = bondsOfSelectedChain?.reduce((total, ownerBills) => total + (ownerBills.userOwnedBills?.length || 0), 0);
59
- const { addToastError, addToastSuccess } = usePopups();
60
- const { writeContractAsync } = useWriteContract();
61
- const { refetch } = useUserBonds();
62
- const [loadingTx, setLoadingTx] = useState(false);
63
- const isAptosChain = selectedChain === ChainId.APTOS;
64
- const isSuiChain = selectedChain === ChainId.SUI;
65
- const handleClaimEVM = async () => {
66
- try {
67
- bondsOfSelectedChain?.map(async (purchasedBond) => {
68
- const address = purchasedBond.bond.contractAddress[purchasedBond.bond.chainId];
69
- track({
70
- event: 'bond',
71
- chain: purchasedBond.bond.chainId,
72
- data: {
73
- cat: 'claimAll',
74
- address,
75
- earnToken: purchasedBond?.bond.earnToken.symbol,
76
- },
77
- });
78
- return writeContractAsync({
79
- address,
80
- abi: BOND_ABI,
81
- functionName: 'batchRedeem',
82
- args: [purchasedBond.userOwnedBills.map((b) => b.id)],
83
- chain: chainId,
84
- account,
85
- });
86
- });
87
- }
88
- catch (error) {
89
- console.error('Claim All failed:', error);
90
- addToastError(error.message);
91
- reportError({
92
- apiUrl: SDKConfig?.urls?.apiV2,
93
- error,
94
- extraInfo: { type: 'claimAll', bondsOfSelectedChain, error },
95
- chainId,
96
- account,
97
- });
98
- }
99
- };
100
- const handleClaimAptos = async () => {
101
- if (!aptosAccount || !bondsOfSelectedChain?.length)
102
- return;
103
- setLoadingTx(true);
104
- try {
105
- // Aptos has no batchRedeem — claim each bill individually
106
- const allBills = bondsOfSelectedChain.flatMap((group) => group.userOwnedBills.map((b) => ({ bill: b, market: group.bond.contractAddress[group.bond.chainId] })));
107
- let lastTxHash = '';
108
- for (const { bill, market } of allBills) {
109
- if (!market || !bill.id)
110
- continue;
111
- track({
112
- event: 'bond',
113
- chain: ChainId.APTOS,
114
- data: { cat: 'claimAll', address: market, earnToken: bill.bond?.earnToken?.symbol },
115
- });
116
- const response = await signAndSubmitTransaction?.({
117
- data: {
118
- function: APTOS_CLAIM_FUNCTION,
119
- typeArguments: [],
120
- functionArguments: [market, bill.id],
121
- },
122
- });
123
- if (!response?.hash)
124
- throw new Error('No tx hash returned by wallet');
125
- lastTxHash = response.hash;
126
- const aptos = getAptosClient();
127
- await aptos.waitForTransaction({ transactionHash: response.hash });
128
- }
129
- refetch();
130
- addToastSuccess(lastTxHash, ChainId.APTOS);
131
- }
132
- catch (error) {
133
- console.error('Aptos Claim All failed:', error);
134
- addToastError(error?.message ?? 'Unknown error');
135
- reportError({
136
- apiUrl: SDKConfig?.urls?.apiV2,
137
- error,
138
- extraInfo: { type: 'aptosClaimAll', bondsOfSelectedChain, error },
139
- chainId: ChainId.APTOS,
140
- account: aptosAccount ?? '',
141
- });
142
- }
143
- finally {
144
- setLoadingTx(false);
145
- }
146
- };
147
- const handleClaimSui = async () => {
148
- if (!suiAccount || !bondsOfSelectedChain?.length || !signAndExecuteTransaction)
149
- return;
150
- setLoadingTx(true);
151
- try {
152
- const allBills = bondsOfSelectedChain
153
- .flatMap((group) => group.userOwnedBills.map((b) => ({ bill: b, market: group.bond.contractAddress[group.bond.chainId] })))
154
- .filter(({ bill }) => bill.pendingRewards !== '0');
155
- // Build a single PTB that claims all bills in one transaction
156
- const tx = new Transaction();
157
- for (const { bill, market } of allBills) {
158
- if (!market || !bill.address)
159
- continue;
160
- const payoutCoinType = bill.bond?.earnToken?.address?.[bill.bond?.chainId ?? 0];
161
- const principalCoinType = bill.bond?.lpToken?.address?.[bill.bond?.chainId ?? 0];
162
- if (!payoutCoinType || !principalCoinType)
163
- continue;
164
- track({
165
- event: 'bond',
166
- chain: ChainId.SUI,
167
- data: { cat: 'claimAll', address: market, earnToken: bill.bond?.earnToken?.symbol },
168
- });
169
- const [claimedCoin] = tx.moveCall({
170
- target: SUI_CLAIM_FUNCTION,
171
- typeArguments: [payoutCoinType, principalCoinType],
172
- arguments: [
173
- tx.object(market),
174
- tx.object(bill.address), // BondNFT object ID
175
- tx.object('0x6'), // clock
176
- ],
177
- });
178
- tx.transferObjects([claimedCoin], tx.pure.address(suiAccount));
179
- }
180
- // Pre-build so the wallet receives fully-resolved bytes
181
- tx.setSender(suiAccount);
182
- tx.setGasBudget(50000000);
183
- const { getSuiClient } = await import('../../../../utils/suiHelpers.js');
184
- const suiClient = getSuiClient();
185
- const builtBytes = await tx.build({ client: suiClient });
186
- const prebuiltTx = Transaction.from(builtBytes);
187
- const claimResponse = await signAndExecuteTransaction({ transaction: prebuiltTx });
188
- const claimDigest = claimResponse?.digest;
189
- if (claimDigest) {
190
- await verifySuiTxSuccess(claimDigest);
191
- }
192
- refetch();
193
- addToastSuccess(claimDigest, ChainId.SUI);
194
- }
195
- catch (error) {
196
- console.error('Sui Claim All failed:', error);
197
- addToastError(error?.message ?? 'Unknown error');
198
- reportError({
199
- apiUrl: SDKConfig?.urls?.apiV2,
200
- error,
201
- extraInfo: { type: 'suiClaimAll', bondsOfSelectedChain, error },
202
- chainId: ChainId.SUI,
203
- account: suiAccount ?? '',
204
- });
205
- }
206
- finally {
207
- setLoadingTx(false);
208
- }
209
- };
210
- const handleClaim = isSuiChain ? handleClaimSui : isAptosChain ? handleClaimAptos : handleClaimEVM;
44
+ // Each family's adapter renders its own claim action (summary + button) for the selected chain
45
+ const claimAllAdapter = getAdapterForChain(selectedChain);
211
46
  const purchasedBillsChains = groupedBills
212
47
  ?.reduce((acc, bill) => {
213
48
  if (acc.includes(bill.bond.chainId)) {
@@ -228,9 +63,7 @@ const ClaimAllModal = () => {
228
63
  ?.filter((userBill) => userBill.bond.chainId === selectedChain)
229
64
  .map((ownedBill, index) => {
230
65
  return (jsxs(Flex, { className: "ape:w-full ape:items-center ape:p-[5px]", children: [jsx(TokenImage, { symbol: ownedBill.bond.earnToken.symbol, size: 30 }), jsxs(Text, { className: "ape:ml-[10px]", children: [ownedBill.bond.earnToken.symbol, jsxs(Text, { as: "span", size: "14px", weight: 400, className: "ape:ml-[10px]", style: { color: 'var(--ape-color-text-disabled-button)' }, children: ["(", ownedBill?.userOwnedBills?.length, " Bond", ownedBill?.userOwnedBills && ownedBill?.userOwnedBills?.length > 1 ? 's' : '', ")"] })] })] }, `${ownedBill.bond.earnToken.symbol}-${index}`));
231
- })) : (jsx(Flex, { className: "ape:text-[14px] ape:font-normal ape:justify-center ape:mt-[10px]", style: { color: 'var(--ape-color-text-disabled-button)' }, children: "No bonds to claim for this chain" })) }), jsxs(Text, { size: "14px", weight: 400, className: "ape:mt-[15px]", children: [`You'll claim`, " ", ownedBillsAmount, " Bonds in", ' ', isAptosChain ? ownedBillsAmount : isSuiChain ? 1 : bondsOfSelectedChain?.length, " transaction", (isAptosChain ? (ownedBillsAmount ?? 0) : isSuiChain ? 0 : (bondsOfSelectedChain?.length ?? 0)) > 1
232
- ? 's'
233
- : '', "."] }), isSuiChain ? (jsx(Button, { className: "ape:mt-[15px] ape:w-full", onClick: handleClaim, disabled: !suiAccount || loadingTx || !ownedBillsAmount, load: loadingTx, children: !suiAccount ? 'Connect Sui Wallet' : 'Claim' })) : isAptosChain ? (jsx(Button, { className: "ape:mt-[15px] ape:w-full", onClick: handleClaim, disabled: !aptosAccount || loadingTx || !ownedBillsAmount, load: loadingTx, children: !aptosAccount ? 'Connect Aptos Wallet' : 'Claim' })) : chainId === selectedChain ? (jsx(Button, { className: "ape:mt-[15px] ape:w-full", onClick: handleClaim, children: "Claim" })) : (jsxs(Button, { className: "ape:mt-[15px] ape:w-full", onClick: () => switchChain({ chainId: selectedChain }), children: ["Switch to ", NETWORK_LABEL[selectedChain ?? 0]] }))] })) }));
66
+ })) : (jsx(Flex, { className: "ape:text-[14px] ape:font-normal ape:justify-center ape:mt-[10px]", style: { color: 'var(--ape-color-text-disabled-button)' }, children: "No bonds to claim for this chain" })) }), claimAllAdapter?.ClaimAllAction ? (jsx(claimAllAdapter.ClaimAllAction, { chainId: selectedChain, bondsToClaim: bondsOfSelectedChain ?? [] })) : (jsx(Text, { size: "14px", weight: 400, className: "ape:mt-[15px]", children: `Claim All isn't available for this chain; claim these bonds one by one from Your Bonds.` }))] })) }));
234
67
  };
235
68
 
236
69
  export { ClaimAllModal as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ClaimAllModal.js","sources":["../../../../../src/views/YourBonds/components/ClaimAll/ClaimAllModal.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport { useSwitchChain, useWriteContract } from 'wagmi'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { NETWORK_LABEL } from '../../../../config/constants/chains'\nimport ChainOptionsList from '../../../../components/ChainOptionList/ChainOptionsList'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport ChainOptionsButtons from '../../../../components/ChainOptionList/ChainOptionsButtons'\nimport { UserBill } from '../../../../types/yourbonds'\nimport BOND_ABI from '../../../../config/abi/BOND_2_4_0.json'\nimport track from '../../../../utils/track'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport { BillsConfig } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../../../utils/reportError'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport useAPTAccount from '../../../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../../../hooks/accounts/useSUIAccount'\nimport { APTOS_CLAIM_FUNCTION } from '../../../../constants/aptosConstants'\nimport { SUI_CLAIM_FUNCTION } from '../../../../constants/suiConstants'\nimport { getAptosClient } from '../../../../utils/aptosHelpers'\nimport { Transaction } from '@mysten/sui/transactions'\nimport { verifySuiTxSuccess } from '../../../../utils/suiHelpers'\nimport Arrow from '../../../../components/uikit-sdk/Svg/Icons/Arrow'\n\nconst ClaimAllModal = () => {\n const { chainId, address: account } = useEVMAccount()\n const { address: aptosAccount, signAndSubmitTransaction } = useAPTAccount()\n const { address: suiAccount, signAndExecuteTransaction } = useSUIAccount()\n const { switchChain } = useSwitchChain()\n const SDKConfig = useSDKConfig()\n const chains = SDKConfig?.chains as number[]\n\n const [selectedChain, setSelectedChain] = useState(\n chainId ?? (aptosAccount ? ChainId.APTOS : suiAccount ? ChainId.SUI : 56),\n )\n const [viewAllChains, setViewAllChains] = useState<boolean>(false)\n const { data: userOwnedBills } = useUserBonds()\n const ownedBills = userOwnedBills?.filter((bill) => parseFloat(bill?.payout) > 0)\n\n const groupedBills = ownedBills?.reduce((acc: { bond: BillsConfig; userOwnedBills: UserBill[] }[], bill) => {\n const bondIndex = bill?.bond?.index\n\n // Check if this bond index already exists in the accumulator\n const existingGroup = acc.find((group) => group.bond.index === bondIndex)\n\n if (existingGroup) {\n // If the group already exists, add this bill to the userOwnedBills array\n existingGroup.userOwnedBills.push(bill)\n } else {\n // If it doesn't exist, create a new group\n acc.push({\n bond: bill.bond as any,\n userOwnedBills: [bill],\n })\n }\n\n return acc\n }, [])\n\n const bondsOfSelectedChain = groupedBills?.filter((group) => group.bond.chainId === selectedChain)\n const ownedBillsAmount = bondsOfSelectedChain?.reduce(\n (total, ownerBills) => total + (ownerBills.userOwnedBills?.length || 0),\n 0,\n )\n const { addToastError, addToastSuccess } = usePopups()\n\n const { writeContractAsync } = useWriteContract()\n const { refetch } = useUserBonds()\n const [loadingTx, setLoadingTx] = useState(false)\n\n const isAptosChain = selectedChain === ChainId.APTOS\n const isSuiChain = selectedChain === ChainId.SUI\n\n const handleClaimEVM = async () => {\n try {\n bondsOfSelectedChain?.map(async (purchasedBond) => {\n const address: `0x${string}` = purchasedBond.bond.contractAddress[purchasedBond.bond.chainId] as `0x${string}`\n track({\n event: 'bond',\n chain: purchasedBond.bond.chainId,\n data: {\n cat: 'claimAll',\n address,\n earnToken: purchasedBond?.bond.earnToken.symbol,\n },\n })\n return writeContractAsync({\n address,\n abi: BOND_ABI,\n functionName: 'batchRedeem',\n args: [purchasedBond.userOwnedBills.map((b) => b.id)],\n chain: chainId as any,\n account,\n })\n })\n } catch (error: any) {\n console.error('Claim All failed:', error)\n addToastError(error.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'claimAll', bondsOfSelectedChain, error },\n chainId,\n account,\n })\n }\n }\n\n const handleClaimAptos = async () => {\n if (!aptosAccount || !bondsOfSelectedChain?.length) return\n\n setLoadingTx(true)\n try {\n // Aptos has no batchRedeem — claim each bill individually\n const allBills = bondsOfSelectedChain.flatMap((group) =>\n group.userOwnedBills.map((b) => ({ bill: b, market: group.bond.contractAddress[group.bond.chainId] })),\n )\n\n let lastTxHash = ''\n for (const { bill, market } of allBills) {\n if (!market || !bill.id) continue\n\n track({\n event: 'bond',\n chain: ChainId.APTOS,\n data: { cat: 'claimAll', address: market, earnToken: bill.bond?.earnToken?.symbol },\n })\n\n const response = await signAndSubmitTransaction?.({\n data: {\n function: APTOS_CLAIM_FUNCTION,\n typeArguments: [],\n functionArguments: [market, bill.id],\n },\n })\n if (!response?.hash) throw new Error('No tx hash returned by wallet')\n lastTxHash = response.hash\n\n const aptos = getAptosClient()\n await aptos.waitForTransaction({ transactionHash: response.hash })\n }\n\n refetch()\n addToastSuccess(lastTxHash, ChainId.APTOS)\n } catch (error: any) {\n console.error('Aptos Claim All failed:', error)\n addToastError(error?.message ?? 'Unknown error')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'aptosClaimAll', bondsOfSelectedChain, error },\n chainId: ChainId.APTOS,\n account: aptosAccount ?? '',\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n const handleClaimSui = async () => {\n if (!suiAccount || !bondsOfSelectedChain?.length || !signAndExecuteTransaction) return\n\n setLoadingTx(true)\n try {\n const allBills = bondsOfSelectedChain\n .flatMap((group) =>\n group.userOwnedBills.map((b) => ({ bill: b, market: group.bond.contractAddress[group.bond.chainId] })),\n )\n .filter(({ bill }) => bill.pendingRewards !== '0')\n\n // Build a single PTB that claims all bills in one transaction\n const tx = new Transaction()\n for (const { bill, market } of allBills) {\n if (!market || !bill.address) continue\n\n const payoutCoinType = bill.bond?.earnToken?.address?.[bill.bond?.chainId ?? 0]\n const principalCoinType = bill.bond?.lpToken?.address?.[bill.bond?.chainId ?? 0]\n if (!payoutCoinType || !principalCoinType) continue\n\n track({\n event: 'bond',\n chain: ChainId.SUI,\n data: { cat: 'claimAll', address: market, earnToken: bill.bond?.earnToken?.symbol },\n })\n\n const [claimedCoin] = tx.moveCall({\n target: SUI_CLAIM_FUNCTION,\n typeArguments: [payoutCoinType, principalCoinType],\n arguments: [\n tx.object(market),\n tx.object(bill.address), // BondNFT object ID\n tx.object('0x6'), // clock\n ],\n })\n tx.transferObjects([claimedCoin], tx.pure.address(suiAccount!))\n }\n\n // Pre-build so the wallet receives fully-resolved bytes\n tx.setSender(suiAccount!)\n tx.setGasBudget(50_000_000)\n const { getSuiClient } = await import('../../../../utils/suiHelpers')\n const suiClient = getSuiClient()\n const builtBytes = await tx.build({ client: suiClient })\n const prebuiltTx = Transaction.from(builtBytes)\n\n const claimResponse = await signAndExecuteTransaction({ transaction: prebuiltTx })\n const claimDigest = claimResponse?.digest\n if (claimDigest) {\n await verifySuiTxSuccess(claimDigest)\n }\n\n refetch()\n addToastSuccess(claimDigest, ChainId.SUI)\n } catch (error: any) {\n console.error('Sui Claim All failed:', error)\n addToastError(error?.message ?? 'Unknown error')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'suiClaimAll', bondsOfSelectedChain, error },\n chainId: ChainId.SUI,\n account: suiAccount ?? '',\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n const handleClaim = isSuiChain ? handleClaimSui : isAptosChain ? handleClaimAptos : handleClaimEVM\n\n const purchasedBillsChains = groupedBills\n ?.reduce((acc: number[], bill) => {\n if (acc.includes(bill.bond.chainId)) {\n return acc\n } else return [...acc, bill.bond.chainId]\n }, [])\n ?.sort((a, b) => a - b)\n\n // Auto-select the first chain that has bonds when the current selection has none\n useEffect(() => {\n if (purchasedBillsChains?.length && !purchasedBillsChains.includes(selectedChain)) {\n setSelectedChain(purchasedBillsChains[0])\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [purchasedBillsChains?.length])\n\n return (\n <Modal title=\"Claim All\" className=\"ape:w-[420px]\">\n {viewAllChains ? (\n <>\n <Flex className=\"ape:justify-between ape:mb-[20px]\">\n <Flex onClick={() => setViewAllChains(false)} className=\"ape:hover:cursor-pointer\">\n <Arrow width=\"10px\" direction=\"left\" />\n </Flex>\n <Text size=\"16px\" weight={300}>All Chain Options</Text>\n </Flex>\n <ChainOptionsList\n setSelectedChain={setSelectedChain}\n setViewAllChains={setViewAllChains}\n chainList={chains}\n />\n </>\n ) : (\n <Flex className=\"ape:flex-col ape:w-full\">\n <Text size=\"14px\" weight={400} className=\"ape:my-[10px]\">\n Select the chain from which you want to claim your Bonds.\n </Text>\n <ChainOptionsButtons\n setSelectedChain={setSelectedChain}\n selectedChain={selectedChain}\n setViewAllChains={setViewAllChains}\n chainList={purchasedBillsChains ?? []}\n />\n <Flex className=\"ape:w-full ape:mt-[10px] ape:bg-white3 ape:rounded-normal ape:p-[10px] ape:flex-col ape:h-[30vh] ape:overflow-y-auto\">\n {bondsOfSelectedChain && bondsOfSelectedChain?.length > 0 ? (\n bondsOfSelectedChain\n ?.filter((userBill) => userBill.bond.chainId === selectedChain)\n .map((ownedBill, index) => {\n return (\n <Flex\n key={`${ownedBill.bond.earnToken.symbol}-${index}`}\n className=\"ape:w-full ape:items-center ape:p-[5px]\"\n >\n <TokenImage symbol={ownedBill.bond.earnToken.symbol} size={30} />\n <Text className=\"ape:ml-[10px]\">\n {ownedBill.bond.earnToken.symbol}\n <Text\n as=\"span\"\n size=\"14px\"\n weight={400}\n className=\"ape:ml-[10px]\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n ({ownedBill?.userOwnedBills?.length} Bond\n {ownedBill?.userOwnedBills && ownedBill?.userOwnedBills?.length > 1 ? 's' : ''})\n </Text>\n </Text>\n </Flex>\n )\n })\n ) : (\n <Flex\n className=\"ape:text-[14px] ape:font-normal ape:justify-center ape:mt-[10px]\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n No bonds to claim for this chain\n </Flex>\n )}\n </Flex>\n <Text size=\"14px\" weight={400} className=\"ape:mt-[15px]\">\n {`You'll claim`} {ownedBillsAmount} Bonds in{' '}\n {isAptosChain ? ownedBillsAmount : isSuiChain ? 1 : bondsOfSelectedChain?.length} transaction\n {(isAptosChain ? (ownedBillsAmount ?? 0) : isSuiChain ? 0 : (bondsOfSelectedChain?.length ?? 0)) > 1\n ? 's'\n : ''}\n .\n </Text>\n {isSuiChain ? (\n <Button\n className=\"ape:mt-[15px] ape:w-full\"\n onClick={handleClaim}\n disabled={!suiAccount || loadingTx || !ownedBillsAmount}\n load={loadingTx}\n >\n {!suiAccount ? 'Connect Sui Wallet' : 'Claim'}\n </Button>\n ) : isAptosChain ? (\n <Button\n className=\"ape:mt-[15px] ape:w-full\"\n onClick={handleClaim}\n disabled={!aptosAccount || loadingTx || !ownedBillsAmount}\n load={loadingTx}\n >\n {!aptosAccount ? 'Connect Aptos Wallet' : 'Claim'}\n </Button>\n ) : chainId === selectedChain ? (\n <Button className=\"ape:mt-[15px] ape:w-full\" onClick={handleClaim}>\n Claim\n </Button>\n ) : (\n <Button className=\"ape:mt-[15px] ape:w-full\" onClick={() => switchChain({ chainId: selectedChain })}>\n Switch to {NETWORK_LABEL[selectedChain ?? 0]}\n </Button>\n )}\n </Flex>\n )}\n </Modal>\n )\n}\n\nexport default ClaimAllModal\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ClaimAllModal.js","sources":["../../../../../src/views/YourBonds/components/ClaimAll/ClaimAllModal.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport ChainOptionsList from '../../../../components/ChainOptionList/ChainOptionsList'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport ChainOptionsButtons from '../../../../components/ChainOptionList/ChainOptionsButtons'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { BillsConfig } from '@ape.swap/apeswap-lists'\nimport useChainAccount from '../../../../state/chainAccount/useChainAccount'\nimport { getAdapterForChain } from '../../../../adapters/registry'\nimport Arrow from '../../../../components/uikit-sdk/Svg/Icons/Arrow'\n\nconst ClaimAllModal = () => {\n const { chainId } = useChainAccount('evm')\n const { address: aptosAccount } = useChainAccount('aptos')\n const { address: suiAccount } = useChainAccount('sui')\n const SDKConfig = useSDKConfig()\n const chains = SDKConfig?.chains as number[]\n\n const [selectedChain, setSelectedChain] = useState(\n chainId ?? (aptosAccount ? ChainId.APTOS : suiAccount ? ChainId.SUI : 56),\n )\n const [viewAllChains, setViewAllChains] = useState<boolean>(false)\n const { data: userOwnedBills } = useUserBonds()\n const ownedBills = userOwnedBills?.filter((bill) => parseFloat(bill?.payout) > 0)\n\n const groupedBills = ownedBills?.reduce((acc: { bond: BillsConfig; userOwnedBills: UserBill[] }[], bill) => {\n const bondIndex = bill?.bond?.index\n\n // Check if this bond index already exists in the accumulator\n const existingGroup = acc.find((group) => group.bond.index === bondIndex)\n\n if (existingGroup) {\n // If the group already exists, add this bill to the userOwnedBills array\n existingGroup.userOwnedBills.push(bill)\n } else {\n // If it doesn't exist, create a new group\n acc.push({\n bond: bill.bond as any,\n userOwnedBills: [bill],\n })\n }\n\n return acc\n }, [])\n\n const bondsOfSelectedChain = groupedBills?.filter((group) => group.bond.chainId === selectedChain)\n // Each family's adapter renders its own claim action (summary + button) for the selected chain\n const claimAllAdapter = getAdapterForChain(selectedChain)\n\n const purchasedBillsChains = groupedBills\n ?.reduce((acc: number[], bill) => {\n if (acc.includes(bill.bond.chainId)) {\n return acc\n } else return [...acc, bill.bond.chainId]\n }, [])\n ?.sort((a, b) => a - b)\n\n // Auto-select the first chain that has bonds when the current selection has none\n useEffect(() => {\n if (purchasedBillsChains?.length && !purchasedBillsChains.includes(selectedChain)) {\n setSelectedChain(purchasedBillsChains[0])\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [purchasedBillsChains?.length])\n\n return (\n <Modal title=\"Claim All\" className=\"ape:w-[420px]\">\n {viewAllChains ? (\n <>\n <Flex className=\"ape:justify-between ape:mb-[20px]\">\n <Flex onClick={() => setViewAllChains(false)} className=\"ape:hover:cursor-pointer\">\n <Arrow width=\"10px\" direction=\"left\" />\n </Flex>\n <Text size=\"16px\" weight={300}>\n All Chain Options\n </Text>\n </Flex>\n <ChainOptionsList\n setSelectedChain={setSelectedChain}\n setViewAllChains={setViewAllChains}\n chainList={chains}\n />\n </>\n ) : (\n <Flex className=\"ape:flex-col ape:w-full\">\n <Text size=\"14px\" weight={400} className=\"ape:my-[10px]\">\n Select the chain from which you want to claim your Bonds.\n </Text>\n <ChainOptionsButtons\n setSelectedChain={setSelectedChain}\n selectedChain={selectedChain}\n setViewAllChains={setViewAllChains}\n chainList={purchasedBillsChains ?? []}\n />\n <Flex className=\"ape:w-full ape:mt-[10px] ape:bg-white3 ape:rounded-normal ape:p-[10px] ape:flex-col ape:h-[30vh] ape:overflow-y-auto\">\n {bondsOfSelectedChain && bondsOfSelectedChain?.length > 0 ? (\n bondsOfSelectedChain\n ?.filter((userBill) => userBill.bond.chainId === selectedChain)\n .map((ownedBill, index) => {\n return (\n <Flex\n key={`${ownedBill.bond.earnToken.symbol}-${index}`}\n className=\"ape:w-full ape:items-center ape:p-[5px]\"\n >\n <TokenImage symbol={ownedBill.bond.earnToken.symbol} size={30} />\n <Text className=\"ape:ml-[10px]\">\n {ownedBill.bond.earnToken.symbol}\n <Text\n as=\"span\"\n size=\"14px\"\n weight={400}\n className=\"ape:ml-[10px]\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n ({ownedBill?.userOwnedBills?.length} Bond\n {ownedBill?.userOwnedBills && ownedBill?.userOwnedBills?.length > 1 ? 's' : ''})\n </Text>\n </Text>\n </Flex>\n )\n })\n ) : (\n <Flex\n className=\"ape:text-[14px] ape:font-normal ape:justify-center ape:mt-[10px]\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n No bonds to claim for this chain\n </Flex>\n )}\n </Flex>\n {claimAllAdapter?.ClaimAllAction ? (\n <claimAllAdapter.ClaimAllAction chainId={selectedChain} bondsToClaim={bondsOfSelectedChain ?? []} />\n ) : (\n <Text size=\"14px\" weight={400} className=\"ape:mt-[15px]\">\n {`Claim All isn't available for this chain; claim these bonds one by one from Your Bonds.`}\n </Text>\n )}\n </Flex>\n )}\n </Modal>\n )\n}\n\nexport default ClaimAllModal\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -2,14 +2,12 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import ClaimAllModal from './ClaimAllModal.js';
3
3
  import Button from '../../../../components/uikit-sdk/Button/Button.js';
4
4
  import useModal from '../../../../hooks/useModal.js';
5
- import useEVMAccount from '../../../../hooks/accounts/useEVMAccount.js';
6
- import useAPTAccount from '../../../../hooks/accounts/useAPTAccount.js';
7
- import useSUIAccount from '../../../../hooks/accounts/useSUIAccount.js';
5
+ import useChainAccount from '../../../../state/chainAccount/useChainAccount.js';
8
6
 
9
7
  const ClaimAll = () => {
10
- const { address: evmAccount } = useEVMAccount();
11
- const { address: aptosAccount } = useAPTAccount();
12
- const { address: suiAccount } = useSUIAccount();
8
+ const { address: evmAccount } = useChainAccount('evm');
9
+ const { address: aptosAccount } = useChainAccount('aptos');
10
+ const { address: suiAccount } = useChainAccount('sui');
13
11
  const [onOpenModal] = useModal(jsx(ClaimAllModal, {}));
14
12
  return (jsx(Button, { onClick: onOpenModal, disabled: !evmAccount && !aptosAccount && !suiAccount, className: "ape:w-full ape:h-[30px] ape:text-[14px]! ape:font-semibold ape:lg-ml-[10px] ape:lg:ml-0", children: "Claim All" }));
15
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/YourBonds/components/ClaimAll/index.tsx"],"sourcesContent":["import React from 'react'\nimport ClaimAllModal from './ClaimAllModal'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport useModal from '../../../../hooks/useModal'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport useAPTAccount from '../../../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../../../hooks/accounts/useSUIAccount'\n\nconst ClaimAll = () => {\n const { address: evmAccount } = useEVMAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const [onOpenModal] = useModal(<ClaimAllModal />)\n\n return (\n <Button\n onClick={onOpenModal}\n disabled={!evmAccount && !aptosAccount && !suiAccount}\n className=\"ape:w-full ape:h-[30px] ape:text-[14px]! ape:font-semibold ape:lg-ml-[10px] ape:lg:ml-0\"\n >\n Claim All\n </Button>\n )\n}\n\nexport default ClaimAll\n"],"names":["_jsx"],"mappings":";;;;;;;;AAQA,MAAM,QAAQ,GAAG,MAAK;IACpB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE;IAC/C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE;IAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAACA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,CAAC;IAEjD,QACEA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EACrD,SAAS,EAAC,yFAAyF,EAAA,QAAA,EAAA,WAAA,EAAA,CAG5F;AAEb;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/YourBonds/components/ClaimAll/index.tsx"],"sourcesContent":["import React from 'react'\nimport ClaimAllModal from './ClaimAllModal'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport useModal from '../../../../hooks/useModal'\nimport useChainAccount from '../../../../state/chainAccount/useChainAccount'\n\nconst ClaimAll = () => {\n const { address: evmAccount } = useChainAccount('evm')\n const { address: aptosAccount } = useChainAccount('aptos')\n const { address: suiAccount } = useChainAccount('sui')\n const [onOpenModal] = useModal(<ClaimAllModal />)\n\n return (\n <Button\n onClick={onOpenModal}\n disabled={!evmAccount && !aptosAccount && !suiAccount}\n className=\"ape:w-full ape:h-[30px] ape:text-[14px]! ape:font-semibold ape:lg-ml-[10px] ape:lg:ml-0\"\n >\n Claim All\n </Button>\n )\n}\n\nexport default ClaimAll\n"],"names":["_jsx"],"mappings":";;;;;;AAMA,MAAM,QAAQ,GAAG,MAAK;IACpB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;IACtD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAC1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;IACtD,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAACA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,CAAC;IAEjD,QACEA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EACrD,SAAS,EAAC,yFAAyF,EAAA,QAAA,EAAA,WAAA,EAAA,CAG5F;AAEb;;;;"}
@@ -12,11 +12,8 @@ import ProgressBar from '../../components/ProgressBar/ProgressBar.js';
12
12
  import ProgressBarWrapper from '../../components/ProgressBar/ProgressBarWrapper.js';
13
13
  import NftImage from './components/NFTImage/NFTImage.js';
14
14
  import YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader.js';
15
- import Actions from './components/Actions/Actions.js';
16
15
  import { ChainId } from '@ape.swap/apeswap-lists';
17
- import ActionsSolana from './components/Actions/ActionsSolana.js';
18
- import ActionsAptos from './components/Actions/ActionsAptos.js';
19
- import ActionsSui from './components/Actions/ActionsSui.js';
16
+ import { getAdapterForChain } from '../../adapters/registry.js';
20
17
  import Modal from '../../components/uikit-sdk/Modal/index.js';
21
18
  import Flex from '../../components/uikit-sdk/Flex/index.js';
22
19
  import Button from '../../components/uikit-sdk/Button/Button.js';
@@ -38,6 +35,7 @@ const YourBondsModal = ({ userBill, lostProfit, onDismiss, }) => {
38
35
  const payoutUSD = payout && payoutTokenPrice ? payout * payoutTokenPrice : 0;
39
36
  const payoutSymbol = userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken.symbol;
40
37
  const payoutTokenSymbol = payoutSymbol === 'AIX' && userBill?.bond?.chainId === ChainId.SOL ? 'SOLAIX' : payoutSymbol;
38
+ const bondAdapter = userBill?.bond?.chainId ? getAdapterForChain(userBill.bond.chainId) : undefined;
41
39
  // Cliff display info:
42
40
  const vestingCliff = Number(userBill?.bond?.vestingCliff);
43
41
  const currentTime = Math.round(new Date().getTime() / 1000);
@@ -51,7 +49,7 @@ const YourBondsModal = ({ userBill, lostProfit, onDismiss, }) => {
51
49
  justifyContent: 'center',
52
50
  }, showTooltip: true, toolTip: getTimeLeftForFullyVested(userBill) > 0
53
51
  ? `Fully vested in ${getPendingVestingString(userBill)}.`
54
- : `Fully Vested.` })) })] }), jsxs(Flex, { className: "ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white4 ape:h-[26px]", children: [jsxs(Flex, { className: "ape:items-center ape:gap-[5px]", children: [jsx(Flex, { className: "ape:opacity-60", children: "Pending" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Pending }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon ape:text-white ape:font-normal ape:text-[12px]", children: jsx(QuestionCircle, { width: "12px" }) }) })] }), jsxs(Flex, { className: "ape:items-center", children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 18 }), jsx(Text, { weight: 700, className: "ape:ml-[10px]", size: "12px", children: formatNumberSI(pending(userBill), 4) }), jsxs(Text, { weight: 400, className: "ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!", children: ["($", formatNumberSI(pendingUSD(userBill)), ")"] })] })] }), jsxs(Flex, { className: "ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white3 ape:h-[26px]", children: [jsxs(Flex, { className: "ape:items-center ape:gap-[5px]", children: [jsx(Flex, { className: "ape:opacity-60", children: "Claimable" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Claimable }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon ape:text-white ape:font-normal ape:text-[12px]", children: jsx(QuestionCircle, { width: "12px" }) }) })] }), jsxs(Flex, { className: "ape:items-center", children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 18 }), jsx(Text, { weight: 700, className: "ape:ml-[10px]", size: "12px", children: formatNumberSI(claimable(userBill), 4) }), jsxs(Text, { weight: 400, className: "ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!", children: ["($", formatNumberSI(claimableUSD(userBill)), ")"] })] })] }), jsxs(Flex, { className: "ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white4 ape:h-[26px] ape:rounded-[0px_0px_10px_10px]", children: [jsxs(Flex, { className: "ape:items-center ape:gap-[5px]", children: [jsx(Flex, { className: "ape:opacity-60", children: "Claimed" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Claimed }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon ape:text-white ape:font-normal ape:text-[12px]", children: jsx(QuestionCircle, { width: "12px" }) }) })] }), jsxs(Flex, { className: "ape:items-center", children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 18 }), jsx(Text, { weight: 700, className: "ape:ml-[10px]", size: "12px", children: formatNumberSI(claimed(userBill), 4) }), jsxs(Text, { weight: 400, className: "ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!", children: ["($", formatNumberSI(claimedUSD(userBill)), ")"] })] })] })] }), userBill?.bond?.warningCard && (jsx(Flex, { className: "ape:w-full ape:justify-center ape:rounded-normal ape:bg-[#DE62F366]", children: jsx(Text, { as: "div", weight: 400, size: "12px", className: "ape:p-[4px_10px]", style: { lineHeight: '16px' }, children: jsx(SafeHTMLComponent, { html: userBill?.bond?.warningCard }) }) })), jsx(Flex, { className: "ape:w-full ape:justify-between ape:gap-[10px] ape:md:gap-[15px] ape:h-[40px]", children: userBill?.bond?.chainId === ChainId.SOL ? (jsx(ActionsSolana, { userBill: userBill })) : userBill?.bond?.chainId === ChainId.APTOS ? (jsx(ActionsAptos, { userBill: userBill })) : userBill?.bond?.chainId === ChainId.SUI ? (jsx(ActionsSui, { userBill: userBill })) : (jsx(Actions, { userBill: userBill })) }), !lostProfit && !SDKConfig.chains.includes(ChainId.BITTENSOR_TESTNET) && (jsx(Recommendations, { billAddress: userBill?.address }))] })] }))] }) }));
52
+ : `Fully Vested.` })) })] }), jsxs(Flex, { className: "ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white4 ape:h-[26px]", children: [jsxs(Flex, { className: "ape:items-center ape:gap-[5px]", children: [jsx(Flex, { className: "ape:opacity-60", children: "Pending" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Pending }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon ape:text-white ape:font-normal ape:text-[12px]", children: jsx(QuestionCircle, { width: "12px" }) }) })] }), jsxs(Flex, { className: "ape:items-center", children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 18 }), jsx(Text, { weight: 700, className: "ape:ml-[10px]", size: "12px", children: formatNumberSI(pending(userBill), 4) }), jsxs(Text, { weight: 400, className: "ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!", children: ["($", formatNumberSI(pendingUSD(userBill)), ")"] })] })] }), jsxs(Flex, { className: "ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white3 ape:h-[26px]", children: [jsxs(Flex, { className: "ape:items-center ape:gap-[5px]", children: [jsx(Flex, { className: "ape:opacity-60", children: "Claimable" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Claimable }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon ape:text-white ape:font-normal ape:text-[12px]", children: jsx(QuestionCircle, { width: "12px" }) }) })] }), jsxs(Flex, { className: "ape:items-center", children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 18 }), jsx(Text, { weight: 700, className: "ape:ml-[10px]", size: "12px", children: formatNumberSI(claimable(userBill), 4) }), jsxs(Text, { weight: 400, className: "ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!", children: ["($", formatNumberSI(claimableUSD(userBill)), ")"] })] })] }), jsxs(Flex, { className: "ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white4 ape:h-[26px] ape:rounded-[0px_0px_10px_10px]", children: [jsxs(Flex, { className: "ape:items-center ape:gap-[5px]", children: [jsx(Flex, { className: "ape:opacity-60", children: "Claimed" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Claimed }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon ape:text-white ape:font-normal ape:text-[12px]", children: jsx(QuestionCircle, { width: "12px" }) }) })] }), jsxs(Flex, { className: "ape:items-center", children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 18 }), jsx(Text, { weight: 700, className: "ape:ml-[10px]", size: "12px", children: formatNumberSI(claimed(userBill), 4) }), jsxs(Text, { weight: 400, className: "ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!", children: ["($", formatNumberSI(claimedUSD(userBill)), ")"] })] })] })] }), userBill?.bond?.warningCard && (jsx(Flex, { className: "ape:w-full ape:justify-center ape:rounded-normal ape:bg-[#DE62F366]", children: jsx(Text, { as: "div", weight: 400, size: "12px", className: "ape:p-[4px_10px]", style: { lineHeight: '16px' }, children: jsx(SafeHTMLComponent, { html: userBill?.bond?.warningCard }) }) })), jsx(Flex, { className: "ape:w-full ape:justify-between ape:gap-[10px] ape:md:gap-[15px] ape:h-[40px]", children: bondAdapter && jsx(bondAdapter.BondActions, { userBill: userBill }) }), !lostProfit && !SDKConfig.chains.includes(ChainId.BITTENSOR_TESTNET) && (jsx(Recommendations, { billAddress: userBill?.address }))] })] }))] }) }));
55
53
  };
56
54
 
57
55
  export { YourBondsModal as default };