@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.
- package/CHANGELOG.md +12 -0
- package/dist/bridge/lib/ccip-config.d.ts.map +1 -1
- package/dist/bridge/lib/config.d.ts +3 -3
- package/dist/bridge/lib/config.d.ts.map +1 -1
- package/dist/common/chains.d.ts +2 -2
- package/dist/common/chains.d.ts.map +1 -1
- package/dist/common/feature-config.d.ts.map +1 -1
- package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
- package/dist/index2.cjs +6 -6
- package/dist/index2.js +792 -759
- package/dist/vaults/lib/config.d.ts +1 -1
- package/package.json +7 -8
- package/src/__tests__/AssetNamespace.spec.ts +0 -234
- package/src/__tests__/helpers/createTestConfig.ts +0 -90
- package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
- package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
- package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
- package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
- package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
- package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
- package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
- package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
- package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
- package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
- package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
- package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
- package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
- package/src/__tests__/services/ApiService.test.ts +0 -62
- package/src/__tests__/services/BtcService.test.ts +0 -30
- package/src/__tests__/services/EvmService.test.ts +0 -39
- package/src/__tests__/setup.ts +0 -16
- package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
- package/src/__tests__/test-utils/evm-wallet.ts +0 -38
- package/src/__tests__/test-utils/solana-wallet.ts +0 -22
- package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
- package/src/__tests__/test-utils/sui-wallet.ts +0 -14
- package/src/__tests__/test-utils/test-constraints.ts +0 -110
- package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
- package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
- package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
- package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
- package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
- package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
- package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
- package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
- package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
- package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
- package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
- package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
- package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
- package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
- package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
- package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
- package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
- package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
- package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
- package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
- package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
- package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
- package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
- package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
- package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
- package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
- package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
- package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
- package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
- package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
- package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
- package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
- package/src/api-functions/get-badges-by-address/index.ts +0 -1
- package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
- package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
- package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
- package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
- package/src/api-functions/getDepositsByAddress/index.ts +0 -1
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
- package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
- package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
- package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
- package/src/api-functions/getPointsByAddress/index.ts +0 -1
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
- package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
- package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/index.ts +0 -11
- package/src/api-functions/setReferral/index.ts +0 -1
- package/src/api-functions/setReferral/setReferral.ts +0 -67
- package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
- package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
- package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
- package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
- package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
- package/src/bridge/index.ts +0 -16
- package/src/bridge/lib/bridge.stories.tsx +0 -90
- package/src/bridge/lib/bridge.ts +0 -115
- package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
- package/src/bridge/lib/ccip-bridge.ts +0 -214
- package/src/bridge/lib/ccip-config.ts +0 -54
- package/src/bridge/lib/config.ts +0 -384
- package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
- package/src/bridge/lib/oft-bridge.ts +0 -217
- package/src/chains/btc/BtcActions.ts +0 -192
- package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
- package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
- package/src/chains/btc/actions/deposit/config/index.ts +0 -53
- package/src/chains/btc/actions/deposit/config/types.ts +0 -108
- package/src/chains/btc/actions/deposit/factory.ts +0 -53
- package/src/chains/btc/actions/deposit/index.ts +0 -23
- package/src/chains/btc/actions/deposit/types.ts +0 -120
- package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
- package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
- package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
- package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
- package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
- package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
- package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
- package/src/chains/btc/actions/index.ts +0 -14
- package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
- package/src/chains/btc/actions/shared/index.ts +0 -28
- package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
- package/src/chains/btc/actions/shared/validation.ts +0 -180
- package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
- package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
- package/src/chains/btc/actions/stake/config/evm.ts +0 -183
- package/src/chains/btc/actions/stake/config/index.ts +0 -122
- package/src/chains/btc/actions/stake/config/solana.ts +0 -96
- package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
- package/src/chains/btc/actions/stake/config/sui.ts +0 -61
- package/src/chains/btc/actions/stake/config/types.ts +0 -165
- package/src/chains/btc/actions/stake/factory.ts +0 -53
- package/src/chains/btc/actions/stake/index.ts +0 -22
- package/src/chains/btc/actions/stake/types.ts +0 -175
- package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
- package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
- package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
- package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
- package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
- package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
- package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
- package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
- package/src/chains/btc/client/mempool/error.ts +0 -24
- package/src/chains/btc/client/mempool/mempool.ts +0 -23
- package/src/chains/btc/index.ts +0 -71
- package/src/chains/evm/EvmActions.ts +0 -185
- package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
- package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
- package/src/chains/evm/actions/deploy/config/index.ts +0 -8
- package/src/chains/evm/actions/deploy/config/types.ts +0 -43
- package/src/chains/evm/actions/deploy/factory.ts +0 -44
- package/src/chains/evm/actions/deploy/index.ts +0 -17
- package/src/chains/evm/actions/deploy/types.ts +0 -74
- package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
- package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
- package/src/chains/evm/actions/deposit/config/index.ts +0 -8
- package/src/chains/evm/actions/deposit/config/types.ts +0 -39
- package/src/chains/evm/actions/deposit/factory.ts +0 -44
- package/src/chains/evm/actions/deposit/index.ts +0 -17
- package/src/chains/evm/actions/deposit/types.ts +0 -87
- package/src/chains/evm/actions/index.ts +0 -67
- package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
- package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
- package/src/chains/evm/actions/redeem/config/index.ts +0 -8
- package/src/chains/evm/actions/redeem/config/types.ts +0 -39
- package/src/chains/evm/actions/redeem/factory.ts +0 -43
- package/src/chains/evm/actions/redeem/index.ts +0 -17
- package/src/chains/evm/actions/redeem/types.ts +0 -93
- package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
- package/src/chains/evm/actions/stake/config/evm.ts +0 -89
- package/src/chains/evm/actions/stake/config/index.ts +0 -8
- package/src/chains/evm/actions/stake/config/types.ts +0 -89
- package/src/chains/evm/actions/stake/factory.ts +0 -52
- package/src/chains/evm/actions/stake/index.ts +0 -30
- package/src/chains/evm/actions/stake/types.ts +0 -104
- package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
- package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
- package/src/chains/evm/actions/unstake/config/index.ts +0 -13
- package/src/chains/evm/actions/unstake/config/types.ts +0 -37
- package/src/chains/evm/actions/unstake/factory.ts +0 -44
- package/src/chains/evm/actions/unstake/index.ts +0 -22
- package/src/chains/evm/actions/unstake/types.ts +0 -87
- package/src/chains/evm/index.ts +0 -16
- package/src/chains/evm/shared/feeAuth.ts +0 -198
- package/src/chains/evm/shared/index.ts +0 -7
- package/src/chains/solana/SolanaActions.ts +0 -85
- package/src/chains/solana/actions/index.ts +0 -7
- package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
- package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
- package/src/chains/solana/actions/unstake/config/index.ts +0 -8
- package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
- package/src/chains/solana/actions/unstake/config/types.ts +0 -35
- package/src/chains/solana/actions/unstake/factory.ts +0 -34
- package/src/chains/solana/actions/unstake/index.ts +0 -14
- package/src/chains/solana/actions/unstake/types.ts +0 -58
- package/src/chains/solana/index.ts +0 -8
- package/src/chains/starknet/StarknetActions.ts +0 -85
- package/src/chains/starknet/actions/index.ts +0 -7
- package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
- package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
- package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
- package/src/chains/starknet/actions/unstake/factory.ts +0 -32
- package/src/chains/starknet/actions/unstake/index.ts +0 -14
- package/src/chains/starknet/actions/unstake/types.ts +0 -57
- package/src/chains/starknet/index.ts +0 -8
- package/src/chains/sui/SuiActions.ts +0 -82
- package/src/chains/sui/actions/index.ts +0 -7
- package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
- package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
- package/src/chains/sui/actions/unstake/config/index.ts +0 -8
- package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
- package/src/chains/sui/actions/unstake/config/types.ts +0 -27
- package/src/chains/sui/actions/unstake/factory.ts +0 -32
- package/src/chains/sui/actions/unstake/index.ts +0 -14
- package/src/chains/sui/actions/unstake/types.ts +0 -57
- package/src/chains/sui/index.ts +0 -8
- package/src/client/ApiNamespace.ts +0 -302
- package/src/client/AssetNamespace.ts +0 -112
- package/src/client/LombardSDK.ts +0 -212
- package/src/client/PartnerConfiguration.ts +0 -50
- package/src/client/createConfig.ts +0 -90
- package/src/client/createLombardSDK.ts +0 -130
- package/src/clients/evm-signer-adapter.ts +0 -313
- package/src/clients/public-client.ts +0 -49
- package/src/clients/rpc-url-config.ts +0 -64
- package/src/clients/wallet-client.ts +0 -34
- package/src/common/api-config.ts +0 -48
- package/src/common/blockchain-identifier.ts +0 -217
- package/src/common/chains.stories.tsx +0 -68
- package/src/common/chains.ts +0 -449
- package/src/common/constants.ts +0 -1
- package/src/common/contract-info.ts +0 -9
- package/src/common/feature-config.ts +0 -79
- package/src/common/fee-requirements.ts +0 -34
- package/src/common/parameters.ts +0 -89
- package/src/config/defaults.ts +0 -49
- package/src/config/index.ts +0 -12
- package/src/config/providers.ts +0 -81
- package/src/config/types.ts +0 -216
- package/src/config/validation.ts +0 -69
- package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
- package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
- package/src/contract-functions/approveLBTC/index.ts +0 -1
- package/src/contract-functions/approveToken/approveToken.ts +0 -126
- package/src/contract-functions/approveToken/index.ts +0 -1
- package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
- package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
- package/src/contract-functions/claimLBTC/index.ts +0 -1
- package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
- package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
- package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
- package/src/contract-functions/deposit/depositToken.ts +0 -214
- package/src/contract-functions/deposit/index.ts +0 -1
- package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
- package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
- package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
- package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
- package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
- package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
- package/src/contract-functions/getPermitNonce/index.ts +0 -1
- package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
- package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
- package/src/contract-functions/getShareValue/index.ts +0 -1
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
- package/src/contract-functions/getSharesByAddress/index.ts +0 -4
- package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
- package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
- package/src/contract-functions/index.ts +0 -21
- package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
- package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
- package/src/contract-functions/signNetworkFee/index.ts +0 -1
- package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
- package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
- package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
- package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
- package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
- package/src/contract-functions/signStakeAndBake/index.ts +0 -2
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
- package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
- package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
- package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
- package/src/contract-functions/unstakeLBTC/index.ts +0 -1
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
- package/src/contracts/abis/index.ts +0 -29
- package/src/contracts/index.ts +0 -63
- package/src/contracts/types.ts +0 -143
- package/src/contracts/utils.ts +0 -288
- package/src/core/assets/catalog.ts +0 -343
- package/src/core/assets/index.ts +0 -40
- package/src/core/assets/types.ts +0 -142
- package/src/core/assets/utils.ts +0 -287
- package/src/core/chains/catalog.ts +0 -396
- package/src/core/chains/index.ts +0 -39
- package/src/core/chains/types.ts +0 -193
- package/src/core/chains/utils.ts +0 -245
- package/src/core/index.ts +0 -72
- package/src/core/types.ts +0 -126
- package/src/debug-api/btc-script-to-address.ts +0 -20
- package/src/debug-api/btc-tx-info.ts +0 -32
- package/src/debug-api/evm-by-btc-address.ts +0 -26
- package/src/debug-api/index.ts +0 -3
- package/src/defi/README.md +0 -517
- package/src/defi/defi-registry.stories.tsx +0 -527
- package/src/defi/defi-registry.ts +0 -295
- package/src/defi/index.ts +0 -17
- package/src/index.ts +0 -336
- package/src/metrics/get-additional-rewards.ts +0 -69
- package/src/metrics/get-lbtc-apy.ts +0 -74
- package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
- package/src/metrics/get-lbtc-stats.ts +0 -59
- package/src/metrics/get-positions-summary.stories.tsx +0 -58
- package/src/metrics/get-positions-summary.ts +0 -132
- package/src/modules/CapabilityRegistry.ts +0 -125
- package/src/modules/apiModule.ts +0 -51
- package/src/modules/btcModule.ts +0 -43
- package/src/modules/evmModule.ts +0 -48
- package/src/modules/index.ts +0 -60
- package/src/referrals/ReferralsClient.ts +0 -34
- package/src/referrals/index.ts +0 -1
- package/src/services/ApiService.ts +0 -152
- package/src/services/BtcService.ts +0 -29
- package/src/services/EvmService.ts +0 -127
- package/src/services/index.ts +0 -43
- package/src/shared/__tests__/errors.test.ts +0 -185
- package/src/shared/__tests__/events.test.ts +0 -120
- package/src/shared/__tests__/types.test.ts +0 -155
- package/src/shared/actions/BaseAction.ts +0 -497
- package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
- package/src/shared/actions/index.ts +0 -9
- package/src/shared/constants/statusConstants.ts +0 -108
- package/src/shared/context/ContextBuilder.ts +0 -149
- package/src/shared/context/index.ts +0 -8
- package/src/shared/context/types.ts +0 -156
- package/src/shared/deposits/depositStatus.ts +0 -402
- package/src/shared/deposits/index.ts +0 -29
- package/src/shared/errors.ts +0 -405
- package/src/shared/events.ts +0 -260
- package/src/shared/evm/switchChain.ts +0 -109
- package/src/shared/index.ts +0 -54
- package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
- package/src/shared/monitoring/createEventEmitter.ts +0 -160
- package/src/shared/monitoring/createProgressEmitter.ts +0 -46
- package/src/shared/monitoring/depositMonitor.ts +0 -211
- package/src/shared/monitoring/index.ts +0 -25
- package/src/shared/validation/index.ts +0 -411
- package/src/stories/arg-types.ts +0 -38
- package/src/stories/components/Badge.tsx +0 -27
- package/src/stories/components/Button/Button.css +0 -10
- package/src/stories/components/Button/Button.tsx +0 -52
- package/src/stories/components/Button/index.ts +0 -1
- package/src/stories/components/Card.tsx +0 -18
- package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
- package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
- package/src/stories/components/CodeBlock/index.ts +0 -1
- package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
- package/src/stories/components/ConnectButton/index.ts +0 -1
- package/src/stories/components/JsonPreview.tsx +0 -84
- package/src/stories/components/Spinner/Spinner.tsx +0 -27
- package/src/stories/components/Spinner/index.ts +0 -1
- package/src/stories/components/StatsCard.tsx +0 -30
- package/src/stories/components/StatusIndicator.tsx +0 -37
- package/src/stories/components/TreeNode.tsx +0 -47
- package/src/stories/components/decorators/function-type.tsx +0 -63
- package/src/stories/components/decorators/index.ts +0 -2
- package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
- package/src/stories/components/error-block.tsx +0 -21
- package/src/stories/components/index.ts +0 -11
- package/src/stories/constants.ts +0 -3
- package/src/stories/hooks/useConnection.ts +0 -63
- package/src/stories/hooks/useQuery.ts +0 -57
- package/src/tokens/__tests__/token-addresses.test.ts +0 -551
- package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
- package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
- package/src/tokens/abi/BTCK_ABI.ts +0 -1092
- package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
- package/src/tokens/abi/LBTC_ABI.json +0 -1761
- package/src/tokens/abi/LBTC_ABI.ts +0 -1761
- package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
- package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
- package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
- package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
- package/src/tokens/denomination-utils.stories.tsx +0 -176
- package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
- package/src/tokens/getTokenByAddress.stories.tsx +0 -172
- package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
- package/src/tokens/getTokenInfo.stories.tsx +0 -133
- package/src/tokens/isUpgradedContract.stories.tsx +0 -124
- package/src/tokens/lbtc-addresses.ts +0 -18
- package/src/tokens/token-addresses.ts +0 -477
- package/src/tokens/tokens.ts +0 -249
- package/src/tokens/types.ts +0 -80
- package/src/utils/array.ts +0 -31
- package/src/utils/block.ts +0 -23
- package/src/utils/chain.ts +0 -152
- package/src/utils/consoleLogger.ts +0 -140
- package/src/utils/ensureNotSanctionedAddress.ts +0 -11
- package/src/utils/env.ts +0 -20
- package/src/utils/err.ts +0 -83
- package/src/utils/evmAccount.ts +0 -47
- package/src/utils/gas.ts +0 -36
- package/src/utils/hex.ts +0 -9
- package/src/utils/http.ts +0 -224
- package/src/utils/numbers.ts +0 -37
- package/src/utils/pagination.ts +0 -70
- package/src/utils/satoshi.ts +0 -41
- package/src/utils/time.ts +0 -12
- package/src/utils/transaction-executor.ts +0 -299
- package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
- package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
- package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
- package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
- package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
- package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
- package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
- package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
- package/src/vaults/abi/index.ts +0 -4
- package/src/vaults/index.ts +0 -46
- package/src/vaults/lib/config.ts +0 -184
- package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
- package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
- package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
- package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
- package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
- package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
- package/src/vaults/lib/ops/deposit.ts +0 -152
- package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
- package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
- package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
- package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
- package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
- package/src/vaults/lib/ops/withdraw.ts +0 -225
- package/src/version.ts +0 -56
- package/src/vite-env.d.ts +0 -1
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC Deposit Action Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests the BTC → BTC.b deposit flow including:
|
|
5
|
-
* - Parameter validation
|
|
6
|
-
* - Status transitions
|
|
7
|
-
* - Authorization flow
|
|
8
|
-
* - Deposit address generation
|
|
9
|
-
*
|
|
10
|
-
* @module __tests__/unit/btc/BtcDeposit.test.ts
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
14
|
-
|
|
15
|
-
import type { BtcDepositParams, BtcDepositPrepareParams } from '../../../chains/btc/actions/deposit/types';
|
|
16
|
-
import { AssetId, Chain } from '../../../core';
|
|
17
|
-
import { LombardError, ValidationErrorCode } from '../../../shared/errors';
|
|
18
|
-
|
|
19
|
-
describe('BtcDeposit Interface', () => {
|
|
20
|
-
describe('BtcDepositParams', () => {
|
|
21
|
-
it('should accept valid deposit parameters', () => {
|
|
22
|
-
const params: BtcDepositParams = {
|
|
23
|
-
assetOut: AssetId.BTCb,
|
|
24
|
-
destChain: Chain.AVALANCHE,
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
expect(params.assetOut).toBe(AssetId.BTCb);
|
|
28
|
-
expect(params.destChain).toBe(Chain.AVALANCHE);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('should require BTCb as output asset', () => {
|
|
32
|
-
const validParams: BtcDepositParams = {
|
|
33
|
-
assetOut: AssetId.BTCb,
|
|
34
|
-
destChain: Chain.AVALANCHE,
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// BTCb is correct for deposit
|
|
38
|
-
expect(validParams.assetOut).toBe(AssetId.BTCb);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('should support optional source chain', () => {
|
|
42
|
-
const params: BtcDepositParams = {
|
|
43
|
-
assetOut: AssetId.BTCb,
|
|
44
|
-
destChain: Chain.AVALANCHE,
|
|
45
|
-
sourceChain: Chain.BITCOIN_MAINNET,
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
expect(params.sourceChain).toBe(Chain.BITCOIN_MAINNET);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('should support Avalanche chains for BTC.b', () => {
|
|
52
|
-
const mainnetParams: BtcDepositParams = {
|
|
53
|
-
assetOut: AssetId.BTCb,
|
|
54
|
-
destChain: Chain.AVALANCHE,
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const testnetParams: BtcDepositParams = {
|
|
58
|
-
assetOut: AssetId.BTCb,
|
|
59
|
-
destChain: Chain.AVALANCHE_FUJI,
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
expect(mainnetParams.destChain).toBe(Chain.AVALANCHE);
|
|
63
|
-
expect(testnetParams.destChain).toBe(Chain.AVALANCHE_FUJI);
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
describe('BtcDepositPrepareParams', () => {
|
|
68
|
-
it('should accept valid prepare parameters', () => {
|
|
69
|
-
const params: BtcDepositPrepareParams = {
|
|
70
|
-
amount: '0.1',
|
|
71
|
-
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
expect(params.amount).toBe('0.1');
|
|
75
|
-
expect(params.recipient).toBeDefined();
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it('should support optional referral code', () => {
|
|
79
|
-
const params: BtcDepositPrepareParams = {
|
|
80
|
-
amount: '0.1',
|
|
81
|
-
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
|
|
82
|
-
referralCode: 'REF123',
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
expect(params.referralCode).toBe('REF123');
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
describe('Status Transitions', () => {
|
|
90
|
-
it('should define all required status values for deposit', () => {
|
|
91
|
-
const statuses = [
|
|
92
|
-
'idle',
|
|
93
|
-
'needs_fee_authorization',
|
|
94
|
-
'needs_address_confirmation',
|
|
95
|
-
'ready',
|
|
96
|
-
'address_ready',
|
|
97
|
-
];
|
|
98
|
-
|
|
99
|
-
statuses.forEach(status => {
|
|
100
|
-
expect(typeof status).toBe('string');
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
it('should define correct status flow', () => {
|
|
105
|
-
const statusFlow = {
|
|
106
|
-
'idle -> prepare': 'needs_fee_authorization or needs_address_confirmation',
|
|
107
|
-
'needs_fee_authorization -> authorize': 'ready',
|
|
108
|
-
'needs_address_confirmation -> authorize': 'ready',
|
|
109
|
-
'ready -> generateDepositAddress': 'address_ready',
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
expect(Object.keys(statusFlow).length).toBeGreaterThan(0);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
describe('Method Signatures', () => {
|
|
117
|
-
it('should define prepare method', () => {
|
|
118
|
-
type PrepareMethod = (params: BtcDepositPrepareParams) => Promise<void>;
|
|
119
|
-
const testType: PrepareMethod = async () => {};
|
|
120
|
-
expect(testType).toBeDefined();
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
it('should define authorize method', () => {
|
|
124
|
-
type AuthorizeMethod = () => Promise<void>;
|
|
125
|
-
const testType: AuthorizeMethod = async () => {};
|
|
126
|
-
expect(testType).toBeDefined();
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
it('should define generateDepositAddress method', () => {
|
|
130
|
-
type GenerateAddressMethod = () => Promise<string>;
|
|
131
|
-
const testType: GenerateAddressMethod = async () =>
|
|
132
|
-
'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh';
|
|
133
|
-
expect(testType).toBeDefined();
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('should define execute method', () => {
|
|
137
|
-
type ExecuteMethod = () => Promise<{ depositAddress: string }>;
|
|
138
|
-
const testType: ExecuteMethod = async () => ({
|
|
139
|
-
depositAddress: 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
|
|
140
|
-
});
|
|
141
|
-
expect(testType).toBeDefined();
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should define monitorDeposit method', () => {
|
|
145
|
-
type MonitorMethod = () => Promise<unknown>;
|
|
146
|
-
const testType: MonitorMethod = async () => undefined;
|
|
147
|
-
expect(testType).toBeDefined();
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
describe('Event Emissions', () => {
|
|
152
|
-
it('should emit progress events', () => {
|
|
153
|
-
const handler = vi.fn((progress: { status: string; steps?: Record<string, string> }) => {
|
|
154
|
-
expect(progress.status).toBeDefined();
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
handler({
|
|
158
|
-
status: 'address_ready',
|
|
159
|
-
steps: { created: 'complete', verifying: 'idle', issuing: 'idle' },
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
it('should emit status-change events', () => {
|
|
166
|
-
const handler = vi.fn((status: string) => {
|
|
167
|
-
expect(typeof status).toBe('string');
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
handler('ready');
|
|
171
|
-
expect(handler).toHaveBeenCalledWith('ready');
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
describe('Public Properties', () => {
|
|
176
|
-
it('should expose status property', () => {
|
|
177
|
-
type HasStatus = { readonly status: string };
|
|
178
|
-
const obj: HasStatus = { status: 'idle' };
|
|
179
|
-
expect(obj.status).toBe('idle');
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
it('should expose amount property after prepare', () => {
|
|
183
|
-
type HasAmount = { readonly amount?: string };
|
|
184
|
-
const obj: HasAmount = { amount: '0.1' };
|
|
185
|
-
expect(obj.amount).toBe('0.1');
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
it('should expose recipient property after prepare', () => {
|
|
189
|
-
type HasRecipient = { readonly recipient?: string };
|
|
190
|
-
const obj: HasRecipient = {
|
|
191
|
-
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
|
|
192
|
-
};
|
|
193
|
-
expect(obj.recipient).toBeDefined();
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
it('should expose depositAddress property after generate', () => {
|
|
197
|
-
type HasDepositAddress = { readonly depositAddress?: string };
|
|
198
|
-
const obj: HasDepositAddress = {
|
|
199
|
-
depositAddress: 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
|
|
200
|
-
};
|
|
201
|
-
expect(obj.depositAddress).toBeDefined();
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
describe('Error Handling', () => {
|
|
206
|
-
it('should reject LBTC as output asset', () => {
|
|
207
|
-
const error = new LombardError(
|
|
208
|
-
ValidationErrorCode.INVALID_ASSET,
|
|
209
|
-
`Asset LBTC is not supported for BTC deposits. Use BtcStake instead.`,
|
|
210
|
-
);
|
|
211
|
-
|
|
212
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_ASSET);
|
|
213
|
-
expect(error.message).toContain('BtcStake');
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
it('should reject unsupported destination chains', () => {
|
|
217
|
-
const error = new LombardError(
|
|
218
|
-
ValidationErrorCode.INVALID_CHAIN,
|
|
219
|
-
`Destination chain ethereum is not supported for BTC deposits.`,
|
|
220
|
-
);
|
|
221
|
-
|
|
222
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_CHAIN);
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
it('should handle user rejection during authorization', () => {
|
|
226
|
-
const error = LombardError.userRejected('deposit authorization');
|
|
227
|
-
expect(error.message).toContain('deposit authorization');
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
describe('Fee Authorization', () => {
|
|
232
|
-
it('should require fee auth for Ethereum mainnet only', () => {
|
|
233
|
-
// Fee authorization is only required for Ethereum mainnet
|
|
234
|
-
const feeAuthChains = [Chain.ETHEREUM];
|
|
235
|
-
const noFeeAuthChains = [Chain.AVALANCHE, Chain.AVALANCHE_FUJI];
|
|
236
|
-
|
|
237
|
-
expect(feeAuthChains).toContain(Chain.ETHEREUM);
|
|
238
|
-
noFeeAuthChains.forEach(chain => {
|
|
239
|
-
expect(feeAuthChains).not.toContain(chain);
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
it('should use address confirmation for non-Ethereum chains', () => {
|
|
244
|
-
// Avalanche uses address confirmation, not fee auth
|
|
245
|
-
const addressConfirmationChains = [Chain.AVALANCHE, Chain.AVALANCHE_FUJI];
|
|
246
|
-
|
|
247
|
-
addressConfirmationChains.forEach(chain => {
|
|
248
|
-
expect(chain).not.toBe(Chain.ETHEREUM);
|
|
249
|
-
});
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC Deposit And Deploy Action Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests the BTC → BTC.b → DeFi vault flow including:
|
|
5
|
-
* - Parameter validation
|
|
6
|
-
* - Protocol/vault selection
|
|
7
|
-
* - Silo vault integration
|
|
8
|
-
*
|
|
9
|
-
* @module __tests__/unit/btc/BtcDepositAndDeploy.test.ts
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
13
|
-
|
|
14
|
-
import { AssetId, Chain } from '../../../core';
|
|
15
|
-
import { LombardError, ValidationErrorCode } from '../../../shared/errors';
|
|
16
|
-
|
|
17
|
-
describe('BtcDepositAndDeploy Interface', () => {
|
|
18
|
-
describe('BtcDepositAndDeployParams', () => {
|
|
19
|
-
it('should require BTCb as output asset', () => {
|
|
20
|
-
const params = {
|
|
21
|
-
assetOut: AssetId.BTCb,
|
|
22
|
-
destChain: Chain.AVALANCHE,
|
|
23
|
-
protocol: 'silo',
|
|
24
|
-
vault: 'BTCb',
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
expect(params.assetOut).toBe(AssetId.BTCb);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
it('should require Silo protocol for BTC.b', () => {
|
|
31
|
-
const params = {
|
|
32
|
-
assetOut: AssetId.BTCb,
|
|
33
|
-
destChain: Chain.AVALANCHE,
|
|
34
|
-
protocol: 'silo',
|
|
35
|
-
vault: 'BTCb',
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
expect(params.protocol).toBe('silo');
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('should support Avalanche chains only', () => {
|
|
42
|
-
const validChains = [Chain.AVALANCHE, Chain.AVALANCHE_FUJI];
|
|
43
|
-
|
|
44
|
-
// Chains are CAIP-2 format (e.g., eip155:43114)
|
|
45
|
-
validChains.forEach(chain => {
|
|
46
|
-
expect(chain).toBeDefined();
|
|
47
|
-
expect(typeof chain).toBe('string');
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// Verify they are the correct Avalanche chain IDs
|
|
51
|
-
expect(validChains).toContain(Chain.AVALANCHE);
|
|
52
|
-
expect(validChains).toContain(Chain.AVALANCHE_FUJI);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
describe('BtcDepositAndDeployPrepareParams', () => {
|
|
57
|
-
it('should accept valid prepare parameters', () => {
|
|
58
|
-
const params = {
|
|
59
|
-
amount: '0.1',
|
|
60
|
-
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
expect(params.amount).toBe('0.1');
|
|
64
|
-
expect(params.recipient).toBeDefined();
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
describe('Status Transitions', () => {
|
|
69
|
-
it('should define all required status values', () => {
|
|
70
|
-
const statuses = [
|
|
71
|
-
'idle',
|
|
72
|
-
'needs_address_confirmation',
|
|
73
|
-
'ready',
|
|
74
|
-
'address_ready',
|
|
75
|
-
];
|
|
76
|
-
|
|
77
|
-
statuses.forEach(status => {
|
|
78
|
-
expect(typeof status).toBe('string');
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
describe('Method Signatures', () => {
|
|
84
|
-
it('should define prepare method', () => {
|
|
85
|
-
type PrepareMethod = (params: { amount: string; recipient: string }) => Promise<void>;
|
|
86
|
-
const testType: PrepareMethod = async () => {};
|
|
87
|
-
expect(testType).toBeDefined();
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
it('should define authorize method', () => {
|
|
91
|
-
type AuthorizeMethod = () => Promise<void>;
|
|
92
|
-
const testType: AuthorizeMethod = async () => {};
|
|
93
|
-
expect(testType).toBeDefined();
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it('should define generateDepositAddress method', () => {
|
|
97
|
-
type GenerateAddressMethod = () => Promise<string>;
|
|
98
|
-
const testType: GenerateAddressMethod = async () => 'bc1qexample';
|
|
99
|
-
expect(testType).toBeDefined();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
describe('Error Handling', () => {
|
|
104
|
-
it('should reject LBTC as output asset', () => {
|
|
105
|
-
const error = new LombardError(
|
|
106
|
-
ValidationErrorCode.INVALID_ASSET,
|
|
107
|
-
`Asset LBTC is not supported for deposit and deploy. Use BtcStakeAndDeploy instead.`,
|
|
108
|
-
);
|
|
109
|
-
|
|
110
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_ASSET);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it('should reject non-Avalanche chains', () => {
|
|
114
|
-
const error = new LombardError(
|
|
115
|
-
ValidationErrorCode.INVALID_CHAIN,
|
|
116
|
-
`Destination chain ethereum is not supported for deposit and deploy.`,
|
|
117
|
-
);
|
|
118
|
-
|
|
119
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_CHAIN);
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
it('should reject non-Silo protocols for BTC.b', () => {
|
|
123
|
-
const error = new LombardError(
|
|
124
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
125
|
-
`Protocol euler is not supported for BTC.b deposit and deploy. Only Silo is supported.`,
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_PARAMETER);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
describe('Silo Integration', () => {
|
|
133
|
-
it('should integrate with Silo vault on Avalanche', () => {
|
|
134
|
-
const siloConfig = {
|
|
135
|
-
protocol: 'silo',
|
|
136
|
-
chains: [Chain.AVALANCHE, Chain.AVALANCHE_FUJI],
|
|
137
|
-
assetIn: AssetId.BTCb,
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
expect(siloConfig.protocol).toBe('silo');
|
|
141
|
-
expect(siloConfig.assetIn).toBe(AssetId.BTCb);
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
describe('Event Emissions', () => {
|
|
146
|
-
it('should emit progress events', () => {
|
|
147
|
-
const handler = vi.fn((progress: { status: string; steps?: Record<string, string> }) => {
|
|
148
|
-
expect(progress.status).toBeDefined();
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
handler({
|
|
152
|
-
status: 'address_ready',
|
|
153
|
-
steps: { created: 'complete', deploying: 'idle' },
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
describe('Public Properties', () => {
|
|
161
|
-
it('should expose protocol property', () => {
|
|
162
|
-
type HasProtocol = { readonly protocol: string };
|
|
163
|
-
const obj: HasProtocol = { protocol: 'silo' };
|
|
164
|
-
expect(obj.protocol).toBe('silo');
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
it('should expose vault property', () => {
|
|
168
|
-
type HasVault = { readonly vault: string };
|
|
169
|
-
const obj: HasVault = { vault: 'BTCb' };
|
|
170
|
-
expect(obj.vault).toBe('BTCb');
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC Deposit Config Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests validation functions for BTC Deposit action.
|
|
5
|
-
*
|
|
6
|
-
* Note: Supported chains are derived dynamically from ASSET_CATALOG.
|
|
7
|
-
* These tests verify the validation logic works correctly.
|
|
8
|
-
*
|
|
9
|
-
* @module __tests__/unit/btc/BtcDepositConfig.test.ts
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { describe, expect,it } from 'vitest';
|
|
13
|
-
|
|
14
|
-
import {
|
|
15
|
-
depositConfig,
|
|
16
|
-
isAssetOutSupported,
|
|
17
|
-
isDestChainSupported,
|
|
18
|
-
isRouteAvailable,
|
|
19
|
-
} from '../../../chains/btc/actions/deposit/config';
|
|
20
|
-
import { AssetId,Chain, Env } from '../../../core';
|
|
21
|
-
|
|
22
|
-
describe('BTC Deposit Config', () => {
|
|
23
|
-
describe('isAssetOutSupported', () => {
|
|
24
|
-
it('should support BTCb for BTC Deposit', () => {
|
|
25
|
-
expect(isAssetOutSupported(AssetId.BTCb)).toBe(true);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should NOT support LBTC for BTC Deposit (use BtcStake instead)', () => {
|
|
29
|
-
// LBTC is produced by BtcStake, not BtcDeposit
|
|
30
|
-
expect(isAssetOutSupported(AssetId.LBTC)).toBe(false);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('should NOT support BTC as output (it is the input asset)', () => {
|
|
34
|
-
expect(isAssetOutSupported(AssetId.BTC)).toBe(false);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('should have BTCb as the only supported output asset', () => {
|
|
38
|
-
expect(depositConfig.supportedAssetsOut).toEqual([AssetId.BTCb]);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
describe('isDestChainSupported', () => {
|
|
43
|
-
it('should support Avalanche for BTC.b deposit', () => {
|
|
44
|
-
expect(isDestChainSupported(Chain.AVALANCHE)).toBe(true);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it('should support Avalanche Fuji (testnet) for BTC.b deposit', () => {
|
|
48
|
-
expect(isDestChainSupported(Chain.AVALANCHE_FUJI)).toBe(true);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('should have at least one supported destination chain', () => {
|
|
52
|
-
expect(depositConfig.destChains.length).toBeGreaterThan(0);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('should derive chains from asset catalog', () => {
|
|
56
|
-
// Verify that destChains array exists and is derived from BTCb deployments
|
|
57
|
-
expect(Array.isArray(depositConfig.destChains)).toBe(true);
|
|
58
|
-
// All chains should be EVM chains (strings)
|
|
59
|
-
depositConfig.destChains.forEach(chain => {
|
|
60
|
-
expect(typeof chain).toBe('string');
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
describe('isRouteAvailable', () => {
|
|
66
|
-
it('should allow Bitcoin Mainnet source in production', () => {
|
|
67
|
-
expect(isRouteAvailable(Chain.BITCOIN_MAINNET, Env.prod)).toBe(true);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it('should allow Bitcoin Signet source in testnet', () => {
|
|
71
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.testnet)).toBe(true);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('should allow Bitcoin Signet source in stage', () => {
|
|
75
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.stage)).toBe(true);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it('should NOT allow Bitcoin Signet in production', () => {
|
|
79
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.prod)).toBe(false);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it('should NOT allow Bitcoin Mainnet in testnet', () => {
|
|
83
|
-
expect(isRouteAvailable(Chain.BITCOIN_MAINNET, Env.testnet)).toBe(false);
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
it('should allow undefined source chain (uses env default)', () => {
|
|
87
|
-
expect(isRouteAvailable(undefined, Env.testnet)).toBe(true);
|
|
88
|
-
expect(isRouteAvailable(undefined, Env.prod)).toBe(true);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
describe('Validation logic', () => {
|
|
93
|
-
it('should have consistent asset validation', () => {
|
|
94
|
-
// Only BTCb should be valid
|
|
95
|
-
const validAssets = [AssetId.BTCb];
|
|
96
|
-
const invalidAssets = [AssetId.LBTC, AssetId.BTC];
|
|
97
|
-
|
|
98
|
-
validAssets.forEach(asset => {
|
|
99
|
-
expect(isAssetOutSupported(asset)).toBe(true);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
invalidAssets.forEach(asset => {
|
|
103
|
-
expect(isAssetOutSupported(asset)).toBe(false);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
it('should validate that Avalanche chains support BTC.b deposit', () => {
|
|
108
|
-
// Primary chains for BTC.b
|
|
109
|
-
expect(isDestChainSupported(Chain.AVALANCHE)).toBe(true);
|
|
110
|
-
expect(isDestChainSupported(Chain.AVALANCHE_FUJI)).toBe(true);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it('should enforce environment-specific routes', () => {
|
|
114
|
-
// Production: Bitcoin Mainnet only
|
|
115
|
-
expect(isRouteAvailable(Chain.BITCOIN_MAINNET, Env.prod)).toBe(true);
|
|
116
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.prod)).toBe(false);
|
|
117
|
-
|
|
118
|
-
// Testnet/Stage/Dev: Bitcoin Signet only
|
|
119
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.testnet)).toBe(true);
|
|
120
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.stage)).toBe(true);
|
|
121
|
-
expect(isRouteAvailable(Chain.BITCOIN_SIGNET, Env.dev)).toBe(true);
|
|
122
|
-
expect(isRouteAvailable(Chain.BITCOIN_MAINNET, Env.testnet)).toBe(false);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
describe('Fee authorization requirements', () => {
|
|
127
|
-
it('should require fee authorization for Ethereum mainnet', () => {
|
|
128
|
-
const feeAuth = depositConfig.getFeeAuthConfig(Chain.ETHEREUM);
|
|
129
|
-
expect(feeAuth).not.toBeNull();
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
it('should NOT require fee authorization for Avalanche', () => {
|
|
133
|
-
const feeAuth = depositConfig.getFeeAuthConfig(Chain.AVALANCHE);
|
|
134
|
-
expect(feeAuth).toBeNull();
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
it('should NOT require fee authorization for Avalanche Fuji', () => {
|
|
138
|
-
const feeAuth = depositConfig.getFeeAuthConfig(Chain.AVALANCHE_FUJI);
|
|
139
|
-
expect(feeAuth).toBeNull();
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
|