@lombard.finance/sdk 4.0.0 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/bridge/lib/ccip-config.d.ts.map +1 -1
  3. package/dist/bridge/lib/config.d.ts +3 -3
  4. package/dist/bridge/lib/config.d.ts.map +1 -1
  5. package/dist/common/chains.d.ts +2 -2
  6. package/dist/common/chains.d.ts.map +1 -1
  7. package/dist/common/feature-config.d.ts.map +1 -1
  8. package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
  9. package/dist/index2.cjs +6 -6
  10. package/dist/index2.js +792 -759
  11. package/dist/vaults/lib/config.d.ts +1 -1
  12. package/package.json +7 -8
  13. package/src/__tests__/AssetNamespace.spec.ts +0 -234
  14. package/src/__tests__/helpers/createTestConfig.ts +0 -90
  15. package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
  16. package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
  17. package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
  18. package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
  19. package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
  20. package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
  21. package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
  22. package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
  23. package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
  24. package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
  25. package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
  26. package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
  27. package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
  28. package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
  29. package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
  30. package/src/__tests__/services/ApiService.test.ts +0 -62
  31. package/src/__tests__/services/BtcService.test.ts +0 -30
  32. package/src/__tests__/services/EvmService.test.ts +0 -39
  33. package/src/__tests__/setup.ts +0 -16
  34. package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
  35. package/src/__tests__/test-utils/evm-wallet.ts +0 -38
  36. package/src/__tests__/test-utils/solana-wallet.ts +0 -22
  37. package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
  38. package/src/__tests__/test-utils/sui-wallet.ts +0 -14
  39. package/src/__tests__/test-utils/test-constraints.ts +0 -110
  40. package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
  41. package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
  42. package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
  43. package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
  44. package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
  45. package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
  46. package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
  47. package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
  48. package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
  49. package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
  50. package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
  51. package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
  52. package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
  53. package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
  54. package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
  55. package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
  56. package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
  57. package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
  58. package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
  59. package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
  60. package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
  61. package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
  62. package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
  63. package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
  64. package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
  65. package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
  66. package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
  67. package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
  68. package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
  69. package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
  70. package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
  71. package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
  72. package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
  73. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
  74. package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
  75. package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
  76. package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
  77. package/src/api-functions/get-badges-by-address/index.ts +0 -1
  78. package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
  79. package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
  80. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
  81. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
  82. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
  83. package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
  84. package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
  85. package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
  86. package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
  87. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
  88. package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
  89. package/src/api-functions/getDepositsByAddress/index.ts +0 -1
  90. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
  91. package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
  92. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
  93. package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
  94. package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
  95. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
  96. package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
  97. package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
  98. package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
  99. package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
  100. package/src/api-functions/getPointsByAddress/index.ts +0 -1
  101. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
  102. package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
  103. package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
  104. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
  105. package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
  106. package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
  107. package/src/api-functions/index.ts +0 -11
  108. package/src/api-functions/setReferral/index.ts +0 -1
  109. package/src/api-functions/setReferral/setReferral.ts +0 -67
  110. package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
  111. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
  112. package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
  113. package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
  114. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
  115. package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
  116. package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
  117. package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
  118. package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
  119. package/src/bridge/index.ts +0 -16
  120. package/src/bridge/lib/bridge.stories.tsx +0 -90
  121. package/src/bridge/lib/bridge.ts +0 -115
  122. package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
  123. package/src/bridge/lib/ccip-bridge.ts +0 -214
  124. package/src/bridge/lib/ccip-config.ts +0 -54
  125. package/src/bridge/lib/config.ts +0 -384
  126. package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
  127. package/src/bridge/lib/oft-bridge.ts +0 -217
  128. package/src/chains/btc/BtcActions.ts +0 -192
  129. package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
  130. package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
  131. package/src/chains/btc/actions/deposit/config/index.ts +0 -53
  132. package/src/chains/btc/actions/deposit/config/types.ts +0 -108
  133. package/src/chains/btc/actions/deposit/factory.ts +0 -53
  134. package/src/chains/btc/actions/deposit/index.ts +0 -23
  135. package/src/chains/btc/actions/deposit/types.ts +0 -120
  136. package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
  137. package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
  138. package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
  139. package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
  140. package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
  141. package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
  142. package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
  143. package/src/chains/btc/actions/index.ts +0 -14
  144. package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
  145. package/src/chains/btc/actions/shared/index.ts +0 -28
  146. package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
  147. package/src/chains/btc/actions/shared/validation.ts +0 -180
  148. package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
  149. package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
  150. package/src/chains/btc/actions/stake/config/evm.ts +0 -183
  151. package/src/chains/btc/actions/stake/config/index.ts +0 -122
  152. package/src/chains/btc/actions/stake/config/solana.ts +0 -96
  153. package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
  154. package/src/chains/btc/actions/stake/config/sui.ts +0 -61
  155. package/src/chains/btc/actions/stake/config/types.ts +0 -165
  156. package/src/chains/btc/actions/stake/factory.ts +0 -53
  157. package/src/chains/btc/actions/stake/index.ts +0 -22
  158. package/src/chains/btc/actions/stake/types.ts +0 -175
  159. package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
  160. package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
  161. package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
  162. package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
  163. package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
  164. package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
  165. package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
  166. package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
  167. package/src/chains/btc/client/mempool/error.ts +0 -24
  168. package/src/chains/btc/client/mempool/mempool.ts +0 -23
  169. package/src/chains/btc/index.ts +0 -71
  170. package/src/chains/evm/EvmActions.ts +0 -185
  171. package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
  172. package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
  173. package/src/chains/evm/actions/deploy/config/index.ts +0 -8
  174. package/src/chains/evm/actions/deploy/config/types.ts +0 -43
  175. package/src/chains/evm/actions/deploy/factory.ts +0 -44
  176. package/src/chains/evm/actions/deploy/index.ts +0 -17
  177. package/src/chains/evm/actions/deploy/types.ts +0 -74
  178. package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
  179. package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
  180. package/src/chains/evm/actions/deposit/config/index.ts +0 -8
  181. package/src/chains/evm/actions/deposit/config/types.ts +0 -39
  182. package/src/chains/evm/actions/deposit/factory.ts +0 -44
  183. package/src/chains/evm/actions/deposit/index.ts +0 -17
  184. package/src/chains/evm/actions/deposit/types.ts +0 -87
  185. package/src/chains/evm/actions/index.ts +0 -67
  186. package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
  187. package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
  188. package/src/chains/evm/actions/redeem/config/index.ts +0 -8
  189. package/src/chains/evm/actions/redeem/config/types.ts +0 -39
  190. package/src/chains/evm/actions/redeem/factory.ts +0 -43
  191. package/src/chains/evm/actions/redeem/index.ts +0 -17
  192. package/src/chains/evm/actions/redeem/types.ts +0 -93
  193. package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
  194. package/src/chains/evm/actions/stake/config/evm.ts +0 -89
  195. package/src/chains/evm/actions/stake/config/index.ts +0 -8
  196. package/src/chains/evm/actions/stake/config/types.ts +0 -89
  197. package/src/chains/evm/actions/stake/factory.ts +0 -52
  198. package/src/chains/evm/actions/stake/index.ts +0 -30
  199. package/src/chains/evm/actions/stake/types.ts +0 -104
  200. package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
  201. package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
  202. package/src/chains/evm/actions/unstake/config/index.ts +0 -13
  203. package/src/chains/evm/actions/unstake/config/types.ts +0 -37
  204. package/src/chains/evm/actions/unstake/factory.ts +0 -44
  205. package/src/chains/evm/actions/unstake/index.ts +0 -22
  206. package/src/chains/evm/actions/unstake/types.ts +0 -87
  207. package/src/chains/evm/index.ts +0 -16
  208. package/src/chains/evm/shared/feeAuth.ts +0 -198
  209. package/src/chains/evm/shared/index.ts +0 -7
  210. package/src/chains/solana/SolanaActions.ts +0 -85
  211. package/src/chains/solana/actions/index.ts +0 -7
  212. package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
  213. package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
  214. package/src/chains/solana/actions/unstake/config/index.ts +0 -8
  215. package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
  216. package/src/chains/solana/actions/unstake/config/types.ts +0 -35
  217. package/src/chains/solana/actions/unstake/factory.ts +0 -34
  218. package/src/chains/solana/actions/unstake/index.ts +0 -14
  219. package/src/chains/solana/actions/unstake/types.ts +0 -58
  220. package/src/chains/solana/index.ts +0 -8
  221. package/src/chains/starknet/StarknetActions.ts +0 -85
  222. package/src/chains/starknet/actions/index.ts +0 -7
  223. package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
  224. package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
  225. package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
  226. package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
  227. package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
  228. package/src/chains/starknet/actions/unstake/factory.ts +0 -32
  229. package/src/chains/starknet/actions/unstake/index.ts +0 -14
  230. package/src/chains/starknet/actions/unstake/types.ts +0 -57
  231. package/src/chains/starknet/index.ts +0 -8
  232. package/src/chains/sui/SuiActions.ts +0 -82
  233. package/src/chains/sui/actions/index.ts +0 -7
  234. package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
  235. package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
  236. package/src/chains/sui/actions/unstake/config/index.ts +0 -8
  237. package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
  238. package/src/chains/sui/actions/unstake/config/types.ts +0 -27
  239. package/src/chains/sui/actions/unstake/factory.ts +0 -32
  240. package/src/chains/sui/actions/unstake/index.ts +0 -14
  241. package/src/chains/sui/actions/unstake/types.ts +0 -57
  242. package/src/chains/sui/index.ts +0 -8
  243. package/src/client/ApiNamespace.ts +0 -302
  244. package/src/client/AssetNamespace.ts +0 -112
  245. package/src/client/LombardSDK.ts +0 -212
  246. package/src/client/PartnerConfiguration.ts +0 -50
  247. package/src/client/createConfig.ts +0 -90
  248. package/src/client/createLombardSDK.ts +0 -130
  249. package/src/clients/evm-signer-adapter.ts +0 -313
  250. package/src/clients/public-client.ts +0 -49
  251. package/src/clients/rpc-url-config.ts +0 -64
  252. package/src/clients/wallet-client.ts +0 -34
  253. package/src/common/api-config.ts +0 -48
  254. package/src/common/blockchain-identifier.ts +0 -217
  255. package/src/common/chains.stories.tsx +0 -68
  256. package/src/common/chains.ts +0 -449
  257. package/src/common/constants.ts +0 -1
  258. package/src/common/contract-info.ts +0 -9
  259. package/src/common/feature-config.ts +0 -79
  260. package/src/common/fee-requirements.ts +0 -34
  261. package/src/common/parameters.ts +0 -89
  262. package/src/config/defaults.ts +0 -49
  263. package/src/config/index.ts +0 -12
  264. package/src/config/providers.ts +0 -81
  265. package/src/config/types.ts +0 -216
  266. package/src/config/validation.ts +0 -69
  267. package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
  268. package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
  269. package/src/contract-functions/approveLBTC/index.ts +0 -1
  270. package/src/contract-functions/approveToken/approveToken.ts +0 -126
  271. package/src/contract-functions/approveToken/index.ts +0 -1
  272. package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
  273. package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
  274. package/src/contract-functions/claimLBTC/index.ts +0 -1
  275. package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
  276. package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
  277. package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
  278. package/src/contract-functions/deposit/depositToken.ts +0 -214
  279. package/src/contract-functions/deposit/index.ts +0 -1
  280. package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
  281. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
  282. package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
  283. package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
  284. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
  285. package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
  286. package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
  287. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
  288. package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
  289. package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
  290. package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
  291. package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
  292. package/src/contract-functions/getPermitNonce/index.ts +0 -1
  293. package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
  294. package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
  295. package/src/contract-functions/getShareValue/index.ts +0 -1
  296. package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
  297. package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
  298. package/src/contract-functions/getSharesByAddress/index.ts +0 -4
  299. package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
  300. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
  301. package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
  302. package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
  303. package/src/contract-functions/index.ts +0 -21
  304. package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
  305. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
  306. package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
  307. package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
  308. package/src/contract-functions/signNetworkFee/index.ts +0 -1
  309. package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
  310. package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
  311. package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
  312. package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
  313. package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
  314. package/src/contract-functions/signStakeAndBake/index.ts +0 -2
  315. package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
  316. package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
  317. package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
  318. package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
  319. package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
  320. package/src/contract-functions/unstakeLBTC/index.ts +0 -1
  321. package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
  322. package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
  323. package/src/contracts/abis/index.ts +0 -29
  324. package/src/contracts/index.ts +0 -63
  325. package/src/contracts/types.ts +0 -143
  326. package/src/contracts/utils.ts +0 -288
  327. package/src/core/assets/catalog.ts +0 -343
  328. package/src/core/assets/index.ts +0 -40
  329. package/src/core/assets/types.ts +0 -142
  330. package/src/core/assets/utils.ts +0 -287
  331. package/src/core/chains/catalog.ts +0 -396
  332. package/src/core/chains/index.ts +0 -39
  333. package/src/core/chains/types.ts +0 -193
  334. package/src/core/chains/utils.ts +0 -245
  335. package/src/core/index.ts +0 -72
  336. package/src/core/types.ts +0 -126
  337. package/src/debug-api/btc-script-to-address.ts +0 -20
  338. package/src/debug-api/btc-tx-info.ts +0 -32
  339. package/src/debug-api/evm-by-btc-address.ts +0 -26
  340. package/src/debug-api/index.ts +0 -3
  341. package/src/defi/README.md +0 -517
  342. package/src/defi/defi-registry.stories.tsx +0 -527
  343. package/src/defi/defi-registry.ts +0 -295
  344. package/src/defi/index.ts +0 -17
  345. package/src/index.ts +0 -336
  346. package/src/metrics/get-additional-rewards.ts +0 -69
  347. package/src/metrics/get-lbtc-apy.ts +0 -74
  348. package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
  349. package/src/metrics/get-lbtc-stats.ts +0 -59
  350. package/src/metrics/get-positions-summary.stories.tsx +0 -58
  351. package/src/metrics/get-positions-summary.ts +0 -132
  352. package/src/modules/CapabilityRegistry.ts +0 -125
  353. package/src/modules/apiModule.ts +0 -51
  354. package/src/modules/btcModule.ts +0 -43
  355. package/src/modules/evmModule.ts +0 -48
  356. package/src/modules/index.ts +0 -60
  357. package/src/referrals/ReferralsClient.ts +0 -34
  358. package/src/referrals/index.ts +0 -1
  359. package/src/services/ApiService.ts +0 -152
  360. package/src/services/BtcService.ts +0 -29
  361. package/src/services/EvmService.ts +0 -127
  362. package/src/services/index.ts +0 -43
  363. package/src/shared/__tests__/errors.test.ts +0 -185
  364. package/src/shared/__tests__/events.test.ts +0 -120
  365. package/src/shared/__tests__/types.test.ts +0 -155
  366. package/src/shared/actions/BaseAction.ts +0 -497
  367. package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
  368. package/src/shared/actions/index.ts +0 -9
  369. package/src/shared/constants/statusConstants.ts +0 -108
  370. package/src/shared/context/ContextBuilder.ts +0 -149
  371. package/src/shared/context/index.ts +0 -8
  372. package/src/shared/context/types.ts +0 -156
  373. package/src/shared/deposits/depositStatus.ts +0 -402
  374. package/src/shared/deposits/index.ts +0 -29
  375. package/src/shared/errors.ts +0 -405
  376. package/src/shared/events.ts +0 -260
  377. package/src/shared/evm/switchChain.ts +0 -109
  378. package/src/shared/index.ts +0 -54
  379. package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
  380. package/src/shared/monitoring/createEventEmitter.ts +0 -160
  381. package/src/shared/monitoring/createProgressEmitter.ts +0 -46
  382. package/src/shared/monitoring/depositMonitor.ts +0 -211
  383. package/src/shared/monitoring/index.ts +0 -25
  384. package/src/shared/validation/index.ts +0 -411
  385. package/src/stories/arg-types.ts +0 -38
  386. package/src/stories/components/Badge.tsx +0 -27
  387. package/src/stories/components/Button/Button.css +0 -10
  388. package/src/stories/components/Button/Button.tsx +0 -52
  389. package/src/stories/components/Button/index.ts +0 -1
  390. package/src/stories/components/Card.tsx +0 -18
  391. package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
  392. package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
  393. package/src/stories/components/CodeBlock/index.ts +0 -1
  394. package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
  395. package/src/stories/components/ConnectButton/index.ts +0 -1
  396. package/src/stories/components/JsonPreview.tsx +0 -84
  397. package/src/stories/components/Spinner/Spinner.tsx +0 -27
  398. package/src/stories/components/Spinner/index.ts +0 -1
  399. package/src/stories/components/StatsCard.tsx +0 -30
  400. package/src/stories/components/StatusIndicator.tsx +0 -37
  401. package/src/stories/components/TreeNode.tsx +0 -47
  402. package/src/stories/components/decorators/function-type.tsx +0 -63
  403. package/src/stories/components/decorators/index.ts +0 -2
  404. package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
  405. package/src/stories/components/error-block.tsx +0 -21
  406. package/src/stories/components/index.ts +0 -11
  407. package/src/stories/constants.ts +0 -3
  408. package/src/stories/hooks/useConnection.ts +0 -63
  409. package/src/stories/hooks/useQuery.ts +0 -57
  410. package/src/tokens/__tests__/token-addresses.test.ts +0 -551
  411. package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
  412. package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
  413. package/src/tokens/abi/BTCK_ABI.ts +0 -1092
  414. package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
  415. package/src/tokens/abi/LBTC_ABI.json +0 -1761
  416. package/src/tokens/abi/LBTC_ABI.ts +0 -1761
  417. package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
  418. package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
  419. package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
  420. package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
  421. package/src/tokens/denomination-utils.stories.tsx +0 -176
  422. package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
  423. package/src/tokens/getTokenByAddress.stories.tsx +0 -172
  424. package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
  425. package/src/tokens/getTokenInfo.stories.tsx +0 -133
  426. package/src/tokens/isUpgradedContract.stories.tsx +0 -124
  427. package/src/tokens/lbtc-addresses.ts +0 -18
  428. package/src/tokens/token-addresses.ts +0 -477
  429. package/src/tokens/tokens.ts +0 -249
  430. package/src/tokens/types.ts +0 -80
  431. package/src/utils/array.ts +0 -31
  432. package/src/utils/block.ts +0 -23
  433. package/src/utils/chain.ts +0 -152
  434. package/src/utils/consoleLogger.ts +0 -140
  435. package/src/utils/ensureNotSanctionedAddress.ts +0 -11
  436. package/src/utils/env.ts +0 -20
  437. package/src/utils/err.ts +0 -83
  438. package/src/utils/evmAccount.ts +0 -47
  439. package/src/utils/gas.ts +0 -36
  440. package/src/utils/hex.ts +0 -9
  441. package/src/utils/http.ts +0 -224
  442. package/src/utils/numbers.ts +0 -37
  443. package/src/utils/pagination.ts +0 -70
  444. package/src/utils/satoshi.ts +0 -41
  445. package/src/utils/time.ts +0 -12
  446. package/src/utils/transaction-executor.ts +0 -299
  447. package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
  448. package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
  449. package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
  450. package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
  451. package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
  452. package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
  453. package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
  454. package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
  455. package/src/vaults/abi/index.ts +0 -4
  456. package/src/vaults/index.ts +0 -46
  457. package/src/vaults/lib/config.ts +0 -184
  458. package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
  459. package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
  460. package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
  461. package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
  462. package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
  463. package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
  464. package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
  465. package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
  466. package/src/vaults/lib/ops/deposit.ts +0 -152
  467. package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
  468. package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
  469. package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
  470. package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
  471. package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
  472. package/src/vaults/lib/ops/withdraw.ts +0 -225
  473. package/src/version.ts +0 -56
  474. package/src/vite-env.d.ts +0 -1
