@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,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC DepositAndDeploy Action
|
|
3
|
-
*
|
|
4
|
-
* Exports for BTC → BTC.b → Vault operations.
|
|
5
|
-
*
|
|
6
|
-
* @module chains/btc/actions/depositAndDeploy
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export { BtcDepositAndDeploy } from './BtcDepositAndDeploy';
|
|
10
|
-
export {
|
|
11
|
-
depositAndDeployConfig,
|
|
12
|
-
isAssetOutSupported as isDepositAndDeployAssetOutSupported,
|
|
13
|
-
isDestChainSupported as isDepositAndDeployDestChainSupported,
|
|
14
|
-
isProtocolSupported as isDepositAndDeployProtocolSupported,
|
|
15
|
-
isRouteAvailable as isDepositAndDeployRouteAvailable,
|
|
16
|
-
} from './config';
|
|
17
|
-
export { createBtcDepositAndDeploy } from './factory';
|
|
18
|
-
export {
|
|
19
|
-
BtcActionStatus,
|
|
20
|
-
type BtcDepositAndDeployParams,
|
|
21
|
-
type BtcDepositAndDeployPrepareParams,
|
|
22
|
-
type BtcDepositAndDeployProgress,
|
|
23
|
-
type BtcDepositAndDeploy as IBtcDepositAndDeploy,
|
|
24
|
-
} from './types';
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC DepositAndDeploy Action Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for BTC → BTC.b → Vault operations.
|
|
5
|
-
* This is the deposit equivalent of StakeAndDeploy, producing BTC.b
|
|
6
|
-
* instead of LBTC for protocols that require wrapped BTC (e.g., Silo on Avalanche).
|
|
7
|
-
*
|
|
8
|
-
* @module chains/btc/actions/depositAndDeploy/types
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type {
|
|
12
|
-
AssetId,
|
|
13
|
-
Chain,
|
|
14
|
-
DeployProtocol,
|
|
15
|
-
StepStatus,
|
|
16
|
-
StrategyProgress,
|
|
17
|
-
} from '../../../../core';
|
|
18
|
-
import type { MonitorableAction } from '../../../../shared/actions/BaseAction';
|
|
19
|
-
import { BtcActionStatus } from '../../../../shared/constants/statusConstants';
|
|
20
|
-
import type { MonitorProgress } from '../../../../shared/monitoring';
|
|
21
|
-
|
|
22
|
-
// Re-export for convenience (single export statement avoids duplicate identifier)
|
|
23
|
-
export { BtcActionStatus };
|
|
24
|
-
|
|
25
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
26
|
-
// Parameters
|
|
27
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* BTC DepositAndDeploy parameters
|
|
31
|
-
*/
|
|
32
|
-
export interface BtcDepositAndDeployParams {
|
|
33
|
-
/** Input asset (BTC) */
|
|
34
|
-
assetIn?: AssetId;
|
|
35
|
-
/** Output asset (BTC.b vault shares) */
|
|
36
|
-
assetOut: AssetId;
|
|
37
|
-
/** Source Bitcoin network */
|
|
38
|
-
sourceChain?: typeof Chain.BITCOIN_MAINNET | typeof Chain.BITCOIN_SIGNET;
|
|
39
|
-
/** Destination chain where vault exists (e.g., Avalanche for Silo) */
|
|
40
|
-
destChain: Chain;
|
|
41
|
-
/** Protocol/vault to deploy to (e.g., Silo) */
|
|
42
|
-
protocol: DeployProtocol;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Prepare parameters
|
|
47
|
-
*/
|
|
48
|
-
export interface BtcDepositAndDeployPrepareParams {
|
|
49
|
-
/** Amount of BTC to deposit and deploy (human-readable) */
|
|
50
|
-
amount: string;
|
|
51
|
-
/** Recipient address on destination chain */
|
|
52
|
-
recipient: string;
|
|
53
|
-
/** Optional referral code */
|
|
54
|
-
referralCode?: string;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
58
|
-
// Progress
|
|
59
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* BTC DepositAndDeploy progress
|
|
63
|
-
*/
|
|
64
|
-
export interface BtcDepositAndDeployProgress
|
|
65
|
-
extends StrategyProgress<BtcActionStatus> {
|
|
66
|
-
status: BtcActionStatus;
|
|
67
|
-
steps: {
|
|
68
|
-
created: StepStatus;
|
|
69
|
-
verifying: StepStatus;
|
|
70
|
-
wrapping: StepStatus;
|
|
71
|
-
depositing: StepStatus;
|
|
72
|
-
};
|
|
73
|
-
depositAddress?: string;
|
|
74
|
-
confirmations?: number;
|
|
75
|
-
requiredConfirmations?: number;
|
|
76
|
-
hasEnoughConfirmations?: boolean;
|
|
77
|
-
isWrapped?: boolean;
|
|
78
|
-
isDeposited?: boolean;
|
|
79
|
-
metadata?: Record<string, unknown>;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
83
|
-
// Interface
|
|
84
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* BTC DepositAndDeploy interface
|
|
88
|
-
*/
|
|
89
|
-
export interface BtcDepositAndDeploy extends MonitorableAction {
|
|
90
|
-
readonly status: BtcActionStatus;
|
|
91
|
-
readonly amount?: string;
|
|
92
|
-
readonly recipient?: string;
|
|
93
|
-
readonly depositAddress?: string;
|
|
94
|
-
readonly referralCode?: string;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Prepare the operation
|
|
98
|
-
*/
|
|
99
|
-
prepare(params: BtcDepositAndDeployPrepareParams): Promise<void>;
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Authorize vault deposit via signature
|
|
103
|
-
*/
|
|
104
|
-
authorizeDeposit(): Promise<void>;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Generate BTC deposit address
|
|
108
|
-
*/
|
|
109
|
-
generateDepositAddress(): Promise<string>;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Execute the operation
|
|
113
|
-
*/
|
|
114
|
-
execute(): Promise<{ depositAddress: string; txHash?: string }>;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Monitor deposit progress
|
|
118
|
-
*/
|
|
119
|
-
monitorDeposit?(): Promise<MonitorProgress | undefined>;
|
|
120
|
-
}
|
|
@@ -1,495 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base BTC Action Class
|
|
3
|
-
*
|
|
4
|
-
* Provides common functionality for all BTC actions:
|
|
5
|
-
* - State management (amount, recipient, depositAddress, referralCode)
|
|
6
|
-
* - Ensure methods for validation
|
|
7
|
-
* - Bitcoin network helpers
|
|
8
|
-
* - Deposit monitoring
|
|
9
|
-
* - Bitcoin send operations
|
|
10
|
-
* - Common validation and prepare patterns
|
|
11
|
-
*
|
|
12
|
-
* @module chains/btc/actions/shared/BaseBtcAction
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import { z } from 'zod';
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
ChainId,
|
|
19
|
-
SolanaChain,
|
|
20
|
-
StarknetChainId,
|
|
21
|
-
SuiChain,
|
|
22
|
-
} from '../../../../common/chains';
|
|
23
|
-
import { Chain, StepStatus } from '../../../../core';
|
|
24
|
-
import { BaseAction } from '../../../../shared/actions';
|
|
25
|
-
import type { BtcCoreContext } from '../../../../shared/context';
|
|
26
|
-
import { LombardError, ValidationErrorCode } from '../../../../shared/errors';
|
|
27
|
-
import type {
|
|
28
|
-
MonitorProgress,
|
|
29
|
-
NetworkMode,
|
|
30
|
-
} from '../../../../shared/monitoring';
|
|
31
|
-
import { monitorDeposit } from '../../../../shared/monitoring';
|
|
32
|
-
import type { EventHandler } from '../../../../shared/monitoring/createEventEmitter';
|
|
33
|
-
import {
|
|
34
|
-
btcStakeAmountSchema,
|
|
35
|
-
referralCodeSchema,
|
|
36
|
-
validatePrepareParams as zodValidate,
|
|
37
|
-
} from '../../../../shared/validation';
|
|
38
|
-
import { ensureNotSanctionedAddress } from '../../../../utils/ensureNotSanctionedAddress';
|
|
39
|
-
import { toSatoshi } from '../../../../utils/satoshi';
|
|
40
|
-
|
|
41
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
42
|
-
// Types
|
|
43
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Common authorization state for BTC actions
|
|
47
|
-
*/
|
|
48
|
-
export interface BtcAuthorizationState {
|
|
49
|
-
authorized: boolean;
|
|
50
|
-
signature?: string;
|
|
51
|
-
typedData?: unknown;
|
|
52
|
-
[key: string]: unknown;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Common params that all BTC actions share
|
|
57
|
-
*/
|
|
58
|
-
export interface BaseBtcParams {
|
|
59
|
-
sourceChain?: typeof Chain.BITCOIN_MAINNET | typeof Chain.BITCOIN_SIGNET;
|
|
60
|
-
destChain: Chain;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Common prepare params
|
|
65
|
-
*/
|
|
66
|
-
export interface BasePrepareParams {
|
|
67
|
-
amount: string;
|
|
68
|
-
recipient: string;
|
|
69
|
-
referralCode?: string;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Progress step definitions
|
|
74
|
-
*/
|
|
75
|
-
export type StepDefinition = Record<string, StepStatus>;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Status configuration for template methods
|
|
79
|
-
*/
|
|
80
|
-
export interface StatusConfig<TStatus extends string> {
|
|
81
|
-
idle: TStatus;
|
|
82
|
-
ready: TStatus;
|
|
83
|
-
addressReady: TStatus;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
87
|
-
// Base Class
|
|
88
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Base class for BTC actions
|
|
92
|
-
*
|
|
93
|
-
* Provides template methods for common patterns:
|
|
94
|
-
* - prepare() with validation and resume
|
|
95
|
-
* - generateDepositAddress()
|
|
96
|
-
* - execute()
|
|
97
|
-
* - monitorDeposit()
|
|
98
|
-
*
|
|
99
|
-
* Subclasses implement abstract methods to customize behavior.
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* ```typescript
|
|
103
|
-
* class BtcStake extends BaseBtcAction<StakeEventMap, BtcActionStatus, BtcStakeParams> {
|
|
104
|
-
* protected getAddressSchema() { return evmAddressSchema; }
|
|
105
|
-
* protected getStatusConfig() { return { idle: BtcActionStatus.IDLE, ... }; }
|
|
106
|
-
* protected getInitialSteps() { return { created: StepStatus.IDLE, ... }; }
|
|
107
|
-
* }
|
|
108
|
-
* ```
|
|
109
|
-
*/
|
|
110
|
-
export abstract class BaseBtcAction<
|
|
111
|
-
TEventMap extends Record<string, EventHandler<unknown[]>>,
|
|
112
|
-
TStatus extends string,
|
|
113
|
-
TParams extends BaseBtcParams,
|
|
114
|
-
> extends BaseAction<TEventMap, TStatus> {
|
|
115
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
116
|
-
// Common State
|
|
117
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
118
|
-
|
|
119
|
-
protected _amount?: string;
|
|
120
|
-
protected _recipient?: string;
|
|
121
|
-
protected _depositAddress?: string;
|
|
122
|
-
protected _referralCode?: string;
|
|
123
|
-
protected _chainId?: unknown;
|
|
124
|
-
|
|
125
|
-
constructor(
|
|
126
|
-
protected readonly ctx: BtcCoreContext,
|
|
127
|
-
protected readonly params: TParams,
|
|
128
|
-
initialStatus: TStatus,
|
|
129
|
-
) {
|
|
130
|
-
super(initialStatus);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
134
|
-
// Abstract Methods - Subclasses Must Implement
|
|
135
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
136
|
-
|
|
137
|
-
/** Get the address validation schema for this action */
|
|
138
|
-
protected abstract getAddressSchema(): z.ZodType<string>;
|
|
139
|
-
|
|
140
|
-
/** Get the status configuration for template methods */
|
|
141
|
-
protected abstract getStatusConfig(): StatusConfig<TStatus>;
|
|
142
|
-
|
|
143
|
-
/** Get the initial progress steps for this action */
|
|
144
|
-
protected abstract getInitialSteps(): StepDefinition;
|
|
145
|
-
|
|
146
|
-
/** Check if the action has been authorized */
|
|
147
|
-
protected abstract isAuthorized(): boolean;
|
|
148
|
-
|
|
149
|
-
/** Get the chain ID (after parsing in constructor) */
|
|
150
|
-
protected abstract getChainId():
|
|
151
|
-
| ChainId
|
|
152
|
-
| SuiChain
|
|
153
|
-
| SolanaChain
|
|
154
|
-
| StarknetChainId;
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Get API params for generateDepositAddress
|
|
158
|
-
* Subclasses provide action-specific parameters
|
|
159
|
-
*/
|
|
160
|
-
protected abstract getDepositAddressParams(): {
|
|
161
|
-
address: string;
|
|
162
|
-
chainId: ChainId | SuiChain | SolanaChain | StarknetChainId;
|
|
163
|
-
signature: string;
|
|
164
|
-
token: string;
|
|
165
|
-
eip712Data?: string;
|
|
166
|
-
signatureData?: string;
|
|
167
|
-
pubKey?: string;
|
|
168
|
-
partnerId?: string;
|
|
169
|
-
referrerCode?: string;
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Get the expected destination token (LBTC, BTCb, etc.)
|
|
174
|
-
* Used for resuming from existing deposits before authorization is complete
|
|
175
|
-
*/
|
|
176
|
-
protected abstract getExpectedToken(): string;
|
|
177
|
-
|
|
178
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
179
|
-
// Common Getters
|
|
180
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
181
|
-
|
|
182
|
-
/** Amount of BTC to stake/deposit */
|
|
183
|
-
get amount(): string | undefined {
|
|
184
|
-
return this._amount;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/** Recipient address on destination chain */
|
|
188
|
-
get recipient(): string | undefined {
|
|
189
|
-
return this._recipient;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/** Generated Bitcoin deposit address */
|
|
193
|
-
get depositAddress(): string | undefined {
|
|
194
|
-
return this._depositAddress;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/** Referral code (optional) */
|
|
198
|
-
get referralCode(): string | undefined {
|
|
199
|
-
return this._referralCode;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/** Bitcoin network mode for monitoring */
|
|
203
|
-
protected get bitcoinNetwork(): NetworkMode {
|
|
204
|
-
const source = this.params.sourceChain;
|
|
205
|
-
return source === Chain.BITCOIN_MAINNET ? 'mainnet' : 'testnet';
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
209
|
-
// Common Validation
|
|
210
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Get the prepare schema (amount + recipient + referralCode)
|
|
214
|
-
* Uses abstract getAddressSchema() for chain-specific validation
|
|
215
|
-
*/
|
|
216
|
-
protected get prepareSchema() {
|
|
217
|
-
return z.object({
|
|
218
|
-
amount: btcStakeAmountSchema,
|
|
219
|
-
recipient: this.getAddressSchema(),
|
|
220
|
-
referralCode: referralCodeSchema,
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Validate prepare params using Zod
|
|
226
|
-
* Subclasses can override if they need custom validation
|
|
227
|
-
*/
|
|
228
|
-
protected validatePrepareParams(
|
|
229
|
-
params: BasePrepareParams,
|
|
230
|
-
): BasePrepareParams {
|
|
231
|
-
return zodValidate(this.prepareSchema, params, {
|
|
232
|
-
destChain: this.params.destChain,
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
237
|
-
// Ensure Methods (throw if missing)
|
|
238
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
239
|
-
|
|
240
|
-
protected ensureRecipient(): string {
|
|
241
|
-
if (!this._recipient) {
|
|
242
|
-
throw LombardError.missingParameter('recipient');
|
|
243
|
-
}
|
|
244
|
-
return this._recipient;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
protected ensureAmount(): string {
|
|
248
|
-
if (!this._amount) {
|
|
249
|
-
throw LombardError.missingParameter('amount');
|
|
250
|
-
}
|
|
251
|
-
return this._amount;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
protected ensureDepositAddress(): string {
|
|
255
|
-
if (!this._depositAddress) {
|
|
256
|
-
throw new LombardError(
|
|
257
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
258
|
-
'Deposit address not generated. Call generateDepositAddress() first.',
|
|
259
|
-
);
|
|
260
|
-
}
|
|
261
|
-
return this._depositAddress;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Get error message for missing authorization
|
|
266
|
-
* Subclasses can override to provide specific messages
|
|
267
|
-
*/
|
|
268
|
-
protected getAuthRequiredMessage(): string {
|
|
269
|
-
return 'Authorization required. Complete the authorization step first.';
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
protected ensureAuthorized(): void {
|
|
273
|
-
if (!this.isAuthorized()) {
|
|
274
|
-
throw new LombardError(
|
|
275
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
276
|
-
this.getAuthRequiredMessage(),
|
|
277
|
-
);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
282
|
-
// Common Resume Logic
|
|
283
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Try to resume from an existing deposit address
|
|
287
|
-
*
|
|
288
|
-
* This method only stores the deposit address if found.
|
|
289
|
-
* It does NOT update the status - the caller must do that
|
|
290
|
-
* after performing any additional validation (e.g., fee authorization).
|
|
291
|
-
*
|
|
292
|
-
* @param recipient - The recipient address to check
|
|
293
|
-
* @returns true if a deposit address was found, false otherwise
|
|
294
|
-
*/
|
|
295
|
-
protected async resumeFromExistingDeposit(
|
|
296
|
-
recipient: string,
|
|
297
|
-
): Promise<boolean> {
|
|
298
|
-
try {
|
|
299
|
-
const depositAddress = await this.ctx.api.getDepositAddress({
|
|
300
|
-
address: recipient,
|
|
301
|
-
chainId: this.getChainId(),
|
|
302
|
-
token: this.getExpectedToken(),
|
|
303
|
-
partnerId: this.ctx.partner.getPartnerId(),
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
if (!depositAddress) {
|
|
307
|
-
return false;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
this._depositAddress = depositAddress;
|
|
311
|
-
// NOTE: Status is NOT updated here - caller must set appropriate status
|
|
312
|
-
// after validating fee authorization (which may have expired)
|
|
313
|
-
return true;
|
|
314
|
-
} catch {
|
|
315
|
-
return false;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
320
|
-
// Common Generate Deposit Address
|
|
321
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* Generate a Bitcoin deposit address
|
|
325
|
-
*
|
|
326
|
-
* Template method that:
|
|
327
|
-
* 1. Validates status and authorization
|
|
328
|
-
* 2. Calls API to generate address
|
|
329
|
-
* 3. Updates state and emits progress
|
|
330
|
-
*
|
|
331
|
-
* Subclasses must implement getDepositAddressParams() to provide API params.
|
|
332
|
-
*/
|
|
333
|
-
protected async generateDepositAddressImpl(): Promise<string> {
|
|
334
|
-
const statusConfig = this.getStatusConfig();
|
|
335
|
-
|
|
336
|
-
this.assertStatus(statusConfig.ready, 'generateDepositAddress');
|
|
337
|
-
this.ensureAuthorized();
|
|
338
|
-
|
|
339
|
-
if (this._depositAddress) {
|
|
340
|
-
return this._depositAddress;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
return this.act(async () => {
|
|
344
|
-
const apiParams = this.getDepositAddressParams();
|
|
345
|
-
|
|
346
|
-
const depositAddress =
|
|
347
|
-
await this.ctx.api.generateDepositAddress(apiParams);
|
|
348
|
-
|
|
349
|
-
ensureNotSanctionedAddress(depositAddress);
|
|
350
|
-
this._depositAddress = depositAddress;
|
|
351
|
-
|
|
352
|
-
// Emit progress with address ready
|
|
353
|
-
const steps = this.getInitialSteps();
|
|
354
|
-
const addressReadySteps = Object.fromEntries(
|
|
355
|
-
Object.entries(steps).map(([key], index) => [
|
|
356
|
-
key,
|
|
357
|
-
index === 0 ? StepStatus.COMPLETE : StepStatus.IDLE,
|
|
358
|
-
]),
|
|
359
|
-
);
|
|
360
|
-
|
|
361
|
-
this.emitProgress({
|
|
362
|
-
status: statusConfig.addressReady,
|
|
363
|
-
steps: addressReadySteps,
|
|
364
|
-
metadata: { depositAddress },
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
return depositAddress;
|
|
368
|
-
}, statusConfig.addressReady);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
372
|
-
// Common Execute Pattern
|
|
373
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* Execute the action - generate address and optionally send BTC
|
|
377
|
-
*
|
|
378
|
-
* Template method that:
|
|
379
|
-
* 1. Ensures deposit address exists
|
|
380
|
-
* 2. Tries to send BTC if provider available
|
|
381
|
-
* 3. Returns result
|
|
382
|
-
*/
|
|
383
|
-
protected async executeImpl(): Promise<{
|
|
384
|
-
depositAddress: string;
|
|
385
|
-
txHash?: string;
|
|
386
|
-
}> {
|
|
387
|
-
const statusConfig = this.getStatusConfig();
|
|
388
|
-
|
|
389
|
-
return this.act(async () => {
|
|
390
|
-
this.assertStatus(statusConfig.addressReady, 'execute');
|
|
391
|
-
|
|
392
|
-
if (!this._depositAddress) {
|
|
393
|
-
await this.generateDepositAddressImpl();
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
const depositAddress = this.ensureDepositAddress();
|
|
397
|
-
const txHash = await this.trySendBitcoin(depositAddress);
|
|
398
|
-
|
|
399
|
-
return txHash ? { depositAddress, txHash } : { depositAddress };
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
404
|
-
// Common Progress Emission
|
|
405
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
* Emit initial progress with action-specific steps
|
|
409
|
-
*/
|
|
410
|
-
protected emitInitialProgress(): void {
|
|
411
|
-
this.emitProgress({
|
|
412
|
-
status: this.status,
|
|
413
|
-
steps: this.getInitialSteps(),
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
418
|
-
// Deposit Monitoring
|
|
419
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* Monitor Bitcoin deposit progress
|
|
423
|
-
*/
|
|
424
|
-
async monitorDeposit(): Promise<MonitorProgress | undefined> {
|
|
425
|
-
const depositAddress = this._depositAddress;
|
|
426
|
-
const recipient = this._recipient;
|
|
427
|
-
|
|
428
|
-
if (!depositAddress || !recipient) {
|
|
429
|
-
throw LombardError.missingParameter('depositAddress or recipient');
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
const progress = await monitorDeposit({
|
|
433
|
-
network: this.bitcoinNetwork,
|
|
434
|
-
btcService: this.ctx.btc,
|
|
435
|
-
fetchDeposit: async () => {
|
|
436
|
-
const deposits = await this.ctx.api.getDeposits(recipient);
|
|
437
|
-
const ourDeposit = deposits.find(
|
|
438
|
-
deposit => deposit.depositAddress === depositAddress,
|
|
439
|
-
);
|
|
440
|
-
|
|
441
|
-
if (!ourDeposit) {
|
|
442
|
-
return undefined;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
return {
|
|
446
|
-
blockHeight: ourDeposit.blockHeight,
|
|
447
|
-
isClaimed: ourDeposit.isClaimed,
|
|
448
|
-
};
|
|
449
|
-
},
|
|
450
|
-
onProgress: p => {
|
|
451
|
-
this.emitProgress({
|
|
452
|
-
status: this.status,
|
|
453
|
-
steps: p.steps,
|
|
454
|
-
confirmations: p.confirmations,
|
|
455
|
-
requiredConfirmations: p.requiredConfirmations,
|
|
456
|
-
metadata: { isClaimed: p.isClaimed },
|
|
457
|
-
});
|
|
458
|
-
},
|
|
459
|
-
onComplete: () => {
|
|
460
|
-
this.emitCompleted();
|
|
461
|
-
},
|
|
462
|
-
});
|
|
463
|
-
|
|
464
|
-
return progress;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
468
|
-
// Bitcoin Send (Optional)
|
|
469
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
470
|
-
|
|
471
|
-
protected async trySendBitcoin(
|
|
472
|
-
depositAddress: string,
|
|
473
|
-
): Promise<string | undefined> {
|
|
474
|
-
const amount = this._amount;
|
|
475
|
-
if (!amount) return undefined;
|
|
476
|
-
|
|
477
|
-
try {
|
|
478
|
-
const btcProvider = await this.ctx.getProvider('bitcoin');
|
|
479
|
-
if (!btcProvider) return undefined;
|
|
480
|
-
|
|
481
|
-
const provider = btcProvider as {
|
|
482
|
-
sendBitcoin?: (address: string, amountSats: number) => Promise<string>;
|
|
483
|
-
};
|
|
484
|
-
|
|
485
|
-
if (provider.sendBitcoin) {
|
|
486
|
-
const amountSats = toSatoshi(amount).toNumber();
|
|
487
|
-
return provider.sendBitcoin(depositAddress, amountSats);
|
|
488
|
-
}
|
|
489
|
-
} catch {
|
|
490
|
-
// Fall back to manual send
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
return undefined;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared BTC Action Utilities
|
|
3
|
-
*
|
|
4
|
-
* Common utilities and base classes for BTC actions.
|
|
5
|
-
*
|
|
6
|
-
* @module chains/btc/actions/shared
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export type {
|
|
10
|
-
BaseBtcParams,
|
|
11
|
-
BtcAuthorizationState,
|
|
12
|
-
StatusConfig,
|
|
13
|
-
StepDefinition,
|
|
14
|
-
} from './BaseBtcAction';
|
|
15
|
-
export { BaseBtcAction } from './BaseBtcAction';
|
|
16
|
-
export { assetIdToToken } from './tokenUtils';
|
|
17
|
-
export type {
|
|
18
|
-
ValidatableConfig,
|
|
19
|
-
ValidatableParams,
|
|
20
|
-
ValidationContext,
|
|
21
|
-
} from './validation';
|
|
22
|
-
export {
|
|
23
|
-
isAssetSupported,
|
|
24
|
-
isDestChainSupported,
|
|
25
|
-
isRouteAvailable,
|
|
26
|
-
validateBtcActionParams,
|
|
27
|
-
validateProtocol,
|
|
28
|
-
} from './validation';
|