@lombard.finance/sdk 5.0.2 → 5.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.d.ts +13 -0
  3. package/dist/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.d.ts.map +1 -1
  4. package/dist/api.cjs +1 -1
  5. package/dist/api.js +12 -11
  6. package/dist/api.js.map +1 -1
  7. package/dist/bridge.cjs +1 -1
  8. package/dist/bridge.js +1 -1
  9. package/dist/btc.cjs +1 -1
  10. package/dist/btc.js +2 -2
  11. package/dist/chains/btc/actions/stake/config/evm.d.ts.map +1 -1
  12. package/dist/chunks/{BtcActions-CJY0V8JC.js → BtcActions-D7HekjRg.js} +236 -217
  13. package/dist/chunks/{BtcActions-CJY0V8JC.js.map → BtcActions-D7HekjRg.js.map} +1 -1
  14. package/dist/chunks/BtcActions-lp4P72ln.cjs +2 -0
  15. package/dist/chunks/{BtcActions-B9KwzjIG.cjs.map → BtcActions-lp4P72ln.cjs.map} +1 -1
  16. package/dist/chunks/EvmActions-CynfSVFq.cjs +7 -0
  17. package/dist/chunks/{EvmActions-DBAcQeMr.cjs.map → EvmActions-CynfSVFq.cjs.map} +1 -1
  18. package/dist/chunks/{EvmActions-BGlhbADC.js → EvmActions-nbR8cSa4.js} +38 -37
  19. package/dist/chunks/{EvmActions-BGlhbADC.js.map → EvmActions-nbR8cSa4.js.map} +1 -1
  20. package/dist/chunks/{ReferralsClient-o-3AUm7s.cjs → ReferralsClient-B65Nsk21.cjs} +2 -2
  21. package/dist/chunks/{ReferralsClient-o-3AUm7s.cjs.map → ReferralsClient-B65Nsk21.cjs.map} +1 -1
  22. package/dist/chunks/{ReferralsClient-BRa26dYS.js → ReferralsClient-BNwB6wO4.js} +2 -2
  23. package/dist/chunks/{ReferralsClient-BRa26dYS.js.map → ReferralsClient-BNwB6wO4.js.map} +1 -1
  24. package/dist/chunks/{approveLBTC-BBl3KcT2.cjs → approveLBTC-B1QepkpF.cjs} +2 -2
  25. package/dist/chunks/{approveLBTC-BBl3KcT2.cjs.map → approveLBTC-B1QepkpF.cjs.map} +1 -1
  26. package/dist/chunks/{approveLBTC-DnCt6ZZF.js → approveLBTC-BFhW5cPX.js} +2 -2
  27. package/dist/chunks/{approveLBTC-DnCt6ZZF.js.map → approveLBTC-BFhW5cPX.js.map} +1 -1
  28. package/dist/chunks/{bridge-DZp5x4Yb.cjs → bridge-CQmXrRKS.cjs} +2 -2
  29. package/dist/chunks/{bridge-DZp5x4Yb.cjs.map → bridge-CQmXrRKS.cjs.map} +1 -1
  30. package/dist/chunks/{bridge-DV4fOcHe.js → bridge-DnDIoRdh.js} +3 -3
  31. package/dist/chunks/{bridge-DV4fOcHe.js.map → bridge-DnDIoRdh.js.map} +1 -1
  32. package/dist/chunks/depositStatus-DUXMloTa.cjs +2 -0
  33. package/dist/chunks/{depositStatus-B9P1YXEU.cjs.map → depositStatus-DUXMloTa.cjs.map} +1 -1
  34. package/dist/chunks/{depositStatus-Cgd_GDUt.js → depositStatus-hmXphYhu.js} +4 -4
  35. package/dist/chunks/{depositStatus-Cgd_GDUt.js.map → depositStatus-hmXphYhu.js.map} +1 -1
  36. package/dist/chunks/{events-od93kR_o.js → events-BP_Ahnsm.js} +47 -45
  37. package/dist/chunks/events-BP_Ahnsm.js.map +1 -0
  38. package/dist/chunks/events-DY2qn8Q0.cjs +2 -0
  39. package/dist/chunks/events-DY2qn8Q0.cjs.map +1 -0
  40. package/dist/chunks/{get-vault-tvl-B6rSrGi_.js → get-vault-tvl-CweOpdGy.js} +58 -55
  41. package/dist/chunks/get-vault-tvl-CweOpdGy.js.map +1 -0
  42. package/dist/chunks/get-vault-tvl-vH_D4tu0.cjs +2 -0
  43. package/dist/chunks/get-vault-tvl-vH_D4tu0.cjs.map +1 -0
  44. package/dist/chunks/{get-vault-withdrawals-W5CgNbqE.js → get-vault-withdrawals-BayGky8y.js} +44 -38
  45. package/dist/chunks/get-vault-withdrawals-BayGky8y.js.map +1 -0
  46. package/dist/chunks/get-vault-withdrawals-GHCAh3wp.cjs +2 -0
  47. package/dist/chunks/get-vault-withdrawals-GHCAh3wp.cjs.map +1 -0
  48. package/dist/chunks/getNetworkFeeSignature-DqKLslZc.cjs +2 -0
  49. package/dist/chunks/getNetworkFeeSignature-DqKLslZc.cjs.map +1 -0
  50. package/dist/chunks/getNetworkFeeSignature-FuDJWrMC.js +38 -0
  51. package/dist/chunks/getNetworkFeeSignature-FuDJWrMC.js.map +1 -0
  52. package/dist/chunks/{getUserStakeAndBakeSignature-BRhWFYyY.js → getUserStakeAndBakeSignature-CQsvL79O.js} +2 -2
  53. package/dist/chunks/{getUserStakeAndBakeSignature-BRhWFYyY.js.map → getUserStakeAndBakeSignature-CQsvL79O.js.map} +1 -1
  54. package/dist/chunks/{getUserStakeAndBakeSignature-VlC_GHmz.cjs → getUserStakeAndBakeSignature-Cwwx89pR.cjs} +2 -2
  55. package/dist/chunks/{getUserStakeAndBakeSignature-VlC_GHmz.cjs.map → getUserStakeAndBakeSignature-Cwwx89pR.cjs.map} +1 -1
  56. package/dist/chunks/statusConstants-D4DN05kK.cjs +2 -0
  57. package/dist/chunks/{statusConstants-CP33VFvI.cjs.map → statusConstants-D4DN05kK.cjs.map} +1 -1
  58. package/dist/chunks/{statusConstants-sPFaTvG2.js → statusConstants-DLrd03gT.js} +3 -3
  59. package/dist/chunks/{statusConstants-sPFaTvG2.js.map → statusConstants-DLrd03gT.js.map} +1 -1
  60. package/dist/chunks/storeNetworkFeeSignature-BaG3AU8U.cjs +2 -0
  61. package/dist/chunks/storeNetworkFeeSignature-BaG3AU8U.cjs.map +1 -0
  62. package/dist/chunks/storeNetworkFeeSignature-sCt4_nHr.js +52 -0
  63. package/dist/chunks/storeNetworkFeeSignature-sCt4_nHr.js.map +1 -0
  64. package/dist/chunks/{tokens-Btl3GXbc.js → tokens-BUrC15ra.js} +5 -5
  65. package/dist/chunks/{tokens-Btl3GXbc.js.map → tokens-BUrC15ra.js.map} +1 -1
  66. package/dist/chunks/{tokens-DEYY7W7O.cjs → tokens-C5rzCTTM.cjs} +2 -2
  67. package/dist/chunks/{tokens-DEYY7W7O.cjs.map → tokens-C5rzCTTM.cjs.map} +1 -1
  68. package/dist/chunks/{unwrapBtceToLbtcv-Cu9KedO1.js → unwrapBtceToLbtcv-BL5bF9y2.js} +3 -3
  69. package/dist/chunks/{unwrapBtceToLbtcv-Cu9KedO1.js.map → unwrapBtceToLbtcv-BL5bF9y2.js.map} +1 -1
  70. package/dist/chunks/{unwrapBtceToLbtcv-BlRUepkS.cjs → unwrapBtceToLbtcv-Chc_QObp.cjs} +2 -2
  71. package/dist/chunks/{unwrapBtceToLbtcv-BlRUepkS.cjs.map → unwrapBtceToLbtcv-Chc_QObp.cjs.map} +1 -1
  72. package/dist/chunks/{withdrawEarn-D835YnBD.js → withdrawEarn-BM_JOe4k.js} +2 -2
  73. package/dist/chunks/{withdrawEarn-D835YnBD.js.map → withdrawEarn-BM_JOe4k.js.map} +1 -1
  74. package/dist/chunks/{withdrawEarn-CVQYjOoY.cjs → withdrawEarn-CXfCmXJl.cjs} +2 -2
  75. package/dist/chunks/{withdrawEarn-CVQYjOoY.cjs.map → withdrawEarn-CXfCmXJl.cjs.map} +1 -1
  76. package/dist/client/ApiNamespace.d.ts.map +1 -1
  77. package/dist/common/chains.d.ts +3 -0
  78. package/dist/common/chains.d.ts.map +1 -1
  79. package/dist/contracts.cjs +1 -1
  80. package/dist/contracts.js +3 -3
  81. package/dist/core.cjs +1 -1
  82. package/dist/core.js +6 -6
  83. package/dist/evm.cjs +1 -1
  84. package/dist/evm.js +3 -3
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.d.ts +1 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +264 -263
  89. package/dist/tokens/tokens.d.ts +1 -1
  90. package/dist/tokens/tokens.d.ts.map +1 -1
  91. package/dist/utils.cjs +1 -1
  92. package/dist/utils.js +1 -1
  93. package/dist/vaults/lib/ops/get-vault-deposits.d.ts +3 -2
  94. package/dist/vaults/lib/ops/get-vault-deposits.d.ts.map +1 -1
  95. package/dist/vaults/lib/ops/get-vault-withdrawals.d.ts +3 -2
  96. package/dist/vaults/lib/ops/get-vault-withdrawals.d.ts.map +1 -1
  97. package/dist/vaults.cjs +1 -1
  98. package/dist/vaults.js +3 -3
  99. package/package.json +1 -1
  100. package/dist/chunks/BtcActions-B9KwzjIG.cjs +0 -2
  101. package/dist/chunks/EvmActions-DBAcQeMr.cjs +0 -7
  102. package/dist/chunks/constants-D1FnS2Z8.js +0 -6
  103. package/dist/chunks/constants-D1FnS2Z8.js.map +0 -1
  104. package/dist/chunks/constants-ueShGH9R.cjs +0 -2
  105. package/dist/chunks/constants-ueShGH9R.cjs.map +0 -1
  106. package/dist/chunks/depositStatus-B9P1YXEU.cjs +0 -2
  107. package/dist/chunks/events-DBUF2B7z.cjs +0 -2
  108. package/dist/chunks/events-DBUF2B7z.cjs.map +0 -1
  109. package/dist/chunks/events-od93kR_o.js.map +0 -1
  110. package/dist/chunks/get-vault-tvl-B6rSrGi_.js.map +0 -1
  111. package/dist/chunks/get-vault-tvl-dvEPPxvT.cjs +0 -2
  112. package/dist/chunks/get-vault-tvl-dvEPPxvT.cjs.map +0 -1
  113. package/dist/chunks/get-vault-withdrawals-Cgx7VsM1.cjs +0 -2
  114. package/dist/chunks/get-vault-withdrawals-Cgx7VsM1.cjs.map +0 -1
  115. package/dist/chunks/get-vault-withdrawals-W5CgNbqE.js.map +0 -1
  116. package/dist/chunks/statusConstants-CP33VFvI.cjs +0 -2
  117. package/dist/chunks/storeNetworkFeeSignature-CY_Z-Wtn.js +0 -65
  118. package/dist/chunks/storeNetworkFeeSignature-CY_Z-Wtn.js.map +0 -1
  119. package/dist/chunks/storeNetworkFeeSignature-DJgBfZp7.cjs +0 -2
  120. package/dist/chunks/storeNetworkFeeSignature-DJgBfZp7.cjs.map +0 -1
