@lombard.finance/sdk 4.0.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/bridge/lib/ccip-config.d.ts.map +1 -1
- package/dist/bridge/lib/config.d.ts +3 -3
- package/dist/bridge/lib/config.d.ts.map +1 -1
- package/dist/common/chains.d.ts +2 -2
- package/dist/common/chains.d.ts.map +1 -1
- package/dist/common/feature-config.d.ts.map +1 -1
- package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
- package/dist/index2.cjs +6 -6
- package/dist/index2.js +792 -759
- package/dist/vaults/lib/config.d.ts +1 -1
- package/package.json +7 -8
- package/src/__tests__/AssetNamespace.spec.ts +0 -234
- package/src/__tests__/helpers/createTestConfig.ts +0 -90
- package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
- package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
- package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
- package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
- package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
- package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
- package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
- package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
- package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
- package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
- package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
- package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
- package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
- package/src/__tests__/services/ApiService.test.ts +0 -62
- package/src/__tests__/services/BtcService.test.ts +0 -30
- package/src/__tests__/services/EvmService.test.ts +0 -39
- package/src/__tests__/setup.ts +0 -16
- package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
- package/src/__tests__/test-utils/evm-wallet.ts +0 -38
- package/src/__tests__/test-utils/solana-wallet.ts +0 -22
- package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
- package/src/__tests__/test-utils/sui-wallet.ts +0 -14
- package/src/__tests__/test-utils/test-constraints.ts +0 -110
- package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
- package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
- package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
- package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
- package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
- package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
- package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
- package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
- package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
- package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
- package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
- package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
- package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
- package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
- package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
- package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
- package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
- package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
- package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
- package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
- package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
- package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
- package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
- package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
- package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
- package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
- package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
- package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
- package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
- package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
- package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
- package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
- package/src/api-functions/get-badges-by-address/index.ts +0 -1
- package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
- package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
- package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
- package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
- package/src/api-functions/getDepositsByAddress/index.ts +0 -1
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
- package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
- package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
- package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
- package/src/api-functions/getPointsByAddress/index.ts +0 -1
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
- package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
- package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/index.ts +0 -11
- package/src/api-functions/setReferral/index.ts +0 -1
- package/src/api-functions/setReferral/setReferral.ts +0 -67
- package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
- package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
- package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
- package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
- package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
- package/src/bridge/index.ts +0 -16
- package/src/bridge/lib/bridge.stories.tsx +0 -90
- package/src/bridge/lib/bridge.ts +0 -115
- package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
- package/src/bridge/lib/ccip-bridge.ts +0 -214
- package/src/bridge/lib/ccip-config.ts +0 -54
- package/src/bridge/lib/config.ts +0 -384
- package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
- package/src/bridge/lib/oft-bridge.ts +0 -217
- package/src/chains/btc/BtcActions.ts +0 -192
- package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
- package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
- package/src/chains/btc/actions/deposit/config/index.ts +0 -53
- package/src/chains/btc/actions/deposit/config/types.ts +0 -108
- package/src/chains/btc/actions/deposit/factory.ts +0 -53
- package/src/chains/btc/actions/deposit/index.ts +0 -23
- package/src/chains/btc/actions/deposit/types.ts +0 -120
- package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
- package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
- package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
- package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
- package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
- package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
- package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
- package/src/chains/btc/actions/index.ts +0 -14
- package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
- package/src/chains/btc/actions/shared/index.ts +0 -28
- package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
- package/src/chains/btc/actions/shared/validation.ts +0 -180
- package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
- package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
- package/src/chains/btc/actions/stake/config/evm.ts +0 -183
- package/src/chains/btc/actions/stake/config/index.ts +0 -122
- package/src/chains/btc/actions/stake/config/solana.ts +0 -96
- package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
- package/src/chains/btc/actions/stake/config/sui.ts +0 -61
- package/src/chains/btc/actions/stake/config/types.ts +0 -165
- package/src/chains/btc/actions/stake/factory.ts +0 -53
- package/src/chains/btc/actions/stake/index.ts +0 -22
- package/src/chains/btc/actions/stake/types.ts +0 -175
- package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
- package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
- package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
- package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
- package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
- package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
- package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
- package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
- package/src/chains/btc/client/mempool/error.ts +0 -24
- package/src/chains/btc/client/mempool/mempool.ts +0 -23
- package/src/chains/btc/index.ts +0 -71
- package/src/chains/evm/EvmActions.ts +0 -185
- package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
- package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
- package/src/chains/evm/actions/deploy/config/index.ts +0 -8
- package/src/chains/evm/actions/deploy/config/types.ts +0 -43
- package/src/chains/evm/actions/deploy/factory.ts +0 -44
- package/src/chains/evm/actions/deploy/index.ts +0 -17
- package/src/chains/evm/actions/deploy/types.ts +0 -74
- package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
- package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
- package/src/chains/evm/actions/deposit/config/index.ts +0 -8
- package/src/chains/evm/actions/deposit/config/types.ts +0 -39
- package/src/chains/evm/actions/deposit/factory.ts +0 -44
- package/src/chains/evm/actions/deposit/index.ts +0 -17
- package/src/chains/evm/actions/deposit/types.ts +0 -87
- package/src/chains/evm/actions/index.ts +0 -67
- package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
- package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
- package/src/chains/evm/actions/redeem/config/index.ts +0 -8
- package/src/chains/evm/actions/redeem/config/types.ts +0 -39
- package/src/chains/evm/actions/redeem/factory.ts +0 -43
- package/src/chains/evm/actions/redeem/index.ts +0 -17
- package/src/chains/evm/actions/redeem/types.ts +0 -93
- package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
- package/src/chains/evm/actions/stake/config/evm.ts +0 -89
- package/src/chains/evm/actions/stake/config/index.ts +0 -8
- package/src/chains/evm/actions/stake/config/types.ts +0 -89
- package/src/chains/evm/actions/stake/factory.ts +0 -52
- package/src/chains/evm/actions/stake/index.ts +0 -30
- package/src/chains/evm/actions/stake/types.ts +0 -104
- package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
- package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
- package/src/chains/evm/actions/unstake/config/index.ts +0 -13
- package/src/chains/evm/actions/unstake/config/types.ts +0 -37
- package/src/chains/evm/actions/unstake/factory.ts +0 -44
- package/src/chains/evm/actions/unstake/index.ts +0 -22
- package/src/chains/evm/actions/unstake/types.ts +0 -87
- package/src/chains/evm/index.ts +0 -16
- package/src/chains/evm/shared/feeAuth.ts +0 -198
- package/src/chains/evm/shared/index.ts +0 -7
- package/src/chains/solana/SolanaActions.ts +0 -85
- package/src/chains/solana/actions/index.ts +0 -7
- package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
- package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
- package/src/chains/solana/actions/unstake/config/index.ts +0 -8
- package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
- package/src/chains/solana/actions/unstake/config/types.ts +0 -35
- package/src/chains/solana/actions/unstake/factory.ts +0 -34
- package/src/chains/solana/actions/unstake/index.ts +0 -14
- package/src/chains/solana/actions/unstake/types.ts +0 -58
- package/src/chains/solana/index.ts +0 -8
- package/src/chains/starknet/StarknetActions.ts +0 -85
- package/src/chains/starknet/actions/index.ts +0 -7
- package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
- package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
- package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
- package/src/chains/starknet/actions/unstake/factory.ts +0 -32
- package/src/chains/starknet/actions/unstake/index.ts +0 -14
- package/src/chains/starknet/actions/unstake/types.ts +0 -57
- package/src/chains/starknet/index.ts +0 -8
- package/src/chains/sui/SuiActions.ts +0 -82
- package/src/chains/sui/actions/index.ts +0 -7
- package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
- package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
- package/src/chains/sui/actions/unstake/config/index.ts +0 -8
- package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
- package/src/chains/sui/actions/unstake/config/types.ts +0 -27
- package/src/chains/sui/actions/unstake/factory.ts +0 -32
- package/src/chains/sui/actions/unstake/index.ts +0 -14
- package/src/chains/sui/actions/unstake/types.ts +0 -57
- package/src/chains/sui/index.ts +0 -8
- package/src/client/ApiNamespace.ts +0 -302
- package/src/client/AssetNamespace.ts +0 -112
- package/src/client/LombardSDK.ts +0 -212
- package/src/client/PartnerConfiguration.ts +0 -50
- package/src/client/createConfig.ts +0 -90
- package/src/client/createLombardSDK.ts +0 -130
- package/src/clients/evm-signer-adapter.ts +0 -313
- package/src/clients/public-client.ts +0 -49
- package/src/clients/rpc-url-config.ts +0 -64
- package/src/clients/wallet-client.ts +0 -34
- package/src/common/api-config.ts +0 -48
- package/src/common/blockchain-identifier.ts +0 -217
- package/src/common/chains.stories.tsx +0 -68
- package/src/common/chains.ts +0 -449
- package/src/common/constants.ts +0 -1
- package/src/common/contract-info.ts +0 -9
- package/src/common/feature-config.ts +0 -79
- package/src/common/fee-requirements.ts +0 -34
- package/src/common/parameters.ts +0 -89
- package/src/config/defaults.ts +0 -49
- package/src/config/index.ts +0 -12
- package/src/config/providers.ts +0 -81
- package/src/config/types.ts +0 -216
- package/src/config/validation.ts +0 -69
- package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
- package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
- package/src/contract-functions/approveLBTC/index.ts +0 -1
- package/src/contract-functions/approveToken/approveToken.ts +0 -126
- package/src/contract-functions/approveToken/index.ts +0 -1
- package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
- package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
- package/src/contract-functions/claimLBTC/index.ts +0 -1
- package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
- package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
- package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
- package/src/contract-functions/deposit/depositToken.ts +0 -214
- package/src/contract-functions/deposit/index.ts +0 -1
- package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
- package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
- package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
- package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
- package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
- package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
- package/src/contract-functions/getPermitNonce/index.ts +0 -1
- package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
- package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
- package/src/contract-functions/getShareValue/index.ts +0 -1
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
- package/src/contract-functions/getSharesByAddress/index.ts +0 -4
- package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
- package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
- package/src/contract-functions/index.ts +0 -21
- package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
- package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
- package/src/contract-functions/signNetworkFee/index.ts +0 -1
- package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
- package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
- package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
- package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
- package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
- package/src/contract-functions/signStakeAndBake/index.ts +0 -2
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
- package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
- package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
- package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
- package/src/contract-functions/unstakeLBTC/index.ts +0 -1
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
- package/src/contracts/abis/index.ts +0 -29
- package/src/contracts/index.ts +0 -63
- package/src/contracts/types.ts +0 -143
- package/src/contracts/utils.ts +0 -288
- package/src/core/assets/catalog.ts +0 -343
- package/src/core/assets/index.ts +0 -40
- package/src/core/assets/types.ts +0 -142
- package/src/core/assets/utils.ts +0 -287
- package/src/core/chains/catalog.ts +0 -396
- package/src/core/chains/index.ts +0 -39
- package/src/core/chains/types.ts +0 -193
- package/src/core/chains/utils.ts +0 -245
- package/src/core/index.ts +0 -72
- package/src/core/types.ts +0 -126
- package/src/debug-api/btc-script-to-address.ts +0 -20
- package/src/debug-api/btc-tx-info.ts +0 -32
- package/src/debug-api/evm-by-btc-address.ts +0 -26
- package/src/debug-api/index.ts +0 -3
- package/src/defi/README.md +0 -517
- package/src/defi/defi-registry.stories.tsx +0 -527
- package/src/defi/defi-registry.ts +0 -295
- package/src/defi/index.ts +0 -17
- package/src/index.ts +0 -336
- package/src/metrics/get-additional-rewards.ts +0 -69
- package/src/metrics/get-lbtc-apy.ts +0 -74
- package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
- package/src/metrics/get-lbtc-stats.ts +0 -59
- package/src/metrics/get-positions-summary.stories.tsx +0 -58
- package/src/metrics/get-positions-summary.ts +0 -132
- package/src/modules/CapabilityRegistry.ts +0 -125
- package/src/modules/apiModule.ts +0 -51
- package/src/modules/btcModule.ts +0 -43
- package/src/modules/evmModule.ts +0 -48
- package/src/modules/index.ts +0 -60
- package/src/referrals/ReferralsClient.ts +0 -34
- package/src/referrals/index.ts +0 -1
- package/src/services/ApiService.ts +0 -152
- package/src/services/BtcService.ts +0 -29
- package/src/services/EvmService.ts +0 -127
- package/src/services/index.ts +0 -43
- package/src/shared/__tests__/errors.test.ts +0 -185
- package/src/shared/__tests__/events.test.ts +0 -120
- package/src/shared/__tests__/types.test.ts +0 -155
- package/src/shared/actions/BaseAction.ts +0 -497
- package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
- package/src/shared/actions/index.ts +0 -9
- package/src/shared/constants/statusConstants.ts +0 -108
- package/src/shared/context/ContextBuilder.ts +0 -149
- package/src/shared/context/index.ts +0 -8
- package/src/shared/context/types.ts +0 -156
- package/src/shared/deposits/depositStatus.ts +0 -402
- package/src/shared/deposits/index.ts +0 -29
- package/src/shared/errors.ts +0 -405
- package/src/shared/events.ts +0 -260
- package/src/shared/evm/switchChain.ts +0 -109
- package/src/shared/index.ts +0 -54
- package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
- package/src/shared/monitoring/createEventEmitter.ts +0 -160
- package/src/shared/monitoring/createProgressEmitter.ts +0 -46
- package/src/shared/monitoring/depositMonitor.ts +0 -211
- package/src/shared/monitoring/index.ts +0 -25
- package/src/shared/validation/index.ts +0 -411
- package/src/stories/arg-types.ts +0 -38
- package/src/stories/components/Badge.tsx +0 -27
- package/src/stories/components/Button/Button.css +0 -10
- package/src/stories/components/Button/Button.tsx +0 -52
- package/src/stories/components/Button/index.ts +0 -1
- package/src/stories/components/Card.tsx +0 -18
- package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
- package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
- package/src/stories/components/CodeBlock/index.ts +0 -1
- package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
- package/src/stories/components/ConnectButton/index.ts +0 -1
- package/src/stories/components/JsonPreview.tsx +0 -84
- package/src/stories/components/Spinner/Spinner.tsx +0 -27
- package/src/stories/components/Spinner/index.ts +0 -1
- package/src/stories/components/StatsCard.tsx +0 -30
- package/src/stories/components/StatusIndicator.tsx +0 -37
- package/src/stories/components/TreeNode.tsx +0 -47
- package/src/stories/components/decorators/function-type.tsx +0 -63
- package/src/stories/components/decorators/index.ts +0 -2
- package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
- package/src/stories/components/error-block.tsx +0 -21
- package/src/stories/components/index.ts +0 -11
- package/src/stories/constants.ts +0 -3
- package/src/stories/hooks/useConnection.ts +0 -63
- package/src/stories/hooks/useQuery.ts +0 -57
- package/src/tokens/__tests__/token-addresses.test.ts +0 -551
- package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
- package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
- package/src/tokens/abi/BTCK_ABI.ts +0 -1092
- package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
- package/src/tokens/abi/LBTC_ABI.json +0 -1761
- package/src/tokens/abi/LBTC_ABI.ts +0 -1761
- package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
- package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
- package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
- package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
- package/src/tokens/denomination-utils.stories.tsx +0 -176
- package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
- package/src/tokens/getTokenByAddress.stories.tsx +0 -172
- package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
- package/src/tokens/getTokenInfo.stories.tsx +0 -133
- package/src/tokens/isUpgradedContract.stories.tsx +0 -124
- package/src/tokens/lbtc-addresses.ts +0 -18
- package/src/tokens/token-addresses.ts +0 -477
- package/src/tokens/tokens.ts +0 -249
- package/src/tokens/types.ts +0 -80
- package/src/utils/array.ts +0 -31
- package/src/utils/block.ts +0 -23
- package/src/utils/chain.ts +0 -152
- package/src/utils/consoleLogger.ts +0 -140
- package/src/utils/ensureNotSanctionedAddress.ts +0 -11
- package/src/utils/env.ts +0 -20
- package/src/utils/err.ts +0 -83
- package/src/utils/evmAccount.ts +0 -47
- package/src/utils/gas.ts +0 -36
- package/src/utils/hex.ts +0 -9
- package/src/utils/http.ts +0 -224
- package/src/utils/numbers.ts +0 -37
- package/src/utils/pagination.ts +0 -70
- package/src/utils/satoshi.ts +0 -41
- package/src/utils/time.ts +0 -12
- package/src/utils/transaction-executor.ts +0 -299
- package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
- package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
- package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
- package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
- package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
- package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
- package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
- package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
- package/src/vaults/abi/index.ts +0 -4
- package/src/vaults/index.ts +0 -46
- package/src/vaults/lib/config.ts +0 -184
- package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
- package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
- package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
- package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
- package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
- package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
- package/src/vaults/lib/ops/deposit.ts +0 -152
- package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
- package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
- package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
- package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
- package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
- package/src/vaults/lib/ops/withdraw.ts +0 -225
- package/src/version.ts +0 -56
- package/src/vite-env.d.ts +0 -1
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Chain Configuration for Unstake
|
|
3
|
-
*
|
|
4
|
-
* Handles unstaking LBTC to BTC (cross-chain) or BTC.b (same-chain).
|
|
5
|
-
* Routes are derived from ASSET_CATALOG to ensure consistency.
|
|
6
|
-
*
|
|
7
|
-
* @module chains/evm/actions/unstake/config/evm
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
AssetId,
|
|
12
|
-
Chain,
|
|
13
|
-
Env,
|
|
14
|
-
getEvmAssetChains,
|
|
15
|
-
getEvmChainsWithAllAssets,
|
|
16
|
-
} from '../../../../../core';
|
|
17
|
-
import {
|
|
18
|
-
bitcoinAddressSchema,
|
|
19
|
-
evmAddressSchema,
|
|
20
|
-
} from '../../../../../shared/validation';
|
|
21
|
-
import type { ChainConfig } from './types';
|
|
22
|
-
|
|
23
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
24
|
-
// Catalog-Derived Chain Lists
|
|
25
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
26
|
-
|
|
27
|
-
/** EVM chains with LBTC deployed (can unstake to BTC) */
|
|
28
|
-
const LBTC_PROD_CHAINS = getEvmAssetChains(AssetId.LBTC, [Env.prod]);
|
|
29
|
-
const LBTC_TESTNET_CHAINS = getEvmAssetChains(AssetId.LBTC, [
|
|
30
|
-
Env.testnet,
|
|
31
|
-
Env.stage,
|
|
32
|
-
Env.dev,
|
|
33
|
-
Env.ibc,
|
|
34
|
-
]);
|
|
35
|
-
|
|
36
|
-
/** EVM chains with BOTH LBTC and BTCb deployed (can unstake to BTCb) */
|
|
37
|
-
const LBTC_BTCB_PROD_CHAINS = getEvmChainsWithAllAssets(
|
|
38
|
-
[AssetId.LBTC, AssetId.BTCb],
|
|
39
|
-
[Env.prod],
|
|
40
|
-
);
|
|
41
|
-
const LBTC_BTCB_TESTNET_CHAINS = getEvmChainsWithAllAssets(
|
|
42
|
-
[AssetId.LBTC, AssetId.BTCb],
|
|
43
|
-
[Env.testnet, Env.stage, Env.dev, Env.ibc],
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
47
|
-
// Configuration Objects
|
|
48
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* EVM → BTC configuration (cross-chain unstake)
|
|
52
|
-
*
|
|
53
|
-
* Burns LBTC on EVM, releases BTC on Bitcoin network.
|
|
54
|
-
* Source chains derived from ASSET_CATALOG LBTC deployments.
|
|
55
|
-
*/
|
|
56
|
-
export const evmToBtcConfig: ChainConfig = {
|
|
57
|
-
chainType: 'evm',
|
|
58
|
-
|
|
59
|
-
routes: [
|
|
60
|
-
// Production: EVM chains with LBTC → Bitcoin Mainnet
|
|
61
|
-
{
|
|
62
|
-
sourceChains: LBTC_PROD_CHAINS,
|
|
63
|
-
destChain: Chain.BITCOIN_MAINNET,
|
|
64
|
-
envs: [Env.prod],
|
|
65
|
-
},
|
|
66
|
-
// Testnet: EVM chains with LBTC → Bitcoin Signet
|
|
67
|
-
{
|
|
68
|
-
sourceChains: LBTC_TESTNET_CHAINS,
|
|
69
|
-
destChain: Chain.BITCOIN_SIGNET,
|
|
70
|
-
envs: [Env.testnet, Env.stage, Env.dev, Env.ibc],
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
|
|
74
|
-
recipientSchema: bitcoinAddressSchema,
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* EVM → BTC.b configuration (same-chain wrapped)
|
|
79
|
-
*
|
|
80
|
-
* Burns LBTC on EVM, mints BTC.b on same EVM chain.
|
|
81
|
-
* Only available on chains with BOTH LBTC and BTCb deployed.
|
|
82
|
-
* Routes are generated dynamically from catalog.
|
|
83
|
-
*/
|
|
84
|
-
export const evmToBtcbConfig: ChainConfig = {
|
|
85
|
-
chainType: 'evm',
|
|
86
|
-
|
|
87
|
-
routes: [
|
|
88
|
-
// Production: Same-chain routes for chains with both LBTC and BTCb
|
|
89
|
-
...LBTC_BTCB_PROD_CHAINS.map(chain => ({
|
|
90
|
-
sourceChains: [chain],
|
|
91
|
-
destChain: chain,
|
|
92
|
-
envs: [Env.prod] as Env[],
|
|
93
|
-
})),
|
|
94
|
-
// Testnet: Same-chain routes
|
|
95
|
-
...LBTC_BTCB_TESTNET_CHAINS.map(chain => ({
|
|
96
|
-
sourceChains: [chain],
|
|
97
|
-
destChain: chain,
|
|
98
|
-
envs: [Env.testnet, Env.stage, Env.dev, Env.ibc] as Env[],
|
|
99
|
-
})),
|
|
100
|
-
],
|
|
101
|
-
|
|
102
|
-
recipientSchema: evmAddressSchema,
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Check if unstake to BTC is supported
|
|
107
|
-
*/
|
|
108
|
-
export function isBtcUnstakeSupported(sourceChain: Chain, env: Env): boolean {
|
|
109
|
-
return evmToBtcConfig.routes.some(
|
|
110
|
-
route =>
|
|
111
|
-
route.sourceChains.includes(sourceChain) && route.envs.includes(env),
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Check if unstake to BTC.b is supported
|
|
117
|
-
*/
|
|
118
|
-
export function isBtcbUnstakeSupported(sourceChain: Chain, env: Env): boolean {
|
|
119
|
-
return evmToBtcbConfig.routes.some(
|
|
120
|
-
route =>
|
|
121
|
-
route.sourceChains.includes(sourceChain) && route.envs.includes(env),
|
|
122
|
-
);
|
|
123
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Unstake Chain Configurations
|
|
3
|
-
*
|
|
4
|
-
* @module chains/evm/actions/unstake/config
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
evmToBtcbConfig,
|
|
9
|
-
evmToBtcConfig,
|
|
10
|
-
isBtcbUnstakeSupported,
|
|
11
|
-
isBtcUnstakeSupported,
|
|
12
|
-
} from './evm';
|
|
13
|
-
export type { ChainConfig, RouteDefinition } from './types';
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Unstake Chain Configuration Types
|
|
3
|
-
*
|
|
4
|
-
* @module chains/evm/actions/unstake/config/types
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { z } from 'zod';
|
|
8
|
-
|
|
9
|
-
import type { Chain, ChainType, Env } from '../../../../../core';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Route definition for EVM unstake operations
|
|
13
|
-
*/
|
|
14
|
-
export interface RouteDefinition {
|
|
15
|
-
/** Supported source chains (where LBTC is burned) */
|
|
16
|
-
sourceChains: Chain[];
|
|
17
|
-
/** Destination chain (where BTC/BTC.b is received) */
|
|
18
|
-
destChain: Chain;
|
|
19
|
-
/** Supported environments */
|
|
20
|
-
envs: Env[];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Chain-specific configuration for EVM unstake operations
|
|
25
|
-
*
|
|
26
|
-
* EVM unstake burns LBTC and releases BTC (cross-chain) or BTC.b (same-chain).
|
|
27
|
-
*/
|
|
28
|
-
export interface ChainConfig {
|
|
29
|
-
/** Chain type identifier */
|
|
30
|
-
chainType: ChainType;
|
|
31
|
-
|
|
32
|
-
/** Supported routes for this chain type */
|
|
33
|
-
routes: RouteDefinition[];
|
|
34
|
-
|
|
35
|
-
/** Recipient address validation Zod schema */
|
|
36
|
-
recipientSchema: z.ZodType<string>;
|
|
37
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Unstake Factory Functions
|
|
3
|
-
*
|
|
4
|
-
* @module chains/evm/actions/unstake/factory
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { LombardConfig } from '../../../../config/types';
|
|
8
|
-
import type { EvmCoreContext } from '../../../../shared/context';
|
|
9
|
-
import { createEvmCoreContext } from '../../../../shared/context';
|
|
10
|
-
import { EvmUnstake } from './EvmUnstake';
|
|
11
|
-
import type { EvmUnstakeParams } from './types';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Create EvmUnstake action from config
|
|
15
|
-
*
|
|
16
|
-
* @internal This factory is for internal use. Use createLombardSDK() instead:
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const sdk = await createLombardSDK({ env: Env.prod, providers: { evm: () => window.ethereum } });
|
|
21
|
-
* const unstake = sdk.chain.evm.unstake({
|
|
22
|
-
* sourceChain: Chain.ETHEREUM,
|
|
23
|
-
* assetOut: AssetId.BTC,
|
|
24
|
-
* });
|
|
25
|
-
* await unstake.prepare({ amount: '0.1', recipient: 'bc1q...' });
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export function evmUnstake(
|
|
29
|
-
config: LombardConfig,
|
|
30
|
-
params: EvmUnstakeParams,
|
|
31
|
-
): EvmUnstake {
|
|
32
|
-
const ctx = createEvmCoreContext(config);
|
|
33
|
-
return new EvmUnstake(ctx, params);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Create EvmUnstake action from context
|
|
38
|
-
*/
|
|
39
|
-
export function createEvmUnstake(
|
|
40
|
-
ctx: EvmCoreContext,
|
|
41
|
-
params: EvmUnstakeParams,
|
|
42
|
-
): EvmUnstake {
|
|
43
|
-
return new EvmUnstake(ctx, params);
|
|
44
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Unstake Action
|
|
3
|
-
*
|
|
4
|
-
* @module chains/evm/actions/unstake
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export type { ChainConfig, RouteDefinition } from './config';
|
|
8
|
-
export {
|
|
9
|
-
evmToBtcbConfig,
|
|
10
|
-
evmToBtcConfig,
|
|
11
|
-
isBtcbUnstakeSupported,
|
|
12
|
-
isBtcUnstakeSupported,
|
|
13
|
-
} from './config';
|
|
14
|
-
export { EvmUnstake } from './EvmUnstake';
|
|
15
|
-
export { createEvmUnstake,evmUnstake } from './factory';
|
|
16
|
-
export {
|
|
17
|
-
type EvmUnstakeParams,
|
|
18
|
-
type EvmUnstakePrepareParams,
|
|
19
|
-
type EvmUnstakeProgress,
|
|
20
|
-
EvmUnstakeStatus,
|
|
21
|
-
type IEvmUnstake,
|
|
22
|
-
} from './types';
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Unstake Action Types
|
|
3
|
-
*
|
|
4
|
-
* ## Fee Authorization
|
|
5
|
-
*
|
|
6
|
-
* Fee authorization is required when:
|
|
7
|
-
* - Output asset is BTC.b (LBTC → BTC.b conversion)
|
|
8
|
-
* - Source chain is Ethereum/Sepolia (unsubsidized chains)
|
|
9
|
-
*
|
|
10
|
-
* **Flow with fee auth (LBTC → BTC.b on Ethereum/Sepolia):**
|
|
11
|
-
* IDLE → NEEDS_FEE_AUTHORIZATION → READY → COMPLETED
|
|
12
|
-
*
|
|
13
|
-
* **Flow without fee auth (LBTC → BTC, or BTC.b on Base/BSC):**
|
|
14
|
-
* IDLE → READY → COMPLETED
|
|
15
|
-
*
|
|
16
|
-
* @module chains/evm/actions/unstake/types
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import type {
|
|
20
|
-
AssetId,
|
|
21
|
-
Chain,
|
|
22
|
-
StepStatus,
|
|
23
|
-
StrategyProgress,
|
|
24
|
-
} from '../../../../core';
|
|
25
|
-
import type { MonitorableAction } from '../../../../shared/actions/BaseAction';
|
|
26
|
-
import type { EvmOperationStatus } from '../../../../shared/constants/statusConstants';
|
|
27
|
-
import type { LombardError } from '../../../../shared/errors';
|
|
28
|
-
import type { FeeAuthState } from '../../shared/feeAuth';
|
|
29
|
-
|
|
30
|
-
// Re-export status for convenience
|
|
31
|
-
export { EvmOperationStatus as EvmUnstakeStatus } from '../../../../shared/constants/statusConstants';
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* EVM Unstake parameters
|
|
35
|
-
*/
|
|
36
|
-
export interface EvmUnstakeParams {
|
|
37
|
-
/** Input asset (LBTC) */
|
|
38
|
-
assetIn: AssetId;
|
|
39
|
-
/** Output asset (BTC for cross-chain, BTCb for same-chain) */
|
|
40
|
-
assetOut: AssetId;
|
|
41
|
-
/** Source chain (where LBTC is burned) */
|
|
42
|
-
sourceChain: Chain;
|
|
43
|
-
/** Destination chain (Bitcoin or same EVM chain) */
|
|
44
|
-
destChain: Chain;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* EVM Unstake prepare parameters
|
|
49
|
-
*/
|
|
50
|
-
export interface EvmUnstakePrepareParams {
|
|
51
|
-
/** Amount to unstake (in LBTC) */
|
|
52
|
-
amount: string;
|
|
53
|
-
/** Recipient address (BTC address or EVM address) */
|
|
54
|
-
recipient: string;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* EVM Unstake progress
|
|
59
|
-
*/
|
|
60
|
-
export interface EvmUnstakeProgress
|
|
61
|
-
extends StrategyProgress<EvmOperationStatus> {
|
|
62
|
-
status: EvmOperationStatus;
|
|
63
|
-
steps: {
|
|
64
|
-
burning: StepStatus;
|
|
65
|
-
releasing: StepStatus;
|
|
66
|
-
};
|
|
67
|
-
txHash?: string;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* EVM Unstake interface
|
|
72
|
-
*/
|
|
73
|
-
export interface IEvmUnstake extends MonitorableAction {
|
|
74
|
-
readonly status: EvmOperationStatus;
|
|
75
|
-
readonly error: LombardError | null;
|
|
76
|
-
readonly amount?: string;
|
|
77
|
-
readonly recipient?: string;
|
|
78
|
-
readonly txHash?: string;
|
|
79
|
-
|
|
80
|
-
/** Fee authorization state (for UI display) */
|
|
81
|
-
readonly feeAuth: FeeAuthState;
|
|
82
|
-
|
|
83
|
-
prepare(params: EvmUnstakePrepareParams): Promise<void>;
|
|
84
|
-
/** Authorize the network fee (when status is NEEDS_FEE_AUTHORIZATION) */
|
|
85
|
-
authorizeFee(): Promise<void>;
|
|
86
|
-
execute(): Promise<{ txHash: string }>;
|
|
87
|
-
}
|
package/src/chains/evm/index.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Chain
|
|
3
|
-
*
|
|
4
|
-
* Exports for the EVM chain namespace.
|
|
5
|
-
*
|
|
6
|
-
* @module chains/evm
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
// Main actions class
|
|
10
|
-
export { EvmActions, evmActions } from './EvmActions';
|
|
11
|
-
|
|
12
|
-
// All action exports
|
|
13
|
-
export * from './actions';
|
|
14
|
-
|
|
15
|
-
// Shared utilities
|
|
16
|
-
export * from './shared';
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Fee Authorization Logic for EVM Actions
|
|
3
|
-
*
|
|
4
|
-
* Provides fee authorization support for EVM actions that require it:
|
|
5
|
-
* - EvmStake (BTC.b → LBTC on Ethereum/Sepolia)
|
|
6
|
-
* - EvmRedeem (BTC.b → BTC on Ethereum/Sepolia)
|
|
7
|
-
* - EvmUnstake (LBTC → BTC.b on Ethereum/Sepolia)
|
|
8
|
-
*
|
|
9
|
-
* Fee authorization is only required on unsubsidized chains (Ethereum, Sepolia).
|
|
10
|
-
* Other chains (Base, BSC, Avalanche) are subsidized by Lombard.
|
|
11
|
-
*
|
|
12
|
-
* @module chains/evm/shared/feeAuth
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import type { EIP1193Provider } from 'viem';
|
|
16
|
-
|
|
17
|
-
import { getNetworkFeeSignature } from '../../../api-functions';
|
|
18
|
-
import { storeNetworkFeeSignature } from '../../../api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature';
|
|
19
|
-
import type { ChainId } from '../../../common/chains';
|
|
20
|
-
import { requiresAutoMintFee } from '../../../common/fee-requirements';
|
|
21
|
-
import { getMintingFee } from '../../../contract-functions';
|
|
22
|
-
import { signNetworkFee } from '../../../contract-functions/signNetworkFee/signNetworkFee';
|
|
23
|
-
import type { Env } from '../../../core';
|
|
24
|
-
import { Token } from '../../../tokens/token-addresses';
|
|
25
|
-
import { getTokenContractInfo } from '../../../tokens/tokens';
|
|
26
|
-
|
|
27
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
28
|
-
// Types
|
|
29
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Fee authorization state
|
|
33
|
-
*/
|
|
34
|
-
export interface FeeAuthState {
|
|
35
|
-
/** Whether fee authorization is required for this chain */
|
|
36
|
-
requiresAuth: boolean;
|
|
37
|
-
/** Whether fee authorization is complete (valid signature exists) */
|
|
38
|
-
isAuthorized: boolean;
|
|
39
|
-
/** Minting fee in satoshis (for signing) */
|
|
40
|
-
feeInSatoshis: bigint | null;
|
|
41
|
-
/** Minting fee formatted in BTC (for display) */
|
|
42
|
-
feeFormatted: string | null;
|
|
43
|
-
/** Signature expiration date (Unix timestamp in seconds) */
|
|
44
|
-
expirationDate: string | null;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Fee authorization check result
|
|
49
|
-
*/
|
|
50
|
-
export interface FeeAuthCheckResult {
|
|
51
|
-
/** Whether fee authorization is required */
|
|
52
|
-
requiresAuth: boolean;
|
|
53
|
-
/** Whether a valid (non-expired) signature exists */
|
|
54
|
-
hasValidSignature: boolean;
|
|
55
|
-
/** Minting fee in satoshis */
|
|
56
|
-
feeInSatoshis: bigint | null;
|
|
57
|
-
/** Minting fee formatted in BTC */
|
|
58
|
-
feeFormatted: string | null;
|
|
59
|
-
/** Expiration date if signature exists */
|
|
60
|
-
expirationDate: string | null;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Parameters for fee authorization
|
|
65
|
-
*/
|
|
66
|
-
export interface AuthorizeFeeParams {
|
|
67
|
-
chainId: ChainId;
|
|
68
|
-
account: `0x${string}`;
|
|
69
|
-
feeInSatoshis: bigint;
|
|
70
|
-
provider: EIP1193Provider;
|
|
71
|
-
env: Env;
|
|
72
|
-
token: Token;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
76
|
-
// Fee Authorization Logic
|
|
77
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Check if fee authorization is required and if a valid signature exists
|
|
81
|
-
*
|
|
82
|
-
* This should be called in the action's prepare() method to determine
|
|
83
|
-
* whether to transition to NEEDS_FEE_AUTHORIZATION or READY status.
|
|
84
|
-
*
|
|
85
|
-
* @param chainId - The EVM chain ID
|
|
86
|
-
* @param account - The user's EVM account address
|
|
87
|
-
* @param env - The environment (prod, stage, testnet)
|
|
88
|
-
* @param token - The token type (BTCb or LBTC)
|
|
89
|
-
* @returns Fee authorization check result
|
|
90
|
-
*/
|
|
91
|
-
export async function checkFeeAuthorization(
|
|
92
|
-
chainId: ChainId,
|
|
93
|
-
account: `0x${string}`,
|
|
94
|
-
env: Env,
|
|
95
|
-
token: Token,
|
|
96
|
-
): Promise<FeeAuthCheckResult> {
|
|
97
|
-
// Check if this chain requires fee authorization
|
|
98
|
-
if (!requiresAutoMintFee(chainId)) {
|
|
99
|
-
return {
|
|
100
|
-
requiresAuth: false,
|
|
101
|
-
hasValidSignature: false,
|
|
102
|
-
feeInSatoshis: null,
|
|
103
|
-
feeFormatted: null,
|
|
104
|
-
expirationDate: null,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Get token address for signature lookup
|
|
109
|
-
const tokenInfo = await getTokenContractInfo(token, chainId, env);
|
|
110
|
-
|
|
111
|
-
// Check for existing valid signature on server
|
|
112
|
-
const existingSignature = await getNetworkFeeSignature({
|
|
113
|
-
address: account,
|
|
114
|
-
chainId,
|
|
115
|
-
env,
|
|
116
|
-
tokenAddress: tokenInfo.address,
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
// Check if signature exists and is not expired
|
|
120
|
-
const isExpired = existingSignature.expirationDate
|
|
121
|
-
? new Date(Number(existingSignature.expirationDate) * 1000) < new Date()
|
|
122
|
-
: false;
|
|
123
|
-
|
|
124
|
-
const hasValidSignature = existingSignature.hasSignature && !isExpired;
|
|
125
|
-
|
|
126
|
-
// If no valid signature, fetch the minting fee
|
|
127
|
-
let feeInSatoshis: bigint | null = null;
|
|
128
|
-
let feeFormatted: string | null = null;
|
|
129
|
-
|
|
130
|
-
if (!hasValidSignature) {
|
|
131
|
-
const feeInBtc = await getMintingFee({
|
|
132
|
-
token,
|
|
133
|
-
chainId,
|
|
134
|
-
env,
|
|
135
|
-
});
|
|
136
|
-
feeInSatoshis = BigInt(feeInBtc.times(1e8).toFixed(0));
|
|
137
|
-
feeFormatted = feeInBtc.toFixed(8);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return {
|
|
141
|
-
requiresAuth: true,
|
|
142
|
-
hasValidSignature,
|
|
143
|
-
feeInSatoshis,
|
|
144
|
-
feeFormatted,
|
|
145
|
-
expirationDate: existingSignature.expirationDate ?? null,
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Authorize fee by signing and storing the signature
|
|
151
|
-
*
|
|
152
|
-
* This should be called from the action's authorizeFee() method.
|
|
153
|
-
*
|
|
154
|
-
* @param params - Authorization parameters
|
|
155
|
-
* @returns The signature
|
|
156
|
-
*/
|
|
157
|
-
export async function authorizeFee(
|
|
158
|
-
params: AuthorizeFeeParams,
|
|
159
|
-
): Promise<{ signature: `0x${string}`; typedData: string }> {
|
|
160
|
-
const { chainId, account, feeInSatoshis, provider, env, token } = params;
|
|
161
|
-
|
|
162
|
-
// Get token address for storing signature
|
|
163
|
-
const tokenInfo = await getTokenContractInfo(token, chainId, env);
|
|
164
|
-
|
|
165
|
-
// Sign the network fee
|
|
166
|
-
const signResult = await signNetworkFee({
|
|
167
|
-
fee: feeInSatoshis,
|
|
168
|
-
account,
|
|
169
|
-
chainId,
|
|
170
|
-
provider,
|
|
171
|
-
env,
|
|
172
|
-
token,
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
// Store the signature on the server
|
|
176
|
-
await storeNetworkFeeSignature({
|
|
177
|
-
signature: signResult.signature,
|
|
178
|
-
typedData: signResult.typedData,
|
|
179
|
-
address: account,
|
|
180
|
-
env,
|
|
181
|
-
tokenAddress: tokenInfo.address,
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
return signResult;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Create initial fee auth state
|
|
189
|
-
*/
|
|
190
|
-
export function createInitialFeeAuthState(): FeeAuthState {
|
|
191
|
-
return {
|
|
192
|
-
requiresAuth: false,
|
|
193
|
-
isAuthorized: false,
|
|
194
|
-
feeInSatoshis: null,
|
|
195
|
-
feeFormatted: null,
|
|
196
|
-
expirationDate: null,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Solana Actions
|
|
3
|
-
*
|
|
4
|
-
* Provides factory methods for Solana operations (unstake).
|
|
5
|
-
*
|
|
6
|
-
* Note: Solana module must be registered before using these actions.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { solanaActions } from '@lombard.finance/sdk';
|
|
11
|
-
*
|
|
12
|
-
* const solana = solanaActions(config);
|
|
13
|
-
* const unstake = solana.unstake({ ... });
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import type { SolanaService } from '@lombard.finance/sdk-common';
|
|
18
|
-
|
|
19
|
-
import { PartnerConfiguration } from '../../client/PartnerConfiguration';
|
|
20
|
-
import type { LombardConfig } from '../../config/types';
|
|
21
|
-
import { getProviderGetter } from '../../config/types';
|
|
22
|
-
import { CapabilityRegistry } from '../../modules/CapabilityRegistry';
|
|
23
|
-
import type { SolanaCoreContext } from '../../shared/context';
|
|
24
|
-
import { SolanaUnstake } from './actions/unstake/SolanaUnstake';
|
|
25
|
-
import type {
|
|
26
|
-
ISolanaUnstake,
|
|
27
|
-
SolanaUnstakeParams,
|
|
28
|
-
} from './actions/unstake/types';
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Create Solana core context from config
|
|
32
|
-
* Only called when an action is invoked (lazy initialization)
|
|
33
|
-
*/
|
|
34
|
-
function createSolanaCoreContext(config: LombardConfig): SolanaCoreContext {
|
|
35
|
-
const registry = new CapabilityRegistry(config.modules, config);
|
|
36
|
-
const solana = registry.require('solana') as SolanaService;
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
env: config.env,
|
|
40
|
-
partner: new PartnerConfiguration(config.partner),
|
|
41
|
-
getProvider: async key => {
|
|
42
|
-
const getter = getProviderGetter(config.providers, key);
|
|
43
|
-
if (!getter) return undefined;
|
|
44
|
-
return getter();
|
|
45
|
-
},
|
|
46
|
-
solana,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Solana Actions
|
|
52
|
-
*
|
|
53
|
-
* Actions are lazy-loaded - the solana module is only required when
|
|
54
|
-
* an action is actually called.
|
|
55
|
-
*/
|
|
56
|
-
export class SolanaActions {
|
|
57
|
-
private _ctx: SolanaCoreContext | null = null;
|
|
58
|
-
|
|
59
|
-
constructor(private readonly config: LombardConfig) {}
|
|
60
|
-
|
|
61
|
-
private get ctx(): SolanaCoreContext {
|
|
62
|
-
if (!this._ctx) {
|
|
63
|
-
this._ctx = createSolanaCoreContext(this.config);
|
|
64
|
-
}
|
|
65
|
-
return this._ctx;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Unstake LBTC → BTC
|
|
70
|
-
*
|
|
71
|
-
* Burns LBTC on Solana and releases BTC on Bitcoin.
|
|
72
|
-
*
|
|
73
|
-
* @throws LombardError if solana module is not registered
|
|
74
|
-
*/
|
|
75
|
-
unstake(params: SolanaUnstakeParams): ISolanaUnstake {
|
|
76
|
-
return new SolanaUnstake(this.ctx, params);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Create Solana actions from config
|
|
82
|
-
*/
|
|
83
|
-
export function solanaActions(config: LombardConfig): SolanaActions {
|
|
84
|
-
return new SolanaActions(config);
|
|
85
|
-
}
|