@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
package/src/shared/errors.ts
DELETED
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error handling for the Lombard SDK
|
|
3
|
-
*
|
|
4
|
-
* This module defines a comprehensive error system with:
|
|
5
|
-
* - Type-safe error codes
|
|
6
|
-
* - Rich metadata support
|
|
7
|
-
* - Factory methods for common errors
|
|
8
|
-
* - JSON serialization for logging
|
|
9
|
-
* - SDK version for debugging
|
|
10
|
-
* - Sentry-compatible context extraction
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { SDK_VERSION } from '../version';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* General error codes
|
|
17
|
-
*/
|
|
18
|
-
export enum ErrorCode {
|
|
19
|
-
UNKNOWN_ERROR = 'unknown-error',
|
|
20
|
-
INVALID_CONFIGURATION = 'invalid-configuration',
|
|
21
|
-
OPERATION_TIMEOUT = 'operation-timeout',
|
|
22
|
-
OPERATION_CANCELLED = 'operation-cancelled',
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Provider-related error codes
|
|
27
|
-
*/
|
|
28
|
-
export enum ProviderErrorCode {
|
|
29
|
-
PROVIDER_MISSING = 'provider-missing',
|
|
30
|
-
PROVIDER_INITIALIZATION_FAILED = 'provider-initialization-failed',
|
|
31
|
-
PROVIDER_CALL_FAILED = 'provider-call-failed',
|
|
32
|
-
SIGNER_MISSING = 'signer-missing',
|
|
33
|
-
USER_REJECTED = 'user-rejected',
|
|
34
|
-
NETWORK_MISMATCH = 'network-mismatch',
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Registry-related error codes
|
|
39
|
-
*/
|
|
40
|
-
export enum RegistryErrorCode {
|
|
41
|
-
ROUTE_NOT_FOUND = 'route-not-found',
|
|
42
|
-
INVALID_ROUTE_DEFINITION = 'invalid-route-definition',
|
|
43
|
-
UNSUPPORTED_CHAIN = 'unsupported-chain',
|
|
44
|
-
UNSUPPORTED_ASSET = 'unsupported-asset',
|
|
45
|
-
INCOMPATIBLE_ROUTE = 'incompatible-route',
|
|
46
|
-
ENVIRONMENT_MISMATCH = 'environment-mismatch',
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Validation error codes
|
|
51
|
-
*/
|
|
52
|
-
export enum ValidationErrorCode {
|
|
53
|
-
INVALID_ADDRESS = 'invalid-address',
|
|
54
|
-
INVALID_AMOUNT = 'invalid-amount',
|
|
55
|
-
AMOUNT_TOO_SMALL = 'amount-too-small',
|
|
56
|
-
AMOUNT_TOO_LARGE = 'amount-too-large',
|
|
57
|
-
INSUFFICIENT_BALANCE = 'insufficient-balance',
|
|
58
|
-
INVALID_PARAMETER = 'invalid-parameter',
|
|
59
|
-
MISSING_REQUIRED_PARAMETER = 'missing-required-parameter',
|
|
60
|
-
INVALID_CHAIN = 'invalid-chain',
|
|
61
|
-
INVALID_STATE = 'invalid-state',
|
|
62
|
-
INVALID_ASSET = 'invalid-asset',
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Contract interaction error codes
|
|
67
|
-
*/
|
|
68
|
-
export enum ContractErrorCode {
|
|
69
|
-
CONTRACT_CALL_FAILED = 'contract-call-failed',
|
|
70
|
-
TRANSACTION_FAILED = 'transaction-failed',
|
|
71
|
-
TRANSACTION_REVERTED = 'transaction-reverted',
|
|
72
|
-
APPROVAL_FAILED = 'approval-failed',
|
|
73
|
-
INSUFFICIENT_ALLOWANCE = 'insufficient-allowance',
|
|
74
|
-
GAS_ESTIMATION_FAILED = 'gas-estimation-failed',
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Union type of all error codes
|
|
79
|
-
*/
|
|
80
|
-
export type AnyErrorCode =
|
|
81
|
-
| ErrorCode
|
|
82
|
-
| ProviderErrorCode
|
|
83
|
-
| RegistryErrorCode
|
|
84
|
-
| ValidationErrorCode
|
|
85
|
-
| ContractErrorCode;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Lombard SDK Error class
|
|
89
|
-
*
|
|
90
|
-
* Custom error class that extends Error with additional properties:
|
|
91
|
-
* - Machine-readable error code
|
|
92
|
-
* - Rich metadata for debugging
|
|
93
|
-
* - JSON serialization support
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```typescript
|
|
97
|
-
* throw new LombardError(
|
|
98
|
-
* ProviderErrorCode.PROVIDER_MISSING,
|
|
99
|
-
* 'EVM provider not configured',
|
|
100
|
-
* { chain: 'ethereum', requiredProvider: 'evm' }
|
|
101
|
-
* );
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
export class LombardError extends Error {
|
|
105
|
-
/** Machine-readable error code */
|
|
106
|
-
public readonly code: AnyErrorCode;
|
|
107
|
-
|
|
108
|
-
/** Additional metadata for debugging */
|
|
109
|
-
public readonly metadata?: Record<string, unknown>;
|
|
110
|
-
|
|
111
|
-
/** SDK version when error occurred (for debugging) */
|
|
112
|
-
public readonly sdkVersion: string = SDK_VERSION;
|
|
113
|
-
|
|
114
|
-
/** Timestamp when error occurred */
|
|
115
|
-
public readonly timestamp: string = new Date().toISOString();
|
|
116
|
-
|
|
117
|
-
constructor(
|
|
118
|
-
code: AnyErrorCode,
|
|
119
|
-
message: string,
|
|
120
|
-
metadata?: Record<string, unknown>,
|
|
121
|
-
) {
|
|
122
|
-
super(message);
|
|
123
|
-
this.name = 'LombardError';
|
|
124
|
-
this.code = code;
|
|
125
|
-
this.metadata = metadata;
|
|
126
|
-
|
|
127
|
-
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
128
|
-
if (Error.captureStackTrace) {
|
|
129
|
-
Error.captureStackTrace(this, LombardError);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Serialize error to JSON for logging
|
|
135
|
-
*
|
|
136
|
-
* Includes all context needed for debugging: code, message, metadata,
|
|
137
|
-
* SDK version, timestamp, and stack trace.
|
|
138
|
-
*
|
|
139
|
-
* @example
|
|
140
|
-
* ```typescript
|
|
141
|
-
* try {
|
|
142
|
-
* await action.execute();
|
|
143
|
-
* } catch (error) {
|
|
144
|
-
* if (error instanceof LombardError) {
|
|
145
|
-
* console.log(JSON.stringify(error.toJSON(), null, 2));
|
|
146
|
-
* }
|
|
147
|
-
* }
|
|
148
|
-
* ```
|
|
149
|
-
*/
|
|
150
|
-
toJSON(): Record<string, unknown> {
|
|
151
|
-
return {
|
|
152
|
-
name: this.name,
|
|
153
|
-
code: this.code,
|
|
154
|
-
message: this.message,
|
|
155
|
-
sdkVersion: this.sdkVersion,
|
|
156
|
-
timestamp: this.timestamp,
|
|
157
|
-
...(this.metadata && { metadata: this.metadata }),
|
|
158
|
-
...(this.stack && { stack: this.stack }),
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Get Sentry-compatible context for error reporting
|
|
164
|
-
*
|
|
165
|
-
* Returns an object suitable for Sentry's `extra` or `contexts` fields.
|
|
166
|
-
*
|
|
167
|
-
* @example
|
|
168
|
-
* ```typescript
|
|
169
|
-
* try {
|
|
170
|
-
* await action.execute();
|
|
171
|
-
* } catch (error) {
|
|
172
|
-
* if (error instanceof LombardError) {
|
|
173
|
-
* Sentry.captureException(error, {
|
|
174
|
-
* contexts: { lombard: error.toSentryContext() },
|
|
175
|
-
* });
|
|
176
|
-
* }
|
|
177
|
-
* }
|
|
178
|
-
* ```
|
|
179
|
-
*/
|
|
180
|
-
toSentryContext(): Record<string, unknown> {
|
|
181
|
-
return {
|
|
182
|
-
'sdk.version': this.sdkVersion,
|
|
183
|
-
'error.code': this.code,
|
|
184
|
-
'error.timestamp': this.timestamp,
|
|
185
|
-
...this.metadata,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Factory: Invalid configuration error
|
|
191
|
-
*/
|
|
192
|
-
static invalidConfiguration(message: string): LombardError {
|
|
193
|
-
return new LombardError(ErrorCode.INVALID_CONFIGURATION, message);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Factory: Provider missing error
|
|
198
|
-
*/
|
|
199
|
-
static providerMissing(chain: string, providerType: string): LombardError {
|
|
200
|
-
return new LombardError(
|
|
201
|
-
ProviderErrorCode.PROVIDER_MISSING,
|
|
202
|
-
`${providerType} provider not configured for chain ${chain}. Please provide a provider via SDK initialization.`,
|
|
203
|
-
{ chain, providerType },
|
|
204
|
-
);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
static moduleMissing(moduleId: string): LombardError {
|
|
208
|
-
return new LombardError(
|
|
209
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
210
|
-
`Module "${moduleId}" is not registered. Install and register the corresponding package via createConfig({ modules: [...] }).`,
|
|
211
|
-
{ moduleId },
|
|
212
|
-
);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Factory: Provider call failed error
|
|
217
|
-
*/
|
|
218
|
-
static providerCallFailed(
|
|
219
|
-
method: string,
|
|
220
|
-
cause: Error | string,
|
|
221
|
-
): LombardError {
|
|
222
|
-
const causeMessage = cause instanceof Error ? cause.message : cause;
|
|
223
|
-
return new LombardError(
|
|
224
|
-
ProviderErrorCode.PROVIDER_CALL_FAILED,
|
|
225
|
-
`Provider method ${method} failed: ${causeMessage}`,
|
|
226
|
-
{ method, cause: causeMessage },
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Factory: User rejected transaction
|
|
232
|
-
*/
|
|
233
|
-
static userRejected(operation: string): LombardError {
|
|
234
|
-
return new LombardError(
|
|
235
|
-
ProviderErrorCode.USER_REJECTED,
|
|
236
|
-
`User rejected ${operation}. Please try again and approve the transaction in your wallet.`,
|
|
237
|
-
{ operation },
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Factory: Route not found in registry
|
|
243
|
-
*/
|
|
244
|
-
static routeNotFound(params: Record<string, unknown>): LombardError {
|
|
245
|
-
return new LombardError(
|
|
246
|
-
RegistryErrorCode.ROUTE_NOT_FOUND,
|
|
247
|
-
'No route found matching the provided parameters. Please verify the asset and chain combination is supported.',
|
|
248
|
-
params,
|
|
249
|
-
);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Factory: Invalid route definition
|
|
254
|
-
*/
|
|
255
|
-
static invalidRouteDefinition(reason: string): LombardError {
|
|
256
|
-
return new LombardError(
|
|
257
|
-
RegistryErrorCode.INVALID_ROUTE_DEFINITION,
|
|
258
|
-
`Invalid route definition: ${reason}`,
|
|
259
|
-
{ reason },
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Factory: Unsupported chain
|
|
265
|
-
*/
|
|
266
|
-
static unsupportedChain(chain: string): LombardError {
|
|
267
|
-
return new LombardError(
|
|
268
|
-
RegistryErrorCode.UNSUPPORTED_CHAIN,
|
|
269
|
-
`Chain ${chain} is not supported in the current environment.`,
|
|
270
|
-
{ chain },
|
|
271
|
-
);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Factory: Invalid parameter
|
|
276
|
-
*/
|
|
277
|
-
static invalidParameter(parameter: string, reason: string): LombardError {
|
|
278
|
-
return new LombardError(ValidationErrorCode.INVALID_PARAMETER, reason, {
|
|
279
|
-
parameter,
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Factory: Invalid address
|
|
285
|
-
*/
|
|
286
|
-
static invalidAddress(address: string, chain?: string): LombardError {
|
|
287
|
-
return new LombardError(
|
|
288
|
-
ValidationErrorCode.INVALID_ADDRESS,
|
|
289
|
-
`Invalid address format: ${address}${chain ? ` for chain ${chain}` : ''}`,
|
|
290
|
-
{ address, chain },
|
|
291
|
-
);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Factory: Invalid amount
|
|
296
|
-
*/
|
|
297
|
-
static invalidAmount(reason: string): LombardError {
|
|
298
|
-
return new LombardError(ValidationErrorCode.INVALID_AMOUNT, reason, {
|
|
299
|
-
reason,
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Factory: Amount too small
|
|
305
|
-
*/
|
|
306
|
-
static amountTooSmall(
|
|
307
|
-
amount: string,
|
|
308
|
-
minimum: string,
|
|
309
|
-
asset: string,
|
|
310
|
-
): LombardError {
|
|
311
|
-
return new LombardError(
|
|
312
|
-
ValidationErrorCode.AMOUNT_TOO_SMALL,
|
|
313
|
-
`Amount ${amount} is below minimum ${minimum} ${asset}`,
|
|
314
|
-
{ amount, minimum, asset },
|
|
315
|
-
);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Factory: Insufficient balance
|
|
320
|
-
*/
|
|
321
|
-
static insufficientBalance(
|
|
322
|
-
required: string,
|
|
323
|
-
available: string,
|
|
324
|
-
asset: string,
|
|
325
|
-
): LombardError {
|
|
326
|
-
return new LombardError(
|
|
327
|
-
ValidationErrorCode.INSUFFICIENT_BALANCE,
|
|
328
|
-
`Insufficient ${asset} balance. Required: ${required}, Available: ${available}`,
|
|
329
|
-
{ required, available, asset },
|
|
330
|
-
);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* Factory: Missing required parameter
|
|
335
|
-
*/
|
|
336
|
-
static missingParameter(parameterName: string): LombardError {
|
|
337
|
-
return new LombardError(
|
|
338
|
-
ValidationErrorCode.MISSING_REQUIRED_PARAMETER,
|
|
339
|
-
`Required parameter "${parameterName}" is missing`,
|
|
340
|
-
{ parameterName },
|
|
341
|
-
);
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
/**
|
|
345
|
-
* Factory: Transaction failed
|
|
346
|
-
*/
|
|
347
|
-
static transactionFailed(txHash: string, reason: string): LombardError {
|
|
348
|
-
return new LombardError(
|
|
349
|
-
ContractErrorCode.TRANSACTION_FAILED,
|
|
350
|
-
`Transaction failed: ${reason}`,
|
|
351
|
-
{ txHash, reason },
|
|
352
|
-
);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* Factory: Transaction reverted
|
|
357
|
-
*/
|
|
358
|
-
static transactionReverted(
|
|
359
|
-
txHash: string,
|
|
360
|
-
revertReason?: string,
|
|
361
|
-
): LombardError {
|
|
362
|
-
return new LombardError(
|
|
363
|
-
ContractErrorCode.TRANSACTION_REVERTED,
|
|
364
|
-
`Transaction reverted${revertReason ? `: ${revertReason}` : ''}`,
|
|
365
|
-
{ txHash, revertReason },
|
|
366
|
-
);
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* Factory: Approval failed
|
|
371
|
-
*/
|
|
372
|
-
static approvalFailed(token: string, spender: string): LombardError {
|
|
373
|
-
return new LombardError(
|
|
374
|
-
ContractErrorCode.APPROVAL_FAILED,
|
|
375
|
-
`Failed to approve ${token} for spender ${spender}`,
|
|
376
|
-
{ token, spender },
|
|
377
|
-
);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* Type guard to check if an error is a LombardError
|
|
383
|
-
*/
|
|
384
|
-
export function isLombardError(error: unknown): error is LombardError {
|
|
385
|
-
return error instanceof LombardError;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* Helper to wrap unknown errors as LombardError
|
|
390
|
-
*/
|
|
391
|
-
export function wrapError(error: unknown): LombardError {
|
|
392
|
-
if (isLombardError(error)) {
|
|
393
|
-
return error;
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
if (error instanceof Error) {
|
|
397
|
-
return new LombardError(ErrorCode.UNKNOWN_ERROR, error.message, {
|
|
398
|
-
originalError: error.stack,
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
return new LombardError(ErrorCode.UNKNOWN_ERROR, String(error), {
|
|
403
|
-
originalValue: error,
|
|
404
|
-
});
|
|
405
|
-
}
|
package/src/shared/events.ts
DELETED
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event definitions for all strategy types
|
|
3
|
-
*
|
|
4
|
-
* This module defines strongly-typed events that strategies emit
|
|
5
|
-
* during their execution lifecycle.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { StrategyProgress } from '../core/types';
|
|
9
|
-
import type { LombardError } from './errors';
|
|
10
|
-
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Event emitter requires bivariant `any` for type-safe event handler signatures
|
|
12
|
-
type StrategyEventHandlerMap = Record<string, (...args: any[]) => void>;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Stake operation events
|
|
16
|
-
*
|
|
17
|
-
* Emitted by all stake strategies (BTC → LBTC, etc.)
|
|
18
|
-
*/
|
|
19
|
-
export const StakeEvent = {
|
|
20
|
-
/** Progress update with detailed step information */
|
|
21
|
-
Progress: 'progress',
|
|
22
|
-
|
|
23
|
-
/** Status change (e.g., 'idle' → 'preparing' → 'ready') */
|
|
24
|
-
StatusChange: 'status-change',
|
|
25
|
-
|
|
26
|
-
/** Operation completed successfully */
|
|
27
|
-
Completed: 'completed',
|
|
28
|
-
|
|
29
|
-
/** Operation failed */
|
|
30
|
-
Failed: 'failed',
|
|
31
|
-
|
|
32
|
-
/** Error occurred */
|
|
33
|
-
Error: 'error',
|
|
34
|
-
} as const;
|
|
35
|
-
|
|
36
|
-
export type StakeEvent = (typeof StakeEvent)[keyof typeof StakeEvent];
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Deposit operation events
|
|
40
|
-
*
|
|
41
|
-
* Emitted by all deposit strategies (EVM, etc.)
|
|
42
|
-
*/
|
|
43
|
-
export const DepositEvent = {
|
|
44
|
-
Progress: 'progress',
|
|
45
|
-
StatusChange: 'status-change',
|
|
46
|
-
Completed: 'completed',
|
|
47
|
-
Failed: 'failed',
|
|
48
|
-
Error: 'error',
|
|
49
|
-
} as const;
|
|
50
|
-
|
|
51
|
-
export type DepositEvent = (typeof DepositEvent)[keyof typeof DepositEvent];
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Redeem operation events
|
|
55
|
-
*
|
|
56
|
-
* Emitted by all redeem strategies (cross-chain asset redemptions)
|
|
57
|
-
*/
|
|
58
|
-
export const RedeemEvent = {
|
|
59
|
-
Progress: 'progress',
|
|
60
|
-
StatusChange: 'status-change',
|
|
61
|
-
Completed: 'completed',
|
|
62
|
-
Failed: 'failed',
|
|
63
|
-
Error: 'error',
|
|
64
|
-
} as const;
|
|
65
|
-
|
|
66
|
-
export type RedeemEvent = (typeof RedeemEvent)[keyof typeof RedeemEvent];
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Unstake operation events
|
|
70
|
-
*
|
|
71
|
-
* Emitted by all unstake strategies (LBTC → BTC or BTC.b)
|
|
72
|
-
*/
|
|
73
|
-
export const UnstakeEvent = {
|
|
74
|
-
Progress: 'progress',
|
|
75
|
-
StatusChange: 'status-change',
|
|
76
|
-
Completed: 'completed',
|
|
77
|
-
Failed: 'failed',
|
|
78
|
-
Error: 'error',
|
|
79
|
-
} as const;
|
|
80
|
-
|
|
81
|
-
export type UnstakeEvent = (typeof UnstakeEvent)[keyof typeof UnstakeEvent];
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Deploy operation events
|
|
85
|
-
*
|
|
86
|
-
* Emitted by deploy strategies (deploying L-Assets to DeFi protocols)
|
|
87
|
-
*/
|
|
88
|
-
export const DeployEvent = {
|
|
89
|
-
Progress: 'progress',
|
|
90
|
-
StatusChange: 'status-change',
|
|
91
|
-
Completed: 'completed',
|
|
92
|
-
Failed: 'failed',
|
|
93
|
-
Error: 'error',
|
|
94
|
-
} as const;
|
|
95
|
-
|
|
96
|
-
export type DeployEvent = (typeof DeployEvent)[keyof typeof DeployEvent];
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Bridge operation events
|
|
100
|
-
*
|
|
101
|
-
* Emitted by bridge strategies (cross-chain L-Asset transfers)
|
|
102
|
-
*/
|
|
103
|
-
export const BridgeEvent = {
|
|
104
|
-
Progress: 'progress',
|
|
105
|
-
StatusChange: 'status-change',
|
|
106
|
-
Completed: 'completed',
|
|
107
|
-
Failed: 'failed',
|
|
108
|
-
Error: 'error',
|
|
109
|
-
} as const;
|
|
110
|
-
|
|
111
|
-
export type BridgeEvent = (typeof BridgeEvent)[keyof typeof BridgeEvent];
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* StakeAndDeploy operation events ("Stake and Bake")
|
|
115
|
-
*
|
|
116
|
-
* Emitted by stake-and-deploy strategies (BTC → LBTC → Vault in one operation)
|
|
117
|
-
*/
|
|
118
|
-
export const StakeAndDeployEvent = {
|
|
119
|
-
Progress: 'progress',
|
|
120
|
-
StatusChange: 'status-change',
|
|
121
|
-
Completed: 'completed',
|
|
122
|
-
Failed: 'failed',
|
|
123
|
-
Error: 'error',
|
|
124
|
-
} as const;
|
|
125
|
-
|
|
126
|
-
export type StakeAndDeployEvent =
|
|
127
|
-
(typeof StakeAndDeployEvent)[keyof typeof StakeAndDeployEvent];
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* DepositAndDeploy operation events
|
|
131
|
-
*
|
|
132
|
-
* Emitted by deposit-and-deploy strategies (BTC → BTC.b → Vault in one operation)
|
|
133
|
-
* Similar to StakeAndDeploy but produces BTC.b instead of LBTC.
|
|
134
|
-
*/
|
|
135
|
-
export const DepositAndDeployEvent = {
|
|
136
|
-
Progress: 'progress',
|
|
137
|
-
StatusChange: 'status-change',
|
|
138
|
-
Completed: 'completed',
|
|
139
|
-
Failed: 'failed',
|
|
140
|
-
Error: 'error',
|
|
141
|
-
} as const;
|
|
142
|
-
|
|
143
|
-
export type DepositAndDeployEvent =
|
|
144
|
-
(typeof DepositAndDeployEvent)[keyof typeof DepositAndDeployEvent];
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Event handler type mapping for stake operations
|
|
148
|
-
*/
|
|
149
|
-
export interface StakeEventMap extends StrategyEventHandlerMap {
|
|
150
|
-
[StakeEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
151
|
-
[StakeEvent.StatusChange]: (status: string) => void;
|
|
152
|
-
[StakeEvent.Completed]: () => void;
|
|
153
|
-
[StakeEvent.Failed]: () => void;
|
|
154
|
-
[StakeEvent.Error]: (error: LombardError) => void;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Event handler type mapping for deposit operations
|
|
159
|
-
*/
|
|
160
|
-
export interface DepositEventMap extends StrategyEventHandlerMap {
|
|
161
|
-
[DepositEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
162
|
-
[DepositEvent.StatusChange]: (status: string) => void;
|
|
163
|
-
[DepositEvent.Completed]: () => void;
|
|
164
|
-
[DepositEvent.Failed]: () => void;
|
|
165
|
-
[DepositEvent.Error]: (error: LombardError) => void;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Event handler type mapping for redeem operations
|
|
170
|
-
*/
|
|
171
|
-
export interface RedeemEventMap extends StrategyEventHandlerMap {
|
|
172
|
-
[RedeemEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
173
|
-
[RedeemEvent.StatusChange]: (status: string) => void;
|
|
174
|
-
[RedeemEvent.Completed]: () => void;
|
|
175
|
-
[RedeemEvent.Failed]: () => void;
|
|
176
|
-
[RedeemEvent.Error]: (error: LombardError) => void;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Event handler type mapping for unstake operations
|
|
181
|
-
*/
|
|
182
|
-
export interface UnstakeEventMap extends StrategyEventHandlerMap {
|
|
183
|
-
[UnstakeEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
184
|
-
[UnstakeEvent.StatusChange]: (status: string) => void;
|
|
185
|
-
[UnstakeEvent.Completed]: () => void;
|
|
186
|
-
[UnstakeEvent.Failed]: () => void;
|
|
187
|
-
[UnstakeEvent.Error]: (error: LombardError) => void;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Event handler type mapping for deploy operations
|
|
192
|
-
*/
|
|
193
|
-
export interface DeployEventMap extends StrategyEventHandlerMap {
|
|
194
|
-
[DeployEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
195
|
-
[DeployEvent.StatusChange]: (status: string) => void;
|
|
196
|
-
[DeployEvent.Completed]: () => void;
|
|
197
|
-
[DeployEvent.Failed]: () => void;
|
|
198
|
-
[DeployEvent.Error]: (error: LombardError) => void;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Event handler type mapping for bridge operations
|
|
203
|
-
*/
|
|
204
|
-
export interface BridgeEventMap extends StrategyEventHandlerMap {
|
|
205
|
-
[BridgeEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
206
|
-
[BridgeEvent.StatusChange]: (status: string) => void;
|
|
207
|
-
[BridgeEvent.Completed]: () => void;
|
|
208
|
-
[BridgeEvent.Failed]: () => void;
|
|
209
|
-
[BridgeEvent.Error]: (error: LombardError) => void;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Event handler type mapping for stake-and-deploy operations
|
|
214
|
-
*/
|
|
215
|
-
export interface StakeAndDeployEventMap extends StrategyEventHandlerMap {
|
|
216
|
-
[StakeAndDeployEvent.Progress]: (progress: StrategyProgress<string>) => void;
|
|
217
|
-
[StakeAndDeployEvent.StatusChange]: (status: string) => void;
|
|
218
|
-
[StakeAndDeployEvent.Completed]: () => void;
|
|
219
|
-
[StakeAndDeployEvent.Failed]: () => void;
|
|
220
|
-
[StakeAndDeployEvent.Error]: (error: LombardError) => void;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Event handler type mapping for deposit-and-deploy operations
|
|
225
|
-
*/
|
|
226
|
-
export interface DepositAndDeployEventMap extends StrategyEventHandlerMap {
|
|
227
|
-
[DepositAndDeployEvent.Progress]: (
|
|
228
|
-
progress: StrategyProgress<string>,
|
|
229
|
-
) => void;
|
|
230
|
-
[DepositAndDeployEvent.StatusChange]: (status: string) => void;
|
|
231
|
-
[DepositAndDeployEvent.Completed]: () => void;
|
|
232
|
-
[DepositAndDeployEvent.Failed]: () => void;
|
|
233
|
-
[DepositAndDeployEvent.Error]: (error: LombardError) => void;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* Generic event map type for any strategy
|
|
238
|
-
*/
|
|
239
|
-
export type StrategyEventMap =
|
|
240
|
-
| StakeEventMap
|
|
241
|
-
| DepositEventMap
|
|
242
|
-
| RedeemEventMap
|
|
243
|
-
| UnstakeEventMap
|
|
244
|
-
| DeployEventMap
|
|
245
|
-
| BridgeEventMap
|
|
246
|
-
| StakeAndDeployEventMap
|
|
247
|
-
| DepositAndDeployEventMap;
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Generic event type for any strategy
|
|
251
|
-
*/
|
|
252
|
-
export type StrategyEvent =
|
|
253
|
-
| StakeEvent
|
|
254
|
-
| DepositEvent
|
|
255
|
-
| RedeemEvent
|
|
256
|
-
| UnstakeEvent
|
|
257
|
-
| DeployEvent
|
|
258
|
-
| BridgeEvent
|
|
259
|
-
| StakeAndDeployEvent
|
|
260
|
-
| DepositAndDeployEvent;
|