@lombard.finance/sdk 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +59 -10
  3. package/dist/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.d.ts +5 -1
  4. package/dist/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.d.ts.map +1 -1
  5. package/dist/api.cjs +2 -0
  6. package/dist/api.cjs.map +1 -0
  7. package/dist/api.js +41 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/bridge/lib/ccip-config.d.ts.map +1 -1
  10. package/dist/bridge/lib/config.d.ts +3 -3
  11. package/dist/bridge/lib/config.d.ts.map +1 -1
  12. package/dist/bridge.cjs +2 -0
  13. package/dist/bridge.cjs.map +1 -0
  14. package/dist/bridge.js +11 -0
  15. package/dist/bridge.js.map +1 -0
  16. package/dist/btc.cjs +2 -0
  17. package/dist/btc.cjs.map +1 -0
  18. package/dist/btc.js +13 -0
  19. package/dist/btc.js.map +1 -0
  20. package/dist/chains/btc/actions/deposit/config/index.d.ts +2 -1
  21. package/dist/chains/btc/actions/deposit/config/index.d.ts.map +1 -1
  22. package/dist/chains/btc/actions/deposit/config/types.d.ts +2 -1
  23. package/dist/chains/btc/actions/deposit/config/types.d.ts.map +1 -1
  24. package/dist/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.d.ts +1 -1
  25. package/dist/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.d.ts.map +1 -1
  26. package/dist/chains/btc/actions/depositAndDeploy/config/evm.d.ts.map +1 -1
  27. package/dist/chains/btc/actions/depositAndDeploy/config/index.d.ts +2 -1
  28. package/dist/chains/btc/actions/depositAndDeploy/config/index.d.ts.map +1 -1
  29. package/dist/chains/btc/actions/depositAndDeploy/config/types.d.ts +2 -1
  30. package/dist/chains/btc/actions/depositAndDeploy/config/types.d.ts.map +1 -1
  31. package/dist/chains/btc/actions/shared/validation.d.ts +2 -1
  32. package/dist/chains/btc/actions/shared/validation.d.ts.map +1 -1
  33. package/dist/chains/btc/actions/stake/config/evm.d.ts.map +1 -1
  34. package/dist/chains/btc/actions/stake/config/index.d.ts +2 -1
  35. package/dist/chains/btc/actions/stake/config/index.d.ts.map +1 -1
  36. package/dist/chains/btc/actions/stake/config/solana.d.ts.map +1 -1
  37. package/dist/chains/btc/actions/stake/config/starknet.d.ts.map +1 -1
  38. package/dist/chains/btc/actions/stake/config/sui.d.ts.map +1 -1
  39. package/dist/chains/btc/actions/stake/config/types.d.ts +2 -1
  40. package/dist/chains/btc/actions/stake/config/types.d.ts.map +1 -1
  41. package/dist/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.d.ts +1 -1
  42. package/dist/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.d.ts.map +1 -1
  43. package/dist/chains/btc/actions/stakeAndDeploy/config/evm.d.ts.map +1 -1
  44. package/dist/chains/btc/actions/stakeAndDeploy/config/index.d.ts +2 -1
  45. package/dist/chains/btc/actions/stakeAndDeploy/config/index.d.ts.map +1 -1
  46. package/dist/chains/btc/actions/stakeAndDeploy/config/types.d.ts +2 -1
  47. package/dist/chains/btc/actions/stakeAndDeploy/config/types.d.ts.map +1 -1
  48. package/dist/chains/evm/EvmActions.d.ts +39 -0
  49. package/dist/chains/evm/EvmActions.d.ts.map +1 -1
  50. package/dist/chains/evm/actions/deploy/config/evm.d.ts +2 -1
  51. package/dist/chains/evm/actions/deploy/config/evm.d.ts.map +1 -1
  52. package/dist/chains/evm/actions/deploy/config/types.d.ts +2 -1
  53. package/dist/chains/evm/actions/deploy/config/types.d.ts.map +1 -1
  54. package/dist/chains/evm/actions/deposit/config/evm.d.ts +2 -1
  55. package/dist/chains/evm/actions/deposit/config/evm.d.ts.map +1 -1
  56. package/dist/chains/evm/actions/deposit/config/types.d.ts +2 -1
  57. package/dist/chains/evm/actions/deposit/config/types.d.ts.map +1 -1
  58. package/dist/chains/evm/actions/index.d.ts +1 -0
  59. package/dist/chains/evm/actions/index.d.ts.map +1 -1
  60. package/dist/chains/evm/actions/redeem/config/evm.d.ts +2 -1
  61. package/dist/chains/evm/actions/redeem/config/evm.d.ts.map +1 -1
  62. package/dist/chains/evm/actions/redeem/config/types.d.ts +2 -1
  63. package/dist/chains/evm/actions/redeem/config/types.d.ts.map +1 -1
  64. package/dist/chains/evm/actions/stake/config/evm.d.ts +2 -1
  65. package/dist/chains/evm/actions/stake/config/evm.d.ts.map +1 -1
  66. package/dist/chains/evm/actions/stake/config/types.d.ts +2 -1
  67. package/dist/chains/evm/actions/stake/config/types.d.ts.map +1 -1
  68. package/dist/chains/evm/actions/unstake/config/evm.d.ts +2 -1
  69. package/dist/chains/evm/actions/unstake/config/evm.d.ts.map +1 -1
  70. package/dist/chains/evm/actions/unstake/config/types.d.ts +2 -1
  71. package/dist/chains/evm/actions/unstake/config/types.d.ts.map +1 -1
  72. package/dist/chains/evm/actions/withdraw/EvmCancelWithdraw.d.ts +27 -0
  73. package/dist/chains/evm/actions/withdraw/EvmCancelWithdraw.d.ts.map +1 -0
  74. package/dist/chains/evm/actions/withdraw/EvmWithdraw.d.ts +39 -0
  75. package/dist/chains/evm/actions/withdraw/EvmWithdraw.d.ts.map +1 -0
  76. package/dist/chains/evm/actions/withdraw/config/evm.d.ts +22 -0
  77. package/dist/chains/evm/actions/withdraw/config/evm.d.ts.map +1 -0
  78. package/dist/chains/evm/actions/withdraw/config/index.d.ts +8 -0
  79. package/dist/chains/evm/actions/withdraw/config/index.d.ts.map +1 -0
  80. package/dist/chains/evm/actions/withdraw/config/types.d.ts +31 -0
  81. package/dist/chains/evm/actions/withdraw/config/types.d.ts.map +1 -0
  82. package/dist/chains/evm/actions/withdraw/factory.d.ts +53 -0
  83. package/dist/chains/evm/actions/withdraw/factory.d.ts.map +1 -0
  84. package/dist/chains/evm/actions/withdraw/index.d.ts +12 -0
  85. package/dist/chains/evm/actions/withdraw/index.d.ts.map +1 -0
  86. package/dist/chains/evm/actions/withdraw/types.d.ts +87 -0
  87. package/dist/chains/evm/actions/withdraw/types.d.ts.map +1 -0
  88. package/dist/chains/evm/shared/feeAuth.d.ts +1 -1
  89. package/dist/chains/evm/shared/feeAuth.d.ts.map +1 -1
  90. package/dist/chains/solana/actions/unstake/config/btc.d.ts +2 -1
  91. package/dist/chains/solana/actions/unstake/config/btc.d.ts.map +1 -1
  92. package/dist/chains/solana/actions/unstake/config/solana.d.ts +2 -1
  93. package/dist/chains/solana/actions/unstake/config/solana.d.ts.map +1 -1
  94. package/dist/chains/solana/actions/unstake/config/types.d.ts +2 -1
  95. package/dist/chains/solana/actions/unstake/config/types.d.ts.map +1 -1
  96. package/dist/chains/starknet/actions/unstake/config/btc.d.ts +2 -1
  97. package/dist/chains/starknet/actions/unstake/config/btc.d.ts.map +1 -1
  98. package/dist/chains/starknet/actions/unstake/config/starknet.d.ts +2 -1
  99. package/dist/chains/starknet/actions/unstake/config/starknet.d.ts.map +1 -1
  100. package/dist/chains/starknet/actions/unstake/config/types.d.ts +2 -1
  101. package/dist/chains/starknet/actions/unstake/config/types.d.ts.map +1 -1
  102. package/dist/chains/sui/actions/unstake/config/btc.d.ts +2 -1
  103. package/dist/chains/sui/actions/unstake/config/btc.d.ts.map +1 -1
  104. package/dist/chains/sui/actions/unstake/config/sui.d.ts +2 -1
  105. package/dist/chains/sui/actions/unstake/config/sui.d.ts.map +1 -1
  106. package/dist/chains/sui/actions/unstake/config/types.d.ts +2 -1
  107. package/dist/chains/sui/actions/unstake/config/types.d.ts.map +1 -1
  108. package/dist/chunks/BtcActions-D9eBmDj6.cjs +2 -0
  109. package/dist/chunks/BtcActions-D9eBmDj6.cjs.map +1 -0
  110. package/dist/chunks/BtcActions-DGqmtxjd.js +1791 -0
  111. package/dist/chunks/BtcActions-DGqmtxjd.js.map +1 -0
  112. package/dist/chunks/EvmActions-BOwYPThp.cjs +2 -0
  113. package/dist/chunks/EvmActions-BOwYPThp.cjs.map +1 -0
  114. package/dist/chunks/EvmActions-MW5mNmqs.js +1351 -0
  115. package/dist/chunks/EvmActions-MW5mNmqs.js.map +1 -0
  116. package/dist/chunks/ReferralsClient-DUwyIUe3.cjs +2 -0
  117. package/dist/chunks/ReferralsClient-DUwyIUe3.cjs.map +1 -0
  118. package/dist/chunks/ReferralsClient-JjWLlIO4.js +462 -0
  119. package/dist/chunks/ReferralsClient-JjWLlIO4.js.map +1 -0
  120. package/dist/chunks/api-config-CtcP3TVl.js +35 -0
  121. package/dist/chunks/api-config-CtcP3TVl.js.map +1 -0
  122. package/dist/chunks/api-config-DkXqqfCK.cjs +2 -0
  123. package/dist/chunks/api-config-DkXqqfCK.cjs.map +1 -0
  124. package/dist/chunks/approveLBTC-CN6rJF6_.cjs +2 -0
  125. package/dist/chunks/approveLBTC-CN6rJF6_.cjs.map +1 -0
  126. package/dist/chunks/approveLBTC-DOP0wsm3.js +26 -0
  127. package/dist/chunks/approveLBTC-DOP0wsm3.js.map +1 -0
  128. package/dist/chunks/array-Cev6kyLJ.js +15 -0
  129. package/dist/chunks/array-Cev6kyLJ.js.map +1 -0
  130. package/dist/chunks/array-DKG6Pz4i.cjs +2 -0
  131. package/dist/chunks/array-DKG6Pz4i.cjs.map +1 -0
  132. package/dist/chunks/blockchain-identifier-DtIGGlIi.cjs +2 -0
  133. package/dist/chunks/blockchain-identifier-DtIGGlIi.cjs.map +1 -0
  134. package/dist/chunks/blockchain-identifier-PNEhu-QU.js +113 -0
  135. package/dist/chunks/blockchain-identifier-PNEhu-QU.js.map +1 -0
  136. package/dist/chunks/bridge-DkZMwO7c.cjs +12 -0
  137. package/dist/chunks/bridge-DkZMwO7c.cjs.map +1 -0
  138. package/dist/chunks/bridge-DyAiDpxD.js +693 -0
  139. package/dist/chunks/bridge-DyAiDpxD.js.map +1 -0
  140. package/dist/chunks/config-DqbLaiRi.cjs +2 -0
  141. package/dist/chunks/config-DqbLaiRi.cjs.map +1 -0
  142. package/dist/chunks/config-_8X_2sG4.js +374 -0
  143. package/dist/chunks/config-_8X_2sG4.js.map +1 -0
  144. package/dist/chunks/constants-BBK-JNcY.cjs +2 -0
  145. package/dist/chunks/constants-BBK-JNcY.cjs.map +1 -0
  146. package/dist/chunks/constants-CuT4axsy.js +5 -0
  147. package/dist/chunks/constants-CuT4axsy.js.map +1 -0
  148. package/dist/chunks/defi-registry-NGWlyxAY.cjs +2 -0
  149. package/dist/chunks/defi-registry-NGWlyxAY.cjs.map +1 -0
  150. package/dist/chunks/defi-registry-dhrQMy94.js +172 -0
  151. package/dist/chunks/defi-registry-dhrQMy94.js.map +1 -0
  152. package/dist/chunks/depositStatus-DeCO-K5Q.js +205 -0
  153. package/dist/chunks/depositStatus-DeCO-K5Q.js.map +1 -0
  154. package/dist/chunks/depositStatus-K6gky8zH.cjs +2 -0
  155. package/dist/chunks/depositStatus-K6gky8zH.cjs.map +1 -0
  156. package/dist/chunks/events-CLVUaKQS.js +996 -0
  157. package/dist/chunks/events-CLVUaKQS.js.map +1 -0
  158. package/dist/chunks/events-DIKZG4SZ.cjs +2 -0
  159. package/dist/chunks/events-DIKZG4SZ.cjs.map +1 -0
  160. package/dist/chunks/evm-by-btc-address-CwLiENtM.js +39 -0
  161. package/dist/chunks/evm-by-btc-address-CwLiENtM.js.map +1 -0
  162. package/dist/chunks/evm-by-btc-address-DiQoIWsr.cjs +2 -0
  163. package/dist/chunks/evm-by-btc-address-DiQoIWsr.cjs.map +1 -0
  164. package/dist/chunks/fee-requirements-CICSxYYL.cjs +2 -0
  165. package/dist/chunks/fee-requirements-CICSxYYL.cjs.map +1 -0
  166. package/dist/chunks/fee-requirements-x8-8mpJ7.js +14 -0
  167. package/dist/chunks/fee-requirements-x8-8mpJ7.js.map +1 -0
  168. package/dist/chunks/get-exchange-ratio-B0CNEGOB.js +20 -0
  169. package/dist/chunks/get-exchange-ratio-B0CNEGOB.js.map +1 -0
  170. package/dist/chunks/get-exchange-ratio-CM8W0jTw.cjs +2 -0
  171. package/dist/chunks/get-exchange-ratio-CM8W0jTw.cjs.map +1 -0
  172. package/dist/chunks/get-positions-summary-Cled5YPA.js +103 -0
  173. package/dist/chunks/get-positions-summary-Cled5YPA.js.map +1 -0
  174. package/dist/chunks/get-positions-summary-Co7RZBiK.cjs +2 -0
  175. package/dist/chunks/get-positions-summary-Co7RZBiK.cjs.map +1 -0
  176. package/dist/chunks/get-vault-tvl-Bydlvlrv.cjs +2 -0
  177. package/dist/chunks/get-vault-tvl-Bydlvlrv.cjs.map +1 -0
  178. package/dist/chunks/get-vault-tvl-DxjO9xDs.js +226 -0
  179. package/dist/chunks/get-vault-tvl-DxjO9xDs.js.map +1 -0
  180. package/dist/chunks/get-vault-withdrawals-CSQqKFB8.js +161 -0
  181. package/dist/chunks/get-vault-withdrawals-CSQqKFB8.js.map +1 -0
  182. package/dist/chunks/get-vault-withdrawals-DBA3ok0m.cjs +2 -0
  183. package/dist/chunks/get-vault-withdrawals-DBA3ok0m.cjs.map +1 -0
  184. package/dist/chunks/getSharesByAddress-CK2q7gBI.js +121 -0
  185. package/dist/chunks/getSharesByAddress-CK2q7gBI.js.map +1 -0
  186. package/dist/chunks/getSharesByAddress-De7as74h.cjs +2 -0
  187. package/dist/chunks/getSharesByAddress-De7as74h.cjs.map +1 -0
  188. package/dist/chunks/getUserStakeAndBakeSignature--XsK93Lb.cjs +2 -0
  189. package/dist/chunks/getUserStakeAndBakeSignature--XsK93Lb.cjs.map +1 -0
  190. package/dist/chunks/getUserStakeAndBakeSignature-2xPkL9v_.js +120 -0
  191. package/dist/chunks/getUserStakeAndBakeSignature-2xPkL9v_.js.map +1 -0
  192. package/dist/chunks/index-BKzxeh1Y.cjs +2 -0
  193. package/dist/chunks/index-BKzxeh1Y.cjs.map +1 -0
  194. package/dist/chunks/index-CfcQ_g3t.js +37 -0
  195. package/dist/chunks/index-CfcQ_g3t.js.map +1 -0
  196. package/dist/chunks/lbtc-addresses-NHg9Gk5y.js +10 -0
  197. package/dist/chunks/lbtc-addresses-NHg9Gk5y.js.map +1 -0
  198. package/dist/chunks/lbtc-addresses-bj--zuK9.cjs +2 -0
  199. package/dist/chunks/lbtc-addresses-bj--zuK9.cjs.map +1 -0
  200. package/dist/chunks/numbers-3LtmxfD8.cjs +2 -0
  201. package/dist/chunks/numbers-3LtmxfD8.cjs.map +1 -0
  202. package/dist/chunks/numbers-CM-lcmt4.js +15 -0
  203. package/dist/chunks/numbers-CM-lcmt4.js.map +1 -0
  204. package/dist/chunks/parameters-CDV-6Hk5.js +11 -0
  205. package/dist/chunks/parameters-CDV-6Hk5.js.map +1 -0
  206. package/dist/chunks/parameters-DK9cYCAH.cjs +2 -0
  207. package/dist/chunks/parameters-DK9cYCAH.cjs.map +1 -0
  208. package/dist/chunks/satoshi-CZEsHl5X.cjs +2 -0
  209. package/dist/chunks/satoshi-CZEsHl5X.cjs.map +1 -0
  210. package/dist/chunks/satoshi-Ch6y8aYG.js +19 -0
  211. package/dist/chunks/satoshi-Ch6y8aYG.js.map +1 -0
  212. package/dist/chunks/statusConstants-DTDi_4Go.cjs +2 -0
  213. package/dist/chunks/statusConstants-DTDi_4Go.cjs.map +1 -0
  214. package/dist/chunks/statusConstants-ZJia15m2.js +4446 -0
  215. package/dist/chunks/statusConstants-ZJia15m2.js.map +1 -0
  216. package/dist/chunks/storeNetworkFeeSignature-BZUZOxns.js +65 -0
  217. package/dist/chunks/storeNetworkFeeSignature-BZUZOxns.js.map +1 -0
  218. package/dist/chunks/storeNetworkFeeSignature-pV7xUOSo.cjs +2 -0
  219. package/dist/chunks/storeNetworkFeeSignature-pV7xUOSo.cjs.map +1 -0
  220. package/dist/chunks/time-I-BeyUkG.cjs +2 -0
  221. package/dist/chunks/time-I-BeyUkG.cjs.map +1 -0
  222. package/dist/chunks/time-QPeEEEnQ.js +24 -0
  223. package/dist/chunks/time-QPeEEEnQ.js.map +1 -0
  224. package/dist/chunks/token-addresses-D859i6tX.cjs +2 -0
  225. package/dist/chunks/token-addresses-D859i6tX.cjs.map +1 -0
  226. package/dist/chunks/token-addresses-DmAr89jP.js +579 -0
  227. package/dist/chunks/token-addresses-DmAr89jP.js.map +1 -0
  228. package/dist/chunks/tokens-Bw35TZqd.js +6663 -0
  229. package/dist/chunks/tokens-Bw35TZqd.js.map +1 -0
  230. package/dist/chunks/tokens-DLGMNeqZ.cjs +2 -0
  231. package/dist/chunks/tokens-DLGMNeqZ.cjs.map +1 -0
  232. package/dist/chunks/unstakeLBTC-CqZzj9WL.cjs +2 -0
  233. package/dist/chunks/unstakeLBTC-CqZzj9WL.cjs.map +1 -0
  234. package/dist/chunks/unstakeLBTC-Huy_ncVl.js +3866 -0
  235. package/dist/chunks/unstakeLBTC-Huy_ncVl.js.map +1 -0
  236. package/dist/chunks/withdraw-CVNVJ7-x.js +209 -0
  237. package/dist/chunks/withdraw-CVNVJ7-x.js.map +1 -0
  238. package/dist/chunks/withdraw-Z77x7Hj4.cjs +12 -0
  239. package/dist/chunks/withdraw-Z77x7Hj4.cjs.map +1 -0
  240. package/dist/client/ApiNamespace.d.ts +39 -0
  241. package/dist/client/ApiNamespace.d.ts.map +1 -1
  242. package/dist/client/createLombardSDK.d.ts.map +1 -1
  243. package/dist/clients/rpc-url-config.d.ts.map +1 -1
  244. package/dist/common/chains.d.ts +2 -2
  245. package/dist/common/chains.d.ts.map +1 -1
  246. package/dist/common/feature-config.d.ts +7 -7
  247. package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
  248. package/dist/contracts.cjs +2 -0
  249. package/dist/contracts.cjs.map +1 -0
  250. package/dist/contracts.js +32 -0
  251. package/dist/contracts.js.map +1 -0
  252. package/dist/core/assets/catalog.d.ts.map +1 -1
  253. package/dist/core/index.d.ts +1 -1
  254. package/dist/core/index.d.ts.map +1 -1
  255. package/dist/core/types.d.ts +0 -4
  256. package/dist/core/types.d.ts.map +1 -1
  257. package/dist/core.cjs +2 -0
  258. package/dist/core.cjs.map +1 -0
  259. package/dist/core.js +101 -0
  260. package/dist/core.js.map +1 -0
  261. package/dist/debug.cjs +2 -0
  262. package/dist/debug.cjs.map +1 -0
  263. package/dist/debug.js +7 -0
  264. package/dist/debug.js.map +1 -0
  265. package/dist/defi.cjs +2 -0
  266. package/dist/defi.cjs.map +1 -0
  267. package/dist/defi.js +14 -0
  268. package/dist/defi.js.map +1 -0
  269. package/dist/entries/api.d.ts +26 -0
  270. package/dist/entries/api.d.ts.map +1 -0
  271. package/dist/entries/bridge.d.ts +7 -0
  272. package/dist/entries/bridge.d.ts.map +1 -0
  273. package/dist/entries/btc.d.ts +11 -0
  274. package/dist/entries/btc.d.ts.map +1 -0
  275. package/dist/entries/contracts.d.ts +23 -0
  276. package/dist/entries/contracts.d.ts.map +1 -0
  277. package/dist/entries/core.d.ts +45 -0
  278. package/dist/entries/core.d.ts.map +1 -0
  279. package/dist/entries/debug.d.ts +9 -0
  280. package/dist/entries/debug.d.ts.map +1 -0
  281. package/dist/entries/defi.d.ts +7 -0
  282. package/dist/entries/defi.d.ts.map +1 -0
  283. package/dist/entries/evm.d.ts +17 -0
  284. package/dist/entries/evm.d.ts.map +1 -0
  285. package/dist/entries/metrics.d.ts +10 -0
  286. package/dist/entries/metrics.d.ts.map +1 -0
  287. package/dist/entries/utils.d.ts +21 -0
  288. package/dist/entries/utils.d.ts.map +1 -0
  289. package/dist/entries/vaults.d.ts +7 -0
  290. package/dist/entries/vaults.d.ts.map +1 -0
  291. package/dist/evm.cjs +2 -0
  292. package/dist/evm.cjs.map +1 -0
  293. package/dist/evm.js +48 -0
  294. package/dist/evm.js.map +1 -0
  295. package/dist/index.cjs +2 -1
  296. package/dist/index.cjs.map +1 -0
  297. package/dist/index.d.ts +49 -17
  298. package/dist/index.d.ts.map +1 -1
  299. package/dist/index.js +293 -267
  300. package/dist/index.js.map +1 -0
  301. package/dist/metrics.cjs +2 -0
  302. package/dist/metrics.cjs.map +1 -0
  303. package/dist/metrics.js +9 -0
  304. package/dist/metrics.js.map +1 -0
  305. package/dist/shared/errors.d.ts +14 -1
  306. package/dist/shared/errors.d.ts.map +1 -1
  307. package/dist/shared/events.d.ts +25 -2
  308. package/dist/shared/events.d.ts.map +1 -1
  309. package/dist/tokens/token-addresses.d.ts +2 -2
  310. package/dist/tokens/token-addresses.d.ts.map +1 -1
  311. package/dist/utils.cjs +2 -0
  312. package/dist/utils.cjs.map +1 -0
  313. package/dist/utils.js +101 -0
  314. package/dist/utils.js.map +1 -0
  315. package/dist/vaults/lib/config.d.ts +1 -1
  316. package/dist/vaults.cjs +2 -0
  317. package/dist/vaults.cjs.map +1 -0
  318. package/dist/vaults.js +18 -0
  319. package/dist/vaults.js.map +1 -0
  320. package/package.json +98 -6
  321. package/dist/ccip.cjs +0 -1
  322. package/dist/ccip.js +0 -149
  323. package/dist/index2.cjs +0 -66
  324. package/dist/index2.js +0 -48300
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-DyAiDpxD.js","sources":["../../src/bridge/lib/ccip-config.ts","../../src/bridge/lib/config.ts","../../src/bridge/lib/ccip-bridge.ts","../../src/bridge/lib/oft-bridge.ts","../../src/bridge/lib/bridge.ts"],"sourcesContent":["import { Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\n\nexport type CCIPChainConfig = {\n routerAddress: Address;\n chainSelector: string;\n};\n\ntype CCIPConfig = Record<number, CCIPChainConfig>;\n\nexport const CCIP_CONFIG: CCIPConfig = {\n [ChainId.ethereum]: {\n routerAddress: '0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D',\n chainSelector: '5009297550715157269',\n },\n [ChainId.base]: {\n routerAddress: '0x881e3A65B4d4a04dD529061dd0071cf975F58bCD',\n chainSelector: '15971525489660198786',\n },\n [ChainId.binanceSmartChain]: {\n routerAddress: '0x34B03Cb9086d7D758AC55af71584F81A598759FE',\n chainSelector: '11344663589394136015',\n },\n [ChainId.sonic]: {\n routerAddress: '0xB4e1Ff7882474BB93042be9AD5E1fA387949B860',\n chainSelector: '1673871237479749969',\n },\n [ChainId.katana]: {\n routerAddress: '0x7c19b79D2a054114Ab36ad758A36e92376e267DA',\n chainSelector: '2459028469735686113',\n },\n [ChainId.megaeth]: {\n routerAddress: '0xfa546248C54939AA6C48279CdC1EAf9A1125c411',\n chainSelector: '6093540873831549674',\n },\n [ChainId.avalanche]: {\n routerAddress: '0xF4c7E640EdA248ef95972845a62bdC74237805dB',\n chainSelector: '6433500567565415381',\n },\n [ChainId.monad]: {\n routerAddress: '0x33566fE5976AAa420F3d5C64996641Fc3858CaDB',\n chainSelector: '8481857512324358265',\n },\n [ChainId.stable]: {\n routerAddress: '0xECFF67559c0583027A5fbd85136E33bC4D66eeA0',\n chainSelector: '16978377838628290997',\n },\n // Testnets\n [ChainId.holesky]: {\n routerAddress: '0xb9531b46fE8808fB3659e39704953c2B1112DD43',\n chainSelector: '7717148896336251131',\n },\n [ChainId.baseSepoliaTestnet]: {\n routerAddress: '0xD3b06cEbF099CE7DA4AcCf578aaebFDBd6e88a93',\n chainSelector: '10344971235874465080',\n },\n [ChainId.binanceSmartChainTestnet]: {\n routerAddress: '0xE1053aE1857476f36A3C62580FF9b016E8EE8F6f',\n chainSelector: '13264668187771770619',\n },\n [ChainId.katanaTatara]: {\n routerAddress: '0x1dF1fe714A376f248d51AAB826C3feeC379e80fC',\n chainSelector: '9090863410735740267',\n },\n [ChainId.avalancheFuji]: {\n routerAddress: '0xF694E193200268f9a4868e4Aa017A0118C9a8177',\n chainSelector: '14767482510784806043',\n },\n};\n\nexport function getCCIPConfig(chainId: ChainId): CCIPChainConfig | undefined {\n return CCIP_CONFIG[chainId];\n}\n","import BigNumber from 'bignumber.js';\nimport { Abi, Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\nimport { ContractInfo } from '../../common/contract-info';\nimport { featureConfig } from '../../common/feature-config';\nimport { unique } from '../../utils/array';\nimport CCIP_BRIDGE_ADAPTER_ABI from '../abi/CCIP_BRIDGE_ADAPTER_ABI.json';\nimport OFT_BRIDGE_ADAPTER_ABI from '../abi/OFT_BRIDGE_ADAPTER_ABI.json';\n\nexport const MIN_BRIDGE_AMOUNT = BigNumber(0.000001);\n\nexport enum BridgeType {\n /** CCIP - (Chainlink) Cross-Chain Interoperability Protocol */\n CCIP = 'CCIP',\n\n /** OFT - (LayerZero) Omnichain Fungible Token */\n OFT = 'OFT',\n}\n\nexport const BRIDGE_EXPLORER_URL_MAP = {\n [BridgeType.CCIP]: 'https://ccip.chain.link/tx/{txHash}',\n [BridgeType.OFT]: 'https://layerzeroscan.com/tx/{txHash}',\n};\n\nexport const CCIP_BRIDGE_CHAINS = [\n // Mainnets:\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n ChainId.katana,\n ChainId.sonic,\n ...(featureConfig.isAvalancheMainnetEnabled ? [ChainId.avalanche] : []),\n ...(featureConfig.isMonadEnabled ? [ChainId.monad] : []),\n ChainId.stable,\n // Testnets:\n ...(featureConfig.isAvalancheFujiEnabled ? [ChainId.avalancheFuji] : []),\n ChainId.baseSepoliaTestnet,\n ChainId.holesky,\n ChainId.katanaTatara,\n ChainId.sepolia,\n];\nexport type CCIPBridgeChain = (typeof CCIP_BRIDGE_CHAINS)[number];\n\nexport const OFT_BRIDGE_CHAINS = [\n // Mainnets:\n ChainId.ethereum,\n ChainId.berachain,\n ChainId.corn,\n ChainId.etherlink,\n ChainId.swell,\n ChainId.tac,\n // Testnets:\n ChainId.berachainBartioTestnet,\n ChainId.sepolia,\n];\n\nexport const BRIDGE_CHAINS = unique([\n ...CCIP_BRIDGE_CHAINS,\n ...OFT_BRIDGE_CHAINS,\n]);\nexport type BridgeChain = CCIPBridgeChain | OFTBridgeChain;\n\nexport const OFT_GAS_LIMIT = 90_000;\nexport const OFT_HI_GAS_LIMIT = 200_000;\nexport const OFT_HI_GAS_LIMIT_CHAINS = [\n // Mainnets:\n ChainId.berachain,\n ChainId.etherlink,\n ChainId.morph,\n ChainId.sonic,\n ChainId.corn,\n ChainId.tac,\n // Testnets:\n ChainId.berachainBartioTestnet,\n ChainId.morphHolesky,\n];\n\nexport type OFTBridgeChain = (typeof OFT_BRIDGE_CHAINS)[number];\n\ntype BridgeIdentifier<Ch extends CCIPBridgeChain | OFTBridgeChain> =\n `[from:${Ch}, to: ${Ch}]`;\n\nconst bridgeIdentifier = <Ch extends CCIPBridgeChain | OFTBridgeChain>([\n from,\n to,\n]: [from: Ch, to: Ch]): BridgeIdentifier<Ch> => `[from:${from}, to: ${to}]`;\n\ntype BridgeInfo = { type: BridgeType; contract: ContractInfo };\n\ntype CCIPBridgesConfig = [\n BridgeIdentifier<CCIPBridgeChain>,\n { type: BridgeType.CCIP; contract: ContractInfo },\n];\n\nconst CCIP_FROM_ETH = {\n routes: [\n bridgeIdentifier([ChainId.ethereum, ChainId.base]),\n bridgeIdentifier([ChainId.ethereum, ChainId.binanceSmartChain]),\n bridgeIdentifier([ChainId.ethereum, ChainId.sonic]),\n bridgeIdentifier([ChainId.ethereum, ChainId.katana]),\n ],\n type: BridgeType.CCIP,\n contract: {\n address: '0xa869817b48b25eee986bdf4be04062e6fd2c418b' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.ethereum,\n },\n};\n\nconst CCIP_FROM_BASE = {\n routes: [\n bridgeIdentifier([ChainId.base, ChainId.ethereum]),\n bridgeIdentifier([ChainId.base, ChainId.binanceSmartChain]),\n bridgeIdentifier([ChainId.base, ChainId.katana]),\n ],\n type: BridgeType.CCIP,\n contract: {\n address: '0xa869817b48b25eee986bdf4be04062e6fd2c418b' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.base,\n },\n};\n\nconst CCIP_FROM_BSC = {\n routes: [\n bridgeIdentifier([ChainId.binanceSmartChain, ChainId.ethereum]),\n bridgeIdentifier([ChainId.binanceSmartChain, ChainId.base]),\n bridgeIdentifier([ChainId.binanceSmartChain, ChainId.katana]),\n ],\n type: BridgeType.CCIP,\n contract: {\n address: '0xa869817b48b25eee986bdf4be04062e6fd2c418b' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.binanceSmartChain,\n },\n};\n\nconst CCIP_FROM_KATANA = {\n routes: [\n bridgeIdentifier([ChainId.katana, ChainId.ethereum]),\n bridgeIdentifier([ChainId.katana, ChainId.base]),\n bridgeIdentifier([ChainId.katana, ChainId.binanceSmartChain]),\n bridgeIdentifier([ChainId.katana, ChainId.sonic]),\n ],\n type: BridgeType.CCIP,\n contract: {\n address: '0xA869817b48b25EeE986bdF4bE04062e6fd2C418B' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.katana,\n },\n};\n\nconst CCIP_FROM_SONIC = {\n routes: [\n bridgeIdentifier([ChainId.sonic, ChainId.ethereum]),\n bridgeIdentifier([ChainId.sonic, ChainId.katana]),\n ],\n type: BridgeType.CCIP,\n contract: {\n address: '0xa869817b48b25eee986bdf4be04062e6fd2c418b' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.sonic,\n },\n};\n\nconst CCIP_FROM_BASE_SEPOLIA = {\n routes: [bridgeIdentifier([ChainId.baseSepoliaTestnet, ChainId.holesky])],\n type: BridgeType.CCIP,\n contract: {\n address: '0x38247C4c846D549CAAd2C6c0b6fec0c402b77a0F' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.baseSepoliaTestnet,\n },\n};\n\nconst CCIP_FROM_HOLESKY = {\n routes: [bridgeIdentifier([ChainId.holesky, ChainId.baseSepoliaTestnet])],\n type: BridgeType.CCIP,\n contract: {\n address: '0x38247C4c846D549CAAd2C6c0b6fec0c402b77a0F' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.holesky,\n },\n};\n\nconst CCIP_FROM_KATANA_TATARA = {\n routes: [bridgeIdentifier([ChainId.katanaTatara, ChainId.sepolia])],\n type: BridgeType.CCIP,\n contract: {\n address: '0x38247C4c846D549CAAd2C6c0b6fec0c402b77a0F' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.katanaTatara,\n },\n};\n\nconst CCIP_FROM_SEPOLIA = {\n routes: [bridgeIdentifier([ChainId.sepolia, ChainId.katanaTatara])],\n type: BridgeType.CCIP,\n contract: {\n address: '0x38247C4c846D549CAAd2C6c0b6fec0c402b77a0F' as Address,\n abi: CCIP_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.sepolia,\n },\n};\n\nconst CCIP_BRIDGES: CCIPBridgesConfig[] = [\n // Mainnets:\n CCIP_FROM_ETH,\n CCIP_FROM_BASE,\n CCIP_FROM_BSC,\n CCIP_FROM_KATANA,\n CCIP_FROM_SONIC,\n // Testnets:\n CCIP_FROM_BASE_SEPOLIA,\n CCIP_FROM_HOLESKY,\n CCIP_FROM_KATANA_TATARA,\n CCIP_FROM_SEPOLIA,\n].reduce((acc, cur) => {\n if (cur.type !== BridgeType.CCIP) return acc;\n\n const c: CCIPBridgesConfig[] = cur.routes.map(route => [\n route,\n { type: BridgeType.CCIP, contract: cur.contract },\n ]);\n\n return acc.concat(c);\n}, [] as CCIPBridgesConfig[]);\n\ntype OFTBridgeConfig = [\n BridgeIdentifier<OFTBridgeChain>,\n { type: BridgeType.OFT; contract: ContractInfo },\n];\nconst OFT_BRIDGES: OFTBridgeConfig[] = [\n // Mainnets:\n\n [\n bridgeIdentifier([ChainId.ethereum, ChainId.berachain]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x1290A6b480f7eF14925229fdB66f5680aD8F44AD',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.ethereum,\n },\n },\n ],\n [\n bridgeIdentifier([ChainId.ethereum, ChainId.corn]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x6bc15d7930839ec18a57f6f7df72ae1b439d077f',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.ethereum,\n },\n },\n ],\n [\n bridgeIdentifier([ChainId.ethereum, ChainId.etherlink]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x3a7647c1323144a16e7D0D71A581E3FE5BD95299',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.ethereum,\n },\n },\n ],\n [\n bridgeIdentifier([ChainId.ethereum, ChainId.swell]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x37E92d760a15231e652a2C502182a6b44c7510c0',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.ethereum,\n },\n },\n ],\n [\n bridgeIdentifier([ChainId.ethereum, ChainId.tac]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0xA7c4d94F98b6e94C139c4645e4E9a94CD7C0Abf7',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.ethereum,\n },\n },\n ],\n\n [\n bridgeIdentifier([ChainId.berachain, ChainId.ethereum]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x630e12D53D4E041b8C5451aD035Ea841E08391d7',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.berachain,\n },\n },\n ],\n\n [\n bridgeIdentifier([ChainId.corn, ChainId.ethereum]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0xfc7B20D9B59A8A466f4fC3d34aA69a7D98e71d7A',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.corn,\n },\n },\n ],\n\n [\n bridgeIdentifier([ChainId.etherlink, ChainId.ethereum]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0xC832183d4d5fc5831daaC892a93dBBfd798034E3',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.etherlink,\n },\n },\n ],\n\n [\n bridgeIdentifier([ChainId.swell, ChainId.ethereum]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x7B3784AD646C10A8Ddf42b47a4f4bd9aFD351E54',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.swell,\n },\n },\n ],\n [\n bridgeIdentifier([ChainId.tac, ChainId.ethereum]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x1298131cDa718bBcA7ACB1f2411e71c05E16f269',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.tac,\n },\n },\n ],\n\n // Testnets:\n\n [\n bridgeIdentifier([ChainId.berachainBartioTestnet, ChainId.sepolia]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0x1977013acaf27856ac8048C42EE2ed0134d53895',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.berachainBartioTestnet,\n },\n },\n ],\n\n [\n bridgeIdentifier([ChainId.sepolia, ChainId.berachainBartioTestnet]),\n {\n type: BridgeType.OFT,\n contract: {\n address: '0xe3748bF0Ec0A76767539eE28610B3367e35fe2C2',\n abi: OFT_BRIDGE_ADAPTER_ABI as Abi,\n chainId: ChainId.sepolia,\n },\n },\n ],\n];\n\nexport const BRIDGES = new Map<BridgeIdentifier<BridgeChain>, BridgeInfo>([\n ...CCIP_BRIDGES,\n ...OFT_BRIDGES,\n]);\n\n/** Gets the bridge information */\nexport const getBridgeInfo = (from: BridgeChain, to: BridgeChain) => {\n return BRIDGES.get(bridgeIdentifier([from, to]));\n};\n","import BigNumber from 'bignumber.js';\nimport {\n Address,\n encodeAbiParameters,\n encodePacked,\n parseAbiParameters,\n} from 'viem';\n\nimport { makePublicClient } from '../../clients/public-client';\nimport { makeWalletClient } from '../../clients/wallet-client';\nimport { CommonWriteParameters } from '../../common/parameters';\nimport { approveLBTC } from '../../contract-functions';\nimport { Token } from '../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../tokens/tokens';\nimport { getErrorMessage } from '../../utils/err';\nimport toBigInt from '../../utils/numbers';\nimport CCIP_ROUTER_ABI from '../abi/CCIP_ROUTER_ABI.json';\nimport { getCCIPConfig } from './ccip-config';\nimport {\n BridgeType,\n CCIP_BRIDGE_CHAINS,\n CCIPBridgeChain,\n getBridgeInfo,\n MIN_BRIDGE_AMOUNT,\n} from './config';\n\nexport type BridgeCCIPParameters = {\n /** The destination chain id. */\n to: CCIPBridgeChain;\n /** The LBTC amount. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The destination address. If omitted the same as the account address. */\n recipient?: Address;\n} & CommonWriteParameters;\n\n/**\n * Encodes extraArgs for CCIP according to version 1\n * Format: EVMExtraArgsV1 { gasLimit: uint256 }\n *\n * @see https://github.com/smartcontractkit/smart-contract-examples/blob/main/ccip/offchain/javascript/src/transfer-tokens.js\n */\nfunction encodeExtraArgs(gasLimit: bigint): `0x${string}` {\n // Tag for EVMExtraArgsV1\n const tag = '0x97a657c9';\n\n // Encode gasLimit as uint256\n const encodedGasLimit = encodePacked(['uint256'], [gasLimit]);\n\n return `${tag}${encodedGasLimit.slice(2)}` as `0x${string}`;\n}\n\n/**\n * Transfers tokens via CCIP using direct Router contract calls\n * Based on Chainlink example:\n * @see https://github.com/smartcontractkit/smart-contract-examples/blob/main/ccip/offchain/javascript/src/transfer-tokens.js\n */\nexport async function bridgeCCIP({\n to,\n amount: amountRaw,\n approve,\n recipient: optionalRecipient,\n account,\n chainId: from,\n provider,\n env,\n rpcUrl,\n}: BridgeCCIPParameters) {\n const amount = BigNumber(amountRaw);\n const recipient = optionalRecipient || account;\n\n const bridgeInfo = getBridgeInfo(from as CCIPBridgeChain, to);\n if (!bridgeInfo || bridgeInfo.type !== BridgeType.CCIP) {\n throw new Error(\n `Unsupported bridge from ${from} to ${to}. Please switch to the supported chains: ${CCIP_BRIDGE_CHAINS.join(', ')}`,\n );\n }\n\n // Get CCIP Router configuration\n const sourceChainConfig = getCCIPConfig(from);\n const destinationChainConfig = getCCIPConfig(to);\n\n if (!sourceChainConfig || !destinationChainConfig) {\n throw new Error(`CCIP configuration not found for chains ${from} -> ${to}`);\n }\n\n const routerAddress = sourceChainConfig.routerAddress;\n\n const lbtcContract = await getTokenInfo(Token.LBTC, from, env, rpcUrl);\n if (!lbtcContract) {\n throw new Error('Could not retrieve LBTC contract info.');\n }\n\n const publicClient = makePublicClient({ chainId: from, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId: from });\n\n const amountBase = toBigInt(\n toBaseDenomination(amount, lbtcContract.decimals),\n );\n\n if (amount.isLessThan(MIN_BRIDGE_AMOUNT)) {\n throw new Error(\n `The amount is smaller than the minimum amount allowed: ${MIN_BRIDGE_AMOUNT.toFixed()}`,\n );\n }\n\n const balanceRaw = await publicClient.readContract({\n address: lbtcContract.address,\n abi: lbtcContract.abi,\n functionName: 'balanceOf',\n args: [account],\n });\n const balance = fromBaseDenomination(\n String(balanceRaw),\n lbtcContract.decimals,\n );\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The amount exceeds the account's balance. \\nAmount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n const allowanceRaw = await publicClient.readContract({\n address: lbtcContract.address,\n abi: lbtcContract.abi,\n functionName: 'allowance',\n args: [account, routerAddress],\n });\n const allowance = fromBaseDenomination(\n String(allowanceRaw),\n lbtcContract.decimals,\n );\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The amount exceeds allowance. \\nAmount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount for Router\n console.info(exceededMessage);\n try {\n const txHash = await approveLBTC({\n account,\n spender: routerAddress,\n amount,\n chainId: from,\n provider,\n rpcUrl,\n env,\n });\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${routerAddress}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${routerAddress}. \\nReason: ${msg}`,\n );\n }\n }\n\n // Build CCIP message (EVM2AnyMessage)\n // IMPORTANT: receiver must be abi.encode(address) for EVM chains, not encodePacked\n const receiverBytes = encodeAbiParameters(parseAbiParameters('address'), [\n recipient,\n ]);\n const extraArgs = encodeExtraArgs(0n);\n\n const message = {\n receiver: receiverBytes,\n data: '0x' as `0x${string}`,\n tokenAmounts: [\n {\n token: lbtcContract.address,\n amount: amountBase,\n },\n ],\n feeToken: '0x0000000000000000000000000000000000000000' as Address, // address(0) means payment in native currency\n extraArgs, // 0 = automatic gas limit calculation\n };\n\n // Get fee for sending the message\n const fee = (await publicClient.readContract({\n address: routerAddress,\n abi: CCIP_ROUTER_ABI,\n functionName: 'getFee',\n args: [BigInt(destinationChainConfig.chainSelector), message],\n })) as bigint;\n\n // Send CCIP message\n const { request } = await publicClient.simulateContract({\n address: routerAddress,\n abi: CCIP_ROUTER_ABI,\n account,\n functionName: 'ccipSend',\n args: [BigInt(destinationChainConfig.chainSelector), message],\n value: fee,\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n","import { Options } from '@layerzerolabs/lz-v2-utilities';\nimport BigNumber from 'bignumber.js';\nimport { Address, pad } from 'viem';\n\nimport { makePublicClient } from '../../clients/public-client';\nimport { makeWalletClient } from '../../clients/wallet-client';\nimport { ChainId } from '../../common/chains';\nimport { CommonWriteParameters } from '../../common/parameters';\nimport { approveLBTC } from '../../contract-functions';\nimport { Token } from '../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../tokens/tokens';\nimport { getErrorMessage } from '../../utils/err';\nimport toBigInt from '../../utils/numbers';\nimport {\n BridgeType,\n getBridgeInfo,\n MIN_BRIDGE_AMOUNT,\n OFT_BRIDGE_CHAINS,\n OFT_GAS_LIMIT,\n OFT_HI_GAS_LIMIT,\n OFT_HI_GAS_LIMIT_CHAINS,\n OFTBridgeChain,\n} from './config';\n\nconst DESTINATION_ENDPOINT_ID_MAP: Record<OFTBridgeChain, number> = {\n // Mainnets:\n [ChainId.ethereum]: 30101,\n [ChainId.berachain]: 30362,\n [ChainId.corn]: 30331,\n [ChainId.etherlink]: 30292,\n [ChainId.swell]: 30335,\n [ChainId.tac]: 30377,\n // Testnets:\n [ChainId.sepolia]: 40161,\n [ChainId.berachainBartioTestnet]: 40291,\n};\n\nexport type BridgeOFTParameters = {\n /** The destination chain id. */\n to: OFTBridgeChain;\n /** The LBTC amount. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The destination address. If omitted the same as the account address. */\n recipient?: Address;\n} & CommonWriteParameters;\nexport async function bridgeOFT({\n to,\n amount: amountRaw,\n approve,\n recipient: optionalRecipient,\n account,\n chainId: from,\n provider,\n env,\n rpcUrl,\n}: BridgeOFTParameters) {\n console.warn(\n 'The \"bridgeOFT\" function is provided as is and it is not the recommended way of bridging tokens between chains. Please, use \"bridgeCCIP\" or the generic \"bridge\" function.',\n );\n\n const amount = BigNumber(amountRaw);\n const recipient = optionalRecipient || account;\n\n const bridgeInfo = getBridgeInfo(from as OFTBridgeChain, to);\n if (!bridgeInfo || bridgeInfo.type !== BridgeType.OFT) {\n throw new Error(\n `Unsupported bridge from ${from} to ${to}. Please switch to the supported chains: ${OFT_BRIDGE_CHAINS.join(', ')}`,\n );\n }\n\n const bridgeContract = bridgeInfo.contract;\n\n const lbtcContract = await getTokenInfo(Token.LBTC, from, env, rpcUrl);\n if (!lbtcContract) {\n throw new Error('Could not retrieve LBTC contract info.');\n }\n\n const publicClient = makePublicClient({ chainId: from, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId: from });\n\n const amountBase = toBigInt(\n toBaseDenomination(amount, lbtcContract.decimals),\n );\n\n if (amount.isLessThan(MIN_BRIDGE_AMOUNT)) {\n throw new Error(\n `The amount is smaller than the minimum amount allowed: ${MIN_BRIDGE_AMOUNT.toFixed()}`,\n );\n }\n\n const balanceRaw = await publicClient.readContract({\n address: lbtcContract.address,\n abi: lbtcContract.abi,\n functionName: 'balanceOf',\n args: [account],\n });\n const balance = fromBaseDenomination(\n String(balanceRaw),\n lbtcContract.decimals,\n );\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The amount exceeds the account's balance. \\nAmount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n const allowanceRaw = await publicClient.readContract({\n address: lbtcContract.address,\n abi: lbtcContract.abi,\n functionName: 'allowance',\n args: [account, bridgeContract.address],\n });\n const allowance = fromBaseDenomination(\n String(allowanceRaw),\n lbtcContract.decimals,\n );\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The amount exceeds allowance. \\nAmount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n console.info(exceededMessage);\n try {\n const txHash = await approveLBTC({\n account,\n spender: bridgeContract.address,\n amount,\n chainId: from,\n provider,\n rpcUrl,\n env,\n });\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${bridgeContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${bridgeContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n const extraOptions = Options.newOptions().addExecutorLzReceiveOption(\n (OFT_HI_GAS_LIMIT_CHAINS as number[]).includes(to)\n ? OFT_HI_GAS_LIMIT\n : OFT_GAS_LIMIT,\n 0,\n );\n\n /** _sendParam */\n const sendParam = [\n /** dstEid - uint32 */\n DESTINATION_ENDPOINT_ID_MAP[to],\n /** to - bytes32 */\n pad(recipient),\n /** amountLD - uint256 */\n amountBase,\n /** minAmountLD - uint256 */\n amountBase,\n /** extraOptions - bytes */\n extraOptions.toHex(),\n /** composeMsg - bytes */\n '0x',\n /** oftCmd - bytes */\n '0x',\n ];\n\n const { nativeFee, lzTokenFee } = (await publicClient.readContract({\n abi: bridgeContract.abi,\n address: bridgeContract.address,\n account,\n functionName: 'quoteSend',\n args: [sendParam, false],\n })) as { nativeFee: bigint; lzTokenFee: bigint };\n\n const bridgeArgs = [\n /** _sendParam */\n sendParam,\n /** _fee */\n [\n /** nativeFee - uint256 */\n nativeFee,\n /** lzTokenFee - uint256 */\n lzTokenFee,\n ],\n /** address - address */\n account,\n ];\n\n const { request } = await publicClient.simulateContract({\n abi: bridgeContract.abi,\n address: bridgeContract.address,\n account,\n functionName: 'send',\n args: bridgeArgs,\n value: nativeFee,\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n","import BigNumber from 'bignumber.js';\nimport { Address } from 'viem';\n\nimport { CommonWriteParameters } from '../../common/parameters';\nimport { bridgeCCIP } from './ccip-bridge';\nimport {\n BRIDGE_EXPLORER_URL_MAP,\n BridgeChain,\n BridgeType,\n CCIP_BRIDGE_CHAINS,\n CCIPBridgeChain,\n getBridgeInfo,\n OFTBridgeChain,\n} from './config';\nimport { bridgeOFT } from './oft-bridge';\n\nexport type BridgeParameters = {\n /** The destination chain id. */\n to: BridgeChain;\n /** The LBTC amount. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The destination address. If omitted the same as the account address. */\n recipient?: Address;\n} & CommonWriteParameters & {\n /**\n * A flag indicating whether the OFT bridge should be allowed.\n * Use at your onw risk!\n */\n experimentalAllowOFT?: boolean;\n };\n\n/**\n * Bridges funds (`amount`) from the connected chain (`chainId`) to the provided\n * destination chain (`to`)\n */\nexport async function bridge({\n to,\n amount,\n approve,\n account,\n chainId,\n provider,\n recipient,\n rpcUrl,\n env,\n experimentalAllowOFT = false,\n}: BridgeParameters) {\n const bridgeInfo = getBridgeInfo(chainId as BridgeChain, to);\n\n if (\n !bridgeInfo ||\n (!experimentalAllowOFT && bridgeInfo.type === BridgeType.OFT)\n ) {\n // The OFT bridges are disabled for now in this generic function as we're\n // working on moving all bridges to the CCIP method. OFT bridging shouldn't\n // be exposed.\n throw new Error(\n `Unsupported bridge from ${chainId} to ${to}. Please switch to the supported chains: ${CCIP_BRIDGE_CHAINS.join(', ')}`,\n );\n }\n\n switch (bridgeInfo.type) {\n case BridgeType.CCIP: {\n const txHash = await bridgeCCIP({\n to: to as CCIPBridgeChain,\n amount,\n approve,\n recipient,\n account,\n chainId,\n provider,\n env,\n rpcUrl,\n });\n\n return {\n txHash,\n explorerUrl: BRIDGE_EXPLORER_URL_MAP[BridgeType.CCIP].replace(\n '{txHash}',\n txHash,\n ),\n type: BridgeType.CCIP,\n };\n }\n\n case BridgeType.OFT: {\n const txHash = await bridgeOFT({\n to: to as OFTBridgeChain,\n amount,\n approve,\n recipient,\n account,\n chainId,\n provider,\n env,\n rpcUrl,\n });\n\n return {\n txHash,\n explorerUrl: BRIDGE_EXPLORER_URL_MAP[BridgeType.OFT].replace(\n '{txHash}',\n txHash,\n ),\n type: BridgeType.OFT,\n };\n }\n }\n}\n"],"names":["CCIP_CONFIG","ChainId","getCCIPConfig","chainId","MIN_BRIDGE_AMOUNT","BigNumber","BridgeType","BRIDGE_EXPLORER_URL_MAP","CCIP_BRIDGE_CHAINS","OFT_BRIDGE_CHAINS","unique","OFT_GAS_LIMIT","OFT_HI_GAS_LIMIT","OFT_HI_GAS_LIMIT_CHAINS","bridgeIdentifier","from","to","CCIP_FROM_ETH","CCIP_BRIDGE_ADAPTER_ABI","CCIP_FROM_BASE","CCIP_FROM_BSC","CCIP_FROM_KATANA","CCIP_FROM_SONIC","CCIP_FROM_BASE_SEPOLIA","CCIP_FROM_HOLESKY","CCIP_FROM_KATANA_TATARA","CCIP_FROM_SEPOLIA","CCIP_BRIDGES","acc","cur","c","route","OFT_BRIDGES","OFT_BRIDGE_ADAPTER_ABI","BRIDGES","getBridgeInfo","encodeExtraArgs","gasLimit","tag","encodedGasLimit","encodePacked","bridgeCCIP","amountRaw","approve","optionalRecipient","account","provider","env","rpcUrl","amount","recipient","bridgeInfo","sourceChainConfig","destinationChainConfig","routerAddress","lbtcContract","getTokenInfo","Token","publicClient","makePublicClient","walletClient","makeWalletClient","amountBase","toBigInt","toBaseDenomination","balanceRaw","balance","fromBaseDenomination","allowanceRaw","allowance","exceededMessage","txHash","approveLBTC","err","msg","getErrorMessage","receiverBytes","encodeAbiParameters","parseAbiParameters","extraArgs","message","fee","CCIP_ROUTER_ABI","request","DESTINATION_ENDPOINT_ID_MAP","bridgeOFT","bridgeContract","extraOptions","Options","sendParam","pad","nativeFee","lzTokenFee","bridgeArgs","bridge","experimentalAllowOFT"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("./token-addresses-D859i6tX.cjs"),y=JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Enter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Exit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"shareAmount","type":"uint256"}],"name":"enter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"shareAmount","type":"uint256"}],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hook","outputs":[{"internalType":"contract BeforeTransferHook","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"manage","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"manage","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_hook","type":"address"}],"name":"setBeforeTransferHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]'),d=JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"payoutAddress","type":"address"},{"internalType":"uint96","name":"startingExchangeRate","type":"uint96"},{"internalType":"address","name":"_base","type":"address"},{"internalType":"uint16","name":"allowedExchangeRateChangeUpper","type":"uint16"},{"internalType":"uint16","name":"allowedExchangeRateChangeLower","type":"uint16"},{"internalType":"uint24","name":"minimumUpdateDelayInSeconds","type":"uint24"},{"internalType":"uint16","name":"managementFee","type":"uint16"},{"internalType":"uint16","name":"performanceFee","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccountantWithRateProviders__ExchangeRateAboveHighwaterMark","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__LowerBoundTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__ManagementFeeTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__OnlyCallableByBoringVault","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__Paused","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__PerformanceFeeTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__UpdateDelayTooLarge","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__UpperBoundTooSmall","type":"error"},{"inputs":[],"name":"AccountantWithRateProviders__ZeroFeesOwed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"oldDelay","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"newDelay","type":"uint24"}],"name":"DelayInSecondsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint96","name":"oldRate","type":"uint96"},{"indexed":false,"internalType":"uint96","name":"newRate","type":"uint96"},{"indexed":false,"internalType":"uint64","name":"currentTime","type":"uint64"}],"name":"ExchangeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeAsset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeesClaimed","type":"event"},{"anonymous":false,"inputs":[],"name":"HighwaterMarkReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldBound","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newBound","type":"uint16"}],"name":"LowerBoundUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newFee","type":"uint16"}],"name":"ManagementFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPayout","type":"address"},{"indexed":false,"internalType":"address","name":"newPayout","type":"address"}],"name":"PayoutAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newFee","type":"uint16"}],"name":"PerformanceFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"bool","name":"isPegged","type":"bool"},{"indexed":false,"internalType":"address","name":"rateProvider","type":"address"}],"name":"RateProviderUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldBound","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newBound","type":"uint16"}],"name":"UpperBoundUpdated","type":"event"},{"inputs":[],"name":"accountantState","outputs":[{"internalType":"address","name":"payoutAddress","type":"address"},{"internalType":"uint96","name":"highwaterMark","type":"uint96"},{"internalType":"uint128","name":"feesOwedInBase","type":"uint128"},{"internalType":"uint128","name":"totalSharesLastUpdate","type":"uint128"},{"internalType":"uint96","name":"exchangeRate","type":"uint96"},{"internalType":"uint16","name":"allowedExchangeRateChangeUpper","type":"uint16"},{"internalType":"uint16","name":"allowedExchangeRateChangeLower","type":"uint16"},{"internalType":"uint64","name":"lastUpdateTimestamp","type":"uint64"},{"internalType":"bool","name":"isPaused","type":"bool"},{"internalType":"uint24","name":"minimumUpdateDelayInSeconds","type":"uint24"},{"internalType":"uint16","name":"managementFee","type":"uint16"},{"internalType":"uint16","name":"performanceFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"base","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"feeAsset","type":"address"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRate","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"quote","type":"address"}],"name":"getRateInQuote","outputs":[{"internalType":"uint256","name":"rateInQuote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"quote","type":"address"}],"name":"getRateInQuoteSafe","outputs":[{"internalType":"uint256","name":"rateInQuote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRateSafe","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"name":"rateProviderData","outputs":[{"internalType":"bool","name":"isPeggedToBase","type":"bool"},{"internalType":"contract IRateProvider","name":"rateProvider","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resetHighwaterMark","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"bool","name":"isPeggedToBase","type":"bool"},{"internalType":"address","name":"rateProvider","type":"address"}],"name":"setRateProviderData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"minimumUpdateDelayInSeconds","type":"uint24"}],"name":"updateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"newExchangeRate","type":"uint96"}],"name":"updateExchangeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"allowedExchangeRateChangeLower","type":"uint16"}],"name":"updateLower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"managementFee","type":"uint16"}],"name":"updateManagementFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payoutAddress","type":"address"}],"name":"updatePayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"performanceFee","type":"uint16"}],"name":"updatePerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"allowedExchangeRateChangeUpper","type":"uint16"}],"name":"updateUpper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract BoringVault","name":"","type":"address"}],"stateMutability":"view","type":"function"}]'),n=JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract Authority","name":"_auth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AtomicQueue__Paused","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__RequestDeadlineExceeded","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestAccountantOfferMismatch","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestCannotCastToUint88","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"AtomicQueue__SafeRequestDeadlineExceeded","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestDiscountTooLarge","type":"error"},{"inputs":[{"internalType":"uint256","name":"offerAmount","type":"uint256"},{"internalType":"uint256","name":"offerAllowance","type":"uint256"}],"name":"AtomicQueue__SafeRequestInsufficientOfferAllowance","type":"error"},{"inputs":[{"internalType":"uint256","name":"offerAmount","type":"uint256"},{"internalType":"uint256","name":"offerBalance","type":"uint256"}],"name":"AtomicQueue__SafeRequestOfferAmountGreaterThanOfferBalance","type":"error"},{"inputs":[],"name":"AtomicQueue__SafeRequestOfferAmountZero","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__UserNotInSolve","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__UserRepeated","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AtomicQueue__ZeroOfferAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"offerToken","type":"address"},{"indexed":true,"internalType":"address","name":"wantToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"offerAmountSpent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wantAmountReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AtomicRequestFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"offerToken","type":"address"},{"indexed":true,"internalType":"address","name":"wantToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AtomicRequestUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[],"name":"MAX_DISCOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"}],"name":"getUserAtomicRequest","outputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"userRequest","type":"tuple"}],"name":"isAtomicRequestValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"userRequest","type":"tuple"},{"internalType":"contract AccountantWithRateProviders","name":"accountant","type":"address"},{"internalType":"uint256","name":"discount","type":"uint256"}],"name":"safeUpdateAtomicRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bytes","name":"runData","type":"bytes"},{"internalType":"address","name":"solver","type":"address"}],"name":"solve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"internalType":"struct AtomicQueue.AtomicRequest","name":"userRequest","type":"tuple"}],"name":"updateAtomicRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"contract ERC20","name":"","type":"address"},{"internalType":"contract ERC20","name":"","type":"address"}],"name":"userAtomicRequest","outputs":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint88","name":"atomicPrice","type":"uint88"},{"internalType":"uint96","name":"offerAmount","type":"uint96"},{"internalType":"bool","name":"inSolve","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"internalType":"address[]","name":"users","type":"address[]"}],"name":"viewSolveMetaData","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"flags","type":"uint8"},{"internalType":"uint256","name":"assetsToOffer","type":"uint256"},{"internalType":"uint256","name":"assetsForWant","type":"uint256"}],"internalType":"struct AtomicQueue.SolveMetaData[]","name":"metaData","type":"tuple[]"},{"internalType":"uint256","name":"totalAssetsForWant","type":"uint256"},{"internalType":"uint256","name":"totalAssetsToOffer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"offer","type":"address"},{"internalType":"contract ERC20","name":"want","type":"address"},{"internalType":"address[]","name":"users","type":"address[]"}],"name":"viewVerboseSolveMetaData","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"deadlineExceeded","type":"bool"},{"internalType":"bool","name":"zeroOfferAmount","type":"bool"},{"internalType":"bool","name":"insufficientOfferBalance","type":"bool"},{"internalType":"bool","name":"insufficientOfferAllowance","type":"bool"},{"internalType":"uint256","name":"assetsToOffer","type":"uint256"},{"internalType":"uint256","name":"assetsForWant","type":"uint256"}],"internalType":"struct AtomicQueue.VerboseSolveMetaData[]","name":"metaData","type":"tuple[]"},{"internalType":"uint256","name":"totalAssetsForWant","type":"uint256"},{"internalType":"uint256","name":"totalAssetsToOffer","type":"uint256"}],"stateMutability":"view","type":"function"}]'),o=[{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract BoringVault",name:"boringVault",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"shares",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract BoringVault",name:"boringVault",type:"address"},{internalType:"contract AccountantWithRateProviders",name:"accountant",type:"address"}],name:"balanceOfInAssets",outputs:[{internalType:"uint256",name:"assets",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract ERC20",name:"depositAsset",type:"address"},{internalType:"uint256",name:"depositAmount",type:"uint256"},{internalType:"contract BoringVault",name:"boringVault",type:"address"},{internalType:"contract TellerWithMultiAssetSupport",name:"teller",type:"address"}],name:"checkUserDeposit",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract ERC20",name:"depositAsset",type:"address"},{internalType:"uint256",name:"depositAmount",type:"uint256"},{internalType:"contract TellerWithMultiAssetSupport",name:"teller",type:"address"}],name:"checkUserDepositWithPermit",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract AccountantWithRateProviders",name:"accountant",type:"address"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"rate",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract TellerWithMultiAssetSupport",name:"teller",type:"address"}],name:"isTellerPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract ERC20",name:"depositAsset",type:"address"},{internalType:"uint256",name:"depositAmount",type:"uint256"},{internalType:"contract BoringVault",name:"boringVault",type:"address"},{internalType:"contract AccountantWithRateProviders",name:"accountant",type:"address"}],name:"previewDeposit",outputs:[{internalType:"uint256",name:"shares",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract BoringVault",name:"boringVault",type:"address"},{internalType:"contract AccountantWithRateProviders",name:"accountant",type:"address"}],name:"totalAssets",outputs:[{internalType:"contract ERC20",name:"asset",type:"address"},{internalType:"uint256",name:"assets",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"contract TellerWithMultiAssetSupport",name:"teller",type:"address"}],name:"userUnlockTime",outputs:[{internalType:"uint256",name:"time",type:"uint256"}],stateMutability:"view",type:"function"}],p=JSON.parse('[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"Actions_ZeroAddress","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FeeGreaterThanMaximum","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NoDepositorSet","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"PayloadTooLarge","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"WrongChainId","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"inputs":[],"name":"ZeroDepositAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"}],"indexed":false,"internalType":"struct StakeAndBake.StakeAndBakeData","name":"data","type":"tuple"}],"name":"BatchStakeAndBakeReverted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"}],"name":"DepositorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"CLAIMER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"}],"internalType":"struct StakeAndBake.StakeAndBakeData[]","name":"data","type":"tuple[]"}],"name":"batchStakeAndBake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeAndBakeDepositor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeAndBakeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lbtc_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"operator_","type":"address"},{"internalType":"uint256","name":"fee_","type":"uint256"},{"internalType":"address","name":"claimer_","type":"address"},{"internalType":"address","name":"pauser_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"depositor","type":"address"}],"name":"setDepositor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"permitPayload","type":"bytes"},{"internalType":"bytes","name":"depositPayload","type":"bytes"},{"internalType":"bytes","name":"mintPayload","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"}],"internalType":"struct StakeAndBake.StakeAndBakeData","name":"data","type":"tuple"}],"name":"stakeAndBake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]'),a=JSON.parse('[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_accountant","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"TellerWithMultiAssetSupport__AssetNotSupported","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__BadDepositHash","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__DualDeposit","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__MinimumAssetsNotMet","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__MinimumMintNotMet","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__Paused","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__PermitFailedAndAllowanceTooLow","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__ShareLockPeriodTooLong","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__SharePremiumTooLarge","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__SharesAreLocked","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__SharesAreUnLocked","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"TellerWithMultiAssetSupport__TransferDenied","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__ZeroAssets","type":"error"},{"inputs":[],"name":"TellerWithMultiAssetSupport__ZeroShares","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"AllowFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"AllowOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"AllowTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"bool","name":"allowDeposits","type":"bool"},{"indexed":false,"internalType":"bool","name":"allowWithdraws","type":"bool"},{"indexed":false,"internalType":"uint16","name":"sharePremium","type":"uint16"}],"name":"AssetDataUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"depositAmount","type":"uint256"}],"name":"BulkDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"shareAmount","type":"uint256"}],"name":"BulkWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"DenyFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"DenyOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"DenyTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"depositAsset","type":"address"},{"indexed":false,"internalType":"uint256","name":"depositAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shareAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"depositTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shareLockPeriodAtTimeOfDeposit","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"depositHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"DepositRefunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[],"name":"accountant","outputs":[{"internalType":"contract AccountantWithRateProviders","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"allowAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"allowFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"allowOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"allowTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"name":"assetData","outputs":[{"internalType":"bool","name":"allowDeposits","type":"bool"},{"internalType":"bool","name":"allowWithdraws","type":"bool"},{"internalType":"uint16","name":"sharePremium","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"beforeTransfer","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"depositAsset","type":"address"},{"internalType":"uint256","name":"depositAmount","type":"uint256"},{"internalType":"uint256","name":"minimumMint","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"bulkDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"withdrawAsset","type":"address"},{"internalType":"uint256","name":"shareAmount","type":"uint256"},{"internalType":"uint256","name":"minimumAssets","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"bulkWithdraw","outputs":[{"internalType":"uint256","name":"assetsOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"denyAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"denyFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"denyOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"denyTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"depositAsset","type":"address"},{"internalType":"uint256","name":"depositAmount","type":"uint256"},{"internalType":"uint256","name":"minimumMint","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"depositNonce","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"depositAsset","type":"address"},{"internalType":"uint256","name":"depositAmount","type":"uint256"},{"internalType":"uint256","name":"minimumMint","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fromDenyList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeWrapper","outputs":[{"internalType":"contract WETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operatorDenyList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"publicDepositHistory","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"depositAsset","type":"address"},{"internalType":"uint256","name":"depositAmount","type":"uint256"},{"internalType":"uint256","name":"shareAmount","type":"uint256"},{"internalType":"uint256","name":"depositTimestamp","type":"uint256"},{"internalType":"uint256","name":"shareLockUpPeriodAtTimeOfDeposit","type":"uint256"}],"name":"refundDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_shareLockPeriod","type":"uint64"}],"name":"setShareLockPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareLockPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"toDenyList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"asset","type":"address"},{"internalType":"bool","name":"allowDeposits","type":"bool"},{"internalType":"bool","name":"allowWithdraws","type":"bool"},{"internalType":"uint16","name":"sharePremium","type":"uint16"}],"name":"updateAssetData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract BoringVault","name":"","type":"address"}],"stateMutability":"view","type":"function"}]'),i=[e.ChainId.ethereum,e.ChainId.base,e.ChainId.binanceSmartChain,e.ChainId.corn],l=t=>i.includes(t),m={[e.ChainId.ethereum]:"ethereum",[e.ChainId.base]:"base",[e.ChainId.corn]:"corn",[e.ChainId.binanceSmartChain]:"bnb"},T={ethereum:e.ChainId.ethereum,base:e.ChainId.base,corn:e.ChainId.corn,bnb:e.ChainId.binanceSmartChain},s=[e.ChainId.ethereum,e.ChainId.sepolia],c=t=>s.includes(t),b=e.ChainId.ethereum,f="0x5401b8620E5FB570064CA9114fd1e135fd77D57c",A="0x28634D0c5edC67CF2450E74deA49B90a4FF93dCE",h="0x5232bc0F5999f8dA604c42E1748A13a170F94A1B",M={[e.ChainId.ethereum]:{abi:a,address:"0x4E8f5128F473C6948127f9Cbca474a6700F99bab",chainId:e.ChainId.ethereum},[e.ChainId.base]:{abi:a,address:"0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3",chainId:e.ChainId.base},[e.ChainId.binanceSmartChain]:{abi:a,address:"0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3",chainId:e.ChainId.binanceSmartChain},[e.ChainId.corn]:{abi:a,address:"0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3",chainId:e.ChainId.corn}},r={[e.ChainId.ethereum]:{abi:p,address:"0xC8bbF6153D7Ba105f1399D992ebd32B0541996ef",chainId:e.ChainId.ethereum},[e.ChainId.sepolia]:{abi:p,address:"0x77eD6a84fEF665156e81247ECbd43A847B8A6398",chainId:e.ChainId.sepolia}},v={[e.ChainId.ethereum]:{abi:n,address:"0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8",chainId:e.ChainId.ethereum},[e.ChainId.base]:{abi:n,address:"0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8",chainId:e.ChainId.ethereum},[e.ChainId.binanceSmartChain]:{abi:n,address:"0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8",chainId:e.ChainId.ethereum},[e.ChainId.corn]:{abi:n,address:"0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8",chainId:e.ChainId.ethereum}};var u=(t=>(t.Veda="veda",t))(u||{});const w={veda:{defaultChainId:b,chains:i,tokens:{[e.Token.LBTC]:i,[e.Token.BTCBinance]:[e.ChainId.binanceSmartChain],[e.Token.cbBTC]:[e.ChainId.ethereum,e.ChainId.base],[e.Token.eBTC]:[e.ChainId.ethereum],[e.Token.wBTC]:[e.ChainId.ethereum],[e.Token.wBTCN]:[e.ChainId.corn]},stakeAndBakeChains:s,decimals:8,vaultContract:{abi:y,address:f},accountantContract:{abi:d,address:A},lensContract:{abi:o,address:h},spenderContracts:r,tellerContracts:M,withdrawQueueContracts:v,queueWithdrawDiscountPercent:"0.01",queueWithdrawDaysValid:"14"}};exports.NETWORK_TO_VEDA_VAULT_CHAIN_MAP=T;exports.VAULTS=w;exports.VEDA_VAULT_CHAIN_TO_NETWORK_MAP=m;exports.VEDA_VAULT_SPENDER_CONTRACTS=r;exports.VEDA_VAULT_STAKE_AND_BAKE_CHAINS=s;exports.Vault=u;exports.isVedaVaultChain=l;exports.isVedaVaultStakeAndBakeChain=c;
2
+ //# sourceMappingURL=config-DqbLaiRi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DqbLaiRi.cjs","sources":["../../src/vaults/lib/config.ts"],"sourcesContent":["import { Abi, Address } from 'viem';\n\nimport { ChainId } from '../../common/chains';\nimport { Token } from '../../tokens/token-addresses';\nimport VEDA_VAULT_ABI from '../abi/VEDA_VAULT_ABI.json';\nimport VEDA_VAULT_ACCOUNTANT_ABI from '../abi/VEDA_VAULT_ACCOUNTANT_ABI.json';\nimport VEDA_VAULT_BASE_ASSET_ABI from '../abi/VEDA_VAULT_BASE_ASSET_ABI.json';\nimport VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI from '../abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json';\nimport VEDA_VAULT_LENS_ABI from '../abi/VEDA_VAULT_LENS_ABI.json';\nimport VEDA_VAULT_SPENDER_ABI from '../abi/VEDA_VAULT_SPENDER_ABI.json';\nimport VEDA_VAULT_TELLER_ABI from '../abi/VEDA_VAULT_TELLER_ABI.json';\n\ntype ContractInfo = {\n abi: Abi;\n address: Address;\n chainId: ChainId;\n};\n\nexport const VEDA_VAULT_CHAINS = [\n ChainId.ethereum,\n ChainId.base,\n ChainId.binanceSmartChain,\n ChainId.corn,\n] as const;\n\nexport type VedaVaultChain = (typeof VEDA_VAULT_CHAINS)[number];\nexport const isVedaVaultChain = (chainId: number): chainId is VedaVaultChain =>\n VEDA_VAULT_CHAINS.includes(chainId as VedaVaultChain);\n\nexport const VEDA_VAULT_CHAIN_TO_NETWORK_MAP: Record<VedaVaultChain, string> = {\n [ChainId.ethereum]: 'ethereum',\n [ChainId.base]: 'base',\n [ChainId.corn]: 'corn',\n [ChainId.binanceSmartChain]: 'bnb',\n};\n\nexport const NETWORK_TO_VEDA_VAULT_CHAIN_MAP: Record<string, VedaVaultChain> = {\n ethereum: ChainId.ethereum,\n base: ChainId.base,\n corn: ChainId.corn,\n bnb: ChainId.binanceSmartChain,\n};\n\n/** A list of chains where stake and bake is enabled */\nexport const VEDA_VAULT_STAKE_AND_BAKE_CHAINS = [\n ChainId.ethereum,\n // Testnets:\n ChainId.sepolia,\n];\nexport type VedaVaultStakeAndBakeChain =\n (typeof VEDA_VAULT_STAKE_AND_BAKE_CHAINS)[number];\nexport const isVedaVaultStakeAndBakeChain = (\n chainId: number,\n): chainId is VedaVaultStakeAndBakeChain =>\n VEDA_VAULT_STAKE_AND_BAKE_CHAINS.includes(\n chainId as VedaVaultStakeAndBakeChain,\n );\n\nexport const VEDA_VAULT_DEFAULT_CHAIN_ID: VedaVaultChain = ChainId.ethereum;\n\nexport const VEDA_VAULT_CONTRACT = '0x5401b8620E5FB570064CA9114fd1e135fd77D57c';\nexport const VEDA_VAULT_ACCOUNTANT_CONTRACT =\n '0x28634D0c5edC67CF2450E74deA49B90a4FF93dCE';\nexport const VEDA_VAULT_LENS_CONTRACT =\n '0x5232bc0F5999f8dA604c42E1748A13a170F94A1B';\n\nexport const VEDA_VAULT_TELLER_CONTRACTS: Record<VedaVaultChain, ContractInfo> =\n {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x4E8f5128F473C6948127f9Cbca474a6700F99bab',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.base,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.binanceSmartChain,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_TELLER_ABI as Abi,\n address: '0x2eA43384F1A98765257bc6Cb26c7131dEbdEB9B3',\n chainId: ChainId.corn,\n },\n } as const;\n\n/** Stake and bake contracts */\nexport const VEDA_VAULT_SPENDER_CONTRACTS: Record<\n VedaVaultStakeAndBakeChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0xC8bbF6153D7Ba105f1399D992ebd32B0541996ef',\n chainId: ChainId.ethereum,\n },\n // Testnets:\n [ChainId.sepolia]: {\n abi: VEDA_VAULT_SPENDER_ABI as Abi,\n address: '0x77eD6a84fEF665156e81247ECbd43A847B8A6398',\n chainId: ChainId.sepolia,\n },\n} as const;\n\nexport const VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS: Record<\n VedaVaultChain,\n ContractInfo\n> = {\n [ChainId.ethereum]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.base]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.binanceSmartChain]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n [ChainId.corn]: {\n abi: VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI as Abi,\n address: '0x3b4aCd8879fb60586cCd74bC2F831A4C5E7DbBf8',\n chainId: ChainId.ethereum,\n },\n};\n\nexport const VEDA_VAULT_BASE_ASSET = {\n abi: VEDA_VAULT_BASE_ASSET_ABI,\n symbol: 'WBTC',\n displayName: 'wBTC',\n address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n decimals: 8,\n};\n\nexport enum Vault {\n Veda = 'veda',\n}\n\nexport const VaultNameMap = {\n [Vault.Veda]: 'Veda / Lombard DeFi Vault',\n} as const;\n\nexport const VAULTS = {\n [Vault.Veda]: {\n defaultChainId: VEDA_VAULT_DEFAULT_CHAIN_ID,\n chains: VEDA_VAULT_CHAINS,\n tokens: {\n [Token.LBTC]: VEDA_VAULT_CHAINS,\n [Token.BTCBinance]: [ChainId.binanceSmartChain],\n [Token.cbBTC]: [ChainId.ethereum, ChainId.base],\n [Token.eBTC]: [ChainId.ethereum],\n [Token.wBTC]: [ChainId.ethereum],\n [Token.wBTCN]: [ChainId.corn],\n },\n stakeAndBakeChains: VEDA_VAULT_STAKE_AND_BAKE_CHAINS,\n decimals: 8,\n vaultContract: {\n abi: VEDA_VAULT_ABI,\n address: VEDA_VAULT_CONTRACT,\n },\n accountantContract: {\n abi: VEDA_VAULT_ACCOUNTANT_ABI,\n address: VEDA_VAULT_ACCOUNTANT_CONTRACT,\n },\n lensContract: {\n abi: VEDA_VAULT_LENS_ABI,\n address: VEDA_VAULT_LENS_CONTRACT,\n },\n spenderContracts: VEDA_VAULT_SPENDER_CONTRACTS,\n tellerContracts: VEDA_VAULT_TELLER_CONTRACTS,\n withdrawQueueContracts: VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS,\n\n queueWithdrawDiscountPercent: '0.01',\n queueWithdrawDaysValid: '14',\n },\n} as const;\n"],"names":["VEDA_VAULT_CHAINS","ChainId","isVedaVaultChain","chainId","VEDA_VAULT_CHAIN_TO_NETWORK_MAP","NETWORK_TO_VEDA_VAULT_CHAIN_MAP","VEDA_VAULT_STAKE_AND_BAKE_CHAINS","isVedaVaultStakeAndBakeChain","VEDA_VAULT_DEFAULT_CHAIN_ID","VEDA_VAULT_CONTRACT","VEDA_VAULT_ACCOUNTANT_CONTRACT","VEDA_VAULT_LENS_CONTRACT","VEDA_VAULT_TELLER_CONTRACTS","VEDA_VAULT_TELLER_ABI","VEDA_VAULT_SPENDER_CONTRACTS","VEDA_VAULT_SPENDER_ABI","VEDA_VAULT_WITHDRAW_QUEUE_CONTRACTS","VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI","Vault","VAULTS","Token","VEDA_VAULT_ABI","VEDA_VAULT_ACCOUNTANT_ABI","VEDA_VAULT_LENS_ABI"],"mappings":"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"}