@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,75 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
|
-
|
|
4
|
-
import { getApiConfig } from '../../common/api-config';
|
|
5
|
-
import { getChainNameById } from '../../common/blockchain-identifier';
|
|
6
|
-
import { ChainId } from '../../common/chains';
|
|
7
|
-
import { MIN_STAKE_AMOUNT_BTC } from '../../common/constants';
|
|
8
|
-
import { IEnvParam } from '../../common/parameters';
|
|
9
|
-
import { toSatoshi } from '../../utils/satoshi';
|
|
10
|
-
|
|
11
|
-
type ExchangeRateResponse = {
|
|
12
|
-
amount_out: string;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export interface IgetLBTCExchangeRateParams extends IEnvParam {
|
|
16
|
-
/**
|
|
17
|
-
* The optional chain id of the asset to get the exchange rate for.
|
|
18
|
-
* Note: Exchange rate it the same for all chains.
|
|
19
|
-
*
|
|
20
|
-
* @default OChainId.ethereum
|
|
21
|
-
*/
|
|
22
|
-
chainId?: ChainId;
|
|
23
|
-
/**
|
|
24
|
-
* The amount of the LBTC (in satoshis) that a user would like to exchange to BTC.
|
|
25
|
-
*/
|
|
26
|
-
amount?: BigNumber.Value;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface IgetLBTCExchangeRateResponse {
|
|
30
|
-
/**
|
|
31
|
-
* The exchanged amount (in satoshis).
|
|
32
|
-
*/
|
|
33
|
-
amountOut: number;
|
|
34
|
-
/**
|
|
35
|
-
* The exchange rate for LBTC/BTC.
|
|
36
|
-
*/
|
|
37
|
-
exchangeRate: number;
|
|
38
|
-
/**
|
|
39
|
-
* The minimum amount of BTC eligible for staking (in satoshis).
|
|
40
|
-
*/
|
|
41
|
-
minAmount: number;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Retrieves the exchange rate for LBTC.
|
|
46
|
-
*
|
|
47
|
-
* @deprecated This API endpoint is deprecated and will be removed in a future version.
|
|
48
|
-
* The exchange rate is now always 1:1 as LBTC is a rebasing token.
|
|
49
|
-
*
|
|
50
|
-
* @param {IgetLBTCExchangeRateParams} parameters - The parameters.
|
|
51
|
-
* @param {BigNumber.Value} parameters.amount - The optional amount to be exchanged.
|
|
52
|
-
* @param {ChainId} parameters.chainId - The optional chain id.
|
|
53
|
-
* @param {Env} parameters.env - The optional environment identifier.
|
|
54
|
-
*
|
|
55
|
-
* @returns {Promise<IgetLBTCExchangeRateResponse>} - The exchange rate.
|
|
56
|
-
*/
|
|
57
|
-
export async function getLBTCExchangeRate({
|
|
58
|
-
env,
|
|
59
|
-
chainId = ChainId.ethereum,
|
|
60
|
-
amount = toSatoshi(1),
|
|
61
|
-
}: IgetLBTCExchangeRateParams): Promise<IgetLBTCExchangeRateResponse> {
|
|
62
|
-
const { baseApiUrl } = getApiConfig(env);
|
|
63
|
-
const chainIdName = getChainNameById(chainId);
|
|
64
|
-
|
|
65
|
-
const { data } = await axios.get<ExchangeRateResponse>(
|
|
66
|
-
`api/v1/exchange/rate/${chainIdName}`,
|
|
67
|
-
{ baseURL: baseApiUrl, params: { amount } },
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
const amountOut = BigNumber(data.amount_out).toNumber();
|
|
71
|
-
const exchangeRate = BigNumber(amount).dividedBy(data.amount_out).toNumber();
|
|
72
|
-
const minAmount = toSatoshi(MIN_STAKE_AMOUNT_BTC).toNumber();
|
|
73
|
-
|
|
74
|
-
return { amountOut, exchangeRate, minAmount };
|
|
75
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import { ChainId } from '../../common/chains';
|
|
5
|
-
import { chainSelector } from '../../stories/arg-types';
|
|
6
|
-
import { Button } from '../../stories/components/Button';
|
|
7
|
-
import { CodeBlock } from '../../stories/components/CodeBlock';
|
|
8
|
-
import { functionType } from '../../stories/components/decorators';
|
|
9
|
-
import { EXAMPLE_EVM_ADDRESS } from '../../stories/constants';
|
|
10
|
-
import useQuery from '../../stories/hooks/useQuery';
|
|
11
|
-
import {
|
|
12
|
-
getNetworkFeeSignature,
|
|
13
|
-
IGetNetworkFeeSignatureParams,
|
|
14
|
-
} from './getNetworkFeeSignature';
|
|
15
|
-
|
|
16
|
-
const meta = {
|
|
17
|
-
title: 'api/getNetworkFeeSignature',
|
|
18
|
-
component: StoryView,
|
|
19
|
-
tags: ['autodocs'],
|
|
20
|
-
decorators: [functionType('api-get')],
|
|
21
|
-
argTypes: { ...chainSelector },
|
|
22
|
-
} satisfies Meta<typeof StoryView>;
|
|
23
|
-
|
|
24
|
-
export default meta;
|
|
25
|
-
|
|
26
|
-
type Story = StoryObj<typeof meta>;
|
|
27
|
-
|
|
28
|
-
export const WithParams: Story = {
|
|
29
|
-
args: {
|
|
30
|
-
address: EXAMPLE_EVM_ADDRESS,
|
|
31
|
-
chainId: ChainId.ethereum,
|
|
32
|
-
env: DEFAULT_ENV,
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
type GetNetworkFeeSignatureParamsProps = IGetNetworkFeeSignatureParams;
|
|
37
|
-
|
|
38
|
-
export function StoryView(props: GetNetworkFeeSignatureParamsProps) {
|
|
39
|
-
const request = async () => {
|
|
40
|
-
return await getNetworkFeeSignature({
|
|
41
|
-
...props,
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const { data, error, isLoading, refetch } = useQuery(request, [], false);
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<>
|
|
49
|
-
<Button
|
|
50
|
-
onClick={refetch}
|
|
51
|
-
disabled={isLoading}
|
|
52
|
-
isLoading={isLoading}
|
|
53
|
-
actionName={getNetworkFeeSignature.name}
|
|
54
|
-
/>
|
|
55
|
-
|
|
56
|
-
<CodeBlock text={error || data} />
|
|
57
|
-
</>
|
|
58
|
-
);
|
|
59
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
|
|
3
|
-
import { getApiConfig } from '../../common/api-config';
|
|
4
|
-
import { ChainId } from '../../common/chains';
|
|
5
|
-
import { IEnvParam } from '../../common/parameters';
|
|
6
|
-
import { getErrorMessage } from '../../utils/err';
|
|
7
|
-
|
|
8
|
-
export interface IGetNetworkFeeSignatureParams extends IEnvParam {
|
|
9
|
-
/**
|
|
10
|
-
* Chain ID of the network to interact with
|
|
11
|
-
*/
|
|
12
|
-
chainId: ChainId;
|
|
13
|
-
/**
|
|
14
|
-
* Destination address
|
|
15
|
-
*/
|
|
16
|
-
address: string;
|
|
17
|
-
/**
|
|
18
|
-
* Token address (optional, required for BTC.b)
|
|
19
|
-
*/
|
|
20
|
-
tokenAddress?: string;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
interface IGetNetworkFeeSignatureResponse {
|
|
24
|
-
/**
|
|
25
|
-
* Expiration date of signature
|
|
26
|
-
*/
|
|
27
|
-
expiration_date: string;
|
|
28
|
-
/**
|
|
29
|
-
* The flag signature exists
|
|
30
|
-
*/
|
|
31
|
-
has_signature: boolean;
|
|
32
|
-
/**
|
|
33
|
-
* The auto mint is delayed
|
|
34
|
-
*/
|
|
35
|
-
is_delayed: boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Serialized signature when available
|
|
38
|
-
*/
|
|
39
|
-
signature?: string;
|
|
40
|
-
/**
|
|
41
|
-
* Serialized typed data associated with the signature when available
|
|
42
|
-
*/
|
|
43
|
-
typed_data?: string;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface IGetNetworkFeeSignatureMappedResponse {
|
|
47
|
-
/**
|
|
48
|
-
* Expiration date of signature
|
|
49
|
-
*/
|
|
50
|
-
expirationDate: string;
|
|
51
|
-
/**
|
|
52
|
-
* The flag signature exists
|
|
53
|
-
*/
|
|
54
|
-
hasSignature: boolean;
|
|
55
|
-
/**
|
|
56
|
-
* The auto mint is delayed
|
|
57
|
-
*/
|
|
58
|
-
isDelayed: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Serialized signature when available
|
|
61
|
-
*/
|
|
62
|
-
signature?: string;
|
|
63
|
-
/**
|
|
64
|
-
* Serialized typed data associated with the signature when available
|
|
65
|
-
*/
|
|
66
|
-
typedData?: string;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Returns the expiration date and the flag signature exists
|
|
71
|
-
*
|
|
72
|
-
* @param {IGetNetworkFeeSignatureParams} parameters - The parameters.
|
|
73
|
-
* @param {string} parameters.address - The account address.
|
|
74
|
-
* @param {ChainId} parameters.chainId - The chain id.
|
|
75
|
-
* @param {Env} parameters.env - The optional environment identifier.
|
|
76
|
-
*
|
|
77
|
-
* @returns {Promise<IGetNetworkFeeSignatureResponse>}
|
|
78
|
-
*/
|
|
79
|
-
export async function getNetworkFeeSignature({
|
|
80
|
-
address,
|
|
81
|
-
chainId,
|
|
82
|
-
env,
|
|
83
|
-
tokenAddress,
|
|
84
|
-
}: IGetNetworkFeeSignatureParams): Promise<IGetNetworkFeeSignatureMappedResponse> {
|
|
85
|
-
const { baseApiUrl } = getApiConfig(env);
|
|
86
|
-
|
|
87
|
-
try {
|
|
88
|
-
const params: Record<string, string | number> = {
|
|
89
|
-
user_destination_address: address,
|
|
90
|
-
chain_id: chainId,
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
if (tokenAddress) {
|
|
94
|
-
params.token_address = tokenAddress;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const { data } = await axios.get<IGetNetworkFeeSignatureResponse>(
|
|
98
|
-
`${baseApiUrl}/api/v1/claimer/get-user-signature`,
|
|
99
|
-
{
|
|
100
|
-
params,
|
|
101
|
-
},
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
return {
|
|
105
|
-
expirationDate: data?.expiration_date,
|
|
106
|
-
hasSignature: data?.has_signature,
|
|
107
|
-
isDelayed: data?.is_delayed,
|
|
108
|
-
signature: data?.signature,
|
|
109
|
-
typedData: data?.typed_data,
|
|
110
|
-
};
|
|
111
|
-
} catch (error) {
|
|
112
|
-
const errorMessage = getErrorMessage(error);
|
|
113
|
-
|
|
114
|
-
throw new Error(errorMessage);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './getNetworkFeeSignature';
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import { Button } from '../../stories/components/Button';
|
|
5
|
-
import { CodeBlock } from '../../stories/components/CodeBlock';
|
|
6
|
-
import { functionType } from '../../stories/components/decorators';
|
|
7
|
-
import { EXAMPLE_EVM_ADDRESS } from '../../stories/constants';
|
|
8
|
-
import useQuery from '../../stories/hooks/useQuery';
|
|
9
|
-
import {
|
|
10
|
-
getPointsByAddress,
|
|
11
|
-
IGetPointsByAddressParameters,
|
|
12
|
-
} from './getPointsByAddress';
|
|
13
|
-
|
|
14
|
-
const meta = {
|
|
15
|
-
title: 'api/getPointsByAddress',
|
|
16
|
-
component: StoryView,
|
|
17
|
-
tags: ['autodocs'],
|
|
18
|
-
decorators: [functionType('api-get')],
|
|
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: {
|
|
27
|
-
address: EXAMPLE_EVM_ADDRESS,
|
|
28
|
-
env: DEFAULT_ENV,
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export function StoryView(props: IGetPointsByAddressParameters) {
|
|
33
|
-
const { data, error, isLoading, refetch } = useQuery(
|
|
34
|
-
async () => await getPointsByAddress(props),
|
|
35
|
-
[props],
|
|
36
|
-
false,
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
<Button
|
|
42
|
-
onClick={refetch}
|
|
43
|
-
disabled={isLoading}
|
|
44
|
-
isLoading={isLoading}
|
|
45
|
-
actionName={getPointsByAddress.name}
|
|
46
|
-
/>
|
|
47
|
-
|
|
48
|
-
<CodeBlock text={error || data} />
|
|
49
|
-
</>
|
|
50
|
-
);
|
|
51
|
-
}
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_ENV, Env } from '@lombard.finance/sdk-common';
|
|
2
|
-
import axios from 'axios';
|
|
3
|
-
import BigNumber from 'bignumber.js';
|
|
4
|
-
|
|
5
|
-
import { getApiConfig } from '../../common/api-config';
|
|
6
|
-
import { IEnvParam } from '../../common/parameters';
|
|
7
|
-
|
|
8
|
-
const CURRENT_SEASON = 2;
|
|
9
|
-
|
|
10
|
-
/* -------------------------------------------------------------------------- */
|
|
11
|
-
/* Types */
|
|
12
|
-
/* -------------------------------------------------------------------------- */
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Parameters for fetching points by address.
|
|
16
|
-
*/
|
|
17
|
-
export interface IGetPointsByAddressParameters extends IEnvParam {
|
|
18
|
-
/** The address of the points earner. */
|
|
19
|
-
address: string;
|
|
20
|
-
/** The season to fetch (defaults to CURRENT_SEASON). */
|
|
21
|
-
season?: number;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Breakdown of points earned from each supported DeFi protocol.
|
|
26
|
-
*/
|
|
27
|
-
export interface IProtocolPointsBreakdown {
|
|
28
|
-
[protocolName: string]: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Core points shared across all seasons.
|
|
33
|
-
*/
|
|
34
|
-
export interface IPointsBase {
|
|
35
|
-
/** Points earned by holding LBTC. */
|
|
36
|
-
holdingPoints: number;
|
|
37
|
-
/** Points earned by taking positions in DeFi vaults. */
|
|
38
|
-
protocolPoints: number;
|
|
39
|
-
/** Points earned from referrals. */
|
|
40
|
-
referralPoints: number;
|
|
41
|
-
/** Total points earned. */
|
|
42
|
-
totalPoints: number;
|
|
43
|
-
/** Detailed breakdown of protocol-specific points. */
|
|
44
|
-
protocolPointsBreakdown: IProtocolPointsBreakdown;
|
|
45
|
-
/** Lux points earned from badges. */
|
|
46
|
-
badgesPoints: number;
|
|
47
|
-
/** Total Lux points excluding badges (only required in some seasons). */
|
|
48
|
-
totalWithoutBadgesPoints?: number;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Points specific to Season 1.
|
|
53
|
-
*/
|
|
54
|
-
export interface IPointsByAddressSeason1 extends IPointsBase {
|
|
55
|
-
/** Points earned in the OKX campaign. */
|
|
56
|
-
okxPoints: number;
|
|
57
|
-
/** Points earned in the first flash event. */
|
|
58
|
-
flashEvent1Points: number;
|
|
59
|
-
/** Points earned in the second flash event. */
|
|
60
|
-
flashEvent2Points: number;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Points specific to Season 2.
|
|
65
|
-
*/
|
|
66
|
-
export interface IPointsByAddressSeason2 extends IPointsBase {
|
|
67
|
-
/** Points earned from referees. */
|
|
68
|
-
refereePoints: number;
|
|
69
|
-
/** Points earned by checking in. */
|
|
70
|
-
checkinPoints: number;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Raw API response format for Season 1.
|
|
75
|
-
*/
|
|
76
|
-
interface IPointsResponseSeason1 {
|
|
77
|
-
holding_points: number;
|
|
78
|
-
protocol_points: number;
|
|
79
|
-
referee_points: number;
|
|
80
|
-
referrals_points: number;
|
|
81
|
-
total: number;
|
|
82
|
-
flash_event: number;
|
|
83
|
-
badges: number;
|
|
84
|
-
total_without_badges: number;
|
|
85
|
-
okx_campaign: number;
|
|
86
|
-
flash_event2: number;
|
|
87
|
-
protocol_points_map?: IProtocolPointsBreakdown;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Raw API response format for Season 2.
|
|
92
|
-
*/
|
|
93
|
-
interface IPointsResponseSeason2 {
|
|
94
|
-
holding_points: number;
|
|
95
|
-
protocol_points: number;
|
|
96
|
-
referee_points: number;
|
|
97
|
-
referrals_points: number;
|
|
98
|
-
total: number;
|
|
99
|
-
protocol_points_map?: IProtocolPointsBreakdown;
|
|
100
|
-
badge_points: number;
|
|
101
|
-
checkin_points: number;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/* -------------------------------------------------------------------------- */
|
|
105
|
-
/* Helpers */
|
|
106
|
-
/* -------------------------------------------------------------------------- */
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Parses a number-like input into a BigNumber.
|
|
110
|
-
*
|
|
111
|
-
* @param input - The value to parse.
|
|
112
|
-
* @param defaultValue - Value to use if input is invalid or undefined.
|
|
113
|
-
* @returns A BigNumber representing the parsed value.
|
|
114
|
-
*/
|
|
115
|
-
function parse(
|
|
116
|
-
input: string | number | null | undefined,
|
|
117
|
-
defaultValue = 0,
|
|
118
|
-
): BigNumber {
|
|
119
|
-
return BigNumber(Number(input) || defaultValue);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Converts a protocol points map to a strongly typed breakdown object.
|
|
124
|
-
*
|
|
125
|
-
* @param map - Optional protocol points map from the API.
|
|
126
|
-
* @returns A normalized breakdown object with numeric values.
|
|
127
|
-
*/
|
|
128
|
-
function toProtocolBreakdown(
|
|
129
|
-
map: IProtocolPointsBreakdown | undefined,
|
|
130
|
-
): IProtocolPointsBreakdown {
|
|
131
|
-
return Object.entries(map || {}).reduce((acc, [k, v]) => {
|
|
132
|
-
acc[k] = parse(v).toNumber();
|
|
133
|
-
return acc;
|
|
134
|
-
}, {} as IProtocolPointsBreakdown);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Constructs the Lombard points API endpoint for the given season and address.
|
|
139
|
-
*
|
|
140
|
-
* @param season - The Lux points season (e.g., 1 or 2).
|
|
141
|
-
* @param address - Wallet address to query.
|
|
142
|
-
* @param env - Target environment (defaults to DEFAULT_ENV).
|
|
143
|
-
* @throws If the API endpoint cannot be determined or the season is invalid.
|
|
144
|
-
*/
|
|
145
|
-
function getLombardPointsUrl(
|
|
146
|
-
season: number,
|
|
147
|
-
address: string,
|
|
148
|
-
env: Env = DEFAULT_ENV,
|
|
149
|
-
): string {
|
|
150
|
-
const { baseApiUrl } = getApiConfig(env);
|
|
151
|
-
if (!baseApiUrl) {
|
|
152
|
-
throw new Error(
|
|
153
|
-
`Could not determine the API endpoint for the provided environment: ${
|
|
154
|
-
env || DEFAULT_ENV
|
|
155
|
-
}`,
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
switch (season) {
|
|
160
|
-
case 1:
|
|
161
|
-
return `${baseApiUrl}/api/v1/referral-system/season-1/points/${address}`;
|
|
162
|
-
case 2:
|
|
163
|
-
return `${baseApiUrl}/api/v1/referral-system/season-2/points/${address}`;
|
|
164
|
-
default:
|
|
165
|
-
throw new Error(`Invalid Lux season: ${season}`);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/* -------------------------------------------------------------------------- */
|
|
170
|
-
/* Fetchers */
|
|
171
|
-
/* -------------------------------------------------------------------------- */
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Fetches and parses Season 1 points for a given address.
|
|
175
|
-
*
|
|
176
|
-
* @param params - Address and environment parameters.
|
|
177
|
-
* @returns A typed object containing all Season 1 point metrics.
|
|
178
|
-
*/
|
|
179
|
-
async function fetchPointsSeason1({
|
|
180
|
-
address,
|
|
181
|
-
env,
|
|
182
|
-
}: Omit<
|
|
183
|
-
IGetPointsByAddressParameters,
|
|
184
|
-
'season'
|
|
185
|
-
>): Promise<IPointsByAddressSeason1> {
|
|
186
|
-
const { data } = await axios.get<IPointsResponseSeason1>(
|
|
187
|
-
getLombardPointsUrl(1, address, env),
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
const referralPoints = parse(data.referee_points).plus(
|
|
191
|
-
parse(data.referrals_points),
|
|
192
|
-
);
|
|
193
|
-
|
|
194
|
-
return {
|
|
195
|
-
holdingPoints: parse(data.holding_points).toNumber(),
|
|
196
|
-
protocolPoints: parse(data.protocol_points).toNumber(),
|
|
197
|
-
referralPoints: referralPoints.toNumber(),
|
|
198
|
-
okxPoints: parse(data.okx_campaign).toNumber(),
|
|
199
|
-
flashEvent1Points: parse(data.flash_event).toNumber(),
|
|
200
|
-
flashEvent2Points: parse(data.flash_event2).toNumber(),
|
|
201
|
-
totalPoints: parse(data.total).toNumber(),
|
|
202
|
-
protocolPointsBreakdown: toProtocolBreakdown(data.protocol_points_map),
|
|
203
|
-
badgesPoints: parse(data.badges).toNumber(),
|
|
204
|
-
totalWithoutBadgesPoints: parse(data.total_without_badges).toNumber(),
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Fetches and parses Season 2 points for a given address.
|
|
210
|
-
*
|
|
211
|
-
* @param params - Address and environment parameters.
|
|
212
|
-
* @returns A typed object containing all Season 2 point metrics.
|
|
213
|
-
*/
|
|
214
|
-
async function fetchPointsSeason2({
|
|
215
|
-
address,
|
|
216
|
-
env,
|
|
217
|
-
}: Omit<
|
|
218
|
-
IGetPointsByAddressParameters,
|
|
219
|
-
'season'
|
|
220
|
-
>): Promise<IPointsByAddressSeason2> {
|
|
221
|
-
const { data } = await axios.get<IPointsResponseSeason2>(
|
|
222
|
-
getLombardPointsUrl(2, address, env),
|
|
223
|
-
);
|
|
224
|
-
|
|
225
|
-
return {
|
|
226
|
-
holdingPoints: parse(data.holding_points).toNumber(),
|
|
227
|
-
protocolPoints: parse(data.protocol_points).toNumber(),
|
|
228
|
-
referralPoints: parse(data.referrals_points).toNumber(),
|
|
229
|
-
refereePoints: parse(data.referee_points).toNumber(),
|
|
230
|
-
badgesPoints: parse(data.badge_points).toNumber(),
|
|
231
|
-
checkinPoints: parse(data.checkin_points).toNumber(),
|
|
232
|
-
totalPoints: parse(data.total).toNumber(),
|
|
233
|
-
protocolPointsBreakdown: toProtocolBreakdown(data.protocol_points_map),
|
|
234
|
-
totalWithoutBadgesPoints: parse(data.total).toNumber(),
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/* -------------------------------------------------------------------------- */
|
|
239
|
-
/* Public API */
|
|
240
|
-
/* -------------------------------------------------------------------------- */
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Retrieves Season 1 points for a given address.
|
|
244
|
-
*
|
|
245
|
-
* @param parameters - Address and environment parameters.
|
|
246
|
-
* @returns A Season 1 points object.
|
|
247
|
-
*/
|
|
248
|
-
export async function getPointsByAddress(
|
|
249
|
-
parameters: IGetPointsByAddressParameters & { season: 1 },
|
|
250
|
-
): Promise<IPointsByAddressSeason1>;
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Retrieves Season 2 points for a given address.
|
|
254
|
-
*
|
|
255
|
-
* @param parameters - Address and environment parameters.
|
|
256
|
-
* @returns A Season 2 points object.
|
|
257
|
-
*/
|
|
258
|
-
export async function getPointsByAddress(
|
|
259
|
-
parameters: IGetPointsByAddressParameters & { season: 2 },
|
|
260
|
-
): Promise<IPointsByAddressSeason2>;
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Retrieves points for the given address.
|
|
264
|
-
* Defaults to the current season if none is specified.
|
|
265
|
-
*
|
|
266
|
-
* @param parameters - Address and optional environment/season parameters.
|
|
267
|
-
* @returns A points object matching the requested or current season.
|
|
268
|
-
*/
|
|
269
|
-
export async function getPointsByAddress(
|
|
270
|
-
parameters: IGetPointsByAddressParameters,
|
|
271
|
-
): Promise<IPointsByAddressSeason1 | IPointsByAddressSeason2>;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Implementation of getPointsByAddress with overloads.
|
|
275
|
-
*/
|
|
276
|
-
export async function getPointsByAddress({
|
|
277
|
-
address,
|
|
278
|
-
env,
|
|
279
|
-
season = CURRENT_SEASON,
|
|
280
|
-
}: IGetPointsByAddressParameters): Promise<
|
|
281
|
-
IPointsByAddressSeason1 | IPointsByAddressSeason2
|
|
282
|
-
> {
|
|
283
|
-
return season === 2
|
|
284
|
-
? fetchPointsSeason2({ address, env })
|
|
285
|
-
: fetchPointsSeason1({ address, env });
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* Convenience wrapper for fetching Season 1 points.
|
|
290
|
-
*
|
|
291
|
-
* @param params - Address and environment parameters.
|
|
292
|
-
*/
|
|
293
|
-
export const getLuxSeason1Points = (
|
|
294
|
-
params: Omit<IGetPointsByAddressParameters, 'season'>,
|
|
295
|
-
) => getPointsByAddress({ ...params, season: 1 });
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Convenience wrapper for fetching Season 2 points.
|
|
299
|
-
*
|
|
300
|
-
* @param params - Address and environment parameters.
|
|
301
|
-
*/
|
|
302
|
-
export const getLuxSeason2Points = (
|
|
303
|
-
params: Omit<IGetPointsByAddressParameters, 'season'>,
|
|
304
|
-
) => getPointsByAddress({ ...params, season: 2 });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './getPointsByAddress';
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_ENV } from '@lombard.finance/sdk-common';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import { Button } from '../../stories/components/Button';
|
|
5
|
-
import { CodeBlock } from '../../stories/components/CodeBlock';
|
|
6
|
-
import { functionType } from '../../stories/components/decorators';
|
|
7
|
-
import { EXAMPLE_EVM_ADDRESS } from '../../stories/constants';
|
|
8
|
-
import useQuery from '../../stories/hooks/useQuery';
|
|
9
|
-
import {
|
|
10
|
-
getUnstakesByAddress,
|
|
11
|
-
IGetUnstakesByAddressParameters,
|
|
12
|
-
} from './getUnstakesByAddress';
|
|
13
|
-
|
|
14
|
-
const meta = {
|
|
15
|
-
title: 'api/getUnstakesByAddress',
|
|
16
|
-
component: StoryView,
|
|
17
|
-
tags: ['autodocs'],
|
|
18
|
-
decorators: [functionType('api-get')],
|
|
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: {
|
|
27
|
-
address: EXAMPLE_EVM_ADDRESS,
|
|
28
|
-
env: DEFAULT_ENV,
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export function StoryView(parameters: IGetUnstakesByAddressParameters) {
|
|
33
|
-
const { data, error, isLoading, refetch } = useQuery(
|
|
34
|
-
async () => await getUnstakesByAddress(parameters),
|
|
35
|
-
[parameters],
|
|
36
|
-
false,
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
<Button
|
|
42
|
-
onClick={refetch}
|
|
43
|
-
disabled={isLoading}
|
|
44
|
-
isLoading={isLoading}
|
|
45
|
-
actionName={getUnstakesByAddress.name}
|
|
46
|
-
/>
|
|
47
|
-
|
|
48
|
-
<CodeBlock text={error || data} />
|
|
49
|
-
</>
|
|
50
|
-
);
|
|
51
|
-
}
|