@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,221 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Test to verify BTC Deposit status transitions
|
|
3
|
-
*
|
|
4
|
-
* Issue: When resuming with existing deposit address but expired fee auth,
|
|
5
|
-
* status should go directly to NEEDS_FEE_AUTHORIZATION, not ADDRESS_READY first.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
9
|
-
|
|
10
|
-
import { BtcActionStatus } from '../../../chains/btc/actions/deposit/types';
|
|
11
|
-
|
|
12
|
-
describe('BTC Deposit Status Transition Issue', () => {
|
|
13
|
-
describe('Resume with expired fee auth', () => {
|
|
14
|
-
it('should document the expected status flow', () => {
|
|
15
|
-
// Expected flow when resuming with existing deposit but expired fee auth:
|
|
16
|
-
// 1. IDLE (initial)
|
|
17
|
-
// 2. prepare() called
|
|
18
|
-
// 3. resumeFromExistingDeposit() returns true (deposit address exists)
|
|
19
|
-
// 4. restoreFeeSignature() returns null (expired)
|
|
20
|
-
// 5. Status should go directly to NEEDS_FEE_AUTHORIZATION
|
|
21
|
-
//
|
|
22
|
-
// WRONG flow (the bug):
|
|
23
|
-
// 1. IDLE
|
|
24
|
-
// 2. ADDRESS_READY <-- This should NOT happen!
|
|
25
|
-
// 3. NEEDS_FEE_AUTHORIZATION
|
|
26
|
-
|
|
27
|
-
const expectedFlow = [
|
|
28
|
-
BtcActionStatus.IDLE,
|
|
29
|
-
BtcActionStatus.NEEDS_FEE_AUTHORIZATION, // Direct transition, no ADDRESS_READY
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
expect(expectedFlow).not.toContain(BtcActionStatus.ADDRESS_READY);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it('should verify the status transition order when fee auth is expired', async () => {
|
|
36
|
-
// Create a mock context
|
|
37
|
-
const statusChanges: string[] = [];
|
|
38
|
-
|
|
39
|
-
const mockEmitStatusChange = (status: string) => {
|
|
40
|
-
statusChanges.push(status);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
// Simulate the prepare() flow:
|
|
44
|
-
// 1. Check for existing deposit
|
|
45
|
-
const hasExistingDeposit = true; // Simulating found deposit
|
|
46
|
-
|
|
47
|
-
// 2. If exists, check fee auth
|
|
48
|
-
const feeAuthConfig = {
|
|
49
|
-
restoreFeeSignature: async (): Promise<{ hasSignature: boolean } | null> => null, // Expired/missing
|
|
50
|
-
getMintingFee: async () => '0.00001',
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
if (hasExistingDeposit) {
|
|
54
|
-
if (feeAuthConfig) {
|
|
55
|
-
const stored = await feeAuthConfig.restoreFeeSignature();
|
|
56
|
-
|
|
57
|
-
if (!stored?.hasSignature) {
|
|
58
|
-
// This is the correct path - go directly to NEEDS_FEE_AUTHORIZATION
|
|
59
|
-
mockEmitStatusChange(BtcActionStatus.NEEDS_FEE_AUTHORIZATION);
|
|
60
|
-
// Should return here, not continue to ADDRESS_READY
|
|
61
|
-
} else {
|
|
62
|
-
mockEmitStatusChange(BtcActionStatus.ADDRESS_READY);
|
|
63
|
-
}
|
|
64
|
-
} else {
|
|
65
|
-
mockEmitStatusChange(BtcActionStatus.ADDRESS_READY);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Verify: ADDRESS_READY should NOT be in the status changes
|
|
70
|
-
expect(statusChanges).toEqual([BtcActionStatus.NEEDS_FEE_AUTHORIZATION]);
|
|
71
|
-
expect(statusChanges).not.toContain(BtcActionStatus.ADDRESS_READY);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('should verify ADDRESS_READY comes AFTER valid fee auth check', async () => {
|
|
75
|
-
const statusChanges: string[] = [];
|
|
76
|
-
|
|
77
|
-
const mockEmitStatusChange = (status: string) => {
|
|
78
|
-
statusChanges.push(status);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
// Simulate the prepare() flow with VALID fee auth:
|
|
82
|
-
const hasExistingDeposit = true;
|
|
83
|
-
|
|
84
|
-
const feeAuthConfig = {
|
|
85
|
-
restoreFeeSignature: async () => ({
|
|
86
|
-
hasSignature: true, // Valid signature exists
|
|
87
|
-
signature: '0x123',
|
|
88
|
-
typedData: '{}',
|
|
89
|
-
}),
|
|
90
|
-
getMintingFee: async () => '0.00001',
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
if (hasExistingDeposit) {
|
|
94
|
-
if (feeAuthConfig) {
|
|
95
|
-
const stored = await feeAuthConfig.restoreFeeSignature();
|
|
96
|
-
|
|
97
|
-
if (!stored?.hasSignature) {
|
|
98
|
-
mockEmitStatusChange(BtcActionStatus.NEEDS_FEE_AUTHORIZATION);
|
|
99
|
-
} else {
|
|
100
|
-
// Valid fee auth - now ADDRESS_READY is appropriate
|
|
101
|
-
mockEmitStatusChange(BtcActionStatus.ADDRESS_READY);
|
|
102
|
-
}
|
|
103
|
-
} else {
|
|
104
|
-
mockEmitStatusChange(BtcActionStatus.ADDRESS_READY);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Verify: ADDRESS_READY should be the status
|
|
109
|
-
expect(statusChanges).toEqual([BtcActionStatus.ADDRESS_READY]);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
describe('Verify the actual code structure', () => {
|
|
114
|
-
it('should verify no status is set before fee auth check in resume flow', () => {
|
|
115
|
-
// This test documents what the code SHOULD do:
|
|
116
|
-
// In the resume flow (hasExistingDeposit = true):
|
|
117
|
-
// 1. Get fee auth config
|
|
118
|
-
// 2. Call restoreFeeSignature
|
|
119
|
-
// 3. Based on result, set status to EITHER:
|
|
120
|
-
// - NEEDS_FEE_AUTHORIZATION (if fee auth expired/missing)
|
|
121
|
-
// - ADDRESS_READY (if fee auth valid or not required)
|
|
122
|
-
//
|
|
123
|
-
// The key point: no status should be emitted BEFORE the fee auth check completes
|
|
124
|
-
|
|
125
|
-
// This is a documentation test - the actual logic is tested above
|
|
126
|
-
expect(true).toBe(true);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
describe('Debug: trace potential race conditions', () => {
|
|
131
|
-
it('should verify emitInitialProgress does not emit status-change', () => {
|
|
132
|
-
// emitInitialProgress() calls emitProgress() which emits 'progress' event
|
|
133
|
-
// It should NOT emit 'status-change' event
|
|
134
|
-
// The status-change is emitted by updateStatus()
|
|
135
|
-
|
|
136
|
-
// This is to ensure no hidden status emissions
|
|
137
|
-
expect(true).toBe(true);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
it('BUG REPRODUCTION: multiple status updates observed in logs', () => {
|
|
141
|
-
/**
|
|
142
|
-
* From the user's logs, we see:
|
|
143
|
-
*
|
|
144
|
-
* 12:24:51 SDK_EVENT {"eventType":"status-change","data":"address_ready...
|
|
145
|
-
* 12:24:51 STATUS_CHANGE {"status":"address_ready"}
|
|
146
|
-
* 12:24:52 SDK_EVENT {"eventType":"status-change","data":"needs_fee_aut...
|
|
147
|
-
* 12:24:52 STATUS_CHANGE {"status":"needs_fee_authorization"}
|
|
148
|
-
*
|
|
149
|
-
* This suggests:
|
|
150
|
-
* 1. At 12:24:51: status is set to ADDRESS_READY
|
|
151
|
-
* 2. At 12:24:52: status is set to NEEDS_FEE_AUTHORIZATION
|
|
152
|
-
*
|
|
153
|
-
* The 1-second gap between them suggests an async operation is happening
|
|
154
|
-
* between the two status updates.
|
|
155
|
-
*
|
|
156
|
-
* HYPOTHESIS: The restoreFeeSignature call is returning { hasSignature: true }
|
|
157
|
-
* initially (cached/optimistic), then after a full check it determines
|
|
158
|
-
* the signature is actually expired/invalid.
|
|
159
|
-
*
|
|
160
|
-
* OR: There's something in the deposit config that's causing a second check.
|
|
161
|
-
*/
|
|
162
|
-
|
|
163
|
-
// This test documents the observed behavior
|
|
164
|
-
expect(true).toBe(true);
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
describe('Investigate restoreFeeSignature behavior', () => {
|
|
169
|
-
it('should only call restoreFeeSignature once per prepare', async () => {
|
|
170
|
-
let callCount = 0;
|
|
171
|
-
|
|
172
|
-
const feeAuthConfig = {
|
|
173
|
-
restoreFeeSignature: vi.fn(async (): Promise<{ hasSignature: boolean } | null> => {
|
|
174
|
-
callCount++;
|
|
175
|
-
// Simulate: first call returns valid, but it should only be called once
|
|
176
|
-
return null; // Expired
|
|
177
|
-
}),
|
|
178
|
-
getMintingFee: vi.fn(async () => '0.00001'),
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
// Simulate prepare flow
|
|
182
|
-
const hasExistingDeposit = true;
|
|
183
|
-
|
|
184
|
-
if (hasExistingDeposit && feeAuthConfig) {
|
|
185
|
-
const stored = await feeAuthConfig.restoreFeeSignature();
|
|
186
|
-
if (!stored?.hasSignature) {
|
|
187
|
-
// Should go to NEEDS_FEE_AUTHORIZATION
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Verify: only called once
|
|
192
|
-
expect(callCount).toBe(1);
|
|
193
|
-
expect(feeAuthConfig.restoreFeeSignature).toHaveBeenCalledTimes(1);
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
it('should not emit ADDRESS_READY if restoreFeeSignature returns null', async () => {
|
|
197
|
-
const statusChanges: string[] = [];
|
|
198
|
-
|
|
199
|
-
// This simulates what SHOULD happen:
|
|
200
|
-
// If restoreFeeSignature returns null, we should ONLY emit NEEDS_FEE_AUTHORIZATION
|
|
201
|
-
|
|
202
|
-
const feeAuthConfig = {
|
|
203
|
-
restoreFeeSignature: async (): Promise<{ hasSignature: boolean } | null> => null,
|
|
204
|
-
getMintingFee: async () => '0.00001',
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
// The key: we should never reach the ADDRESS_READY line
|
|
208
|
-
const stored = await feeAuthConfig.restoreFeeSignature();
|
|
209
|
-
|
|
210
|
-
if (!stored?.hasSignature) {
|
|
211
|
-
statusChanges.push(BtcActionStatus.NEEDS_FEE_AUTHORIZATION);
|
|
212
|
-
// CRITICAL: return here, don't fall through
|
|
213
|
-
} else {
|
|
214
|
-
statusChanges.push(BtcActionStatus.ADDRESS_READY);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
expect(statusChanges).toEqual([BtcActionStatus.NEEDS_FEE_AUTHORIZATION]);
|
|
218
|
-
expect(statusChanges).not.toContain(BtcActionStatus.ADDRESS_READY);
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
});
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC Stake And Deploy Action Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests the BTC → LBTC → DeFi vault flow including:
|
|
5
|
-
* - Parameter validation
|
|
6
|
-
* - Stake and bake signature handling
|
|
7
|
-
* - Protocol/vault selection
|
|
8
|
-
*
|
|
9
|
-
* @module __tests__/unit/btc/BtcStakeAndDeploy.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('BtcStakeAndDeploy Interface', () => {
|
|
18
|
-
describe('BtcStakeAndDeployParams', () => {
|
|
19
|
-
it('should require LBTC as output asset', () => {
|
|
20
|
-
const params = {
|
|
21
|
-
assetOut: AssetId.LBTC,
|
|
22
|
-
destChain: Chain.ETHEREUM,
|
|
23
|
-
protocol: 'veda',
|
|
24
|
-
vault: 'LBTC',
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
expect(params.assetOut).toBe(AssetId.LBTC);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
it('should require protocol selection', () => {
|
|
31
|
-
const params = {
|
|
32
|
-
assetOut: AssetId.LBTC,
|
|
33
|
-
destChain: Chain.ETHEREUM,
|
|
34
|
-
protocol: 'veda',
|
|
35
|
-
vault: 'LBTC',
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
expect(params.protocol).toBe('veda');
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('should require vault selection', () => {
|
|
42
|
-
const params = {
|
|
43
|
-
assetOut: AssetId.LBTC,
|
|
44
|
-
destChain: Chain.ETHEREUM,
|
|
45
|
-
protocol: 'veda',
|
|
46
|
-
vault: 'LBTC',
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
expect(params.vault).toBe('LBTC');
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('should support different protocols', () => {
|
|
53
|
-
const protocols = ['corn-silo', 'euler-lbtc', 'aave'];
|
|
54
|
-
|
|
55
|
-
protocols.forEach(protocol => {
|
|
56
|
-
expect(typeof protocol).toBe('string');
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
describe('BtcStakeAndDeployPrepareParams', () => {
|
|
62
|
-
it('should accept valid prepare parameters', () => {
|
|
63
|
-
const params = {
|
|
64
|
-
amount: '0.1',
|
|
65
|
-
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
expect(params.amount).toBe('0.1');
|
|
69
|
-
expect(params.recipient).toBeDefined();
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
describe('Status Transitions', () => {
|
|
74
|
-
it('should define all required status values', () => {
|
|
75
|
-
const statuses = [
|
|
76
|
-
'idle',
|
|
77
|
-
'needs_stake_and_bake_signature',
|
|
78
|
-
'ready',
|
|
79
|
-
'address_ready',
|
|
80
|
-
];
|
|
81
|
-
|
|
82
|
-
statuses.forEach(status => {
|
|
83
|
-
expect(typeof status).toBe('string');
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
describe('Method Signatures', () => {
|
|
89
|
-
it('should define prepare method', () => {
|
|
90
|
-
type PrepareMethod = (params: { amount: string; recipient: string }) => Promise<void>;
|
|
91
|
-
const testType: PrepareMethod = async () => {};
|
|
92
|
-
expect(testType).toBeDefined();
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
it('should define signStakeAndBake method', () => {
|
|
96
|
-
type SignMethod = () => Promise<void>;
|
|
97
|
-
const testType: SignMethod = async () => {};
|
|
98
|
-
expect(testType).toBeDefined();
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
it('should define generateDepositAddress method', () => {
|
|
102
|
-
type GenerateAddressMethod = () => Promise<string>;
|
|
103
|
-
const testType: GenerateAddressMethod = async () => 'bc1qexample';
|
|
104
|
-
expect(testType).toBeDefined();
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
describe('Stake And Bake Signature', () => {
|
|
109
|
-
it('should require EIP-712 signature for vault deployment', () => {
|
|
110
|
-
// The signature authorizes:
|
|
111
|
-
// 1. Minting LBTC to user's address
|
|
112
|
-
// 2. Deploying LBTC to specified vault
|
|
113
|
-
const signatureComponents = [
|
|
114
|
-
'recipient address',
|
|
115
|
-
'deposit amount',
|
|
116
|
-
'vault address',
|
|
117
|
-
'protocol',
|
|
118
|
-
];
|
|
119
|
-
|
|
120
|
-
expect(signatureComponents.length).toBe(4);
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
it('should handle existing signature resume (Bug #7)', () => {
|
|
124
|
-
// If user already has a stake-and-bake signature, should resume
|
|
125
|
-
const existingSignature = {
|
|
126
|
-
signature: '0xexistingsig',
|
|
127
|
-
expirationDate: '2025-01-01',
|
|
128
|
-
depositAmount: '0.1',
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
expect(existingSignature.signature).toBeDefined();
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
describe('Error Handling', () => {
|
|
136
|
-
it('should reject BTCb as output asset', () => {
|
|
137
|
-
const error = new LombardError(
|
|
138
|
-
ValidationErrorCode.INVALID_ASSET,
|
|
139
|
-
`Asset BTCb is not supported for stake and deploy. Use BtcDepositAndDeploy instead.`,
|
|
140
|
-
);
|
|
141
|
-
|
|
142
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_ASSET);
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
it('should reject unsupported protocols', () => {
|
|
146
|
-
const error = new LombardError(
|
|
147
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
148
|
-
`Protocol invalid-protocol is not supported.`,
|
|
149
|
-
);
|
|
150
|
-
|
|
151
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_PARAMETER);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
it('should handle signature already exists error (Bug #7)', () => {
|
|
155
|
-
const errorMessage = 'stake and bake signature already exists';
|
|
156
|
-
|
|
157
|
-
const isExistingSignatureError = (message: string): boolean => {
|
|
158
|
-
return message.toLowerCase().includes('signature already exists');
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
expect(isExistingSignatureError(errorMessage)).toBe(true);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
describe('Event Emissions', () => {
|
|
166
|
-
it('should emit progress events', () => {
|
|
167
|
-
const handler = vi.fn((progress: { status: string; steps?: Record<string, string> }) => {
|
|
168
|
-
expect(progress.status).toBeDefined();
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
handler({
|
|
172
|
-
status: 'address_ready',
|
|
173
|
-
steps: { created: 'complete', deploying: 'idle' },
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
describe('Public Properties', () => {
|
|
181
|
-
it('should expose protocol property', () => {
|
|
182
|
-
type HasProtocol = { readonly protocol: string };
|
|
183
|
-
const obj: HasProtocol = { protocol: 'corn-silo' };
|
|
184
|
-
expect(obj.protocol).toBe('corn-silo');
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
it('should expose vault property', () => {
|
|
188
|
-
type HasVault = { readonly vault: string };
|
|
189
|
-
const obj: HasVault = { vault: 'LBTC' };
|
|
190
|
-
expect(obj.vault).toBe('LBTC');
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
|