@@ -1,249 +0,0 @@
1
- /**
2
- * Token Contract Utilities
3
- *
4
- * @deprecated v4.1 Migration Target
5
- *
6
- * Functions like `getTokenContractInfo()` use hardcoded TOKEN_ADDRESSES.
7
- * For v4.1, migrate to use Asset Catalog with catalog injection.
8
- *
9
- * See: docs/ADDRESS_SYSTEM_UNIFICATION.md
10
- *
11
- * @module tokens/tokens
12
- */
13
-
14
- import { DEFAULT_ENV, Env } from '@lombard.finance/sdk-common';
15
- import BigNumber from 'bignumber.js';
16
- import { type Abi, Address, erc20Abi, PublicClient, zeroAddress } from 'viem';
17
-
18
- import { makePublicClient } from '../clients/public-client';
19
- import { ChainId } from '../common/chains';
20
- import { TokenContractAddressNotFoundError } from '../utils/err';
21
- import BRIDGE_TOKEN_ADAPTER_ABI from './abi/BRIDGE_TOKEN_ADAPTER_ABI';
22
- import BTCK_ABI from './abi/BTCK_ABI';
23
- import { LBTC_ABI } from './abi/LBTC_ABI';
24
- import NATIVE_LBTC_ABI from './abi/NATIVE_LBTC_ABI';
25
- import STLBTC_ABI from './abi/STLBTC_ABI';
26
- import { AddressKind, Token,TOKEN_ADDRESSES } from './token-addresses';
27
-
28
- export type TokenInfo = {
29
- address: Address;
30
- abi: Abi;
31
- symbol: string;
32
- decimals: number;
33
- };
34
-
35
- const MAYBE_UPGRADED_CONTRACT_ABI = [
36
- {
37
- inputs: [],
38
- name: 'getAssetRouter',
39
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
40
- stateMutability: 'view',
41
- type: 'function',
42
- },
43
- ] as const;
44
- const UPGRADED_CONTRACT_POINTER = MAYBE_UPGRADED_CONTRACT_ABI[0].name;
45
-
46
- export async function isUpgradedContract(
47
- token: Token.LBTC | Token.BTCK,
48
- chainId: ChainId,
49
- env?: Env,
50
- rpcUrl?: string,
51
- ) {
52
- const environment = env || DEFAULT_ENV;
53
- const address = TOKEN_ADDRESSES[token]?.[environment]?.[chainId];
54
-
55
- if (!address) {
56
- throw new TokenContractAddressNotFoundError(token, chainId, environment);
57
- }
58
-
59
- const publicClient = makePublicClient({ chainId, rpcUrl, env: environment });
60
- try {
61
- const assetRouter = await publicClient.readContract({
62
- abi: MAYBE_UPGRADED_CONTRACT_ABI,
63
- address: typeof address === 'string' ? address : address.adapter,
64
- functionName: UPGRADED_CONTRACT_POINTER,
65
- });
66
- return assetRouter !== zeroAddress;
67
- } catch {
68
- return false;
69
- }
70
- }
71
-
72
- type AbiForLBTC =
73
- | typeof STLBTC_ABI // upgraded
74
- | typeof LBTC_ABI; // legacy
75
-
76
- type AbiForBTCK =
77
- | typeof NATIVE_LBTC_ABI // upgraded
78
- | typeof BTCK_ABI; // legacy
79
-
80
- type AbiForNativeLBTC = typeof NATIVE_LBTC_ABI;
81
- export type AbiForBridgeTokenAdapter = typeof BRIDGE_TOKEN_ADAPTER_ABI;
82
-
83
- type AbiFor<
84
- TToken extends Token,
85
- chain = ChainId,
86
- addressKind extends AddressKind = AddressKind.Token,
87
- > = TToken extends Token.LBTC
88
- ? AbiForLBTC
89
- : TToken extends Token.BTCK
90
- ? AbiForBTCK
91
- : TToken extends Token.BTCb
92
- ? chain extends typeof ChainId.avalanche | typeof ChainId.avalancheFuji
93
- ? addressKind extends AddressKind.Adapter
94
- ? AbiForBridgeTokenAdapter
95
- : typeof erc20Abi // <-- AddressKind.Token - ERC-20 Token Contract
96
- : AbiForNativeLBTC
97
- : typeof erc20Abi;
98
-
99
- type TokenContractInfo<
100
- TToken extends Token,
101
- chain extends ChainId,
102
- TAddressKind extends AddressKind,
103
- > = {
104
- abi: AbiFor<TToken, chain, TAddressKind>;
105
- address: Address;
106
- chainId: chain;
107
- };
108
-
109
- export const isUpgradedAbi = (
110
- abi: unknown,
111
- ): abi is typeof STLBTC_ABI | typeof NATIVE_LBTC_ABI => {
112
- const redeemForBtcAbi = (abi as Abi).find(
113
- a => a.type === 'function' && a.name === UPGRADED_CONTRACT_POINTER,
114
- );
115
- return redeemForBtcAbi != null;
116
- };
117
-
118
- export async function getTokenContractInfo<
119
- TToken extends Token,
120
- chain extends ChainId,
121
- TAddressKind extends AddressKind = AddressKind.Token,
122
- >(
123
- token: TToken,
124
- chainId: chain,
125
- env?: Env,
126
- _addressKind?: TAddressKind,
127
- ): Promise<TokenContractInfo<TToken, chain, TAddressKind>> {
128
- const environment = env || DEFAULT_ENV;
129
- const addressKind = _addressKind || AddressKind.Token;
130
-
131
- let abi: AbiFor<TToken, chain, TAddressKind> | undefined = undefined;
132
-
133
- // nosemgrep: codacy.tools-configs.rules_lgpl_javascript_crypto_rule-node-timing-attack -- comparing Token enum values, not secrets
134
- if (token === Token.LBTC) {
135
- if (await isUpgradedContract(Token.LBTC, chainId, environment)) {
136
- abi = STLBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
137
- } else {
138
- abi = LBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
139
- }
140
- } else if (token === Token.BTCK) {
141
- abi = BTCK_ABI as AbiFor<TToken, chain, TAddressKind>;
142
- if (await isUpgradedContract(Token.BTCK, chainId, environment)) {
143
- abi = NATIVE_LBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
144
- }
145
- } else if (token === Token.BTCb) {
146
- if (chainId === ChainId.avalanche || chainId === ChainId.avalancheFuji) {
147
- if (addressKind === AddressKind.Adapter) {
148
- abi = BRIDGE_TOKEN_ADAPTER_ABI as AbiFor<TToken, chain, TAddressKind>;
149
- } else {
150
- abi = erc20Abi as AbiFor<TToken, chain, TAddressKind>;
151
- }
152
- } else {
153
- abi = NATIVE_LBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
154
- }
155
- } else {
156
- abi = erc20Abi as AbiFor<TToken, chain, TAddressKind>;
157
- }
158
-
159
- const address = TOKEN_ADDRESSES[token]?.[environment]?.[chainId];
160
- if (!address) {
161
- throw new TokenContractAddressNotFoundError(token, chainId, environment);
162
- }
163
-
164
- return {
165
- abi,
166
- address: typeof address === 'string' ? address : address[addressKind],
167
- chainId,
168
- };
169
- }
170
-
171
- export const retrieveTokenProperties = async <
172
- TToken extends Token,
173
- chain extends ChainId,
174
- >(
175
- publicClient: PublicClient,
176
- tokenContractInfo: TokenContractInfo<TToken, chain, AddressKind.Token>,
177
- ) => {
178
- const [symbolResult, decimalsResult] = await publicClient.multicall({
179
- contracts: [
180
- {
181
- address: tokenContractInfo.address,
182
- abi: tokenContractInfo.abi as Abi,
183
- functionName: 'symbol',
184
- },
185
- {
186
- address: tokenContractInfo.address,
187
- abi: tokenContractInfo.abi as Abi,
188
- functionName: 'decimals',
189
- },
190
- ],
191
- });
192
-
193
- if (
194
- symbolResult.status === 'success' &&
195
- decimalsResult.status === 'success'
196
- ) {
197
- return {
198
- address: tokenContractInfo.address,
199
- abi: tokenContractInfo.abi,
200
- symbol: String(symbolResult.result),
201
- decimals: Number(decimalsResult.result),
202
- };
203
- }
204
- };
205
-
206
- export async function getTokenInfo(
207
- token: Token,
208
- chainId: ChainId,
209
- env?: Env,
210
- rpcUrl?: string,
211
- ) {
212
- const tokenContractInfo = await getTokenContractInfo(token, chainId, env);
213
- if (!tokenContractInfo) return;
214
-
215
- const publicClient = makePublicClient({ chainId, rpcUrl });
216
- return retrieveTokenProperties(publicClient, tokenContractInfo);
217
- }
218
-
219
- export async function getAssetInfo(
220
- address: Address,
221
- chainId: ChainId,
222
- rpcUrl?: string,
223
- ) {
224
- const publicClient = makePublicClient({ chainId, rpcUrl });
225
- return retrieveTokenProperties(publicClient, {
226
- abi: erc20Abi,
227
- address,
228
- chainId,
229
- });
230
- }
231
-
232
- // Utils:
233
- // TODO: Move to utils
234
-
235
- export function toBaseDenomination(
236
- input: BigNumber.Value,
237
- decimalPlaces: number,
238
- ) {
239
- return BigNumber(input)
240
- .multipliedBy(BigNumber(10).pow(decimalPlaces))
241
- .decimalPlaces(0, BigNumber.ROUND_HALF_UP);
242
- }
243
-
244
- export function fromBaseDenomination(
245
- input: BigNumber.Value,
246
- decimalPlaces: number,
247
- ) {
248
- return BigNumber(input).dividedBy(BigNumber(10).pow(decimalPlaces));
249
- }
@@ -1,80 +0,0 @@
1
- import { Address } from 'viem';
2
-
3
- /**
4
- * Address kinds for tokens that have multiple contract addresses.
5
- *
6
- * **BTC.b Integration Architecture:**
7
- *
8
- * BTC.b on Avalanche uses a dual-contract architecture with both a token contract
9
- * and an adapter contract serving different purposes:
10
- *
11
- * **When to use Token vs Adapter:**
12
- *
13
- * - **Token** (`AddressKind.Token`):
14
- * - Use for EIP-2612 `permit()` signatures (Stake and Bake)
15
- * - Use for querying token balance, symbol, decimals
16
- * - Use for standard ERC20 operations (allowance checks, balance queries)
17
- * - This is the actual BTC.b ERC20 token contract
18
- *
19
- * - **Adapter** (`AddressKind.Adapter`):
20
- * - Use for burn/mint/transfer operations via BridgeTokenAdapter
21
- * - Use for bridge deposit/withdrawal operations
22
- * - Use as spender address when approving tokens for bridge operations
23
- * - This adapter serves as an intermediary between BridgeToken and both AssetRouter and Bridge
24
- *
25
- * **Important Notes:**
26
- *
27
- * 1. **Permit Signatures**: Always use `AddressKind.Token` as the `verifyingContract` in
28
- * EIP-2612 permit signatures. The token contract implements the `permit()` function,
29
- * not the adapter.
30
- *
31
- * 2. **Approvals**: For bridge and redemption operations, users must grant allowance to
32
- * the **BridgeTokenAdapter** address, not the vault or bridge contract.
33
- *
34
- * 3. **Deposit Address**: For Ledger integration, the token address includes the adapter
35
- * address when tweaking deposit addresses.
36
- *
37
- * @example
38
- * ```typescript
39
- * // For permit signatures (Stake and Bake):
40
- * const tokenContract = await getTokenContractInfo(
41
- * Token.BTCb,
42
- * ChainId.avalancheFuji,
43
- * env,
44
- * AddressKind.Token // ✅ Use token address for permit
45
- * );
46
- *
47
- * // For bridge operations:
48
- * const adapterContract = await getTokenContractInfo(
49
- * Token.BTCb,
50
- * ChainId.avalancheFuji,
51
- * env,
52
- * AddressKind.Adapter // ✅ Use adapter address for bridge
53
- * );
54
- * ```
55
- */
56
- export enum AddressKind {
57
- /**
58
- * The bridge adapter contract address (BridgeTokenAdapter).
59
- * Used for burn/mint/transfer operations and as the spender for bridge approvals.
60
- */
61
- Adapter = 'adapter',
62
-
63
- /**
64
- * The token contract address (standard ERC20).
65
- * Used for permit signatures, balance queries, and standard ERC20 operations.
66
- */
67
- Token = 'token',
68
- }
69
-
70
- /**
71
- * Address structure for tokens with both token and adapter addresses.
72
- *
73
- * Currently only used by `Token.BTCb` on Avalanche chains.
74
- */
75
- export type BridgeTokenAddresses = {
76
- /** The bridge adapter contract address (BridgeTokenAdapter) */
77
- [AddressKind.Adapter]: Address;
78
- /** The token contract address (standard ERC20) */
79
- [AddressKind.Token]: Address;
80
- };
@@ -1,31 +0,0 @@
1
- export function unique<T>(arr: T[]): T[] {
2
- return arr.filter((v, i, a) => a.indexOf(v) === i);
3
- }
4
-
5
- export function orderBy<T>(
6
- arr: T[],
7
- property: (arrEntry: T) => string | number,
8
- direction: 'asc' | 'desc' = 'asc',
9
- ): T[] {
10
- const array = [...arr];
11
- array.sort((a, b) => {
12
- const propA = property(a);
13
- const propB = property(b);
14
-
15
- if (typeof propA === 'number') {
16
- return propA - (propB as number);
17
- }
18
-
19
- if (typeof propA === 'string') {
20
- return propA.localeCompare(propB as string);
21
- }
22
-
23
- return 0;
24
- });
25
-
26
- if (direction === 'desc') {
27
- array.reverse();
28
- }
29
-
30
- return array;
31
- }
@@ -1,23 +0,0 @@
1
- import axios from 'axios';
2
-
3
- import { ChainId, getLlamaChainName } from '../common/chains';
4
-
5
- type Response = {
6
- height: number;
7
- timestamp: number;
8
- };
9
-
10
- export async function getBlockHeight(
11
- chainId: ChainId,
12
- timestamp: number | bigint,
13
- ) {
14
- const chainName = getLlamaChainName(chainId);
15
-
16
- if (!chainName) return;
17
-
18
- const { data } = await axios.get<Response>(
19
- `https://coins.llama.fi/block/${chainName}/${String(timestamp)}`,
20
- );
21
-
22
- return data.height;
23
- }
@@ -1,152 +0,0 @@
1
- /**
2
- * Chain Utility Functions
3
- *
4
- * Provides type-safe utilities for working with Chain enum values.
5
- * Handles parsing and validation of CAIP-2 chain identifiers.
6
- *
7
- * @module utils/chain
8
- */
9
-
10
- import { CAIP2_SEPARATOR, Chain,CHAIN_PREFIXES } from '../core';
11
- import { LombardError, ValidationErrorCode } from '../shared/errors';
12
-
13
- /** Helper to get prefix with separator */
14
- const withSeparator = (prefix: string) => `${prefix}${CAIP2_SEPARATOR}`;
15
-
16
- /**
17
- * Parse EVM chain ID from Chain enum
18
- *
19
- * Extracts the numeric chain ID from an EVM chain identifier.
20
- *
21
- * @param chain - Chain enum value
22
- * @returns Numeric EVM chain ID
23
- * @throws {ValidationError} If chain is not an EVM chain
24
- *
25
- * @example
26
- * ```typescript
27
- * parseEvmChainId(Chain.ETHEREUM) // 1
28
- * parseEvmChainId(Chain.BASE) // 8453
29
- * parseEvmChainId(Chain.BITCOIN_MAINNET) // throws ValidationError
30
- * ```
31
- */
32
- export function parseEvmChainId(chain: Chain): number {
33
- const chainStr = String(chain);
34
- const evmPrefix = withSeparator(CHAIN_PREFIXES.EIP155);
35
- const isEvm = chainStr.startsWith(evmPrefix);
36
-
37
- if (!isEvm) {
38
- throw new LombardError(
39
- ValidationErrorCode.INVALID_PARAMETER,
40
- `Not an EVM chain: ${chainStr}`,
41
- );
42
- }
43
-
44
- const chainId = Number.parseInt(chainStr.slice(evmPrefix.length), 10);
45
-
46
- if (Number.isNaN(chainId)) {
47
- throw new LombardError(
48
- ValidationErrorCode.INVALID_PARAMETER,
49
- `Invalid EVM chain ID: ${chainStr}`,
50
- );
51
- }
52
-
53
- return chainId;
54
- }
55
-
56
- /**
57
- * Check if chain is an EVM chain
58
- *
59
- * @param chain - Chain enum value
60
- * @returns True if chain is an EVM chain
61
- *
62
- * @example
63
- * ```typescript
64
- * isEvmChain(Chain.ETHEREUM) // true
65
- * isEvmChain(Chain.BITCOIN_MAINNET) // false
66
- * ```
67
- */
68
- export function isEvmChain(chain: Chain): boolean {
69
- return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.EIP155));
70
- }
71
-
72
- /**
73
- * Check if chain is a Bitcoin chain
74
- *
75
- * @param chain - Chain enum value
76
- * @returns True if chain is a Bitcoin chain
77
- *
78
- * @example
79
- * ```typescript
80
- * isBitcoinChain(Chain.BITCOIN_MAINNET) // true
81
- * isBitcoinChain(Chain.ETHEREUM) // false
82
- * ```
83
- */
84
- export function isBitcoinChain(chain: Chain): boolean {
85
- return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.BIP122));
86
- }
87
-
88
- /**
89
- * Check if chain is a Solana chain
90
- *
91
- * @param chain - Chain enum value
92
- * @returns True if chain is a Solana chain
93
- *
94
- * @example
95
- * ```typescript
96
- * isSolanaChain(Chain.SOLANA_MAINNET) // true
97
- * isSolanaChain(Chain.ETHEREUM) // false
98
- * ```
99
- */
100
- export function isSolanaChain(chain: Chain): boolean {
101
- return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.SOLANA));
102
- }
103
-
104
- /**
105
- * Check if chain is a Sui chain
106
- *
107
- * @param chain - Chain enum value
108
- * @returns True if chain is a Sui chain
109
- *
110
- * @example
111
- * ```typescript
112
- * isSuiChain(Chain.SUI_MAINNET) // true
113
- * isSuiChain(Chain.ETHEREUM) // false
114
- * ```
115
- */
116
- export function isSuiChain(chain: Chain): boolean {
117
- return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.SUI));
118
- }
119
-
120
- /**
121
- * Check if chain is a Starknet chain
122
- *
123
- * @param chain - Chain enum value
124
- * @returns True if chain is a Starknet chain
125
- *
126
- * @example
127
- * ```typescript
128
- * isStarknetChain(Chain.STARKNET_MAINNET) // true
129
- * isStarknetChain(Chain.ETHEREUM) // false
130
- * ```
131
- */
132
- export function isStarknetChain(chain: Chain): boolean {
133
- return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.STARKNET));
134
- }
135
-
136
- /**
137
- * Get chain namespace from Chain enum
138
- *
139
- * Returns the CAIP-2 namespace prefix (eip155, bip122, solana, etc.)
140
- *
141
- * @param chain - Chain enum value
142
- * @returns CAIP-2 namespace string
143
- *
144
- * @example
145
- * ```typescript
146
- * getChainNamespace(Chain.ETHEREUM) // 'eip155'
147
- * getChainNamespace(Chain.BITCOIN_MAINNET) // 'bip122'
148
- * ```
149
- */
150
- export function getChainNamespace(chain: Chain): string {
151
- return String(chain).split(CAIP2_SEPARATOR)[0];
152
- }
@@ -1,140 +0,0 @@
1
- /**
2
- * Console Logger Factory
3
- *
4
- * Creates a logger that outputs to the console with configurable log levels.
5
- * Used when `debug: true` is set in SDK configuration.
6
- *
7
- * @module utils/consoleLogger
8
- */
9
-
10
- import type { Logger } from '../shared/context/types';
11
-
12
- /**
13
- * Log level hierarchy (from most to least verbose)
14
- */
15
- export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
16
-
17
- /**
18
- * Options for creating a console logger
19
- */
20
- export interface ConsoleLoggerOptions {
21
- /**
22
- * Minimum log level to output
23
- *
24
- * - 'debug': All logs (most verbose)
25
- * - 'info': Info, warnings, and errors
26
- * - 'warn': Warnings and errors only
27
- * - 'error': Errors only
28
- * - 'none': No logs (silent)
29
- *
30
- * @default 'debug'
31
- */
32
- level?: LogLevel;
33
-
34
- /**
35
- * Prefix for all log messages
36
- *
37
- * @default '[Lombard SDK]'
38
- */
39
- prefix?: string;
40
-
41
- /**
42
- * Include timestamp in log messages
43
- *
44
- * @default false
45
- */
46
- timestamp?: boolean;
47
- }
48
-
49
- const LOG_LEVELS: LogLevel[] = ['debug', 'info', 'warn', 'error', 'none'];
50
-
51
- /**
52
- * Create a console logger with configurable options
53
- *
54
- * @param options - Logger configuration options
55
- * @returns Logger instance that outputs to console
56
- *
57
- * @example
58
- * ```typescript
59
- * // Basic usage - log everything
60
- * const logger = createConsoleLogger();
61
- *
62
- * // Only warnings and errors
63
- * const logger = createConsoleLogger({ level: 'warn' });
64
- *
65
- * // Custom prefix with timestamp
66
- * const logger = createConsoleLogger({
67
- * prefix: '[MyApp SDK]',
68
- * timestamp: true,
69
- * });
70
- * ```
71
- */
72
- export function createConsoleLogger(
73
- options: ConsoleLoggerOptions = {},
74
- ): Logger {
75
- const { level = 'debug', prefix = '[Lombard SDK]', timestamp = false } = options;
76
-
77
- const minLevelIndex = LOG_LEVELS.indexOf(level);
78
-
79
- const shouldLog = (logLevel: LogLevel): boolean => {
80
- const levelIndex = LOG_LEVELS.indexOf(logLevel);
81
- return levelIndex >= minLevelIndex && level !== 'none';
82
- };
83
-
84
- const formatMessage = (msg: string): string => {
85
- if (timestamp) {
86
- const ts = new Date().toISOString();
87
- return `${prefix} ${ts} ${msg}`;
88
- }
89
- return `${prefix} ${msg}`;
90
- };
91
-
92
- const formatMeta = (meta?: Record<string, unknown>): unknown[] => {
93
- if (!meta || Object.keys(meta).length === 0) {
94
- return [];
95
- }
96
- return [meta];
97
- };
98
-
99
- return {
100
- debug(message: string, meta?: Record<string, unknown>): void {
101
- if (shouldLog('debug')) {
102
- console.debug(formatMessage(message), ...formatMeta(meta));
103
- }
104
- },
105
-
106
- info(message: string, meta?: Record<string, unknown>): void {
107
- if (shouldLog('info')) {
108
- console.info(formatMessage(message), ...formatMeta(meta));
109
- }
110
- },
111
-
112
- warn(message: string, meta?: Record<string, unknown>): void {
113
- if (shouldLog('warn')) {
114
- console.warn(formatMessage(message), ...formatMeta(meta));
115
- }
116
- },
117
-
118
- error(message: string, meta?: Record<string, unknown>): void {
119
- if (shouldLog('error')) {
120
- console.error(formatMessage(message), ...formatMeta(meta));
121
- }
122
- },
123
- };
124
- }
125
-
126
- /**
127
- * Create a silent logger (no-op)
128
- *
129
- * Useful for testing or when you want to suppress all logs.
130
- */
131
- export function createSilentLogger(): Logger {
132
- return {
133
- debug: () => {},
134
- info: () => {},
135
- warn: () => {},
136
- error: () => {},
137
- };
138
- }
139
-
140
-
@@ -1,11 +0,0 @@
1
- import { SANCTIONED_ADDRESS } from '../api-functions/generateDepositBtcAddress/generateDepositBtcAddress';
2
- import { LombardError, ValidationErrorCode } from '../shared/errors';
3
-
4
- export function ensureNotSanctionedAddress(address: string): void {
5
- if (address === SANCTIONED_ADDRESS) {
6
- throw new LombardError(
7
- ValidationErrorCode.INVALID_PARAMETER,
8
- 'Destination address is under sanctions',
9
- );
10
- }
11
- }
package/src/utils/env.ts DELETED
@@ -1,20 +0,0 @@
1
- import { Env } from '@lombard.finance/sdk-common';
2
-
3
- import { ChainId } from '../common/chains';
4
-
5
- const PROD_NATIVE_MINT_CHAINS = [
6
- ChainId.ethereum,
7
- ChainId.base,
8
- ChainId.berachain,
9
- ChainId.binanceSmartChain,
10
- ChainId.corn,
11
- ChainId.etherlink,
12
- ChainId.katana,
13
- ChainId.morph,
14
- ChainId.sonic,
15
- ChainId.swell,
16
- ] as ChainId[];
17
-
18
- export const determineEnv = (chainId: ChainId): Env => {
19
- return PROD_NATIVE_MINT_CHAINS.includes(chainId) ? Env.prod : Env.stage;
20
- };