@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,257 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chain Parsing Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests for parseChainIdentifier function to ensure proper handling of
|
|
5
|
-
* CAIP-2 chain identifiers for all supported chain types.
|
|
6
|
-
*
|
|
7
|
-
* Related Issues:
|
|
8
|
-
* - APP-1976: Solana genesis hash → network name mapping
|
|
9
|
-
* - APP-1977: Sui chain ID validation (full CAIP-2 format)
|
|
10
|
-
* - APP-1978: Starknet network name → hex chain ID mapping
|
|
11
|
-
*
|
|
12
|
-
* @module __tests__/unit/core/chain-parsing.test.ts
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import { describe, expect, it } from 'vitest';
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
ChainId,
|
|
19
|
-
isSolanaChain,
|
|
20
|
-
isStarknetChainId,
|
|
21
|
-
isSuiChain,
|
|
22
|
-
SOLANA_DEVNET_CHAIN,
|
|
23
|
-
SOLANA_MAINNET_CHAIN,
|
|
24
|
-
SOLANA_TESTNET_CHAIN,
|
|
25
|
-
STARKNET_MAINNET_CHAIN,
|
|
26
|
-
STARKNET_SEPOLIA_CHAIN,
|
|
27
|
-
SUI_DEVNET_CHAIN,
|
|
28
|
-
SUI_MAINNET_CHAIN,
|
|
29
|
-
SUI_TESTNET_CHAIN,
|
|
30
|
-
} from '../../../common/chains';
|
|
31
|
-
import {
|
|
32
|
-
Chain,
|
|
33
|
-
parseChainIdentifier,
|
|
34
|
-
} from '../../../core';
|
|
35
|
-
|
|
36
|
-
describe('parseChainIdentifier', () => {
|
|
37
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
38
|
-
// EVM Chain Parsing
|
|
39
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
40
|
-
|
|
41
|
-
describe('EVM chains (eip155:*)', () => {
|
|
42
|
-
it('should parse Ethereum mainnet', () => {
|
|
43
|
-
const result = parseChainIdentifier(Chain.ETHEREUM);
|
|
44
|
-
expect(result).toBe(ChainId.ethereum);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it('should parse Avalanche mainnet', () => {
|
|
48
|
-
const result = parseChainIdentifier(Chain.AVALANCHE);
|
|
49
|
-
expect(result).toBe(ChainId.avalanche);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('should parse Base mainnet', () => {
|
|
53
|
-
const result = parseChainIdentifier(Chain.BASE);
|
|
54
|
-
expect(result).toBe(ChainId.base);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('should parse Sepolia testnet', () => {
|
|
58
|
-
const result = parseChainIdentifier(Chain.SEPOLIA);
|
|
59
|
-
expect(result).toBe(ChainId.sepolia);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('should throw for invalid EVM chain ID', () => {
|
|
63
|
-
expect(() => {
|
|
64
|
-
parseChainIdentifier('eip155:99999999' as Chain);
|
|
65
|
-
}).toThrow('Invalid EVM chain');
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
70
|
-
// Solana Chain Parsing (APP-1976)
|
|
71
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
72
|
-
|
|
73
|
-
describe('Solana chains (solana:*) - APP-1976', () => {
|
|
74
|
-
/**
|
|
75
|
-
* APP-1976 FIX:
|
|
76
|
-
*
|
|
77
|
-
* The original bug was that CAIP-2 Solana chains use genesis hash references
|
|
78
|
-
* (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for mainnet),
|
|
79
|
-
* but the Solana SDK expects network names ('solana:mainnet-beta').
|
|
80
|
-
*
|
|
81
|
-
* The fix maps genesis hash references to their corresponding network names.
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
describe('Legacy format (network names)', () => {
|
|
85
|
-
it('should parse mainnet-beta', () => {
|
|
86
|
-
const result = parseChainIdentifier(SOLANA_MAINNET_CHAIN as unknown as Chain);
|
|
87
|
-
expect(result).toBe(SOLANA_MAINNET_CHAIN);
|
|
88
|
-
expect(isSolanaChain(result)).toBe(true);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('should parse devnet', () => {
|
|
92
|
-
const result = parseChainIdentifier(SOLANA_DEVNET_CHAIN as unknown as Chain);
|
|
93
|
-
expect(result).toBe(SOLANA_DEVNET_CHAIN);
|
|
94
|
-
expect(isSolanaChain(result)).toBe(true);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it('should parse testnet', () => {
|
|
98
|
-
const result = parseChainIdentifier(SOLANA_TESTNET_CHAIN as unknown as Chain);
|
|
99
|
-
expect(result).toBe(SOLANA_TESTNET_CHAIN);
|
|
100
|
-
expect(isSolanaChain(result)).toBe(true);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
describe('CAIP-2 format (genesis hash references)', () => {
|
|
105
|
-
it('should map mainnet genesis hash to mainnet-beta', () => {
|
|
106
|
-
// CAIP-2 mainnet: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
|
|
107
|
-
const result = parseChainIdentifier(
|
|
108
|
-
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' as Chain
|
|
109
|
-
);
|
|
110
|
-
expect(result).toBe(SOLANA_MAINNET_CHAIN);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it('should map devnet genesis hash to devnet', () => {
|
|
114
|
-
// CAIP-2 devnet: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
|
|
115
|
-
const result = parseChainIdentifier(
|
|
116
|
-
'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1' as Chain
|
|
117
|
-
);
|
|
118
|
-
expect(result).toBe(SOLANA_DEVNET_CHAIN);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('should map testnet genesis hash to testnet', () => {
|
|
122
|
-
// CAIP-2 testnet: solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z
|
|
123
|
-
const result = parseChainIdentifier(
|
|
124
|
-
'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z' as Chain
|
|
125
|
-
);
|
|
126
|
-
expect(result).toBe(SOLANA_TESTNET_CHAIN);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
it('should throw for invalid Solana chain reference', () => {
|
|
131
|
-
expect(() => {
|
|
132
|
-
parseChainIdentifier('solana:invalid-reference' as Chain);
|
|
133
|
-
}).toThrow('Invalid Solana chain');
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
138
|
-
// Sui Chain Parsing (APP-1977)
|
|
139
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
140
|
-
|
|
141
|
-
describe('Sui chains (sui:*) - APP-1977', () => {
|
|
142
|
-
/**
|
|
143
|
-
* APP-1977 FIX:
|
|
144
|
-
*
|
|
145
|
-
* The original bug was that isSuiChain was receiving just the network part
|
|
146
|
-
* (e.g., 'testnet') instead of the full chain ID ('sui:testnet').
|
|
147
|
-
*
|
|
148
|
-
* The fix ensures the full CAIP-2 chain ID is passed to isSuiChain.
|
|
149
|
-
*/
|
|
150
|
-
|
|
151
|
-
it('should parse sui:mainnet', () => {
|
|
152
|
-
const result = parseChainIdentifier(SUI_MAINNET_CHAIN as unknown as Chain);
|
|
153
|
-
expect(result).toBe(SUI_MAINNET_CHAIN);
|
|
154
|
-
expect(isSuiChain(result)).toBe(true);
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
it('should parse sui:testnet', () => {
|
|
158
|
-
const result = parseChainIdentifier(SUI_TESTNET_CHAIN as unknown as Chain);
|
|
159
|
-
expect(result).toBe(SUI_TESTNET_CHAIN);
|
|
160
|
-
expect(isSuiChain(result)).toBe(true);
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
it('should parse sui:devnet', () => {
|
|
164
|
-
const result = parseChainIdentifier(SUI_DEVNET_CHAIN as unknown as Chain);
|
|
165
|
-
expect(result).toBe(SUI_DEVNET_CHAIN);
|
|
166
|
-
expect(isSuiChain(result)).toBe(true);
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
it('should throw for invalid Sui chain', () => {
|
|
170
|
-
expect(() => {
|
|
171
|
-
parseChainIdentifier('sui:invalid' as Chain);
|
|
172
|
-
}).toThrow('Invalid Sui chain');
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
describe('isSuiChain validation', () => {
|
|
176
|
-
it('should return true for valid Sui chains', () => {
|
|
177
|
-
expect(isSuiChain(SUI_MAINNET_CHAIN)).toBe(true);
|
|
178
|
-
expect(isSuiChain(SUI_TESTNET_CHAIN)).toBe(true);
|
|
179
|
-
expect(isSuiChain(SUI_DEVNET_CHAIN)).toBe(true);
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
it('should return false for just network name (the original bug)', () => {
|
|
183
|
-
// Before the fix, 'testnet' was passed instead of 'sui:testnet'
|
|
184
|
-
expect(isSuiChain('testnet')).toBe(false);
|
|
185
|
-
expect(isSuiChain('mainnet')).toBe(false);
|
|
186
|
-
expect(isSuiChain('devnet')).toBe(false);
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
192
|
-
// Starknet Chain Parsing (APP-1978)
|
|
193
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
194
|
-
|
|
195
|
-
describe('Starknet chains (starknet:*) - APP-1978', () => {
|
|
196
|
-
/**
|
|
197
|
-
* APP-1978 FIX:
|
|
198
|
-
*
|
|
199
|
-
* The original bug was that CAIP-2 uses human-readable network names
|
|
200
|
-
* (SN_MAIN, SN_SEPOLIA), but Starknet SDK expects hex-encoded chain IDs.
|
|
201
|
-
*
|
|
202
|
-
* The fix maps network names to their corresponding hex chain IDs.
|
|
203
|
-
*/
|
|
204
|
-
|
|
205
|
-
it('should parse mainnet (SN_MAIN) to hex chain ID', () => {
|
|
206
|
-
const result = parseChainIdentifier('starknet:SN_MAIN' as Chain);
|
|
207
|
-
expect(result).toBe(STARKNET_MAINNET_CHAIN);
|
|
208
|
-
expect(result).toBe('0x534e5f4d41494e'); // hex of "SN_MAIN"
|
|
209
|
-
expect(isStarknetChainId(result)).toBe(true);
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
it('should parse sepolia (SN_SEPOLIA) to hex chain ID', () => {
|
|
213
|
-
const result = parseChainIdentifier('starknet:SN_SEPOLIA' as Chain);
|
|
214
|
-
expect(result).toBe(STARKNET_SEPOLIA_CHAIN);
|
|
215
|
-
expect(result).toBe('0x534e5f5345504f4c4941'); // hex of "SN_SEPOLIA"
|
|
216
|
-
expect(isStarknetChainId(result)).toBe(true);
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
it('should throw for invalid Starknet network', () => {
|
|
220
|
-
expect(() => {
|
|
221
|
-
parseChainIdentifier('starknet:invalid' as Chain);
|
|
222
|
-
}).toThrow('Invalid Starknet chain');
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
describe('isStarknetChainId validation', () => {
|
|
226
|
-
it('should return true for valid hex chain IDs', () => {
|
|
227
|
-
expect(isStarknetChainId(STARKNET_MAINNET_CHAIN)).toBe(true);
|
|
228
|
-
expect(isStarknetChainId(STARKNET_SEPOLIA_CHAIN)).toBe(true);
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
it('should return false for network names (the original bug)', () => {
|
|
232
|
-
// Network names need to be converted to hex chain IDs
|
|
233
|
-
expect(isStarknetChainId('SN_MAIN')).toBe(false);
|
|
234
|
-
expect(isStarknetChainId('SN_SEPOLIA')).toBe(false);
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
|
|
239
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
240
|
-
// Error Handling
|
|
241
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
242
|
-
|
|
243
|
-
describe('Error handling', () => {
|
|
244
|
-
it('should throw for unknown chain prefix', () => {
|
|
245
|
-
expect(() => {
|
|
246
|
-
parseChainIdentifier('unknown:12345' as Chain);
|
|
247
|
-
}).toThrow('Invalid chain');
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
it('should throw for malformed chain identifier', () => {
|
|
251
|
-
expect(() => {
|
|
252
|
-
parseChainIdentifier('not-a-valid-chain' as Chain);
|
|
253
|
-
}).toThrow('Invalid chain');
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
});
|
|
257
|
-
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for getAvailableProtocols and getAvailableProtocolsWithMetadata
|
|
3
|
-
*
|
|
4
|
-
* These functions filter DeFi protocols based on environment and asset,
|
|
5
|
-
* using the DEFI_REGISTRY as the source of truth.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
9
|
-
import { describe, expect, it } from 'vitest';
|
|
10
|
-
|
|
11
|
-
import { AssetId } from '../../../core/assets';
|
|
12
|
-
import {
|
|
13
|
-
DefiProtocol,
|
|
14
|
-
getAvailableProtocols,
|
|
15
|
-
getAvailableProtocolsWithMetadata,
|
|
16
|
-
} from '../../../defi/defi-registry';
|
|
17
|
-
|
|
18
|
-
describe('getAvailableProtocols', () => {
|
|
19
|
-
describe('LBTC protocols', () => {
|
|
20
|
-
it('should return Veda for LBTC in prod', () => {
|
|
21
|
-
const protocols = getAvailableProtocols(AssetId.LBTC, Env.prod);
|
|
22
|
-
|
|
23
|
-
expect(protocols).toContain(DefiProtocol.Veda);
|
|
24
|
-
// Silo is only on Avalanche which has no mainnet prod config in DEFI_REGISTRY
|
|
25
|
-
expect(protocols).not.toContain(DefiProtocol.Silo);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should return Veda for LBTC in testnet', () => {
|
|
29
|
-
const protocols = getAvailableProtocols(AssetId.LBTC, Env.testnet);
|
|
30
|
-
|
|
31
|
-
expect(protocols).toContain(DefiProtocol.Veda);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('should return Veda for LBTC in stage', () => {
|
|
35
|
-
const protocols = getAvailableProtocols(AssetId.LBTC, Env.stage);
|
|
36
|
-
|
|
37
|
-
expect(protocols).toContain(DefiProtocol.Veda);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
describe('BTCb protocols', () => {
|
|
42
|
-
it('should NOT return Silo for BTCb in prod (Avalanche mainnet not enabled)', () => {
|
|
43
|
-
const protocols = getAvailableProtocols(AssetId.BTCb, Env.prod);
|
|
44
|
-
|
|
45
|
-
// Silo for BTCb is only configured for Env.testnet in DEFI_REGISTRY
|
|
46
|
-
expect(protocols).not.toContain(DefiProtocol.Silo);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should return Silo for BTCb in testnet (Avalanche Fuji enabled)', () => {
|
|
50
|
-
const protocols = getAvailableProtocols(AssetId.BTCb, Env.testnet);
|
|
51
|
-
|
|
52
|
-
expect(protocols).toContain(DefiProtocol.Silo);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('should NOT return Silo for BTCb in stage (not configured)', () => {
|
|
56
|
-
const protocols = getAvailableProtocols(AssetId.BTCb, Env.stage);
|
|
57
|
-
|
|
58
|
-
// DEFI_REGISTRY only has Silo BTCb config for testnet, not stage
|
|
59
|
-
expect(protocols).not.toContain(DefiProtocol.Silo);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
describe('unsupported assets', () => {
|
|
64
|
-
it('should return empty array for unsupported asset', () => {
|
|
65
|
-
// Using a made-up asset ID that's not in the registry
|
|
66
|
-
const protocols = getAvailableProtocols('unsupported' as AssetId, Env.prod);
|
|
67
|
-
|
|
68
|
-
expect(protocols).toEqual([]);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
describe('getAvailableProtocolsWithMetadata', () => {
|
|
74
|
-
it('should return protocol metadata for LBTC in prod', () => {
|
|
75
|
-
const protocols = getAvailableProtocolsWithMetadata(AssetId.LBTC, Env.prod);
|
|
76
|
-
|
|
77
|
-
expect(protocols.length).toBeGreaterThan(0);
|
|
78
|
-
|
|
79
|
-
const veda = protocols.find(p => p.value === DefiProtocol.Veda);
|
|
80
|
-
expect(veda).toBeDefined();
|
|
81
|
-
expect(veda?.label).toBe('Lombard DeFi Vault');
|
|
82
|
-
expect(veda?.url).toBe('https://lombard.finance');
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
it('should return Silo metadata for BTCb in testnet', () => {
|
|
86
|
-
const protocols = getAvailableProtocolsWithMetadata(AssetId.BTCb, Env.testnet);
|
|
87
|
-
|
|
88
|
-
const silo = protocols.find(p => p.value === DefiProtocol.Silo);
|
|
89
|
-
expect(silo).toBeDefined();
|
|
90
|
-
expect(silo?.label).toBe('Silo Finance Vault');
|
|
91
|
-
expect(silo?.url).toBe('https://silo.finance');
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it('should return empty array when no protocols available', () => {
|
|
95
|
-
// BTCb in prod has no protocols (Silo only on Avalanche, not in prod config)
|
|
96
|
-
const protocols = getAvailableProtocolsWithMetadata(AssetId.BTCb, Env.prod);
|
|
97
|
-
|
|
98
|
-
expect(protocols).toEqual([]);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
2
|
-
import { describe, expect,it } from 'vitest';
|
|
3
|
-
|
|
4
|
-
import { DEFI_REGISTRY, DefiProtocol } from '../../../defi/defi-registry';
|
|
5
|
-
import { Token } from '../../../tokens/token-addresses';
|
|
6
|
-
|
|
7
|
-
describe('DEFI_REGISTRY', () => {
|
|
8
|
-
it('should have Veda protocol with LBTC support', () => {
|
|
9
|
-
expect(DEFI_REGISTRY[DefiProtocol.Veda]).toBeDefined();
|
|
10
|
-
expect(DEFI_REGISTRY[DefiProtocol.Veda][Token.LBTC]).toBeDefined();
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it('should have Silo only on testnet for BTCb', () => {
|
|
14
|
-
// Silo is defined for BTCb
|
|
15
|
-
const siloBtcb = DEFI_REGISTRY[DefiProtocol.Silo][Token.BTCb];
|
|
16
|
-
expect(siloBtcb).toBeDefined();
|
|
17
|
-
|
|
18
|
-
// Check testnet support
|
|
19
|
-
expect(siloBtcb?.[Env.testnet]).toBeDefined();
|
|
20
|
-
|
|
21
|
-
// Check prod support (should be undefined based on current implementation)
|
|
22
|
-
expect(siloBtcb?.[Env.prod]).toBeUndefined();
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Deploy Action Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests the LBTC → DeFi vault deployment flow on EVM chains.
|
|
5
|
-
*
|
|
6
|
-
* @module __tests__/unit/evm/EvmDeploy.test.ts
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
10
|
-
|
|
11
|
-
import { AssetId, Chain } from '../../../core';
|
|
12
|
-
import { LombardError, ValidationErrorCode } from '../../../shared/errors';
|
|
13
|
-
|
|
14
|
-
describe('EvmDeploy Interface', () => {
|
|
15
|
-
describe('EvmDeployParams', () => {
|
|
16
|
-
it('should require LBTC as input asset', () => {
|
|
17
|
-
const params = {
|
|
18
|
-
assetIn: AssetId.LBTC,
|
|
19
|
-
sourceChain: Chain.ETHEREUM,
|
|
20
|
-
protocol: 'veda',
|
|
21
|
-
vault: 'LBTC',
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
expect(params.assetIn).toBe(AssetId.LBTC);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('should require protocol selection', () => {
|
|
28
|
-
const params = {
|
|
29
|
-
assetIn: AssetId.LBTC,
|
|
30
|
-
sourceChain: Chain.ETHEREUM,
|
|
31
|
-
protocol: 'veda',
|
|
32
|
-
vault: 'LBTC',
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
expect(params.protocol).toBe('veda');
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should require vault selection', () => {
|
|
39
|
-
const params = {
|
|
40
|
-
assetIn: AssetId.LBTC,
|
|
41
|
-
sourceChain: Chain.ETHEREUM,
|
|
42
|
-
protocol: 'veda',
|
|
43
|
-
vault: 'LBTC',
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
expect(params.vault).toBe('LBTC');
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should support multiple protocols', () => {
|
|
50
|
-
const protocols = ['corn-silo', 'euler-lbtc', 'aave', 'morpho', 'pendle'];
|
|
51
|
-
|
|
52
|
-
protocols.forEach(protocol => {
|
|
53
|
-
expect(typeof protocol).toBe('string');
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('should support multiple chains', () => {
|
|
58
|
-
const chains = [
|
|
59
|
-
Chain.ETHEREUM,
|
|
60
|
-
Chain.BASE,
|
|
61
|
-
Chain.BSC,
|
|
62
|
-
Chain.SEPOLIA,
|
|
63
|
-
];
|
|
64
|
-
|
|
65
|
-
chains.forEach(chain => {
|
|
66
|
-
expect(typeof chain).toBe('string');
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
describe('EvmDeployPrepareParams', () => {
|
|
72
|
-
it('should accept valid prepare parameters', () => {
|
|
73
|
-
const params = {
|
|
74
|
-
amount: '0.1',
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
expect(params.amount).toBe('0.1');
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
it('should support optional recipient', () => {
|
|
81
|
-
const params = {
|
|
82
|
-
amount: '0.1',
|
|
83
|
-
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
expect(params.recipient).toBeDefined();
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
describe('Status Transitions', () => {
|
|
91
|
-
it('should define all required status values', () => {
|
|
92
|
-
const statuses = [
|
|
93
|
-
'idle',
|
|
94
|
-
'needs-approval',
|
|
95
|
-
'ready',
|
|
96
|
-
'completed',
|
|
97
|
-
];
|
|
98
|
-
|
|
99
|
-
statuses.forEach(status => {
|
|
100
|
-
expect(typeof status).toBe('string');
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
describe('Method Signatures', () => {
|
|
106
|
-
it('should define prepare method', () => {
|
|
107
|
-
type PrepareMethod = (params: { amount: string }) => Promise<void>;
|
|
108
|
-
const testType: PrepareMethod = async () => {};
|
|
109
|
-
expect(testType).toBeDefined();
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('should define approve method', () => {
|
|
113
|
-
type ApproveMethod = () => Promise<void>;
|
|
114
|
-
const testType: ApproveMethod = async () => {};
|
|
115
|
-
expect(testType).toBeDefined();
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it('should define execute method', () => {
|
|
119
|
-
type ExecuteMethod = () => Promise<{ txHash: string }>;
|
|
120
|
-
const testType: ExecuteMethod = async () => ({ txHash: '0x123' });
|
|
121
|
-
expect(testType).toBeDefined();
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
describe('Protocol Integration', () => {
|
|
126
|
-
it('should support DeFi protocols from registry', () => {
|
|
127
|
-
const protocolTypes = ['lending', 'yield', 'liquidity'];
|
|
128
|
-
|
|
129
|
-
protocolTypes.forEach(type => {
|
|
130
|
-
expect(typeof type).toBe('string');
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
it('should validate vault exists for protocol', () => {
|
|
135
|
-
const protocol = 'corn-silo';
|
|
136
|
-
const vault = 'LBTC';
|
|
137
|
-
|
|
138
|
-
expect(protocol).toBeDefined();
|
|
139
|
-
expect(vault).toBeDefined();
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
describe('Token Approval', () => {
|
|
144
|
-
it('should require LBTC approval before deployment', () => {
|
|
145
|
-
const approvalRequired = true;
|
|
146
|
-
expect(approvalRequired).toBe(true);
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
it('should approve to vault contract address', () => {
|
|
150
|
-
const vaultAddress = '0x1234567890abcdef1234567890abcdef12345678';
|
|
151
|
-
expect(vaultAddress).toMatch(/^0x/);
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
describe('Error Handling', () => {
|
|
156
|
-
it('should reject unsupported protocols', () => {
|
|
157
|
-
const error = new LombardError(
|
|
158
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
159
|
-
`Protocol invalid-protocol is not supported.`,
|
|
160
|
-
);
|
|
161
|
-
|
|
162
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_PARAMETER);
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
it('should reject unsupported vaults', () => {
|
|
166
|
-
const error = new LombardError(
|
|
167
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
168
|
-
`Vault invalid-vault is not available for protocol corn-silo.`,
|
|
169
|
-
);
|
|
170
|
-
|
|
171
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_PARAMETER);
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
it('should reject chains without protocol support', () => {
|
|
175
|
-
const error = new LombardError(
|
|
176
|
-
ValidationErrorCode.INVALID_CHAIN,
|
|
177
|
-
`Protocol corn-silo is not available on avalanche.`,
|
|
178
|
-
);
|
|
179
|
-
|
|
180
|
-
expect(error.code).toBe(ValidationErrorCode.INVALID_CHAIN);
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
it('should handle insufficient LBTC balance', () => {
|
|
184
|
-
const error = new LombardError(
|
|
185
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
186
|
-
`Insufficient LBTC balance for deployment.`,
|
|
187
|
-
);
|
|
188
|
-
|
|
189
|
-
expect(error.message).toContain('Insufficient');
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
describe('Event Emissions', () => {
|
|
194
|
-
it('should emit progress events', () => {
|
|
195
|
-
const handler = vi.fn((progress: { status: string; txHash?: string }) => {
|
|
196
|
-
expect(progress.status).toBeDefined();
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
handler({ status: 'completed', txHash: '0x123' });
|
|
200
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
describe('Public Properties', () => {
|
|
205
|
-
it('should expose protocol property', () => {
|
|
206
|
-
type HasProtocol = { readonly protocol: string };
|
|
207
|
-
const obj: HasProtocol = { protocol: 'corn-silo' };
|
|
208
|
-
expect(obj.protocol).toBe('corn-silo');
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
it('should expose vault property', () => {
|
|
212
|
-
type HasVault = { readonly vault: string };
|
|
213
|
-
const obj: HasVault = { vault: 'LBTC' };
|
|
214
|
-
expect(obj.vault).toBe('LBTC');
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
it('should expose status property', () => {
|
|
218
|
-
type HasStatus = { readonly status: string };
|
|
219
|
-
const obj: HasStatus = { status: 'idle' };
|
|
220
|
-
expect(obj.status).toBe('idle');
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
|