@lombard.finance/sdk 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/common/feature-config.d.ts.map +1 -1
- package/dist/index2.cjs +6 -6
- package/dist/index2.js +762 -754
- package/package.json +7 -8
- package/src/__tests__/AssetNamespace.spec.ts +0 -234
- package/src/__tests__/helpers/createTestConfig.ts +0 -90
- package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
- package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
- package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
- package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
- package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
- package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
- package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
- package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
- package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
- package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
- package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
- package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
- package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
- package/src/__tests__/services/ApiService.test.ts +0 -62
- package/src/__tests__/services/BtcService.test.ts +0 -30
- package/src/__tests__/services/EvmService.test.ts +0 -39
- package/src/__tests__/setup.ts +0 -16
- package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
- package/src/__tests__/test-utils/evm-wallet.ts +0 -38
- package/src/__tests__/test-utils/solana-wallet.ts +0 -22
- package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
- package/src/__tests__/test-utils/sui-wallet.ts +0 -14
- package/src/__tests__/test-utils/test-constraints.ts +0 -110
- package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
- package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
- package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
- package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
- package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
- package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
- package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
- package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
- package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
- package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
- package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
- package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
- package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
- package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
- package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
- package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
- package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
- package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
- package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
- package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
- package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
- package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
- package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
- package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
- package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
- package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
- package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
- package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
- package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
- package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
- package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
- package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
- package/src/api-functions/get-badges-by-address/index.ts +0 -1
- package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
- package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
- package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
- package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
- package/src/api-functions/getDepositsByAddress/index.ts +0 -1
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
- package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
- package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
- package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
- package/src/api-functions/getPointsByAddress/index.ts +0 -1
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
- package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
- package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/index.ts +0 -11
- package/src/api-functions/setReferral/index.ts +0 -1
- package/src/api-functions/setReferral/setReferral.ts +0 -67
- package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
- package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
- package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
- package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
- package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
- package/src/bridge/index.ts +0 -16
- package/src/bridge/lib/bridge.stories.tsx +0 -90
- package/src/bridge/lib/bridge.ts +0 -115
- package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
- package/src/bridge/lib/ccip-bridge.ts +0 -214
- package/src/bridge/lib/ccip-config.ts +0 -54
- package/src/bridge/lib/config.ts +0 -384
- package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
- package/src/bridge/lib/oft-bridge.ts +0 -217
- package/src/chains/btc/BtcActions.ts +0 -192
- package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
- package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
- package/src/chains/btc/actions/deposit/config/index.ts +0 -53
- package/src/chains/btc/actions/deposit/config/types.ts +0 -108
- package/src/chains/btc/actions/deposit/factory.ts +0 -53
- package/src/chains/btc/actions/deposit/index.ts +0 -23
- package/src/chains/btc/actions/deposit/types.ts +0 -120
- package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
- package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
- package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
- package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
- package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
- package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
- package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
- package/src/chains/btc/actions/index.ts +0 -14
- package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
- package/src/chains/btc/actions/shared/index.ts +0 -28
- package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
- package/src/chains/btc/actions/shared/validation.ts +0 -180
- package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
- package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
- package/src/chains/btc/actions/stake/config/evm.ts +0 -183
- package/src/chains/btc/actions/stake/config/index.ts +0 -122
- package/src/chains/btc/actions/stake/config/solana.ts +0 -96
- package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
- package/src/chains/btc/actions/stake/config/sui.ts +0 -61
- package/src/chains/btc/actions/stake/config/types.ts +0 -165
- package/src/chains/btc/actions/stake/factory.ts +0 -53
- package/src/chains/btc/actions/stake/index.ts +0 -22
- package/src/chains/btc/actions/stake/types.ts +0 -175
- package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
- package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
- package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
- package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
- package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
- package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
- package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
- package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
- package/src/chains/btc/client/mempool/error.ts +0 -24
- package/src/chains/btc/client/mempool/mempool.ts +0 -23
- package/src/chains/btc/index.ts +0 -71
- package/src/chains/evm/EvmActions.ts +0 -185
- package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
- package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
- package/src/chains/evm/actions/deploy/config/index.ts +0 -8
- package/src/chains/evm/actions/deploy/config/types.ts +0 -43
- package/src/chains/evm/actions/deploy/factory.ts +0 -44
- package/src/chains/evm/actions/deploy/index.ts +0 -17
- package/src/chains/evm/actions/deploy/types.ts +0 -74
- package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
- package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
- package/src/chains/evm/actions/deposit/config/index.ts +0 -8
- package/src/chains/evm/actions/deposit/config/types.ts +0 -39
- package/src/chains/evm/actions/deposit/factory.ts +0 -44
- package/src/chains/evm/actions/deposit/index.ts +0 -17
- package/src/chains/evm/actions/deposit/types.ts +0 -87
- package/src/chains/evm/actions/index.ts +0 -67
- package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
- package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
- package/src/chains/evm/actions/redeem/config/index.ts +0 -8
- package/src/chains/evm/actions/redeem/config/types.ts +0 -39
- package/src/chains/evm/actions/redeem/factory.ts +0 -43
- package/src/chains/evm/actions/redeem/index.ts +0 -17
- package/src/chains/evm/actions/redeem/types.ts +0 -93
- package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
- package/src/chains/evm/actions/stake/config/evm.ts +0 -89
- package/src/chains/evm/actions/stake/config/index.ts +0 -8
- package/src/chains/evm/actions/stake/config/types.ts +0 -89
- package/src/chains/evm/actions/stake/factory.ts +0 -52
- package/src/chains/evm/actions/stake/index.ts +0 -30
- package/src/chains/evm/actions/stake/types.ts +0 -104
- package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
- package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
- package/src/chains/evm/actions/unstake/config/index.ts +0 -13
- package/src/chains/evm/actions/unstake/config/types.ts +0 -37
- package/src/chains/evm/actions/unstake/factory.ts +0 -44
- package/src/chains/evm/actions/unstake/index.ts +0 -22
- package/src/chains/evm/actions/unstake/types.ts +0 -87
- package/src/chains/evm/index.ts +0 -16
- package/src/chains/evm/shared/feeAuth.ts +0 -198
- package/src/chains/evm/shared/index.ts +0 -7
- package/src/chains/solana/SolanaActions.ts +0 -85
- package/src/chains/solana/actions/index.ts +0 -7
- package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
- package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
- package/src/chains/solana/actions/unstake/config/index.ts +0 -8
- package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
- package/src/chains/solana/actions/unstake/config/types.ts +0 -35
- package/src/chains/solana/actions/unstake/factory.ts +0 -34
- package/src/chains/solana/actions/unstake/index.ts +0 -14
- package/src/chains/solana/actions/unstake/types.ts +0 -58
- package/src/chains/solana/index.ts +0 -8
- package/src/chains/starknet/StarknetActions.ts +0 -85
- package/src/chains/starknet/actions/index.ts +0 -7
- package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
- package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
- package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
- package/src/chains/starknet/actions/unstake/factory.ts +0 -32
- package/src/chains/starknet/actions/unstake/index.ts +0 -14
- package/src/chains/starknet/actions/unstake/types.ts +0 -57
- package/src/chains/starknet/index.ts +0 -8
- package/src/chains/sui/SuiActions.ts +0 -82
- package/src/chains/sui/actions/index.ts +0 -7
- package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
- package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
- package/src/chains/sui/actions/unstake/config/index.ts +0 -8
- package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
- package/src/chains/sui/actions/unstake/config/types.ts +0 -27
- package/src/chains/sui/actions/unstake/factory.ts +0 -32
- package/src/chains/sui/actions/unstake/index.ts +0 -14
- package/src/chains/sui/actions/unstake/types.ts +0 -57
- package/src/chains/sui/index.ts +0 -8
- package/src/client/ApiNamespace.ts +0 -302
- package/src/client/AssetNamespace.ts +0 -112
- package/src/client/LombardSDK.ts +0 -212
- package/src/client/PartnerConfiguration.ts +0 -50
- package/src/client/createConfig.ts +0 -90
- package/src/client/createLombardSDK.ts +0 -130
- package/src/clients/evm-signer-adapter.ts +0 -313
- package/src/clients/public-client.ts +0 -49
- package/src/clients/rpc-url-config.ts +0 -64
- package/src/clients/wallet-client.ts +0 -34
- package/src/common/api-config.ts +0 -48
- package/src/common/blockchain-identifier.ts +0 -217
- package/src/common/chains.stories.tsx +0 -68
- package/src/common/chains.ts +0 -449
- package/src/common/constants.ts +0 -1
- package/src/common/contract-info.ts +0 -9
- package/src/common/feature-config.ts +0 -79
- package/src/common/fee-requirements.ts +0 -34
- package/src/common/parameters.ts +0 -89
- package/src/config/defaults.ts +0 -49
- package/src/config/index.ts +0 -12
- package/src/config/providers.ts +0 -81
- package/src/config/types.ts +0 -216
- package/src/config/validation.ts +0 -69
- package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
- package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
- package/src/contract-functions/approveLBTC/index.ts +0 -1
- package/src/contract-functions/approveToken/approveToken.ts +0 -126
- package/src/contract-functions/approveToken/index.ts +0 -1
- package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
- package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
- package/src/contract-functions/claimLBTC/index.ts +0 -1
- package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
- package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
- package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
- package/src/contract-functions/deposit/depositToken.ts +0 -214
- package/src/contract-functions/deposit/index.ts +0 -1
- package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
- package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
- package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
- package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
- package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
- package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
- package/src/contract-functions/getPermitNonce/index.ts +0 -1
- package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
- package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
- package/src/contract-functions/getShareValue/index.ts +0 -1
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
- package/src/contract-functions/getSharesByAddress/index.ts +0 -4
- package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
- package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
- package/src/contract-functions/index.ts +0 -21
- package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
- package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
- package/src/contract-functions/signNetworkFee/index.ts +0 -1
- package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
- package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
- package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
- package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
- package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
- package/src/contract-functions/signStakeAndBake/index.ts +0 -2
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
- package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
- package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
- package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
- package/src/contract-functions/unstakeLBTC/index.ts +0 -1
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
- package/src/contracts/abis/index.ts +0 -29
- package/src/contracts/index.ts +0 -63
- package/src/contracts/types.ts +0 -143
- package/src/contracts/utils.ts +0 -288
- package/src/core/assets/catalog.ts +0 -343
- package/src/core/assets/index.ts +0 -40
- package/src/core/assets/types.ts +0 -142
- package/src/core/assets/utils.ts +0 -287
- package/src/core/chains/catalog.ts +0 -396
- package/src/core/chains/index.ts +0 -39
- package/src/core/chains/types.ts +0 -193
- package/src/core/chains/utils.ts +0 -245
- package/src/core/index.ts +0 -72
- package/src/core/types.ts +0 -126
- package/src/debug-api/btc-script-to-address.ts +0 -20
- package/src/debug-api/btc-tx-info.ts +0 -32
- package/src/debug-api/evm-by-btc-address.ts +0 -26
- package/src/debug-api/index.ts +0 -3
- package/src/defi/README.md +0 -517
- package/src/defi/defi-registry.stories.tsx +0 -527
- package/src/defi/defi-registry.ts +0 -295
- package/src/defi/index.ts +0 -17
- package/src/index.ts +0 -336
- package/src/metrics/get-additional-rewards.ts +0 -69
- package/src/metrics/get-lbtc-apy.ts +0 -74
- package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
- package/src/metrics/get-lbtc-stats.ts +0 -59
- package/src/metrics/get-positions-summary.stories.tsx +0 -58
- package/src/metrics/get-positions-summary.ts +0 -132
- package/src/modules/CapabilityRegistry.ts +0 -125
- package/src/modules/apiModule.ts +0 -51
- package/src/modules/btcModule.ts +0 -43
- package/src/modules/evmModule.ts +0 -48
- package/src/modules/index.ts +0 -60
- package/src/referrals/ReferralsClient.ts +0 -34
- package/src/referrals/index.ts +0 -1
- package/src/services/ApiService.ts +0 -152
- package/src/services/BtcService.ts +0 -29
- package/src/services/EvmService.ts +0 -127
- package/src/services/index.ts +0 -43
- package/src/shared/__tests__/errors.test.ts +0 -185
- package/src/shared/__tests__/events.test.ts +0 -120
- package/src/shared/__tests__/types.test.ts +0 -155
- package/src/shared/actions/BaseAction.ts +0 -497
- package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
- package/src/shared/actions/index.ts +0 -9
- package/src/shared/constants/statusConstants.ts +0 -108
- package/src/shared/context/ContextBuilder.ts +0 -149
- package/src/shared/context/index.ts +0 -8
- package/src/shared/context/types.ts +0 -156
- package/src/shared/deposits/depositStatus.ts +0 -402
- package/src/shared/deposits/index.ts +0 -29
- package/src/shared/errors.ts +0 -405
- package/src/shared/events.ts +0 -260
- package/src/shared/evm/switchChain.ts +0 -109
- package/src/shared/index.ts +0 -54
- package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
- package/src/shared/monitoring/createEventEmitter.ts +0 -160
- package/src/shared/monitoring/createProgressEmitter.ts +0 -46
- package/src/shared/monitoring/depositMonitor.ts +0 -211
- package/src/shared/monitoring/index.ts +0 -25
- package/src/shared/validation/index.ts +0 -411
- package/src/stories/arg-types.ts +0 -38
- package/src/stories/components/Badge.tsx +0 -27
- package/src/stories/components/Button/Button.css +0 -10
- package/src/stories/components/Button/Button.tsx +0 -52
- package/src/stories/components/Button/index.ts +0 -1
- package/src/stories/components/Card.tsx +0 -18
- package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
- package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
- package/src/stories/components/CodeBlock/index.ts +0 -1
- package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
- package/src/stories/components/ConnectButton/index.ts +0 -1
- package/src/stories/components/JsonPreview.tsx +0 -84
- package/src/stories/components/Spinner/Spinner.tsx +0 -27
- package/src/stories/components/Spinner/index.ts +0 -1
- package/src/stories/components/StatsCard.tsx +0 -30
- package/src/stories/components/StatusIndicator.tsx +0 -37
- package/src/stories/components/TreeNode.tsx +0 -47
- package/src/stories/components/decorators/function-type.tsx +0 -63
- package/src/stories/components/decorators/index.ts +0 -2
- package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
- package/src/stories/components/error-block.tsx +0 -21
- package/src/stories/components/index.ts +0 -11
- package/src/stories/constants.ts +0 -3
- package/src/stories/hooks/useConnection.ts +0 -63
- package/src/stories/hooks/useQuery.ts +0 -57
- package/src/tokens/__tests__/token-addresses.test.ts +0 -551
- package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
- package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
- package/src/tokens/abi/BTCK_ABI.ts +0 -1092
- package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
- package/src/tokens/abi/LBTC_ABI.json +0 -1761
- package/src/tokens/abi/LBTC_ABI.ts +0 -1761
- package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
- package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
- package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
- package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
- package/src/tokens/denomination-utils.stories.tsx +0 -176
- package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
- package/src/tokens/getTokenByAddress.stories.tsx +0 -172
- package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
- package/src/tokens/getTokenInfo.stories.tsx +0 -133
- package/src/tokens/isUpgradedContract.stories.tsx +0 -124
- package/src/tokens/lbtc-addresses.ts +0 -18
- package/src/tokens/token-addresses.ts +0 -477
- package/src/tokens/tokens.ts +0 -249
- package/src/tokens/types.ts +0 -80
- package/src/utils/array.ts +0 -31
- package/src/utils/block.ts +0 -23
- package/src/utils/chain.ts +0 -152
- package/src/utils/consoleLogger.ts +0 -140
- package/src/utils/ensureNotSanctionedAddress.ts +0 -11
- package/src/utils/env.ts +0 -20
- package/src/utils/err.ts +0 -83
- package/src/utils/evmAccount.ts +0 -47
- package/src/utils/gas.ts +0 -36
- package/src/utils/hex.ts +0 -9
- package/src/utils/http.ts +0 -224
- package/src/utils/numbers.ts +0 -37
- package/src/utils/pagination.ts +0 -70
- package/src/utils/satoshi.ts +0 -41
- package/src/utils/time.ts +0 -12
- package/src/utils/transaction-executor.ts +0 -299
- package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
- package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
- package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
- package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
- package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
- package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
- package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
- package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
- package/src/vaults/abi/index.ts +0 -4
- package/src/vaults/index.ts +0 -46
- package/src/vaults/lib/config.ts +0 -184
- package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
- package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
- package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
- package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
- package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
- package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
- package/src/vaults/lib/ops/deposit.ts +0 -152
- package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
- package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
- package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
- package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
- package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
- package/src/vaults/lib/ops/withdraw.ts +0 -225
- package/src/version.ts +0 -56
- package/src/vite-env.d.ts +0 -1
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
|
-
import { Address, zeroAddress } from 'viem';
|
|
4
|
-
|
|
5
|
-
import { getApiConfig } from '../common/api-config';
|
|
6
|
-
import { IEnvParam } from '../common/parameters';
|
|
7
|
-
|
|
8
|
-
type Response = {
|
|
9
|
-
lbtc_base_apy: number;
|
|
10
|
-
lbtc_effective_apy: number;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export type LbtcApy = {
|
|
14
|
-
/**
|
|
15
|
-
* The base APY for LBTC, representing the nominal yield without any bonuses
|
|
16
|
-
* or adjustments.
|
|
17
|
-
*/
|
|
18
|
-
baseApy: BigNumber;
|
|
19
|
-
/**
|
|
20
|
-
* The effective APY for LBTC, including any additional rewards,
|
|
21
|
-
* compounding effects, or protocol-specific incentives.
|
|
22
|
-
*/
|
|
23
|
-
effectiveApy: BigNumber;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/** Returns the current APY (annual percentage yield) for LBTC. */
|
|
27
|
-
export async function getApy({
|
|
28
|
-
account,
|
|
29
|
-
env,
|
|
30
|
-
}: {
|
|
31
|
-
/** The optional account address. Pass it for more accurate APY data. */
|
|
32
|
-
account?: Address;
|
|
33
|
-
} & IEnvParam) {
|
|
34
|
-
const { baseApiUrl } = getApiConfig(env);
|
|
35
|
-
|
|
36
|
-
const url = `${baseApiUrl}/api/v1/analytics/${account || zeroAddress}/apy`;
|
|
37
|
-
const { data } = await axios.get<Response>(url);
|
|
38
|
-
|
|
39
|
-
const apy: LbtcApy = {
|
|
40
|
-
baseApy: BigNumber(data.lbtc_base_apy),
|
|
41
|
-
effectiveApy: BigNumber(data.lbtc_effective_apy),
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
return apy;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
type EstimatedApyResponse = { lbtc_estimated_apy: number };
|
|
48
|
-
export type LbtcEstimatedApy = {
|
|
49
|
-
/**
|
|
50
|
-
* The estimated APY for LBTC based on the specified partner context.
|
|
51
|
-
*
|
|
52
|
-
* This value reflects a projected annual percentage yield that may vary
|
|
53
|
-
* depending on the `partnerId`, taking into account potential partner-specific
|
|
54
|
-
* incentives, compounding assumptions, or estimated future rewards.
|
|
55
|
-
*/
|
|
56
|
-
estimatedApy: BigNumber;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
/** Returns the estimated APY for LBTC. */
|
|
60
|
-
export async function getEstimatedApy({
|
|
61
|
-
partnerId,
|
|
62
|
-
env,
|
|
63
|
-
}: { partnerId?: string } & IEnvParam) {
|
|
64
|
-
const { baseApiUrl } = getApiConfig(env);
|
|
65
|
-
|
|
66
|
-
const url = `${baseApiUrl}/api/v1/analytics/estimated-apy?partner_id=${partnerId || ''}`;
|
|
67
|
-
const { data } = await axios.get<EstimatedApyResponse>(url);
|
|
68
|
-
|
|
69
|
-
const apy: LbtcEstimatedApy = {
|
|
70
|
-
estimatedApy: BigNumber(data.lbtc_estimated_apy),
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return apy;
|
|
74
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import { envSelector } from '../stories/arg-types';
|
|
5
|
-
import { Button } from '../stories/components/Button';
|
|
6
|
-
import { CodeBlock } from '../stories/components/CodeBlock';
|
|
7
|
-
import { functionType, wagmiDecorator } from '../stories/components/decorators';
|
|
8
|
-
import { ErrorBlock } from '../stories/components/error-block';
|
|
9
|
-
import useQuery from '../stories/hooks/useQuery';
|
|
10
|
-
import { getLBTCStats } from './get-lbtc-stats';
|
|
11
|
-
|
|
12
|
-
const meta = {
|
|
13
|
-
title: 'metrics/getLBTCStats',
|
|
14
|
-
component: StoryView,
|
|
15
|
-
tags: ['autodocs'],
|
|
16
|
-
decorators: [wagmiDecorator, functionType('api-get')],
|
|
17
|
-
argTypes: { ...envSelector },
|
|
18
|
-
} satisfies Meta<typeof StoryView>;
|
|
19
|
-
|
|
20
|
-
export default meta;
|
|
21
|
-
|
|
22
|
-
type Story = StoryObj<typeof meta>;
|
|
23
|
-
|
|
24
|
-
export const WithParams: Story = {
|
|
25
|
-
args: {
|
|
26
|
-
env: DEFAULT_ENV,
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
type SignNetworkFeeProps = Parameters<typeof getLBTCStats>[0];
|
|
31
|
-
|
|
32
|
-
export function StoryView(props: SignNetworkFeeProps) {
|
|
33
|
-
const request = async () => {
|
|
34
|
-
return getLBTCStats({
|
|
35
|
-
...props,
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const { data, error, isLoading, refetch } = useQuery(request, [], false);
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<>
|
|
43
|
-
<p>This function returns the total supply of the LBTC.</p>
|
|
44
|
-
|
|
45
|
-
<Button
|
|
46
|
-
onClick={refetch}
|
|
47
|
-
disabled={isLoading}
|
|
48
|
-
isLoading={isLoading}
|
|
49
|
-
actionName={getLBTCStats.name}
|
|
50
|
-
/>
|
|
51
|
-
|
|
52
|
-
<ErrorBlock>{error}</ErrorBlock>
|
|
53
|
-
|
|
54
|
-
<CodeBlock text={data} />
|
|
55
|
-
</>
|
|
56
|
-
);
|
|
57
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
|
-
|
|
4
|
-
import { getApiConfig } from '../common/api-config';
|
|
5
|
-
import { IEnvParam } from '../common/parameters';
|
|
6
|
-
|
|
7
|
-
type LBTCStatsResponse = { price: number; supply: number; tvl: number }[];
|
|
8
|
-
|
|
9
|
-
type LBTCHoldersResponse = number;
|
|
10
|
-
|
|
11
|
-
type Stats = {
|
|
12
|
-
/** The BTC price */
|
|
13
|
-
price: BigNumber;
|
|
14
|
-
/** The LBTC supply */
|
|
15
|
-
supply: BigNumber;
|
|
16
|
-
/** The LBTC TVL (supply * price) */
|
|
17
|
-
tvl: BigNumber;
|
|
18
|
-
/** The number of LBTC holders */
|
|
19
|
-
holders: BigNumber;
|
|
20
|
-
/** The total (historical) number of LBTC holders */
|
|
21
|
-
historicalHolders: BigNumber;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
/** Gets the Lombard's TVL. */
|
|
25
|
-
export async function getLBTCStats(
|
|
26
|
-
parameters?: { partnerId?: string; accountAddress?: string } & IEnvParam,
|
|
27
|
-
) {
|
|
28
|
-
const env = parameters?.env;
|
|
29
|
-
const partnerId = parameters?.partnerId;
|
|
30
|
-
|
|
31
|
-
const { bffApiUrl } = getApiConfig(env);
|
|
32
|
-
if (!bffApiUrl) {
|
|
33
|
-
throw new Error(
|
|
34
|
-
`Could not determine API endpoint for provided environment: ${env}`,
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const { data } = await axios.get<LBTCStatsResponse>(
|
|
39
|
-
`${bffApiUrl}/dune-api/query/getLBTCStats?partnerId=${partnerId || ''}`,
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
const { data: holders } = await axios.get<LBTCHoldersResponse>(
|
|
43
|
-
`${bffApiUrl}/dune-api/query/lbtc-holders?partnerId=${partnerId || ''}`,
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
const { data: historicalHolders } = await axios.get<LBTCHoldersResponse>(
|
|
47
|
-
`${bffApiUrl}/dune-api/query/getTotalLBTCUsers?partnerId=${partnerId || ''}`,
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
const stats: Stats = {
|
|
51
|
-
price: BigNumber(data[0].price),
|
|
52
|
-
supply: BigNumber(data[0].supply),
|
|
53
|
-
tvl: BigNumber(data[0].tvl),
|
|
54
|
-
holders: BigNumber(holders),
|
|
55
|
-
historicalHolders: BigNumber(historicalHolders),
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
return stats;
|
|
59
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import { envSelector } from '../stories/arg-types';
|
|
5
|
-
import { Button } from '../stories/components/Button';
|
|
6
|
-
import { CodeBlock } from '../stories/components/CodeBlock';
|
|
7
|
-
import { functionType, wagmiDecorator } from '../stories/components/decorators';
|
|
8
|
-
import { ErrorBlock } from '../stories/components/error-block';
|
|
9
|
-
import { EXAMPLE_EVM_ADDRESS } from '../stories/constants';
|
|
10
|
-
import useQuery from '../stories/hooks/useQuery';
|
|
11
|
-
import { getPositionsSummary } from './get-positions-summary';
|
|
12
|
-
|
|
13
|
-
const meta = {
|
|
14
|
-
title: 'metrics/getPositionsSummary',
|
|
15
|
-
component: StoryView,
|
|
16
|
-
tags: ['autodocs'],
|
|
17
|
-
decorators: [wagmiDecorator, functionType('api-get')],
|
|
18
|
-
argTypes: { ...envSelector },
|
|
19
|
-
} satisfies Meta<typeof StoryView>;
|
|
20
|
-
|
|
21
|
-
export default meta;
|
|
22
|
-
|
|
23
|
-
type Story = StoryObj<typeof meta>;
|
|
24
|
-
|
|
25
|
-
export const WithParams: Story = {
|
|
26
|
-
args: { account: EXAMPLE_EVM_ADDRESS, env: Env.stage },
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
type SignNetworkFeeProps = Parameters<typeof getPositionsSummary>[0];
|
|
30
|
-
|
|
31
|
-
export function StoryView(props: SignNetworkFeeProps) {
|
|
32
|
-
const request = async () => {
|
|
33
|
-
return getPositionsSummary({
|
|
34
|
-
...props,
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const { data, error, isLoading, refetch } = useQuery(request, [], false);
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<>
|
|
42
|
-
<p>
|
|
43
|
-
This function returns the rewards info for provided account address.
|
|
44
|
-
</p>
|
|
45
|
-
|
|
46
|
-
<Button
|
|
47
|
-
onClick={refetch}
|
|
48
|
-
disabled={isLoading}
|
|
49
|
-
isLoading={isLoading}
|
|
50
|
-
actionName={getPositionsSummary.name}
|
|
51
|
-
/>
|
|
52
|
-
|
|
53
|
-
<ErrorBlock>{error}</ErrorBlock>
|
|
54
|
-
|
|
55
|
-
<CodeBlock text={data} />
|
|
56
|
-
</>
|
|
57
|
-
);
|
|
58
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
|
-
import { Address } from 'viem';
|
|
4
|
-
|
|
5
|
-
import { getApiConfig } from '../common/api-config';
|
|
6
|
-
import { IEnvParam } from '../common/parameters';
|
|
7
|
-
import { Token } from '../tokens/token-addresses';
|
|
8
|
-
|
|
9
|
-
type PositionAsset = 'ASSET_LBTC' | 'ASSET_UNSPECIFIED';
|
|
10
|
-
type PositionType = 'BALANCE_TYPE_HOLDING' | 'BALANCE_TYPE_DEFI';
|
|
11
|
-
|
|
12
|
-
type Response = {
|
|
13
|
-
btc_price_usd: { price: number; timestamp: string };
|
|
14
|
-
btc_value: number;
|
|
15
|
-
btc_pnl: number;
|
|
16
|
-
snapshot: [
|
|
17
|
-
{
|
|
18
|
-
asset: PositionAsset;
|
|
19
|
-
type: PositionType;
|
|
20
|
-
balance: number;
|
|
21
|
-
pnl: number;
|
|
22
|
-
rate: number;
|
|
23
|
-
},
|
|
24
|
-
];
|
|
25
|
-
last_updated: string;
|
|
26
|
-
in_progress: boolean;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
function mapRewardAssetToToken(asset: PositionAsset) {
|
|
30
|
-
switch (asset) {
|
|
31
|
-
case 'ASSET_LBTC':
|
|
32
|
-
return Token.LBTC;
|
|
33
|
-
default:
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export type PositionsSummary = {
|
|
39
|
-
/**
|
|
40
|
-
* The current BTC price in USD, along with the timestamp
|
|
41
|
-
* when the price was last fetched.
|
|
42
|
-
*/
|
|
43
|
-
btcPrice: {
|
|
44
|
-
/** The price of 1 BTC in USD. */
|
|
45
|
-
price: BigNumber;
|
|
46
|
-
/** Timestamp of the price data. */
|
|
47
|
-
timestamp: Date;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Total value of all holdings, denominated in BTC.
|
|
51
|
-
*/
|
|
52
|
-
btcValue: BigNumber;
|
|
53
|
-
/**
|
|
54
|
-
* Total profit or loss across all assets, represented in BTC.
|
|
55
|
-
*/
|
|
56
|
-
btcPnl: BigNumber;
|
|
57
|
-
/**
|
|
58
|
-
* A detailed snapshot of position data used in PnL calculation.
|
|
59
|
-
*/
|
|
60
|
-
snapshot: {
|
|
61
|
-
/**
|
|
62
|
-
* The token associated with this position (e.g., `Token.LBTC`).
|
|
63
|
-
* Can be `undefined` if unspecified.
|
|
64
|
-
*/
|
|
65
|
-
token: Token | undefined;
|
|
66
|
-
/**
|
|
67
|
-
* The classification or source of the position.
|
|
68
|
-
*/
|
|
69
|
-
type: PositionType;
|
|
70
|
-
/**
|
|
71
|
-
* The quantity of the token held.
|
|
72
|
-
*/
|
|
73
|
-
balance: BigNumber;
|
|
74
|
-
/**
|
|
75
|
-
* The profit or loss for this specific position, in BTC.
|
|
76
|
-
*/
|
|
77
|
-
pnl: BigNumber;
|
|
78
|
-
/**
|
|
79
|
-
* The conversion rate used to determine the BTC value of the balance.
|
|
80
|
-
* `balance * rate = BTC equivalent`
|
|
81
|
-
*/
|
|
82
|
-
rate: BigNumber;
|
|
83
|
-
}[];
|
|
84
|
-
/**
|
|
85
|
-
* The timestamp when the PnL data was last updated.
|
|
86
|
-
*/
|
|
87
|
-
lastUpdated: Date;
|
|
88
|
-
/**
|
|
89
|
-
* Indicates whether the backend is currently processing the PnL calculation.
|
|
90
|
-
*
|
|
91
|
-
* - `true`: A new calculation request was received, but the backend is experiencing high load
|
|
92
|
-
* or processing is not yet complete. The latest data is not yet available.
|
|
93
|
-
*
|
|
94
|
-
* - `false`: The most recent calculation has been completed and cached.
|
|
95
|
-
* Use `lastUpdated` to understand how fresh the data is:
|
|
96
|
-
* - If `lastUpdated` is recent (e.g., within the last few seconds), you're seeing the latest data.
|
|
97
|
-
* - If `lastUpdated` is up to 30 minutes old, you're seeing cached data from a recent request.
|
|
98
|
-
* The backend avoids recalculating within this caching window.
|
|
99
|
-
*/
|
|
100
|
-
inProgress: boolean;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
/** Retrieves the yield positions summary for the specified account address. */
|
|
104
|
-
export async function getPositionsSummary({
|
|
105
|
-
account,
|
|
106
|
-
env,
|
|
107
|
-
}: { account: Address } & IEnvParam) {
|
|
108
|
-
const { baseApiUrl } = getApiConfig(env);
|
|
109
|
-
|
|
110
|
-
const url = `${baseApiUrl}/api/v1/analytics/${account}/summary`;
|
|
111
|
-
const { data } = await axios.get<Response>(url);
|
|
112
|
-
|
|
113
|
-
const info: PositionsSummary = {
|
|
114
|
-
btcPrice: {
|
|
115
|
-
price: BigNumber(data.btc_price_usd.price || 0),
|
|
116
|
-
timestamp: new Date(data.btc_price_usd.timestamp),
|
|
117
|
-
},
|
|
118
|
-
btcValue: BigNumber(data.btc_value || 0),
|
|
119
|
-
btcPnl: BigNumber(data.btc_pnl || 0),
|
|
120
|
-
snapshot: data.snapshot?.map(ds => ({
|
|
121
|
-
token: mapRewardAssetToToken(ds.asset),
|
|
122
|
-
type: ds.type,
|
|
123
|
-
balance: BigNumber(ds.balance || 0),
|
|
124
|
-
pnl: BigNumber(ds.pnl || 0),
|
|
125
|
-
rate: BigNumber(ds.rate || 0),
|
|
126
|
-
})),
|
|
127
|
-
lastUpdated: new Date(data.last_updated),
|
|
128
|
-
inProgress: Boolean(data.in_progress),
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
return info;
|
|
132
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability Registry
|
|
3
|
-
*
|
|
4
|
-
* Manages optional module services and provides dependency injection for actions.
|
|
5
|
-
* Works exclusively with LombardConfig, never requiring the full SDK instance.
|
|
6
|
-
*
|
|
7
|
-
* @module modules/CapabilityRegistry
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type {
|
|
11
|
-
AnyModule,
|
|
12
|
-
ModuleId,
|
|
13
|
-
ProviderFor,
|
|
14
|
-
ProviderKey,
|
|
15
|
-
RegisterContext,
|
|
16
|
-
SdkModule,
|
|
17
|
-
ServiceOf,
|
|
18
|
-
SharedToken,
|
|
19
|
-
} from '@lombard.finance/sdk-common';
|
|
20
|
-
|
|
21
|
-
import type { LombardConfig } from '../config/types';
|
|
22
|
-
import { getProviderGetter } from '../config/types';
|
|
23
|
-
import { LombardError } from '../shared/errors';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Capability Registry
|
|
27
|
-
*
|
|
28
|
-
* Manages optional module services (BTC, EVM, API, Solana, Sui, Starknet, etc.)
|
|
29
|
-
* and provides lazy loading with descriptive error messages.
|
|
30
|
-
*
|
|
31
|
-
* Services are internal implementations for action DI.
|
|
32
|
-
* Public APIs should call underlying functions directly for rich types.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* const registry = new CapabilityRegistry(config.modules, config);
|
|
37
|
-
* const btcService = registry.require('btc');
|
|
38
|
-
* const solanaService = registry.optional('solana'); // null if not installed
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export class CapabilityRegistry<
|
|
42
|
-
TModules extends readonly AnyModule[] = readonly AnyModule[],
|
|
43
|
-
> {
|
|
44
|
-
private readonly modules = new Map<string, AnyModule>();
|
|
45
|
-
private readonly services = new Map<string, unknown>();
|
|
46
|
-
private readonly shared = new Map<SharedToken<unknown>, unknown>();
|
|
47
|
-
|
|
48
|
-
constructor(
|
|
49
|
-
modules: readonly AnyModule[],
|
|
50
|
-
private readonly config: LombardConfig,
|
|
51
|
-
) {
|
|
52
|
-
modules.forEach(mod => this.modules.set(mod.id, mod));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Require a module service
|
|
57
|
-
*
|
|
58
|
-
* Throws LombardError.moduleMissing if module not installed.
|
|
59
|
-
*
|
|
60
|
-
* @param id - Module identifier
|
|
61
|
-
* @returns Module service
|
|
62
|
-
*/
|
|
63
|
-
require<TId extends ModuleId<TModules[number]>>(
|
|
64
|
-
id: TId,
|
|
65
|
-
): ServiceOf<TModules[number] & SdkModule<TId, unknown>, TId> {
|
|
66
|
-
const mod = this.modules.get(id as string);
|
|
67
|
-
if (!mod) {
|
|
68
|
-
throw LombardError.moduleMissing(id as string);
|
|
69
|
-
}
|
|
70
|
-
if (!this.services.has(mod.id)) {
|
|
71
|
-
this.services.set(mod.id, mod.register(this.createContext()));
|
|
72
|
-
}
|
|
73
|
-
return this.services.get(mod.id) as ServiceOf<
|
|
74
|
-
TModules[number] & SdkModule<TId, unknown>,
|
|
75
|
-
TId
|
|
76
|
-
>;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Optionally get a module service
|
|
81
|
-
*
|
|
82
|
-
* Returns null if module not installed (no error thrown).
|
|
83
|
-
*
|
|
84
|
-
* @param id - Module identifier
|
|
85
|
-
* @returns Module service or null
|
|
86
|
-
*/
|
|
87
|
-
optional<TId extends ModuleId<TModules[number]>>(
|
|
88
|
-
id: TId,
|
|
89
|
-
): ServiceOf<TModules[number] & SdkModule<TId, unknown>, TId> | null {
|
|
90
|
-
const mod = this.modules.get(id as string);
|
|
91
|
-
if (!mod) {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
if (!this.services.has(mod.id)) {
|
|
95
|
-
this.services.set(mod.id, mod.register(this.createContext()));
|
|
96
|
-
}
|
|
97
|
-
return this.services.get(mod.id) as ServiceOf<
|
|
98
|
-
TModules[number] & SdkModule<TId, unknown>,
|
|
99
|
-
TId
|
|
100
|
-
>;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Create registration context for modules
|
|
105
|
-
*
|
|
106
|
-
* Provides modules with access to config-based services.
|
|
107
|
-
*/
|
|
108
|
-
private createContext(): RegisterContext {
|
|
109
|
-
return {
|
|
110
|
-
env: this.config.env,
|
|
111
|
-
getProvider: async <TKey extends ProviderKey>(key: TKey) => {
|
|
112
|
-
const getter = getProviderGetter(this.config.providers, key);
|
|
113
|
-
if (!getter) {
|
|
114
|
-
return undefined as unknown as ProviderFor<TKey>;
|
|
115
|
-
}
|
|
116
|
-
return (await getter()) as ProviderFor<TKey>;
|
|
117
|
-
},
|
|
118
|
-
getShared: <T>(token: SharedToken<T>) =>
|
|
119
|
-
this.shared.get(token as SharedToken<unknown>) as T | undefined,
|
|
120
|
-
setShared: <T>(token: SharedToken<T>, value: T) => {
|
|
121
|
-
this.shared.set(token as SharedToken<unknown>, value);
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
package/src/modules/apiModule.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Module
|
|
3
|
-
*
|
|
4
|
-
* Provides Lombard backend API service for internal use by actions.
|
|
5
|
-
* Uses Service-First pattern: module is a thin factory that instantiates the service.
|
|
6
|
-
*
|
|
7
|
-
* Note: This is an internal service for dependency injection into actions.
|
|
8
|
-
* For public APIs, use the SDK namespace methods (e.g., sdk.deposits.getByAddress())
|
|
9
|
-
* which call the underlying functions directly and return rich types.
|
|
10
|
-
*
|
|
11
|
-
* @module modules/apiModule
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type {
|
|
15
|
-
ApiService as IApiService,
|
|
16
|
-
SdkModule,
|
|
17
|
-
} from '@lombard.finance/sdk-common';
|
|
18
|
-
|
|
19
|
-
import { ApiService } from '../services/ApiService';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Create API module
|
|
23
|
-
*
|
|
24
|
-
* Internal module that provides ApiService. Automatically included by createLombardSDK().
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```ts
|
|
28
|
-
* const sdk = await createLombardSDK({
|
|
29
|
-
* env: Env.prod,
|
|
30
|
-
* providers: { evm: () => window.ethereum },
|
|
31
|
-
* });
|
|
32
|
-
* const deposits = await sdk.api.deposits('0x...');
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export function apiModule(): SdkModule<'api', IApiService> {
|
|
36
|
-
return {
|
|
37
|
-
id: 'api',
|
|
38
|
-
register(ctx) {
|
|
39
|
-
return new ApiService(ctx.env);
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Re-export service class and interface type
|
|
45
|
-
export { ApiService };
|
|
46
|
-
export type { IApiService as ApiServiceInterface };
|
|
47
|
-
export type {
|
|
48
|
-
DepositInfo,
|
|
49
|
-
GenerateDepositAddressParams,
|
|
50
|
-
GetDepositAddressParams,
|
|
51
|
-
} from '@lombard.finance/sdk-common';
|
package/src/modules/btcModule.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BTC Module
|
|
3
|
-
*
|
|
4
|
-
* Provides Bitcoin chain service for deposit monitoring and address operations.
|
|
5
|
-
* Uses Service-First pattern: module is a thin factory that instantiates the service.
|
|
6
|
-
*
|
|
7
|
-
* @module modules/btcModule
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type {
|
|
11
|
-
BtcService as IBtcService,
|
|
12
|
-
ChainModule,
|
|
13
|
-
} from '@lombard.finance/sdk-common';
|
|
14
|
-
|
|
15
|
-
import { BtcService } from '../services/BtcService';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Create BTC module
|
|
19
|
-
*
|
|
20
|
-
* Built-in module that provides BtcService. Automatically included by createLombardSDK().
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```ts
|
|
24
|
-
* const sdk = await createLombardSDK({
|
|
25
|
-
* env: Env.prod,
|
|
26
|
-
* providers: { evm: () => window.ethereum },
|
|
27
|
-
* });
|
|
28
|
-
* const stake = sdk.chain.btc.stake({ ... });
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export function btcModule(): ChainModule<'btc', IBtcService> {
|
|
32
|
-
return {
|
|
33
|
-
id: 'btc',
|
|
34
|
-
chain: 'btc',
|
|
35
|
-
register() {
|
|
36
|
-
return new BtcService();
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Re-export service class and interface type
|
|
42
|
-
export { BtcService };
|
|
43
|
-
export type { IBtcService as BtcServiceInterface };
|
package/src/modules/evmModule.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVM Module
|
|
3
|
-
*
|
|
4
|
-
* Provides EVM chain service for contract interactions and fee authorization.
|
|
5
|
-
* Uses Service-First pattern: module is a thin factory that instantiates the service.
|
|
6
|
-
*
|
|
7
|
-
* @module modules/evmModule
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type {
|
|
11
|
-
ChainModule,
|
|
12
|
-
EvmService as IEvmService,
|
|
13
|
-
} from '@lombard.finance/sdk-common';
|
|
14
|
-
|
|
15
|
-
import { EvmService } from '../services/EvmService';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Create EVM module
|
|
19
|
-
*
|
|
20
|
-
* Built-in module that provides EvmService. Automatically included by createLombardSDK().
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```ts
|
|
24
|
-
* const sdk = await createLombardSDK({
|
|
25
|
-
* env: Env.prod,
|
|
26
|
-
* providers: { evm: () => window.ethereum },
|
|
27
|
-
* });
|
|
28
|
-
* const unstake = sdk.chain.evm.unstake({ ... });
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export function evmModule(): ChainModule<'evm', IEvmService> {
|
|
32
|
-
return {
|
|
33
|
-
id: 'evm',
|
|
34
|
-
chain: 'evm',
|
|
35
|
-
register(ctx) {
|
|
36
|
-
return new EvmService(ctx.env);
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Re-export service class and interface type
|
|
42
|
-
export { EvmService };
|
|
43
|
-
export type { IEvmService as EvmServiceInterface };
|
|
44
|
-
export type {
|
|
45
|
-
EvmChainId,
|
|
46
|
-
FeeAuthorizationResult,
|
|
47
|
-
StoredFeeSignature,
|
|
48
|
-
} from '@lombard.finance/sdk-common';
|