@lombard.finance/sdk 4.0.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/bridge/lib/ccip-config.d.ts.map +1 -1
- package/dist/bridge/lib/config.d.ts +3 -3
- package/dist/bridge/lib/config.d.ts.map +1 -1
- package/dist/common/chains.d.ts +2 -2
- package/dist/common/chains.d.ts.map +1 -1
- package/dist/common/feature-config.d.ts.map +1 -1
- package/dist/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.d.ts.map +1 -1
- package/dist/index2.cjs +6 -6
- package/dist/index2.js +792 -759
- package/dist/vaults/lib/config.d.ts +1 -1
- package/package.json +7 -8
- package/src/__tests__/AssetNamespace.spec.ts +0 -234
- package/src/__tests__/helpers/createTestConfig.ts +0 -90
- package/src/__tests__/integration/automint-fee.integration.test.ts +0 -74
- package/src/__tests__/integration/btc-deposit.integration.test.ts +0 -109
- package/src/__tests__/integration/btc-stake-and-deploy.integration.test.ts +0 -96
- package/src/__tests__/integration/btc-stake.integration.test.ts +0 -466
- package/src/__tests__/integration/evm-actions.integration.test.ts +0 -932
- package/src/__tests__/integration/evm-deploy.integration.test.ts +0 -122
- package/src/__tests__/integration/evm-redeem.integration.test.ts +0 -157
- package/src/__tests__/integration/faq-patterns.integration.test.ts +0 -465
- package/src/__tests__/integration/getLBTCMintingFee.integration.test.ts +0 -195
- package/src/__tests__/real-wallet/btc/btc-stake.real.test.ts +0 -70
- package/src/__tests__/real-wallet/evm/evm-stake.real.test.ts +0 -47
- package/src/__tests__/real-wallet/evm/evm-unstake.real.test.ts +0 -49
- package/src/__tests__/real-wallet/non-evm/solana-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/starknet-unstake.real.test.ts +0 -19
- package/src/__tests__/real-wallet/non-evm/sui-unstake.real.test.ts +0 -19
- package/src/__tests__/services/ApiService.test.ts +0 -62
- package/src/__tests__/services/BtcService.test.ts +0 -30
- package/src/__tests__/services/EvmService.test.ts +0 -39
- package/src/__tests__/setup.ts +0 -16
- package/src/__tests__/test-utils/eip1193-adapter.ts +0 -48
- package/src/__tests__/test-utils/evm-wallet.ts +0 -38
- package/src/__tests__/test-utils/solana-wallet.ts +0 -22
- package/src/__tests__/test-utils/starknet-wallet.ts +0 -9
- package/src/__tests__/test-utils/sui-wallet.ts +0 -14
- package/src/__tests__/test-utils/test-constraints.ts +0 -110
- package/src/__tests__/unit/btc/BtcDeposit.test.ts +0 -253
- package/src/__tests__/unit/btc/BtcDepositAndDeploy.test.ts +0 -174
- package/src/__tests__/unit/btc/BtcDepositConfig.test.ts +0 -143
- package/src/__tests__/unit/btc/BtcDepositStatusTransition.test.ts +0 -221
- package/src/__tests__/unit/btc/BtcStakeAndDeploy.test.ts +0 -194
- package/src/__tests__/unit/btc/ExistingSignatureHandling.test.ts +0 -301
- package/src/__tests__/unit/btc/StakeAndBakeRatioConversion.test.ts +0 -200
- package/src/__tests__/unit/btc/StakeAndBakeSignatureRestore.test.ts +0 -216
- package/src/__tests__/unit/btc/TokenParameterConsistency.test.ts +0 -184
- package/src/__tests__/unit/btc/btc-deposit-token.test.ts +0 -191
- package/src/__tests__/unit/catalog/AssetCatalog.test.ts +0 -293
- package/src/__tests__/unit/config/ChainConfig.test.ts +0 -47
- package/src/__tests__/unit/config/FeeAuthConfig.test.ts +0 -76
- package/src/__tests__/unit/contract-functions/getLBTCMintingFee.test.ts +0 -128
- package/src/__tests__/unit/core/chain-parsing.test.ts +0 -257
- package/src/__tests__/unit/defi/AvailableProtocols.test.ts +0 -100
- package/src/__tests__/unit/defi/DefiRegistry.test.ts +0 -25
- package/src/__tests__/unit/evm/EvmDeploy.test.ts +0 -224
- package/src/__tests__/unit/evm/EvmRedeem.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmRedeemFeeAuth.test.ts +0 -93
- package/src/__tests__/unit/evm/EvmStake.test.ts +0 -207
- package/src/__tests__/unit/evm/EvmStakeFeeAuth.test.ts +0 -193
- package/src/__tests__/unit/evm/EvmUnstakeAllowance.test.ts +0 -69
- package/src/__tests__/unit/evm/EvmUnstakeConfig.test.ts +0 -203
- package/src/__tests__/unit/fee-signature-expiration.test.ts +0 -76
- package/src/__tests__/unit/modules/CapabilityRegistry.test.ts +0 -55
- package/src/__tests__/unit/shared/BaseAction.test.ts +0 -122
- package/src/__tests__/unit/shared/BaseBtcAction.test.ts +0 -114
- package/src/__tests__/unit/solana/SolanaUnstake.test.ts +0 -314
- package/src/__tests__/unit/starknet/StarknetUnstake.test.ts +0 -318
- package/src/__tests__/unit/sui/SuiUnstake.test.ts +0 -310
- package/src/__tests__/unit/utils/satoshi.test.ts +0 -27
- package/src/__tests__/unit/validation/address-validation.test.ts +0 -350
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.stories.tsx +0 -71
- package/src/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.ts +0 -235
- package/src/api-functions/generateDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/get-badges-by-address/get-badges-by-address.ts +0 -13
- package/src/api-functions/get-badges-by-address/index.ts +0 -1
- package/src/api-functions/getDepositAddressReferrer/getDepositAddressReferrer.ts +0 -38
- package/src/api-functions/getDepositAddressReferrer/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.stories.tsx +0 -59
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.test.ts +0 -265
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddress.ts +0 -167
- package/src/api-functions/getDepositBtcAddress/getDepositBtcAddresses.stories.tsx +0 -58
- package/src/api-functions/getDepositBtcAddress/index.ts +0 -1
- package/src/api-functions/getDepositBtcAddress/make-request.ts +0 -59
- package/src/api-functions/getDepositBtcAddress/types.ts +0 -106
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.stories.tsx +0 -51
- package/src/api-functions/getDepositsByAddress/getDepositsByAddress.ts +0 -502
- package/src/api-functions/getDepositsByAddress/index.ts +0 -1
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.stories.tsx +0 -48
- package/src/api-functions/getLBTCExchangeRate/get-exchange-ratio.ts +0 -59
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.stories.tsx +0 -55
- package/src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts +0 -75
- package/src/api-functions/getLBTCExchangeRate/index.ts +0 -2
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +0 -59
- package/src/api-functions/getNetworkFeeSignature/getNetworkFeeSignature.ts +0 -116
- package/src/api-functions/getNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/getPointsByAddress/getPointsByAddress.stories.tsx +0 -51
- package/src/api-functions/getPointsByAddress/getPointsByAddress.ts +0 -304
- package/src/api-functions/getPointsByAddress/index.ts +0 -1
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.stories.tsx +0 -51
- package/src/api-functions/getUnstakesByAddress/getUnstakesByAddress.ts +0 -368
- package/src/api-functions/getUnstakesByAddress/index.ts +0 -1
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.stories.tsx +0 -70
- package/src/api-functions/getUserStakeAndBakeSignature/getUserStakeAndBakeSignature.ts +0 -91
- package/src/api-functions/getUserStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/index.ts +0 -11
- package/src/api-functions/setReferral/index.ts +0 -1
- package/src/api-functions/setReferral/setReferral.ts +0 -67
- package/src/api-functions/storeNetworkFeeSignature/index.ts +0 -1
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +0 -57
- package/src/api-functions/storeNetworkFeeSignature/storeNetworkFeeSignature.ts +0 -75
- package/src/api-functions/storeStakeAndBakeSignature/index.ts +0 -1
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +0 -57
- package/src/api-functions/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +0 -61
- package/src/bridge/abi/CCIP_BRIDGE_ADAPTER_ABI.json +0 -704
- package/src/bridge/abi/CCIP_ROUTER_ABI.json +0 -702
- package/src/bridge/abi/OFT_BRIDGE_ADAPTER_ABI.json +0 -912
- package/src/bridge/index.ts +0 -16
- package/src/bridge/lib/bridge.stories.tsx +0 -90
- package/src/bridge/lib/bridge.ts +0 -115
- package/src/bridge/lib/ccip-bridge.stories.tsx +0 -91
- package/src/bridge/lib/ccip-bridge.ts +0 -214
- package/src/bridge/lib/ccip-config.ts +0 -54
- package/src/bridge/lib/config.ts +0 -384
- package/src/bridge/lib/oft-bridge.stories.tsx +0 -90
- package/src/bridge/lib/oft-bridge.ts +0 -217
- package/src/chains/btc/BtcActions.ts +0 -192
- package/src/chains/btc/actions/deposit/BtcDeposit.ts +0 -388
- package/src/chains/btc/actions/deposit/config/evm.ts +0 -197
- package/src/chains/btc/actions/deposit/config/index.ts +0 -53
- package/src/chains/btc/actions/deposit/config/types.ts +0 -108
- package/src/chains/btc/actions/deposit/factory.ts +0 -53
- package/src/chains/btc/actions/deposit/index.ts +0 -23
- package/src/chains/btc/actions/deposit/types.ts +0 -120
- package/src/chains/btc/actions/depositAndDeploy/BtcDepositAndDeploy.ts +0 -366
- package/src/chains/btc/actions/depositAndDeploy/config/evm.ts +0 -105
- package/src/chains/btc/actions/depositAndDeploy/config/index.ts +0 -111
- package/src/chains/btc/actions/depositAndDeploy/config/types.ts +0 -67
- package/src/chains/btc/actions/depositAndDeploy/factory.ts +0 -38
- package/src/chains/btc/actions/depositAndDeploy/index.ts +0 -24
- package/src/chains/btc/actions/depositAndDeploy/types.ts +0 -120
- package/src/chains/btc/actions/index.ts +0 -14
- package/src/chains/btc/actions/shared/BaseBtcAction.ts +0 -495
- package/src/chains/btc/actions/shared/index.ts +0 -28
- package/src/chains/btc/actions/shared/tokenUtils.ts +0 -68
- package/src/chains/btc/actions/shared/validation.ts +0 -180
- package/src/chains/btc/actions/stake/BtcStake.ts +0 -433
- package/src/chains/btc/actions/stake/__tests__/BtcStake.test.ts +0 -247
- package/src/chains/btc/actions/stake/config/evm.ts +0 -183
- package/src/chains/btc/actions/stake/config/index.ts +0 -122
- package/src/chains/btc/actions/stake/config/solana.ts +0 -96
- package/src/chains/btc/actions/stake/config/starknet.ts +0 -66
- package/src/chains/btc/actions/stake/config/sui.ts +0 -61
- package/src/chains/btc/actions/stake/config/types.ts +0 -165
- package/src/chains/btc/actions/stake/factory.ts +0 -53
- package/src/chains/btc/actions/stake/index.ts +0 -22
- package/src/chains/btc/actions/stake/types.ts +0 -175
- package/src/chains/btc/actions/stakeAndDeploy/BtcStakeAndDeploy.ts +0 -415
- package/src/chains/btc/actions/stakeAndDeploy/config/evm.ts +0 -135
- package/src/chains/btc/actions/stakeAndDeploy/config/index.ts +0 -119
- package/src/chains/btc/actions/stakeAndDeploy/config/types.ts +0 -93
- package/src/chains/btc/actions/stakeAndDeploy/factory.ts +0 -54
- package/src/chains/btc/actions/stakeAndDeploy/index.ts +0 -26
- package/src/chains/btc/actions/stakeAndDeploy/types.ts +0 -118
- package/src/chains/btc/client/getCurrentBlockHeight.ts +0 -28
- package/src/chains/btc/client/mempool/error.ts +0 -24
- package/src/chains/btc/client/mempool/mempool.ts +0 -23
- package/src/chains/btc/index.ts +0 -71
- package/src/chains/evm/EvmActions.ts +0 -185
- package/src/chains/evm/actions/deploy/EvmDeploy.ts +0 -256
- package/src/chains/evm/actions/deploy/config/evm.ts +0 -80
- package/src/chains/evm/actions/deploy/config/index.ts +0 -8
- package/src/chains/evm/actions/deploy/config/types.ts +0 -43
- package/src/chains/evm/actions/deploy/factory.ts +0 -44
- package/src/chains/evm/actions/deploy/index.ts +0 -17
- package/src/chains/evm/actions/deploy/types.ts +0 -74
- package/src/chains/evm/actions/deposit/EvmDeposit.ts +0 -159
- package/src/chains/evm/actions/deposit/config/evm.ts +0 -100
- package/src/chains/evm/actions/deposit/config/index.ts +0 -8
- package/src/chains/evm/actions/deposit/config/types.ts +0 -39
- package/src/chains/evm/actions/deposit/factory.ts +0 -44
- package/src/chains/evm/actions/deposit/index.ts +0 -17
- package/src/chains/evm/actions/deposit/types.ts +0 -87
- package/src/chains/evm/actions/index.ts +0 -67
- package/src/chains/evm/actions/redeem/EvmRedeem.ts +0 -263
- package/src/chains/evm/actions/redeem/config/evm.ts +0 -85
- package/src/chains/evm/actions/redeem/config/index.ts +0 -8
- package/src/chains/evm/actions/redeem/config/types.ts +0 -39
- package/src/chains/evm/actions/redeem/factory.ts +0 -43
- package/src/chains/evm/actions/redeem/index.ts +0 -17
- package/src/chains/evm/actions/redeem/types.ts +0 -93
- package/src/chains/evm/actions/stake/EvmStake.ts +0 -339
- package/src/chains/evm/actions/stake/config/evm.ts +0 -89
- package/src/chains/evm/actions/stake/config/index.ts +0 -8
- package/src/chains/evm/actions/stake/config/types.ts +0 -89
- package/src/chains/evm/actions/stake/factory.ts +0 -52
- package/src/chains/evm/actions/stake/index.ts +0 -30
- package/src/chains/evm/actions/stake/types.ts +0 -104
- package/src/chains/evm/actions/unstake/EvmUnstake.ts +0 -258
- package/src/chains/evm/actions/unstake/config/evm.ts +0 -123
- package/src/chains/evm/actions/unstake/config/index.ts +0 -13
- package/src/chains/evm/actions/unstake/config/types.ts +0 -37
- package/src/chains/evm/actions/unstake/factory.ts +0 -44
- package/src/chains/evm/actions/unstake/index.ts +0 -22
- package/src/chains/evm/actions/unstake/types.ts +0 -87
- package/src/chains/evm/index.ts +0 -16
- package/src/chains/evm/shared/feeAuth.ts +0 -198
- package/src/chains/evm/shared/index.ts +0 -7
- package/src/chains/solana/SolanaActions.ts +0 -85
- package/src/chains/solana/actions/index.ts +0 -7
- package/src/chains/solana/actions/unstake/SolanaUnstake.ts +0 -151
- package/src/chains/solana/actions/unstake/config/btc.ts +0 -47
- package/src/chains/solana/actions/unstake/config/index.ts +0 -8
- package/src/chains/solana/actions/unstake/config/solana.ts +0 -47
- package/src/chains/solana/actions/unstake/config/types.ts +0 -35
- package/src/chains/solana/actions/unstake/factory.ts +0 -34
- package/src/chains/solana/actions/unstake/index.ts +0 -14
- package/src/chains/solana/actions/unstake/types.ts +0 -58
- package/src/chains/solana/index.ts +0 -8
- package/src/chains/starknet/StarknetActions.ts +0 -85
- package/src/chains/starknet/actions/index.ts +0 -7
- package/src/chains/starknet/actions/unstake/StarknetUnstake.ts +0 -128
- package/src/chains/starknet/actions/unstake/config/btc.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/index.ts +0 -8
- package/src/chains/starknet/actions/unstake/config/starknet.ts +0 -43
- package/src/chains/starknet/actions/unstake/config/types.ts +0 -27
- package/src/chains/starknet/actions/unstake/factory.ts +0 -32
- package/src/chains/starknet/actions/unstake/index.ts +0 -14
- package/src/chains/starknet/actions/unstake/types.ts +0 -57
- package/src/chains/starknet/index.ts +0 -8
- package/src/chains/sui/SuiActions.ts +0 -82
- package/src/chains/sui/actions/index.ts +0 -7
- package/src/chains/sui/actions/unstake/SuiUnstake.ts +0 -146
- package/src/chains/sui/actions/unstake/config/btc.ts +0 -43
- package/src/chains/sui/actions/unstake/config/index.ts +0 -8
- package/src/chains/sui/actions/unstake/config/sui.ts +0 -43
- package/src/chains/sui/actions/unstake/config/types.ts +0 -27
- package/src/chains/sui/actions/unstake/factory.ts +0 -32
- package/src/chains/sui/actions/unstake/index.ts +0 -14
- package/src/chains/sui/actions/unstake/types.ts +0 -57
- package/src/chains/sui/index.ts +0 -8
- package/src/client/ApiNamespace.ts +0 -302
- package/src/client/AssetNamespace.ts +0 -112
- package/src/client/LombardSDK.ts +0 -212
- package/src/client/PartnerConfiguration.ts +0 -50
- package/src/client/createConfig.ts +0 -90
- package/src/client/createLombardSDK.ts +0 -130
- package/src/clients/evm-signer-adapter.ts +0 -313
- package/src/clients/public-client.ts +0 -49
- package/src/clients/rpc-url-config.ts +0 -64
- package/src/clients/wallet-client.ts +0 -34
- package/src/common/api-config.ts +0 -48
- package/src/common/blockchain-identifier.ts +0 -217
- package/src/common/chains.stories.tsx +0 -68
- package/src/common/chains.ts +0 -449
- package/src/common/constants.ts +0 -1
- package/src/common/contract-info.ts +0 -9
- package/src/common/feature-config.ts +0 -79
- package/src/common/fee-requirements.ts +0 -34
- package/src/common/parameters.ts +0 -89
- package/src/config/defaults.ts +0 -49
- package/src/config/index.ts +0 -12
- package/src/config/providers.ts +0 -81
- package/src/config/types.ts +0 -216
- package/src/config/validation.ts +0 -69
- package/src/contract-functions/approveLBTC/approveLBTC.stories.tsx +0 -79
- package/src/contract-functions/approveLBTC/approveLBTC.ts +0 -66
- package/src/contract-functions/approveLBTC/index.ts +0 -1
- package/src/contract-functions/approveToken/approveToken.ts +0 -126
- package/src/contract-functions/approveToken/index.ts +0 -1
- package/src/contract-functions/claimLBTC/claimLBTC.stories.tsx +0 -82
- package/src/contract-functions/claimLBTC/claimLBTC.ts +0 -159
- package/src/contract-functions/claimLBTC/index.ts +0 -1
- package/src/contract-functions/claimUnstakeRedeem/claimUnstakeRedeem.ts +0 -95
- package/src/contract-functions/claimUnstakeRedeem/index.ts +0 -1
- package/src/contract-functions/deposit/depositToken.stories.tsx +0 -83
- package/src/contract-functions/deposit/depositToken.ts +0 -214
- package/src/contract-functions/deposit/index.ts +0 -1
- package/src/contract-functions/getBasculeDepositStatus/decodeBasculeDepositStatus.ts +0 -170
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.stories.tsx +0 -62
- package/src/contract-functions/getBasculeDepositStatus/getBasculeDepositStatus.ts +0 -211
- package/src/contract-functions/getBasculeDepositStatus/index.ts +0 -2
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +0 -61
- package/src/contract-functions/getLBTCMintingFee/getLBTCMintingFee.ts +0 -193
- package/src/contract-functions/getLBTCMintingFee/index.ts +0 -1
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.stories.tsx +0 -51
- package/src/contract-functions/getLBTCTotalSupply/getLBTCTotalSupply.ts +0 -40
- package/src/contract-functions/getLBTCTotalSupply/index.ts +0 -1
- package/src/contract-functions/getPermitNonce/getPermitNonce.stories.tsx +0 -56
- package/src/contract-functions/getPermitNonce/getPermitNonce.ts +0 -50
- package/src/contract-functions/getPermitNonce/index.ts +0 -1
- package/src/contract-functions/getShareValue/getShareValue.stories.tsx +0 -58
- package/src/contract-functions/getShareValue/getShareValue.ts +0 -59
- package/src/contract-functions/getShareValue/index.ts +0 -1
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.stories.tsx +0 -65
- package/src/contract-functions/getSharesByAddress/getSharesByAddress.ts +0 -86
- package/src/contract-functions/getSharesByAddress/index.ts +0 -4
- package/src/contract-functions/getStakeAndBakeFee/__tests__/getStakeAndBakeFee.test.ts +0 -167
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.stories.tsx +0 -180
- package/src/contract-functions/getStakeAndBakeFee/getStakeAndBakeFee.tsx +0 -101
- package/src/contract-functions/getStakeAndBakeFee/index.ts +0 -1
- package/src/contract-functions/index.ts +0 -21
- package/src/contract-functions/signLbtcDestionationAddr/index.ts +0 -1
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestinationAddr.ts +0 -32
- package/src/contract-functions/signLbtcDestionationAddr/signLbtcDestionationAddr.stories.tsx +0 -64
- package/src/contract-functions/signNetworkFee/getTypedData.ts +0 -41
- package/src/contract-functions/signNetworkFee/index.ts +0 -1
- package/src/contract-functions/signNetworkFee/signNetworkFee.stories.tsx +0 -94
- package/src/contract-functions/signNetworkFee/signNetworkFee.ts +0 -106
- package/src/contract-functions/signStakeAndBake/__tests__/signStakeAndBake.test.ts +0 -888
- package/src/contract-functions/signStakeAndBake/handleApprove.ts +0 -81
- package/src/contract-functions/signStakeAndBake/handlePermit.ts +0 -28
- package/src/contract-functions/signStakeAndBake/index.ts +0 -2
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.stories.tsx +0 -202
- package/src/contract-functions/signStakeAndBake/signStakeAndBake.ts +0 -160
- package/src/contract-functions/signStakeAndBake/typed-data-builder.ts +0 -137
- package/src/contract-functions/signStakeAndBake/utils.ts +0 -61
- package/src/contract-functions/signStakeAndBake/validation.ts +0 -124
- package/src/contract-functions/unstakeLBTC/index.ts +0 -1
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.stories.tsx +0 -92
- package/src/contract-functions/unstakeLBTC/unstakeLBTC.ts +0 -396
- package/src/contracts/abis/index.ts +0 -29
- package/src/contracts/index.ts +0 -63
- package/src/contracts/types.ts +0 -143
- package/src/contracts/utils.ts +0 -288
- package/src/core/assets/catalog.ts +0 -343
- package/src/core/assets/index.ts +0 -40
- package/src/core/assets/types.ts +0 -142
- package/src/core/assets/utils.ts +0 -287
- package/src/core/chains/catalog.ts +0 -396
- package/src/core/chains/index.ts +0 -39
- package/src/core/chains/types.ts +0 -193
- package/src/core/chains/utils.ts +0 -245
- package/src/core/index.ts +0 -72
- package/src/core/types.ts +0 -126
- package/src/debug-api/btc-script-to-address.ts +0 -20
- package/src/debug-api/btc-tx-info.ts +0 -32
- package/src/debug-api/evm-by-btc-address.ts +0 -26
- package/src/debug-api/index.ts +0 -3
- package/src/defi/README.md +0 -517
- package/src/defi/defi-registry.stories.tsx +0 -527
- package/src/defi/defi-registry.ts +0 -295
- package/src/defi/index.ts +0 -17
- package/src/index.ts +0 -336
- package/src/metrics/get-additional-rewards.ts +0 -69
- package/src/metrics/get-lbtc-apy.ts +0 -74
- package/src/metrics/get-lbtc-stats.stories.tsx +0 -57
- package/src/metrics/get-lbtc-stats.ts +0 -59
- package/src/metrics/get-positions-summary.stories.tsx +0 -58
- package/src/metrics/get-positions-summary.ts +0 -132
- package/src/modules/CapabilityRegistry.ts +0 -125
- package/src/modules/apiModule.ts +0 -51
- package/src/modules/btcModule.ts +0 -43
- package/src/modules/evmModule.ts +0 -48
- package/src/modules/index.ts +0 -60
- package/src/referrals/ReferralsClient.ts +0 -34
- package/src/referrals/index.ts +0 -1
- package/src/services/ApiService.ts +0 -152
- package/src/services/BtcService.ts +0 -29
- package/src/services/EvmService.ts +0 -127
- package/src/services/index.ts +0 -43
- package/src/shared/__tests__/errors.test.ts +0 -185
- package/src/shared/__tests__/events.test.ts +0 -120
- package/src/shared/__tests__/types.test.ts +0 -155
- package/src/shared/actions/BaseAction.ts +0 -497
- package/src/shared/actions/__tests__/BaseAction.test.ts +0 -292
- package/src/shared/actions/index.ts +0 -9
- package/src/shared/constants/statusConstants.ts +0 -108
- package/src/shared/context/ContextBuilder.ts +0 -149
- package/src/shared/context/index.ts +0 -8
- package/src/shared/context/types.ts +0 -156
- package/src/shared/deposits/depositStatus.ts +0 -402
- package/src/shared/deposits/index.ts +0 -29
- package/src/shared/errors.ts +0 -405
- package/src/shared/events.ts +0 -260
- package/src/shared/evm/switchChain.ts +0 -109
- package/src/shared/index.ts +0 -54
- package/src/shared/monitoring/__tests__/createEventEmitter.test.ts +0 -150
- package/src/shared/monitoring/createEventEmitter.ts +0 -160
- package/src/shared/monitoring/createProgressEmitter.ts +0 -46
- package/src/shared/monitoring/depositMonitor.ts +0 -211
- package/src/shared/monitoring/index.ts +0 -25
- package/src/shared/validation/index.ts +0 -411
- package/src/stories/arg-types.ts +0 -38
- package/src/stories/components/Badge.tsx +0 -27
- package/src/stories/components/Button/Button.css +0 -10
- package/src/stories/components/Button/Button.tsx +0 -52
- package/src/stories/components/Button/index.ts +0 -1
- package/src/stories/components/Card.tsx +0 -18
- package/src/stories/components/CodeBlock/CodeBlock.tsx +0 -27
- package/src/stories/components/CodeBlock/CodeBlockStyles.css +0 -3
- package/src/stories/components/CodeBlock/index.ts +0 -1
- package/src/stories/components/ConnectButton/connect-button.tsx +0 -248
- package/src/stories/components/ConnectButton/index.ts +0 -1
- package/src/stories/components/JsonPreview.tsx +0 -84
- package/src/stories/components/Spinner/Spinner.tsx +0 -27
- package/src/stories/components/Spinner/index.ts +0 -1
- package/src/stories/components/StatsCard.tsx +0 -30
- package/src/stories/components/StatusIndicator.tsx +0 -37
- package/src/stories/components/TreeNode.tsx +0 -47
- package/src/stories/components/decorators/function-type.tsx +0 -63
- package/src/stories/components/decorators/index.ts +0 -2
- package/src/stories/components/decorators/wagmi-decorator.tsx +0 -92
- package/src/stories/components/error-block.tsx +0 -21
- package/src/stories/components/index.ts +0 -11
- package/src/stories/constants.ts +0 -3
- package/src/stories/hooks/useConnection.ts +0 -63
- package/src/stories/hooks/useQuery.ts +0 -57
- package/src/tokens/__tests__/token-addresses.test.ts +0 -551
- package/src/tokens/abi/ASSET_ROUTER_ABI.ts +0 -1966
- package/src/tokens/abi/BRIDGE_TOKEN_ADAPTER_ABI.ts +0 -1405
- package/src/tokens/abi/BTCK_ABI.ts +0 -1092
- package/src/tokens/abi/KATANA_BASCULE_ABI.ts +0 -653
- package/src/tokens/abi/LBTC_ABI.json +0 -1761
- package/src/tokens/abi/LBTC_ABI.ts +0 -1761
- package/src/tokens/abi/LBTC_BASCULE_ABI.json +0 -850
- package/src/tokens/abi/NATIVE_LBTC_ABI.ts +0 -1147
- package/src/tokens/abi/STLBTC_ABI.ts +0 -1062
- package/src/tokens/cross-chain-addresses.stories.tsx +0 -236
- package/src/tokens/denomination-utils.stories.tsx +0 -176
- package/src/tokens/getLbtcContractAddresses.stories.tsx +0 -158
- package/src/tokens/getTokenByAddress.stories.tsx +0 -172
- package/src/tokens/getTokenContractInfo.stories.tsx +0 -148
- package/src/tokens/getTokenInfo.stories.tsx +0 -133
- package/src/tokens/isUpgradedContract.stories.tsx +0 -124
- package/src/tokens/lbtc-addresses.ts +0 -18
- package/src/tokens/token-addresses.ts +0 -477
- package/src/tokens/tokens.ts +0 -249
- package/src/tokens/types.ts +0 -80
- package/src/utils/array.ts +0 -31
- package/src/utils/block.ts +0 -23
- package/src/utils/chain.ts +0 -152
- package/src/utils/consoleLogger.ts +0 -140
- package/src/utils/ensureNotSanctionedAddress.ts +0 -11
- package/src/utils/env.ts +0 -20
- package/src/utils/err.ts +0 -83
- package/src/utils/evmAccount.ts +0 -47
- package/src/utils/gas.ts +0 -36
- package/src/utils/hex.ts +0 -9
- package/src/utils/http.ts +0 -224
- package/src/utils/numbers.ts +0 -37
- package/src/utils/pagination.ts +0 -70
- package/src/utils/satoshi.ts +0 -41
- package/src/utils/time.ts +0 -12
- package/src/utils/transaction-executor.ts +0 -299
- package/src/vaults/abi/SILO_VAULT_SPENDER_ABI.json +0 -793
- package/src/vaults/abi/VEDA_VAULT_ABI.json +0 -452
- package/src/vaults/abi/VEDA_VAULT_ACCOUNTANT_ABI.json +0 -591
- package/src/vaults/abi/VEDA_VAULT_BASE_ASSET_ABI.json +0 -296
- package/src/vaults/abi/VEDA_VAULT_BORING_WITHDRAW_QUEUE_ABI.json +0 -502
- package/src/vaults/abi/VEDA_VAULT_LENS_ABI.json +0 -175
- package/src/vaults/abi/VEDA_VAULT_SPENDER_ABI.json +0 -408
- package/src/vaults/abi/VEDA_VAULT_TELLER_ABI.json +0 -700
- package/src/vaults/abi/index.ts +0 -4
- package/src/vaults/index.ts +0 -46
- package/src/vaults/lib/config.ts +0 -184
- package/src/vaults/lib/metrics/get-vault-apy.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-apy.ts +0 -176
- package/src/vaults/lib/metrics/get-vault-points.stories.tsx +0 -60
- package/src/vaults/lib/metrics/get-vault-points.ts +0 -74
- package/src/vaults/lib/metrics/get-vault-tvl.stories.tsx +0 -58
- package/src/vaults/lib/metrics/get-vault-tvl.ts +0 -121
- package/src/vaults/lib/ops/cancel-withdraw.stories.tsx +0 -80
- package/src/vaults/lib/ops/deposit.stories.tsx +0 -82
- package/src/vaults/lib/ops/deposit.ts +0 -152
- package/src/vaults/lib/ops/get-vault-deposits.stories.tsx +0 -65
- package/src/vaults/lib/ops/get-vault-deposits.ts +0 -209
- package/src/vaults/lib/ops/get-vault-withdrawals.stories.tsx +0 -67
- package/src/vaults/lib/ops/get-vault-withdrawals.ts +0 -349
- package/src/vaults/lib/ops/withdraw.stories.tsx +0 -82
- package/src/vaults/lib/ops/withdraw.ts +0 -225
- package/src/version.ts +0 -56
- package/src/vite-env.d.ts +0 -1
package/src/tokens/tokens.ts
DELETED
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Token Contract Utilities
|
|
3
|
-
*
|
|
4
|
-
* @deprecated v4.1 Migration Target
|
|
5
|
-
*
|
|
6
|
-
* Functions like `getTokenContractInfo()` use hardcoded TOKEN_ADDRESSES.
|
|
7
|
-
* For v4.1, migrate to use Asset Catalog with catalog injection.
|
|
8
|
-
*
|
|
9
|
-
* See: docs/ADDRESS_SYSTEM_UNIFICATION.md
|
|
10
|
-
*
|
|
11
|
-
* @module tokens/tokens
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { DEFAULT_ENV, Env } from '@lombard.finance/sdk-common';
|
|
15
|
-
import BigNumber from 'bignumber.js';
|
|
16
|
-
import { type Abi, Address, erc20Abi, PublicClient, zeroAddress } from 'viem';
|
|
17
|
-
|
|
18
|
-
import { makePublicClient } from '../clients/public-client';
|
|
19
|
-
import { ChainId } from '../common/chains';
|
|
20
|
-
import { TokenContractAddressNotFoundError } from '../utils/err';
|
|
21
|
-
import BRIDGE_TOKEN_ADAPTER_ABI from './abi/BRIDGE_TOKEN_ADAPTER_ABI';
|
|
22
|
-
import BTCK_ABI from './abi/BTCK_ABI';
|
|
23
|
-
import { LBTC_ABI } from './abi/LBTC_ABI';
|
|
24
|
-
import NATIVE_LBTC_ABI from './abi/NATIVE_LBTC_ABI';
|
|
25
|
-
import STLBTC_ABI from './abi/STLBTC_ABI';
|
|
26
|
-
import { AddressKind, Token,TOKEN_ADDRESSES } from './token-addresses';
|
|
27
|
-
|
|
28
|
-
export type TokenInfo = {
|
|
29
|
-
address: Address;
|
|
30
|
-
abi: Abi;
|
|
31
|
-
symbol: string;
|
|
32
|
-
decimals: number;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const MAYBE_UPGRADED_CONTRACT_ABI = [
|
|
36
|
-
{
|
|
37
|
-
inputs: [],
|
|
38
|
-
name: 'getAssetRouter',
|
|
39
|
-
outputs: [{ internalType: 'address', name: '', type: 'address' }],
|
|
40
|
-
stateMutability: 'view',
|
|
41
|
-
type: 'function',
|
|
42
|
-
},
|
|
43
|
-
] as const;
|
|
44
|
-
const UPGRADED_CONTRACT_POINTER = MAYBE_UPGRADED_CONTRACT_ABI[0].name;
|
|
45
|
-
|
|
46
|
-
export async function isUpgradedContract(
|
|
47
|
-
token: Token.LBTC | Token.BTCK,
|
|
48
|
-
chainId: ChainId,
|
|
49
|
-
env?: Env,
|
|
50
|
-
rpcUrl?: string,
|
|
51
|
-
) {
|
|
52
|
-
const environment = env || DEFAULT_ENV;
|
|
53
|
-
const address = TOKEN_ADDRESSES[token]?.[environment]?.[chainId];
|
|
54
|
-
|
|
55
|
-
if (!address) {
|
|
56
|
-
throw new TokenContractAddressNotFoundError(token, chainId, environment);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const publicClient = makePublicClient({ chainId, rpcUrl, env: environment });
|
|
60
|
-
try {
|
|
61
|
-
const assetRouter = await publicClient.readContract({
|
|
62
|
-
abi: MAYBE_UPGRADED_CONTRACT_ABI,
|
|
63
|
-
address: typeof address === 'string' ? address : address.adapter,
|
|
64
|
-
functionName: UPGRADED_CONTRACT_POINTER,
|
|
65
|
-
});
|
|
66
|
-
return assetRouter !== zeroAddress;
|
|
67
|
-
} catch {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
type AbiForLBTC =
|
|
73
|
-
| typeof STLBTC_ABI // upgraded
|
|
74
|
-
| typeof LBTC_ABI; // legacy
|
|
75
|
-
|
|
76
|
-
type AbiForBTCK =
|
|
77
|
-
| typeof NATIVE_LBTC_ABI // upgraded
|
|
78
|
-
| typeof BTCK_ABI; // legacy
|
|
79
|
-
|
|
80
|
-
type AbiForNativeLBTC = typeof NATIVE_LBTC_ABI;
|
|
81
|
-
export type AbiForBridgeTokenAdapter = typeof BRIDGE_TOKEN_ADAPTER_ABI;
|
|
82
|
-
|
|
83
|
-
type AbiFor<
|
|
84
|
-
TToken extends Token,
|
|
85
|
-
chain = ChainId,
|
|
86
|
-
addressKind extends AddressKind = AddressKind.Token,
|
|
87
|
-
> = TToken extends Token.LBTC
|
|
88
|
-
? AbiForLBTC
|
|
89
|
-
: TToken extends Token.BTCK
|
|
90
|
-
? AbiForBTCK
|
|
91
|
-
: TToken extends Token.BTCb
|
|
92
|
-
? chain extends typeof ChainId.avalanche | typeof ChainId.avalancheFuji
|
|
93
|
-
? addressKind extends AddressKind.Adapter
|
|
94
|
-
? AbiForBridgeTokenAdapter
|
|
95
|
-
: typeof erc20Abi // <-- AddressKind.Token - ERC-20 Token Contract
|
|
96
|
-
: AbiForNativeLBTC
|
|
97
|
-
: typeof erc20Abi;
|
|
98
|
-
|
|
99
|
-
type TokenContractInfo<
|
|
100
|
-
TToken extends Token,
|
|
101
|
-
chain extends ChainId,
|
|
102
|
-
TAddressKind extends AddressKind,
|
|
103
|
-
> = {
|
|
104
|
-
abi: AbiFor<TToken, chain, TAddressKind>;
|
|
105
|
-
address: Address;
|
|
106
|
-
chainId: chain;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
export const isUpgradedAbi = (
|
|
110
|
-
abi: unknown,
|
|
111
|
-
): abi is typeof STLBTC_ABI | typeof NATIVE_LBTC_ABI => {
|
|
112
|
-
const redeemForBtcAbi = (abi as Abi).find(
|
|
113
|
-
a => a.type === 'function' && a.name === UPGRADED_CONTRACT_POINTER,
|
|
114
|
-
);
|
|
115
|
-
return redeemForBtcAbi != null;
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export async function getTokenContractInfo<
|
|
119
|
-
TToken extends Token,
|
|
120
|
-
chain extends ChainId,
|
|
121
|
-
TAddressKind extends AddressKind = AddressKind.Token,
|
|
122
|
-
>(
|
|
123
|
-
token: TToken,
|
|
124
|
-
chainId: chain,
|
|
125
|
-
env?: Env,
|
|
126
|
-
_addressKind?: TAddressKind,
|
|
127
|
-
): Promise<TokenContractInfo<TToken, chain, TAddressKind>> {
|
|
128
|
-
const environment = env || DEFAULT_ENV;
|
|
129
|
-
const addressKind = _addressKind || AddressKind.Token;
|
|
130
|
-
|
|
131
|
-
let abi: AbiFor<TToken, chain, TAddressKind> | undefined = undefined;
|
|
132
|
-
|
|
133
|
-
// nosemgrep: codacy.tools-configs.rules_lgpl_javascript_crypto_rule-node-timing-attack -- comparing Token enum values, not secrets
|
|
134
|
-
if (token === Token.LBTC) {
|
|
135
|
-
if (await isUpgradedContract(Token.LBTC, chainId, environment)) {
|
|
136
|
-
abi = STLBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
|
|
137
|
-
} else {
|
|
138
|
-
abi = LBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
|
|
139
|
-
}
|
|
140
|
-
} else if (token === Token.BTCK) {
|
|
141
|
-
abi = BTCK_ABI as AbiFor<TToken, chain, TAddressKind>;
|
|
142
|
-
if (await isUpgradedContract(Token.BTCK, chainId, environment)) {
|
|
143
|
-
abi = NATIVE_LBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
|
|
144
|
-
}
|
|
145
|
-
} else if (token === Token.BTCb) {
|
|
146
|
-
if (chainId === ChainId.avalanche || chainId === ChainId.avalancheFuji) {
|
|
147
|
-
if (addressKind === AddressKind.Adapter) {
|
|
148
|
-
abi = BRIDGE_TOKEN_ADAPTER_ABI as AbiFor<TToken, chain, TAddressKind>;
|
|
149
|
-
} else {
|
|
150
|
-
abi = erc20Abi as AbiFor<TToken, chain, TAddressKind>;
|
|
151
|
-
}
|
|
152
|
-
} else {
|
|
153
|
-
abi = NATIVE_LBTC_ABI as AbiFor<TToken, chain, TAddressKind>;
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
abi = erc20Abi as AbiFor<TToken, chain, TAddressKind>;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const address = TOKEN_ADDRESSES[token]?.[environment]?.[chainId];
|
|
160
|
-
if (!address) {
|
|
161
|
-
throw new TokenContractAddressNotFoundError(token, chainId, environment);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return {
|
|
165
|
-
abi,
|
|
166
|
-
address: typeof address === 'string' ? address : address[addressKind],
|
|
167
|
-
chainId,
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export const retrieveTokenProperties = async <
|
|
172
|
-
TToken extends Token,
|
|
173
|
-
chain extends ChainId,
|
|
174
|
-
>(
|
|
175
|
-
publicClient: PublicClient,
|
|
176
|
-
tokenContractInfo: TokenContractInfo<TToken, chain, AddressKind.Token>,
|
|
177
|
-
) => {
|
|
178
|
-
const [symbolResult, decimalsResult] = await publicClient.multicall({
|
|
179
|
-
contracts: [
|
|
180
|
-
{
|
|
181
|
-
address: tokenContractInfo.address,
|
|
182
|
-
abi: tokenContractInfo.abi as Abi,
|
|
183
|
-
functionName: 'symbol',
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
address: tokenContractInfo.address,
|
|
187
|
-
abi: tokenContractInfo.abi as Abi,
|
|
188
|
-
functionName: 'decimals',
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
if (
|
|
194
|
-
symbolResult.status === 'success' &&
|
|
195
|
-
decimalsResult.status === 'success'
|
|
196
|
-
) {
|
|
197
|
-
return {
|
|
198
|
-
address: tokenContractInfo.address,
|
|
199
|
-
abi: tokenContractInfo.abi,
|
|
200
|
-
symbol: String(symbolResult.result),
|
|
201
|
-
decimals: Number(decimalsResult.result),
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
export async function getTokenInfo(
|
|
207
|
-
token: Token,
|
|
208
|
-
chainId: ChainId,
|
|
209
|
-
env?: Env,
|
|
210
|
-
rpcUrl?: string,
|
|
211
|
-
) {
|
|
212
|
-
const tokenContractInfo = await getTokenContractInfo(token, chainId, env);
|
|
213
|
-
if (!tokenContractInfo) return;
|
|
214
|
-
|
|
215
|
-
const publicClient = makePublicClient({ chainId, rpcUrl });
|
|
216
|
-
return retrieveTokenProperties(publicClient, tokenContractInfo);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export async function getAssetInfo(
|
|
220
|
-
address: Address,
|
|
221
|
-
chainId: ChainId,
|
|
222
|
-
rpcUrl?: string,
|
|
223
|
-
) {
|
|
224
|
-
const publicClient = makePublicClient({ chainId, rpcUrl });
|
|
225
|
-
return retrieveTokenProperties(publicClient, {
|
|
226
|
-
abi: erc20Abi,
|
|
227
|
-
address,
|
|
228
|
-
chainId,
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// Utils:
|
|
233
|
-
// TODO: Move to utils
|
|
234
|
-
|
|
235
|
-
export function toBaseDenomination(
|
|
236
|
-
input: BigNumber.Value,
|
|
237
|
-
decimalPlaces: number,
|
|
238
|
-
) {
|
|
239
|
-
return BigNumber(input)
|
|
240
|
-
.multipliedBy(BigNumber(10).pow(decimalPlaces))
|
|
241
|
-
.decimalPlaces(0, BigNumber.ROUND_HALF_UP);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
export function fromBaseDenomination(
|
|
245
|
-
input: BigNumber.Value,
|
|
246
|
-
decimalPlaces: number,
|
|
247
|
-
) {
|
|
248
|
-
return BigNumber(input).dividedBy(BigNumber(10).pow(decimalPlaces));
|
|
249
|
-
}
|
package/src/tokens/types.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Address } from 'viem';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Address kinds for tokens that have multiple contract addresses.
|
|
5
|
-
*
|
|
6
|
-
* **BTC.b Integration Architecture:**
|
|
7
|
-
*
|
|
8
|
-
* BTC.b on Avalanche uses a dual-contract architecture with both a token contract
|
|
9
|
-
* and an adapter contract serving different purposes:
|
|
10
|
-
*
|
|
11
|
-
* **When to use Token vs Adapter:**
|
|
12
|
-
*
|
|
13
|
-
* - **Token** (`AddressKind.Token`):
|
|
14
|
-
* - Use for EIP-2612 `permit()` signatures (Stake and Bake)
|
|
15
|
-
* - Use for querying token balance, symbol, decimals
|
|
16
|
-
* - Use for standard ERC20 operations (allowance checks, balance queries)
|
|
17
|
-
* - This is the actual BTC.b ERC20 token contract
|
|
18
|
-
*
|
|
19
|
-
* - **Adapter** (`AddressKind.Adapter`):
|
|
20
|
-
* - Use for burn/mint/transfer operations via BridgeTokenAdapter
|
|
21
|
-
* - Use for bridge deposit/withdrawal operations
|
|
22
|
-
* - Use as spender address when approving tokens for bridge operations
|
|
23
|
-
* - This adapter serves as an intermediary between BridgeToken and both AssetRouter and Bridge
|
|
24
|
-
*
|
|
25
|
-
* **Important Notes:**
|
|
26
|
-
*
|
|
27
|
-
* 1. **Permit Signatures**: Always use `AddressKind.Token` as the `verifyingContract` in
|
|
28
|
-
* EIP-2612 permit signatures. The token contract implements the `permit()` function,
|
|
29
|
-
* not the adapter.
|
|
30
|
-
*
|
|
31
|
-
* 2. **Approvals**: For bridge and redemption operations, users must grant allowance to
|
|
32
|
-
* the **BridgeTokenAdapter** address, not the vault or bridge contract.
|
|
33
|
-
*
|
|
34
|
-
* 3. **Deposit Address**: For Ledger integration, the token address includes the adapter
|
|
35
|
-
* address when tweaking deposit addresses.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* // For permit signatures (Stake and Bake):
|
|
40
|
-
* const tokenContract = await getTokenContractInfo(
|
|
41
|
-
* Token.BTCb,
|
|
42
|
-
* ChainId.avalancheFuji,
|
|
43
|
-
* env,
|
|
44
|
-
* AddressKind.Token // ✅ Use token address for permit
|
|
45
|
-
* );
|
|
46
|
-
*
|
|
47
|
-
* // For bridge operations:
|
|
48
|
-
* const adapterContract = await getTokenContractInfo(
|
|
49
|
-
* Token.BTCb,
|
|
50
|
-
* ChainId.avalancheFuji,
|
|
51
|
-
* env,
|
|
52
|
-
* AddressKind.Adapter // ✅ Use adapter address for bridge
|
|
53
|
-
* );
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
export enum AddressKind {
|
|
57
|
-
/**
|
|
58
|
-
* The bridge adapter contract address (BridgeTokenAdapter).
|
|
59
|
-
* Used for burn/mint/transfer operations and as the spender for bridge approvals.
|
|
60
|
-
*/
|
|
61
|
-
Adapter = 'adapter',
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* The token contract address (standard ERC20).
|
|
65
|
-
* Used for permit signatures, balance queries, and standard ERC20 operations.
|
|
66
|
-
*/
|
|
67
|
-
Token = 'token',
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Address structure for tokens with both token and adapter addresses.
|
|
72
|
-
*
|
|
73
|
-
* Currently only used by `Token.BTCb` on Avalanche chains.
|
|
74
|
-
*/
|
|
75
|
-
export type BridgeTokenAddresses = {
|
|
76
|
-
/** The bridge adapter contract address (BridgeTokenAdapter) */
|
|
77
|
-
[AddressKind.Adapter]: Address;
|
|
78
|
-
/** The token contract address (standard ERC20) */
|
|
79
|
-
[AddressKind.Token]: Address;
|
|
80
|
-
};
|
package/src/utils/array.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export function unique<T>(arr: T[]): T[] {
|
|
2
|
-
return arr.filter((v, i, a) => a.indexOf(v) === i);
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export function orderBy<T>(
|
|
6
|
-
arr: T[],
|
|
7
|
-
property: (arrEntry: T) => string | number,
|
|
8
|
-
direction: 'asc' | 'desc' = 'asc',
|
|
9
|
-
): T[] {
|
|
10
|
-
const array = [...arr];
|
|
11
|
-
array.sort((a, b) => {
|
|
12
|
-
const propA = property(a);
|
|
13
|
-
const propB = property(b);
|
|
14
|
-
|
|
15
|
-
if (typeof propA === 'number') {
|
|
16
|
-
return propA - (propB as number);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (typeof propA === 'string') {
|
|
20
|
-
return propA.localeCompare(propB as string);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return 0;
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
if (direction === 'desc') {
|
|
27
|
-
array.reverse();
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return array;
|
|
31
|
-
}
|
package/src/utils/block.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
|
|
3
|
-
import { ChainId, getLlamaChainName } from '../common/chains';
|
|
4
|
-
|
|
5
|
-
type Response = {
|
|
6
|
-
height: number;
|
|
7
|
-
timestamp: number;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export async function getBlockHeight(
|
|
11
|
-
chainId: ChainId,
|
|
12
|
-
timestamp: number | bigint,
|
|
13
|
-
) {
|
|
14
|
-
const chainName = getLlamaChainName(chainId);
|
|
15
|
-
|
|
16
|
-
if (!chainName) return;
|
|
17
|
-
|
|
18
|
-
const { data } = await axios.get<Response>(
|
|
19
|
-
`https://coins.llama.fi/block/${chainName}/${String(timestamp)}`,
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
return data.height;
|
|
23
|
-
}
|
package/src/utils/chain.ts
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chain Utility Functions
|
|
3
|
-
*
|
|
4
|
-
* Provides type-safe utilities for working with Chain enum values.
|
|
5
|
-
* Handles parsing and validation of CAIP-2 chain identifiers.
|
|
6
|
-
*
|
|
7
|
-
* @module utils/chain
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { CAIP2_SEPARATOR, Chain,CHAIN_PREFIXES } from '../core';
|
|
11
|
-
import { LombardError, ValidationErrorCode } from '../shared/errors';
|
|
12
|
-
|
|
13
|
-
/** Helper to get prefix with separator */
|
|
14
|
-
const withSeparator = (prefix: string) => `${prefix}${CAIP2_SEPARATOR}`;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Parse EVM chain ID from Chain enum
|
|
18
|
-
*
|
|
19
|
-
* Extracts the numeric chain ID from an EVM chain identifier.
|
|
20
|
-
*
|
|
21
|
-
* @param chain - Chain enum value
|
|
22
|
-
* @returns Numeric EVM chain ID
|
|
23
|
-
* @throws {ValidationError} If chain is not an EVM chain
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* parseEvmChainId(Chain.ETHEREUM) // 1
|
|
28
|
-
* parseEvmChainId(Chain.BASE) // 8453
|
|
29
|
-
* parseEvmChainId(Chain.BITCOIN_MAINNET) // throws ValidationError
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export function parseEvmChainId(chain: Chain): number {
|
|
33
|
-
const chainStr = String(chain);
|
|
34
|
-
const evmPrefix = withSeparator(CHAIN_PREFIXES.EIP155);
|
|
35
|
-
const isEvm = chainStr.startsWith(evmPrefix);
|
|
36
|
-
|
|
37
|
-
if (!isEvm) {
|
|
38
|
-
throw new LombardError(
|
|
39
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
40
|
-
`Not an EVM chain: ${chainStr}`,
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const chainId = Number.parseInt(chainStr.slice(evmPrefix.length), 10);
|
|
45
|
-
|
|
46
|
-
if (Number.isNaN(chainId)) {
|
|
47
|
-
throw new LombardError(
|
|
48
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
49
|
-
`Invalid EVM chain ID: ${chainStr}`,
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return chainId;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Check if chain is an EVM chain
|
|
58
|
-
*
|
|
59
|
-
* @param chain - Chain enum value
|
|
60
|
-
* @returns True if chain is an EVM chain
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```typescript
|
|
64
|
-
* isEvmChain(Chain.ETHEREUM) // true
|
|
65
|
-
* isEvmChain(Chain.BITCOIN_MAINNET) // false
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export function isEvmChain(chain: Chain): boolean {
|
|
69
|
-
return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.EIP155));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Check if chain is a Bitcoin chain
|
|
74
|
-
*
|
|
75
|
-
* @param chain - Chain enum value
|
|
76
|
-
* @returns True if chain is a Bitcoin chain
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* ```typescript
|
|
80
|
-
* isBitcoinChain(Chain.BITCOIN_MAINNET) // true
|
|
81
|
-
* isBitcoinChain(Chain.ETHEREUM) // false
|
|
82
|
-
* ```
|
|
83
|
-
*/
|
|
84
|
-
export function isBitcoinChain(chain: Chain): boolean {
|
|
85
|
-
return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.BIP122));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Check if chain is a Solana chain
|
|
90
|
-
*
|
|
91
|
-
* @param chain - Chain enum value
|
|
92
|
-
* @returns True if chain is a Solana chain
|
|
93
|
-
*
|
|
94
|
-
* @example
|
|
95
|
-
* ```typescript
|
|
96
|
-
* isSolanaChain(Chain.SOLANA_MAINNET) // true
|
|
97
|
-
* isSolanaChain(Chain.ETHEREUM) // false
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
export function isSolanaChain(chain: Chain): boolean {
|
|
101
|
-
return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.SOLANA));
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Check if chain is a Sui chain
|
|
106
|
-
*
|
|
107
|
-
* @param chain - Chain enum value
|
|
108
|
-
* @returns True if chain is a Sui chain
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```typescript
|
|
112
|
-
* isSuiChain(Chain.SUI_MAINNET) // true
|
|
113
|
-
* isSuiChain(Chain.ETHEREUM) // false
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
export function isSuiChain(chain: Chain): boolean {
|
|
117
|
-
return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.SUI));
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Check if chain is a Starknet chain
|
|
122
|
-
*
|
|
123
|
-
* @param chain - Chain enum value
|
|
124
|
-
* @returns True if chain is a Starknet chain
|
|
125
|
-
*
|
|
126
|
-
* @example
|
|
127
|
-
* ```typescript
|
|
128
|
-
* isStarknetChain(Chain.STARKNET_MAINNET) // true
|
|
129
|
-
* isStarknetChain(Chain.ETHEREUM) // false
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
export function isStarknetChain(chain: Chain): boolean {
|
|
133
|
-
return String(chain).startsWith(withSeparator(CHAIN_PREFIXES.STARKNET));
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Get chain namespace from Chain enum
|
|
138
|
-
*
|
|
139
|
-
* Returns the CAIP-2 namespace prefix (eip155, bip122, solana, etc.)
|
|
140
|
-
*
|
|
141
|
-
* @param chain - Chain enum value
|
|
142
|
-
* @returns CAIP-2 namespace string
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* ```typescript
|
|
146
|
-
* getChainNamespace(Chain.ETHEREUM) // 'eip155'
|
|
147
|
-
* getChainNamespace(Chain.BITCOIN_MAINNET) // 'bip122'
|
|
148
|
-
* ```
|
|
149
|
-
*/
|
|
150
|
-
export function getChainNamespace(chain: Chain): string {
|
|
151
|
-
return String(chain).split(CAIP2_SEPARATOR)[0];
|
|
152
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Console Logger Factory
|
|
3
|
-
*
|
|
4
|
-
* Creates a logger that outputs to the console with configurable log levels.
|
|
5
|
-
* Used when `debug: true` is set in SDK configuration.
|
|
6
|
-
*
|
|
7
|
-
* @module utils/consoleLogger
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { Logger } from '../shared/context/types';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Log level hierarchy (from most to least verbose)
|
|
14
|
-
*/
|
|
15
|
-
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Options for creating a console logger
|
|
19
|
-
*/
|
|
20
|
-
export interface ConsoleLoggerOptions {
|
|
21
|
-
/**
|
|
22
|
-
* Minimum log level to output
|
|
23
|
-
*
|
|
24
|
-
* - 'debug': All logs (most verbose)
|
|
25
|
-
* - 'info': Info, warnings, and errors
|
|
26
|
-
* - 'warn': Warnings and errors only
|
|
27
|
-
* - 'error': Errors only
|
|
28
|
-
* - 'none': No logs (silent)
|
|
29
|
-
*
|
|
30
|
-
* @default 'debug'
|
|
31
|
-
*/
|
|
32
|
-
level?: LogLevel;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Prefix for all log messages
|
|
36
|
-
*
|
|
37
|
-
* @default '[Lombard SDK]'
|
|
38
|
-
*/
|
|
39
|
-
prefix?: string;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Include timestamp in log messages
|
|
43
|
-
*
|
|
44
|
-
* @default false
|
|
45
|
-
*/
|
|
46
|
-
timestamp?: boolean;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const LOG_LEVELS: LogLevel[] = ['debug', 'info', 'warn', 'error', 'none'];
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Create a console logger with configurable options
|
|
53
|
-
*
|
|
54
|
-
* @param options - Logger configuration options
|
|
55
|
-
* @returns Logger instance that outputs to console
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```typescript
|
|
59
|
-
* // Basic usage - log everything
|
|
60
|
-
* const logger = createConsoleLogger();
|
|
61
|
-
*
|
|
62
|
-
* // Only warnings and errors
|
|
63
|
-
* const logger = createConsoleLogger({ level: 'warn' });
|
|
64
|
-
*
|
|
65
|
-
* // Custom prefix with timestamp
|
|
66
|
-
* const logger = createConsoleLogger({
|
|
67
|
-
* prefix: '[MyApp SDK]',
|
|
68
|
-
* timestamp: true,
|
|
69
|
-
* });
|
|
70
|
-
* ```
|
|
71
|
-
*/
|
|
72
|
-
export function createConsoleLogger(
|
|
73
|
-
options: ConsoleLoggerOptions = {},
|
|
74
|
-
): Logger {
|
|
75
|
-
const { level = 'debug', prefix = '[Lombard SDK]', timestamp = false } = options;
|
|
76
|
-
|
|
77
|
-
const minLevelIndex = LOG_LEVELS.indexOf(level);
|
|
78
|
-
|
|
79
|
-
const shouldLog = (logLevel: LogLevel): boolean => {
|
|
80
|
-
const levelIndex = LOG_LEVELS.indexOf(logLevel);
|
|
81
|
-
return levelIndex >= minLevelIndex && level !== 'none';
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const formatMessage = (msg: string): string => {
|
|
85
|
-
if (timestamp) {
|
|
86
|
-
const ts = new Date().toISOString();
|
|
87
|
-
return `${prefix} ${ts} ${msg}`;
|
|
88
|
-
}
|
|
89
|
-
return `${prefix} ${msg}`;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const formatMeta = (meta?: Record<string, unknown>): unknown[] => {
|
|
93
|
-
if (!meta || Object.keys(meta).length === 0) {
|
|
94
|
-
return [];
|
|
95
|
-
}
|
|
96
|
-
return [meta];
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
debug(message: string, meta?: Record<string, unknown>): void {
|
|
101
|
-
if (shouldLog('debug')) {
|
|
102
|
-
console.debug(formatMessage(message), ...formatMeta(meta));
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
info(message: string, meta?: Record<string, unknown>): void {
|
|
107
|
-
if (shouldLog('info')) {
|
|
108
|
-
console.info(formatMessage(message), ...formatMeta(meta));
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
warn(message: string, meta?: Record<string, unknown>): void {
|
|
113
|
-
if (shouldLog('warn')) {
|
|
114
|
-
console.warn(formatMessage(message), ...formatMeta(meta));
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
error(message: string, meta?: Record<string, unknown>): void {
|
|
119
|
-
if (shouldLog('error')) {
|
|
120
|
-
console.error(formatMessage(message), ...formatMeta(meta));
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Create a silent logger (no-op)
|
|
128
|
-
*
|
|
129
|
-
* Useful for testing or when you want to suppress all logs.
|
|
130
|
-
*/
|
|
131
|
-
export function createSilentLogger(): Logger {
|
|
132
|
-
return {
|
|
133
|
-
debug: () => {},
|
|
134
|
-
info: () => {},
|
|
135
|
-
warn: () => {},
|
|
136
|
-
error: () => {},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SANCTIONED_ADDRESS } from '../api-functions/generateDepositBtcAddress/generateDepositBtcAddress';
|
|
2
|
-
import { LombardError, ValidationErrorCode } from '../shared/errors';
|
|
3
|
-
|
|
4
|
-
export function ensureNotSanctionedAddress(address: string): void {
|
|
5
|
-
if (address === SANCTIONED_ADDRESS) {
|
|
6
|
-
throw new LombardError(
|
|
7
|
-
ValidationErrorCode.INVALID_PARAMETER,
|
|
8
|
-
'Destination address is under sanctions',
|
|
9
|
-
);
|
|
10
|
-
}
|
|
11
|
-
}
|
package/src/utils/env.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Env } from '@lombard.finance/sdk-common';
|
|
2
|
-
|
|
3
|
-
import { ChainId } from '../common/chains';
|
|
4
|
-
|
|
5
|
-
const PROD_NATIVE_MINT_CHAINS = [
|
|
6
|
-
ChainId.ethereum,
|
|
7
|
-
ChainId.base,
|
|
8
|
-
ChainId.berachain,
|
|
9
|
-
ChainId.binanceSmartChain,
|
|
10
|
-
ChainId.corn,
|
|
11
|
-
ChainId.etherlink,
|
|
12
|
-
ChainId.katana,
|
|
13
|
-
ChainId.morph,
|
|
14
|
-
ChainId.sonic,
|
|
15
|
-
ChainId.swell,
|
|
16
|
-
] as ChainId[];
|
|
17
|
-
|
|
18
|
-
export const determineEnv = (chainId: ChainId): Env => {
|
|
19
|
-
return PROD_NATIVE_MINT_CHAINS.includes(chainId) ? Env.prod : Env.stage;
|
|
20
|
-
};
|