@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,90 +0,0 @@
1
- import type { AnyModule, ProviderKey } from '@lombard.finance/sdk-common';
2
-
3
- import type { CreateConfigOptions, LombardConfig } from '../config/types';
4
- import { validateAndApplyDefaults } from '../config/validation';
5
- import { apiModule } from '../modules/apiModule';
6
- import { btcModule } from '../modules/btcModule';
7
- import { evmModule } from '../modules/evmModule';
8
- import { LombardError } from '../shared/errors';
9
- import { createConsoleLogger } from '../utils/consoleLogger';
10
-
11
- function mergeModules(provided: readonly AnyModule[] | undefined): AnyModule[] {
12
- const modules = new Map<string, AnyModule>();
13
- const builtIns: AnyModule[] = [btcModule(), evmModule(), apiModule()];
14
- for (const mod of builtIns) {
15
- modules.set(mod.id, mod);
16
- }
17
- if (provided) {
18
- for (const mod of provided) {
19
- modules.set(mod.id, mod);
20
- }
21
- }
22
- return Array.from(modules.values());
23
- }
24
-
25
- function ensureProviders(
26
- modules: readonly AnyModule[],
27
- config: Pick<LombardConfig, 'providers'>,
28
- ): void {
29
- for (const mod of modules) {
30
- for (const key of mod.requiresProviders ?? []) {
31
- if (!hasProvider(config, key)) {
32
- throw LombardError.providerMissing(key, key);
33
- }
34
- }
35
- }
36
- }
37
-
38
- function hasProvider(
39
- config: Pick<LombardConfig, 'providers'>,
40
- key: ProviderKey,
41
- ): boolean {
42
- return Boolean(config.providers?.[key]);
43
- }
44
-
45
- /**
46
- * Create SDK configuration
47
- *
48
- * This is a **synchronous** function that validates options and returns
49
- * a configuration object. The config can be exported from a module and
50
- * passed around as a plain object.
51
- *
52
- * The asset catalog is NOT fetched here - it's fetched asynchronously
53
- * when createLombardSDK() is called. This keeps config creation simple
54
- * and predictable.
55
- *
56
- * @param options - Configuration options
57
- * @returns Validated SDK configuration
58
- *
59
- * @example
60
- * ```typescript
61
- * // lib/lombard.ts - Config is sync, can be exported directly
62
- * export const config = createConfig({
63
- * env: Env.prod,
64
- * providers: { evm: () => window.ethereum },
65
- * });
66
- *
67
- * // Usage - SDK creation is async
68
- * import { config } from './lib/lombard';
69
- * const sdk = await createLombardSDK(config);
70
- * ```
71
- */
72
- export function createConfig(options: CreateConfigOptions): LombardConfig {
73
- const normalized = validateAndApplyDefaults(options);
74
- const modules = mergeModules(
75
- options.modules as readonly AnyModule[] | undefined,
76
- );
77
- ensureProviders(modules, normalized);
78
-
79
- // Resolve logger: explicit logger > debug mode > undefined
80
- let logger = options.logger;
81
- if (!logger && options.debug) {
82
- logger = createConsoleLogger({ level: 'debug' });
83
- }
84
-
85
- return {
86
- ...normalized,
87
- modules,
88
- logger,
89
- };
90
- }
@@ -1,130 +0,0 @@
1
- /**
2
- * Async factory for creating LombardSDK instances
3
- *
4
- * This is the primary entry point for the Lombard SDK.
5
- * It fetches the asset catalog asynchronously and initializes the SDK.
6
- */
7
-
8
- import type { Env } from '@lombard.finance/sdk-common';
9
-
10
- import type {
11
- CreateConfigOptions,
12
- LombardConfig,
13
- ResolvedLombardConfig,
14
- } from '../config/types';
15
- import { ASSET_CATALOG } from '../core/assets/catalog';
16
- import type { AssetCatalog } from '../core/assets/types';
17
- import { createConfig } from './createConfig';
18
- import { LombardSDK } from './LombardSDK';
19
-
20
- /**
21
- * Module-level catalog cache
22
- *
23
- * Caches the catalog promise per environment to avoid redundant fetches.
24
- * Multiple calls to createLombardSDK() with the same env will share
25
- * the same catalog fetch.
26
- *
27
- * @internal
28
- */
29
- const catalogCache = new Map<Env, Promise<AssetCatalog>>();
30
-
31
- /**
32
- * Fetch asset catalog with caching
33
- *
34
- * Currently returns bundled catalog immediately.
35
- * Future: Will fetch from remote S3/CDN with bundled fallback.
36
- *
37
- * The catalog is cached per environment - subsequent calls with the
38
- * same env return the same promise, avoiding duplicate fetches.
39
- *
40
- * @internal
41
- */
42
- function fetchCatalogCached(env: Env): Promise<AssetCatalog> {
43
- if (!catalogCache.has(env)) {
44
- // TODO (APP-1834): Implement remote catalog fetching
45
- // When backend is ready:
46
- // 1. Fetch from CDN: https://cdn.lombard.finance/catalog/{env}.json
47
- // 2. Fallback to ASSET_CATALOG on network failure
48
- // 3. Cache-Control headers will define CDN TTL
49
- //
50
- // For now, return bundled catalog immediately (wrapped in Promise)
51
- catalogCache.set(env, Promise.resolve(ASSET_CATALOG));
52
- }
53
- return catalogCache.get(env)!;
54
- }
55
-
56
- /**
57
- * Create a LombardSDK instance
58
- *
59
- * This is an async factory that:
60
- * 1. Validates configuration (sync)
61
- * 2. Fetches the asset catalog (async, cached per env)
62
- * 3. Initializes the SDK with all chain actions
63
- *
64
- * The catalog is cached at the module level - multiple SDK instances
65
- * with the same environment share the same catalog fetch.
66
- *
67
- * @param options - SDK configuration options or pre-made LombardConfig
68
- * @returns Promise resolving to LombardSDK instance
69
- *
70
- * @example
71
- * ```typescript
72
- * // Option 1: Direct creation (recommended for simple cases)
73
- * const sdk = await createLombardSDK({
74
- * env: Env.prod,
75
- * providers: {
76
- * evm: () => window.ethereum,
77
- * bitcoin: () => bitcoinProvider,
78
- * },
79
- * });
80
- *
81
- * // Option 2: Separate config (recommended for shared config)
82
- * // lib/lombard.ts
83
- * export const config = createConfig({
84
- * env: Env.prod,
85
- * providers: { evm: () => window.ethereum },
86
- * });
87
- *
88
- * // app.ts
89
- * import { config } from './lib/lombard';
90
- * const sdk = await createLombardSDK(config);
91
- *
92
- * // Use the SDK
93
- * const stake = sdk.chain.btc.stake({
94
- * destChain: Chain.ETHEREUM,
95
- * assetOut: AssetId.LBTC,
96
- * });
97
- * ```
98
- */
99
- export async function createLombardSDK<E extends Env = Env>(
100
- options: (CreateConfigOptions & { env: E }) | LombardConfig,
101
- ): Promise<LombardSDK<E>> {
102
- // If already a LombardConfig (validated), use it
103
- // Otherwise, create config (sync validation)
104
- const config: LombardConfig =
105
- 'modules' in options && Array.isArray(options.modules)
106
- ? (options as LombardConfig)
107
- : createConfig(options as CreateConfigOptions & { env: E });
108
-
109
- // Fetch catalog (async, cached per env)
110
- const catalog = await fetchCatalogCached(config.env);
111
-
112
- // Create resolved config with catalog
113
- const resolvedConfig: ResolvedLombardConfig = {
114
- ...config,
115
- catalog,
116
- };
117
-
118
- return new LombardSDK<E>(resolvedConfig);
119
- }
120
-
121
- /**
122
- * Clear the catalog cache
123
- *
124
- * Useful for testing or forcing a fresh catalog fetch.
125
- *
126
- * @internal
127
- */
128
- export function clearCatalogCache(): void {
129
- catalogCache.clear();
130
- }
@@ -1,313 +0,0 @@
1
- import {
2
- Address,
3
- createWalletClient,
4
- Hex,
5
- http,
6
- isHex,
7
- LocalAccount,
8
- TransactionSerializable,
9
- WalletClient,
10
- } from 'viem';
11
-
12
- import { CHAIN_ID_TO_VIEM_CHAIN_MAP, ChainId } from '../common/chains';
13
-
14
- /**
15
- * EVM transaction request structure compatible with unified bridge signers.
16
- * This matches the shape expected by bridge-unified's EvmSigner interface.
17
- */
18
- export interface EvmTransactionRequest {
19
- /** Sender address */
20
- from: Address;
21
- /** Recipient address */
22
- to?: Address;
23
- /** Transaction data (calldata) */
24
- data?: Hex;
25
- /** Value to send in wei */
26
- value?: bigint;
27
- /** Gas limit */
28
- gas?: bigint;
29
- /** Maximum fee per gas (EIP-1559) */
30
- maxFeePerGas?: bigint;
31
- /** Maximum priority fee per gas (EIP-1559) */
32
- maxPriorityFeePerGas?: bigint;
33
- /** Chain ID in hex format (e.g., "0x1" for Ethereum mainnet) */
34
- chainId?: string;
35
- /** Transaction nonce */
36
- nonce?: number;
37
- }
38
-
39
- /**
40
- * Callback function to dispatch a signed transaction.
41
- * This is called by the signer after signing to broadcast the transaction.
42
- *
43
- * @param serializedTx - The signed, serialized transaction (0x-prefixed hex string)
44
- * @returns Promise resolving to the transaction hash
45
- */
46
- export type DispatchCallback = (serializedTx: Hex) => Promise<Hex>;
47
-
48
- /**
49
- * Signer interface compatible with unified bridge's EvmSigner.
50
- * Handles transaction signing and optionally broadcasting.
51
- *
52
- * @remarks
53
- * The `sign` method receives a transaction request and a dispatch callback.
54
- * The signer should:
55
- * 1. Sign the transaction
56
- * 2. Call the dispatch callback with the signed transaction
57
- * 3. Return the transaction hash
58
- */
59
- export interface SignerAdapter {
60
- /**
61
- * Signs a transaction and dispatches it via the provided callback.
62
- *
63
- * @param tx - The transaction request to sign
64
- * @param dispatch - Callback to broadcast the signed transaction
65
- * @returns Promise resolving to the transaction hash
66
- *
67
- * @example
68
- * ```ts
69
- * const txHash = await signer.sign(
70
- * { from, to, data, value },
71
- * (signedTx) => publicClient.sendRawTransaction({ serializedTransaction: signedTx })
72
- * );
73
- * ```
74
- */
75
- sign: (tx: EvmTransactionRequest, dispatch: DispatchCallback) => Promise<Hex>;
76
- }
77
-
78
- /**
79
- * Error thrown when transaction validation or signing fails.
80
- */
81
- export class SignerError extends Error {
82
- constructor(
83
- public readonly code: string,
84
- message: string,
85
- public readonly context?: Record<string, unknown>,
86
- ) {
87
- super(message);
88
- this.name = 'SignerError';
89
- }
90
- }
91
-
92
- /**
93
- * Validates an EVM transaction request.
94
- * Throws SignerError if validation fails.
95
- *
96
- * @param tx - Transaction request to validate
97
- * @throws {SignerError} If required fields are missing or invalid
98
- */
99
- export function validateTransactionRequest(
100
- tx: EvmTransactionRequest,
101
- operation = 'transaction',
102
- ): void {
103
- if (!tx.from) {
104
- throw new SignerError(
105
- 'MISSING_FROM_ADDRESS',
106
- `Missing 'from' address for ${operation}`,
107
- { transaction: tx, operation },
108
- );
109
- }
110
-
111
- if (!tx.to) {
112
- throw new SignerError(
113
- 'MISSING_TO_ADDRESS',
114
- `Missing 'to' address for ${operation}`,
115
- { transaction: tx, operation },
116
- );
117
- }
118
-
119
- if (tx.data !== undefined && !isHex(tx.data)) {
120
- throw new SignerError(
121
- 'INVALID_DATA',
122
- `Transaction data must be valid hex string for ${operation}`,
123
- { transaction: tx, operation, data: tx.data },
124
- );
125
- }
126
-
127
- if (tx.chainId && !/^0x[0-9a-fA-F]+$/.test(tx.chainId)) {
128
- throw new SignerError(
129
- 'INVALID_CHAIN_ID',
130
- `Chain ID must be a hex string (e.g., "0x1") for ${operation}`,
131
- { transaction: tx, operation, chainId: tx.chainId },
132
- );
133
- }
134
- }
135
-
136
- /**
137
- * Creates a Viem LocalAccount from a SignerAdapter.
138
- * This allows the unified bridge's EvmSigner to be used as a standard Viem account.
139
- *
140
- * @param signer - The SignerAdapter to wrap
141
- * @param address - The account address
142
- * @param chainId - The chain ID
143
- * @returns A Viem LocalAccount that delegates signing to the SignerAdapter
144
- *
145
- * @remarks
146
- * This adapter enables the SDK to use a unified-bridge EvmSigner with Viem's
147
- * standard wallet client, eliminating the need for separate code paths.
148
- *
149
- * The adapter:
150
- * - Validates transaction requests before signing
151
- * - Converts between Viem and EvmSigner transaction formats
152
- * - Provides proper error context for debugging
153
- *
154
- * @example
155
- * ```ts
156
- * const account = createAccountFromSigner(
157
- * bridgeEvmSigner,
158
- * '0x1234...',
159
- * ChainId.ethereum
160
- * );
161
- *
162
- * const walletClient = createWalletClient({
163
- * account,
164
- * chain: mainnet,
165
- * transport: http(),
166
- * });
167
- *
168
- * // Now walletClient.writeContract works with the EvmSigner!
169
- * ```
170
- */
171
- export function createAccountFromSigner(
172
- signer: SignerAdapter,
173
- address: Address,
174
- chainId: ChainId,
175
- ): LocalAccount {
176
- const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];
177
-
178
- if (!chain) {
179
- throw new SignerError(
180
- 'UNSUPPORTED_CHAIN',
181
- `Chain ID ${chainId} is not supported`,
182
- { chainId, availableChains: Object.keys(CHAIN_ID_TO_VIEM_CHAIN_MAP) },
183
- );
184
- }
185
-
186
- /**
187
- * Custom account implementation that delegates to SignerAdapter
188
- */
189
- const customAccount: LocalAccount = {
190
- address,
191
- type: 'local' as const,
192
- publicKey:
193
- '0x0000000000000000000000000000000000000000000000000000000000000000' as Hex,
194
- source: 'custom' as const,
195
-
196
- /**
197
- * Signs a transaction using the SignerAdapter.
198
- * This is called by Viem's wallet client when executing transactions.
199
- */
200
- async signTransaction(transaction: TransactionSerializable): Promise<Hex> {
201
- // Convert Viem transaction to EvmTransactionRequest format
202
- const evmTx: EvmTransactionRequest = {
203
- from: address,
204
- to: transaction.to ?? undefined,
205
- data: transaction.data,
206
- value: transaction.value,
207
- gas: transaction.gas,
208
- maxFeePerGas: transaction.maxFeePerGas,
209
- maxPriorityFeePerGas: transaction.maxPriorityFeePerGas,
210
- chainId: transaction.chainId
211
- ? `0x${transaction.chainId.toString(16)}`
212
- : `0x${chain.id.toString(16)}`,
213
- nonce: transaction.nonce,
214
- };
215
-
216
- // Validate before signing
217
- validateTransactionRequest(evmTx, 'signTransaction');
218
-
219
- // Sign and return the serialized signed transaction
220
- // The dispatch callback here just returns what was passed (identity function)
221
- // because we want the signed transaction, not to broadcast it yet
222
- let signedTx: Hex | undefined;
223
-
224
- await signer.sign(evmTx, async serialized => {
225
- signedTx = serialized;
226
- // Return a dummy hash - the actual broadcasting happens via walletClient
227
- return serialized;
228
- });
229
-
230
- if (!signedTx) {
231
- throw new SignerError(
232
- 'SIGNING_FAILED',
233
- 'Signer did not return a signed transaction',
234
- { transaction: evmTx },
235
- );
236
- }
237
-
238
- // Ensure we return a Hex type (not null)
239
- return signedTx as Hex;
240
- },
241
-
242
- /**
243
- * Signs a message (EIP-191).
244
- * Not implemented as it's not needed for contract transactions.
245
- */
246
- async signMessage(): Promise<Hex> {
247
- throw new SignerError(
248
- 'NOT_IMPLEMENTED',
249
- 'Message signing is not supported by this adapter',
250
- { method: 'signMessage' },
251
- );
252
- },
253
-
254
- /**
255
- * Signs typed data (EIP-712).
256
- * Not implemented as it's not needed for contract transactions.
257
- */
258
- async signTypedData(): Promise<Hex> {
259
- throw new SignerError(
260
- 'NOT_IMPLEMENTED',
261
- 'Typed data signing is not supported by this adapter',
262
- { method: 'signTypedData' },
263
- );
264
- },
265
- };
266
-
267
- return customAccount;
268
- }
269
-
270
- /**
271
- * Creates a Viem wallet client from a SignerAdapter.
272
- * This is a convenience wrapper around createAccountFromSigner.
273
- *
274
- * @param signer - The SignerAdapter to use
275
- * @param address - The account address
276
- * @param chainId - The chain ID
277
- * @returns A Viem wallet client configured with the SignerAdapter
278
- *
279
- * @example
280
- * ```ts
281
- * const walletClient = createWalletClientFromSigner(
282
- * bridgeEvmSigner,
283
- * '0x1234...',
284
- * ChainId.ethereum
285
- * );
286
- *
287
- * // Use like any Viem wallet client
288
- * await walletClient.writeContract({ ... });
289
- * ```
290
- */
291
- export function createWalletClientFromSigner(
292
- signer: SignerAdapter,
293
- address: Address,
294
- chainId: ChainId,
295
- ): WalletClient {
296
- const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];
297
-
298
- if (!chain) {
299
- throw new SignerError(
300
- 'UNSUPPORTED_CHAIN',
301
- `Chain ID ${chainId} is not supported`,
302
- { chainId },
303
- );
304
- }
305
-
306
- const account = createAccountFromSigner(signer, address, chainId);
307
-
308
- return createWalletClient({
309
- account,
310
- chain,
311
- transport: http(), // Uses default RPC
312
- });
313
- }
@@ -1,49 +0,0 @@
1
- import { Env } from '@lombard.finance/sdk-common';
2
- import { Chain, createPublicClient, http, PublicClient } from 'viem';
3
-
4
- import {
5
- CHAIN_ID_TO_VIEM_CHAIN_MAP,
6
- ChainId,
7
- getChain,
8
- } from '../common/chains';
9
- import { determineEnv } from '../utils/env';
10
- import { getRpcUrlConfig } from './rpc-url-config';
11
-
12
- type MakePublicClientParameters = {
13
- chainId: ChainId;
14
- rpcUrl?: string;
15
- env?: Env;
16
- };
17
-
18
- /**
19
- * Creates the public (read-only) client for specified `chainId`.
20
- * @param chainId - The chain id
21
- * @param rpcUrl - The overridden RPC url for specified chain id.
22
- * @returns The public client instance
23
- */
24
- export function makePublicClient({
25
- chainId,
26
- rpcUrl,
27
- env,
28
- }: MakePublicClientParameters): PublicClient {
29
- const override = rpcUrl ? { [chainId]: rpcUrl } : undefined;
30
-
31
- const environment = env || determineEnv(chainId);
32
- const rpcUrlConfig = getRpcUrlConfig(environment);
33
-
34
- const rpcUrls = { ...rpcUrlConfig, ...override };
35
-
36
- let chain: Chain | undefined = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];
37
- if (!chain) {
38
- chain = getChain(chainId);
39
- }
40
-
41
- const transport = http(rpcUrls[chainId]);
42
-
43
- const publicClient = createPublicClient({
44
- chain,
45
- transport,
46
- });
47
-
48
- return publicClient as PublicClient<typeof transport>;
49
- }
@@ -1,64 +0,0 @@
1
- import { Env } from '@lombard.finance/sdk-common';
2
-
3
- import { getApiConfig } from '../common/api-config';
4
- import { ChainId } from '../common/chains';
5
-
6
- export type TRpcUrlConfig = Record<number, string>;
7
-
8
- export const RPC_URL = 'https://bff.prod.lombard-fi.com/multi-rpc/proxy';
9
-
10
- export const rpcUrlConfig: TRpcUrlConfig = {
11
- [ChainId.ethereum]: `${RPC_URL}/eth`,
12
- [ChainId.base]: `${RPC_URL}/base`,
13
- // [ChainId.binanceSmartChain]: 'https://bsc-dataseed.bnbchain.org',
14
- [ChainId.binanceSmartChain]: `${RPC_URL}/bsc`,
15
- [ChainId.corn]: `${RPC_URL}/corn_maizenet`,
16
- [ChainId.katana]: `${RPC_URL}/katana`,
17
- [ChainId.megaeth]:
18
- 'https://alpha.megaeth.com/rpc?user=lombard+v1&token=1763427229-%2Bx6HFUDu9OhJwV%2FTCFOL0xTt%2FPJRAXPeirIcuytvnes%3D',
19
- [ChainId.sonic]: `${RPC_URL}/sonic_mainnet`,
20
- [ChainId.stable]:
21
- 'https://partners-rpc.stable.xyz/lombard.075830647a2c30190712a9d102011ffe5a2a01d24ff3405f711d6ea8aca10baf', // TODO: Update with the correct RPC URL once the stable network is live
22
- [ChainId.tac]: `${RPC_URL}/tac`,
23
- [ChainId.monad]: `${RPC_URL}/monad_mainnet`,
24
- // Testnets:
25
- [ChainId.baseSepoliaTestnet]: `${RPC_URL}/base_sepolia`,
26
- [ChainId.binanceSmartChainTestnet]:
27
- 'https://bsc-testnet-dataseed.bnbchain.org',
28
- [ChainId.holesky]: `${RPC_URL}/eth_holesky`,
29
- [ChainId.katanaTatara]: `${RPC_URL}/katana_tatara`,
30
- [ChainId.sepolia]: `${RPC_URL}/eth_sepolia`,
31
- // Use direct Sonic Labs RPC for testnet (proxy returns 403)
32
- [ChainId.sonicBlazeTestnet]: 'https://rpc.blaze.soniclabs.com',
33
- };
34
-
35
- export function getRpcUrlConfig(env: Env) {
36
- const { bffApiUrl: baseUrl } = getApiConfig(env);
37
-
38
- const proxy = `${baseUrl}/multi-rpc/proxy`;
39
-
40
- return {
41
- [ChainId.ethereum]: `${proxy}/eth`,
42
- [ChainId.base]: `${proxy}/base`,
43
- [ChainId.binanceSmartChain]: 'https://bsc-dataseed.bnbchain.org',
44
- [ChainId.corn]: `${proxy}/corn_maizenet`,
45
- [ChainId.katana]: `${proxy}/katana`,
46
- [ChainId.monad]: `${proxy}/monad_mainnet`,
47
- [ChainId.megaeth]:
48
- 'https://alpha.megaeth.com/rpc?user=lombard+v1&token=1763427229-%2Bx6HFUDu9OhJwV%2FTCFOL0xTt%2FPJRAXPeirIcuytvnes%3D',
49
- [ChainId.sonic]: `${proxy}/sonic_mainnet`,
50
- [ChainId.tac]: `${proxy}/tac`,
51
-
52
- // Testnets:
53
- [ChainId.baseSepoliaTestnet]: `${proxy}/base_sepolia`,
54
- [ChainId.binanceSmartChainTestnet]:
55
- 'https://bsc-testnet-dataseed.bnbchain.org',
56
- [ChainId.holesky]: `${proxy}/eth_holesky`,
57
- [ChainId.katanaTatara]: `${proxy}/katana_tatara`,
58
- [ChainId.sepolia]: `${proxy}/eth_sepolia`,
59
- // Use direct Sonic Labs RPC for testnet (proxy returns 403)
60
- [ChainId.sonicBlazeTestnet]: 'https://rpc.blaze.soniclabs.com',
61
- [ChainId.stable]:
62
- 'https://partners-rpc.stable.xyz/lombard.075830647a2c30190712a9d102011ffe5a2a01d24ff3405f711d6ea8aca10baf',
63
- } as TRpcUrlConfig;
64
- }
@@ -1,34 +0,0 @@
1
- import {
2
- createWalletClient,
3
- custom,
4
- EIP1193Provider,
5
- WalletClient,
6
- } from 'viem';
7
-
8
- import { CHAIN_ID_TO_VIEM_CHAIN_MAP, ChainId } from '../common/chains';
9
-
10
- type MakeClientParameters = {
11
- provider: EIP1193Provider;
12
- chainId: ChainId;
13
- };
14
-
15
- /**
16
- * Creates the client for specified `chainId`.
17
- * @param chainId - The chain id
18
- * @param rpcUrl - The overridden RPC url for specified chain id.
19
- * @returns The public client instance
20
- */
21
- export function makeWalletClient({
22
- provider,
23
- chainId,
24
- }: MakeClientParameters): WalletClient {
25
- const chain = CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId];
26
- const transport = custom(provider);
27
-
28
- const client = createWalletClient({
29
- chain,
30
- transport,
31
- });
32
-
33
- return client as WalletClient<typeof transport>;
34
- }