@lombard.finance/sdk 4.0.0 → 4.1.0
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 +6 -0
- package/dist/common/feature-config.d.ts.map +1 -1
- package/dist/index2.cjs +6 -6
- package/dist/index2.js +762 -754
- 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,292 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for BaseAction abstract class
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
6
|
-
|
|
7
|
-
import type { StrategyProgress } from '../../../core/types';
|
|
8
|
-
import { ErrorCode, LombardError } from '../../errors';
|
|
9
|
-
import { DepositEvent, type DepositEventMap } from '../../events';
|
|
10
|
-
import { BaseAction } from '../BaseAction';
|
|
11
|
-
|
|
12
|
-
// Concrete implementation for testing
|
|
13
|
-
class TestAction extends BaseAction<DepositEventMap, string> {
|
|
14
|
-
constructor() {
|
|
15
|
-
super('idle');
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Expose protected methods for testing
|
|
19
|
-
public testEmitProgress(progress: StrategyProgress<string>): void {
|
|
20
|
-
this.emitProgress(progress);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public testUpdateStatus(status: string): void {
|
|
24
|
-
this.updateStatus(status);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public testEmitCompleted(): void {
|
|
28
|
-
this.updateStatus('completed');
|
|
29
|
-
this.emitCompleted();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public testEmitFailed(): void {
|
|
33
|
-
this.updateStatus('failed');
|
|
34
|
-
this.emitFailed();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public testEmitError(error: LombardError): void {
|
|
38
|
-
this._error = error;
|
|
39
|
-
this.emitError(error);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public testAssertStatus(expected: string | string[], action: string): void {
|
|
43
|
-
this.assertStatus(expected, action);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public testGuard<T>(fn: () => Promise<T>): Promise<T> {
|
|
47
|
-
return this.act(fn);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public testIsFailed(): boolean {
|
|
51
|
-
return this.isFailed;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public testClearError(): void {
|
|
55
|
-
this.clearError();
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
public testClear(): void {
|
|
59
|
-
this.clearListeners();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
describe('BaseAction', () => {
|
|
64
|
-
it('should create an action with initial state', () => {
|
|
65
|
-
const action = new TestAction();
|
|
66
|
-
expect(action.status).toBe('idle');
|
|
67
|
-
expect(action.error).toBeNull();
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it('should register and call progress handlers', () => {
|
|
71
|
-
const action = new TestAction();
|
|
72
|
-
const handler = vi.fn();
|
|
73
|
-
|
|
74
|
-
action.on(DepositEvent.Progress, handler);
|
|
75
|
-
action.testEmitProgress({
|
|
76
|
-
status: 'executing',
|
|
77
|
-
steps: { approval: 'complete' },
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
81
|
-
expect(handler).toHaveBeenCalledWith({
|
|
82
|
-
status: 'executing',
|
|
83
|
-
steps: { approval: 'complete' },
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
it('should register and call status change handlers', () => {
|
|
88
|
-
const action = new TestAction();
|
|
89
|
-
const handler = vi.fn();
|
|
90
|
-
|
|
91
|
-
action.on(DepositEvent.StatusChange, handler);
|
|
92
|
-
action.testUpdateStatus('ready');
|
|
93
|
-
|
|
94
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
95
|
-
expect(handler).toHaveBeenCalledWith('ready');
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
it('should register and call completed handlers', () => {
|
|
99
|
-
const action = new TestAction();
|
|
100
|
-
const handler = vi.fn();
|
|
101
|
-
|
|
102
|
-
action.on(DepositEvent.Completed, handler);
|
|
103
|
-
action.testEmitCompleted();
|
|
104
|
-
|
|
105
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
it('should register and call failed handlers', () => {
|
|
109
|
-
const action = new TestAction();
|
|
110
|
-
const handler = vi.fn();
|
|
111
|
-
|
|
112
|
-
action.on(DepositEvent.Failed, handler);
|
|
113
|
-
action.testEmitFailed();
|
|
114
|
-
|
|
115
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it('should register and call error handlers', () => {
|
|
119
|
-
const action = new TestAction();
|
|
120
|
-
const handler = vi.fn();
|
|
121
|
-
const error = new LombardError(ErrorCode.UNKNOWN_ERROR, 'Test error');
|
|
122
|
-
|
|
123
|
-
action.on(DepositEvent.Error, handler);
|
|
124
|
-
action.testEmitError(error);
|
|
125
|
-
|
|
126
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
127
|
-
expect(handler).toHaveBeenCalledWith(error);
|
|
128
|
-
expect(action.error).toBe(error);
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
it('should return unsubscribe function from on()', () => {
|
|
132
|
-
const action = new TestAction();
|
|
133
|
-
const handler = vi.fn();
|
|
134
|
-
|
|
135
|
-
const unsubscribe = action.on(DepositEvent.Progress, handler);
|
|
136
|
-
expect(typeof unsubscribe).toBe('function');
|
|
137
|
-
|
|
138
|
-
unsubscribe();
|
|
139
|
-
action.testEmitProgress({ status: 'ready', steps: {} });
|
|
140
|
-
|
|
141
|
-
expect(handler).not.toHaveBeenCalled();
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should support multiple handlers for same event', () => {
|
|
145
|
-
const action = new TestAction();
|
|
146
|
-
const handler1 = vi.fn();
|
|
147
|
-
const handler2 = vi.fn();
|
|
148
|
-
|
|
149
|
-
action.on(DepositEvent.Completed, handler1);
|
|
150
|
-
action.on(DepositEvent.Completed, handler2);
|
|
151
|
-
action.testEmitCompleted();
|
|
152
|
-
|
|
153
|
-
expect(handler1).toHaveBeenCalledOnce();
|
|
154
|
-
expect(handler2).toHaveBeenCalledOnce();
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
it('should clear all listeners', () => {
|
|
158
|
-
const action = new TestAction();
|
|
159
|
-
const progressHandler = vi.fn();
|
|
160
|
-
const statusHandler = vi.fn();
|
|
161
|
-
const completedHandler = vi.fn();
|
|
162
|
-
|
|
163
|
-
action.on(DepositEvent.Progress, progressHandler);
|
|
164
|
-
action.on(DepositEvent.StatusChange, statusHandler);
|
|
165
|
-
action.on(DepositEvent.Completed, completedHandler);
|
|
166
|
-
|
|
167
|
-
action.testClear();
|
|
168
|
-
|
|
169
|
-
action.testEmitProgress({ status: 'ready', steps: {} });
|
|
170
|
-
action.testUpdateStatus('ready');
|
|
171
|
-
action.testEmitCompleted();
|
|
172
|
-
|
|
173
|
-
expect(progressHandler).not.toHaveBeenCalled();
|
|
174
|
-
expect(statusHandler).not.toHaveBeenCalled();
|
|
175
|
-
expect(completedHandler).not.toHaveBeenCalled();
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
it('should maintain status property', () => {
|
|
179
|
-
const action = new TestAction();
|
|
180
|
-
expect(action.status).toBe('idle');
|
|
181
|
-
|
|
182
|
-
action.testUpdateStatus('preparing');
|
|
183
|
-
expect(action.status).toBe('preparing');
|
|
184
|
-
|
|
185
|
-
action.testEmitCompleted();
|
|
186
|
-
expect(action.status).toBe('completed');
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
it('should maintain error property', () => {
|
|
190
|
-
const action = new TestAction();
|
|
191
|
-
expect(action.error).toBeNull();
|
|
192
|
-
|
|
193
|
-
const error = new LombardError(ErrorCode.UNKNOWN_ERROR, 'Test error');
|
|
194
|
-
action.testEmitError(error);
|
|
195
|
-
expect(action.error).toBe(error);
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
it('should handle multiple emissions correctly', () => {
|
|
199
|
-
const action = new TestAction();
|
|
200
|
-
const handler = vi.fn();
|
|
201
|
-
|
|
202
|
-
action.on(DepositEvent.Progress, handler);
|
|
203
|
-
|
|
204
|
-
action.testEmitProgress({ status: 'preparing', steps: {} });
|
|
205
|
-
action.testEmitProgress({ status: 'ready', steps: {} });
|
|
206
|
-
action.testEmitProgress({ status: 'executing', steps: {} });
|
|
207
|
-
|
|
208
|
-
expect(handler).toHaveBeenCalledTimes(3);
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
describe('assertStatus', () => {
|
|
212
|
-
it('should pass when status matches single expected', () => {
|
|
213
|
-
const action = new TestAction();
|
|
214
|
-
expect(() => action.testAssertStatus('idle', 'test')).not.toThrow();
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
it('should pass when status matches one of expected array', () => {
|
|
218
|
-
const action = new TestAction();
|
|
219
|
-
expect(() =>
|
|
220
|
-
action.testAssertStatus(['idle', 'ready'], 'test'),
|
|
221
|
-
).not.toThrow();
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
it('should throw when status does not match', () => {
|
|
225
|
-
const action = new TestAction();
|
|
226
|
-
expect(() => action.testAssertStatus('ready', 'test')).toThrow();
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
describe('act', () => {
|
|
231
|
-
it('should return result on success', async () => {
|
|
232
|
-
const action = new TestAction();
|
|
233
|
-
const result = await action.testGuard(async () => 'success');
|
|
234
|
-
expect(result).toBe('success');
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
it('should preserve status on failure and set error', async () => {
|
|
238
|
-
const action = new TestAction();
|
|
239
|
-
const handler = vi.fn();
|
|
240
|
-
action.on(DepositEvent.Failed, handler);
|
|
241
|
-
|
|
242
|
-
// Set status to 'preparing' before the failure
|
|
243
|
-
action.testUpdateStatus('preparing');
|
|
244
|
-
|
|
245
|
-
await expect(
|
|
246
|
-
action.testGuard(async () => {
|
|
247
|
-
throw new Error('test error');
|
|
248
|
-
}),
|
|
249
|
-
).rejects.toThrow();
|
|
250
|
-
|
|
251
|
-
// Status should be preserved at 'preparing' (NOT changed to 'failed')
|
|
252
|
-
expect(action.status).toBe('preparing');
|
|
253
|
-
expect(action.error).not.toBeNull();
|
|
254
|
-
expect(action.testIsFailed()).toBe(true);
|
|
255
|
-
expect(handler).toHaveBeenCalledOnce();
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
it('should clear error on retry', async () => {
|
|
259
|
-
const action = new TestAction();
|
|
260
|
-
|
|
261
|
-
// First call fails
|
|
262
|
-
await expect(
|
|
263
|
-
action.testGuard(async () => {
|
|
264
|
-
throw new Error('test error');
|
|
265
|
-
}),
|
|
266
|
-
).rejects.toThrow();
|
|
267
|
-
|
|
268
|
-
expect(action.error).not.toBeNull();
|
|
269
|
-
expect(action.testIsFailed()).toBe(true);
|
|
270
|
-
|
|
271
|
-
// Second call succeeds - error should be cleared
|
|
272
|
-
const result = await action.testGuard(async () => 'success');
|
|
273
|
-
expect(result).toBe('success');
|
|
274
|
-
expect(action.error).toBeNull();
|
|
275
|
-
expect(action.testIsFailed()).toBe(false);
|
|
276
|
-
});
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
describe('isFailed', () => {
|
|
280
|
-
it('should return false when no error', () => {
|
|
281
|
-
const action = new TestAction();
|
|
282
|
-
expect(action.testIsFailed()).toBe(false);
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
it('should return true when error is set', () => {
|
|
286
|
-
const action = new TestAction();
|
|
287
|
-
const error = new LombardError(ErrorCode.UNKNOWN_ERROR, 'Test error');
|
|
288
|
-
action.testEmitError(error);
|
|
289
|
-
expect(action.testIsFailed()).toBe(true);
|
|
290
|
-
});
|
|
291
|
-
});
|
|
292
|
-
});
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Status constants for all action types
|
|
3
|
-
*
|
|
4
|
-
* These constants replace magic strings throughout the codebase
|
|
5
|
-
* and provide type-safe status values.
|
|
6
|
-
*
|
|
7
|
-
* ## Error Design
|
|
8
|
-
*
|
|
9
|
-
* Note: There is NO 'failed' status. Error handling is separate from status:
|
|
10
|
-
* - `status` = "What step are you at?" (flow position)
|
|
11
|
-
* - `error` = "Did something go wrong?" (Error | null)
|
|
12
|
-
* - `isFailed` = Derived from `error !== null`
|
|
13
|
-
*
|
|
14
|
-
* When an error occurs, status stays at the step where it happened.
|
|
15
|
-
* This allows:
|
|
16
|
-
* 1. Knowing WHERE the error occurred (status tells you)
|
|
17
|
-
* 2. Easy retry - just call the method again
|
|
18
|
-
* 3. Simpler state machine - status only flows forward
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
22
|
-
// BTC Actions - Unified Status
|
|
23
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Unified BTC Action Status
|
|
27
|
-
*
|
|
28
|
-
* Single source of truth for all BTC action statuses.
|
|
29
|
-
* All BTC actions (Stake, Deposit, StakeAndDeploy, DepositAndDeploy) use this.
|
|
30
|
-
*
|
|
31
|
-
* Status represents "what step are you at" - no transitional statuses.
|
|
32
|
-
* Use `isLoading` for operation-in-progress state.
|
|
33
|
-
*
|
|
34
|
-
* ## Flow Examples
|
|
35
|
-
*
|
|
36
|
-
* **BtcStake/BtcDeposit (to Ethereum):**
|
|
37
|
-
* IDLE → NEEDS_FEE_AUTHORIZATION → READY → ADDRESS_READY
|
|
38
|
-
*
|
|
39
|
-
* **BtcStake/BtcDeposit (to non-Ethereum):**
|
|
40
|
-
* IDLE → NEEDS_ADDRESS_CONFIRMATION → READY → ADDRESS_READY
|
|
41
|
-
*
|
|
42
|
-
* **BtcStakeAndDeploy/BtcDepositAndDeploy:**
|
|
43
|
-
* IDLE → NEEDS_DEPLOY_AUTHORIZATION → READY → ADDRESS_READY
|
|
44
|
-
*/
|
|
45
|
-
export const BtcActionStatus = {
|
|
46
|
-
/** Initial state - ready for prepare() */
|
|
47
|
-
IDLE: 'idle',
|
|
48
|
-
|
|
49
|
-
// Authorization states (mutually exclusive - action uses one based on config)
|
|
50
|
-
/** User needs to sign fee authorization (EVM stake/deposit to Ethereum) */
|
|
51
|
-
NEEDS_FEE_AUTHORIZATION: 'needs_fee_authorization',
|
|
52
|
-
/** User needs to confirm destination address (non-Ethereum destinations) */
|
|
53
|
-
NEEDS_ADDRESS_CONFIRMATION: 'needs_address_confirmation',
|
|
54
|
-
/** User needs to sign vault deploy authorization (stake-and-deploy, deposit-and-deploy) */
|
|
55
|
-
NEEDS_DEPLOY_AUTHORIZATION: 'needs_deploy_authorization',
|
|
56
|
-
|
|
57
|
-
/** Authorization complete - ready to generate address */
|
|
58
|
-
READY: 'ready',
|
|
59
|
-
|
|
60
|
-
/** Deposit address generated - awaiting BTC deposit */
|
|
61
|
-
ADDRESS_READY: 'address_ready',
|
|
62
|
-
} as const;
|
|
63
|
-
|
|
64
|
-
export type BtcActionStatus =
|
|
65
|
-
(typeof BtcActionStatus)[keyof typeof BtcActionStatus];
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* EVM operation statuses (Deposit, Stake, Deploy, Unstake, Redeem)
|
|
69
|
-
*
|
|
70
|
-
* Simplified - use isLoading for operation-in-progress.
|
|
71
|
-
*
|
|
72
|
-
* ## Flow Examples
|
|
73
|
-
*
|
|
74
|
-
* **EVM Unstake (LBTC → BTC.b on Ethereum/Sepolia):**
|
|
75
|
-
* IDLE → NEEDS_FEE_AUTHORIZATION → READY → COMPLETED
|
|
76
|
-
*
|
|
77
|
-
* **EVM Unstake (LBTC → BTC.b on Base/BSC - subsidized):**
|
|
78
|
-
* IDLE → READY → COMPLETED
|
|
79
|
-
*
|
|
80
|
-
* **EVM Redeem (BTC.b → BTC on Ethereum/Sepolia):**
|
|
81
|
-
* IDLE → NEEDS_FEE_AUTHORIZATION → READY → COMPLETED
|
|
82
|
-
*/
|
|
83
|
-
export const EvmOperationStatus = {
|
|
84
|
-
IDLE: 'idle',
|
|
85
|
-
/** User needs to sign fee authorization (Ethereum/Sepolia only) */
|
|
86
|
-
NEEDS_FEE_AUTHORIZATION: 'needs_fee_authorization',
|
|
87
|
-
/** User needs to approve token spending */
|
|
88
|
-
NEEDS_APPROVAL: 'needs-approval',
|
|
89
|
-
READY: 'ready',
|
|
90
|
-
CONFIRMING: 'confirming',
|
|
91
|
-
COMPLETED: 'completed',
|
|
92
|
-
} as const;
|
|
93
|
-
|
|
94
|
-
export type EvmOperationStatus =
|
|
95
|
-
(typeof EvmOperationStatus)[keyof typeof EvmOperationStatus];
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Solana/Sui/Starknet Unstake operation statuses
|
|
99
|
-
*/
|
|
100
|
-
export const NonEvmUnstakeStatus = {
|
|
101
|
-
IDLE: 'idle',
|
|
102
|
-
READY: 'ready',
|
|
103
|
-
CONFIRMING: 'confirming',
|
|
104
|
-
COMPLETED: 'completed',
|
|
105
|
-
} as const;
|
|
106
|
-
|
|
107
|
-
export type NonEvmUnstakeStatus =
|
|
108
|
-
(typeof NonEvmUnstakeStatus)[keyof typeof NonEvmUnstakeStatus];
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Builder
|
|
3
|
-
*
|
|
4
|
-
* Builds lightweight action contexts from LombardConfig.
|
|
5
|
-
* Contexts are passed to actions instead of the full SDK instance,
|
|
6
|
-
* improving testability and reducing coupling.
|
|
7
|
-
*
|
|
8
|
-
* NOTE: All context creation now works from config only.
|
|
9
|
-
* The SDK class should pass this.config when creating actions.
|
|
10
|
-
*
|
|
11
|
-
* @module shared/context/ContextBuilder
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type {
|
|
15
|
-
ApiService,
|
|
16
|
-
BtcService,
|
|
17
|
-
EvmService,
|
|
18
|
-
ProviderKey,
|
|
19
|
-
} from '@lombard.finance/sdk-common';
|
|
20
|
-
|
|
21
|
-
import { PartnerConfiguration } from '../../client/PartnerConfiguration';
|
|
22
|
-
// Note: EvmService is imported for createEvmCoreContext
|
|
23
|
-
import type { LombardConfig } from '../../config/types';
|
|
24
|
-
import { getProviderGetter } from '../../config/types';
|
|
25
|
-
import { CapabilityRegistry } from '../../modules/CapabilityRegistry';
|
|
26
|
-
import type {
|
|
27
|
-
BtcCoreContext,
|
|
28
|
-
CoreContext,
|
|
29
|
-
EvmCoreContext,
|
|
30
|
-
ProviderResolver,
|
|
31
|
-
} from './types';
|
|
32
|
-
|
|
33
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
34
|
-
// Provider Resolution
|
|
35
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Create a provider resolver from config
|
|
39
|
-
*/
|
|
40
|
-
function createProviderResolver(config: LombardConfig): ProviderResolver {
|
|
41
|
-
return async key => {
|
|
42
|
-
const getter = getProviderGetter(config.providers, key as ProviderKey);
|
|
43
|
-
if (!getter) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
return getter();
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
51
|
-
// Capability Registry Cache
|
|
52
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
53
|
-
|
|
54
|
-
// Cache capability registries by config to avoid recreating them
|
|
55
|
-
const registryCache = new WeakMap<LombardConfig, CapabilityRegistry>();
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Get or create capability registry from config
|
|
59
|
-
* @internal
|
|
60
|
-
*/
|
|
61
|
-
function getCapabilityRegistry(config: LombardConfig): CapabilityRegistry {
|
|
62
|
-
let registry = registryCache.get(config);
|
|
63
|
-
if (!registry) {
|
|
64
|
-
registry = new CapabilityRegistry(config.modules, config);
|
|
65
|
-
registryCache.set(config, registry);
|
|
66
|
-
}
|
|
67
|
-
return registry;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
71
|
-
// Context Factories
|
|
72
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Create core context from config
|
|
76
|
-
* @internal
|
|
77
|
-
*/
|
|
78
|
-
function createCoreContext(config: LombardConfig): CoreContext {
|
|
79
|
-
return {
|
|
80
|
-
env: config.env,
|
|
81
|
-
partner: new PartnerConfiguration(config.partner),
|
|
82
|
-
getProvider: createProviderResolver(config),
|
|
83
|
-
logger: undefined,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Create BTC core context from config
|
|
89
|
-
*
|
|
90
|
-
* Used by BtcActions and BTC factory functions.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```typescript
|
|
94
|
-
* // In BtcActions
|
|
95
|
-
* constructor(config: LombardConfig) {
|
|
96
|
-
* this.ctx = createBtcCoreContext(config);
|
|
97
|
-
* }
|
|
98
|
-
*
|
|
99
|
-
* // Or directly for factory functions
|
|
100
|
-
* const stake = btcStake(config, params);
|
|
101
|
-
* ```
|
|
102
|
-
*/
|
|
103
|
-
export function createBtcCoreContext(config: LombardConfig): BtcCoreContext {
|
|
104
|
-
const baseContext = createCoreContext(config);
|
|
105
|
-
const registry = getCapabilityRegistry(config);
|
|
106
|
-
|
|
107
|
-
// Type assertions needed because registry doesn't know module types at compile time
|
|
108
|
-
const btc = registry.require('btc') as BtcService;
|
|
109
|
-
const api = registry.require('api') as ApiService;
|
|
110
|
-
|
|
111
|
-
return {
|
|
112
|
-
...baseContext,
|
|
113
|
-
btc,
|
|
114
|
-
api,
|
|
115
|
-
capabilities: registry,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Create EVM core context from config
|
|
121
|
-
*
|
|
122
|
-
* Used by EvmActions and EVM factory functions.
|
|
123
|
-
*/
|
|
124
|
-
export function createEvmCoreContext(config: LombardConfig): EvmCoreContext {
|
|
125
|
-
const baseContext = createCoreContext(config);
|
|
126
|
-
const registry = getCapabilityRegistry(config);
|
|
127
|
-
|
|
128
|
-
// Type assertion needed because registry doesn't know module types at compile time
|
|
129
|
-
const evm = registry.require('evm') as EvmService;
|
|
130
|
-
|
|
131
|
-
return {
|
|
132
|
-
...baseContext,
|
|
133
|
-
evm,
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
138
|
-
// Legacy Exports (for backward compatibility during migration)
|
|
139
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* @deprecated Use createBtcCoreContext(config) instead
|
|
143
|
-
*/
|
|
144
|
-
export const createBtcCoreContextFromConfig = createBtcCoreContext;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* @deprecated Use createEvmCoreContext(config) instead
|
|
148
|
-
*/
|
|
149
|
-
export const createEvmCoreContextFromConfig = createEvmCoreContext;
|