@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
package/src/config/index.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration module for the Lombard SDK
|
|
3
|
-
*
|
|
4
|
-
* This module provides:
|
|
5
|
-
* - Provider type definitions and type guards
|
|
6
|
-
* - SDK configuration types
|
|
7
|
-
* - Configuration validation and defaults
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export * from './providers';
|
|
11
|
-
export * from './types';
|
|
12
|
-
export * from './validation';
|
package/src/config/providers.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
AnyProvider,
|
|
3
|
-
BtcProvider,
|
|
4
|
-
EvmProvider,
|
|
5
|
-
ProviderKey,
|
|
6
|
-
ProviderMap,
|
|
7
|
-
SolanaProvider,
|
|
8
|
-
StarknetProvider,
|
|
9
|
-
SuiProvider,
|
|
10
|
-
} from '@lombard.finance/sdk-common';
|
|
11
|
-
import type {
|
|
12
|
-
BtcProvider,
|
|
13
|
-
EvmProvider,
|
|
14
|
-
SolanaProvider,
|
|
15
|
-
StarknetProvider,
|
|
16
|
-
SuiProvider,
|
|
17
|
-
} from '@lombard.finance/sdk-common';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Type guard to check if a provider is an EVM provider
|
|
21
|
-
*/
|
|
22
|
-
export function isEvmProvider(provider: unknown): provider is EvmProvider {
|
|
23
|
-
return (
|
|
24
|
-
typeof provider === 'object' &&
|
|
25
|
-
provider !== null &&
|
|
26
|
-
'request' in provider &&
|
|
27
|
-
typeof (provider as EvmProvider).request === 'function'
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Type guard to check if a provider is a Bitcoin provider
|
|
33
|
-
*/
|
|
34
|
-
export function isBtcProvider(provider: unknown): provider is BtcProvider {
|
|
35
|
-
return (
|
|
36
|
-
typeof provider === 'object' &&
|
|
37
|
-
provider !== null &&
|
|
38
|
-
'getAddresses' in provider &&
|
|
39
|
-
typeof (provider as BtcProvider).getAddresses === 'function'
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Type guard to check if a provider is a Solana provider
|
|
45
|
-
*/
|
|
46
|
-
export function isSolanaProvider(
|
|
47
|
-
provider: unknown,
|
|
48
|
-
): provider is SolanaProvider {
|
|
49
|
-
return (
|
|
50
|
-
typeof provider === 'object' &&
|
|
51
|
-
provider !== null &&
|
|
52
|
-
'publicKey' in provider &&
|
|
53
|
-
'signAndSendTransaction' in provider
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Type guard to check if a provider is a Sui provider
|
|
59
|
-
*/
|
|
60
|
-
export function isSuiProvider(provider: unknown): provider is SuiProvider {
|
|
61
|
-
return (
|
|
62
|
-
typeof provider === 'object' &&
|
|
63
|
-
provider !== null &&
|
|
64
|
-
'getAddress' in provider &&
|
|
65
|
-
'signAndExecuteTransactionBlock' in provider
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Type guard to check if a provider is a Starknet provider
|
|
71
|
-
*/
|
|
72
|
-
export function isStarknetProvider(
|
|
73
|
-
provider: unknown,
|
|
74
|
-
): provider is StarknetProvider {
|
|
75
|
-
return (
|
|
76
|
-
typeof provider === 'object' &&
|
|
77
|
-
provider !== null &&
|
|
78
|
-
'address' in provider &&
|
|
79
|
-
'execute' in provider
|
|
80
|
-
);
|
|
81
|
-
}
|
package/src/config/types.ts
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration types for the Lombard SDK
|
|
3
|
-
*
|
|
4
|
-
* This module defines the types for SDK configuration, including
|
|
5
|
-
* provider getters, partner configuration, and custom asset registration.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { AnyModule, Env } from '@lombard.finance/sdk-common';
|
|
9
|
-
|
|
10
|
-
import type { AssetId, Chain } from '../core';
|
|
11
|
-
import type { Logger } from '../shared/context/types';
|
|
12
|
-
import type {
|
|
13
|
-
BtcProvider,
|
|
14
|
-
EvmProvider,
|
|
15
|
-
SolanaProvider,
|
|
16
|
-
StarknetProvider,
|
|
17
|
-
SuiProvider,
|
|
18
|
-
} from './providers';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Provider getter function
|
|
22
|
-
*
|
|
23
|
-
* A function that returns a provider instance for a specific chain.
|
|
24
|
-
* This allows lazy loading of providers only when needed.
|
|
25
|
-
*
|
|
26
|
-
* @param chain - Optional chain identifier (for multi-chain providers like EVM)
|
|
27
|
-
* @returns Provider instance or promise of provider instance
|
|
28
|
-
*/
|
|
29
|
-
export type ProviderGetter<TProvider> = (
|
|
30
|
-
chain?: Chain,
|
|
31
|
-
) => TProvider | Promise<TProvider>;
|
|
32
|
-
|
|
33
|
-
export interface ProviderGetters {
|
|
34
|
-
evm?: ProviderGetter<EvmProvider>;
|
|
35
|
-
bitcoin?: ProviderGetter<BtcProvider>;
|
|
36
|
-
solana?: ProviderGetter<SolanaProvider>;
|
|
37
|
-
sui?: ProviderGetter<SuiProvider>;
|
|
38
|
-
starknet?: ProviderGetter<StarknetProvider>;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Get provider getter from config by key
|
|
43
|
-
*
|
|
44
|
-
* Uses explicit property access to avoid security concerns with dynamic keys.
|
|
45
|
-
* This pattern is required by static analysis tools (Codacy/Semgrep) to prevent
|
|
46
|
-
* potential object injection vulnerabilities.
|
|
47
|
-
*
|
|
48
|
-
* @param providers - Provider getters configuration
|
|
49
|
-
* @param key - Provider key to retrieve
|
|
50
|
-
* @returns Provider getter function or undefined if not configured
|
|
51
|
-
*/
|
|
52
|
-
export function getProviderGetter<T = unknown>(
|
|
53
|
-
providers: ProviderGetters,
|
|
54
|
-
key: string,
|
|
55
|
-
): ProviderGetter<T> | undefined {
|
|
56
|
-
let getter: ProviderGetter<unknown> | undefined;
|
|
57
|
-
switch (key) {
|
|
58
|
-
case 'evm':
|
|
59
|
-
getter = providers.evm;
|
|
60
|
-
break;
|
|
61
|
-
case 'bitcoin':
|
|
62
|
-
getter = providers.bitcoin;
|
|
63
|
-
break;
|
|
64
|
-
case 'solana':
|
|
65
|
-
getter = providers.solana;
|
|
66
|
-
break;
|
|
67
|
-
case 'sui':
|
|
68
|
-
getter = providers.sui;
|
|
69
|
-
break;
|
|
70
|
-
case 'starknet':
|
|
71
|
-
getter = providers.starknet;
|
|
72
|
-
break;
|
|
73
|
-
default:
|
|
74
|
-
getter = undefined;
|
|
75
|
-
}
|
|
76
|
-
return getter as ProviderGetter<T> | undefined;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* SDK configuration options
|
|
81
|
-
*
|
|
82
|
-
* Options passed to createConfig(). `modules` is optional; built-ins are
|
|
83
|
-
* registered automatically if not provided.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```typescript
|
|
87
|
-
* // Config is synchronous - can be exported directly
|
|
88
|
-
* export const config = createConfig({
|
|
89
|
-
* env: Env.prod,
|
|
90
|
-
* providers: { evm: () => window.ethereum },
|
|
91
|
-
* debug: true, // Enable console logging
|
|
92
|
-
* });
|
|
93
|
-
*
|
|
94
|
-
* // SDK creation is async (fetches catalog)
|
|
95
|
-
* const sdk = await createLombardSDK(config);
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
export interface CreateConfigOptions {
|
|
99
|
-
/** Environment (prod, testnet, stage, dev) */
|
|
100
|
-
env: Env;
|
|
101
|
-
|
|
102
|
-
/** Wallet provider getters for each chain */
|
|
103
|
-
providers?: ProviderGetters;
|
|
104
|
-
|
|
105
|
-
/** Optional modules to register */
|
|
106
|
-
modules?: readonly AnyModule[];
|
|
107
|
-
|
|
108
|
-
/** Partner configuration */
|
|
109
|
-
partner?: PartnerConfig;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Optional logger for SDK operations
|
|
113
|
-
*
|
|
114
|
-
* Provide your own logger to integrate with your logging infrastructure
|
|
115
|
-
* (e.g., Sentry, DataDog, custom logging).
|
|
116
|
-
*
|
|
117
|
-
* @example
|
|
118
|
-
* ```typescript
|
|
119
|
-
* logger: {
|
|
120
|
-
* error: (msg, meta) => Sentry.captureMessage(msg, { extra: meta }),
|
|
121
|
-
* warn: console.warn,
|
|
122
|
-
* info: console.info,
|
|
123
|
-
* debug: () => {}, // Suppress debug logs
|
|
124
|
-
* }
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
logger?: Logger;
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Enable debug mode
|
|
131
|
-
*
|
|
132
|
-
* When true, creates a console logger that outputs all SDK operations.
|
|
133
|
-
* Useful for development and debugging.
|
|
134
|
-
*
|
|
135
|
-
* Note: If both `logger` and `debug` are provided, `logger` takes precedence.
|
|
136
|
-
*
|
|
137
|
-
* @default false
|
|
138
|
-
*/
|
|
139
|
-
debug?: boolean;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Validated SDK configuration
|
|
144
|
-
*
|
|
145
|
-
* Configuration object returned by createConfig(). This is a plain,
|
|
146
|
-
* synchronous object that can be exported from a module and passed around.
|
|
147
|
-
*
|
|
148
|
-
* The asset catalog is NOT included here - it's fetched asynchronously
|
|
149
|
-
* when createLombardSDK() is called.
|
|
150
|
-
*/
|
|
151
|
-
export interface LombardConfig {
|
|
152
|
-
env: Env;
|
|
153
|
-
providers: ProviderGetters;
|
|
154
|
-
modules: readonly AnyModule[];
|
|
155
|
-
partner?: PartnerConfig;
|
|
156
|
-
logger?: Logger;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Resolved SDK configuration (internal)
|
|
161
|
-
*
|
|
162
|
-
* Extended config with the asset catalog, used internally by LombardSDK.
|
|
163
|
-
* Users don't interact with this type directly.
|
|
164
|
-
*
|
|
165
|
-
* @internal
|
|
166
|
-
*/
|
|
167
|
-
export interface ResolvedLombardConfig extends LombardConfig {
|
|
168
|
-
/**
|
|
169
|
-
* Asset catalog (fetched during SDK initialization)
|
|
170
|
-
*
|
|
171
|
-
* Contains all asset deployments, chain configs, and addresses.
|
|
172
|
-
* This is fetched asynchronously during createLombardSDK() to allow
|
|
173
|
-
* for dynamic updates without SDK releases.
|
|
174
|
-
*/
|
|
175
|
-
catalog: import('../core/assets/types').AssetCatalog;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export type LombardSDKOptions = CreateConfigOptions;
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Partner configuration
|
|
182
|
-
*
|
|
183
|
-
* Configuration for partners integrating the SDK.
|
|
184
|
-
*/
|
|
185
|
-
export interface PartnerConfig {
|
|
186
|
-
/** Unique partner identifier */
|
|
187
|
-
partnerId: string;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Custom asset registration
|
|
192
|
-
*
|
|
193
|
-
* Allows partners to register custom assets (e.g., SPL tokens).
|
|
194
|
-
*/
|
|
195
|
-
export interface CustomAsset {
|
|
196
|
-
/** Asset type */
|
|
197
|
-
type: 'spl' | 'erc20' | 'native';
|
|
198
|
-
|
|
199
|
-
/** Contract address (for token assets) */
|
|
200
|
-
address?: string;
|
|
201
|
-
|
|
202
|
-
/** Asset symbol */
|
|
203
|
-
symbol: string;
|
|
204
|
-
|
|
205
|
-
/** Number of decimals */
|
|
206
|
-
decimals: number;
|
|
207
|
-
|
|
208
|
-
/** L-Asset symbol (how it will be named in Lombard) */
|
|
209
|
-
lAssetSymbol: string;
|
|
210
|
-
|
|
211
|
-
/** Chain where the asset exists */
|
|
212
|
-
chain?: Chain;
|
|
213
|
-
|
|
214
|
-
/** Optional: Asset ID mapping */
|
|
215
|
-
assetId?: AssetId;
|
|
216
|
-
}
|
package/src/config/validation.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration validation and defaults
|
|
3
|
-
*
|
|
4
|
-
* This module provides validation and default application for SDK configuration.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { LombardError } from '../shared/errors';
|
|
8
|
-
import type { CreateConfigOptions, LombardConfig } from './types';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Normalized options after validation (before modules/logger are added)
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export type NormalizedOptions = Omit<LombardConfig, 'modules' | 'logger'>;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Validate and apply defaults to SDK options
|
|
18
|
-
*
|
|
19
|
-
* @param options - User-provided SDK options
|
|
20
|
-
* @returns Validated and normalized options (catalog added separately)
|
|
21
|
-
* @throws LombardError if configuration is invalid
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
export function validateAndApplyDefaults(
|
|
25
|
-
options: CreateConfigOptions,
|
|
26
|
-
): NormalizedOptions {
|
|
27
|
-
// Validate environment
|
|
28
|
-
if (!options.env) {
|
|
29
|
-
throw LombardError.missingParameter('env');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Build normalized options with defaults
|
|
33
|
-
const normalized: NormalizedOptions = {
|
|
34
|
-
env: options.env,
|
|
35
|
-
providers: options.providers || {},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
// Add partner config if provided
|
|
39
|
-
if (options.partner) {
|
|
40
|
-
validatePartnerConfig(options.partner);
|
|
41
|
-
normalized.partner = options.partner;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return normalized;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Validate partner configuration
|
|
49
|
-
*
|
|
50
|
-
* @param partner - Partner configuration to validate
|
|
51
|
-
* @throws LombardError if configuration is invalid
|
|
52
|
-
*/
|
|
53
|
-
function validatePartnerConfig(partner: unknown): void {
|
|
54
|
-
if (typeof partner !== 'object' || partner === null) {
|
|
55
|
-
throw LombardError.invalidConfiguration(
|
|
56
|
-
'Partner configuration must be an object',
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const config = partner as { partnerId?: string };
|
|
61
|
-
|
|
62
|
-
if (!config.partnerId || typeof config.partnerId !== 'string') {
|
|
63
|
-
throw LombardError.missingParameter('partner.partnerId');
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (config.partnerId.trim().length === 0) {
|
|
67
|
-
throw LombardError.invalidConfiguration('Partner ID cannot be empty');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { 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 { ConnectButton } from '../../stories/components/ConnectButton';
|
|
9
|
-
import {
|
|
10
|
-
functionType,
|
|
11
|
-
wagmiDecorator,
|
|
12
|
-
} from '../../stories/components/decorators';
|
|
13
|
-
import {
|
|
14
|
-
canPerformAction,
|
|
15
|
-
useConnection,
|
|
16
|
-
} from '../../stories/hooks/useConnection';
|
|
17
|
-
import useQuery from '../../stories/hooks/useQuery';
|
|
18
|
-
import { Vault,VAULTS } from '../../vaults/lib/config';
|
|
19
|
-
import { approveLBTC,IApproveLBTCParams } from './approveLBTC';
|
|
20
|
-
|
|
21
|
-
const meta = {
|
|
22
|
-
title: 'write/approveLBTC',
|
|
23
|
-
component: StoryView,
|
|
24
|
-
tags: ['autodocs'],
|
|
25
|
-
decorators: [wagmiDecorator, functionType('write')],
|
|
26
|
-
argTypes: { ...chainSelector },
|
|
27
|
-
} satisfies Meta<typeof StoryView>;
|
|
28
|
-
|
|
29
|
-
export default meta;
|
|
30
|
-
|
|
31
|
-
type Story = StoryObj<typeof meta>;
|
|
32
|
-
|
|
33
|
-
export const WithParams: Story = {
|
|
34
|
-
args: {
|
|
35
|
-
chainId: ChainId.sepolia,
|
|
36
|
-
spender: VAULTS[Vault.Veda].spenderContracts[ChainId.sepolia]?.address,
|
|
37
|
-
amount: 0.00001,
|
|
38
|
-
env: Env.stage,
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
type Props = Omit<IApproveLBTCParams, 'account' | 'provider'>;
|
|
43
|
-
|
|
44
|
-
export function StoryView(props: Props) {
|
|
45
|
-
const connection = useConnection();
|
|
46
|
-
|
|
47
|
-
const request = async () => {
|
|
48
|
-
if (!canPerformAction(connection)) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return approveLBTC({
|
|
53
|
-
...props,
|
|
54
|
-
|
|
55
|
-
account: connection.account.address,
|
|
56
|
-
// chainId: connection.account.chainId,
|
|
57
|
-
provider: connection.provider,
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const { data, error, isLoading, refetch } = useQuery(request, [], false);
|
|
62
|
-
|
|
63
|
-
return (
|
|
64
|
-
<>
|
|
65
|
-
<div className="mb-4">
|
|
66
|
-
<ConnectButton />
|
|
67
|
-
</div>
|
|
68
|
-
|
|
69
|
-
<Button
|
|
70
|
-
onClick={refetch}
|
|
71
|
-
disabled={isLoading || !connection.account.address}
|
|
72
|
-
isLoading={isLoading}
|
|
73
|
-
actionName={approveLBTC.name}
|
|
74
|
-
/>
|
|
75
|
-
|
|
76
|
-
<CodeBlock text={error || data} />
|
|
77
|
-
</>
|
|
78
|
-
);
|
|
79
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
|
-
import { Address, Hash } from 'viem';
|
|
3
|
-
|
|
4
|
-
import { makePublicClient } from '../../clients/public-client';
|
|
5
|
-
import { makeWalletClient } from '../../clients/wallet-client';
|
|
6
|
-
import { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../common/chains';
|
|
7
|
-
import { CommonWriteParameters } from '../../common/parameters';
|
|
8
|
-
import { Token } from '../../tokens/token-addresses';
|
|
9
|
-
import { getTokenContractInfo } from '../../tokens/tokens';
|
|
10
|
-
import { toSatoshi } from '../../utils/satoshi';
|
|
11
|
-
|
|
12
|
-
export interface IApproveLBTCParams extends CommonWriteParameters {
|
|
13
|
-
/**
|
|
14
|
-
* The spender account address.
|
|
15
|
-
*/
|
|
16
|
-
spender: Address;
|
|
17
|
-
/**
|
|
18
|
-
* The approved amount of LBTC.
|
|
19
|
-
*/
|
|
20
|
-
amount: BigNumber.Value;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Approves the provided spender to withdraw a specified amount of LBTC from
|
|
25
|
-
* your account.
|
|
26
|
-
*
|
|
27
|
-
* @param {IApproveLBTCParams} parameters - The parameters.
|
|
28
|
-
* @param {Address} spender - The spender account address.
|
|
29
|
-
* @param {BigNumber.Value} - The amount of LBTC.
|
|
30
|
-
* @param {Address} parameters.account - The EVM account address.
|
|
31
|
-
* @param {ChainId} parameters.chainId - The chain id.
|
|
32
|
-
* @param {EIP1193Provider} parameters.provider - The EIP1193 provider.
|
|
33
|
-
* @param {string} parameters.rpcUrl - The optional rpc url.
|
|
34
|
-
* @param {Env} parameters.env - The optional environment identifier.
|
|
35
|
-
*
|
|
36
|
-
* @returns {Promise<Hash>}
|
|
37
|
-
*/
|
|
38
|
-
export async function approveLBTC({
|
|
39
|
-
account,
|
|
40
|
-
spender,
|
|
41
|
-
amount,
|
|
42
|
-
chainId,
|
|
43
|
-
provider,
|
|
44
|
-
rpcUrl,
|
|
45
|
-
env,
|
|
46
|
-
}: IApproveLBTCParams): Promise<Hash> {
|
|
47
|
-
const publicClient = makePublicClient({ chainId, rpcUrl });
|
|
48
|
-
const walletClient = makeWalletClient({ chainId, provider });
|
|
49
|
-
|
|
50
|
-
const lbtcContract = await getTokenContractInfo(Token.LBTC, chainId, env);
|
|
51
|
-
|
|
52
|
-
const amountSat = toSatoshi(amount).toNumber();
|
|
53
|
-
|
|
54
|
-
const { request } = await publicClient.simulateContract({
|
|
55
|
-
address: lbtcContract.address,
|
|
56
|
-
account,
|
|
57
|
-
chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],
|
|
58
|
-
abi: lbtcContract.abi,
|
|
59
|
-
functionName: 'approve',
|
|
60
|
-
args: [spender, BigInt(amountSat)],
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
const txHash = await walletClient.writeContract(request);
|
|
64
|
-
|
|
65
|
-
return txHash;
|
|
66
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './approveLBTC';
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
2
|
-
import BigNumber from 'bignumber.js';
|
|
3
|
-
import { Address, Hash } from 'viem';
|
|
4
|
-
|
|
5
|
-
import { makePublicClient } from '../../clients/public-client';
|
|
6
|
-
import { makeWalletClient } from '../../clients/wallet-client';
|
|
7
|
-
import { CHAIN_ID_TO_VIEM_CHAIN_MAP, ChainId } from '../../common/chains';
|
|
8
|
-
import { CommonWriteParameters, IEnvParam } from '../../common/parameters';
|
|
9
|
-
import { Token } from '../../tokens/token-addresses';
|
|
10
|
-
import {
|
|
11
|
-
fromBaseDenomination,
|
|
12
|
-
getTokenInfo,
|
|
13
|
-
toBaseDenomination,
|
|
14
|
-
} from '../../tokens/tokens';
|
|
15
|
-
import toBigInt from '../../utils/numbers';
|
|
16
|
-
|
|
17
|
-
export interface IApproveTokenParams extends CommonWriteParameters, IEnvParam {
|
|
18
|
-
/**
|
|
19
|
-
* The token to approve.
|
|
20
|
-
*/
|
|
21
|
-
token: Token;
|
|
22
|
-
/**
|
|
23
|
-
* The spender account address.
|
|
24
|
-
*/
|
|
25
|
-
spender: Address;
|
|
26
|
-
/**
|
|
27
|
-
* The approved amount of the token.
|
|
28
|
-
*/
|
|
29
|
-
amount: BigNumber.Value;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Approves the provided spender to withdraw a specified amount of a token from
|
|
34
|
-
* your account.
|
|
35
|
-
*
|
|
36
|
-
* @param {IApproveTokenParams} parameters - The parameters.
|
|
37
|
-
* @param {Token} parameters.token - The token to approve.
|
|
38
|
-
* @param {Address} parameters.spender - The spender account address.
|
|
39
|
-
* @param {BigNumber.Value} parameters.amount - The amount of the token.
|
|
40
|
-
* @param {Address} parameters.account - The EVM account address.
|
|
41
|
-
* @param {ChainId} parameters.chainId - The chain id.
|
|
42
|
-
* @param {EIP1193Provider} parameters.provider - The EIP1193 provider.
|
|
43
|
-
* @param {string} parameters.rpcUrl - The optional rpc url.
|
|
44
|
-
* @param {Env} parameters.env - The optional environment identifier.
|
|
45
|
-
*
|
|
46
|
-
* @returns {Promise<Hash>}
|
|
47
|
-
*/
|
|
48
|
-
export async function approveToken({
|
|
49
|
-
account,
|
|
50
|
-
token,
|
|
51
|
-
spender,
|
|
52
|
-
amount,
|
|
53
|
-
chainId,
|
|
54
|
-
provider,
|
|
55
|
-
rpcUrl,
|
|
56
|
-
env,
|
|
57
|
-
}: IApproveTokenParams): Promise<Hash> {
|
|
58
|
-
const publicClient = makePublicClient({ chainId, rpcUrl, env });
|
|
59
|
-
const walletClient = makeWalletClient({ chainId, provider });
|
|
60
|
-
|
|
61
|
-
const tokenInfo = await getTokenInfo(token, chainId, env, rpcUrl);
|
|
62
|
-
if (!tokenInfo) {
|
|
63
|
-
throw new Error(`Token info not found for ${token} on chain ${chainId}`);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const amountBase = toBigInt(
|
|
67
|
-
toBaseDenomination(BigNumber(amount), tokenInfo.decimals),
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
const { request } = await publicClient.simulateContract({
|
|
71
|
-
address: tokenInfo.address,
|
|
72
|
-
account,
|
|
73
|
-
chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],
|
|
74
|
-
abi: tokenInfo.abi,
|
|
75
|
-
functionName: 'approve',
|
|
76
|
-
args: [spender, amountBase],
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
const txHash = await walletClient.writeContract(request);
|
|
80
|
-
|
|
81
|
-
return txHash;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Gets the allowance of a token for a spender.
|
|
86
|
-
*
|
|
87
|
-
* @param {Object} parameters - The parameters.
|
|
88
|
-
* @param {Token} parameters.token - The token.
|
|
89
|
-
* @param {Address} parameters.owner - The owner account address.
|
|
90
|
-
* @param {Address} parameters.spender - The spender account address.
|
|
91
|
-
* @param {ChainId} parameters.chainId - The chain id.
|
|
92
|
-
* @param {string} parameters.rpcUrl - The optional rpc url.
|
|
93
|
-
* @param {Env} parameters.env - The optional environment identifier.
|
|
94
|
-
*
|
|
95
|
-
* @returns {Promise<BigNumber>}
|
|
96
|
-
*/
|
|
97
|
-
export async function getTokenAllowance({
|
|
98
|
-
token,
|
|
99
|
-
owner,
|
|
100
|
-
spender,
|
|
101
|
-
chainId,
|
|
102
|
-
rpcUrl,
|
|
103
|
-
env,
|
|
104
|
-
}: {
|
|
105
|
-
token: Token;
|
|
106
|
-
owner: Address;
|
|
107
|
-
spender: Address;
|
|
108
|
-
chainId: ChainId;
|
|
109
|
-
rpcUrl?: string;
|
|
110
|
-
env?: Env;
|
|
111
|
-
}): Promise<BigNumber> {
|
|
112
|
-
const publicClient = makePublicClient({ chainId, rpcUrl, env });
|
|
113
|
-
const tokenInfo = await getTokenInfo(token, chainId, env, rpcUrl);
|
|
114
|
-
if (!tokenInfo) {
|
|
115
|
-
throw new Error(`Token info not found for ${token} on chain ${chainId}`);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const allowanceRaw = (await publicClient.readContract({
|
|
119
|
-
address: tokenInfo.address,
|
|
120
|
-
abi: tokenInfo.abi,
|
|
121
|
-
functionName: 'allowance',
|
|
122
|
-
args: [owner, spender],
|
|
123
|
-
})) as bigint;
|
|
124
|
-
|
|
125
|
-
return fromBaseDenomination(allowanceRaw.toString(), tokenInfo.decimals);
|
|
126
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './approveToken';
|