@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,293 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Asset Catalog Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests to verify the ASSET_CATALOG has correct chain configurations.
|
|
5
|
-
*
|
|
6
|
-
* Related Issues:
|
|
7
|
-
* - APP-1971: Fuji should be available for LBTC staking
|
|
8
|
-
* - APP-1975: Holesky should NOT be available (deprecated)
|
|
9
|
-
* - APP-1980: Berachain Bartio should NOT be available (not implemented)
|
|
10
|
-
* - APP-1983: Base Sepolia should be available for BTC Stake
|
|
11
|
-
*
|
|
12
|
-
* @module __tests__/unit/catalog/AssetCatalog.test.ts
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
16
|
-
import { describe, expect, it } from 'vitest';
|
|
17
|
-
|
|
18
|
-
import { featureConfig } from '../../../common/feature-config';
|
|
19
|
-
import { ASSET_CATALOG, AssetId, Chain, getAssetChains } from '../../../core';
|
|
20
|
-
|
|
21
|
-
describe('Asset Catalog', () => {
|
|
22
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
23
|
-
// LBTC Deployments
|
|
24
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
25
|
-
|
|
26
|
-
describe('LBTC deployments', () => {
|
|
27
|
-
describe('Testnet environment', () => {
|
|
28
|
-
it('should include Avalanche Fuji (APP-1971)', () => {
|
|
29
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
30
|
-
expect(chains).toContain(Chain.AVALANCHE_FUJI);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('should include Base Sepolia (APP-1983)', () => {
|
|
34
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
35
|
-
expect(chains).toContain(Chain.BASE_SEPOLIA);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should include Sepolia', () => {
|
|
39
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
40
|
-
expect(chains).toContain(Chain.SEPOLIA);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('should NOT include Holesky (APP-1975 - deprecated)', () => {
|
|
44
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
45
|
-
// Holesky was removed from testnet
|
|
46
|
-
expect(chains).not.toContain(Chain.HOLESKY);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should NOT include Berachain Bartio (APP-1980 - not implemented)', () => {
|
|
50
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
51
|
-
expect(chains).not.toContain(Chain.BERACHAIN_BARTIO);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('should NOT include Sonic (APP-2009)', () => {
|
|
55
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
56
|
-
expect(chains).not.toContain(Chain.SONIC);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
describe('Stage environment', () => {
|
|
61
|
-
it('should NOT include Avalanche Fuji (stage uses testnet only)', () => {
|
|
62
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
63
|
-
expect(chains).not.toContain(Chain.AVALANCHE_FUJI);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it('should include Base Sepolia', () => {
|
|
67
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
68
|
-
expect(chains).toContain(Chain.BASE_SEPOLIA);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it('should NOT include Holesky', () => {
|
|
72
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
73
|
-
expect(chains).not.toContain(Chain.HOLESKY);
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it('should NOT include Berachain Bartio', () => {
|
|
77
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
78
|
-
expect(chains).not.toContain(Chain.BERACHAIN_BARTIO);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it('should NOT include Sonic (APP-2009)', () => {
|
|
82
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
83
|
-
expect(chains).not.toContain(Chain.SONIC);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
describe('Production environment', () => {
|
|
88
|
-
it('should include Ethereum mainnet', () => {
|
|
89
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
90
|
-
expect(chains).toContain(Chain.ETHEREUM);
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
it('should include Base', () => {
|
|
94
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
95
|
-
expect(chains).toContain(Chain.BASE);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
it('should include Stable (APP-1970)', () => {
|
|
99
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
100
|
-
expect(chains).toContain(Chain.STABLE);
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
it('should include Monad when enabled (APP-1970)', () => {
|
|
104
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
105
|
-
if (featureConfig.isMonadEnabled) {
|
|
106
|
-
expect(chains).toContain(Chain.MONAD);
|
|
107
|
-
} else {
|
|
108
|
-
expect(chains).not.toContain(Chain.MONAD);
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('should NOT include any testnet chains', () => {
|
|
113
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
114
|
-
expect(chains).not.toContain(Chain.SEPOLIA);
|
|
115
|
-
expect(chains).not.toContain(Chain.HOLESKY);
|
|
116
|
-
expect(chains).not.toContain(Chain.BASE_SEPOLIA);
|
|
117
|
-
expect(chains).not.toContain(Chain.AVALANCHE_FUJI);
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
123
|
-
// BTC.b Deployments
|
|
124
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
125
|
-
|
|
126
|
-
describe('BTC.b deployments', () => {
|
|
127
|
-
it('should include Avalanche mainnet in production', () => {
|
|
128
|
-
const chains = getAssetChains(AssetId.BTCb, Env.prod);
|
|
129
|
-
expect(chains).toContain(Chain.AVALANCHE);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
it('should include Stable in production (APP-1970)', () => {
|
|
133
|
-
const chains = getAssetChains(AssetId.BTCb, Env.prod);
|
|
134
|
-
expect(chains).toContain(Chain.STABLE);
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
it('should include Monad when enabled (APP-1970)', () => {
|
|
138
|
-
const chains = getAssetChains(AssetId.BTCb, Env.prod);
|
|
139
|
-
if (featureConfig.isMonadEnabled) {
|
|
140
|
-
expect(chains).toContain(Chain.MONAD);
|
|
141
|
-
} else {
|
|
142
|
-
expect(chains).not.toContain(Chain.MONAD);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
it('should include Avalanche Fuji in testnet', () => {
|
|
147
|
-
const chains = getAssetChains(AssetId.BTCb, Env.testnet);
|
|
148
|
-
expect(chains).toContain(Chain.AVALANCHE_FUJI);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
153
|
-
// Catalog Structure
|
|
154
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
155
|
-
|
|
156
|
-
describe('Catalog structure', () => {
|
|
157
|
-
it('should have a version string', () => {
|
|
158
|
-
expect(ASSET_CATALOG.version).toBeDefined();
|
|
159
|
-
expect(typeof ASSET_CATALOG.version).toBe('string');
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
it('should have LBTC asset defined', () => {
|
|
163
|
-
expect(ASSET_CATALOG.assets[AssetId.LBTC]).toBeDefined();
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
it('should have BTCb asset defined', () => {
|
|
167
|
-
expect(ASSET_CATALOG.assets[AssetId.BTCb]).toBeDefined();
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
it('should have correct decimals for LBTC', () => {
|
|
171
|
-
expect(ASSET_CATALOG.assets[AssetId.LBTC]?.decimals).toBe(8);
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
it('should have correct decimals for BTC.b', () => {
|
|
175
|
-
expect(ASSET_CATALOG.assets[AssetId.BTCb]?.decimals).toBe(8);
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
180
|
-
// Regression Prevention
|
|
181
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
182
|
-
|
|
183
|
-
describe('Regression prevention', () => {
|
|
184
|
-
it('testnet LBTC should have at least 3 chains', () => {
|
|
185
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
186
|
-
expect(chains.length).toBeGreaterThanOrEqual(3);
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
it('stage LBTC should have at least 3 chains', () => {
|
|
190
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
191
|
-
expect(chains.length).toBeGreaterThanOrEqual(3);
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
it('production LBTC should have multiple chains', () => {
|
|
195
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
196
|
-
expect(chains.length).toBeGreaterThan(1);
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
201
|
-
// APP-1991: Unstaking chains should include Solana, Sui, and Fuji
|
|
202
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
203
|
-
|
|
204
|
-
describe('Unstaking chains availability (APP-1991)', () => {
|
|
205
|
-
describe('Testnet environment', () => {
|
|
206
|
-
it('should include Solana Testnet for LBTC unstaking', () => {
|
|
207
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
208
|
-
expect(chains).toContain(Chain.SOLANA_TESTNET);
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
it('should include Sui Testnet for LBTC unstaking', () => {
|
|
212
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
213
|
-
expect(chains).toContain(Chain.SUI_TESTNET);
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
it('should include Avalanche Fuji for LBTC unstaking', () => {
|
|
217
|
-
const chains = getAssetChains(AssetId.LBTC, Env.testnet);
|
|
218
|
-
expect(chains).toContain(Chain.AVALANCHE_FUJI);
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
describe('Stage environment', () => {
|
|
223
|
-
it('should include Solana Devnet for LBTC unstaking', () => {
|
|
224
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
225
|
-
expect(chains).toContain(Chain.SOLANA_DEVNET);
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
it('should include Sui Testnet for LBTC unstaking', () => {
|
|
229
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
230
|
-
expect(chains).toContain(Chain.SUI_TESTNET);
|
|
231
|
-
});
|
|
232
|
-
|
|
233
|
-
it('should NOT include Avalanche Fuji for LBTC unstaking', () => {
|
|
234
|
-
const chains = getAssetChains(AssetId.LBTC, Env.stage);
|
|
235
|
-
expect(chains).not.toContain(Chain.AVALANCHE_FUJI);
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
|
|
239
|
-
describe('Production environment', () => {
|
|
240
|
-
it('should include Solana Mainnet for LBTC unstaking', () => {
|
|
241
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
242
|
-
expect(chains).toContain(Chain.SOLANA_MAINNET);
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
it('should include Sui Mainnet for LBTC unstaking', () => {
|
|
246
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
247
|
-
expect(chains).toContain(Chain.SUI_MAINNET);
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
});
|
|
251
|
-
|
|
252
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
253
|
-
// APP-1970: LBTC prod should include Monad and Stable networks
|
|
254
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
255
|
-
|
|
256
|
-
describe('Monad and Stable networks (APP-1970)', () => {
|
|
257
|
-
it('should include Monad in LBTC production', () => {
|
|
258
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
259
|
-
expect(chains).toContain(Chain.MONAD);
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
it('should include Stable in LBTC production', () => {
|
|
263
|
-
const chains = getAssetChains(AssetId.LBTC, Env.prod);
|
|
264
|
-
expect(chains).toContain(Chain.STABLE);
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
it('should include Monad in BTC.b production', () => {
|
|
268
|
-
const chains = getAssetChains(AssetId.BTCb, Env.prod);
|
|
269
|
-
expect(chains).toContain(Chain.MONAD);
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
it('should include Stable in BTC.b production', () => {
|
|
273
|
-
const chains = getAssetChains(AssetId.BTCb, Env.prod);
|
|
274
|
-
expect(chains).toContain(Chain.STABLE);
|
|
275
|
-
});
|
|
276
|
-
});
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
describe('Asset Catalog Resolution', () => {
|
|
280
|
-
it.skip('should fallback to bundled catalog on API failure', async () => {
|
|
281
|
-
// Implementation pending: Asset Catalog is not yet implemented in SDK.
|
|
282
|
-
// This test serves as a placeholder for when loadAssetCatalog is available.
|
|
283
|
-
/*
|
|
284
|
-
vi.spyOn(global, 'fetch').mockRejectedValue(new Error('API Down'));
|
|
285
|
-
|
|
286
|
-
const catalog = await loadAssetCatalog({ env: Env.prod });
|
|
287
|
-
|
|
288
|
-
expect(catalog).toBeDefined();
|
|
289
|
-
expect(catalog.version).toBe(BUNDLED_CATALOG.version);
|
|
290
|
-
*/
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { describe, expect,it } from 'vitest';
|
|
2
|
-
|
|
3
|
-
import { getChainConfig } from '../../../chains/btc/actions/stake/config';
|
|
4
|
-
import { Chain } from '../../../core';
|
|
5
|
-
|
|
6
|
-
describe('ChainConfig', () => {
|
|
7
|
-
it('should return EVM config for EVM chain type', () => {
|
|
8
|
-
const config = getChainConfig('evm');
|
|
9
|
-
expect(config).toBeDefined();
|
|
10
|
-
expect(config?.chainType).toBe('evm');
|
|
11
|
-
expect(config?.destChains).toContain(Chain.ETHEREUM);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it('should return Solana config for Solana chain type', () => {
|
|
15
|
-
const config = getChainConfig('solana');
|
|
16
|
-
expect(config).toBeDefined();
|
|
17
|
-
expect(config?.chainType).toBe('solana');
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('should return undefined for invalid chain type', () => {
|
|
21
|
-
// @ts-expect-error Testing invalid input
|
|
22
|
-
const config = getChainConfig('invalid');
|
|
23
|
-
expect(config).toBeUndefined();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
describe('Address Validation', () => {
|
|
27
|
-
it('should validate EVM addresses', () => {
|
|
28
|
-
const config = getChainConfig('evm');
|
|
29
|
-
const validAddr = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0';
|
|
30
|
-
const invalidAddr = 'invalid';
|
|
31
|
-
|
|
32
|
-
expect(() => config?.addressSchema.parse(validAddr)).not.toThrow();
|
|
33
|
-
expect(() => config?.addressSchema.parse(invalidAddr)).toThrow();
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('should validate Solana addresses', () => {
|
|
37
|
-
const config = getChainConfig('solana');
|
|
38
|
-
// A valid base58 address
|
|
39
|
-
const validAddr = '5U3bH5b6XtG99aV6ce2ifLkLXLkHeHuAy46sDjr9Gf3C';
|
|
40
|
-
const invalidAddr = 'invalid';
|
|
41
|
-
|
|
42
|
-
expect(() => config?.addressSchema.parse(validAddr)).not.toThrow();
|
|
43
|
-
expect(() => config?.addressSchema.parse(invalidAddr)).toThrow();
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
2
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
-
|
|
4
|
-
import { getChainConfig } from '../../../chains/btc/actions/stake/config';
|
|
5
|
-
import { ChainId } from '../../../common/chains';
|
|
6
|
-
import { Chain } from '../../../core';
|
|
7
|
-
import { EvmService } from '../../../services/EvmService';
|
|
8
|
-
import { BtcCoreContext } from '../../../shared/context';
|
|
9
|
-
|
|
10
|
-
// Mock context
|
|
11
|
-
const mockEvm = {
|
|
12
|
-
signNetworkFee: vi.fn().mockResolvedValue({
|
|
13
|
-
signature: '0xsig',
|
|
14
|
-
typedData: {},
|
|
15
|
-
}),
|
|
16
|
-
getMintingFee: vi.fn().mockResolvedValue('0.00001992'),
|
|
17
|
-
} as unknown as EvmService;
|
|
18
|
-
|
|
19
|
-
const mockCtx = {
|
|
20
|
-
capabilities: {
|
|
21
|
-
require: (id: string) => {
|
|
22
|
-
if (id === 'evm') return mockEvm;
|
|
23
|
-
throw new Error(`Capability ${id} not found`);
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
api: {
|
|
27
|
-
getFeeSignature: vi.fn().mockResolvedValue({}),
|
|
28
|
-
storeFeeSignature: vi.fn(),
|
|
29
|
-
},
|
|
30
|
-
getProvider: vi.fn().mockResolvedValue({
|
|
31
|
-
request: vi.fn().mockResolvedValue('0x1'), // Mock chainId response
|
|
32
|
-
}),
|
|
33
|
-
// Use prod env to match ChainId.ethereum (LBTC contract exists on mainnet in prod)
|
|
34
|
-
env: Env.prod,
|
|
35
|
-
} as unknown as BtcCoreContext;
|
|
36
|
-
|
|
37
|
-
describe('FeeAuthConfig', () => {
|
|
38
|
-
const evmConfig = getChainConfig('evm');
|
|
39
|
-
|
|
40
|
-
it('should return FeeAuthConfig for Ethereum mainnet', () => {
|
|
41
|
-
const feeAuth = evmConfig?.getFeeAuthConfig(Chain.ETHEREUM);
|
|
42
|
-
|
|
43
|
-
expect(feeAuth).not.toBeNull();
|
|
44
|
-
expect(feeAuth?.getMintingFee).toBeDefined();
|
|
45
|
-
expect(feeAuth?.authorizeFee).toBeDefined();
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it('should return null FeeAuthConfig for non-Ethereum EVM chains', () => {
|
|
49
|
-
const feeAuth = evmConfig?.getFeeAuthConfig(Chain.BASE);
|
|
50
|
-
|
|
51
|
-
expect(feeAuth).toBeNull();
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
describe('authorizeFee', () => {
|
|
55
|
-
it('should convert fee to satoshis before signing', async () => {
|
|
56
|
-
const feeAuth = evmConfig?.getFeeAuthConfig(Chain.ETHEREUM);
|
|
57
|
-
expect(feeAuth).toBeDefined();
|
|
58
|
-
|
|
59
|
-
if (!feeAuth) return;
|
|
60
|
-
|
|
61
|
-
await feeAuth.authorizeFee(mockCtx, {
|
|
62
|
-
chainId: ChainId.ethereum,
|
|
63
|
-
recipient: '0x123',
|
|
64
|
-
fee: '0.00001992', // BTC decimal
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
// Check if signNetworkFee was called with satoshis (1992)
|
|
68
|
-
expect(mockEvm.signNetworkFee).toHaveBeenCalledWith(
|
|
69
|
-
expect.objectContaining({
|
|
70
|
-
fee: '1992', // Converted to satoshis
|
|
71
|
-
}),
|
|
72
|
-
);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LBTC Minting Fee Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests to verify the fee fetching logic works correctly.
|
|
5
|
-
*
|
|
6
|
-
* The minting fee (also called "network fee" or "auto-mint fee") is the amount
|
|
7
|
-
* in satoshis that is deducted from the minted LBTC to compensate Lombard for
|
|
8
|
-
* paying the EVM gas costs during the auto-mint process.
|
|
9
|
-
*
|
|
10
|
-
* Fee Structure:
|
|
11
|
-
* - Non-subsidized chains (Ethereum, Sepolia): Have non-zero fees
|
|
12
|
-
* - Subsidized chains (Base, BSC): Have 0 fees (Lombard absorbs gas costs)
|
|
13
|
-
*
|
|
14
|
-
* The fee is read from the on-chain AssetRouter.maxMintCommission() function.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import { describe, expect, it } from 'vitest';
|
|
18
|
-
|
|
19
|
-
import { Token } from '../../../tokens/token-addresses';
|
|
20
|
-
import { fromSatoshi, toSatoshi } from '../../../utils/satoshi';
|
|
21
|
-
|
|
22
|
-
describe('Minting Fee Logic', () => {
|
|
23
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
24
|
-
// Satoshi Conversion Tests
|
|
25
|
-
// These are the underlying conversion functions used by getMintingFee
|
|
26
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
27
|
-
|
|
28
|
-
describe('fromSatoshi conversion', () => {
|
|
29
|
-
it('should convert 0 satoshis to 0 BTC', () => {
|
|
30
|
-
const btc = fromSatoshi('0');
|
|
31
|
-
expect(btc.toNumber()).toBe(0);
|
|
32
|
-
expect(btc.toString()).toBe('0');
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it('should convert 38 satoshis to 0.00000038 BTC', () => {
|
|
36
|
-
// This is the actual Ethereum mainnet fee
|
|
37
|
-
const btc = fromSatoshi('38');
|
|
38
|
-
expect(btc.toNumber()).toBeCloseTo(0.00000038, 10);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('should convert 1992 satoshis to 0.00001992 BTC', () => {
|
|
42
|
-
// Example fee value
|
|
43
|
-
const btc = fromSatoshi('1992');
|
|
44
|
-
expect(btc.toNumber()).toBeCloseTo(0.00001992, 10);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it('should convert 100000000 satoshis to 1 BTC', () => {
|
|
48
|
-
const btc = fromSatoshi('100000000');
|
|
49
|
-
expect(btc.toNumber()).toBe(1);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
describe('toSatoshi conversion', () => {
|
|
54
|
-
it('should convert 0 BTC to 0 satoshis', () => {
|
|
55
|
-
const sats = toSatoshi('0');
|
|
56
|
-
expect(sats.toNumber()).toBe(0);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it('should convert 0.00000038 BTC to 38 satoshis', () => {
|
|
60
|
-
const sats = toSatoshi('0.00000038');
|
|
61
|
-
expect(sats.toNumber()).toBe(38);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it('should convert 1 BTC to 100000000 satoshis', () => {
|
|
65
|
-
const sats = toSatoshi('1');
|
|
66
|
-
expect(sats.toNumber()).toBe(100000000);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
71
|
-
// Token Support
|
|
72
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
73
|
-
|
|
74
|
-
describe('Supported tokens', () => {
|
|
75
|
-
it('should have LBTC token defined', () => {
|
|
76
|
-
expect(Token.LBTC).toBe('LBTC');
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it('should have BTCb token defined', () => {
|
|
80
|
-
expect(Token.BTCb).toBe('BTC.b');
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
it('should have BTCK token defined', () => {
|
|
84
|
-
expect(Token.BTCK).toBe('BTCK');
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
89
|
-
// Fee Behavior Documentation
|
|
90
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
91
|
-
|
|
92
|
-
describe('Expected fee behavior (documentation)', () => {
|
|
93
|
-
/**
|
|
94
|
-
* The minting fee is the auto-mint commission in satoshis.
|
|
95
|
-
*
|
|
96
|
-
* When a user deposits BTC, Lombard automatically mints LBTC to their address.
|
|
97
|
-
* The fee compensates Lombard for paying the EVM gas costs.
|
|
98
|
-
*
|
|
99
|
-
* Non-subsidized chains (Ethereum, Sepolia): Have fees configured on-chain
|
|
100
|
-
* Subsidized chains (Base, BSC): Lombard absorbs gas costs, fee = 0
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
it('should document fee structure', () => {
|
|
104
|
-
// Ethereum mainnet always has a fee (unsubsidized)
|
|
105
|
-
const ethereumMainnetFee = 36; // satoshis
|
|
106
|
-
expect(ethereumMainnetFee).toBeGreaterThan(0);
|
|
107
|
-
|
|
108
|
-
// Sepolia (stage) has fee configured
|
|
109
|
-
const sepoliaStageFee = 1433; // satoshis
|
|
110
|
-
expect(sepoliaStageFee).toBeGreaterThan(0);
|
|
111
|
-
|
|
112
|
-
// Base is subsidized by design
|
|
113
|
-
const baseFee = 0;
|
|
114
|
-
expect(baseFee).toBe(0);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
it('should document which chains are subsidized vs non-subsidized', () => {
|
|
118
|
-
// Subsidized chains (fee = 0 by design, Lombard pays gas)
|
|
119
|
-
const subsidizedChains = ['Base', 'BSC'];
|
|
120
|
-
|
|
121
|
-
// Non-subsidized chains (fee charged to user in LBTC)
|
|
122
|
-
const nonSubsidizedChains = ['Ethereum Mainnet', 'Sepolia'];
|
|
123
|
-
|
|
124
|
-
expect(subsidizedChains.length).toBeGreaterThan(0);
|
|
125
|
-
expect(nonSubsidizedChains.length).toBeGreaterThan(0);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
});
|