package/dist/utils.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("./chunks/index-BKzxeh1Y.cjs"),S=require("./chunks/api-config-DkXqqfCK.cjs"),t=require("./chunks/blockchain-identifier-DWfC3Es2.cjs"),e=require("./chunks/token-addresses-C7H9E4qz.cjs"),a=require("./chunks/fee-requirements-CICSxYYL.cjs"),s=require("./chunks/lbtc-addresses-D3jG1VUC.cjs"),n=require("./chunks/tokens-DEYY7W7O.cjs"),o=require("./chunks/satoshi-CZEsHl5X.cjs"),i=require("./chunks/parameters-YNWmaAho.cjs"),r=require("./chunks/hex-DeJtv8eu.cjs");exports.Env=A.r;exports.getApiConfig=S.getApiConfig;exports.BlockchainIdentifier=t.BlockchainIdentifier;exports.getBaseNetworkByEnv=t.getBaseNetworkByEnv;exports.getBscNetworkByEnv=t.getBscNetworkByEnv;exports.getChainIdByName=t.getChainIdByName;exports.getChainNameById=t.getChainNameById;exports.getEthNetworkByEnv=t.getEthNetworkByEnv;exports.getSolanaNetworkByEnv=t.getSolanaNetworkByEnv;exports.getSonicNetworkByEnv=t.getSonicNetworkByEnv;exports.getStarknetNetworkByEnv=t.getStarknetNetworkByEnv;exports.getSuiNetworkByEnv=t.getSuiNetworkByEnv;exports.AddressKind=e.AddressKind;exports.CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP=e.CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP;exports.CHAIN_ID_TO_VIEM_CHAIN_MAP=e.CHAIN_ID_TO_VIEM_CHAIN_MAP;exports.ChainId=e.ChainId;exports.EVM_LBTC_ADDRESSES=e.EVM_LBTC_ADDRESSES;exports.RATIO_TOKEN_MAP=e.RATIO_TOKEN_MAP;exports.SOLANA_DEVNET_CHAIN=e.SOLANA_DEVNET_CHAIN;exports.SOLANA_MAINNET_CHAIN=e.SOLANA_MAINNET_CHAIN;exports.SOLANA_TESTNET_CHAIN=e.SOLANA_TESTNET_CHAIN;exports.SOLANA_TOKEN_ADDRESSES=e.SOLANA_TOKEN_ADDRESSES;exports.STARKNET_ASSET_ROUTER_ADDRESSES=e.STARKNET_ASSET_ROUTER_ADDRESSES;exports.STARKNET_MAINNET_CHAIN=e.STARKNET_MAINNET_CHAIN;exports.STARKNET_SEPOLIA_CHAIN=e.STARKNET_SEPOLIA_CHAIN;exports.STARKNET_TOKEN_ADDRESSES=e.STARKNET_TOKEN_ADDRESSES;exports.SUI_DEVNET_CHAIN=e.SUI_DEVNET_CHAIN;exports.SUI_LOCALNET_CHAIN=e.SUI_LOCALNET_CHAIN;exports.SUI_MAINNET_CHAIN=e.SUI_MAINNET_CHAIN;exports.SUI_TESTNET_CHAIN=e.SUI_TESTNET_CHAIN;exports.SUI_TOKEN_ADDRESSES=e.SUI_TOKEN_ADDRESSES;exports.TOKEN_ADDRESSES=e.TOKEN_ADDRESSES;exports.Token=e.Token;exports.addChain=e.addChain;exports.allChains=e.allChains;exports.bob=e.bob;exports.bobSepolia=e.bobSepolia;exports.getChain=e.getChain;exports.getLlamaChainName=e.getLlamaChainName;exports.getSolanaTokenAddress=e.getSolanaTokenAddress;exports.getStarknetTokenAddress=e.getStarknetTokenAddress;exports.getSuiTokenAddress=e.getSuiTokenAddress;exports.getTokenAddressForChain=e.getTokenAddressForChain;exports.getTokenByAddress=e.getTokenByAddress;exports.isEthereumChain=e.isEthereumChain;exports.isKatanaChain=e.isKatanaChain;exports.isMegaethChain=e.isMegaethChain;exports.isMonadChain=e.isMonadChain;exports.isSolanaChain=e.isSolanaChain;exports.isStableChain=e.isStableChain;exports.isStarknetChainId=e.isStarknetChainId;exports.isSuiChain=e.isSuiChain;exports.isValidChain=e.isValidChain;exports.katana=e.katana;exports.megaeth=e.megaeth;exports.monad=e.monad;exports.stable=e.stable;exports.tac=e.tac;exports.AUTO_MINT_FEE_CHAINS=a.AUTO_MINT_FEE_CHAINS;exports.requiresAutoMintFee=a.requiresAutoMintFee;exports.getLbtcContractAddresses=s.getLbtcContractAddresses;exports.RPC_URL=n.RPC_URL;exports.TokenContractAddressNotFoundError=n.TokenContractAddressNotFoundError;exports.UnsupportedTokenFlow=n.UnsupportedTokenFlow;exports.fromBaseDenomination=n.fromBaseDenomination;exports.getErrorMessage=n.getErrorMessage;exports.getRpcUrlConfig=n.getRpcUrlConfig;exports.getTokenContractInfo=n.getTokenContractInfo;exports.isUpgradedAbi=n.isUpgradedAbi;exports.retrieveTokenProperties=n.retrieveTokenProperties;exports.rpcUrlConfig=n.rpcUrlConfig;exports.toBaseDenomination=n.toBaseDenomination;exports.BTC_DECIMALS=o.BTC_DECIMALS;exports.SATOSHI_SCALE=o.SATOSHI_SCALE;exports.fromSatoshi=o.fromSatoshi;exports.toSatoshi=o.toSatoshi;exports.toSatoshiBigInt=o.toSatoshiBigInt;exports.DAY=i.DAY;exports.HOUR=i.HOUR;exports.MINUTE=i.MINUTE;exports.SECOND=i.SECOND;exports.isProviderFlow=i.isProviderFlow;exports.isSignerFlow=i.isSignerFlow;exports.now=i.now;exports.toUnix=i.toUnix;exports.ensureHex=r.ensureHex;exports.isHex=r.isHex;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("./chunks/index-BKzxeh1Y.cjs"),S=require("./chunks/api-config-DkXqqfCK.cjs"),t=require("./chunks/blockchain-identifier-DWfC3Es2.cjs"),e=require("./chunks/token-addresses-C7H9E4qz.cjs"),a=require("./chunks/fee-requirements-CICSxYYL.cjs"),s=require("./chunks/lbtc-addresses-D3jG1VUC.cjs"),n=require("./chunks/tokens-C5rzCTTM.cjs"),o=require("./chunks/satoshi-CZEsHl5X.cjs"),i=require("./chunks/parameters-YNWmaAho.cjs"),r=require("./chunks/hex-DeJtv8eu.cjs");exports.Env=A.r;exports.getApiConfig=S.getApiConfig;exports.BlockchainIdentifier=t.BlockchainIdentifier;exports.getBaseNetworkByEnv=t.getBaseNetworkByEnv;exports.getBscNetworkByEnv=t.getBscNetworkByEnv;exports.getChainIdByName=t.getChainIdByName;exports.getChainNameById=t.getChainNameById;exports.getEthNetworkByEnv=t.getEthNetworkByEnv;exports.getSolanaNetworkByEnv=t.getSolanaNetworkByEnv;exports.getSonicNetworkByEnv=t.getSonicNetworkByEnv;exports.getStarknetNetworkByEnv=t.getStarknetNetworkByEnv;exports.getSuiNetworkByEnv=t.getSuiNetworkByEnv;exports.AddressKind=e.AddressKind;exports.CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP=e.CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP;exports.CHAIN_ID_TO_VIEM_CHAIN_MAP=e.CHAIN_ID_TO_VIEM_CHAIN_MAP;exports.ChainId=e.ChainId;exports.EVM_LBTC_ADDRESSES=e.EVM_LBTC_ADDRESSES;exports.RATIO_TOKEN_MAP=e.RATIO_TOKEN_MAP;exports.SOLANA_DEVNET_CHAIN=e.SOLANA_DEVNET_CHAIN;exports.SOLANA_MAINNET_CHAIN=e.SOLANA_MAINNET_CHAIN;exports.SOLANA_TESTNET_CHAIN=e.SOLANA_TESTNET_CHAIN;exports.SOLANA_TOKEN_ADDRESSES=e.SOLANA_TOKEN_ADDRESSES;exports.STARKNET_ASSET_ROUTER_ADDRESSES=e.STARKNET_ASSET_ROUTER_ADDRESSES;exports.STARKNET_MAINNET_CHAIN=e.STARKNET_MAINNET_CHAIN;exports.STARKNET_SEPOLIA_CHAIN=e.STARKNET_SEPOLIA_CHAIN;exports.STARKNET_TOKEN_ADDRESSES=e.STARKNET_TOKEN_ADDRESSES;exports.SUI_DEVNET_CHAIN=e.SUI_DEVNET_CHAIN;exports.SUI_LOCALNET_CHAIN=e.SUI_LOCALNET_CHAIN;exports.SUI_MAINNET_CHAIN=e.SUI_MAINNET_CHAIN;exports.SUI_TESTNET_CHAIN=e.SUI_TESTNET_CHAIN;exports.SUI_TOKEN_ADDRESSES=e.SUI_TOKEN_ADDRESSES;exports.TOKEN_ADDRESSES=e.TOKEN_ADDRESSES;exports.Token=e.Token;exports.addChain=e.addChain;exports.allChains=e.allChains;exports.bob=e.bob;exports.bobSepolia=e.bobSepolia;exports.getChain=e.getChain;exports.getLlamaChainName=e.getLlamaChainName;exports.getSolanaTokenAddress=e.getSolanaTokenAddress;exports.getStarknetTokenAddress=e.getStarknetTokenAddress;exports.getSuiTokenAddress=e.getSuiTokenAddress;exports.getTokenAddressForChain=e.getTokenAddressForChain;exports.getTokenByAddress=e.getTokenByAddress;exports.isEthereumChain=e.isEthereumChain;exports.isKatanaChain=e.isKatanaChain;exports.isMegaethChain=e.isMegaethChain;exports.isMonadChain=e.isMonadChain;exports.isSolanaChain=e.isSolanaChain;exports.isStableChain=e.isStableChain;exports.isStarknetChainId=e.isStarknetChainId;exports.isSuiChain=e.isSuiChain;exports.isValidChain=e.isValidChain;exports.katana=e.katana;exports.megaeth=e.megaeth;exports.monad=e.monad;exports.stable=e.stable;exports.tac=e.tac;exports.AUTO_MINT_FEE_CHAINS=a.AUTO_MINT_FEE_CHAINS;exports.requiresAutoMintFee=a.requiresAutoMintFee;exports.getLbtcContractAddresses=s.getLbtcContractAddresses;exports.RPC_URL=n.RPC_URL;exports.TokenContractAddressNotFoundError=n.TokenContractAddressNotFoundError;exports.UnsupportedTokenFlow=n.UnsupportedTokenFlow;exports.fromBaseDenomination=n.fromBaseDenomination;exports.getErrorMessage=n.getErrorMessage;exports.getRpcUrlConfig=n.getRpcUrlConfig;exports.getTokenContractInfo=n.getTokenContractInfo;exports.isUpgradedAbi=n.isUpgradedAbi;exports.retrieveTokenProperties=n.retrieveTokenProperties;exports.rpcUrlConfig=n.rpcUrlConfig;exports.toBaseDenomination=n.toBaseDenomination;exports.BTC_DECIMALS=o.BTC_DECIMALS;exports.SATOSHI_SCALE=o.SATOSHI_SCALE;exports.fromSatoshi=o.fromSatoshi;exports.toSatoshi=o.toSatoshi;exports.toSatoshiBigInt=o.toSatoshiBigInt;exports.DAY=i.DAY;exports.HOUR=i.HOUR;exports.MINUTE=i.MINUTE;exports.SECOND=i.SECOND;exports.isProviderFlow=i.isProviderFlow;exports.isSignerFlow=i.isSignerFlow;exports.now=i.now;exports.toUnix=i.toUnix;exports.ensureHex=r.ensureHex;exports.isHex=r.isHex;
2
2
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.js CHANGED
@@ -4,7 +4,7 @@ import { BlockchainIdentifier as A, getBaseNetworkByEnv as i, getBscNetworkByEnv
4
4
  import { AddressKind as g, CHAIN_ID_TO_LLAMA_CHAIN_NAME_MAP as h, CHAIN_ID_TO_VIEM_CHAIN_MAP as k, ChainId as m, EVM_LBTC_ADDRESSES as D, RATIO_TOKEN_MAP as O, SOLANA_DEVNET_CHAIN as p, SOLANA_MAINNET_CHAIN as B, SOLANA_TESTNET_CHAIN as H, SOLANA_TOKEN_ADDRESSES as f, STARKNET_ASSET_ROUTER_ADDRESSES as M, STARKNET_MAINNET_CHAIN as R, STARKNET_SEPOLIA_CHAIN as l, STARKNET_TOKEN_ADDRESSES as L, SUI_DEVNET_CHAIN as U, SUI_LOCALNET_CHAIN as x, SUI_MAINNET_CHAIN as c, SUI_TESTNET_CHAIN as w, SUI_TOKEN_ADDRESSES as K, TOKEN_ADDRESSES as v, Token as y, addChain as u, allChains as b, bob as F, bobSepolia as P, getChain as V, getLlamaChainName as q, getSolanaTokenAddress as Y, getStarknetTokenAddress as j, getSuiTokenAddress as z, getTokenAddressForChain as G, getTokenByAddress as J, isEthereumChain as Q, isKatanaChain as W, isMegaethChain as X, isMonadChain as Z, isSolanaChain as $, isStableChain as ee, isStarknetChainId as oe, isSuiChain as te, isValidChain as ne, katana as re, megaeth as ae, monad as Ae, stable as ie, tac as Se } from "./chunks/token-addresses-DVnRPyu4.js";
5
5
  import { AUTO_MINT_FEE_CHAINS as Ne, requiresAutoMintFee as _e } from "./chunks/fee-requirements-CCNsxAvJ.js";
6
6
  import { getLbtcContractAddresses as Te } from "./chunks/lbtc-addresses-ClXt-tuB.js";
7
- import { RPC_URL as Ie, TokenContractAddressNotFoundError as de, UnsupportedTokenFlow as ge, fromBaseDenomination as he, getErrorMessage as ke, getRpcUrlConfig as me, getTokenContractInfo as De, isUpgradedAbi as Oe, retrieveTokenProperties as pe, rpcUrlConfig as Be, toBaseDenomination as He } from "./chunks/tokens-Btl3GXbc.js";
7
+ import { RPC_URL as Ie, TokenContractAddressNotFoundError as de, UnsupportedTokenFlow as ge, fromBaseDenomination as he, getErrorMessage as ke, getRpcUrlConfig as me, getTokenContractInfo as De, isUpgradedAbi as Oe, retrieveTokenProperties as pe, rpcUrlConfig as Be, toBaseDenomination as He } from "./chunks/tokens-BUrC15ra.js";
8
8
  import { BTC_DECIMALS as Me, SATOSHI_SCALE as Re, fromSatoshi as le, toSatoshi as Le, toSatoshiBigInt as Ue } from "./chunks/satoshi-CSoJBXc6.js";
9
9
  import { DAY as ce, HOUR as we, MINUTE as Ke, SECOND as ve, isProviderFlow as ye, isSignerFlow as ue, now as be, toUnix as Fe } from "./chunks/parameters-CcpaKGU2.js";
10
10
  import { ensureHex as Ve, isHex as qe } from "./chunks/hex-BiCL4CPh.js";
@@ -35,7 +35,7 @@ export type EarnDeposit = {
35
35
  * @returns {Promise<EarnDeposit[]>}
36
36
  */
37
37
  export declare function getEarnDeposits({ account, chainId, rpcUrl, env, }: GetEarnDepositsParameters): Promise<EarnDeposit[]>;
38
- export type GetEarnDepositsAllChainsParameters = {
38
+ export type GetEarnDepositsAllChainsParameters = IEnvParam & {
39
39
  account: Address;
40
40
  rpcUrl?: string;
41
41
  };
@@ -46,8 +46,9 @@ export type GetEarnDepositsAllChainsParameters = {
46
46
  * @param parameters - The parameters.
47
47
  * @param parameters.account - The account address.
48
48
  * @param parameters.rpcUrl - The optional RPC url.
49
+ * @param parameters.env - The optional environment identifier.
49
50
  *
50
51
  * @returns {Promise<EarnDeposit[]>} All deposits across all supported chains, sorted by block number (newest first)
51
52
  */
52
- export declare function getEarnDepositsAllChains({ account, rpcUrl, }: GetEarnDepositsAllChainsParameters): Promise<EarnDeposit[]>;
53
+ export declare function getEarnDepositsAllChains({ account, rpcUrl, env, }: GetEarnDepositsAllChainsParameters): Promise<EarnDeposit[]>;
53
54
  //# sourceMappingURL=get-vault-deposits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vault-deposits.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-deposits.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,SAAS,EAGV,MAAM,WAAW,CAAC;AA4CnB,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,2BAA2B;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,2BAA2B;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,oCAAoC;IACpC,WAAW,EAAE,SAAS,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,yBAAyB,0BAyD3B;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,MAAM,GACP,EAAE,kCAAkC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAe7D"}
1
+ {"version":3,"file":"get-vault-deposits.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-deposits.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,SAAS,EAGV,MAAM,WAAW,CAAC;AA4CnB,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,2BAA2B;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,2BAA2B;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,oCAAoC;IACpC,WAAW,EAAE,SAAS,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,yBAAyB,0BAyD3B;AAED,MAAM,MAAM,kCAAkC,GAAG,SAAS,GAAG;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,kCAAkC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAiB7D"}
@@ -52,7 +52,7 @@ export type EarnWithdrawals = {
52
52
  * @returns {Promise<EarnWithdrawals>}
53
53
  */
54
54
  export declare function getEarnWithdrawals({ account, chainId, rpcUrl, env, }: GetEarnWithdrawalsParameters): Promise<EarnWithdrawals>;
55
- export type GetEarnWithdrawalsAllChainsParameters = {
55
+ export type GetEarnWithdrawalsAllChainsParameters = IEnvParam & {
56
56
  account: Address;
57
57
  rpcUrl?: string;
58
58
  };
@@ -63,8 +63,9 @@ export type GetEarnWithdrawalsAllChainsParameters = {
63
63
  * @param parameters - The parameters.
64
64
  * @param parameters.account - The account address.
65
65
  * @param parameters.rpcUrl - The optional RPC url.
66
+ * @param parameters.env - The optional environment identifier.
66
67
  *
67
68
  * @returns {Promise<EarnWithdrawals>} All withdrawals across all supported chains, categorized and sorted
68
69
  */
69
- export declare function getEarnWithdrawalsAllChains({ account, rpcUrl, }: GetEarnWithdrawalsAllChainsParameters): Promise<EarnWithdrawals>;
70
+ export declare function getEarnWithdrawalsAllChains({ account, rpcUrl, env, }: GetEarnWithdrawalsAllChainsParameters): Promise<EarnWithdrawals>;
70
71
  //# sourceMappingURL=get-vault-withdrawals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vault-withdrawals.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-withdrawals.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,SAAS,EAEV,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,qCAAqC;IACrC,WAAW,EAAE,SAAS,CAAC;IACvB,oCAAoC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,EAAE,IAAI,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,CAAC;AA8DF;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,4BAA4B,4BAwI9B;AAED,MAAM,MAAM,qCAAqC,GAAG;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,MAAM,GACP,EAAE,qCAAqC,GAAG,OAAO,CAAC,eAAe,CAAC,CAyClE"}
1
+ {"version":3,"file":"get-vault-withdrawals.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lib/ops/get-vault-withdrawals.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAGL,SAAS,EACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,SAAS,EAEV,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,qCAAqC;IACrC,WAAW,EAAE,SAAS,CAAC;IACvB,oCAAoC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,EAAE,IAAI,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,CAAC;AA8DF;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,4BAA4B,4BAwI9B;AAED,MAAM,MAAM,qCAAqC,GAAG,SAAS,GAAG;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,MAAM,EACN,GAAG,GACJ,EAAE,qCAAqC,GAAG,OAAO,CAAC,eAAe,CAAC,CA8ClE"}
package/dist/vaults.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("./chunks/get-vault-tvl-dvEPPxvT.cjs"),s=require("./chunks/tokens-DEYY7W7O.cjs"),t=require("./chunks/token-addresses-C7H9E4qz.cjs"),v=require("./chunks/config-BfX8lrdO.cjs"),k=require("./chunks/get-vault-withdrawals-Cgx7VsM1.cjs"),y=require("bignumber.js"),N=require("./chunks/numbers-3LtmxfD8.cjs");async function L({token:o=t.Token.LBTC,chainId:n=t.ChainId.ethereum,rpcUrl:c,env:m}={}){const r=v.EARN_VAULT;if(!v.isEarnChain(n))throw new Error(`Unsupported chain id: ${n}. Supported chains: ${r.chains.join(", ")}`);const a=r.tokens[o];if(!a||!a.includes(n))throw new Error(`Token ${o} is not supported on chain ${n} for the Bitcoin Earn vault`);let u,d;if(n===t.ChainId.ethereum){const e=await s.getTokenInfo(o,t.ChainId.ethereum,m,c);if(!e)throw new Error(`Could not resolve token info for ${o} on Ethereum`);u=e.address,d=e.decimals}else{const e=await s.getTokenInfo(o,t.ChainId.ethereum,m);if(!e)throw new Error(`Cannot determine minimum deposit for ${o}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`);u=e.address,d=e.decimals}const l=s.makePublicClient({chainId:t.ChainId.ethereum,rpcUrl:n===t.ChainId.ethereum?c:void 0,env:m}),h=r.vaultContract.address,f=r.accountantContract.address,p=r.lensContract.address,w=r.lensContract.abi,b=r.accountantContract.abi,[g,C]=await l.multicall({contracts:[{address:f,abi:b,functionName:"getRateInQuote",args:[u]},{address:p,abi:w,functionName:"previewDeposit",args:[u,1n,h,f]}]});if(g.status!=="success")throw new Error(`Failed to get exchange rate for ${o}: ${g.error}`);if(C.status!=="success")throw new Error(`Failed to preview deposit for ${o}: ${C.error}`);if(C.result>0n)return s.fromBaseDenomination("1",d);const T=g.result,i=BigInt(10)**BigInt(r.decimals),D=(T+i-1n)/i;if(await l.readContract({address:p,abi:w,functionName:"previewDeposit",args:[u,D,h,f]})>0n)return s.fromBaseDenomination(D.toString(),d);const I=10,$=Array.from({length:I},(e,A)=>D+BigInt(A+1)),B=await l.multicall({contracts:$.map(e=>({address:p,abi:w,functionName:"previewDeposit",args:[u,e,h,f]}))});for(let e=0;e<B.length;e++){const A=B[e];if(A.status==="success"&&A.result>0n)return s.fromBaseDenomination($[e].toString(),d)}throw new Error(`Could not determine minimum deposit amount for ${o} after ${I} attempts`)}async function R({amount:o,token:n=t.Token.LBTC,chainId:c=t.ChainId.ethereum,rpcUrl:m,env:r}){const a=v.EARN_VAULT;if(!v.isEarnChain(c))throw new Error(`Unsupported chain id: ${c}. Supported chains: ${a.chains.join(", ")}`);const u=a.tokens[n];if(!u||!u.includes(c))throw new Error(`Token ${n} is not supported on chain ${c} for the Bitcoin Earn vault`);const d=y(o);if(d.isNegative()||d.isZero())throw new Error("Deposit amount must be greater than zero");let l,h;if(c===t.ChainId.ethereum){const i=await s.getTokenInfo(n,t.ChainId.ethereum,r,m);if(!i)throw new Error(`Could not resolve token info for ${n} on Ethereum`);l=i.address,h=i.decimals}else{const i=await s.getTokenInfo(n,t.ChainId.ethereum,r);if(!i)throw new Error(`Cannot preview deposit for ${n}: token not available on Ethereum. The Lens contract is Ethereum-only.`);l=i.address,h=i.decimals}const f=N.toBigInt(s.toBaseDenomination(d,h)),p=s.makePublicClient({chainId:t.ChainId.ethereum,rpcUrl:c===t.ChainId.ethereum?m:void 0,env:r}),w=a.vaultContract.address,b=a.accountantContract.address,g=a.lensContract.address,C=a.lensContract.abi,T=await p.readContract({address:g,abi:C,functionName:"previewDeposit",args:[l,f,w,b]});return s.fromBaseDenomination(T.toString(),a.decimals)}exports.getEarnApy=E.getEarnApy;exports.getEarnDeposits=E.getEarnDeposits;exports.getEarnDepositsAllChains=E.getEarnDepositsAllChains;exports.getEarnPoints=E.getEarnPoints;exports.getEarnTVL=E.getEarnTVL;exports.getEarnWithdrawals=k.getEarnWithdrawals;exports.getEarnWithdrawalsAllChains=k.getEarnWithdrawalsAllChains;exports.getEarnMinimumDeposit=L;exports.previewEarnDeposit=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("./chunks/get-vault-tvl-vH_D4tu0.cjs"),s=require("./chunks/tokens-C5rzCTTM.cjs"),t=require("./chunks/token-addresses-C7H9E4qz.cjs"),v=require("./chunks/config-BfX8lrdO.cjs"),k=require("./chunks/get-vault-withdrawals-GHCAh3wp.cjs"),y=require("bignumber.js"),N=require("./chunks/numbers-3LtmxfD8.cjs");async function L({token:o=t.Token.LBTC,chainId:n=t.ChainId.ethereum,rpcUrl:c,env:m}={}){const r=v.EARN_VAULT;if(!v.isEarnChain(n))throw new Error(`Unsupported chain id: ${n}. Supported chains: ${r.chains.join(", ")}`);const a=r.tokens[o];if(!a||!a.includes(n))throw new Error(`Token ${o} is not supported on chain ${n} for the Bitcoin Earn vault`);let u,d;if(n===t.ChainId.ethereum){const e=await s.getTokenInfo(o,t.ChainId.ethereum,m,c);if(!e)throw new Error(`Could not resolve token info for ${o} on Ethereum`);u=e.address,d=e.decimals}else{const e=await s.getTokenInfo(o,t.ChainId.ethereum,m);if(!e)throw new Error(`Cannot determine minimum deposit for ${o}: token not available on Ethereum. The Lens and Accountant contracts are Ethereum-only.`);u=e.address,d=e.decimals}const l=s.makePublicClient({chainId:t.ChainId.ethereum,rpcUrl:n===t.ChainId.ethereum?c:void 0,env:m}),h=r.vaultContract.address,f=r.accountantContract.address,p=r.lensContract.address,w=r.lensContract.abi,b=r.accountantContract.abi,[g,C]=await l.multicall({contracts:[{address:f,abi:b,functionName:"getRateInQuote",args:[u]},{address:p,abi:w,functionName:"previewDeposit",args:[u,1n,h,f]}]});if(g.status!=="success")throw new Error(`Failed to get exchange rate for ${o}: ${g.error}`);if(C.status!=="success")throw new Error(`Failed to preview deposit for ${o}: ${C.error}`);if(C.result>0n)return s.fromBaseDenomination("1",d);const T=g.result,i=BigInt(10)**BigInt(r.decimals),D=(T+i-1n)/i;if(await l.readContract({address:p,abi:w,functionName:"previewDeposit",args:[u,D,h,f]})>0n)return s.fromBaseDenomination(D.toString(),d);const I=10,$=Array.from({length:I},(e,A)=>D+BigInt(A+1)),B=await l.multicall({contracts:$.map(e=>({address:p,abi:w,functionName:"previewDeposit",args:[u,e,h,f]}))});for(let e=0;e<B.length;e++){const A=B[e];if(A.status==="success"&&A.result>0n)return s.fromBaseDenomination($[e].toString(),d)}throw new Error(`Could not determine minimum deposit amount for ${o} after ${I} attempts`)}async function R({amount:o,token:n=t.Token.LBTC,chainId:c=t.ChainId.ethereum,rpcUrl:m,env:r}){const a=v.EARN_VAULT;if(!v.isEarnChain(c))throw new Error(`Unsupported chain id: ${c}. Supported chains: ${a.chains.join(", ")}`);const u=a.tokens[n];if(!u||!u.includes(c))throw new Error(`Token ${n} is not supported on chain ${c} for the Bitcoin Earn vault`);const d=y(o);if(d.isNegative()||d.isZero())throw new Error("Deposit amount must be greater than zero");let l,h;if(c===t.ChainId.ethereum){const i=await s.getTokenInfo(n,t.ChainId.ethereum,r,m);if(!i)throw new Error(`Could not resolve token info for ${n} on Ethereum`);l=i.address,h=i.decimals}else{const i=await s.getTokenInfo(n,t.ChainId.ethereum,r);if(!i)throw new Error(`Cannot preview deposit for ${n}: token not available on Ethereum. The Lens contract is Ethereum-only.`);l=i.address,h=i.decimals}const f=N.toBigInt(s.toBaseDenomination(d,h)),p=s.makePublicClient({chainId:t.ChainId.ethereum,rpcUrl:c===t.ChainId.ethereum?m:void 0,env:r}),w=a.vaultContract.address,b=a.accountantContract.address,g=a.lensContract.address,C=a.lensContract.abi,T=await p.readContract({address:g,abi:C,functionName:"previewDeposit",args:[l,f,w,b]});return s.fromBaseDenomination(T.toString(),a.decimals)}exports.getEarnApy=E.getEarnApy;exports.getEarnDeposits=E.getEarnDeposits;exports.getEarnDepositsAllChains=E.getEarnDepositsAllChains;exports.getEarnPoints=E.getEarnPoints;exports.getEarnTVL=E.getEarnTVL;exports.getEarnWithdrawals=k.getEarnWithdrawals;exports.getEarnWithdrawalsAllChains=k.getEarnWithdrawalsAllChains;exports.getEarnMinimumDeposit=L;exports.previewEarnDeposit=R;
2
2
  //# sourceMappingURL=vaults.cjs.map
package/dist/vaults.js CHANGED
@@ -1,8 +1,8 @@
1
- import { getEarnApy as z, getEarnDeposits as O, getEarnDepositsAllChains as Z, getEarnPoints as q, getEarnTVL as G } from "./chunks/get-vault-tvl-B6rSrGi_.js";
2
- import { getTokenInfo as v, makePublicClient as y, fromBaseDenomination as C, toBaseDenomination as L } from "./chunks/tokens-Btl3GXbc.js";
1
+ import { getEarnApy as z, getEarnDeposits as O, getEarnDepositsAllChains as Z, getEarnPoints as q, getEarnTVL as G } from "./chunks/get-vault-tvl-CweOpdGy.js";
2
+ import { getTokenInfo as v, makePublicClient as y, fromBaseDenomination as C, toBaseDenomination as L } from "./chunks/tokens-BUrC15ra.js";
3
3
  import { ChainId as n, Token as N } from "./chunks/token-addresses-DVnRPyu4.js";
4
4
  import { isEarnChain as R, EARN_VAULT as k } from "./chunks/config-wnjPtnjd.js";
5
- import { getEarnWithdrawals as J, getEarnWithdrawalsAllChains as K } from "./chunks/get-vault-withdrawals-W5CgNbqE.js";
5
+ import { getEarnWithdrawals as J, getEarnWithdrawalsAllChains as K } from "./chunks/get-vault-withdrawals-BayGky8y.js";
6
6
  import S from "bignumber.js";
7
7
  import { toBigInt as x } from "./chunks/numbers-CclN2Ohk.js";
8
8
  async function Q({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lombard.finance/sdk",
3
- "version": "5.0.2",
3
+ "version": "5.0.4",
4
4
  "description": "TypeScript SDK for the Lombard protocol - stake BTC, mint LBTC, and interact with DeFi",
5
5
  "dependencies": {
6
6
  "@lombard.finance/sdk-common": "4.0.0",
@@ -1,2 +0,0 @@
1
- "use strict";var z=Object.defineProperty;var H=(s,r,i)=>r in s?z(s,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[r]=i;var p=(s,r,i)=>H(s,typeof r!="symbol"?r+"":r,i);const Y=require("axios"),t=require("./statusConstants-CP33VFvI.cjs"),A=require("./token-addresses-C7H9E4qz.cjs"),u=require("./index-BKzxeh1Y.cjs"),l=require("./tokens-DEYY7W7O.cjs"),D=require("./satoshi-CZEsHl5X.cjs"),c=require("./defi-registry-CyMKVT3z.cjs"),R=require("./getUserStakeAndBakeSignature-VlC_GHmz.cjs"),$=require("./config-BfX8lrdO.cjs"),q=require("viem"),U="ERR_NETWORK",G="This may be due to your Adblocker. Please disable any Adblocker and refresh the page to restore full functionality.";function j(s){const{code:r,message:i}=s;throw r===U?new Error(G):new Error(i)}const K={mempoolApiUrl:"https://mempool.space/signet"},Z={mempoolApiUrl:"https://mempool.space"},W=s=>s==="mainnet"?Z:K;async function X(s){const{mempoolApiUrl:r}=W(s),i=Math.floor(Date.now()/1e3),e=`${r}/api/v1/mining/blocks/timestamp/${i}`;try{const{data:a}=await Y.get(e);return a.height}catch(a){j(a)}}class J{async getCurrentBlockHeight(r){return X(r)}}function Q(){return{id:"btc",chain:"btc",register(){return new J}}}async function y(s){const{fetchDeposit:r,network:i,btcService:e,requiredConfirmations:a=6,onProgress:n,onComplete:o}=s,h=await r();if(!h)return;const d=h.blockHeight;if(typeof d!="number")return;const T=await e.getCurrentBlockHeight(i),_=Math.max(0,T-d),N=_>=a,w=h.isClaimed??!1,B={confirmations:_,requiredConfirmations:a,hasEnoughConfirmations:N,isClaimed:w,steps:{created:t.StepStatus.COMPLETE,verifying:N?t.StepStatus.COMPLETE:t.StepStatus.PENDING,issuing:w?t.StepStatus.COMPLETE:t.StepStatus.PENDING}};return n==null||n(B),w&&(o==null||o()),B}function f(s){if(s===R.SANCTIONED_ADDRESS)throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"Destination address is under sanctions")}class I extends t.BaseAction{constructor(i,e,a){super(a);p(this,"_amount");p(this,"_recipient");p(this,"_depositAddress");p(this,"_referralCode");p(this,"_chainId");this.ctx=i,this.params=e}get amount(){return this._amount}get recipient(){return this._recipient}get depositAddress(){return this._depositAddress}get referralCode(){return this._referralCode}get bitcoinNetwork(){return this.params.sourceChain===t.Chain.BITCOIN_MAINNET?"mainnet":"testnet"}get prepareSchema(){return t.objectType({amount:t.btcStakeAmountSchema,recipient:this.getAddressSchema(),referralCode:t.referralCodeSchema})}validatePrepareParams(i){return t.validatePrepareParams(this.prepareSchema,i,{destChain:this.params.destChain})}ensureRecipient(){if(!this._recipient)throw t.LombardError.missingParameter("recipient");return this._recipient}ensureAmount(){if(!this._amount)throw t.LombardError.missingParameter("amount");return this._amount}ensureDepositAddress(){if(!this._depositAddress)throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"Deposit address not generated. Call generateDepositAddress() first.");return this._depositAddress}getAuthRequiredMessage(){return"Authorization required. Complete the authorization step first."}ensureAuthorized(){if(!this.isAuthorized())throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,this.getAuthRequiredMessage())}async resumeFromExistingDeposit(i){try{const e=await this.ctx.api.getDepositAddress({address:i,chainId:this.getChainId(),token:this.getExpectedToken(),partnerId:this.ctx.partner.getPartnerId()});return e?(this._depositAddress=e,!0):!1}catch{return!1}}async generateDepositAddressImpl(i){const e=this.getStatusConfig();return this.assertStatus(e.ready,"generateDepositAddress"),this.ensureAuthorized(),this._depositAddress?this._depositAddress:this.act(async()=>{const a=this.getDepositAddressParams(i),n=await this.ctx.api.generateDepositAddress(a);f(n),this._depositAddress=n;const o=this.getInitialSteps(),h=Object.fromEntries(Object.entries(o).map(([d],T)=>[d,T===0?t.StepStatus.COMPLETE:t.StepStatus.IDLE]));return this.emitProgress({status:e.addressReady,steps:h,metadata:{depositAddress:n}}),n},e.addressReady)}async executeImpl(){const i=this.getStatusConfig();return this.act(async()=>{this.assertStatus(i.addressReady,"execute"),this._depositAddress||await this.generateDepositAddressImpl();const e=this.ensureDepositAddress(),a=await this.trySendBitcoin(e);return a?{depositAddress:e,txHash:a}:{depositAddress:e}})}emitInitialProgress(){this.emitProgress({status:this.status,steps:this.getInitialSteps()})}async monitorDeposit(){const i=this._depositAddress,e=this._recipient;if(!i||!e)throw t.LombardError.missingParameter("depositAddress or recipient");return await y({network:this.bitcoinNetwork,btcService:this.ctx.btc,fetchDeposit:async()=>{const o=(await this.ctx.api.getDeposits(e)).find(h=>h.depositAddress===i);if(o)return{blockHeight:o.blockHeight,isClaimed:o.isClaimed}},onProgress:n=>{this.emitProgress({status:this.status,steps:n.steps,confirmations:n.confirmations,requiredConfirmations:n.requiredConfirmations,metadata:{isClaimed:n.isClaimed}})},onComplete:()=>{this.emitCompleted()}})}async trySendBitcoin(i){const e=this._amount;if(e)try{const a=await this.ctx.getProvider("bitcoin");if(!a)return;const n=a;if(n.sendBitcoin){const o=D.toSatoshi(e).toNumber();return n.sendBitcoin(i,o)}}catch{}}}function E(s,r=A.Token.LBTC){switch(s){case c.AssetId.LBTC:return A.Token.LBTC;case c.AssetId.BTCb:return A.Token.BTCb;default:return r}}async function tt(s,r){try{await s.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${r.toString(16)}`}]})}catch(i){const e=i;if(e.code===4902)try{await A.addChain({provider:s,chainId:r}),await s.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${r.toString(16)}`}]});return}catch(a){const n=a;throw n.code===4001?new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"User rejected adding chain to wallet."):new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Failed to add chain ${r} to wallet: ${n.message||"Unknown error"}`)}throw e.code===4001?new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"User rejected chain switch request."):new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Failed to switch to chain ${r}: ${e.message||"Unknown error"}`)}}async function et(s){const r=await s.request({method:"eth_chainId"});return parseInt(r,16)}async function C(s,r){await et(s)!==r&&await tt(s,r)}const st=[t.Chain.ETHEREUM,t.Chain.SEPOLIA],it={async getMintingFee(s,r){return s.capabilities.require("evm").getMintingFee(r,A.Token.BTCb)},async restoreFeeSignature(s,r,i){const e=await l.getTokenContractInfo(A.Token.BTCb,r,s.env),a=await s.api.getFeeSignature({address:i,chainId:r,tokenAddress:e.address});return!a.hasSignature||a.expirationDate&&new Date(Number(a.expirationDate)*1e3)<new Date?null:{hasSignature:!0,signature:a.signature,typedData:a.typedData}},async authorizeFee(s,{chainId:r,recipient:i,fee:e}){const a=s.capabilities.require("evm"),n=await s.getProvider("evm");if(!n)throw t.LombardError.providerMissing(String(r),"evm");await C(n,r);const o=D.toSatoshi(e).toString(),h=await l.getTokenContractInfo(A.Token.BTCb,r,s.env),d=await a.signNetworkFee({fee:o,account:i,chainId:r,provider:n,token:A.Token.BTCb});return await s.api.storeFeeSignature({address:i,signature:d.signature,typedData:d.typedData,tokenAddress:h.address}),{signature:d.signature,typedData:d.typedData}}},rt={chainType:"evm",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.stage,u.r.dev,u.r.testnet,u.r.ibc]}],destChains:t.getAllAssetChains(c.AssetId.BTCb).filter(s=>t.isEvmChain(s)),supportedAssetsOut:[c.AssetId.BTCb],addressSchema:t.evmAddressSchema,getFeeAuthConfig(s){return st.includes(s)?it:null},async signDestination(s,r,i){const e=s.capabilities.require("evm"),a=await s.getProvider("evm");if(!a)throw t.LombardError.providerMissing(String(i),"evm");return await C(a,i),{signature:(await e.signLbtcDestination({address:r,chainId:i,provider:a})).signature}}},m=s=>`${s}${t.CAIP2_SEPARATOR}`;function nt(s){return String(s).startsWith(m(t.CHAIN_PREFIXES.EIP155))}function b(s){return String(s).startsWith(m(t.CHAIN_PREFIXES.SOLANA))}function at(s){return String(s).startsWith(m(t.CHAIN_PREFIXES.SUI))}function ot(s){return String(s).startsWith(m(t.CHAIN_PREFIXES.STARKNET))}function ut(s){const r={[t.Chain.SOLANA_MAINNET]:"mainnet-beta",[t.Chain.SOLANA_DEVNET]:"devnet",[t.Chain.SOLANA_TESTNET]:"testnet","solana:mainnet-beta":"mainnet-beta","solana:devnet":"devnet","solana:testnet":"testnet"},i=r[s];if(!i)throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Unknown Solana chain: ${s}. Expected one of: ${Object.keys(r).join(", ")}`);return i}const dt={chainType:"solana",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.stage,u.r.dev,u.r.testnet]}],destChains:t.getAllAssetChains(c.AssetId.BTCb).filter(s=>b(s)),supportedAssetsOut:[c.AssetId.BTCb],addressSchema:t.solanaAddressSchema,getFeeAuthConfig:()=>null,async signDestination(s,r,i){const e=s.capabilities.require("solana"),a=ut(i),{signature:n}=await e.signLbtcDestination({network:a});return{signature:n}}},ct={evm:rt,solana:dt};function ht(s){return ct[s]}function pt(s,r){return s.destChains.includes(r)}function At(s,r){return s.supportedAssetsOut.includes(r)}function St(s,r,i){return s.routes.some(e=>e.envs.includes(i)&&(!r||e.sourceChains.includes(r)))}class k extends I{constructor(i,e){super(i,e,t.BtcActionStatus.IDLE);p(this,"config");p(this,"chainId");p(this,"authState",{authorized:!1});p(this,"feeAuthConfig",null);const a=t.getChainType(e.destChain),n=ht(a);if(!n)throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Unsupported destination chain type: ${a} (${e.destChain})`);if(!At(n,e.assetOut))throw new t.LombardError(t.ValidationErrorCode.INVALID_ASSET,`Asset ${e.assetOut} is not supported for BTC deposits. BTC Deposit produces BTC.b. For LBTC, use BtcStake instead.`);if(!pt(n,e.destChain))throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Destination chain ${e.destChain} is not supported for ${a} BTC deposits`);if(!St(n,e.sourceChain,i.env))throw t.LombardError.routeNotFound({assetOut:e.assetOut,sourceChain:e.sourceChain,destChain:e.destChain,env:i.env});this.config=n,this.chainId=t.parseChainIdentifier(e.destChain)}getAddressSchema(){return this.config.addressSchema}getStatusConfig(){return{idle:t.BtcActionStatus.IDLE,ready:t.BtcActionStatus.READY,addressReady:t.BtcActionStatus.ADDRESS_READY}}getInitialSteps(){return{created:t.StepStatus.IDLE,verifying:t.StepStatus.IDLE,issuing:t.StepStatus.IDLE}}isAuthorized(){return this.authState.authorized}getChainId(){return this.chainId}get mintingFee(){return this.authState.mintingFee}getDepositAddressParams(i){return{address:this.ensureRecipient(),chainId:this.chainId,signature:this.authState.signature,token:this.getExpectedToken(),eip712Data:this.authState.typedData,partnerId:this.ctx.partner.getPartnerId(),referrerCode:this._referralCode,captchaToken:i}}async generateDepositAddress(i){if(!this.authState.signature){const e=await this.config.signDestination(this.ctx,this.ensureRecipient(),this.chainId);this.authState.signature=e.signature,this.authState.typedData=e.typedData}return this.generateDepositAddressImpl(i)}getExpectedToken(){return E(this.params.assetOut,A.Token.BTCb)}getAuthRequiredMessage(){return this.feeAuthConfig?"Fee authorization required. Call authorizeFee() first.":"Address confirmation required. Call confirmAddress() first."}async prepare(i){return this.assertStatus(t.BtcActionStatus.IDLE,"prepare"),this.act(async()=>{const e=this.validatePrepareParams(i);if(this._amount=e.amount,this._recipient=e.recipient,this._referralCode=e.referralCode,this.feeAuthConfig=this.config.getFeeAuthConfig(this.params.destChain),await this.resumeFromExistingDeposit(e.recipient)){if(this.feeAuthConfig){const n=await this.feeAuthConfig.restoreFeeSignature(this.ctx,this.chainId,e.recipient);if(!(n!=null&&n.hasSignature)){this.authState.mintingFee=await this.feeAuthConfig.getMintingFee(this.ctx,this.chainId),this.updateStatus(t.BtcActionStatus.NEEDS_FEE_AUTHORIZATION),this.emitInitialProgress();return}n.signature&&(this.authState.signature=n.signature,this.authState.typedData=n.typedData),this.authState.authorized=!0}this.updateStatus(t.BtcActionStatus.ADDRESS_READY),this.emitInitialProgress();return}if(this.feeAuthConfig){const n=await this.feeAuthConfig.restoreFeeSignature(this.ctx,this.chainId,e.recipient);if(n!=null&&n.hasSignature){n.signature&&(this.authState.signature=n.signature,this.authState.typedData=n.typedData),this.authState.authorized=!0,this.updateStatus(t.BtcActionStatus.READY),this.emitInitialProgress();return}this.authState.mintingFee=await this.feeAuthConfig.getMintingFee(this.ctx,this.chainId),this.updateStatus(t.BtcActionStatus.NEEDS_FEE_AUTHORIZATION)}else this.updateStatus(t.BtcActionStatus.NEEDS_ADDRESS_CONFIRMATION);this.emitInitialProgress()})}async authorizeFee(){if(this.assertStatus([t.BtcActionStatus.NEEDS_FEE_AUTHORIZATION,t.BtcActionStatus.READY],"authorizeFee"),this.status===t.BtcActionStatus.READY)return;if(!this.feeAuthConfig)throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"Fee authorization is not required for this destination chain. Use confirmAddress() instead.");const i=this.ensureRecipient();if(!this.authState.mintingFee)throw new t.LombardError(t.ValidationErrorCode.INVALID_STATE,"Minting fee not available. Call prepare() first.");return this.act(async()=>{const e=await this.feeAuthConfig.authorizeFee(this.ctx,{chainId:this.chainId,recipient:i,fee:this.authState.mintingFee});this.authState.signature=e.signature,this.authState.typedData=e.typedData,this.authState.authorized=!0},t.BtcActionStatus.READY)}async confirmAddress(){if(this.assertStatus([t.BtcActionStatus.NEEDS_ADDRESS_CONFIRMATION,t.BtcActionStatus.READY],"confirmAddress"),this.status===t.BtcActionStatus.READY)return;if(this.feeAuthConfig)throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"This destination chain requires fee authorization. Use authorizeFee() instead.");const i=this.ensureRecipient();return this.act(async()=>{const e=await this.config.signDestination(this.ctx,i,this.chainId);this.authState.signature=e.signature,this.authState.typedData=e.typedData,this.authState.authorized=!0},t.BtcActionStatus.READY)}async execute(){return this.executeImpl()}async monitorDeposit(){return super.monitorDeposit()}}const gt=$.EARN_STAKE_AND_BAKE_CHAINS.map(s=>t.evmChainIdToChain(s)),Ct={chainType:"evm",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.stage,u.r.dev,u.r.testnet,u.r.ibc]}],destChains:gt,supportedAssetsOut:[c.AssetId.LBTC],supportedProtocols:yt(c.AssetId.LBTC),addressSchema:t.evmAddressSchema,async getStakeAndBakeFee(s,r,i){return s.capabilities.require("evm").getStakeAndBakeFee(r,i)},async authorizeStakeAndBake(s,{chainId:r,recipient:i,amount:e,vaultKey:a,token:n}){const o=s.capabilities.require("evm"),h=await s.getProvider("evm");if(!h)throw t.LombardError.providerMissing(String(r),"evm");await C(h,r);const d=await o.signStakeAndBake({value:e,account:i,chainId:r,provider:h,vaultKey:a,token:n});return await s.api.storeStakeAndBakeSignature({signature:d.signature,typedData:d.typedData}),{signature:d.signature,typedData:d.typedData}},async restoreStakeAndBakeSignature(s,r,i){try{const e=await R.getUserStakeAndBakeSignature({userDestinationAddress:i,chainId:r,env:s.env});return!(e.signature||e.expirationDate)||e.expirationDate&&Number(e.expirationDate)*1e3<Date.now()?null:{hasSignature:!0,signature:e.signature,depositAmount:e.depositAmount,expirationDate:e.expirationDate}}catch{return null}}},S=Ct;function Et(s){return S.destChains.includes(s)}function Dt(s){return S.supportedAssetsOut.includes(s)}function lt(s,r){return s?S.routes.some(i=>i.sourceChains.includes(s)&&i.envs.includes(r)):!0}function O(s){return s in c.DEFI_REGISTRY}function ft(s){if(!O(s)){const r=Object.keys(c.DEFI_REGISTRY).join(", ");throw new Error(`Unsupported protocol: ${s}. Supported protocols: ${r}`)}return s}function It(s){return Object.entries(c.DEFI_REGISTRY).filter(([r,i])=>s in i).map(([r])=>r)}const v={mainnet:[t.Chain.AVALANCHE],testnet:[t.Chain.AVALANCHE_FUJI]},mt={chainType:"evm",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.stage,u.r.dev,u.r.testnet,u.r.ibc]}],destChains:[...v.mainnet,...v.testnet],supportedAssetsOut:[c.AssetId.BTCb],supportedProtocols:It(c.AssetId.BTCb),addressSchema:t.evmAddressSchema,async getDepositAndDeployFee(s,r,i){return s.capabilities.require("evm").getStakeAndBakeFee(r,i)},async authorizeDepositAndDeploy(s,{chainId:r,recipient:i,amount:e,vaultKey:a,token:n}){const o=s.capabilities.require("evm"),h=await s.getProvider("evm");if(!h)throw t.LombardError.providerMissing(String(r),"evm");await C(h,r);const d=await o.signStakeAndBake({value:e,account:i,chainId:r,provider:h,vaultKey:a,token:n});return await s.api.storeStakeAndBakeSignature({signature:d.signature,typedData:d.typedData}),{signature:d.signature,typedData:d.typedData,approvalTxHash:d.approvalTxHash}}},g=mt;function Tt(s){return g.destChains.includes(s)}function wt(s){return g.supportedAssetsOut.includes(s)}function P(s){return s in c.DEFI_REGISTRY}function L(s){if(!P(s)){const r=Object.keys(c.DEFI_REGISTRY).join(", ");throw new Error(`Unsupported protocol: ${s}. Supported protocols: ${r}`)}return s}function yt(s){return Object.entries(c.DEFI_REGISTRY).filter(([r,i])=>s in i).map(([r])=>r)}function _t(s,r){return g.routes.some(i=>i.sourceChains.includes(s)&&i.envs.includes(r))}class F extends I{constructor(i,e){super(i,e,t.BtcActionStatus.IDLE);p(this,"chainId");p(this,"authState",{authorized:!1});if(!wt(e.assetOut))throw new t.LombardError(t.ValidationErrorCode.INVALID_ASSET,`Asset ${e.assetOut} is not supported for deposit and deploy. DepositAndDeploy produces BTC.b which is then deployed to a vault like Silo.`);if(!Tt(e.destChain))throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Destination chain ${e.destChain} is not supported for deposit and deploy. Supported chains: Avalanche, Avalanche Fuji`);if(!P(e.protocol))throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,`Protocol ${e.protocol} is not supported for deposit and deploy. DepositAndDeploy with BTC.b only supports Silo protocol.`);const a=e.sourceChain??t.Chain.BITCOIN_MAINNET;if(!_t(a,i.env))throw t.LombardError.routeNotFound({assetOut:e.assetOut,sourceChain:a,destChain:e.destChain,env:i.env});const n=t.parseChainIdentifier(e.destChain);if(typeof n!="number"||!A.isValidChain(n))throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Unsupported EVM chain: ${e.destChain}`);this.chainId=n}getAddressSchema(){return g.addressSchema}getStatusConfig(){return{idle:t.BtcActionStatus.IDLE,ready:t.BtcActionStatus.READY,addressReady:t.BtcActionStatus.ADDRESS_READY}}getInitialSteps(){return{created:t.StepStatus.IDLE,verifying:t.StepStatus.IDLE,wrapping:t.StepStatus.IDLE,depositing:t.StepStatus.IDLE}}isAuthorized(){return this.authState.authorized}getChainId(){return this.chainId}getDepositAddressParams(i){return{address:this.ensureRecipient(),chainId:this.chainId,signature:this.authState.signature,token:this.getExpectedToken(),signatureData:this.authState.typedData,partnerId:this.ctx.partner.getPartnerId(),referrerCode:this._referralCode,captchaToken:i}}getExpectedToken(){return E(this.params.assetOut,A.Token.BTCb)}getAuthRequiredMessage(){return"Deposit authorization required. Call authorizeDeposit() first."}get fee(){return this.authState.fee}async prepare(i){return this.assertStatus(t.BtcActionStatus.IDLE,"prepare"),this.act(async()=>{const e=this.validatePrepareParams(i);this._amount=e.amount,this._recipient=e.recipient,this._referralCode=e.referralCode,this.authState.fee=await g.getDepositAndDeployFee(this.ctx,this.chainId,L(this.params.protocol)),this.updateStatus(t.BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION),this.emitInitialProgress()},t.BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION)}async authorizeDeposit(){if(this.assertStatus([t.BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION,t.BtcActionStatus.READY],"authorizeDeposit"),this.status===t.BtcActionStatus.READY)return;const i=this.ensureRecipient(),e=this.ensureAmount();return this.act(async()=>{const a=D.toSatoshi(e),n=E(this.params.assetOut,A.Token.BTCb),o=await g.authorizeDepositAndDeploy(this.ctx,{chainId:this.chainId,recipient:i,amount:a.toString(),vaultKey:L(this.params.protocol),token:n});this.authState.signature=o.signature,this.authState.typedData=o.typedData,this.authState.authorized=!0},t.BtcActionStatus.READY)}async generateDepositAddress(i){return this.assertStatus(t.BtcActionStatus.READY,"generateDepositAddress"),this.ensureAuthorized(),this._depositAddress?this._depositAddress:this.act(async()=>{const e=this.getDepositAddressParams(i),a=await this.ctx.api.generateDepositAddress(e);return f(a),this._depositAddress=a,this.emitProgress({status:t.BtcActionStatus.ADDRESS_READY,steps:{created:t.StepStatus.COMPLETE,verifying:t.StepStatus.IDLE,wrapping:t.StepStatus.IDLE,depositing:t.StepStatus.IDLE},metadata:{depositAddress:a}}),a},t.BtcActionStatus.ADDRESS_READY)}async execute(){return this.act(async()=>{this.assertStatus(t.BtcActionStatus.ADDRESS_READY,"execute"),this._depositAddress||await this.generateDepositAddress();const i=this.ensureDepositAddress(),e=await this.trySendBitcoin(i);return e?{depositAddress:i,txHash:e}:{depositAddress:i}})}async monitorDeposit(){const i=this._depositAddress,e=this._recipient;if(!i||!e)throw t.LombardError.missingParameter("depositAddress or recipient");return await y({network:this.bitcoinNetwork,btcService:this.ctx.btc,fetchDeposit:async()=>{const o=(await this.ctx.api.getDeposits(e)).find(h=>h.depositAddress===i);if(o)return{blockHeight:o.blockHeight,isClaimed:o.isClaimed}},onProgress:n=>{this.emitProgress({status:this.status,steps:{created:t.StepStatus.COMPLETE,verifying:n.hasEnoughConfirmations?t.StepStatus.COMPLETE:t.StepStatus.PENDING,wrapping:n.isClaimed?t.StepStatus.COMPLETE:t.StepStatus.PENDING,depositing:t.StepStatus.PENDING},confirmations:n.confirmations,requiredConfirmations:n.requiredConfirmations,metadata:{isClaimed:n.isClaimed}})},onComplete:()=>{this.emitCompleted()}})}}const Nt=[t.Chain.ETHEREUM,t.Chain.SEPOLIA],Bt={async getMintingFee(s,r){return s.capabilities.require("evm").getMintingFee(r)},async restoreFeeSignature(s,r,i){const e=await l.getTokenContractInfo(A.Token.LBTC,r,s.env),a=await s.api.getFeeSignature({address:i,chainId:r,tokenAddress:e.address});return!a.hasSignature||a.expirationDate&&new Date(Number(a.expirationDate)*1e3)<new Date?null:{hasSignature:!0,signature:a.signature,typedData:a.typedData}},async authorizeFee(s,{chainId:r,recipient:i,fee:e}){const a=s.capabilities.require("evm"),n=await s.getProvider("evm");if(!n)throw t.LombardError.providerMissing(String(r),"evm");await C(n,r);const o=D.toSatoshi(e).toString(),h=await l.getTokenContractInfo(A.Token.LBTC,r,s.env),d=await a.signNetworkFee({fee:o,account:i,chainId:r,provider:n,token:A.Token.LBTC});return await s.api.storeFeeSignature({address:i,signature:d.signature,typedData:d.typedData,tokenAddress:h.address}),{signature:d.signature,typedData:d.typedData}}},vt={chainType:"evm",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.testnet,u.r.stage,u.r.dev,u.r.ibc]}],destChains:t.getAllAssetChains(c.AssetId.LBTC).filter(s=>nt(s)),supportedAssetsOut:[c.AssetId.LBTC],addressSchema:t.evmAddressSchema,getFeeAuthConfig(s){return Nt.includes(s)?Bt:null},async getSignature(s,r,i){const e=s.capabilities.require("evm"),a=await s.getProvider("evm");if(!a)throw t.LombardError.providerMissing(String(i),"evm");return await C(a,i),e.signLbtcDestination({chainId:i,address:r,provider:a})}};function Lt(s){const r={[t.Chain.SOLANA_MAINNET]:"mainnet-beta",[t.Chain.SOLANA_DEVNET]:"devnet",[t.Chain.SOLANA_TESTNET]:"testnet","solana:mainnet-beta":"mainnet-beta","solana:devnet":"devnet","solana:testnet":"testnet"},i=r[s];if(!i)throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Unknown Solana chain: ${s}. Expected one of: ${Object.keys(r).join(", ")}`);return i}const Rt={chainType:"solana",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.testnet,u.r.stage,u.r.dev,u.r.ibc]}],destChains:t.getAllAssetChains(c.AssetId.LBTC).filter(s=>b(s)),supportedAssetsOut:[c.AssetId.LBTC],addressSchema:t.solanaAddressSchema,getFeeAuthConfig:()=>null,async getSignature(s,r,i){const e=s.capabilities.require("solana"),a=Lt(i),{signature:n}=await e.signLbtcDestination({network:a});return{signature:n}}},bt={chainType:"starknet",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.testnet,u.r.stage,u.r.dev,u.r.ibc]}],destChains:t.getAllAssetChains(c.AssetId.LBTC).filter(s=>ot(s)),supportedAssetsOut:[c.AssetId.LBTC],addressSchema:t.starknetAddressSchema,getFeeAuthConfig:()=>null,async getSignature(s,r,i){const e=s.capabilities.require("starknet"),{signature:a,pubKey:n}=await e.signLbtcDestination({chainId:i}),o=q.pad(r,{size:32});return{signature:a,pubKey:n,paddedAddress:o}}},kt={chainType:"sui",routes:[{sourceChains:[t.Chain.BITCOIN_MAINNET],envs:[u.r.prod]},{sourceChains:[t.Chain.BITCOIN_SIGNET],envs:[u.r.testnet,u.r.stage,u.r.dev,u.r.ibc]}],destChains:t.getAllAssetChains(c.AssetId.LBTC).filter(s=>at(s)),supportedAssetsOut:[c.AssetId.LBTC],addressSchema:t.suiAddressSchema,getFeeAuthConfig:()=>null,async getSignature(s,r,i){const e=s.capabilities.require("sui"),{signature:a}=await e.signLbtcDestination({chainId:i});return{signature:a}}},Ot={evm:vt,solana:Rt,sui:kt,starknet:bt};function Pt(s){return Ot[s]}function Ft(s,r,i){return r?s.routes.some(e=>e.sourceChains.includes(r)&&e.envs.includes(i)):!0}function xt(s,r){return s.destChains.includes(r)}function Mt(s,r){return s.supportedAssetsOut.includes(r)}class x extends I{constructor(i,e){super(i,e,t.BtcActionStatus.IDLE);p(this,"config");p(this,"chainId");p(this,"authState",{authorized:!1});p(this,"feeAuthConfig",null);const a=t.getChainType(e.destChain),n=Pt(a);if(!n)throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Unsupported destination chain type: ${a} (${e.destChain})`);if(!Mt(n,e.assetOut))throw new t.LombardError(t.ValidationErrorCode.INVALID_ASSET,`Asset ${e.assetOut} is not supported for BTC staking. BTC Stake produces LBTC. For BTC.b, use BtcDeposit instead.`);if(!xt(n,e.destChain))throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Destination chain ${e.destChain} is not supported for ${a}`);if(!Ft(n,e.sourceChain,i.env))throw t.LombardError.routeNotFound({assetOut:e.assetOut,sourceChain:e.sourceChain,destChain:e.destChain,env:i.env});this.config=n,this.chainId=t.parseChainIdentifier(e.destChain)}getAddressSchema(){return this.config.addressSchema}getStatusConfig(){return{idle:t.BtcActionStatus.IDLE,ready:t.BtcActionStatus.READY,addressReady:t.BtcActionStatus.ADDRESS_READY}}getInitialSteps(){return{created:t.StepStatus.IDLE,verifying:t.StepStatus.IDLE,issuing:t.StepStatus.IDLE}}isAuthorized(){return this.authState.authorized}getChainId(){return this.chainId}getDepositAddressParams(i){var n;const e=this.ensureRecipient(),a=this.getActiveSignature();if(!a)throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"Missing signature. Complete authorization first.");return{address:a.paddedAddress??e,chainId:this.chainId,signature:a.signature,token:this.getExpectedToken(),eip712Data:(n=this.authState.networkFee)==null?void 0:n.typedData,pubKey:a.pubKey,partnerId:this.ctx.partner.getPartnerId(),referrerCode:this._referralCode,captchaToken:i}}getExpectedToken(){return E(this.params.assetOut,A.Token.LBTC)}getAuthRequiredMessage(){return"Authorization required. Call authorize() first."}get mintingFee(){return this.authState.mintingFee}async prepare(i){return this.assertStatus(t.BtcActionStatus.IDLE,"prepare"),this.act(async()=>{const e=this.validatePrepareParams(i);if(this._amount=e.amount,this._recipient=e.recipient,this._referralCode=e.referralCode,this.feeAuthConfig=this.config.getFeeAuthConfig(this.params.destChain),await this.resumeFromExistingDeposit(e.recipient)){if(this.feeAuthConfig){const n=await this.feeAuthConfig.restoreFeeSignature(this.ctx,this.chainId,e.recipient);if(!(n!=null&&n.hasSignature)){this.authState.mintingFee=await this.feeAuthConfig.getMintingFee(this.ctx,this.chainId),this.updateStatus(t.BtcActionStatus.NEEDS_FEE_AUTHORIZATION),this.emitInitialProgress();return}n.signature&&(this.authState.networkFee={signature:n.signature,typedData:n.typedData}),this.authState.authorized=!0}this.updateStatus(t.BtcActionStatus.ADDRESS_READY),this.emitInitialProgress();return}if(this.feeAuthConfig){const n=await this.feeAuthConfig.restoreFeeSignature(this.ctx,this.chainId,e.recipient);if(n!=null&&n.hasSignature){n.signature&&(this.authState.networkFee={signature:n.signature,typedData:n.typedData}),this.authState.authorized=!0,this.updateStatus(t.BtcActionStatus.READY),this.emitInitialProgress();return}this.authState.mintingFee=await this.feeAuthConfig.getMintingFee(this.ctx,this.chainId),this.updateStatus(t.BtcActionStatus.NEEDS_FEE_AUTHORIZATION)}else this.updateStatus(t.BtcActionStatus.NEEDS_ADDRESS_CONFIRMATION);this.emitInitialProgress()})}async authorize(){if(this.assertStatus([t.BtcActionStatus.NEEDS_FEE_AUTHORIZATION,t.BtcActionStatus.NEEDS_ADDRESS_CONFIRMATION,t.BtcActionStatus.READY],"authorize"),this.status===t.BtcActionStatus.READY)return;const i=this.ensureRecipient(),e=this.feeAuthConfig!==null;return this.act(async()=>{if(e){const a=this.ensureMintingFee(),n=await this.feeAuthConfig.authorizeFee(this.ctx,{chainId:this.chainId,recipient:i,fee:a});this.authState.networkFee={signature:n.signature,typedData:n.typedData}}else this.authState.destinationSignature=await this.config.getSignature(this.ctx,i,this.chainId);this.authState.authorized=!0},t.BtcActionStatus.READY)}async generateDepositAddress(i){if(this.assertStatus(t.BtcActionStatus.READY,"generateDepositAddress"),this.ensureAuthorized(),this._depositAddress)return this._depositAddress;if(!this.getActiveSignature()){const e=await this.config.getSignature(this.ctx,this.ensureRecipient(),this.chainId);this.authState.destinationSignature=e}return this.act(async()=>{const e=this.getDepositAddressParams(i),a=await this.ctx.api.generateDepositAddress(e);return f(a),this._depositAddress=a,this.emitProgress({status:t.BtcActionStatus.ADDRESS_READY,steps:{created:t.StepStatus.COMPLETE,verifying:t.StepStatus.IDLE,issuing:t.StepStatus.IDLE},metadata:{depositAddress:a}}),a},t.BtcActionStatus.ADDRESS_READY)}async execute(){return this.executeImpl()}async monitorDeposit(){return super.monitorDeposit()}ensureMintingFee(){if(!this.authState.mintingFee)throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,"Minting fee not fetched. Call prepare() first.");return this.authState.mintingFee}getActiveSignature(){var i;return(i=this.authState.networkFee)!=null&&i.signature?{signature:this.authState.networkFee.signature}:this.authState.destinationSignature}}class M extends I{constructor(i,e){super(i,e,t.BtcActionStatus.IDLE);p(this,"chainId");p(this,"authState",{authorized:!1});if(!Dt(e.assetOut))throw new t.LombardError(t.ValidationErrorCode.INVALID_ASSET,`Asset ${e.assetOut} is not supported for stake and deploy. StakeAndDeploy produces LBTC which is then deployed to a vault.`);if(!Et(e.destChain))throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Destination chain ${e.destChain} is not supported for stake and deploy`);if(!O(e.protocol))throw new t.LombardError(t.ValidationErrorCode.INVALID_PARAMETER,`Protocol ${e.protocol} is not supported for stake and deploy`);if(!lt(e.sourceChain,i.env))throw t.LombardError.routeNotFound({assetOut:e.assetOut,sourceChain:e.sourceChain,destChain:e.destChain,env:i.env});const a=t.parseChainIdentifier(e.destChain);if(typeof a!="number"||!A.isValidChain(a))throw new t.LombardError(t.ValidationErrorCode.INVALID_CHAIN,`Unsupported EVM chain: ${e.destChain}`);this.chainId=a}getAddressSchema(){return S.addressSchema}getStatusConfig(){return{idle:t.BtcActionStatus.IDLE,ready:t.BtcActionStatus.READY,addressReady:t.BtcActionStatus.ADDRESS_READY}}getInitialSteps(){return{created:t.StepStatus.IDLE,verifying:t.StepStatus.IDLE,issuing:t.StepStatus.IDLE,depositing:t.StepStatus.IDLE}}isAuthorized(){return this.authState.authorized}getChainId(){return this.chainId}getDepositAddressParams(i){return{address:this.ensureRecipient(),chainId:this.chainId,signature:this.authState.signature,token:this.getExpectedToken(),signatureData:this.authState.typedData,partnerId:this.ctx.partner.getPartnerId(),referrerCode:this._referralCode,captchaToken:i}}getExpectedToken(){return E(this.params.assetOut,A.Token.LBTC)}getAuthRequiredMessage(){return"Deposit authorization required. Call authorizeDeposit() first."}get fee(){return this.authState.fee}async prepare(i){return this.assertStatus(t.BtcActionStatus.IDLE,"prepare"),this.act(async()=>{const e=this.validatePrepareParams(i);if(this._amount=e.amount,this._recipient=e.recipient,this._referralCode=e.referralCode,this.authState.fee=await S.getStakeAndBakeFee(this.ctx,this.chainId,this.params.protocol),await this.resumeFromExistingDeposit(e.recipient)){const o=await S.restoreStakeAndBakeSignature(this.ctx,this.chainId,e.recipient);if(o!=null&&o.hasSignature){o.signature&&(this.authState.signature=o.signature),this.authState.authorized=!0,this.updateStatus(t.BtcActionStatus.ADDRESS_READY),this.emitInitialProgress();return}this.updateStatus(t.BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION),this.emitInitialProgress();return}const n=await S.restoreStakeAndBakeSignature(this.ctx,this.chainId,e.recipient);if(n!=null&&n.hasSignature){n.signature&&(this.authState.signature=n.signature),this.authState.authorized=!0,this.updateStatus(t.BtcActionStatus.READY),this.emitInitialProgress();return}this.updateStatus(t.BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION),this.emitInitialProgress()})}async authorizeDeposit(){if(this.assertStatus([t.BtcActionStatus.NEEDS_DEPLOY_AUTHORIZATION,t.BtcActionStatus.READY],"authorizeDeposit"),this.status===t.BtcActionStatus.READY)return;const i=this.ensureRecipient(),e=this.ensureAmount();return this.act(async()=>{const a=D.toSatoshi(e),n=this.params.assetIn??c.AssetId.BTC,o=await S.authorizeStakeAndBake(this.ctx,{chainId:this.chainId,recipient:i,amount:a.toString(),vaultKey:ft(this.params.protocol),token:n});this.authState.signature=o.signature,this.authState.typedData=o.typedData,this.authState.authorized=!0},t.BtcActionStatus.READY)}async generateDepositAddress(i){return this.assertStatus(t.BtcActionStatus.READY,"generateDepositAddress"),this.ensureAuthorized(),this._depositAddress?this._depositAddress:this.act(async()=>{const e=this.getDepositAddressParams(i),a=await this.ctx.api.generateDepositAddress(e);return f(a),this._depositAddress=a,this.emitProgress({status:t.BtcActionStatus.ADDRESS_READY,steps:{created:t.StepStatus.COMPLETE,verifying:t.StepStatus.IDLE,issuing:t.StepStatus.IDLE,depositing:t.StepStatus.IDLE},metadata:{depositAddress:a}}),a},t.BtcActionStatus.ADDRESS_READY)}async execute(){return this.act(async()=>{this.assertStatus(t.BtcActionStatus.ADDRESS_READY,"execute"),this._depositAddress||await this.generateDepositAddress();const i=this.ensureDepositAddress(),e=await this.trySendBitcoin(i);return e?{depositAddress:i,txHash:e}:{depositAddress:i}})}async monitorDeposit(){const i=this._depositAddress,e=this._recipient;if(!i||!e)throw t.LombardError.missingParameter("depositAddress or recipient");return await y({network:this.bitcoinNetwork,btcService:this.ctx.btc,fetchDeposit:async()=>{const o=(await this.ctx.api.getDeposits(e)).find(h=>h.depositAddress===i);if(o)return{blockHeight:o.blockHeight,isClaimed:o.isClaimed}},onProgress:n=>{this.emitProgress({status:this.status,steps:{created:t.StepStatus.COMPLETE,verifying:n.hasEnoughConfirmations?t.StepStatus.COMPLETE:t.StepStatus.PENDING,issuing:n.isClaimed?t.StepStatus.COMPLETE:t.StepStatus.PENDING,depositing:t.StepStatus.PENDING},confirmations:n.confirmations,requiredConfirmations:n.requiredConfirmations,metadata:{isClaimed:n.isClaimed}})},onComplete:()=>{this.emitCompleted()}})}}class V{constructor(r){p(this,"ctx");this.ctx=t.createBtcCoreContext(r)}stake(r){return new x(this.ctx,r)}stakeAndDeploy(r){return new M(this.ctx,r)}deposit(r){return new k(this.ctx,r)}depositAndDeploy(r){return new F(this.ctx,r)}}function Vt(s){return new V(s)}exports.BtcActions=V;exports.BtcDeposit=k;exports.BtcDepositAndDeploy=F;exports.BtcStake=x;exports.BtcStakeAndDeploy=M;exports.btcActions=Vt;exports.btcModule=Q;
2
- //# sourceMappingURL=BtcActions-B9KwzjIG.cjs.map
@@ -1,7 +0,0 @@
1
- "use strict";var q=Object.defineProperty;var V=(i,a,e)=>a in i?q(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var p=(i,a,e)=>V(i,typeof a!="symbol"?a+"":a,e);const w=require("bignumber.js"),l=require("./withdrawEarn-CVQYjOoY.cjs"),m=require("./token-addresses-C7H9E4qz.cjs"),v=require("./tokens-DEYY7W7O.cjs"),t=require("./statusConstants-CP33VFvI.cjs"),M=require("./storeNetworkFeeSignature-DJgBfZp7.cjs"),Y=require("./fee-requirements-CICSxYYL.cjs"),d=require("./defi-registry-CyMKVT3z.cjs"),n=require("./index-BKzxeh1Y.cjs"),k=require("viem"),L=require("./numbers-3LtmxfD8.cjs"),A=require("./config-BfX8lrdO.cjs");class U{constructor(a){this.env=a}async getMintingFee(a,e){return(await l.getMintingFee({token:e||m.Token.LBTC,chainId:a,env:this.env})).toString()}async signNetworkFee(a){const e=await l.signNetworkFee({fee:new w(a.fee),account:a.account,chainId:a.chainId,provider:a.provider,env:this.env,token:a.token??m.Token.LBTC});return{signature:e.signature,typedData:e.typedData}}async getStakeAndBakeFee(a,e){return(await l.getStakeAndBakeFee({chainId:a,protocol:e})).toString()}async signStakeAndBake(a){const e=await l.signStakeAndBake({value:new w(a.value),account:a.account,chainId:a.chainId,provider:a.provider,env:this.env,vaultKey:a.vaultKey,token:a.token});return{signature:e.signature,typedData:e.typedData}}async signLbtcDestination(a){return{signature:await l.signLbtcDestinationAddr({account:a.address,chainId:a.chainId,provider:a.provider})}}}function $(){return{id:"evm",chain:"evm",register(i){return new U(i.env)}}}const G={routes:[{asset:d.AssetId.LBTC,sourceChains:[t.Chain.ETHEREUM],protocols:[d.DefiProtocol.Veda],envs:[n.r.prod]},{asset:d.AssetId.LBTC,sourceChains:[t.Chain.BASE],protocols:[d.DefiProtocol.Veda],envs:[n.r.prod]},{asset:d.AssetId.LBTC,sourceChains:[t.Chain.BSC],protocols:[d.DefiProtocol.Veda],envs:[n.r.prod]},{asset:d.AssetId.LBTC,sourceChains:[t.Chain.CORN],protocols:[d.DefiProtocol.Veda],envs:[n.r.prod]},{asset:d.AssetId.LBTC,sourceChains:[t.Chain.AVALANCHE],protocols:[d.DefiProtocol.Silo],envs:[n.r.prod]}]};async function W({amount:i,approve:a=!0,token:e=m.Token.LBTC,account:s,chainId:r,provider:u,rpcUrl:c,env:h}){const o=A.EARN_VAULT;if(!A.isEarnChain(r))throw new Error(`Unsupported chain id: ${r}. Please switch to one of the supported chains: ${o.chains.join(", ")}`);const C=v.makePublicClient({chainId:r,rpcUrl:c}),_=m.makeWalletClient({provider:u,chainId:r}),E=await v.getTokenInfo(e,r,h,c);if(!E)throw new Error(`Unknown deposit token: ${e}`);const S=w(i),g=L.toBigInt(v.toBaseDenomination(S,E.decimals)),T=await C.readContract({address:E.address,abi:E.abi,functionName:"allowance",args:[s,o.vaultContract.address]}),f=v.fromBaseDenomination(String(T),E.decimals),P=await C.readContract({address:E.address,abi:E.abi,functionName:"balanceOf",args:[s]}),B=v.fromBaseDenomination(String(P),E.decimals);if(S.isGreaterThan(B))throw new Error(`The deposit amount exceeds the account's balance.
2
- Deposit amount: ${S.toFixed()}
3
- Balance: ${B.toFixed()}`);if(S.isGreaterThan(f)){const R=`The deposit amount exceeds allowance.
4
- Deposit amount: ${S.toFixed()}
5
- Allowance: ${f.toFixed()}`;if(!a)throw new Error(R);console.info(R);try{console.info(`Trying to approve ${g}`);const{request:D}=await C.simulateContract({account:s,chain:m.CHAIN_ID_TO_VIEM_CHAIN_MAP[r],address:E.address,abi:E.abi,functionName:"approve",args:[o.vaultContract.address,g]}),O=await _.writeContract(D);console.info(`Approve tx hash: ${O}`),console.info(`Approved ${g} for ${o.vaultContract.address}`)}catch(D){const O=v.getErrorMessage(D);throw new Error(`Could not approve ${g} for ${o.vaultContract.address}.
6
- Reason: ${O}`)}}const{request:F}=await C.simulateContract({account:s,chain:m.CHAIN_ID_TO_VIEM_CHAIN_MAP[r],address:o.tellerContracts[r].address,abi:o.tellerContracts[r].abi,functionName:"deposit",args:[E.address,g,0n]});return await _.writeContract(F)}class z extends t.BaseAction{constructor(e,s){super(t.EvmOperationStatus.IDLE);p(this,"_amount");p(this,"_protocol");p(this,"_needsApproval",!1);p(this,"_txHash");p(this,"_account");p(this,"_chainId");this.ctx=e,this.params=s}get amount(){return this._amount}get protocol(){return this._protocol}get needsApproval(){return this._needsApproval}get txHash(){return this._txHash}isVedaBtcePath(){return this._protocol===d.DefiProtocol.Veda&&this._chainId!==void 0&&A.isBtceVaultChain(this._chainId)}getSpenderAddress(){return this.isVedaBtcePath()?A.BTCE_VAULT.contracts[this._chainId]:A.EARN_VAULT.vaultContract.address}async prepare(e){return this.assertStatus(t.EvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const s=t.validatePrepareParams(this.prepareSchema,e);this._amount=s.amount,this._protocol=e.protocol,this.validateProtocol(e.protocol);const r=await this.ctx.getProvider("evm");if(!r)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const c=(await r.request({method:"eth_accounts"}))[0];if(!c)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");this._account=c,this._chainId=t.parseChainIdentifier(this.params.sourceChain);const h=await v.getTokenInfo(m.Token.LBTC,this._chainId,this.ctx.env);if(!h)throw t.LombardError.invalidParameter("token","Could not get LBTC token info");const o=this.getSpenderAddress(),_=await v.makePublicClient({chainId:this._chainId}).readContract({address:h.address,abi:k.erc20Abi,functionName:"allowance",args:[c,o]}),E=new w(s.amount),S=v.toBaseDenomination(E,h.decimals),g=new w(String(_));this._needsApproval=S.isGreaterThan(g),this._needsApproval?(this.emitProgress({status:t.EvmOperationStatus.NEEDS_APPROVAL,steps:{approval:t.StepStatus.PENDING,deploying:t.StepStatus.IDLE}}),this.updateStatus(t.EvmOperationStatus.NEEDS_APPROVAL)):(this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,deploying:t.StepStatus.PENDING}}),this.updateStatus(t.EvmOperationStatus.READY))})}async approve(){return this.assertStatus(t.EvmOperationStatus.NEEDS_APPROVAL,"approve"),this.act(async()=>{if(!this._account||!this._chainId||!this._amount)throw t.LombardError.missingParameter("account, chainId, or amount");const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const s=await v.getTokenInfo(m.Token.LBTC,this._chainId,this.ctx.env);if(!s)throw t.LombardError.invalidParameter("token","Could not get LBTC token info");const r=new w(this._amount),u=L.toBigInt(v.toBaseDenomination(r,s.decimals)),c=this.getSpenderAddress(),h=v.makePublicClient({chainId:this._chainId}),o=m.makeWalletClient({provider:e,chainId:this._chainId}),{request:C}=await h.simulateContract({account:this._account,chain:m.CHAIN_ID_TO_VIEM_CHAIN_MAP[this._chainId],address:s.address,abi:k.erc20Abi,functionName:"approve",args:[c,u]}),_=await o.writeContract(C);await l.waitForTransactionReceipt(h,_,"LBTC deposit approval"),this._needsApproval=!1,this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,deploying:t.StepStatus.PENDING}})},t.EvmOperationStatus.READY)}async execute(){return this.assertStatus(t.EvmOperationStatus.READY,"execute"),this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");if(!this._account||!this._chainId)throw t.LombardError.missingParameter("account or chainId");this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,deploying:t.StepStatus.PENDING}});let s;return this.isVedaBtcePath()?s=await l.depositEarn({token:m.Token.LBTC,amount:this._amount,receiver:this.params.recipient,approve:!1,account:this._account,chainId:this._chainId,provider:e,env:this.ctx.env}):s=await W({amount:this._amount,approve:!1,token:m.Token.LBTC,account:this._account,chainId:this._chainId,provider:e,env:this.ctx.env}),this._txHash=s,this.emitProgress({status:t.EvmOperationStatus.COMPLETED,steps:{approval:t.StepStatus.COMPLETE,deploying:t.StepStatus.COMPLETE}}),this.emitCompleted(),{txHash:s}},t.EvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.evmAmountSchema,protocol:t.stringType().min(1,"Protocol is required")})}validateProtocol(e){if(!G.routes.some(r=>r.protocols.includes(e)&&r.envs.includes(this.ctx.env)))throw t.LombardError.invalidParameter("protocol",`Protocol ${e} is not supported in ${this.ctx.env} environment`)}}function Z(i,a){return new z(i,a)}const j=t.getEvmAssetChains(d.AssetId.BTCb,[n.r.prod]),K=t.getEvmAssetChains(d.AssetId.BTCb,[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]),Q=t.getEvmAssetChains(d.AssetId.LBTC,[n.r.prod]),J=t.getEvmAssetChains(d.AssetId.LBTC,[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]),X={routes:[{assetsIn:[d.AssetId.BTCb],assetOut:d.AssetId.LBTC,sourceChains:j,destChains:Q,envs:[n.r.prod]},{assetsIn:[d.AssetId.BTCb],assetOut:d.AssetId.LBTC,sourceChains:K,destChains:J,envs:[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]}],addressSchema:t.evmAddressSchema};var I=(i=>(i.IDLE="idle",i.NEEDS_APPROVAL="needs-approval",i.READY="ready",i.BRIDGING="bridging",i.COMPLETED="completed",i))(I||{});class tt extends t.BaseAction{constructor(e,s){super(I.IDLE);p(this,"_amount");p(this,"_recipient");p(this,"_needsApproval",!1);p(this,"_txHash");p(this,"_claimData");this.ctx=e,this.params=s}get amount(){return this._amount}get recipient(){return this._recipient}get needsApproval(){return this._needsApproval}get txHash(){return this._txHash}setClaimData(e,s){this._claimData={data:e,proofSignature:s}}async prepare(e){return this.assertStatus(I.IDLE,"prepare"),this.act(async()=>{const s=t.validatePrepareParams(this.prepareSchema,e,{destChain:this.params.destChain});this._amount=s.amount,this._recipient=s.recipient,this._needsApproval=!1,this.emitProgress({status:I.READY,steps:{approval:t.StepStatus.COMPLETE,execution:t.StepStatus.IDLE,bridging:t.StepStatus.IDLE}})},I.READY)}async approve(){return this.assertStatus(I.NEEDS_APPROVAL,"approve"),this.act(async()=>{this._needsApproval=!1},I.READY)}async execute(){if(this.assertStatus(I.READY,"execute"),!this._claimData)throw t.LombardError.missingParameter("claimData");return this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const s=t.parseChainIdentifier(this.params.destChain);this.emitProgress({status:I.READY,steps:{approval:t.StepStatus.COMPLETE,execution:t.StepStatus.PENDING,bridging:t.StepStatus.IDLE}});const r=await l.claimLBTC({provider:e,account:this._recipient,data:this._claimData.data,proofSignature:this._claimData.proofSignature,chainId:s,env:this.ctx.env});return this._txHash=r,this.emitProgress({status:I.COMPLETED,steps:{approval:t.StepStatus.COMPLETE,execution:t.StepStatus.COMPLETE,bridging:t.StepStatus.IDLE}}),this.emitCompleted(),{txHash:r}},I.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.evmAmountSchema,recipient:X.addressSchema})}}function et(i,a){return new tt(i,a)}const st=t.getEvmAssetChains(d.AssetId.BTCb,[n.r.prod]),at=t.getEvmAssetChains(d.AssetId.BTCb,[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]),rt={routes:[{assetIn:d.AssetId.BTCb,assetOut:d.AssetId.BTC,sourceChains:st,destChain:t.Chain.BITCOIN_MAINNET,envs:[n.r.prod]},{assetIn:d.AssetId.BTCb,assetOut:d.AssetId.BTC,sourceChains:at,destChain:t.Chain.BITCOIN_SIGNET,envs:[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]}],recipientSchema:t.bitcoinAddressSchema};async function b(i,a,e,s){if(!Y.requiresAutoMintFee(i))return{requiresAuth:!1,hasValidSignature:!1,feeInSatoshis:null,feeFormatted:null,expirationDate:null};const r=await v.getTokenContractInfo(s,i,e),u=await M.getNetworkFeeSignature({address:a,chainId:i,env:e,tokenAddress:r.address}),c=u.expirationDate?new Date(Number(u.expirationDate)*1e3)<new Date:!1,h=u.hasSignature&&!c;let o=null,C=null;if(!h){const _=await l.getMintingFee({token:s,chainId:i,env:e});o=BigInt(_.times(1e8).toFixed(0)),C=_.toFixed(8)}return{requiresAuth:!0,hasValidSignature:h,feeInSatoshis:o,feeFormatted:C,expirationDate:u.expirationDate??null}}async function x(i){const{chainId:a,account:e,feeInSatoshis:s,provider:r,env:u,token:c}=i,h=await v.getTokenContractInfo(c,a,u),o=await l.signNetworkFee({fee:s,account:e,chainId:a,provider:r,env:u,token:c});return await M.storeNetworkFeeSignature({signature:o.signature,typedData:o.typedData,address:e,env:u,tokenAddress:h.address}),o}function N(){return{requiresAuth:!1,isAuthorized:!1,feeInSatoshis:null,feeFormatted:null,expirationDate:null}}class it extends t.BaseAction{constructor(e,s){super(t.EvmOperationStatus.IDLE);p(this,"_amount");p(this,"_recipient");p(this,"_needsApproval",!1);p(this,"_txHash");p(this,"_feeAuth",N());this.ctx=e,this.params=s}get amount(){return this._amount}get recipient(){return this._recipient}get needsApproval(){return this._needsApproval}get txHash(){return this._txHash}get feeAuth(){return this._feeAuth}async prepare(e){return this.assertStatus(t.EvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const s=t.validatePrepareParams(this.prepareSchema,e,{destChain:this.params.destChain});this._amount=s.amount,this._recipient=s.recipient;const r=t.parseChainIdentifier(this.params.sourceChain),u=await this.ctx.getProvider("evm");if(!u)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const h=(await u.request({method:"eth_accounts"}))[0],o=await b(r,h,this.ctx.env,m.Token.BTCb);if(this._feeAuth={requiresAuth:o.requiresAuth,isAuthorized:o.hasValidSignature,feeInSatoshis:o.feeInSatoshis,feeFormatted:o.feeFormatted,expirationDate:o.expirationDate},o.requiresAuth&&!o.hasValidSignature){this.updateStatus(t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION),this.emitProgress({status:t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}});return}this._needsApproval=!1,this.updateStatus(t.EvmOperationStatus.READY),this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})})}async authorizeFee(){if(this.assertStatus(t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION,"authorizeFee"),!this._feeAuth.feeInSatoshis)throw t.LombardError.missingParameter("feeInSatoshis");return this.act(async()=>{const e=t.parseChainIdentifier(this.params.sourceChain),s=await this.ctx.getProvider("evm");if(!s)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const u=(await s.request({method:"eth_accounts"}))[0];await x({chainId:e,account:u,feeInSatoshis:this._feeAuth.feeInSatoshis,provider:s,env:this.ctx.env,token:m.Token.BTCb}),this._feeAuth.isAuthorized=!0,this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.EvmOperationStatus.READY)}async approve(){return this.assertStatus(t.EvmOperationStatus.NEEDS_APPROVAL,"approve"),this.act(async()=>{this._needsApproval=!1,this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.EvmOperationStatus.READY)}async execute(){return this.assertStatus(t.EvmOperationStatus.READY,"execute"),this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const r=(await e.request({method:"eth_accounts"}))[0];if(!r)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const u=t.parseChainIdentifier(this.params.sourceChain);this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,releasing:t.StepStatus.IDLE}});const c=await l.redeemToken({provider:e,account:r,amount:this._amount,btcAddress:this._recipient,chainId:u,env:this.ctx.env,tokenIn:m.Token.BTCb,tokenOut:void 0});return this._txHash=c,this.emitProgress({status:t.EvmOperationStatus.COMPLETED,steps:{burning:t.StepStatus.COMPLETE,releasing:t.StepStatus.PENDING}}),this.emitCompleted(),{txHash:c}},t.EvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.evmAmountSchema,recipient:rt.recipientSchema})}}function nt(i,a){return new it(i,a)}const ot=[m.ChainId.avalanche,m.ChainId.avalancheFuji];function ct(i){return ot.includes(i)}class ut extends t.BaseAction{constructor(e,s){super(t.EvmOperationStatus.IDLE);p(this,"_amount");p(this,"_txHash");p(this,"_feeAuth",N());p(this,"_account");p(this,"_needsApproval",!1);p(this,"_spenderAddress");this.ctx=e,this.params=s}get amount(){return this._amount}get txHash(){return this._txHash}get feeAuth(){return this._feeAuth}get needsApproval(){return this._needsApproval}async prepare(e){return this.assertStatus(t.EvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const s=t.validatePrepareParams(this.prepareSchema,e);this._amount=s.amount;const r=await this.ctx.getProvider("evm");if(!r)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const c=(await r.request({method:"eth_accounts"}))[0];if(!c)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");this._account=c;const h=t.parseChainIdentifier(this.params.sourceChain);if(ct(h)){const _=await v.getTokenContractInfo(m.Token.BTCb,h,this.ctx.env,m.AddressKind.Adapter);this._spenderAddress=_.address;const E=await l.getTokenAllowance({token:m.Token.BTCb,owner:c,spender:_.address,chainId:h,env:this.ctx.env}),S=new w(s.amount);if(this._needsApproval=E.isLessThan(S),this._needsApproval){this.emitProgress({status:t.EvmOperationStatus.NEEDS_APPROVAL,steps:{approval:t.StepStatus.PENDING,staking:t.StepStatus.IDLE}}),this.updateStatus(t.EvmOperationStatus.NEEDS_APPROVAL);return}}const o=await b(h,c,this.ctx.env,m.Token.LBTC);this._feeAuth={requiresAuth:o.requiresAuth,isAuthorized:o.hasValidSignature,feeInSatoshis:o.feeInSatoshis,feeFormatted:o.feeFormatted,expirationDate:o.expirationDate},o.requiresAuth&&!o.hasValidSignature?(this.emitProgress({status:t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION,steps:{staking:t.StepStatus.IDLE}}),this.updateStatus(t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION)):(this.emitProgress({status:t.EvmOperationStatus.READY,steps:{staking:t.StepStatus.PENDING}}),this.updateStatus(t.EvmOperationStatus.READY))})}async approve(){return this.assertStatus(t.EvmOperationStatus.NEEDS_APPROVAL,"approve"),this.act(async()=>{if(!this._account||!this._spenderAddress||!this._amount)throw t.LombardError.missingParameter("account, spenderAddress, or amount");const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const s=t.parseChainIdentifier(this.params.sourceChain),r=await l.approveToken({account:this._account,token:m.Token.BTCb,spender:this._spenderAddress,amount:this._amount,chainId:s,provider:e,env:this.ctx.env}),u=v.makePublicClient({chainId:s,env:this.ctx.env});await l.waitForTransactionReceipt(u,r,"BTC.b approval"),this._needsApproval=!1,this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,staking:t.StepStatus.PENDING}})},t.EvmOperationStatus.READY)}async authorizeFee(){return this.assertStatus(t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION,"authorizeFee"),this.act(async()=>{if(!this._feeAuth.feeInSatoshis)throw t.LombardError.missingParameter("feeInSatoshis");const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const s=t.parseChainIdentifier(this.params.sourceChain);await x({chainId:s,account:this._account,feeInSatoshis:this._feeAuth.feeInSatoshis,provider:e,env:this.ctx.env,token:m.Token.LBTC}),this._feeAuth={...this._feeAuth,isAuthorized:!0},this.emitProgress({status:t.EvmOperationStatus.READY,steps:{staking:t.StepStatus.PENDING}})},t.EvmOperationStatus.READY)}async execute(){return this.assertStatus(t.EvmOperationStatus.READY,"execute"),this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const s=t.parseChainIdentifier(this.params.sourceChain),u=(await e.request({method:"eth_accounts"}))[0];if(!u)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");this.emitProgress({status:t.EvmOperationStatus.READY,steps:{staking:t.StepStatus.PENDING}});const c=await l.depositToken({amount:this._amount,tokenIn:m.Token.BTCb,tokenOut:m.Token.LBTC,account:u,chainId:s,provider:e,env:this.ctx.env});return this._txHash=c,this.emitProgress({status:t.EvmOperationStatus.COMPLETED,steps:{staking:t.StepStatus.COMPLETE}}),this.emitCompleted(),{txHash:c}},t.EvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.evmAmountSchema})}}function ht(i,a){return new ut(i,a)}const pt=t.getEvmAssetChains(d.AssetId.LBTC,[n.r.prod]),dt=t.getEvmAssetChains(d.AssetId.LBTC,[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]),mt=t.getEvmChainsWithAllAssets([d.AssetId.LBTC,d.AssetId.BTCb],[n.r.prod]),vt=t.getEvmChainsWithAllAssets([d.AssetId.LBTC,d.AssetId.BTCb],[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]),Et={routes:[{sourceChains:pt,destChain:t.Chain.BITCOIN_MAINNET,envs:[n.r.prod]},{sourceChains:dt,destChain:t.Chain.BITCOIN_SIGNET,envs:[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]}],recipientSchema:t.bitcoinAddressSchema},lt={routes:[...mt.map(i=>({sourceChains:[i],destChain:i,envs:[n.r.prod]})),...vt.map(i=>({sourceChains:[i],destChain:i,envs:[n.r.testnet,n.r.stage,n.r.dev,n.r.ibc]}))],recipientSchema:t.evmAddressSchema};class St extends t.BaseAction{constructor(e,s){super(t.EvmOperationStatus.IDLE);p(this,"_amount");p(this,"_recipient");p(this,"_txHash");p(this,"_feeAuth",N());this.ctx=e,this.params=s}get amount(){return this._amount}get recipient(){return this._recipient}get txHash(){return this._txHash}get feeAuth(){return this._feeAuth}get isBtcbOutput(){return this.params.assetOut===d.AssetId.BTCb}async prepare(e){return this.assertStatus(t.EvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const s=t.validatePrepareParams(this.prepareSchema,e,{destChain:this.params.destChain});this._amount=s.amount,this._recipient=s.recipient;const r=t.parseChainIdentifier(this.params.sourceChain);if(this.isBtcbOutput){const u=await this.ctx.getProvider("evm");if(!u)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const h=(await u.request({method:"eth_accounts"}))[0],o=await b(r,h,this.ctx.env,m.Token.BTCb);if(this._feeAuth={requiresAuth:o.requiresAuth,isAuthorized:o.hasValidSignature,feeInSatoshis:o.feeInSatoshis,feeFormatted:o.feeFormatted,expirationDate:o.expirationDate},o.requiresAuth&&!o.hasValidSignature){this.updateStatus(t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION),this.emitProgress({status:t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}});return}}this.updateStatus(t.EvmOperationStatus.READY),this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})})}async authorizeFee(){if(this.assertStatus(t.EvmOperationStatus.NEEDS_FEE_AUTHORIZATION,"authorizeFee"),!this._feeAuth.feeInSatoshis)throw t.LombardError.missingParameter("feeInSatoshis");return this.act(async()=>{const e=t.parseChainIdentifier(this.params.sourceChain),s=await this.ctx.getProvider("evm");if(!s)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const u=(await s.request({method:"eth_accounts"}))[0];await x({chainId:e,account:u,feeInSatoshis:this._feeAuth.feeInSatoshis,provider:s,env:this.ctx.env,token:m.Token.BTCb}),this._feeAuth.isAuthorized=!0,this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.EvmOperationStatus.READY)}async execute(){return this.assertStatus(t.EvmOperationStatus.READY,"execute"),this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const r=(await e.request({method:"eth_accounts"}))[0];if(!r)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const u=t.parseChainIdentifier(this.params.sourceChain),c=this.params.assetOut===d.AssetId.BTCb;this.emitProgress({status:t.EvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,releasing:t.StepStatus.IDLE}});const h=await l.redeemToken({provider:e,account:c?this._recipient:r,amount:this._amount,btcAddress:c?void 0:this._recipient,chainId:u,env:this.ctx.env,tokenIn:m.Token.LBTC,tokenOut:c?m.Token.BTCb:void 0});return this._txHash=h,this.emitProgress({status:t.EvmOperationStatus.COMPLETED,steps:{burning:t.StepStatus.COMPLETE,releasing:c?t.StepStatus.COMPLETE:t.StepStatus.PENDING}}),this.emitCompleted(),{txHash:h}},t.EvmOperationStatus.COMPLETED)}get prepareSchema(){const e=this.params.assetOut===d.AssetId.BTC?Et:lt;return t.objectType({amount:t.evmAmountSchema,recipient:e.recipientSchema})}}function Ct(i,a){return new St(i,a)}const y={routes:[{sourceChains:[t.Chain.ETHEREUM,t.Chain.BASE,t.Chain.BSC,t.Chain.CORN],protocols:[d.DefiProtocol.Veda],envs:[n.r.prod]}]};class At extends t.BaseAction{constructor(e,s){super(t.EvmOperationStatus.IDLE);p(this,"_txHash");p(this,"_account");p(this,"_chainId");this.ctx=e,this.params=s}get txHash(){return this._txHash}async prepare(){return this.assertStatus(t.EvmOperationStatus.IDLE,"prepare"),this.act(async()=>{this.validateProtocol(this.params.protocol);const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.chain,"evm");const r=(await e.request({method:"eth_accounts"}))[0];if(!r)throw t.LombardError.providerMissing(this.params.chain,"evm");if(this._account=r,this._chainId=t.parseChainIdentifier(this.params.chain),!A.isEarnChain(this._chainId))throw new t.LombardError(t.WithdrawErrorCode.PROTOCOL_NOT_SUPPORTED,`Chain ${this.params.chain} does not support Veda vault withdrawals`,{chain:this.params.chain,protocol:this.params.protocol});this.emitProgress({status:t.EvmOperationStatus.READY,steps:{cancelling:t.StepStatus.PENDING}}),this.updateStatus(t.EvmOperationStatus.READY)})}async execute(){return this.assertStatus(t.EvmOperationStatus.READY,"execute"),this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.chain,"evm");if(!this._account||!this._chainId)throw t.LombardError.missingParameter("account or chainId");this.emitProgress({status:t.EvmOperationStatus.READY,steps:{cancelling:t.StepStatus.PENDING}});const s=await l.cancelWithdrawInternal({account:this._account,chainId:this._chainId,provider:e,env:this.ctx.env});return this._txHash=s,this.emitProgress({status:t.EvmOperationStatus.COMPLETED,steps:{cancelling:t.StepStatus.COMPLETE}}),this.emitCompleted(),{txHash:s}},t.EvmOperationStatus.COMPLETED)}validateProtocol(e){if(!y.routes.some(r=>r.protocols.includes(e)&&r.envs.includes(this.ctx.env)))throw t.LombardError.invalidParameter("protocol",`Protocol ${e} is not supported for withdrawals in ${this.ctx.env} environment`)}}class _t extends t.BaseAction{constructor(e,s){super(t.EvmOperationStatus.IDLE);p(this,"_amount");p(this,"_protocol");p(this,"_needsApproval",!1);p(this,"_txHash");p(this,"_account");p(this,"_chainId");this.ctx=e,this.params=s}get amount(){return this._amount}get protocol(){return this._protocol}get needsApproval(){return this._needsApproval}get txHash(){return this._txHash}async prepare(e){return this.assertStatus(t.EvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const s=t.validatePrepareParams(this.prepareSchema,e);this._amount=s.amount,this._protocol=this.params.protocol,this.validateProtocol(this.params.protocol);const r=await this.ctx.getProvider("evm");if(!r)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const c=(await r.request({method:"eth_accounts"}))[0];if(!c)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");if(this._account=c,this._chainId=t.parseChainIdentifier(this.params.sourceChain),!A.isEarnChain(this._chainId))throw new t.LombardError(t.WithdrawErrorCode.PROTOCOL_NOT_SUPPORTED,`Chain ${this.params.sourceChain} does not support Veda vault withdrawals`,{chain:this.params.sourceChain,protocol:this._protocol});const h=A.EARN_VAULT,o=v.makePublicClient({chainId:this._chainId}),C=new w(s.amount),_=await o.readContract({address:h.lensContract.address,abi:h.lensContract.abi,functionName:"balanceOf",args:[c,h.vaultContract.address]}),E=v.fromBaseDenomination(String(_),h.decimals);let S=E;if(A.isBtceVaultChain(this._chainId)){const f=await o.readContract({address:A.BTCE_VAULT.contracts[this._chainId],abi:A.BTCE_VAULT.abi,functionName:"balanceOf",args:[c]}),P=v.fromBaseDenomination(String(f),h.decimals);S=E.plus(P)}if(C.isGreaterThan(S))throw new t.LombardError(t.WithdrawErrorCode.INSUFFICIENT_SHARES,`Insufficient vault shares. Requested: ${C.toFixed()}, Available: ${S.toFixed()}`,{requested:C.toFixed(),available:S.toFixed()});const g=await o.readContract({address:h.vaultContract.address,abi:h.vaultContract.abi,functionName:"allowance",args:[c,h.withdrawQueueContracts[this._chainId].address]}),T=v.fromBaseDenomination(String(g),h.decimals);this._needsApproval=C.isGreaterThan(T),this._needsApproval?(this.emitProgress({status:t.EvmOperationStatus.NEEDS_APPROVAL,steps:{approval:t.StepStatus.PENDING,queueing:t.StepStatus.IDLE}}),this.updateStatus(t.EvmOperationStatus.NEEDS_APPROVAL)):(this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,queueing:t.StepStatus.PENDING}}),this.updateStatus(t.EvmOperationStatus.READY))})}async approve(){return this.assertStatus(t.EvmOperationStatus.NEEDS_APPROVAL,"approve"),this.act(async()=>{if(!this._account||!this._chainId||!this._amount)throw t.LombardError.missingParameter("account, chainId, or amount");const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");const s=A.EARN_VAULT,r=new w(this._amount),u=L.toBigInt(v.toBaseDenomination(r,s.decimals)),c=v.makePublicClient({chainId:this._chainId}),h=m.makeWalletClient({provider:e,chainId:this._chainId}),o=this._chainId;if(A.isBtceVaultChain(this._chainId)){const E=await c.readContract({address:s.lensContract.address,abi:s.lensContract.abi,functionName:"balanceOf",args:[this._account,s.vaultContract.address]});if(E<u){const S=u-E,g=await c.readContract({address:A.BTCE_VAULT.contracts[this._chainId],abi:A.BTCE_VAULT.abi,functionName:"maxWithdraw",args:[this._account]});if(g<S)throw new t.LombardError(t.WithdrawErrorCode.INSUFFICIENT_SHARES,`BTCe wrapper cannot cover the required unwrap. needed=${S.toString()}, maxWithdraw=${g.toString()}.`,{needed:S.toString(),maxWithdraw:g.toString()});const{request:T}=await c.simulateContract({account:this._account,chain:m.CHAIN_ID_TO_VIEM_CHAIN_MAP[this._chainId],address:A.BTCE_VAULT.contracts[this._chainId],abi:A.BTCE_VAULT.abi,functionName:"withdraw",args:[S,this._account,this._account]}),f=await h.writeContract(T);await l.waitForTransactionReceipt(c,f,"BTCe unwrap")}}const{request:C}=await c.simulateContract({account:this._account,chain:m.CHAIN_ID_TO_VIEM_CHAIN_MAP[this._chainId],address:s.vaultContract.address,abi:s.vaultContract.abi,functionName:"approve",args:[s.withdrawQueueContracts[o].address,u]}),_=await h.writeContract(C);await l.waitForTransactionReceipt(c,_,"vault share approval"),this._needsApproval=!1,this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,queueing:t.StepStatus.PENDING}})},t.EvmOperationStatus.READY)}async execute(){return this.assertStatus(t.EvmOperationStatus.READY,"execute"),this.act(async()=>{const e=await this.ctx.getProvider("evm");if(!e)throw t.LombardError.providerMissing(this.params.sourceChain,"evm");if(!this._account||!this._chainId||!this._amount)throw t.LombardError.missingParameter("account, chainId, or amount");this.emitProgress({status:t.EvmOperationStatus.READY,steps:{approval:t.StepStatus.COMPLETE,queueing:t.StepStatus.PENDING}});let s;return A.isBtceVaultChain(this._chainId)?s=(await l.withdrawEarn({amount:this._amount,account:this._account,chainId:this._chainId,provider:e,env:this.ctx.env})).queueTxHash:s=await l.queueWithdrawInternal({amount:this._amount,approve:!1,account:this._account,chainId:this._chainId,provider:e,env:this.ctx.env}),this._txHash=s,this.emitProgress({status:t.EvmOperationStatus.COMPLETED,steps:{approval:t.StepStatus.COMPLETE,queueing:t.StepStatus.COMPLETE}}),this.emitCompleted(),{txHash:s}},t.EvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.evmAmountSchema})}validateProtocol(e){if(!y.routes.some(r=>r.protocols.includes(e)&&r.envs.includes(this.ctx.env)))throw t.LombardError.invalidParameter("protocol",`Protocol ${e} is not supported for withdrawals in ${this.ctx.env} environment`)}}function gt(i,a){return new _t(i,a)}function It(i,a){return new At(i,a)}class H{constructor(a){p(this,"ctx");this.ctx=t.createEvmCoreContext(a)}stake(a){return ht(this.ctx,a)}unstake(a){return Ct(this.ctx,a)}deposit(a){return et(this.ctx,a)}deploy(a){return Z(this.ctx,a)}withdraw(a){return gt(this.ctx,a)}cancelWithdraw(a){return It(this.ctx,a)}redeem(a){return nt(this.ctx,a)}}function wt(i){return new H(i)}exports.EvmActions=H;exports.EvmDepositStatus=I;exports.evmActions=wt;exports.evmModule=$;
7
- //# sourceMappingURL=EvmActions-DBAcQeMr.cjs.map
@@ -1,6 +0,0 @@
1
- const _ = 2e-4, M = 1e-4;
2
- export {
3
- M as MIN_REDEEM_AMOUNT_BTC,
4
- _ as MIN_STAKE_AMOUNT_BTC
5
- };
6
- //# sourceMappingURL=constants-D1FnS2Z8.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-D1FnS2Z8.js","sources":["../../src/common/constants.ts"],"sourcesContent":["export const MIN_STAKE_AMOUNT_BTC = 0.0002;\nexport const MIN_REDEEM_AMOUNT_BTC = 0.0001;\n"],"names":["MIN_STAKE_AMOUNT_BTC","MIN_REDEEM_AMOUNT_BTC"],"mappings":"AAAO,MAAMA,IAAuB,MACvBC,IAAwB;"}
@@ -1,2 +0,0 @@
1
- "use strict";exports.MIN_REDEEM_AMOUNT_BTC=1e-4;exports.MIN_STAKE_AMOUNT_BTC=2e-4;
2
- //# sourceMappingURL=constants-ueShGH9R.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-ueShGH9R.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";const S=require("axios"),_=require("bignumber.js"),p=require("./api-config-DkXqqfCK.cjs"),g=require("./blockchain-identifier-DWfC3Es2.cjs"),I=require("./token-addresses-C7H9E4qz.cjs"),T=require("./constants-ueShGH9R.cjs"),N=require("./satoshi-CZEsHl5X.cjs"),E=require("./tokens-DEYY7W7O.cjs"),s=require("./ReferralsClient-o-3AUm7s.cjs");async function C({env:e,chainId:t=I.ChainId.ethereum,amount:i=N.toSatoshi(1)}){const{baseApiUrl:r}=p.getApiConfig(e),n=g.getChainNameById(t),{data:o}=await S.get(`api/v1/exchange/rate/${n}`,{baseURL:r,params:{amount:i}}),u=_(o.amount_out).toNumber(),c=_(i).dividedBy(o.amount_out).toNumber(),a=N.toSatoshi(T.MIN_STAKE_AMOUNT_BTC).toNumber();return{amountOut:u,exchangeRate:c,minAmount:a}}const b="api/v1/referral-system/referrer/";async function O({address:e,signature:t,eip712Data:i,referrerCode:r,pubKey:n,env:o}){const{baseApiUrl:u}=p.getApiConfig(o),c={referrer_code:r,signature:t,signature_typed_data:i,...n&&{public_key:n}};try{await S.post(`${b}${e}`,c,{baseURL:u});return}catch(a){const m=E.getErrorMessage(a);throw new Error(m)}}const f=6,R=T.MIN_STAKE_AMOUNT_BTC;function d(e,t){return!t||!e?0:Math.max(0,e-t+1)}function y(e,t,i=f){if(e===void 0||t===void 0)return null;const r=d(e,t),n=Math.min(100,Math.round(r/i*100));return{current:r,required:i,percentage:n,isComplete:r>=i}}function l(e,t,i=f){var a,m;if(e.sanctioned)return"restricted";if(e.isClaimed||e.claimTxHash)return"claimed";if(e.notarizationStatus===s.ENotarizationStatus.NOTARIZATION_STATUS_GMP_HANDLED)return"auto_claimed";const r=((m=(a=e.amount)==null?void 0:a.toNumber)==null?void 0:m.call(a))??Number(e.amount);if(r>0&&r<T.MIN_STAKE_AMOUNT_BTC)return"too_small";if(e.notarizationStatus===s.ENotarizationStatus.NOTARIZATION_STATUS_FAILED)return"failed";if(e.sessionState===s.ESessionState.SESSION_STATE_EXPIRED)return"expired";const n=!!e.proof&&!!e.rawPayload,o=e.notarizationStatus,u=d(t,e.blockHeight),c=t===void 0||u>=i;switch(o){case s.ENotarizationStatus.NOTARIZATION_STATUS_PENDING:case s.ENotarizationStatus.NOTARIZATION_STATUS_GMP_PENDING:case s.ENotarizationStatus.NOTARIZATION_STATUS_SUBMITTED:return t!==void 0&&!c?"pending_confirmations":"pending_notarization";case s.ENotarizationStatus.NOTARIZATION_STATUS_SESSION_APPROVED:return n?"claimable":"pending_notarization";case s.ENotarizationStatus.NOTARIZATION_STATUS_UNSPECIFIED:default:return t!==void 0&&!c?"pending_confirmations":"pending_notarization"}}function A(e){switch(e){case"pending_confirmations":return{label:"Pending Confirmations",severity:"warning",description:`Waiting for Bitcoin block confirmations (${f} required)`,isTerminal:!1,requiresAction:!1};case"pending_notarization":return{label:"Pending Notarization",severity:"info",description:"Confirmations complete, waiting for notarization service to generate proof",isTerminal:!1,requiresAction:!1};case"claimable":return{label:"Claimable",severity:"success",description:"Ready to mint - proof available, claim to receive tokens",isTerminal:!1,requiresAction:!0};case"claiming":return{label:"Claiming",severity:"info",description:"Claim transaction in progress",isTerminal:!1,requiresAction:!1};case"claimed":return{label:"Claimed",severity:"neutral",description:"Tokens have been minted to your address",isTerminal:!0,requiresAction:!1};case"auto_claimed":return{label:"Auto-Claimed",severity:"success",description:"Automatically claimed via cross-chain messaging (GMP)",isTerminal:!0,requiresAction:!1};case"expired":return{label:"Expired",severity:"error",description:"Fee signature expired, requires re-authorization",isTerminal:!1,requiresAction:!0};case"failed":return{label:"Failed",severity:"error",description:"Notarization failed - contact support",isTerminal:!0,requiresAction:!1};case"restricted":return{label:"Restricted",severity:"error",description:"This deposit is restricted or sanctioned",isTerminal:!0,requiresAction:!1};case"too_small":return{label:"Too Small",severity:"neutral",description:`Amount below minimum claimable amount (${T.MIN_STAKE_AMOUNT_BTC} BTC)`,isTerminal:!0,requiresAction:!1}}}function M(e,t){return l(e,t)==="claimable"}function q(e,t){const i=l(e,t);return i==="pending_confirmations"||i==="pending_notarization"}function v(e,t){const i=l(e,t);return A(i).isTerminal}function D(e,t){const i=l(e,t);return A(i).requiresAction}exports.MIN_CLAIM_AMOUNT_BTC=R;exports.REQUIRED_CONFIRMATIONS=f;exports.calcConfirmations=d;exports.depositRequiresAction=D;exports.getConfirmationProgress=y;exports.getDepositStatus=l;exports.getDepositStatusDisplay=A;exports.getLBTCExchangeRate=C;exports.isDepositClaimable=M;exports.isDepositPending=q;exports.isDepositTerminal=v;exports.setReferral=O;
2
- //# sourceMappingURL=depositStatus-B9P1YXEU.cjs.map
@@ -1,2 +0,0 @@
1
- "use strict";var H=Object.defineProperty;var F=(n,e,s)=>e in n?H(n,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[e]=s;var a=(n,e,s)=>F(n,typeof e!="symbol"?e+"":e,s);require("axios");const t=require("./statusConstants-CP33VFvI.cjs"),G=require("./getUserStakeAndBakeSignature-VlC_GHmz.cjs"),S=require("./ReferralsClient-o-3AUm7s.cjs"),I=require("./storeNetworkFeeSignature-DJgBfZp7.cjs"),b=require("./BtcActions-B9KwzjIG.cjs"),D=require("./EvmActions-DBAcQeMr.cjs"),m=require("./token-addresses-C7H9E4qz.cjs"),v=require("./satoshi-CZEsHl5X.cjs"),o=require("./index-BKzxeh1Y.cjs"),c=require("./defi-registry-CyMKVT3z.cjs"),Y=require("./get-exchange-ratio-DGztGO7i.cjs"),N=require("./get-vault-withdrawals-Cgx7VsM1.cjs"),O=["debug","info","warn","error","none"];function T(n={}){const{level:e="debug",prefix:s="[Lombard SDK]",timestamp:r=!1}=n,i=O.indexOf(e),u=d=>O.indexOf(d)>=i&&e!=="none",h=d=>{if(r){const p=new Date().toISOString();return`${s} ${p} ${d}`}return`${s} ${d}`},g=d=>!d||Object.keys(d).length===0?[]:[d];return{debug(d,p){u("debug")&&console.debug(h(d),...g(p))},info(d,p){u("info")&&console.info(h(d),...g(p))},warn(d,p){u("warn")&&console.warn(h(d),...g(p))},error(d,p){u("error")&&console.error(h(d),...g(p))}}}function q(){return{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}}}function U(){return{"X-SDK-Version":t.SDK_VERSION,"X-SDK-Runtime":t.SDK_RUNTIME}}class _{constructor(e=o.p){a(this,"apiVersion","v1");this.env=e}async deposits(e){return S.getDepositsByAddress({address:e,env:this.env})}async unstakes(e,s){return S.getUnstakesByAddress({address:e,env:this.env,options:s})}async points(e,s){return S.getPointsByAddress({address:e,env:this.env,season:s})}async exchangeRatio(){return Y.getExchangeRatio({env:this.env})}async depositAddress(e,s,r){return S.getDepositBtcAddress({address:e,chainId:s,env:this.env,partnerId:r==null?void 0:r.partnerId,token:r==null?void 0:r.token})}async vaultWithdrawals(e,s){const r=e;return s!=null&&s.chainId?N.getEarnWithdrawals({account:r,chainId:s.chainId,rpcUrl:s.rpcUrl,env:this.env}):N.getEarnWithdrawalsAllChains({account:r,rpcUrl:s==null?void 0:s.rpcUrl})}getApiVersion(){return this.apiVersion}}function K(n){if(!n.env)throw t.LombardError.missingParameter("env");const e={env:n.env,providers:n.providers||{}};return n.partner&&(V(n.partner),e.partner=n.partner),e}function V(n){if(typeof n!="object"||n===null)throw t.LombardError.invalidConfiguration("Partner configuration must be an object");const e=n;if(!e.partnerId||typeof e.partnerId!="string")throw t.LombardError.missingParameter("partner.partnerId");if(e.partnerId.trim().length===0)throw t.LombardError.invalidConfiguration("Partner ID cannot be empty")}class j{constructor(e){this.env=e}async generateDepositAddress(e){return G.generateDepositBtcAddress({address:e.address,chainId:e.chainId,signature:e.signature,token:e.token,eip712Data:e.eip712Data,signatureData:e.signatureData,pubKey:e.pubKey,env:this.env,partnerId:e.partnerId,referrerCode:e.referrerCode,captchaToken:e.captchaToken})}async getDepositAddress(e){try{return await S.getDepositBtcAddress({address:e.address,chainId:e.chainId,token:e.token,env:this.env,partnerId:e.partnerId})||void 0}catch{return}}async getDeposits(e){return(await S.getDepositsByAddress({address:e,env:this.env})).map(r=>{var i;return{depositAddress:r.depositAddress??"",blockHeight:r.blockHeight,isClaimed:r.isClaimed,txid:r.txHash,amount:(i=r.amount)==null?void 0:i.toString()}})}async storeFeeSignature(e){await I.storeNetworkFeeSignature({address:e.address,signature:e.signature,typedData:e.typedData,env:this.env,tokenAddress:e.tokenAddress})}async getFeeSignature(e){return I.getNetworkFeeSignature({address:e.address,chainId:e.chainId,env:this.env,tokenAddress:e.tokenAddress})}async storeStakeAndBakeSignature(e){await S.storeStakeAndBakeSignature({signature:e.signature,typedData:e.typedData,env:this.env})}}function $(){return{id:"api",register(n){return new j(n.env)}}}function W(n){const e=new Map,s=[b.btcModule(),D.evmModule(),$()];for(const r of s)e.set(r.id,r);if(n)for(const r of n)e.set(r.id,r);return Array.from(e.values())}function z(n,e){for(const s of n)for(const r of s.requiresProviders??[])if(!X(e,r))throw t.LombardError.providerMissing(r,r)}function X(n,e){var s;return!!((s=n.providers)!=null&&s[e])}function P(n){const e=K(n),s=W(n.modules);z(s,e);let r=n.logger;return!r&&n.debug&&(r=T({level:"debug"})),{...e,modules:s,logger:r}}function E(n){switch(n){case"prod":return"mainnet-beta";case"testnet":case"stage":case"dev":case"ibc":default:return"devnet"}}function L(n){switch(n){case"prod":return m.SOLANA_MAINNET_CHAIN;case"testnet":case"stage":case"dev":case"ibc":default:return m.SOLANA_DEVNET_CHAIN}}const x={routes:[{sourceChains:[t.Chain.SOLANA_MAINNET],destChain:t.Chain.BITCOIN_MAINNET,assetIn:c.AssetId.BTCb,assetOut:c.AssetId.BTC,envs:[o.r.prod]},{sourceChains:[t.Chain.SOLANA_DEVNET],destChain:t.Chain.BITCOIN_SIGNET,assetIn:c.AssetId.BTCb,assetOut:c.AssetId.BTC,envs:[o.r.testnet,o.r.stage,o.r.dev]}],recipientSchema:t.bitcoinAddressSchema};function Z(n,e,s,r,i){return x.routes.some(u=>u.sourceChains.includes(n)&&u.destChain===e&&u.assetIn===s&&u.assetOut===r&&u.envs.includes(i))}class J extends t.BaseAction{constructor(s,r){super(t.NonEvmOperationStatus.IDLE);a(this,"_amount");a(this,"_recipient");a(this,"_txHash");if(this.ctx=s,this.params=r,!Z(r.sourceChain,r.destChain,r.assetIn,r.assetOut,s.env))throw t.LombardError.routeNotFound({assetOut:r.assetOut,sourceChain:r.sourceChain,destChain:r.destChain,env:s.env})}get amount(){return this._amount}get recipient(){return this._recipient}get txHash(){return this._txHash}async prepare(s){return this.assertStatus(t.NonEvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const r=t.validatePrepareParams(this.prepareSchema,s,{destChain:this.params.destChain});this._amount=r.amount,this._recipient=r.recipient,this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.NonEvmOperationStatus.READY)}async execute(){return this.assertStatus(t.NonEvmOperationStatus.READY,"execute"),this.act(async()=>{const s=this._amount,r=this._recipient;if(!s||!r)throw t.LombardError.missingParameter("amount or recipient");this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,releasing:t.StepStatus.IDLE}});const i=v.toSatoshi(s).toString(),u=E(this.ctx.env),h=m.getSolanaTokenAddress(L(this.ctx.env),this.ctx.env,m.Token.BTCb);if(!h)throw t.LombardError.missingParameter("Solana BTC.b mint for this environment");const{signature:g}=await this.ctx.solana.redeemForBtc({amount:i,btcAddress:r,network:u,env:this.ctx.env,tokenMint:h});return this._txHash=g,this.emitProgress({status:t.NonEvmOperationStatus.COMPLETED,steps:{burning:t.StepStatus.COMPLETE,releasing:t.StepStatus.COMPLETE}}),this.emitCompleted(),{txHash:g}},t.NonEvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.amountSchema,recipient:x.recipientSchema})}}const y={routes:[{chain:t.Chain.SOLANA_MAINNET,assetIn:c.AssetId.BTCb,assetOut:c.AssetId.LBTC,envs:[o.r.prod]},{chain:t.Chain.SOLANA_DEVNET,assetIn:c.AssetId.BTCb,assetOut:c.AssetId.LBTC,envs:[o.r.stage,o.r.dev,o.r.testnet]}],recipientSchema:t.solanaAddressSchema};function Q(n,e,s,r){return y.routes.some(i=>i.chain===n&&i.assetIn===e&&i.assetOut===s&&i.envs.includes(r))}class tt extends t.BaseAction{constructor(s,r){super(t.NonEvmOperationStatus.IDLE);a(this,"_amount");a(this,"_recipient");a(this,"_txHash");a(this,"env");if(this.ctx=s,this.params=r,this.env=s.env,!Q(r.chain,r.assetIn,r.assetOut,this.env))throw t.LombardError.routeNotFound({assetOut:r.assetOut,chain:r.chain,env:this.env})}get amount(){return this._amount}get recipient(){return this._recipient}get txHash(){return this._txHash}async prepare(s){return this.assertStatus(t.NonEvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const r=t.validatePrepareParams(this.prepareSchema,s,{destChain:this.params.chain});this._amount=r.amount,this._recipient=r.recipient,this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,minting:t.StepStatus.IDLE}})},t.NonEvmOperationStatus.READY)}async execute(){return this.assertStatus(t.NonEvmOperationStatus.READY,"execute"),this.act(async()=>{const s=this._amount,r=this._recipient;if(!s||!r)throw t.LombardError.missingParameter("amount or recipient");this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,minting:t.StepStatus.IDLE}});const i=v.toSatoshi(s).toString(),u=E(this.env),{signature:h}=await this.ctx.solana.deposit({amount:i,recipient:r,network:u,env:this.env});return this._txHash=h,this.emitProgress({status:t.NonEvmOperationStatus.CONFIRMING,steps:{burning:t.StepStatus.COMPLETE,minting:t.StepStatus.PENDING},txHash:h}),this.emitCompleted(),{txHash:h}},t.NonEvmOperationStatus.CONFIRMING)}get prepareSchema(){return t.objectType({amount:t.amountSchema,recipient:y.recipientSchema})}}const w={routes:[{sourceChains:[t.Chain.SOLANA_MAINNET],destChain:t.Chain.BITCOIN_MAINNET,assetIn:c.AssetId.LBTC,assetOut:c.AssetId.BTC,envs:[o.r.prod]},{sourceChains:[t.Chain.SOLANA_DEVNET],destChain:t.Chain.BITCOIN_SIGNET,assetIn:c.AssetId.LBTC,assetOut:c.AssetId.BTC,envs:[o.r.testnet,o.r.stage,o.r.dev,o.r.ibc]}],recipientSchema:t.bitcoinAddressSchema},k={routes:[{sourceChains:[t.Chain.SOLANA_MAINNET],destChain:t.Chain.SOLANA_MAINNET,assetIn:c.AssetId.LBTC,assetOut:c.AssetId.BTCb,envs:[o.r.prod]},{sourceChains:[t.Chain.SOLANA_DEVNET],destChain:t.Chain.SOLANA_DEVNET,assetIn:c.AssetId.LBTC,assetOut:c.AssetId.BTCb,envs:[o.r.stage,o.r.dev,o.r.testnet]}],recipientSchema:t.solanaAddressSchema},et=[...w.routes,...k.routes];function st(n,e,s,r,i){return et.some(u=>u.sourceChains.includes(n)&&u.destChain===e&&u.assetIn===s&&u.assetOut===r&&u.envs.includes(i))}class nt extends t.BaseAction{constructor(s,r){super(t.NonEvmOperationStatus.IDLE);a(this,"_amount");a(this,"_recipient");a(this,"_txHash");a(this,"isBtcbOutput");if(this.ctx=s,this.params=r,this.isBtcbOutput=r.assetOut===c.AssetId.BTCb,!st(r.sourceChain,r.destChain,r.assetIn,r.assetOut,s.env))throw t.LombardError.routeNotFound({assetOut:r.assetOut,sourceChain:r.sourceChain,destChain:r.destChain,env:s.env})}get amount(){return this._amount}get recipient(){return this._recipient}get txHash(){return this._txHash}async prepare(s){return this.assertStatus(t.NonEvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const r=t.validatePrepareParams(this.prepareSchema,s,{destChain:this.params.destChain});this._amount=r.amount,this._recipient=r.recipient,this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.NonEvmOperationStatus.READY)}async execute(){return this.assertStatus(t.NonEvmOperationStatus.READY,"execute"),this.act(async()=>{const s=this._amount,r=this._recipient;if(!s||!r)throw t.LombardError.missingParameter("amount or recipient");this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,releasing:t.StepStatus.IDLE}});const i=v.toSatoshi(s).toString(),u=E(this.ctx.env);let h;if(this.isBtcbOutput)({signature:h}=await this.ctx.solana.redeem({amount:i,recipient:r,network:u,env:this.ctx.env}));else{const g=m.getSolanaTokenAddress(L(this.ctx.env),this.ctx.env,m.Token.LBTC);if(!g)throw t.LombardError.missingParameter("Solana LBTC mint for this environment");({signature:h}=await this.ctx.solana.redeemForBtc({amount:i,btcAddress:r,network:u,env:this.ctx.env,tokenMint:g}))}return this._txHash=h,this.emitProgress({status:t.NonEvmOperationStatus.COMPLETED,steps:{burning:t.StepStatus.COMPLETE,releasing:t.StepStatus.COMPLETE}}),this.emitCompleted(),{txHash:h}},t.NonEvmOperationStatus.COMPLETED)}get prepareSchema(){const s=this.isBtcbOutput?k:w;return t.objectType({amount:t.amountSchema,recipient:s.recipientSchema})}}function rt(n){const s=new t.CapabilityRegistry(n.modules,n).require("solana");return{env:n.env,partner:new t.PartnerConfiguration(n.partner),getProvider:async r=>{const i=t.getProviderGetter(n.providers,r);if(i)return i()},solana:s}}class C{constructor(e){a(this,"_ctx",null);this.config=e}get ctx(){return this._ctx||(this._ctx=rt(this.config)),this._ctx}stake(e){return new tt(this.ctx,e)}unstake(e){return new nt(this.ctx,e)}redeem(e){return new J(this.ctx,e)}}function it(n){return new C(n)}const B={routes:[{sourceChains:[t.Chain.STARKNET_MAINNET],destChain:t.Chain.BITCOIN_MAINNET,envs:[o.r.prod]},{sourceChains:[t.Chain.STARKNET_SEPOLIA],destChain:t.Chain.BITCOIN_SIGNET,envs:[o.r.testnet,o.r.stage,o.r.dev,o.r.ibc]}],recipientSchema:t.bitcoinAddressSchema};function at(n,e){return B.routes.some(s=>s.sourceChains.includes(n)&&s.envs.includes(e))}class ot extends t.BaseAction{constructor(s,r){super(t.NonEvmOperationStatus.IDLE);a(this,"_amount");a(this,"_recipient");a(this,"_txHash");a(this,"env");if(this.ctx=s,this.params=r,this.env=s.env,!at(r.sourceChain,this.env))throw t.LombardError.routeNotFound({assetOut:r.assetOut,sourceChain:r.sourceChain,destChain:r.destChain,env:this.env})}get amount(){return this._amount}get recipient(){return this._recipient}get txHash(){return this._txHash}async prepare(s){return this.assertStatus(t.NonEvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const r=t.validatePrepareParams(this.prepareSchema,s,{destChain:this.params.destChain});this._amount=r.amount,this._recipient=r.recipient,this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.NonEvmOperationStatus.READY)}async execute(){return this.assertStatus(t.NonEvmOperationStatus.READY,"execute"),this.act(async()=>{const s=this._amount,r=this._recipient;if(!s||!r)throw t.LombardError.missingParameter("amount or recipient");this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,releasing:t.StepStatus.IDLE}});const{txHash:i}=await this.ctx.starknet.unstake({amount:s,btcAddress:r,env:this.env});return this._txHash=i,this.emitProgress({status:t.NonEvmOperationStatus.COMPLETED,steps:{burning:t.StepStatus.COMPLETE,releasing:t.StepStatus.PENDING}}),this.emitCompleted(),{txHash:i}},t.NonEvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.amountSchema,recipient:B.recipientSchema})}}function ut(n){const s=new t.CapabilityRegistry(n.modules,n).require("starknet");return{env:n.env,partner:new t.PartnerConfiguration(n.partner),getProvider:async r=>{const i=t.getProviderGetter(n.providers,r);if(i)return i()},starknet:s}}class A{constructor(e){a(this,"_ctx",null);this.config=e}get ctx(){return this._ctx||(this._ctx=ut(this.config)),this._ctx}unstake(e){return new ot(this.ctx,e)}}function ct(n){return new A(n)}const M={routes:[{sourceChains:[t.Chain.SUI_MAINNET],destChain:t.Chain.BITCOIN_MAINNET,envs:[o.r.prod]},{sourceChains:[t.Chain.SUI_TESTNET],destChain:t.Chain.BITCOIN_SIGNET,envs:[o.r.testnet,o.r.stage,o.r.dev,o.r.ibc]}],recipientSchema:t.bitcoinAddressSchema};function ht(n,e){return M.routes.some(s=>s.sourceChains.includes(n)&&s.envs.includes(e))}function dt(n){switch(n){case t.Chain.SUI_MAINNET:return"sui:mainnet";case t.Chain.SUI_TESTNET:return"sui:testnet";default:return"sui:testnet"}}class gt extends t.BaseAction{constructor(s,r){super(t.NonEvmOperationStatus.IDLE);a(this,"_amount");a(this,"_recipient");a(this,"_txHash");a(this,"env");if(this.ctx=s,this.params=r,this.env=s.env,!ht(r.sourceChain,this.env))throw t.LombardError.routeNotFound({assetOut:r.assetOut,sourceChain:r.sourceChain,destChain:r.destChain,env:this.env})}get amount(){return this._amount}get recipient(){return this._recipient}get txHash(){return this._txHash}async prepare(s){return this.assertStatus(t.NonEvmOperationStatus.IDLE,"prepare"),this.act(async()=>{const r=t.validatePrepareParams(this.prepareSchema,s,{destChain:this.params.destChain});this._amount=r.amount,this._recipient=r.recipient,this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.IDLE,releasing:t.StepStatus.IDLE}})},t.NonEvmOperationStatus.READY)}async execute(){return this.assertStatus(t.NonEvmOperationStatus.READY,"execute"),this.act(async()=>{const s=this._amount,r=this._recipient;if(!s||!r)throw t.LombardError.missingParameter("amount or recipient");this.emitProgress({status:t.NonEvmOperationStatus.READY,steps:{burning:t.StepStatus.PENDING,releasing:t.StepStatus.IDLE}});const i=dt(this.params.sourceChain),{txHash:u}=await this.ctx.sui.unstake({amount:s,btcAddress:r,chainId:i,env:this.env});return this._txHash=u,this.emitProgress({status:t.NonEvmOperationStatus.COMPLETED,steps:{burning:t.StepStatus.COMPLETE,releasing:t.StepStatus.PENDING}}),this.emitCompleted(),{txHash:u}},t.NonEvmOperationStatus.COMPLETED)}get prepareSchema(){return t.objectType({amount:t.amountSchema,recipient:M.recipientSchema})}}function pt(n){const s=new t.CapabilityRegistry(n.modules,n).require("sui");return{env:n.env,partner:new t.PartnerConfiguration(n.partner),getProvider:async r=>{const i=t.getProviderGetter(n.providers,r);if(i)return i()},sui:s}}class f{constructor(e){a(this,"_ctx",null);this.config=e}get ctx(){return this._ctx||(this._ctx=pt(this.config)),this._ctx}unstake(e){return new gt(this.ctx,e)}}function St(n){return new f(n)}class mt{constructor(e=o.p,s){a(this,"catalog");this.env=e,this.catalog=s??t.ASSET_CATALOG}getAddress(e,s){return t.getAssetAddress(e,this.env,s,this.catalog)}getDecimals(e){return t.getAssetDecimals(e,this.catalog)}getMetadata(e){return t.getAssetMetadata(e,this.catalog)}usesAssetRouter(e,s){return t.usesAssetRouter(e,this.env,s,this.catalog)}getAssetRouter(e,s){return t.getAssetRouter(e,this.env,s,this.catalog)}getBridgeAdapter(e,s){return t.getBridgeAdapter(e,this.env,s,this.catalog)}getPublicMarketMaker(e,s){return t.getPublicMarketMaker(e,this.env,s,this.catalog)}getByAddress(e,s){return t.getAssetByAddress(e,this.env,s,this.catalog)}isDeployed(e,s){return t.isAssetDeployed(e,this.env,s,this.catalog)}getChains(e){return t.getAssetChains(e,this.env,this.catalog)}getEnvironments(e,s){return t.getAssetEnvironments(e,s,this.catalog)}getSupportedAssets(){return t.getSupportedAssets(this.catalog)}getCatalog(){return this.catalog}}class R{constructor(e){a(this,"config");a(this,"env");a(this,"partnerConfig");a(this,"providerCache",new Map);a(this,"chain");a(this,"assets");a(this,"api");a(this,"referrals");a(this,"capabilities");this.config=e,this.env=e.env,this.partnerConfig=new t.PartnerConfiguration(e.partner),this.capabilities=new t.CapabilityRegistry(this.config.modules,this.config),this.chain={btc:new b.BtcActions(this.config),evm:new D.EvmActions(this.config),solana:new C(this.config),sui:new f(this.config),starknet:new A(this.config)},this.referrals=new S.ReferralsClient(this),this.assets=new mt(this.env),this.api=new _(this.env)}async getProvider(e){const s=e;if(this.providerCache.has(s))return this.providerCache.get(s);const r=t.getProviderGetter(this.config.providers,e);if(!r)throw t.LombardError.providerMissing(e,e);const i=await r();if(!i)throw new t.LombardError(t.ProviderErrorCode.PROVIDER_INITIALIZATION_FAILED,`Failed to initialize ${e} provider`);return this.providerCache.set(s,i),i}configure(e){this.partnerConfig.update(e)}registerAsset(e){throw new Error("Not implemented yet")}getPartnerConfig(){return this.partnerConfig}getPartnerId(){return this.partnerConfig.getPartnerId()}}const l=new Map;function lt(n){return l.has(n)||l.set(n,Promise.resolve(t.ASSET_CATALOG)),l.get(n)}async function vt(n){const e="modules"in n&&Array.isArray(n.modules)?n:P(n),s=await lt(e.env),r={...e,catalog:s};return new R(r)}function Et(n){return typeof n=="object"&&n!==null&&"request"in n&&typeof n.request=="function"}function Ct(n){return typeof n=="object"&&n!==null&&"getAddresses"in n&&typeof n.getAddresses=="function"}function At(n){return typeof n=="object"&&n!==null&&"publicKey"in n&&"signAndSendTransaction"in n}function ft(n){return typeof n=="object"&&n!==null&&"getAddress"in n&&"signAndExecuteTransactionBlock"in n}function It(n){return typeof n=="object"&&n!==null&&"address"in n&&"execute"in n}const Nt={Progress:"progress",StatusChange:"status-change",Completed:"completed",Failed:"failed",Error:"error"},Ot={Progress:"progress",StatusChange:"status-change",Completed:"completed",Failed:"failed",Error:"error"},bt={Progress:"progress",StatusChange:"status-change",Completed:"completed",Failed:"failed",Error:"error"},Dt={Progress:"progress",StatusChange:"status-change",Completed:"completed",Failed:"failed",Error:"error"},Tt={Progress:"progress",StatusChange:"status-change",Completed:"completed",Failed:"failed",Error:"error"},_t={Progress:"progress",StatusChange:"status-change",Completed:"completed",Failed:"failed",Error:"error"};exports.ApiNamespace=_;exports.BridgeEvent=_t;exports.DeployEvent=Tt;exports.DepositEvent=Ot;exports.LombardSDK=R;exports.RedeemEvent=bt;exports.SolanaActions=C;exports.StakeEvent=Nt;exports.StarknetActions=A;exports.SuiActions=f;exports.UnstakeEvent=Dt;exports.createConfig=P;exports.createConsoleLogger=T;exports.createLombardSDK=vt;exports.createSilentLogger=q;exports.getSdkHeaders=U;exports.isBtcProvider=Ct;exports.isEvmProvider=Et;exports.isSolanaProvider=At;exports.isStarknetProvider=It;exports.isSuiProvider=ft;exports.solanaActions=it;exports.starknetActions=ct;exports.suiActions=St;
2
- //# sourceMappingURL=events-DBUF2B7z.cjs.map