@ape.swap/bonds-sdk 7.0.0-test.2 → 7.0.0-test.4

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 (360) hide show
  1. package/README.md +18 -27
  2. package/dist/adapters/aptos/index.js +10 -10
  3. package/dist/adapters/aptos/index.js.map +1 -1
  4. package/dist/adapters/aptos/{AptosAccountBridge.js → state/AptosAccountBridge.js} +1 -1
  5. package/dist/adapters/aptos/state/AptosAccountBridge.js.map +1 -0
  6. package/dist/adapters/aptos/{fetchBondsDataAptos.d.ts → state/fetchBondsDataAptos.d.ts} +2 -2
  7. package/dist/adapters/aptos/{fetchBondsDataAptos.js → state/fetchBondsDataAptos.js} +3 -3
  8. package/dist/adapters/aptos/state/fetchBondsDataAptos.js.map +1 -0
  9. package/dist/adapters/aptos/{fetchUsersBondsAptos.d.ts → state/fetchUsersBondsAptos.d.ts} +2 -2
  10. package/dist/adapters/aptos/{fetchUsersBondsAptos.js → state/fetchUsersBondsAptos.js} +4 -4
  11. package/dist/adapters/aptos/state/fetchUsersBondsAptos.js.map +1 -0
  12. package/dist/adapters/aptos/{useAPTAccount.js → state/useAPTAccount.js} +2 -2
  13. package/dist/adapters/aptos/state/useAPTAccount.js.map +1 -0
  14. package/dist/adapters/aptos/{useAptosZapQuote.d.ts → state/useAptosZapQuote.d.ts} +2 -2
  15. package/dist/adapters/aptos/{useAptosZapQuote.js → state/useAptosZapQuote.js} +4 -4
  16. package/dist/adapters/aptos/state/useAptosZapQuote.js.map +1 -0
  17. package/dist/adapters/aptos/{useCurrencyBalanceAptos.js → state/useCurrencyBalanceAptos.js} +2 -2
  18. package/dist/adapters/aptos/state/useCurrencyBalanceAptos.js.map +1 -0
  19. package/dist/adapters/aptos/{aptosHelpers.d.ts → utils/aptosHelpers.d.ts} +1 -1
  20. package/dist/adapters/aptos/{aptosHelpers.js → utils/aptosHelpers.js} +1 -1
  21. package/dist/adapters/aptos/utils/aptosHelpers.js.map +1 -0
  22. package/dist/adapters/aptos/{ActionsAptos.d.ts → views/ActionsAptos.d.ts} +1 -1
  23. package/dist/adapters/aptos/{ActionsAptos.js → views/ActionsAptos.js} +11 -11
  24. package/dist/adapters/aptos/views/ActionsAptos.js.map +1 -0
  25. package/dist/adapters/aptos/{BuyComponentAptos.js → views/BuyComponentAptos.js} +33 -33
  26. package/dist/adapters/aptos/views/BuyComponentAptos.js.map +1 -0
  27. package/dist/adapters/aptos/{ClaimAllActionAptos.d.ts → views/ClaimAllActionAptos.d.ts} +1 -1
  28. package/dist/adapters/aptos/{ClaimAllActionAptos.js → views/ClaimAllActionAptos.js} +10 -10
  29. package/dist/adapters/aptos/views/ClaimAllActionAptos.js.map +1 -0
  30. package/dist/adapters/aptos/{ConnectAptosWalletButton.js → views/ConnectAptosWalletButton.js} +4 -4
  31. package/dist/adapters/aptos/views/ConnectAptosWalletButton.js.map +1 -0
  32. package/dist/adapters/aptos/{ConnectToAptosBanner.js → views/ConnectToAptosBanner.js} +6 -6
  33. package/dist/adapters/aptos/views/ConnectToAptosBanner.js.map +1 -0
  34. package/dist/adapters/aptos/{TransferActionAptos.d.ts → views/TransferActionAptos.d.ts} +1 -1
  35. package/dist/adapters/aptos/{TransferActionAptos.js → views/TransferActionAptos.js} +1 -1
  36. package/dist/adapters/aptos/views/TransferActionAptos.js.map +1 -0
  37. package/dist/adapters/aptos/{UserBondRowAptos.d.ts → views/UserBondRowAptos.d.ts} +1 -1
  38. package/dist/adapters/aptos/{UserBondRowAptos.js → views/UserBondRowAptos.js} +22 -22
  39. package/dist/adapters/aptos/views/UserBondRowAptos.js.map +1 -0
  40. package/dist/adapters/evm/index.js +16 -16
  41. package/dist/adapters/evm/index.js.map +1 -1
  42. package/dist/adapters/evm/{EvmAccountBridge.js → state/EvmAccountBridge.js} +1 -1
  43. package/dist/adapters/evm/state/EvmAccountBridge.js.map +1 -0
  44. package/dist/adapters/evm/{balances.d.ts → state/balances.d.ts} +1 -1
  45. package/dist/adapters/evm/{balances.js → state/balances.js} +5 -5
  46. package/dist/adapters/evm/state/balances.js.map +1 -0
  47. package/dist/adapters/evm/{fetchBondsDataEVM.d.ts → state/fetchBondsDataEVM.d.ts} +2 -2
  48. package/dist/adapters/evm/{fetchBondsDataEVM.js → state/fetchBondsDataEVM.js} +8 -8
  49. package/dist/adapters/evm/state/fetchBondsDataEVM.js.map +1 -0
  50. package/dist/adapters/evm/{fetchUsersBondsEVM.d.ts → state/fetchUsersBondsEVM.d.ts} +2 -2
  51. package/dist/adapters/evm/{fetchUsersBondsEVM.js → state/fetchUsersBondsEVM.js} +4 -4
  52. package/dist/adapters/evm/state/fetchUsersBondsEVM.js.map +1 -0
  53. package/dist/adapters/evm/{getTierPoints.d.ts → state/getTierPoints.d.ts} +1 -1
  54. package/dist/adapters/evm/{getTierPoints.js → state/getTierPoints.js} +5 -5
  55. package/dist/adapters/evm/state/getTierPoints.js.map +1 -0
  56. package/dist/adapters/evm/{preTGE → state/preTGE}/fetchBondsDataPreTGE.d.ts +2 -2
  57. package/dist/adapters/evm/{preTGE → state/preTGE}/fetchBondsDataPreTGE.js +5 -5
  58. package/dist/adapters/evm/state/preTGE/fetchBondsDataPreTGE.js.map +1 -0
  59. package/dist/adapters/evm/{preTGE → state/preTGE}/fetchUserBondsPreTGE.d.ts +2 -2
  60. package/dist/adapters/evm/{preTGE → state/preTGE}/fetchUserBondsPreTGE.js +5 -5
  61. package/dist/adapters/evm/state/preTGE/fetchUserBondsPreTGE.js.map +1 -0
  62. package/dist/adapters/evm/{useAllowance.js → state/useAllowance.js} +9 -9
  63. package/dist/adapters/evm/state/useAllowance.js.map +1 -0
  64. package/dist/adapters/evm/{useEVMAccount.js → state/useEVMAccount.js} +1 -1
  65. package/dist/adapters/evm/state/useEVMAccount.js.map +1 -0
  66. package/dist/adapters/evm/{useMonitorTx.js → state/useMonitorTx.js} +1 -1
  67. package/dist/adapters/evm/state/useMonitorTx.js.map +1 -0
  68. package/dist/adapters/evm/{useSoulZapBondQuote.d.ts → state/useSoulZapBondQuote.d.ts} +1 -1
  69. package/dist/adapters/evm/{useSoulZapBondQuote.js → state/useSoulZapBondQuote.js} +9 -9
  70. package/dist/adapters/evm/state/useSoulZapBondQuote.js.map +1 -0
  71. package/dist/adapters/evm/{useTierProofSignature.js → state/useTierProofSignature.js} +4 -4
  72. package/dist/adapters/evm/state/useTierProofSignature.js.map +1 -0
  73. package/dist/adapters/evm/{multicall.js → utils/multicall.js} +3 -3
  74. package/dist/adapters/evm/utils/multicall.js.map +1 -0
  75. package/dist/adapters/evm/{Actions.d.ts → views/Actions.d.ts} +1 -1
  76. package/dist/adapters/evm/{Actions.js → views/Actions.js} +18 -18
  77. package/dist/adapters/evm/views/Actions.js.map +1 -0
  78. package/dist/adapters/evm/{BuyComponent.d.ts → views/BuyComponent.d.ts} +1 -1
  79. package/dist/adapters/evm/{BuyComponent.js → views/BuyComponent.js} +48 -48
  80. package/dist/adapters/evm/views/BuyComponent.js.map +1 -0
  81. package/dist/adapters/evm/{ClaimAllActionEVM.d.ts → views/ClaimAllActionEVM.d.ts} +1 -1
  82. package/dist/adapters/evm/{ClaimAllActionEVM.js → views/ClaimAllActionEVM.js} +9 -9
  83. package/dist/adapters/evm/views/ClaimAllActionEVM.js.map +1 -0
  84. package/dist/adapters/evm/{ConnectToEvmBanner.js → views/ConnectToEvmBanner.js} +4 -4
  85. package/dist/adapters/evm/views/ConnectToEvmBanner.js.map +1 -0
  86. package/dist/adapters/evm/{TransactionModal.d.ts → views/TransactionModal.d.ts} +2 -2
  87. package/dist/adapters/evm/{TransactionModal.js → views/TransactionModal.js} +21 -21
  88. package/dist/adapters/evm/views/TransactionModal.js.map +1 -0
  89. package/dist/adapters/evm/{TransferAction.d.ts → views/TransferAction.d.ts} +1 -1
  90. package/dist/adapters/evm/{TransferAction.js → views/TransferAction.js} +8 -8
  91. package/dist/adapters/evm/views/TransferAction.js.map +1 -0
  92. package/dist/adapters/evm/{UserBondRow.d.ts → views/UserBondRow.d.ts} +1 -1
  93. package/dist/adapters/evm/{UserBondRow.js → views/UserBondRow.js} +27 -27
  94. package/dist/adapters/evm/views/UserBondRow.js.map +1 -0
  95. package/dist/adapters/evm/{preTGE → views/preTGE}/BuyComponentPreTGE.js +26 -26
  96. package/dist/adapters/evm/views/preTGE/BuyComponentPreTGE.js.map +1 -0
  97. package/dist/adapters/evm/{preTGE → views/preTGE}/ModalHandlerPreTGE.js +3 -3
  98. package/dist/adapters/evm/views/preTGE/ModalHandlerPreTGE.js.map +1 -0
  99. package/dist/adapters/evm/{preTGE → views/preTGE}/PreTGEActions.d.ts +1 -1
  100. package/dist/adapters/evm/{preTGE → views/preTGE}/PreTGEActions.js +9 -9
  101. package/dist/adapters/evm/views/preTGE/PreTGEActions.js.map +1 -0
  102. package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowPreTGE.d.ts +1 -1
  103. package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowPreTGE.js +9 -9
  104. package/dist/adapters/evm/views/preTGE/UserBondRowPreTGE.js.map +1 -0
  105. package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowYield.d.ts +1 -1
  106. package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowYield.js +10 -10
  107. package/dist/adapters/evm/views/preTGE/UserBondRowYield.js.map +1 -0
  108. package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/YourBondsModalYield.d.ts +1 -1
  109. package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/YourBondsModalYield.js +22 -22
  110. package/dist/adapters/evm/views/preTGE/YourBondsModalYield/YourBondsModalYield.js.map +1 -0
  111. package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.d.ts +1 -1
  112. package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js +10 -10
  113. package/dist/adapters/evm/views/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +1 -0
  114. package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.d.ts +1 -1
  115. package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js +5 -5
  116. package/dist/adapters/evm/views/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -0
  117. package/dist/adapters/lifi/index.js +1 -1
  118. package/dist/adapters/lifi/index.js.map +1 -1
  119. package/dist/adapters/lifi/{LifiModal.d.ts → views/LifiModal.d.ts} +1 -1
  120. package/dist/adapters/lifi/{LifiModal.js → views/LifiModal.js} +5 -5
  121. package/dist/adapters/lifi/views/LifiModal.js.map +1 -0
  122. package/dist/adapters/lifi/views/LifiWidgetContent.js.map +1 -0
  123. package/dist/adapters/solana/{solanaConstants.js → constants/solanaConstants.js} +1 -1
  124. package/dist/adapters/solana/constants/solanaConstants.js.map +1 -0
  125. package/dist/adapters/solana/index.d.ts +1 -1
  126. package/dist/adapters/solana/index.js +10 -10
  127. package/dist/adapters/solana/index.js.map +1 -1
  128. package/dist/adapters/solana/{SolanaAccountBridge.js → state/SolanaAccountBridge.js} +1 -1
  129. package/dist/adapters/solana/state/SolanaAccountBridge.js.map +1 -0
  130. package/dist/adapters/solana/{fetchBondsDataSOL.d.ts → state/fetchBondsDataSOL.d.ts} +2 -2
  131. package/dist/adapters/solana/{fetchBondsDataSOL.js → state/fetchBondsDataSOL.js} +8 -8
  132. package/dist/adapters/solana/state/fetchBondsDataSOL.js.map +1 -0
  133. package/dist/adapters/solana/{fetchUsersBondsSOL.d.ts → state/fetchUsersBondsSOL.d.ts} +2 -2
  134. package/dist/adapters/solana/{fetchUsersBondsSOL.js → state/fetchUsersBondsSOL.js} +5 -5
  135. package/dist/adapters/solana/state/fetchUsersBondsSOL.js.map +1 -0
  136. package/dist/adapters/solana/{useCurrencyBalanceSolana.js → state/useCurrencyBalanceSolana.js} +3 -3
  137. package/dist/adapters/solana/state/useCurrencyBalanceSolana.js.map +1 -0
  138. package/dist/adapters/solana/{useJupiterSolanaQuote.d.ts → state/useJupiterSolanaQuote.d.ts} +1 -1
  139. package/dist/adapters/solana/{useJupiterSolanaQuote.js → state/useJupiterSolanaQuote.js} +3 -3
  140. package/dist/adapters/solana/state/useJupiterSolanaQuote.js.map +1 -0
  141. package/dist/adapters/solana/{useSOLAccount.js → state/useSOLAccount.js} +1 -1
  142. package/dist/adapters/solana/state/useSOLAccount.js.map +1 -0
  143. package/dist/adapters/solana/{calculateSolanaTrueBillPrice.js → utils/calculateSolanaTrueBillPrice.js} +1 -1
  144. package/dist/adapters/solana/utils/calculateSolanaTrueBillPrice.js.map +1 -0
  145. package/dist/adapters/solana/{codecs → utils/codecs}/bondCodec.js +1 -1
  146. package/dist/adapters/solana/utils/codecs/bondCodec.js.map +1 -0
  147. package/dist/adapters/solana/{codecs → utils/codecs}/bondIssuanceCodec.js +1 -1
  148. package/dist/adapters/solana/utils/codecs/bondIssuanceCodec.js.map +1 -0
  149. package/dist/adapters/solana/{codecs → utils/codecs}/bondPricingCodec.js +1 -1
  150. package/dist/adapters/solana/utils/codecs/bondPricingCodec.js.map +1 -0
  151. package/dist/adapters/solana/{codecs → utils/codecs}/bondTermCodec.js +1 -1
  152. package/dist/adapters/solana/utils/codecs/bondTermCodec.js.map +1 -0
  153. package/dist/adapters/solana/utils/derivePda.js.map +1 -0
  154. package/dist/adapters/solana/utils/getSolanaAccount.js.map +1 -0
  155. package/dist/adapters/solana/utils/polyfills.js.map +1 -0
  156. package/dist/adapters/solana/utils/solanaAtaHelper.js.map +1 -0
  157. package/dist/adapters/solana/utils/solanaMulticall.js.map +1 -0
  158. package/dist/adapters/solana/{solanaRpc.js → utils/solanaRpc.js} +1 -1
  159. package/dist/adapters/solana/utils/solanaRpc.js.map +1 -0
  160. package/dist/adapters/solana/{ActionsSolana.d.ts → views/ActionsSolana.d.ts} +1 -1
  161. package/dist/adapters/solana/{ActionsSolana.js → views/ActionsSolana.js} +13 -13
  162. package/dist/adapters/solana/views/ActionsSolana.js.map +1 -0
  163. package/dist/adapters/solana/{BuyComponentSolana.js → views/BuyComponentSolana.js} +41 -41
  164. package/dist/adapters/solana/views/BuyComponentSolana.js.map +1 -0
  165. package/dist/adapters/solana/{ConnectSolanaWalletButton.js → views/ConnectSolanaWalletButton.js} +4 -4
  166. package/dist/adapters/solana/views/ConnectSolanaWalletButton.js.map +1 -0
  167. package/dist/adapters/solana/{ConnectToSolanaBanner.js → views/ConnectToSolanaBanner.js} +5 -5
  168. package/dist/adapters/solana/views/ConnectToSolanaBanner.js.map +1 -0
  169. package/dist/adapters/solana/{TransferActionSolana.d.ts → views/TransferActionSolana.d.ts} +1 -1
  170. package/dist/adapters/solana/{TransferActionSolana.js → views/TransferActionSolana.js} +6 -6
  171. package/dist/adapters/solana/views/TransferActionSolana.js.map +1 -0
  172. package/dist/adapters/solana/{UserBondRowSolana.d.ts → views/UserBondRowSolana.d.ts} +1 -1
  173. package/dist/adapters/solana/{UserBondRowSolana.js → views/UserBondRowSolana.js} +23 -23
  174. package/dist/adapters/solana/views/UserBondRowSolana.js.map +1 -0
  175. package/dist/adapters/sui/constants/suiConstants.js.map +1 -0
  176. package/dist/adapters/sui/constants/suiZapTokens.js.map +1 -0
  177. package/dist/adapters/sui/index.js +10 -10
  178. package/dist/adapters/sui/index.js.map +1 -1
  179. package/dist/adapters/sui/{SuiAccountBridge.js → state/SuiAccountBridge.js} +1 -1
  180. package/dist/adapters/sui/state/SuiAccountBridge.js.map +1 -0
  181. package/dist/adapters/sui/{fetchBondsDataSui.d.ts → state/fetchBondsDataSui.d.ts} +2 -2
  182. package/dist/adapters/sui/{fetchBondsDataSui.js → state/fetchBondsDataSui.js} +3 -3
  183. package/dist/adapters/sui/state/fetchBondsDataSui.js.map +1 -0
  184. package/dist/adapters/sui/{fetchUsersBondsSUI.d.ts → state/fetchUsersBondsSUI.d.ts} +2 -2
  185. package/dist/adapters/sui/{fetchUsersBondsSUI.js → state/fetchUsersBondsSUI.js} +4 -4
  186. package/dist/adapters/sui/state/fetchUsersBondsSUI.js.map +1 -0
  187. package/dist/adapters/sui/{useCurrencyBalanceSui.js → state/useCurrencyBalanceSui.js} +2 -2
  188. package/dist/adapters/sui/state/useCurrencyBalanceSui.js.map +1 -0
  189. package/dist/adapters/sui/{useSUIAccount.js → state/useSUIAccount.js} +1 -1
  190. package/dist/adapters/sui/state/useSUIAccount.js.map +1 -0
  191. package/dist/adapters/sui/{useSuiZapQuote.d.ts → state/useSuiZapQuote.d.ts} +1 -1
  192. package/dist/adapters/sui/{useSuiZapQuote.js → state/useSuiZapQuote.js} +5 -5
  193. package/dist/adapters/sui/state/useSuiZapQuote.js.map +1 -0
  194. package/dist/adapters/sui/{suiHelpers.js → utils/suiHelpers.js} +1 -1
  195. package/dist/adapters/sui/utils/suiHelpers.js.map +1 -0
  196. package/dist/adapters/sui/{ActionsSui.d.ts → views/ActionsSui.d.ts} +1 -1
  197. package/dist/adapters/sui/{ActionsSui.js → views/ActionsSui.js} +11 -11
  198. package/dist/adapters/sui/views/ActionsSui.js.map +1 -0
  199. package/dist/adapters/sui/{BuyComponentSui.js → views/BuyComponentSui.js} +34 -34
  200. package/dist/adapters/sui/views/BuyComponentSui.js.map +1 -0
  201. package/dist/adapters/sui/{ClaimAllActionSui.d.ts → views/ClaimAllActionSui.d.ts} +1 -1
  202. package/dist/adapters/sui/{ClaimAllActionSui.js → views/ClaimAllActionSui.js} +10 -10
  203. package/dist/adapters/sui/views/ClaimAllActionSui.js.map +1 -0
  204. package/dist/adapters/sui/{ConnectToSuiBanner.js → views/ConnectToSuiBanner.js} +6 -6
  205. package/dist/adapters/sui/views/ConnectToSuiBanner.js.map +1 -0
  206. package/dist/adapters/sui/{TransferActionSui.d.ts → views/TransferActionSui.d.ts} +1 -1
  207. package/dist/adapters/sui/{TransferActionSui.js → views/TransferActionSui.js} +7 -7
  208. package/dist/adapters/sui/views/TransferActionSui.js.map +1 -0
  209. package/dist/adapters/sui/{UserBondRowSui.d.ts → views/UserBondRowSui.d.ts} +1 -1
  210. package/dist/adapters/sui/{UserBondRowSui.js → views/UserBondRowSui.js} +22 -22
  211. package/dist/adapters/sui/views/UserBondRowSui.js.map +1 -0
  212. package/dist/components/NetworkFilter/index.js.map +1 -1
  213. package/dist/components/Toast/index.js +1 -1
  214. package/dist/components/Toast/index.js.map +1 -1
  215. package/dist/main.d.ts +1 -1
  216. package/dist/main.js +1 -1
  217. package/dist/main.js.map +1 -1
  218. package/dist/state/bonds/useBondsData.js.map +1 -1
  219. package/dist/styles.css +1 -1
  220. package/package.json +3 -7
  221. package/dist/adapters/all/index.d.ts +0 -13
  222. package/dist/adapters/all/index.js +0 -15
  223. package/dist/adapters/all/index.js.map +0 -1
  224. package/dist/adapters/aptos/ActionsAptos.js.map +0 -1
  225. package/dist/adapters/aptos/AptosAccountBridge.js.map +0 -1
  226. package/dist/adapters/aptos/BuyComponentAptos.js.map +0 -1
  227. package/dist/adapters/aptos/ClaimAllActionAptos.js.map +0 -1
  228. package/dist/adapters/aptos/ConnectAptosWalletButton.js.map +0 -1
  229. package/dist/adapters/aptos/ConnectToAptosBanner.js.map +0 -1
  230. package/dist/adapters/aptos/TransferActionAptos.js.map +0 -1
  231. package/dist/adapters/aptos/UserBondRowAptos.js.map +0 -1
  232. package/dist/adapters/aptos/aptosHelpers.js.map +0 -1
  233. package/dist/adapters/aptos/fetchBondsDataAptos.js.map +0 -1
  234. package/dist/adapters/aptos/fetchUsersBondsAptos.js.map +0 -1
  235. package/dist/adapters/aptos/useAPTAccount.js.map +0 -1
  236. package/dist/adapters/aptos/useAptosZapQuote.js.map +0 -1
  237. package/dist/adapters/aptos/useCurrencyBalanceAptos.js.map +0 -1
  238. package/dist/adapters/evm/Actions.js.map +0 -1
  239. package/dist/adapters/evm/BuyComponent.js.map +0 -1
  240. package/dist/adapters/evm/ClaimAllActionEVM.js.map +0 -1
  241. package/dist/adapters/evm/ConnectToEvmBanner.js.map +0 -1
  242. package/dist/adapters/evm/EvmAccountBridge.js.map +0 -1
  243. package/dist/adapters/evm/TransactionModal.js.map +0 -1
  244. package/dist/adapters/evm/TransferAction.js.map +0 -1
  245. package/dist/adapters/evm/UserBondRow.js.map +0 -1
  246. package/dist/adapters/evm/balances.js.map +0 -1
  247. package/dist/adapters/evm/fetchBondsDataEVM.js.map +0 -1
  248. package/dist/adapters/evm/fetchUsersBondsEVM.js.map +0 -1
  249. package/dist/adapters/evm/getTierPoints.js.map +0 -1
  250. package/dist/adapters/evm/multicall.js.map +0 -1
  251. package/dist/adapters/evm/preTGE/BuyComponentPreTGE.js.map +0 -1
  252. package/dist/adapters/evm/preTGE/ModalHandlerPreTGE.js.map +0 -1
  253. package/dist/adapters/evm/preTGE/PreTGEActions.js.map +0 -1
  254. package/dist/adapters/evm/preTGE/UserBondRowPreTGE.js.map +0 -1
  255. package/dist/adapters/evm/preTGE/UserBondRowYield.js.map +0 -1
  256. package/dist/adapters/evm/preTGE/YourBondsModalYield/YourBondsModalYield.js.map +0 -1
  257. package/dist/adapters/evm/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +0 -1
  258. package/dist/adapters/evm/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +0 -1
  259. package/dist/adapters/evm/preTGE/fetchBondsDataPreTGE.js.map +0 -1
  260. package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.js.map +0 -1
  261. package/dist/adapters/evm/useAllowance.js.map +0 -1
  262. package/dist/adapters/evm/useEVMAccount.js.map +0 -1
  263. package/dist/adapters/evm/useMonitorTx.js.map +0 -1
  264. package/dist/adapters/evm/useSoulZapBondQuote.js.map +0 -1
  265. package/dist/adapters/evm/useTierProofSignature.js.map +0 -1
  266. package/dist/adapters/lifi/LifiModal.js.map +0 -1
  267. package/dist/adapters/lifi/LifiWidgetContent.js.map +0 -1
  268. package/dist/adapters/solana/ActionsSolana.js.map +0 -1
  269. package/dist/adapters/solana/BuyComponentSolana.js.map +0 -1
  270. package/dist/adapters/solana/ConnectSolanaWalletButton.js.map +0 -1
  271. package/dist/adapters/solana/ConnectToSolanaBanner.js.map +0 -1
  272. package/dist/adapters/solana/SolanaAccountBridge.js.map +0 -1
  273. package/dist/adapters/solana/TransferActionSolana.js.map +0 -1
  274. package/dist/adapters/solana/UserBondRowSolana.js.map +0 -1
  275. package/dist/adapters/solana/calculateSolanaTrueBillPrice.js.map +0 -1
  276. package/dist/adapters/solana/codecs/bondCodec.js.map +0 -1
  277. package/dist/adapters/solana/codecs/bondIssuanceCodec.js.map +0 -1
  278. package/dist/adapters/solana/codecs/bondPricingCodec.js.map +0 -1
  279. package/dist/adapters/solana/codecs/bondTermCodec.js.map +0 -1
  280. package/dist/adapters/solana/derivePda.js.map +0 -1
  281. package/dist/adapters/solana/fetchBondsDataSOL.js.map +0 -1
  282. package/dist/adapters/solana/fetchUsersBondsSOL.js.map +0 -1
  283. package/dist/adapters/solana/getSolanaAccount.js.map +0 -1
  284. package/dist/adapters/solana/polyfills.js.map +0 -1
  285. package/dist/adapters/solana/solanaAtaHelper.js.map +0 -1
  286. package/dist/adapters/solana/solanaConstants.js.map +0 -1
  287. package/dist/adapters/solana/solanaMulticall.js.map +0 -1
  288. package/dist/adapters/solana/solanaRpc.js.map +0 -1
  289. package/dist/adapters/solana/useCurrencyBalanceSolana.js.map +0 -1
  290. package/dist/adapters/solana/useJupiterSolanaQuote.js.map +0 -1
  291. package/dist/adapters/solana/useSOLAccount.js.map +0 -1
  292. package/dist/adapters/sui/ActionsSui.js.map +0 -1
  293. package/dist/adapters/sui/BuyComponentSui.js.map +0 -1
  294. package/dist/adapters/sui/ClaimAllActionSui.js.map +0 -1
  295. package/dist/adapters/sui/ConnectToSuiBanner.js.map +0 -1
  296. package/dist/adapters/sui/SuiAccountBridge.js.map +0 -1
  297. package/dist/adapters/sui/TransferActionSui.js.map +0 -1
  298. package/dist/adapters/sui/UserBondRowSui.js.map +0 -1
  299. package/dist/adapters/sui/fetchBondsDataSui.js.map +0 -1
  300. package/dist/adapters/sui/fetchUsersBondsSUI.js.map +0 -1
  301. package/dist/adapters/sui/suiConstants.js.map +0 -1
  302. package/dist/adapters/sui/suiHelpers.js.map +0 -1
  303. package/dist/adapters/sui/suiZapTokens.js.map +0 -1
  304. package/dist/adapters/sui/useCurrencyBalanceSui.js.map +0 -1
  305. package/dist/adapters/sui/useSUIAccount.js.map +0 -1
  306. package/dist/adapters/sui/useSuiZapQuote.js.map +0 -1
  307. /package/dist/adapters/aptos/{AptosAccountBridge.d.ts → state/AptosAccountBridge.d.ts} +0 -0
  308. /package/dist/adapters/aptos/{useAPTAccount.d.ts → state/useAPTAccount.d.ts} +0 -0
  309. /package/dist/adapters/aptos/{useCurrencyBalanceAptos.d.ts → state/useCurrencyBalanceAptos.d.ts} +0 -0
  310. /package/dist/adapters/aptos/{aptosBonds.d.ts → types/aptosBonds.d.ts} +0 -0
  311. /package/dist/adapters/aptos/{BuyComponentAptos.d.ts → views/BuyComponentAptos.d.ts} +0 -0
  312. /package/dist/adapters/aptos/{ConnectAptosWalletButton.d.ts → views/ConnectAptosWalletButton.d.ts} +0 -0
  313. /package/dist/adapters/aptos/{ConnectToAptosBanner.d.ts → views/ConnectToAptosBanner.d.ts} +0 -0
  314. /package/dist/adapters/evm/{EvmAccountBridge.d.ts → state/EvmAccountBridge.d.ts} +0 -0
  315. /package/dist/adapters/evm/{useAllowance.d.ts → state/useAllowance.d.ts} +0 -0
  316. /package/dist/adapters/evm/{useEVMAccount.d.ts → state/useEVMAccount.d.ts} +0 -0
  317. /package/dist/adapters/evm/{useMonitorTx.d.ts → state/useMonitorTx.d.ts} +0 -0
  318. /package/dist/adapters/evm/{useTierProofSignature.d.ts → state/useTierProofSignature.d.ts} +0 -0
  319. /package/dist/adapters/evm/{multicall.d.ts → utils/multicall.d.ts} +0 -0
  320. /package/dist/adapters/evm/{ConnectToEvmBanner.d.ts → views/ConnectToEvmBanner.d.ts} +0 -0
  321. /package/dist/adapters/evm/{preTGE → views/preTGE}/BuyComponentPreTGE.d.ts +0 -0
  322. /package/dist/adapters/evm/{preTGE → views/preTGE}/ModalHandlerPreTGE.d.ts +0 -0
  323. /package/dist/adapters/lifi/{LifiWidgetContent.d.ts → views/LifiWidgetContent.d.ts} +0 -0
  324. /package/dist/adapters/lifi/{LifiWidgetContent.js → views/LifiWidgetContent.js} +0 -0
  325. /package/dist/adapters/solana/{solanaConstants.d.ts → constants/solanaConstants.d.ts} +0 -0
  326. /package/dist/adapters/solana/{SolanaAccountBridge.d.ts → state/SolanaAccountBridge.d.ts} +0 -0
  327. /package/dist/adapters/solana/{useCurrencyBalanceSolana.d.ts → state/useCurrencyBalanceSolana.d.ts} +0 -0
  328. /package/dist/adapters/solana/{useSOLAccount.d.ts → state/useSOLAccount.d.ts} +0 -0
  329. /package/dist/adapters/solana/{helius.d.ts → types/helius.d.ts} +0 -0
  330. /package/dist/adapters/solana/{solanaBonds.d.ts → types/solanaBonds.d.ts} +0 -0
  331. /package/dist/adapters/solana/{calculateSolanaTrueBillPrice.d.ts → utils/calculateSolanaTrueBillPrice.d.ts} +0 -0
  332. /package/dist/adapters/solana/{codecs → utils/codecs}/bondCodec.d.ts +0 -0
  333. /package/dist/adapters/solana/{codecs → utils/codecs}/bondIssuanceCodec.d.ts +0 -0
  334. /package/dist/adapters/solana/{codecs → utils/codecs}/bondPricingCodec.d.ts +0 -0
  335. /package/dist/adapters/solana/{codecs → utils/codecs}/bondTermCodec.d.ts +0 -0
  336. /package/dist/adapters/solana/{codecs → utils/codecs}/index.d.ts +0 -0
  337. /package/dist/adapters/solana/{derivePda.d.ts → utils/derivePda.d.ts} +0 -0
  338. /package/dist/adapters/solana/{derivePda.js → utils/derivePda.js} +0 -0
  339. /package/dist/adapters/solana/{getSolanaAccount.d.ts → utils/getSolanaAccount.d.ts} +0 -0
  340. /package/dist/adapters/solana/{getSolanaAccount.js → utils/getSolanaAccount.js} +0 -0
  341. /package/dist/adapters/solana/{polyfills.d.ts → utils/polyfills.d.ts} +0 -0
  342. /package/dist/adapters/solana/{polyfills.js → utils/polyfills.js} +0 -0
  343. /package/dist/adapters/solana/{solanaAtaHelper.d.ts → utils/solanaAtaHelper.d.ts} +0 -0
  344. /package/dist/adapters/solana/{solanaAtaHelper.js → utils/solanaAtaHelper.js} +0 -0
  345. /package/dist/adapters/solana/{solanaMulticall.d.ts → utils/solanaMulticall.d.ts} +0 -0
  346. /package/dist/adapters/solana/{solanaMulticall.js → utils/solanaMulticall.js} +0 -0
  347. /package/dist/adapters/solana/{solanaRpc.d.ts → utils/solanaRpc.d.ts} +0 -0
  348. /package/dist/adapters/solana/{BuyComponentSolana.d.ts → views/BuyComponentSolana.d.ts} +0 -0
  349. /package/dist/adapters/solana/{ConnectSolanaWalletButton.d.ts → views/ConnectSolanaWalletButton.d.ts} +0 -0
  350. /package/dist/adapters/solana/{ConnectToSolanaBanner.d.ts → views/ConnectToSolanaBanner.d.ts} +0 -0
  351. /package/dist/adapters/sui/{suiConstants.d.ts → constants/suiConstants.d.ts} +0 -0
  352. /package/dist/adapters/sui/{suiConstants.js → constants/suiConstants.js} +0 -0
  353. /package/dist/adapters/sui/{suiZapTokens.d.ts → constants/suiZapTokens.d.ts} +0 -0
  354. /package/dist/adapters/sui/{suiZapTokens.js → constants/suiZapTokens.js} +0 -0
  355. /package/dist/adapters/sui/{SuiAccountBridge.d.ts → state/SuiAccountBridge.d.ts} +0 -0
  356. /package/dist/adapters/sui/{useCurrencyBalanceSui.d.ts → state/useCurrencyBalanceSui.d.ts} +0 -0
  357. /package/dist/adapters/sui/{useSUIAccount.d.ts → state/useSUIAccount.d.ts} +0 -0
  358. /package/dist/adapters/sui/{suiHelpers.d.ts → utils/suiHelpers.d.ts} +0 -0
  359. /package/dist/adapters/sui/{BuyComponentSui.d.ts → views/BuyComponentSui.d.ts} +0 -0
  360. /package/dist/adapters/sui/{ConnectToSuiBanner.d.ts → views/ConnectToSuiBanner.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuyComponentPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/BuyComponentPreTGE.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { mulDivRound, parseUnits } from '../../../utils/fixedPoint'\nimport TokenSelectorPanel from '../../../components/TokenSelectorPanel'\nimport useCurrencyBalance from '../../../state/balance/useCurrencyBalance'\nimport { useWriteContract } from 'wagmi'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport ModalHeader from '../../../components/uikit-sdk/Modal/ModalHeader'\nimport ProjectDescription from '../../../views/BuyBond/components/ProjectDescription'\nimport { TooltipText } from '../../../config/constants/tooltips'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport BondCardsPreTGE from '../../../views/BuyBond/components/BondCards/BondCardsPreTGE'\nimport useBondsData from '../../../state/bonds/useBondsData'\nimport useModal from '../../../hooks/useModal'\nimport TransactionModal from '../TransactionModal'\nimport { useApproval } from '../useAllowance'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport launchBondsABI_V2_2_0 from '../../../config/abi/launchBond_v2_4_1.json'\nimport ConnectButton from '../../../components/ConnectButton'\nimport track from '../../../utils/track'\nimport useEVMAccount from '../useEVMAccount'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport Modal from '../../../components/uikit-sdk/Modal'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Text from '../../../components/uikit-sdk/Text'\nimport ListTag from '../../../components/uikit-sdk/Tag/ListTag'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport { getTimePeriods } from '../../../utils/getTimePeriods'\nimport QuestionCircle from '../../../components/uikit-sdk/Svg/Icons/QuestionCircle'\n\nconst infoRowClasses = 'ape:w-full ape:justify-between'\nconst infoTitleClasses = 'ape:font-normal'\nconst infoDataClasses = 'ape:font-bold'\n\nconst BuyComponentPreTGE = ({\n bondAddress,\n bondChain,\n onDismiss,\n handlePurchasedBond,\n}: {\n bondAddress: string\n bondChain: number\n onDismiss?: () => void\n handlePurchasedBond: (hash: string, inputAmount: string) => void\n}) => {\n const SDKConfig = useSDKConfig()\n const { data: preTGEBonds } = useBondsData()\n const bond = preTGEBonds?.find(\n (bond) =>\n bond.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress.toLowerCase() && bond.chainId === bondChain,\n )!\n // Hooks\n const { address } = useEVMAccount()\n const { data: principalTokenBalance } = useCurrencyBalance(bond.lpToken, address as string, bond.chainId)\n // Local state\n const [inputValue, setInputValue] = useState<string>('')\n\n // Display Values\n const raiseGoal = getBalanceNumber(bond?.totalRaise ?? '0', 18)\n const totalPrincipalBilled = getBalanceNumber(bond?.totalPrincipalBilled ?? '0', 18)\n const percentageSold = (totalPrincipalBilled * 100) / raiseGoal\n const tgePrice = bond?.tgePrice ?? 0\n const initPrice = bond?.initPrice ?? 0\n\n const inputValueToDisplay = parseFloat(inputValue).toFixed(2)\n const inputValueToDisplayUSD = parseFloat(inputValueToDisplay) * parseFloat(bond?.principalTokenPrice ?? '0')\n const youGet = parseFloat(inputValue) / initPrice\n const youGetUSD = youGet * tgePrice\n const bonusUSD = youGetUSD - inputValueToDisplayUSD\n\n const apr = bond.yieldData?.apr ?? 0\n const aprUSD = inputValueToDisplayUSD * (apr / 100)\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const [loading, setLoading] = useState<boolean>(false)\n const [buyTxHash, setHash] = useState<string>('')\n // Approve logic\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n bond.lpToken,\n bond?.contractAddress[bond.chainId] as `0x${string}`,\n address as string,\n bond.chainId as ChainId,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: bondChain,\n data: {\n cat: bond?.billType,\n bond: bond?.earnToken.symbol,\n },\n })\n })\n }\n const { writeContractAsync } = useWriteContract()\n const onBuyBill = async () => {\n setLoading(true)\n const amount = parseUnits(inputValue, bond?.lpToken?.decimals?.[bond?.chainId] ?? 18).toString()\n const maxPrice = mulDivRound(\n BigInt(bond?.trueBondPrices?.[0].trueBondPrice ?? '0'),\n 102n,\n 100n,\n 'halfUp',\n ).toString()\n const args = [amount, maxPrice, address]\n\n await writeContractAsync({\n address: bond?.contractAddress?.[bond.chainId] as `0x${string}`,\n abi: launchBondsABI_V2_2_0,\n functionName: 'deposit',\n args: args,\n chain: bond.chainId as any,\n account: address,\n })\n .then((hash) => {\n setHash(hash)\n handlePurchasedBond(hash, inputValue)\n })\n .finally(() => {\n setLoading(false)\n })\n }\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loading}\n txCallback={onBuyBill}\n bondData={bond!}\n inputToken={bond.lpToken}\n inputValue={inputValue}\n depositAmount={inputValue}\n buyTxHash={buyTxHash}\n rateChanged={false}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n const { data: currencyBalanceString } = useCurrencyBalance(bond.lpToken, address as string, bond.chainId)\n const exceedsBalance = parseFloat(inputValue) > parseFloat(currencyBalanceString ?? '0')\n const saleStartTime = (bond?.initTime?.[bond.chainId] ?? 0) * 1000\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const now = new Date().getTime()\n const saleHasStarted = now > saleStartTime\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n const error = SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : !saleHasStarted\n ? `Sale hasn't started`\n : saleHasFinished\n ? 'Sale Finished'\n : exceedsBalance\n ? 'Exceeds balance'\n : percentageSold > 99.9\n ? 'Soldout'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : !bond\n ? 'no bond'\n : null\n\n return (\n <Modal onDismiss={handleClose} className=\"ape:w-[740px]!\">\n <ModalHeader onDismiss={handleClose} hideDivider />\n <Flex className=\"ape:w-full ape:mb-[30px] ape:lg:mb-0 ape:flex-col\">\n <Flex className=\"ape:w-full ape:bg-white2 ape:rounded-normal ape:flex-col\">\n <Flex className=\"ape:w-full ape:justify-between\">\n <Flex>\n <Flex>\n <Flex className=\"title-container bondicon ape:flex ape:flex-row ape:items-center ape:relative\">\n <TokenImage\n symbol={bond.underlyingEarnToken?.symbol || bond.earnToken.symbol}\n size={50}\n chain={bond.chainId}\n />\n </Flex>\n <Flex className=\"title-container bondname ape:flex ape:flex-col ape:pl-[20px] ape:text-[24px] ape:font-bold\">\n {bond.underlyingEarnToken?.symbol || bond.earnToken.symbol}\n <ListTag text={bond?.tags?.[0]} />\n </Flex>\n </Flex>\n {!bond.yieldBond && (\n <Flex className=\"ape:flex-col ape:ml-[15px]\">\n <Flex className=\"price-container price ape:line-through ape:opacity-50 ape:font-normal\">\n ${bond.tgePrice}\n </Flex>\n <Flex className=\"ape:text-[24px] ape:font-bold\">${bond.initPrice}</Flex>\n </Flex>\n )}\n </Flex>\n </Flex>\n <ProjectDescription description={bond.shortDescription} isProjectView />\n <BondCardsPreTGE bond={bond} />\n <Flex className=\"ape:w-full ape:flex-col ape:mb-[10px] ape:mt-[10px]\">\n <Flex className={infoRowClasses}>\n <Text size=\"12px\" className={infoTitleClasses}>\n You Spend:\n </Text>\n <Text size=\"12px\" className={infoDataClasses}>\n {isNaN(parseFloat(inputValueToDisplay)) ? 0 : inputValueToDisplay} {bond?.lpToken.symbol} = $\n {isNaN(inputValueToDisplayUSD) ? '0' : inputValueToDisplayUSD.toFixed(2)}\n </Text>\n </Flex>\n {bond.yieldBond ? (\n <Flex className={infoRowClasses}>\n <Flex className={`${infoTitleClasses} ape:items-center`}>\n Yield Bonus:\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n This is the duration over which the bonus yield will be distributed while your initial tokens\n remain staked.\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon ape:flex ape:font-normal ape:items-start ape:pl-[5px] ape:cursor-pointer\">\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Text size=\"12px\" className={infoDataClasses} style={{ color: 'var(--ape-color-success)' }}>\n ${isNaN(aprUSD) ? '0' : aprUSD.toFixed(2)}\n </Text>\n </Flex>\n ) : (\n <Flex className={infoRowClasses}>\n <Flex className={`${infoTitleClasses} ape:items-center`}>\n Bonus:\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{TooltipText.Premium}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon ape:flex ape:font-normal ape:items-start ape:pl-[5px] ape:cursor-pointer\">\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Text size=\"12px\" className={infoDataClasses} style={{ color: 'var(--ape-color-success)' }}>\n ${isNaN(bonusUSD) ? '0' : bonusUSD.toFixed(2)}\n </Text>\n </Flex>\n )}\n\n <Flex className={infoRowClasses}>\n <Text size=\"12px\" className={infoTitleClasses}>\n You Get (over{' '}\n {\n getTimePeriods(\n (bond?.yieldData?.rewardDistributionEnd ?? 0) - parseInt(bond.startVestingTimestamp ?? '0'),\n true,\n ).days\n }{' '}\n days):\n </Text>\n {bond.yieldBond ? (\n <Flex className={`${infoDataClasses} ape:items-center ape:gap-[5px] ape:text-[12px]`}>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex className=\"ape:w-full ape:flex-col\">\n This is the expected total return by the end of the pool duration, including the initial tokens.\n <Flex className=\"ape:mt-[10px] ape:mb-[5px]\">Breakdown</Flex>\n <Flex className=\"ape:w-full ape:justify-between\">\n <Flex>Initial capital:</Flex>\n <Flex>\n ${formatNumberSI(inputValueToDisplayUSD)} in {bond.underlyingEarnToken?.symbol}\n </Flex>\n </Flex>\n <Flex className=\"ape:w-full ape:justify-between\">\n <Flex>Yield Bonus:</Flex>\n <Flex>\n ${formatNumberSI(aprUSD)} in {bond.underlyingEarnToken?.symbol}\n </Flex>\n </Flex>\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Flex className=\"row-container premium-icon ape:flex ape:font-normal ape:items-start ape:pl-[5px] ape:cursor-pointer\">\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n ${formatNumberSI(youGetUSD + aprUSD)}\n </Flex>\n ) : (\n <Text size=\"12px\" className={infoDataClasses}>\n {isNaN(youGet) ? 0 : formatNumberSI(youGet, 0)} {bond?.earnToken.symbol} = $\n {isNaN(youGetUSD) ? '0' : youGetUSD.toFixed(2)}\n </Text>\n )}\n </Flex>\n </Flex>\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={bond?.lpToken}\n handleValueBtn={() => setInputValue(principalTokenBalance ?? '0')}\n handleCurrencySelect={() => null}\n bondChainId={bond?.chainId}\n enableZap={false}\n bondPrincipalToken={bond?.lpToken}\n tokenBalance={principalTokenBalance ?? undefined}\n selectedTokenPrice={parseFloat(bond?.principalTokenPrice ?? '0')}\n inputDisabled={false}\n isConnected={!!address}\n />\n <Flex\n className=\"ape:w-full ape:justify-center ape:mt-[10px] ape:rounded-normal ape:p-[4px_10px] ape:text-[12px] ape:font-normal\"\n style={{ background: '#DE62F366' }}\n >\n {bond.warningCard ? (\n bond.warningCard\n ) : bond.yieldBond ? (\n <span>\n This is a Yield Bond. Your initial capital unlocks in{' '}\n {\n getTimePeriods(\n (bond?.yieldData?.rewardDistributionEnd ?? 0) - parseInt(bond.startVestingTimestamp ?? '0'),\n true,\n ).days\n }{' '}\n days, followed by an APR bonus distributed over the pool duration.\n <span\n className=\"ape:ml-[3px] ape:font-bold ape:cursor-pointer ape:hover:underline\"\n style={{ color: '#837fd7' }}\n >\n {'Learn More >'}\n </span>\n </span>\n ) : (\n <>\n This is a Pre-TGE Bond - Tokens will be tradeable upon listing.\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Text className=\"ape:normal-case\">\n Pre-TGE Bonds are a pre-sale for tokens before their Token Generation Event (TGE), when tokens are\n officially launched to the public.\n </Text>\n }\n width=\"315px\"\n placement=\"topRight\"\n transformTip=\"translate(9%, -10%)\"\n >\n <Flex className=\"ape:ml-[4px] ape:min-w-[14px]\">\n <QuestionCircle width={12} />\n </Flex>\n </TooltipBubble>\n </>\n )}\n </Flex>\n <Flex className=\"ape:w-full ape:mt-[10px] ape:justify-between ape:h-[unset] ape:lg:h-[40px] ape:flex-col-reverse ape:lg:flex-row\">\n {!address ? (\n <ConnectButton />\n ) : (\n <>\n <Flex className=\"ape:w-full ape:lg:w-[45%] ape:justify-center\">\n <Button\n variant=\"secondary\"\n onClick={() =>\n window.open(\n `/swap?outputCurrency=${bond?.lpToken?.address[bond?.chainId]}&outputChain=${bond?.chainId}`,\n '_blank',\n )\n }\n fullWidth\n >\n Get {bond?.lpToken?.symbol}\n </Button>\n </Flex>\n {error ? (\n <Button disabled fullWidth className=\"ape:ml-0 ape:lg:ml-[10px]\">\n {error}\n </Button>\n ) : (\n <Button\n disabled={loading}\n load={loading}\n onClick={openTxModal}\n fullWidth\n className=\"ape:ml-0 ape:lg:ml-[10px]\"\n >\n Buy\n </Button>\n )}\n </>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default BuyComponentPreTGE\n"],"names":["launchBondsABI_V2_2_0","_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalHandlerPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/ModalHandlerPreTGE.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport useBondsData from '../../../state/bonds/useBondsData'\nimport { BondsData } from '../../../types/bonds'\nimport { useMonitorTx } from '../useMonitorTx'\nimport ParticipationSuccessful from '../../../views/BuyBond/ParticipationSuccessful'\nimport BuyComponentPreTGE from './BuyComponentPreTGE'\n\n/*\n * Basically this is a handler that controls which Modal is displayed to the user.\n * It will start by showing the buy modal and if a user purchases a bond, a inputAmount will be set, this will trigger the\n * display of the ParticipationSuccessful modal\n * */\n\nconst ModalHandlerPreTGE = ({\n onDismiss,\n bondAddress,\n bondChain,\n}: {\n onDismiss?: () => void\n bondAddress: string\n bondChain: number\n}) => {\n const { data: bonds } = useBondsData()\n\n const [inputAmount, setInputAmount] = useState<string>('')\n const [buyTxHash, setBuyTxHash] = useState<string>('')\n const [bond, setBond] = useState<BondsData>()\n const { data: txReceipt, isSuccess } = useMonitorTx(buyTxHash, bondChain)\n\n useEffect(() => {\n if (inputAmount && bonds && txReceipt && isSuccess) {\n const bond = bonds.find(\n (bond) =>\n bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase() &&\n bond?.chainId === bondChain,\n )\n setBond(bond)\n }\n }, [inputAmount, bonds, bondAddress, bondChain, txReceipt, isSuccess])\n\n return bond ? (\n <ParticipationSuccessful bond={bond} inputAmount={inputAmount} onDismiss={onDismiss} />\n ) : (\n <BuyComponentPreTGE\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={(hash: string, inputAmount: string) => {\n setInputAmount(inputAmount)\n setBuyTxHash(hash)\n }}\n onDismiss={() => {\n // window.history.pushState({}, '', `${locationPath !== '/bonds' ? locationPath : '/bonds'}`)\n onDismiss?.()\n }}\n />\n )\n}\n\nexport default ModalHandlerPreTGE\n"],"names":["_jsx"],"mappings":";;;;;;;AAOA;;;;AAIK;AAEL,MAAM,kBAAkB,GAAG,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,SAAS,GAKV,KAAI;IACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE;IAEtC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;IACtD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAa;AAC7C,IAAA,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC;IAEzE,SAAS,CAAC,MAAK;QACb,IAAI,WAAW,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,EAAE;YAClD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,CAAC,IAAI,KACH,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE;AACnF,gBAAA,IAAI,EAAE,OAAO,KAAK,SAAS,CAC9B;YACD,OAAO,CAAC,IAAI,CAAC;QACf;AACF,IAAA,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEtE,IAAA,OAAO,IAAI,IACTA,GAAA,CAAC,uBAAuB,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,KAEvFA,GAAA,CAAC,kBAAkB,IACjB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,CAAC,IAAY,EAAE,WAAmB,KAAI;YACzD,cAAc,CAAC,WAAW,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC;AACpB,QAAA,CAAC,EACD,SAAS,EAAE,MAAK;;YAEd,SAAS,IAAI;QACf,CAAC,EAAA,CACD,CACH;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreTGEActions.js","sources":["../../../../src/adapters/evm/preTGE/PreTGEActions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport { useSwitchChain, useWriteContract } from 'wagmi'\nimport LaunchBondABI_V_2_4_1 from '../../../config/abi/launchBond_v2_4_1.json'\nimport { reportError } from '../../../utils/reportError'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { usePopups } from '../../../state/popups/usePopups'\nimport { useMonitorTx } from '../useMonitorTx'\nimport { formatTimeLeft } from '../../../utils/getTimePeriods'\nimport useUserBondsPreTGE, { PreTGEUserBonds } from '../../../state/bonds/useUserBondsPreTGE'\nimport useEVMAccount from '../useEVMAccount'\n\nconst PreTgeActions = ({ userBond }: { userBond: PreTGEUserBonds }) => {\n //Hooks\n const { writeContractAsync } = useWriteContract()\n const { address: account, chainId } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n const { refetch } = useUserBondsPreTGE()\n const { switchChainAsync } = useSwitchChain()\n\n //State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n\n // Data\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBond?.chainId)\n const hasRedeemed = userBond?.accountInfo?.hasRedeemed\n const redeemableIn = formatTimeLeft((userBond?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n\n const saleFinalized = userBond?.finalized\n\n const handleRedeem = async () => {\n setLoading(true)\n writeContractAsync({\n address: userBond.contractAddress[userBond.chainId] as `0x${string}`,\n abi: LaunchBondABI_V_2_4_1,\n functionName: 'redeem',\n chain: userBond.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'redeemLaunchBond', error: e.message },\n chainId: userBond.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClaim = async () => {\n setLoading(true)\n setHash('')\n if (!userBond?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBond.contractAddress[userBond.chainId] as `0x${string}`,\n abi: LaunchBondABI_V_2_4_1,\n functionName: 'claim',\n args: [userBond?.userOwnedBillsData?.id],\n chain: userBond.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBond.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClick = () => {\n if (hasRedeemed) {\n handleClaim()\n } else {\n handleRedeem()\n }\n }\n\n useEffect(() => {\n // trigger refetch user bonds once tx is confirmed\n if (!!hash && isSuccess && !isLoadingOnChain) {\n console.log('trigger user refetch')\n refetch()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hash, isSuccess, isLoadingOnChain])\n\n return (\n <Button\n disabled={!saleFinalized || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n fullWidth\n className=\"ape:text-[14px]! ape:h-[30px]\"\n style={!saleFinalized ? { background: 'var(--ape-color-white4)' } : undefined}\n onClick={() => {\n if (chainId !== userBond.chainId) {\n switchChainAsync({ chainId: userBond.chainId })\n .then(() => {\n handleClick()\n })\n .catch()\n } else {\n handleClick()\n }\n }}\n >\n {saleFinalized ? 'Claim' : `Claimable in ${redeemableIn}`}\n </Button>\n )\n}\n\nexport default PreTgeActions\n"],"names":["_jsx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserBondRowPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/UserBondRowPreTGE.tsx"],"sourcesContent":["import React from 'react'\nimport TokenInfoAndName from '../../../components/TokenInfoAndName'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport PreTgeActions from './PreTGEActions'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { formatTimeLeft, getTimePeriods } from '../../../utils/getTimePeriods'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport { getPendingVestingString } from '../../../utils/displayHelpers'\nimport { PreTGEUserBonds } from '../../../state/bonds/useUserBondsPreTGE'\nimport More from '../../../components/uikit-sdk/Svg/Icons/More'\n\nconst UserBondRowPreTGE = ({ userBond }: { userBond: PreTGEUserBonds }) => {\n const saleFinalized = userBond.finalized\n const hasRedeemed = userBond?.accountInfo?.hasRedeemed\n const isRedeemable = !hasRedeemed && saleFinalized\n\n const redeemableIn = formatTimeLeft((userBond?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n const depositAmount = getBalanceNumber(\n userBond?.accountInfo?.depositAmount ?? '0',\n userBond?.lpToken?.decimals?.[userBond?.chainId]!,\n )\n const truePricePaid = getBalanceNumber(\n userBond?.accountInfo?.truePricePaid ?? '0',\n userBond?.lpToken?.decimals?.[userBond?.chainId]!,\n )\n\n const initialRelease = userBond?.initialRelease\n const vestingTimePeriods = getTimePeriods(userBond.vestingTerm, false)\n const vestingString = hasRedeemed\n ? getPendingVestingString(userBond?.userOwnedBillsData)\n : initialRelease === 1\n ? `0 D`\n : `${vestingTimePeriods.months} Months`\n\n const userAllocation = depositAmount / (userBond?.initPrice ?? 0)\n const initialReleaseTokens =\n !hasRedeemed && saleFinalized && userBond?.initialRelease ? userAllocation * userBond?.initialRelease : 0\n\n // pendingRewards variable follows the naming of the SC, but it actually means currently claimable tokens\n const pendingRewards = getBalanceNumber(\n userBond?.userOwnedBillsData?.pendingRewards ?? '0',\n userBond?.earnToken?.decimals?.[userBond.chainId]!,\n )\n // payout variable follows the naming of the SC, but it actually means total tokens vested\n const payout = getBalanceNumber(\n userBond?.userOwnedBillsData?.payout ?? '0',\n userBond?.earnToken?.decimals?.[userBond.chainId]!,\n )\n\n const claimableAmount = hasRedeemed ? pendingRewards : initialReleaseTokens\n const claimableUSD = claimableAmount * (userBond.initPrice ?? 0)\n const pendingAmount = hasRedeemed ? payout : depositAmount / truePricePaid\n const pendingUSD = pendingAmount * (userBond?.earnTokenPrice ?? 0)\n\n return (\n <div\n className=\"your-bonds ape:flex ape:flex-col ape:w-full ape:justify-around ape:bg-white2 ape:mb-[5px] ape:rounded-[10px] ape:cursor-pointer ape:hover:bg-white3 ape:min-[1000px]:flex-row ape:min-[1000px]:h-[70px]\"\n onClick={() => null}\n >\n <div className=\"token-info-container ape:flex ape:w-full ape:min-[1000px]:w-[30%] ape:min-[1000px]:min-w-[300px]\">\n <TokenInfoAndName\n tokenSymbol={userBond.earnToken.symbol}\n chain={userBond.chainId}\n tag={userBond.tags?.[0]}\n vestEnds={\n isRedeemable ? 'Claim now!' : !hasRedeemed ? `Claim in ${redeemableIn}` : `Ends in ${vestingString}`\n }\n isHotBond\n />\n <div className=\"tooltip-column ape:flex ape:w-[50px] ape:items-center ape:ml-[10px] ape:min-[1000px]:hidden\">\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={userBond?.earnToken.address[userBond?.chainId] || ''}\n earnTokenSymbol={userBond?.earnToken.symbol || ''}\n bondContract={userBond?.contractAddress?.[userBond?.chainId] || ''}\n projectLink={userBond?.projectLink}\n twitter={userBond?.twitter}\n chain={userBond?.chainId}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(5%, 0%)\"\n >\n <Flex className=\"ape:opacity-80\">\n <More width=\"25px\" />\n </Flex>\n </TooltipBubble>\n </div>\n </div>\n <div className=\"your-bonds-columns-container ape:flex ape:flex-col ape:items-center ape:justify-end ape:w-full ape:min-[1000px]:w-[70%] ape:min-[1000px]:justify-between ape:min-[1000px]:flex-row ape:min-[1000px]:pr-[20px]\">\n <Flex className=\"ape:hidden ape:md:flex ape:w-[125px]\" />\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Claimable\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {formatNumberSI(claimableAmount, 3)}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n (${formatNumberSI(claimableUSD)})\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Pending\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {formatNumberSI(pendingAmount, 3)}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n (${formatNumberSI(pendingUSD)})\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content hide-mobile ape:hidden ape:min-[1000px]:flex ape:text-sm ape:min-[1000px]:w-[130px] ape:justify-center\">\n {vestingString}\n </div>\n <div className=\"your-bonds-column-button ape:flex ape:w-full ape:items-center ape:justify-center ape:p-[10px] ape:min-[1000px]:w-[210px] ape:min-[1000px]:p-0\">\n <PreTgeActions userBond={userBond} />\n </div>\n </div>\n </div>\n )\n}\n\nexport default UserBondRowPreTGE\n"],"names":["_jsxs","_jsx","Tooltip"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserBondRowYield.js","sources":["../../../../src/adapters/evm/preTGE/UserBondRowYield.tsx"],"sourcesContent":["import React from 'react'\nimport TokenInfoAndName from '../../../components/TokenInfoAndName'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport { formatTimeLeft, getTimePeriods } from '../../../utils/getTimePeriods'\nimport { PreTGEUserBonds } from '../../../state/bonds/useUserBondsPreTGE'\nimport useModal from '../../../hooks/useModal'\nimport YourBondsModalYield from './YourBondsModalYield/YourBondsModalYield'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport More from '../../../components/uikit-sdk/Svg/Icons/More'\n\nconst UserBondRowYield = ({ userBond }: { userBond: PreTGEUserBonds }) => {\n const saleFinalized = userBond.finalized\n const hasRedeemed = userBond?.accountInfo?.hasRedeemed\n const isRedeemable = !hasRedeemed && saleFinalized\n\n const redeemableIn = formatTimeLeft((userBond?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n const timeLeftForFullyVested = (userBond.yieldData?.rewardDistributionEnd ?? 0) - Date.now() / 1000\n const timePeriods = getTimePeriods(timeLeftForFullyVested, true)\n const vestingString =\n isRedeemable && userBond.yieldBond\n ? ''\n : hasRedeemed\n ? `${timePeriods.days}d ${timePeriods.hours}h ${timePeriods.minutes}m`\n : ''\n\n const earnTokenPrice = userBond?.earnTokenPrice ?? 0\n const pending = userBond?.yieldData?.depositedAssets ?? 0\n const pendingUSD = pending * earnTokenPrice\n const claimable = getBalanceNumber(userBond?.yieldData?.claimableRewards ?? '0')\n const claimableUSD = claimable * earnTokenPrice\n const endTimeFinished = Date.now() > (userBond?.endTime ?? 0) * 1000\n\n const [onOpenPurchasedBond] = useModal(\n <YourBondsModalYield userBill={userBond} />,\n false,\n false,\n `yourBondsModalYield${userBond.contractAddress[userBond.chainId]}`,\n )\n\n return (\n <div\n className=\"your-bonds ape:flex ape:flex-col ape:w-full ape:justify-around ape:bg-white2 ape:mb-[5px] ape:rounded-[10px] ape:cursor-pointer ape:hover:bg-white3 ape:min-[1000px]:flex-row ape:min-[1000px]:h-[70px]\"\n onClick={onOpenPurchasedBond}\n >\n <div className=\"token-info-container ape:flex ape:w-full ape:min-[1000px]:w-[30%] ape:min-[1000px]:min-w-[300px]\">\n <TokenInfoAndName\n tokenSymbol={userBond?.underlyingEarnToken?.symbol}\n chain={userBond.chainId}\n tag={userBond.tags?.[0]}\n vestEnds={\n isRedeemable ? 'Activate Yield!' : !hasRedeemed ? `Claim in ${redeemableIn}` : `Ends in ${vestingString}`\n }\n isHotBond\n />\n <div className=\"tooltip-column ape:flex ape:w-[50px] ape:items-center ape:ml-[10px] ape:min-[1000px]:hidden\">\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={userBond?.earnToken.address[userBond?.chainId] || ''}\n earnTokenSymbol={userBond?.earnToken.symbol || ''}\n bondContract={userBond?.contractAddress?.[userBond?.chainId] || ''}\n projectLink={userBond?.projectLink}\n twitter={userBond?.twitter}\n chain={userBond?.chainId}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(5%, 0%)\"\n >\n <Flex className=\"ape:opacity-80\">\n <More width=\"25px\" />\n </Flex>\n </TooltipBubble>\n </div>\n </div>\n <div className=\"your-bonds-columns-container ape:flex ape:flex-col ape:items-center ape:justify-end ape:w-full ape:min-[1000px]:w-[70%] ape:min-[1000px]:justify-between ape:min-[1000px]:flex-row ape:min-[1000px]:pr-[20px]\">\n <Flex className=\"ape:hidden ape:md:flex ape:w-[125px]\" />\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Claimable\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {hasRedeemed ? formatNumberSI(claimable) : ''}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n {hasRedeemed ? `($${formatNumberSI(claimableUSD)})` : '-'}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Pending\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {hasRedeemed ? formatNumberSI(pending) : ''}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n {hasRedeemed ? `($${formatNumberSI(pendingUSD)})` : '-'}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content hide-mobile ape:hidden ape:min-[1000px]:flex\">{vestingString}</div>\n <div className=\"your-bonds-column-button ape:flex ape:w-full ape:items-center ape:justify-center ape:p-[10px] ape:min-[1000px]:w-[210px] ape:min-[1000px]:p-0\">\n <Button\n className=\"ape:text-[14px]! ape:h-[30px] ape:w-full\"\n style={!saleFinalized ? { background: 'var(--ape-color-white4)' } : undefined}\n disabled={!saleFinalized}\n >\n {isRedeemable\n ? 'Activate Yield'\n : endTimeFinished && !saleFinalized\n ? 'Claim enabled soon'\n : !hasRedeemed\n ? `Claim in ${redeemableIn}`\n : `Claim`}\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nexport default UserBondRowYield\n"],"names":["_jsx","_jsxs","Tooltip"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"YourBondsModalYield.js","sources":["../../../../../src/adapters/evm/preTGE/YourBondsModalYield/YourBondsModalYield.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { UserBillTooltipText } from '../../../../config/constants/tooltips'\nimport YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport useUserBondsPreTGE, { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { formatUTCDate } from '../../../../utils/dates/formatDate'\nimport useEVMAccount from '../../useEVMAccount'\nimport { useSwitchChain, useWriteContract } from 'wagmi'\nimport LaunchBondABI_V_2_4_1 from '../../../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../../../utils/reportError'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport { useMonitorTx } from '../../useMonitorTx'\nimport { formatTimeLeft } from '../../../../utils/getTimePeriods'\nimport useModal from '../../../../hooks/useModal'\nimport UnstakeModalYield from './components/UnstakeModalYield/UnstakeModalYield'\nimport Arrow from '../../../../components/uikit-sdk/Svg/Icons/Arrow'\nimport QuestionCircle from '../../../../components/uikit-sdk/Svg/Icons/QuestionCircle'\n\nconst YourBondsModalYield = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Hooks\n const { refetch } = useUserBondsPreTGE()\n const { address: account, chainId } = useEVMAccount()\n const { switchChainAsync } = useSwitchChain()\n const { writeContractAsync } = useWriteContract()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n //State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [useLocal, setUseLocal] = useState(false)\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const depositUSD = getBalanceNumber(\n userBill?.accountInfo?.depositAmount ?? '0',\n userBill?.lpToken.decimals[userBill?.chainId] ?? 18,\n ) // assumes raise is in stables\n const payoutSymbol = userBill?.underlyingEarnToken?.symbol\n const claimableRewards = getBalanceNumber(userBill?.yieldData?.claimableRewards ?? '0')\n const claimableRewardsUSD = claimableRewards * (userBill?.earnTokenPrice ?? 0)\n const claimedUSD = (userBill?.yieldData?.claimed ?? 0) * (userBill?.earnTokenPrice ?? 0)\n const saleFinalized = userBill?.finalized\n const hasRedeemed = userBill?.accountInfo?.hasRedeemed\n const canRedeem = saleFinalized && !hasRedeemed\n const endTimeFinished = Date.now() > (userBill?.endTime ?? 0) * 1000\n const depositedAssets = userBill?.yieldData?.depositedAssets ?? 0\n const depositedAssetsUSD = depositedAssets * (userBill?.earnTokenPrice ?? 0)\n\n const redeemableInLong = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, false)\n const redeemableInShort = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n\n // Handlers\n const handleRedeemBond = async () => {\n setLoading(true)\n writeContractAsync({\n address: userBill?.contractAddress[userBill?.chainId] as `0x${string}`,\n abi: LaunchBondABI_V_2_4_1,\n functionName: 'redeem',\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'redeemLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClaim = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'withdraw',\n args: [userBill?.yieldData?.claimableRewards, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClick = () => {\n if (hasRedeemed) {\n handleClaim()\n } else {\n handleRedeemBond()\n }\n }\n\n const handleModalClose = useCallback(() => {\n console.log('refetch!')\n refetch()\n setTimeout(() => onDismiss?.(), 1500)\n }, [refetch, onDismiss])\n\n const [onOpenUnstakeModal] = useModal(\n <UnstakeModalYield userBill={userBill} onSuccessFullTx={handleModalClose} />,\n false,\n false,\n `unstakeModalYield${userBill?.contractAddress[userBill?.chainId]}`,\n )\n\n useEffect(() => {\n if (isSuccess) {\n console.log('refetch!')\n refetch()\n }\n }, [isSuccess, refetch])\n\n return (\n <Modal className=\"ape:w-[400px] ape:[overflow-y:unset]! ape:bg-white2 ape:p-0 ape:top-[56%]\" onDismiss={onDismiss}>\n <Flex className=\"ape:flex-col ape:rounded-normal ape:relative ape:bg-white2 ape:p-[20px]\">\n <Flex className=\"ape:flex-col\">\n <YourBondModalHeader userBill={userBill} onDismiss={onDismiss} />\n <Flex className=\"ape:mt-[10px] ape:flex-col ape:gap-[10px]\">\n <Flex className=\"ape:w-full ape:gap-[15px] ape:relative\">\n <Flex className=\"ape:bg-white3 ape:rounded-normal ape:justify-between ape:p-[10px] ape:w-[65%] ape:items-center ape:text-[14px]\">\n <Flex>Deposit</Flex>\n <Flex className=\"ape:items-center ape:gap-[5px]\">\n {saleFinalized && hasRedeemed ? (\n <>\n <TokenImage symbol={userBill?.underlyingEarnToken?.symbol} size={18} />\n {formatNumberSI(depositedAssets)}\n <span className=\"ape:text-[12px]\" style={{ color: 'var(--ape-color-text-disabled-button)' }}>\n (${formatNumberSI(depositedAssetsUSD)})\n </span>\n </>\n ) : (\n <>\n <TokenImage symbol={userBill?.lpToken.symbol} size={18} />\n {formatNumberSI(depositUSD)}\n </>\n )}\n </Flex>\n </Flex>\n <Flex className=\"ape:absolute ape:top-1/2 ape:left-[65%] ape:-translate-y-1/2 ape:-translate-x-1/2\">\n <Arrow direction=\"right\" width={'5px'} />\n </Flex>\n <Flex className=\"ape:bg-white3 ape:rounded-normal ape:justify-between ape:p-[10px] ape:w-[34%] ape:items-center ape:text-[14px]\">\n <Flex>APR</Flex>\n <Flex className=\"ape:font-bold\" style={{ color: 'var(--ape-color-success)' }}>\n {userBill?.yieldData?.apr?.toFixed()}%\n </Flex>\n </Flex>\n </Flex>\n <Flex className=\"ape:flex-col ape:text-[12px] ape:font-normal\">\n <Flex className=\"ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white4 ape:h-[26px] ape:rounded-[10px_10px_0_0]\">\n {hasRedeemed ? (\n <>\n <Flex className=\"ape:items-center ape:gap-[5px]\">\n <Flex className=\"ape:opacity-60\">Vault Ends</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the date when reward distribution finishes.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon ape:text-white ape:font-normal ape:text-[12px]\">\n <QuestionCircle width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex className=\"ape:items-center\">\n {formatUTCDate(new Date((userBill?.yieldData?.rewardDistributionEnd ?? 0) * 1000))}\n </Flex>\n </>\n ) : (\n <>\n <Flex className=\"ape:items-center ape:gap-[5px]\">\n <Flex className=\"ape:opacity-60\">Yield starts in</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Time left for the vault to start accruing rewards.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon ape:text-white ape:font-normal ape:text-[12px]\">\n <QuestionCircle width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n {endTimeFinished && !canRedeem ? (\n 'Soon...'\n ) : canRedeem ? (\n 'Activate Yield'\n ) : (\n <Flex className=\"ape:items-center ape:gap-[5px]\">\n {redeemableInLong}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex onClick={() => setUseLocal(!useLocal)} className=\"ape:cursor-pointer\">\n Claimable at{' '}\n {formatUTCDate(new Date((userBill?.redeemTime ?? 0) * 1000), false, useLocal)}{' '}\n {useLocal ? 'Local' : 'UTC'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Flex className=\"block-header icon ape:text-white ape:font-normal ape:text-[12px]\">\n <QuestionCircle width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n )}\n </>\n )}\n </Flex>\n <Flex className=\"ape:w-full ape:justify-between ape:items-center ape:p-[4px_10px] ape:bg-white3 ape:h-[26px]\">\n <Flex className=\"ape:items-center ape:gap-[5px]\">\n <Flex className=\"ape:opacity-60\">Claimable Rewards</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Amount of tokens that can be claimed in this moment</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon ape:text-white ape:font-normal ape:text-[12px]\">\n <QuestionCircle width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex className=\"ape:items-center\">\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text weight={700} className=\"ape:ml-[10px]\" size=\"12px\">\n {formatNumberSI(claimableRewards, 4)}\n </Text>\n <Text weight={400} className=\"ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!\">\n (${formatNumberSI(claimableRewardsUSD)})\n </Text>\n </Flex>\n </Flex>\n <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]\">\n <Flex className=\"ape:items-center ape:gap-[5px]\">\n <Flex className=\"ape:opacity-60\">Claimed </Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimed}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon ape:text-white ape:font-normal ape:text-[12px]\">\n <QuestionCircle width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex className=\"ape:items-center\">\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text weight={700} className=\"ape:ml-[10px]\" size=\"12px\">\n {formatNumberSI(userBill?.yieldData?.claimed, 4)}\n </Text>\n <Text weight={400} className=\"ape:ml-[10px] ape:opacity-60 ape:text-[10px]! ape:md:text-[12px]!\">\n (${formatNumberSI(claimedUSD)})\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Flex className=\"ape:w-full ape:justify-between ape:gap-[10px] ape:md:gap-[15px] ape:h-[40px]\">\n <Button\n className=\"ape:w-[65%]\"\n disabled={!saleFinalized || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n onClick={() => {\n if (chainId !== userBill?.chainId) {\n switchChainAsync({ chainId: userBill?.chainId! })\n .then(() => {\n handleClick()\n })\n .catch()\n } else {\n handleClick()\n }\n }}\n >\n {canRedeem\n ? 'Activate yield'\n : hasRedeemed\n ? 'Claim rewards'\n : `Claimable ${endTimeFinished && !saleFinalized ? 'soon' : `in ${redeemableInShort}`}`}\n </Button>\n <Button\n className=\"ape:w-[34%]\"\n disabled={!saleFinalized || !hasRedeemed}\n variant=\"secondary\"\n onClick={onOpenUnstakeModal}\n >\n Unstake\n </Button>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default YourBondsModalYield\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnstakeModalYield.js","sources":["../../../../../../../src/adapters/evm/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Modal from '../../../../../../components/uikit-sdk/Modal'\nimport { PreTGEUserBonds } from '../../../../../../state/bonds/useUserBondsPreTGE'\nimport Flex from '../../../../../../components/uikit-sdk/Flex'\nimport Vault_Shares_ABI from '../../../../../../config/abi/Vault_Shares.json'\nimport { useWriteContract } from 'wagmi'\nimport useEVMAccount from '../../../../useEVMAccount'\nimport { useSDKConfig } from '../../../../../../state/useSDKConfig'\nimport { usePopups } from '../../../../../../state/popups/usePopups'\nimport Checkbox from '../../../../../../components/uikit-sdk/Checkbox'\nimport Button from '../../../../../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../../../../../utils/formatNumber'\nimport { useMonitorTx } from '../../../../useMonitorTx'\n\nconst UnstakeModalYield = ({\n userBill,\n onSuccessFullTx,\n onDismiss,\n}: {\n userBill?: PreTGEUserBonds\n onSuccessFullTx?: () => void\n onDismiss?: () => void\n}) => {\n // Hooks\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n // State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [acknowledge, setAcknowledge] = useState(false)\n\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const futureRewards = userBill?.yieldData?.futureRewards ?? 0\n\n const handleUnstake = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'redeem',\n args: [userBill?.yieldData?.vaultTokenBalance, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (isSuccess) {\n onSuccessFullTx?.()\n }\n }, [isSuccess, onSuccessFullTx])\n\n return (\n <Modal\n className=\"ape:w-[400px] ape:[overflow-y:unset]! ape:bg-white2 ape:top-[56%]\"\n title={'Confirm Unstake'}\n onDismiss={onDismiss}\n >\n <Flex className=\"ape:w-full ape:flex-col\">\n <Flex className=\"ape:text-[16px] ape:md:text-[20px] ape:font-semibold ape:md:font-bold\">\n Are you sure you want to unstake?\n </Flex>\n <Flex className=\"ape:text-[14px] ape:font-normal ape:mt-[10px]\">{`You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).`}</Flex>\n <Flex className=\"ape:w-full ape:mt-[15px] ape:font-normal ape:text-[14px] ape:items-center\">\n <Checkbox checked={acknowledge} onChange={() => setAcknowledge(!acknowledge)} className=\"ape:mr-[10px]\" />I\n understand and I want to proceed to unstake.\n </Flex>\n <Flex className=\"ape:w-full ape:gap-[10px] ape:mt-[15px]\">\n <Button\n className=\"ape:w-full ape:text-[14px]! ape:h-[35px]\"\n disabled={!acknowledge || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n onClick={handleUnstake}\n >\n Unstake\n </Button>\n <Button variant=\"secondary\" className=\"ape:w-full ape:h-[35px] ape:text-[14px]!\" onClick={onDismiss}>\n Cancel\n </Button>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default UnstakeModalYield\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"YourBondModalHeader.js","sources":["../../../../../../../src/adapters/evm/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../../../../components/uikit-sdk/TokenImage'\nimport Flex from '../../../../../../components/uikit-sdk/Flex'\nimport Skeleton from '../../../../../../components/uikit-sdk/Skeleton'\nimport { PreTGEUserBonds } from '../../../../../../state/bonds/useUserBondsPreTGE'\nimport ListTag from '../../../../../../components/uikit-sdk/Tag/ListTag'\nimport Close from '../../../../../../components/uikit-sdk/Svg/Icons/Close'\n\nconst YourBondModalHeader = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Static Data\n const payoutTokenSymbol = userBill?.underlyingEarnToken?.symbol\n\n return (\n <Flex className=\"ape:w-full ape:justify-between ape:items-center\">\n <Flex className=\"ape:items-center ape:gap-[7px]\">\n {payoutTokenSymbol ? (\n <>\n <TokenImage symbol={payoutTokenSymbol} size={30} chain={userBill?.chainId} />\n <div className=\"ape:text-[16px] ape:md:text-[18px] ape:font-bold ape:opacity-70 ape:overflow-hidden ape:whitespace-nowrap ape:text-ellipsis ape:max-w-[100px]\">\n {payoutTokenSymbol}\n </div>\n <ListTag text={'Yield Bond'} />\n </>\n ) : (\n <>\n <Skeleton\n animation=\"waves\"\n style={{ width: '30px', height: '30px', borderRadius: '55px', marginRight: '10px' }}\n />\n <Skeleton animation=\"waves\" style={{ width: '100px', borderRadius: 'var(--ape-radius-normal)' }} />\n </>\n )}\n </Flex>\n <Flex className=\"svg-close ape:cursor-pointer ape:p-[2px_5px]\" onClick={onDismiss}>\n <Close width={'16px'} />\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBondModalHeader\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAA0D,KAAI;;AAE9G,IAAA,MAAM,iBAAiB,GAAG,QAAQ,EAAE,mBAAmB,EAAE,MAAM;AAE/D,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAAA,CAC/DC,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAC7C,iBAAiB,IAChBD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAA,CAAI,EAC7EA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+IAA+I,EAAA,QAAA,EAC3J,iBAAiB,EAAA,CACd,EACNA,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,YAAY,EAAA,CAAI,CAAA,EAAA,CAC9B,KAEHD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAC,QAAQ,IACP,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAA,CACnF,EACFA,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,EAAA,CAAI,CAAA,EAAA,CAClG,CACJ,EAAA,CACI,EACPA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,8CAA8C,EAAC,OAAO,EAAE,SAAS,EAAA,QAAA,EAC/EA,IAAC,KAAK,EAAA,EAAC,KAAK,EAAE,MAAM,EAAA,CAAI,EAAA,CACnB,CAAA,EAAA,CACF;AAEX;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchBondsDataPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/fetchBondsDataPreTGE.ts"],"sourcesContent":["import { BondsData } from '../../../types/bonds'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../../state/tokenPrices/useTokenPrices'\nimport multicall from '../multicall'\nimport chunk from 'lodash-es/chunk.js'\nimport launchBondsABI_V2_4_1 from '../../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../../utils/reportError'\n\nexport const fetchBondsDataPreTGE = async (\n chain: number,\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n preTGEBonds: PreTGEConfig[],\n apiUrl?: string,\n): Promise<BondsData[]> => {\n try {\n if (!preTGEBonds?.length) return []\n const data = []\n const chainId = chain as ChainId\n\n const preTGEBondsIds: number[] = []\n const launchBondsCalls = preTGEBonds.flatMap((bond) => {\n preTGEBondsIds.push(bond.index)\n const bill = bond\n return [\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'trueBillPrice',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'totalPrincipalBilled',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'finalized',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'minPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'maxPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'startVestingTimestamp',\n },\n ]\n })\n const vals = await multicall(chainId, launchBondsABI_V2_4_1, launchBondsCalls)\n const chunkSize = vals.length / preTGEBonds.length\n const chunkedBills = chunk(vals, chunkSize)\n const returnedBills = await Promise.all(\n chunkedBills?.map(async (chunk: any, index) => {\n const bondConfig = preTGEBonds?.find((bill) => bill?.index === preTGEBondsIds[index])!\n\n const [trueBillPrice, terms, totalPrincipalBilled, finalized, minPoints, maxPoints, startVestingTimestamp] =\n chunk\n const [, , vestingTerm, , , initialRelease, totalRaise, maxTotalPayout] = terms\n\n const initPrice = getBalanceNumber(\n trueBillPrice,\n bondConfig?.lpToken?.decimals?.[bondConfig?.chainId as ChainId] ?? 18,\n )\n\n const lpPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.lpToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n const earnTokenPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.earnToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n\n const principalTokenPrice = lpPrice?.toString() ?? '0'\n const payoutTokenPrice = earnTokenPrice ? earnTokenPrice?.toString() : initPrice?.toString()\n\n const bonus = Math.round((bondConfig.tgePrice! / initPrice) * 100 - 100)\n\n const endTime = parseInt(terms[0])\n const startTime = parseInt(terms[1])\n const now = Math.floor(Date.now() / 1000)\n const progress = Math.min(1, Math.max(0, (now - startTime) / (endTime - startTime)))\n const currentAPR =\n bondConfig.startAPR != null && bondConfig.endAPR != null && endTime > startTime\n ? bondConfig.startAPR + (bondConfig.endAPR - bondConfig.startAPR) * progress\n : 0\n let rewardDistributionEnd = 0\n if (bondConfig.yieldBond) {\n const calls = [\n {\n address: bondConfig.earnToken.address[bondConfig.chainId] ?? '',\n name: 'vestingEnd',\n },\n ]\n const res = await multicall(bondConfig.chainId, Vault_Shares_ABI, calls)\n rewardDistributionEnd = parseInt(res[0][0])\n }\n const data: BondsData = {\n ...bondConfig,\n initialRelease: initialRelease / 10000,\n vestingTerm: parseInt(vestingTerm),\n trueBondPrices: [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice?.toString(),\n bonus,\n bonusWithFee: bonus, // placeholder, wont be used\n discount: bonus, // placeholder, wont be used\n discountWithFee: bonus, // placeholder, wont be used\n },\n ],\n maxTotalPayout: maxTotalPayout?.toString(),\n totalPrincipalBilled: totalPrincipalBilled?.toString(),\n payoutTokenPrice,\n principalTokenPrice,\n totalRaise: totalRaise?.toString(),\n finalized: finalized[0],\n minPoints: minPoints.toString(),\n maxPoints: maxPoints.toString(),\n startVestingTimestamp: startVestingTimestamp?.toString(),\n initTime: { [bondConfig.chainId]: parseInt(terms[1]) },\n finishTime: parseInt(terms[0]),\n initPrice,\n soldOut: finalized[0] || (parseInt(terms[0]) ?? 0) < Date.now() / 1000 || bondConfig.soldOut,\n yieldData: {\n apr: bondConfig.finalAPR || currentAPR,\n rewardDistributionEnd,\n },\n }\n return data\n }),\n )\n data.push(returnedBills)\n return data.flat()\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getLaunchBondsPublicData', preTGEBonds, chain, e },\n })\n return []\n }\n}\n"],"names":["launchBondsABI_V2_4_1"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchUserBondsPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/fetchUserBondsPreTGE.ts"],"sourcesContent":["import { ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport launchBondsABI_V2_4_1 from '../../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../../utils/reportError'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { TokenPrices } from '../../../state/tokenPrices/useTokenPrices'\nimport type { AccountInfo, PreTGEUserBonds } from '../../../state/bonds/useUserBondsPreTGE'\nimport multicall from '../multicall'\n\n/** The EVM account's PreTGE / launch bonds and Yield positions (on-chain reads). Used by core's useUserBondsPreTGE. */\nexport const fetchUserBondsPreTGE = async (\n chains: number[],\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n preTGEList: PreTGEConfig[],\n account: string,\n apiUrl: string,\n): Promise<PreTGEUserBonds[]> => {\n try {\n const preTGEBonds = preTGEList.filter((bond) => chains.includes(bond.chainId))\n const results: (PreTGEUserBonds | undefined)[] = await Promise.all(\n preTGEBonds.map(async (bond): Promise<PreTGEUserBonds | undefined> => {\n try {\n const calls = [\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'getBillIds',\n params: [account],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'accountInfo',\n params: [account],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'hasRedeemed',\n params: [account],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'finalized',\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'trueBillPrice',\n },\n ]\n\n const res = await multicall(bond.chainId, launchBondsABI_V2_4_1, calls)\n const billId = res?.[0]?.[0]?.[0]?.toString()\n\n let userOwnedBillsData\n if (billId) {\n const billDataCalls: any = [\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'getBillInfo',\n params: [billId],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'billNft',\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'claimablePayout',\n params: [billId],\n },\n ]\n const billData = await multicall(bond.chainId, launchBondsABI_V2_4_1, billDataCalls)\n userOwnedBillsData = {\n address: bond.contractAddress[bond.chainId] ?? '',\n id: billId,\n payout: (\n BigInt(billData[0][0]?.payout.toString()) - BigInt(billData[0][0]?.payoutClaimed.toString())\n ).toString(),\n payoutClaimed: billData[0][0]?.payoutClaimed.toString(),\n billNftAddress: billData[1][0]?.toString(),\n // vesting: billData[0][0]?.vesting?.toString(),\n vestingTerm: billData[0][0]?.vestingTerm?.toString(),\n lastBlockTimestamp: billData[0][0]?.lastClaimTimestamp?.toString(),\n vestingStartTimestamp: billData[0][0]?.vestingStartTimestamp?.toString(),\n truePricePaid: billData[0][0]?.truePricePaid?.toString(),\n pendingRewards: billData[2][0]?.toString(),\n }\n }\n const accountInfo: AccountInfo = {\n hasRedeemed: res[2][0],\n payout: res[1][0].toString(),\n depositAmount: res[1][1].toString(),\n payoutClaimed: res[1][2].toString(),\n vesting: res[1][3].toString(),\n vestingTerm: res[1][4].toString(),\n vestingStartTimestamp: res[1][5].toString(),\n lastClaimTimestamp: res[1][6].toString(),\n truePricePaid: res[1][7].toString(),\n }\n\n const finalized: boolean = res[3][0]\n const terms = res[4]\n const endTime = parseInt(terms[0])\n const startTime = parseInt(terms[1])\n const vestingTerm = parseInt(res[4][2])\n const trueBillPrice = res[5]?.[0]?.toString()\n const initPrice = getBalanceNumber(trueBillPrice, bond?.lpToken?.decimals?.[bond?.chainId] as number)\n const initialRelease = terms?.[5]\n const earnTokenAddress = bond.yieldBond\n ? bond.underlyingEarnToken?.address[bond.chainId]?.toLowerCase()\n : bond.earnToken.address[bond.chainId]?.toLowerCase()\n const earnTokenPrice = tokenPrices?.[bond?.chainId]?.find(\n (tokenPrice) => tokenPrice.tokenAddress?.toLowerCase() === earnTokenAddress,\n )?.price\n\n const now = Math.floor(Date.now() / 1000)\n const progress = Math.min(1, Math.max(0, (now - startTime) / (endTime - startTime)))\n const currentAPR =\n bond.startAPR != null && bond.endAPR != null && endTime > startTime\n ? bond.startAPR + (bond.endAPR - bond.startAPR) * progress\n : 0\n const apr = bond.finalAPR || currentAPR\n\n let depositedAssets = 0\n let claimableRewards = '0'\n let futureRewards = 0\n let rewardDistributionEnd = 0\n let claimed = 0\n let vaultTokenBalance = '0'\n if (bond.yieldBond) {\n const calls = [\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'maxWithdraw',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'pendingRewards',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'claimedAssets',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'vestingEnd',\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'balanceOf',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'earned',\n params: [account],\n },\n ]\n const res = await multicall(bond.chainId, Vault_Shares_ABI, calls)\n depositedAssets = getBalanceNumber(res[0][0].toString())\n futureRewards = getBalanceNumber(res[1][0].toString())\n claimed = getBalanceNumber(res[2][0].toString())\n rewardDistributionEnd = parseInt(res[3][0])\n vaultTokenBalance = res[4][0].toString()\n claimableRewards = res[5][0].toString()\n }\n\n return {\n ...bond,\n accountInfo,\n userOwnedBillsData,\n endTime,\n finalized,\n vestingTerm,\n initPrice,\n initialRelease: initialRelease / 10000,\n earnTokenPrice: bond.yieldBond\n ? earnTokenPrice\n : !earnTokenPrice || earnTokenPrice === 0\n ? initPrice\n : earnTokenPrice,\n yieldData: {\n apr,\n claimableRewards: accountInfo.hasRedeemed ? claimableRewards : '0',\n rewardDistributionEnd,\n claimed,\n depositedAssets,\n vaultTokenBalance,\n futureRewards,\n },\n }\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'fetchPreTGEUserBonds', bond, e },\n account,\n chainId: bond.chainId,\n })\n return undefined\n }\n }),\n )\n\n return results.filter((bond) => bond !== undefined)\n } catch (e) {\n console.log(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'fetchPreTGEUserBonds', e },\n account,\n })\n return []\n }\n}\n"],"names":["launchBondsABI_V2_4_1"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAllowance.js","sources":["../../../src/adapters/evm/useAllowance.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport multicall, { Call } from './multicall'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport ERC_20_ABI from '../../config/abi/erc20.json'\nimport USDT_ETH_ABI from '../../config/abi/usdtETH.json'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useWriteContract } from 'wagmi'\nimport { useMonitorTx } from './useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../../state/useSDKConfig'\n\n/**\n * useAllowance hook: fetches the amount approved by the user for a given token\n * useApproval hook: returns the approval state (not approved, pending or approved) and a function to approve on chain\n * getTokenAllowance function fetches the allowance on chain\n */\n\nexport enum ApprovalState {\n NOT_APPROVED = 'NOT_APPROVED',\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\nexport default function useAllowance(\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): UseQueryResult<number | null> {\n return useQuery({\n queryKey: [\n QUERY_KEYS.ALLOWANCE,\n account ?? '',\n chainId,\n currency === 'NATIVE' ? currency : currency?.symbol,\n spender,\n ],\n queryFn: () => getTokenAllowance(currency, spender, account, chainId),\n refetchInterval: 10000, // i.e. 10 sec\n refetchOnWindowFocus: false,\n retry: 1,\n })\n}\n\nexport const getTokenAllowance = async (\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): Promise<number | null> => {\n if (currency === 'NATIVE') return null\n // if (!account) {\n // console.log('Account disconnected')\n // } else if (!currency) {\n // console.log('No currency selected')\n // } else if (!chainId) {\n // console.log('No chainId selected')\n // } else if (!spender) {\n // console.log('No spender selected')\n // }\n if (!account || !currency || !chainId || !spender) return null\n const calls: Call[] = [\n {\n address: currency.address[chainId]!,\n name: 'allowance',\n params: [account, spender],\n },\n ]\n const data = await multicall(chainId, erc20ABI, calls)\n return getBalanceNumber(data[0][0] ?? 0, currency.decimals![chainId]!)\n}\n\nexport const useApproval = (\n amount: string,\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): [ApprovalState, () => Promise<string | null | undefined>] => {\n const apiUrl = useURLByEnvironment('apiV2')\n const [confirmingTxOnWallet, setConfirmingTxOnWallet] = useState(false)\n const { data: allowance, refetch } = useAllowance(currency, spender, account, chainId)\n\n const { writeContractAsync, data: txHash, reset } = useWriteContract()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(txHash, chainId as ChainId)\n const { addToastError } = usePopups()\n const confirmingTxOnChain = isConfirming && !isConfirmed\n\n useEffect(() => {\n if (txHash && isConfirmed) {\n setTimeout(() => {\n refetch()\n console.log('refetch allowance')\n reset()\n }, 1500)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, confirmingTxOnChain, isConfirmed])\n\n const handleApprove = useCallback(async () => {\n if (!chainId || !amount || currency === 'NATIVE' || !currency) return null\n const decimals = currency.decimals![chainId]\n const tokenAddress = currency.address[chainId] as `0x${string}`\n if (!decimals || !tokenAddress) return null\n try {\n const bigishAmount = convertToBigish(amount, decimals)\n setConfirmingTxOnWallet(true)\n const hash = await writeContractAsync({\n address: tokenAddress,\n abi:\n tokenAddress?.toLowerCase() === '0xdAC17F958D2ee523a2206206994597C13D831ec7'.toLowerCase()\n ? USDT_ETH_ABI\n : ERC_20_ABI,\n functionName: 'approve',\n args: [spender, bigishAmount],\n account: account as `0x${string}`,\n chain: chainId as any,\n })\n setConfirmingTxOnWallet(false)\n // Adding a delay as I suspect RPCs need to catch up as the txs are indexed onchain too fast\n await new Promise((resolve) => setTimeout(resolve, 1500))\n return hash\n } catch (error: any) {\n setConfirmingTxOnWallet(false)\n console.error('Approval failed:', error)\n addToastError(error?.shortMessage || error?.details || error?.message)\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'approval', tokenAddress: tokenAddress, spenderAddress: spender, error },\n chainId,\n account: account!,\n })\n throw error\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [amount, currency, chainId])\n\n let approvalState: ApprovalState = ApprovalState.NOT_APPROVED\n\n if (allowance && amount) {\n approvalState = allowance >= parseFloat(amount) ? ApprovalState.APPROVED : ApprovalState.NOT_APPROVED\n }\n if (currency === 'NATIVE') {\n approvalState = ApprovalState.APPROVED\n }\n if (confirmingTxOnChain || confirmingTxOnWallet) {\n approvalState = ApprovalState.PENDING\n }\n\n return [approvalState ?? ApprovalState.NOT_APPROVED, handleApprove]\n}\n"],"names":["ERC_20_ABI"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEVMAccount.js","sources":["../../../src/adapters/evm/useEVMAccount.ts"],"sourcesContent":["import { useAccount } from 'wagmi'\nimport { useSDKConfig } from '../../state/useSDKConfig'\n\nconst useEVMAccount = () => {\n const SDKConfig = useSDKConfig()\n const account = useAccount()\n\n return {\n ...account,\n address:\n SDKConfig.evmAddress && account.address\n ? (SDKConfig.evmAddress as `0x${string}` | undefined)\n : (account.address as `0x${string}` | undefined),\n }\n}\n\nexport default useEVMAccount\n"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GAAG,MAAK;AACzB,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE;IAE5B,OAAO;AACL,QAAA,GAAG,OAAO;AACV,QAAA,OAAO,EACL,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC;cAC3B,SAAS,CAAC;cACV,OAAO,CAAC,OAAqC;KACrD;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMonitorTx.js","sources":["../../../src/adapters/evm/useMonitorTx.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { useWaitForTransactionReceipt } from 'wagmi'\nimport { useEffect } from 'react'\nimport { usePopups } from '../../state/popups/usePopups'\nimport type { TransactionReceipt } from 'viem'\n\nexport const useMonitorTx = (\n txHash?: string | null,\n chainId?: ChainId,\n): { isLoading: boolean; isSuccess: boolean; data: TransactionReceipt | undefined } => {\n const { addToastError, addToastSuccess } = usePopups()\n const transactionReceipt = useWaitForTransactionReceipt({\n confirmations: 0,\n chainId: chainId,\n hash: txHash as `0x${string}`,\n })\n const { isLoading, isSuccess: isConfirmed, error, isError, data } = transactionReceipt ?? {}\n\n useEffect(() => {\n if (txHash && isError) {\n addToastError(error.message, txHash, chainId)\n }\n if (txHash && isConfirmed) {\n addToastSuccess(txHash, chainId)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, isError, isConfirmed, isLoading])\n\n return { isLoading: txHash ? isLoading : false, isSuccess: txHash ? isConfirmed : false, data }\n}\n"],"names":[],"mappings":";;;;MAMa,YAAY,GAAG,CAC1B,MAAsB,EACtB,OAAiB,KACmE;IACpF,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE;IACtD,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AACtD,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,MAAuB;AAC9B,KAAA,CAAC;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,IAAI,EAAE;IAE5F,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,IAAI,OAAO,EAAE;YACrB,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QAC/C;AACA,QAAA,IAAI,MAAM,IAAI,WAAW,EAAE;AACzB,YAAA,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC;;IAEF,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE;AACjG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/adapters/evm/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token, Wrappers } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from '../../state/zap/getChainParam'\nimport { apiPost } from '../../utils/httpClient'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../../state/slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { SOUL_ZAP_API, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { formatUnits, parseUnits } from '../../utils/fixedPoint'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const isZapSupported = zapSupported.includes(bond?.chainId as ZapSupportedChainId)\n const debouncedInput = useDebounce(typedValue, 500)\n const isDebouncing = typedValue !== debouncedInput\n const { evmSlippage: slippage } = useSlippage()\n const SDKConfig = useSDKConfig()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n const bigishInputAmount = parseUnits(debouncedInput ?? '0', inputCurrencyDecimals ?? 18).toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n isZapSupported\n ) {\n if (principalToken.liquidityWrapper && principalToken.liquidityWrapper === Wrappers.Steer) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n integrator: 'apebond',\n lpData: {\n lpType: 'steer',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n lpAddress: vault,\n periphery: '0xCEBF1A54A9Ce703FC80967760b5A6cbDb4111099',\n slippage,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n }\n // a.k.a if it is principal token\n if (inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n integrator: 'apebond',\n lpData: {\n lpType: 'none',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n integrator: 'apebond',\n lpData: {\n lpType:\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n ? 'none'\n : lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n slippage: slippage,\n lpAddress: isReserveBond ? undefined : vault,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [bigishInputAmount, principalContractAddress, chainName, account, vault, lpType, router, slippage])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await apiPost<any>(SOUL_ZAP_API, zapInputData)\n return response?.result?.data ?? response\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n staleTime: 60000,\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD =\n Number(formatUnits(toToken0Estimate ?? '0', toToken0?.decimals![chainId] ?? 18)) * (toToken0Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = Number(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD =\n Number(formatUnits(toToken1Estimate ?? '0', toToken1?.decimals![chainId] ?? 18)) * (toToken1Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = Number(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD + toToken1USD // youSpendUSD\n const estimatedDepositAmount = youSpendUSD / Number(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const isPrincipalToken =\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n\n const estimatedDepositAmountToReturn =\n isWrap || isPrincipalToken\n ? (Number(typedValue || '0') * ((100 - bond?.tierBoostRate!) / 100)).toString()\n : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n // DEBUG: log tierOptimization when present\n if (response?.protocolQuote?.tierOptimization) {\n const tier = response.protocolQuote.tierOptimization\n const decimals = principalToken?.decimals?.[chainId] ?? 18\n const cost = Number(formatUnits(tier.tierCost, decimals))\n const input = Number(formatUnits(tier.bondInput, decimals))\n const profit = Number(formatUnits(tier.profit, decimals))\n console.log('[ZAP] tierOptimization:', {\n tier: `${tier.previousTier} → ${tier.newTier}`,\n cost: cost.toFixed(6),\n bondInput: input.toFixed(6),\n profit: profit.toFixed(6),\n })\n }\n\n const zapLoading = isDebouncing || isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTierProofSignature.js","sources":["../../../src/adapters/evm/useTierProofSignature.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { apiPost } from '../../utils/httpClient'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../utils/reportError'\nimport useEVMAccount from './useEVMAccount'\n\nexport default function useTierProofSignature(\n bondAddress?: string,\n chainId?: ChainId,\n isUserRestricted?: boolean,\n): UseQueryResult<string | null> {\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const apiAddress = SDKConfig?.urls?.apiV2\n\n return useQuery({\n queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],\n queryFn: () => getTierProofSig(apiAddress, account!, bondAddress!, chainId!),\n refetchOnWindowFocus: false,\n retry: 1,\n refetchInterval: 1800000, // 30 mins\n enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,\n })\n}\n\nconst getTierProofSig = async (\n apiAddress: string,\n account: string,\n bondAddress: string,\n chainId: ChainId,\n): Promise<string | null> => {\n try {\n const requestBody = {\n user: account, // Use the account as the \"user\" parameter\n bond: bondAddress, // Use the bondAddress\n chainId: chainId, // Use the specified chainId (Polygon)\n }\n\n const response = await apiPost<{ tierProofSignature: string }>(`${apiAddress}/tier-signature`, requestBody)\n return response.tierProofSignature\n } catch (e) {\n reportError({\n apiUrl: apiAddress,\n error: e,\n extraInfo: { type: 'getTierProofSig', bondAddress, e },\n chainId,\n account,\n })\n return null\n }\n}\n"],"names":[],"mappings":";;;;;;;AAQc,SAAU,qBAAqB,CAC3C,WAAoB,EACpB,OAAiB,EACjB,gBAA0B,EAAA;IAE1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AAC5C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;AAEzC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACtF,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,UAAU,EAAE,OAAQ,EAAE,WAAY,EAAE,OAAQ,CAAC;AAC5E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,OAAO;QACxB,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,gBAAgB;AAC5G,KAAA,CAAC;AACJ;AAEA,MAAM,eAAe,GAAG,OACtB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,OAAgB,KACU;AAC1B,IAAA,IAAI;AACF,QAAA,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;SACjB;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAiC,CAAA,EAAG,UAAU,CAAA,eAAA,CAAiB,EAAE,WAAW,CAAC;QAC3G,OAAO,QAAQ,CAAC,kBAAkB;IACpC;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;AACV,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,EAAE;YACtD,OAAO;YACP,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AACF,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LifiModal.js","sources":["../../../src/adapters/lifi/LifiModal.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport Spinner from '../../components/uikit-sdk/Spinner'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Text from '../../components/uikit-sdk/Text'\nimport type { BridgeModalProps } from '../types'\n\n// The LiFi widget is about 1 MB gzipped, so it's loaded on demand: the modal frame opens instantly and the widget\n// streams in. The promise is shared, so `lifiAdapter.preload()` (hover/focus on the bridge buttons) and the modal\n// reuse one download; a failed download is forgotten so the next attempt retries it.\nlet widgetModule: Promise<typeof import('./LifiWidgetContent')> | null = null\n\nexport const loadLifiWidget = () => {\n if (!widgetModule) {\n widgetModule = import('./LifiWidgetContent').catch((error) => {\n widgetModule = null\n throw error\n })\n }\n return widgetModule\n}\n\n// React.lazy caches a rejection forever, so retrying needs a new lazy component.\nconst createLazyWidget = () => React.lazy(loadLifiWidget)\nlet LazyLifiWidget = createLazyWidget()\n\n// Roughly the compact widget's size, so the modal doesn't jump when it loads.\nconst WIDGET_BOX = 'ape:flex ape:flex-col ape:items-center ape:justify-center ape:w-[416px] ape:max-w-full ape:min-h-[480px]'\n\nclass WidgetErrorBoundary extends React.Component<\n { onRetry: () => void; children: React.ReactNode },\n { failed: boolean }\n> {\n state = { failed: false }\n\n static getDerivedStateFromError() {\n return { failed: true }\n }\n\n componentDidCatch(error: unknown) {\n console.error('[ApeBond SDK] The LiFi widget failed to load', error)\n }\n\n render() {\n if (!this.state.failed) return this.props.children\n return (\n <div className={`${WIDGET_BOX} ape:gap-4 ape:px-6`}>\n <Text className=\"ape:text-center\">Couldn&apos;t load Swap & Bridge. Check your connection and try again.</Text>\n <Button onClick={this.props.onRetry}>Retry</Button>\n </div>\n )\n }\n}\n\nconst LifiModal: React.FC<BridgeModalProps> = ({ bondChain, principalToken, onDismiss }) => {\n // Remounts the boundary (and the new lazy component) on retry.\n const [attempt, setAttempt] = useState(0)\n\n const retry = () => {\n LazyLifiWidget = createLazyWidget()\n setAttempt((n) => n + 1)\n }\n\n return (\n <Modal className=\"lifi-bridge-modal ape:justify-center ape:items-center ape:p-0! ape:h-fit!\">\n <ModalHeader className=\"ape:px-6 ape:pt-4\" onDismiss={onDismiss} hideDivider>\n Swap & Bridge with LIFI\n </ModalHeader>\n <WidgetErrorBoundary key={attempt} onRetry={retry}>\n <React.Suspense\n fallback={\n <div className={WIDGET_BOX}>\n <Spinner size={40} title=\"Loading Swap & Bridge\" />\n </div>\n }\n >\n <LazyLifiWidget bondChain={bondChain} principalToken={principalToken} />\n </React.Suspense>\n </WidgetErrorBoundary>\n </Modal>\n )\n}\n\nexport default LifiModal\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAQA;AACA;AACA;AACA,IAAI,YAAY,GAAyD,IAAI;AAEtE,MAAM,cAAc,GAAG,MAAK;IACjC,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,OAAO,wBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;YAC3D,YAAY,GAAG,IAAI;AACnB,YAAA,MAAM,KAAK;AACb,QAAA,CAAC,CAAC;IACJ;AACA,IAAA,OAAO,YAAY;AACrB;AAEA;AACA,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACzD,IAAI,cAAc,GAAG,gBAAgB,EAAE;AAEvC;AACA,MAAM,UAAU,GAAG,0GAA0G;AAE7H,MAAM,mBAAoB,SAAQ,KAAK,CAAC,SAGvC,CAAA;AAHD,IAAA,WAAA,GAAA;;AAIE,QAAA,IAAA,CAAA,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;IAmB3B;AAjBE,IAAA,OAAO,wBAAwB,GAAA;AAC7B,QAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;IACzB;AAEA,IAAA,iBAAiB,CAAC,KAAc,EAAA;AAC9B,QAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;IACtE;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;AAClD,QAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAG,UAAU,CAAA,mBAAA,CAAqB,EAAA,QAAA,EAAA,CAChDC,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,mEAAA,EAAA,CAA8E,EAC/GA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAA,QAAA,EAAA,OAAA,EAAA,CAAgB,CAAA,EAAA,CAC/C;IAEV;AACD;AAED,MAAM,SAAS,GAA+B,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,KAAI;;IAEzF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAK;QACjB,cAAc,GAAG,gBAAgB,EAAE;QACnC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,QACED,IAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,2EAA2E,EAAA,QAAA,EAAA,CAC1FC,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAE9D,EACdA,IAAC,mBAAmB,EAAA,EAAe,OAAO,EAAE,KAAK,EAAA,QAAA,EAC/CA,GAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,EACb,QAAQ,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,EAAA,QAAA,EACxBA,IAAC,OAAO,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,uBAAuB,GAAG,EAAA,CAC/C,EAAA,QAAA,EAGRA,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAA,CAAI,GACzD,EAAA,EATO,OAAO,CAUX,CAAA,EAAA,CAChB;AAEZ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LifiWidgetContent.js","sources":["../../../src/adapters/lifi/LifiWidgetContent.tsx"],"sourcesContent":["// The only module that imports @lifi/widget. LifiModal loads it with a dynamic import, so the widget (and the\n// packages it pulls in) is only downloaded when the \"Swap & Bridge\" modal opens. Keep it that way: a static import of\n// this file or of @lifi/widget from anywhere else puts the widget back in every consumer's entry chunk.\nimport React from 'react'\nimport { LiFiWidget } from '@lifi/widget'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\n// LiFi identifies Solana with its own chain id instead of ApeBond's ChainId.SOL.\nconst LIFI_SOLANA_CHAIN_ID = 1151111081099710\n\nconst toLifiChainId = (chainId: ChainId): number => (chainId === ChainId.SOL ? LIFI_SOLANA_CHAIN_ID : chainId)\n\nconst getFees = async (fromTokenSymbol: string, toTokenSymbol: string): Promise<number> => {\n const stableCoins = ['FRAX', 'USDC', 'USDT', 'DAI', 'BUSD', 'TUSD', 'USDD', 'FDUSD']\n const isFromStable = stableCoins.includes(fromTokenSymbol)\n const isToStable = stableCoins.includes(toTokenSymbol)\n if (toTokenSymbol.toLowerCase() === 'abond') {\n return 0\n }\n return isFromStable && isToStable ? 0.001 : 0.003\n}\n\nexport interface LifiWidgetContentProps {\n bondChain: ChainId\n principalToken?: string\n}\n\nconst LifiWidgetContent: React.FC<LifiWidgetContentProps> = ({ bondChain, principalToken }) => {\n const config = {\n appearance: 'dark' as const,\n loadFonts: false,\n theme: {\n typography: {\n fontFamily: 'Poppins',\n },\n colorSchemes: {\n dark: {\n palette: {\n background: {\n default: '#161420',\n paper: '#1F1D29',\n },\n primary: {\n main: '#6560C5',\n },\n secondary: {\n main: '#6560C5',\n },\n },\n },\n },\n container: {\n boxShadow: '0px 8px 32px rgba(0, 0, 0, 0.08)',\n borderRadius: '16px',\n },\n },\n // fromToken: 'BNB',\n // fromChain: ChainId.BSC,\n toChain: toLifiChainId(bondChain),\n toToken: principalToken,\n sdkConfig: {\n rpcUrls: {\n [LIFI_SOLANA_CHAIN_ID]: [\n 'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',\n ],\n },\n },\n variant: 'compact' as const,\n integrator: 'apeswap',\n feeConfig: {\n calculateFee: async (params: any) => {\n return getFees(params.fromToken.symbol, params.toToken.symbol)\n },\n },\n }\n\n return <LiFiWidget {...config} />\n}\n\nexport default LifiWidgetContent\n"],"names":["_jsx"],"mappings":";;;;AAOA;AACA,MAAM,oBAAoB,GAAG,gBAAgB;AAE7C,MAAM,aAAa,GAAG,CAAC,OAAgB,MAAc,OAAO,KAAK,OAAO,CAAC,GAAG,GAAG,oBAAoB,GAAG,OAAO,CAAC;AAE9G,MAAM,OAAO,GAAG,OAAO,eAAuB,EAAE,aAAqB,KAAqB;AACxF,IAAA,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACpF,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;AACtD,IAAA,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AAC3C,QAAA,OAAO,CAAC;IACV;IACA,OAAO,YAAY,IAAI,UAAU,GAAG,KAAK,GAAG,KAAK;AACnD,CAAC;AAOD,MAAM,iBAAiB,GAAqC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,KAAI;AAC5F,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,UAAU,EAAE,MAAe;AAC3B,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE;AACV,gBAAA,UAAU,EAAE,SAAS;AACtB,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE;AACP,wBAAA,UAAU,EAAE;AACV,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACD,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACD,wBAAA,SAAS,EAAE;AACT,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,SAAS,EAAE,kCAAkC;AAC7C,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA;AACF,SAAA;;;AAGD,QAAA,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;AACjC,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE;gBACP,CAAC,oBAAoB,GAAG;oBACtB,oGAAoG;AACrG,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,SAAkB;AAC3B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,SAAS,EAAE;AACT,YAAA,YAAY,EAAE,OAAO,MAAW,KAAI;AAClC,gBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChE,CAAC;AACF,SAAA;KACF;AAED,IAAA,OAAOA,GAAA,CAAC,UAAU,EAAA,EAAA,GAAK,MAAM,GAAI;AACnC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionsSolana.js","sources":["../../../src/adapters/solana/ActionsSolana.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { claimable } from '../../utils/displayHelpers'\nimport { UserBill } from '../../types/yourbonds'\nimport useSOLAccount from './useSOLAccount'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { Connection, PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js'\nimport { ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\nimport { CLAIM_DISCRIMINATOR, PROGRAM_ID } from './solanaConstants'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { getRPC } from '../../config/constants/networks'\nimport useUserBonds from '../../state/bonds/useUserBonds'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport { derivePda } from './derivePda'\nimport { reportError } from '../../utils/reportError'\nimport { getAtaWithCreateInstruction, getTokenProgramForMint } from './solanaAtaHelper'\nimport Button from '../../components/uikit-sdk/Button/Button'\n\nconst ActionsSolana = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const SDKConfig = useSDKConfig()\n const { publicKey: accountSolana, signTransaction } = useSOLAccount()\n const { refetch } = useUserBonds()\n const { addToastError, addToastSuccess } = usePopups()\n const { data: liveBonds } = useBondsData()\n\n // State\n const [loadingTx, setLoadingTx] = useState(false)\n\n // Static Data\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const connection = new Connection(getRPC(ChainId.SOL), 'confirmed')\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async () => {\n // Early return guard - prevent double execution\n if (loadingTx || !accountSolana || !userBill) return\n\n try {\n setLoadingTx(true)\n const earnTokenAddress = userBill?.bond?.earnToken?.address?.[userBill?.bond?.chainId]\n const contractAddress = userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]\n\n if (!earnTokenAddress || !userBill.asset || !contractAddress) return\n\n const payoutMint = new PublicKey(earnTokenAddress)\n const bondIssuancePda = new PublicKey(contractAddress)\n const bondPricingPda = derivePda('bond_pricing', bondIssuancePda, PROGRAM_ID)\n const nftMint = new PublicKey(userBill.asset)\n\n // Detect token program for payout mint (supports Token-2022)\n const payoutTokenProgram = await getTokenProgramForMint(connection, payoutMint)\n\n const [bondTermPda] = PublicKey.findProgramAddressSync(\n [new TextEncoder().encode('bond_term'), bondIssuancePda.toBuffer()],\n PROGRAM_ID,\n )\n\n const [bondPda] = PublicKey.findProgramAddressSync(\n [new TextEncoder().encode('bond'), bondIssuancePda.toBuffer(), nftMint.toBuffer()],\n PROGRAM_ID,\n )\n\n // Get user payout ATA and creation instruction if needed\n const { address: userPayoutAta, createInstruction: createAtaIx } = await getAtaWithCreateInstruction(\n connection,\n payoutMint,\n accountSolana,\n )\n\n // Treasury ATA (standard associated token account for bond issuance PDA)\n const { address: treasuryAta, createInstruction: createTreasuryAtaIx } = await getAtaWithCreateInstruction(\n connection,\n payoutMint,\n bondIssuancePda,\n accountSolana,\n )\n\n // Build keys list\n const keys = [\n { pubkey: bondPda as PublicKey, isSigner: false, isWritable: true },\n { pubkey: bondTermPda as PublicKey, isSigner: false, isWritable: false },\n { pubkey: bondIssuancePda as PublicKey, isSigner: false, isWritable: false },\n { pubkey: bondPricingPda as PublicKey, isSigner: false, isWritable: true },\n { pubkey: accountSolana as PublicKey, isSigner: true, isWritable: true }, // user\n { pubkey: nftMint as PublicKey, isSigner: false, isWritable: true },\n { pubkey: userPayoutAta as PublicKey, isSigner: false, isWritable: true },\n { pubkey: treasuryAta, isSigner: false, isWritable: true },\n { pubkey: payoutMint, isSigner: false, isWritable: false }, // payout_mint\n { pubkey: payoutTokenProgram, isSigner: false, isWritable: false }, // token_program (dynamic)\n { pubkey: ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: new PublicKey('CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d'), isSigner: false, isWritable: false }, // mplCoreProgram\n { pubkey: PROGRAM_ID, isSigner: false, isWritable: false }, // passing programId is the same as passing null\n ]\n\n // Build Claim Instruction (no args → just discriminator)\n const claimInstruction = new TransactionInstruction({\n keys,\n programId: PROGRAM_ID,\n data: CLAIM_DISCRIMINATOR,\n })\n\n // Build Transaction - include ATA creation if needed\n const transaction = new Transaction()\n if (createTreasuryAtaIx) transaction.add(createTreasuryAtaIx)\n if (createAtaIx) transaction.add(createAtaIx)\n transaction.add(claimInstruction)\n transaction.feePayer = accountSolana\n\n // Get fresh blockhash right before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('finalized')\n transaction.recentBlockhash = blockhash\n\n if (!signTransaction) return\n const signedTx = await signTransaction(transaction)\n\n // Send with better error handling\n const txHash = await connection.sendRawTransaction(signedTx.serialize(), {\n skipPreflight: false,\n preflightCommitment: 'finalized',\n maxRetries: 0, // Don't auto-retry to avoid duplicates\n })\n\n await connection.confirmTransaction(\n {\n signature: txHash,\n blockhash,\n lastValidBlockHeight,\n },\n 'confirmed',\n )\n\n const txStatus = await connection.getSignatureStatus(txHash, { searchTransactionHistory: true })\n if (txStatus?.value?.confirmationStatus === 'confirmed' || txStatus?.value?.confirmationStatus === 'finalized') {\n console.log('Tx confirmed on-chain, refetching bonds')\n refetch()\n addToastSuccess(txHash, ChainId.SOL)\n }\n } catch (error: any) {\n console.error('Claim failed:', error)\n\n // Better error messaging for duplicate transactions\n if (error?.message?.includes('already been processed')) {\n addToastError('Transaction already processed. Please wait and try again.')\n } else {\n addToastError(error?.message ?? 'Unknown error')\n }\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n account: accountSolana?.toBase58(),\n chainId: ChainId.SOL,\n extraInfo: { type: 'claim', userBill, error },\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || loadingTx || !userBill || isPendingCliff}\n load={loadingTx}\n onClick={(event) => {\n event.stopPropagation()\n if (!loadingTx) handleClaim()\n }}\n className=\"ape:text-[14px]! ape:w-full\"\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n className=\"ape:text-[14px]! ape:w-full\"\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default ActionsSolana\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}