@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/contracts/types.ts
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Contract-related types for the Lombard SDK.
|
|
3
|
-
*
|
|
4
|
-
* These types define how to interact with smart contracts,
|
|
5
|
-
* separate from the asset catalog which defines what assets exist where.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { Abi } from 'viem';
|
|
9
|
-
|
|
10
|
-
import type { ChainId } from '../common/chains';
|
|
11
|
-
import type {
|
|
12
|
-
ASSET_ROUTER_ABI,
|
|
13
|
-
BRIDGE_TOKEN_ADAPTER_ABI,
|
|
14
|
-
BTCK_ABI,
|
|
15
|
-
LBTC_ABI,
|
|
16
|
-
NATIVE_LBTC_ABI,
|
|
17
|
-
STLBTC_ABI,
|
|
18
|
-
} from './abis';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Address kinds for tokens that have multiple contract addresses.
|
|
22
|
-
*
|
|
23
|
-
* **BTC.b Integration Architecture:**
|
|
24
|
-
*
|
|
25
|
-
* BTC.b on Avalanche uses a dual-contract architecture with both a token contract
|
|
26
|
-
* and an adapter contract serving different purposes:
|
|
27
|
-
*
|
|
28
|
-
* **When to use Token vs Adapter:**
|
|
29
|
-
*
|
|
30
|
-
* - **Token** (`AddressKind.Token`):
|
|
31
|
-
* - Use for EIP-2612 `permit()` signatures (Stake and Bake)
|
|
32
|
-
* - Use for querying token balance, symbol, decimals
|
|
33
|
-
* - Use for standard ERC20 operations (allowance checks, balance queries)
|
|
34
|
-
* - This is the actual BTC.b ERC20 token contract
|
|
35
|
-
*
|
|
36
|
-
* - **Adapter** (`AddressKind.Adapter`):
|
|
37
|
-
* - Use for burn/mint/transfer operations via BridgeTokenAdapter
|
|
38
|
-
* - Use for bridge deposit/withdrawal operations
|
|
39
|
-
* - Use as spender address when approving tokens for bridge operations
|
|
40
|
-
* - This adapter serves as an intermediary between BridgeToken and both AssetRouter and Bridge
|
|
41
|
-
*
|
|
42
|
-
* **Important Notes:**
|
|
43
|
-
*
|
|
44
|
-
* 1. **Permit Signatures**: Always use `AddressKind.Token` as the `verifyingContract` in
|
|
45
|
-
* EIP-2612 permit signatures. The token contract implements the `permit()` function,
|
|
46
|
-
* not the adapter.
|
|
47
|
-
*
|
|
48
|
-
* 2. **Approvals**: For bridge and redemption operations, users must grant allowance to
|
|
49
|
-
* the **BridgeTokenAdapter** address, not the vault or bridge contract.
|
|
50
|
-
*
|
|
51
|
-
* 3. **Deposit Address**: For Ledger integration, the token address includes the adapter
|
|
52
|
-
* address when tweaking deposit addresses.
|
|
53
|
-
*/
|
|
54
|
-
export enum AddressKind {
|
|
55
|
-
/**
|
|
56
|
-
* The bridge adapter contract address (BridgeTokenAdapter).
|
|
57
|
-
* Used for burn/mint/transfer operations and as the spender for bridge approvals.
|
|
58
|
-
*/
|
|
59
|
-
Adapter = 'adapter',
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* The token contract address (standard ERC20).
|
|
63
|
-
* Used for permit signatures, balance queries, and standard ERC20 operations.
|
|
64
|
-
*/
|
|
65
|
-
Token = 'token',
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Address structure for tokens with both token and adapter addresses.
|
|
70
|
-
* Currently only used by BTC.b on Avalanche chains.
|
|
71
|
-
*/
|
|
72
|
-
export interface BridgeTokenAddresses {
|
|
73
|
-
/** The bridge adapter contract address (BridgeTokenAdapter) */
|
|
74
|
-
[AddressKind.Adapter]: `0x${string}`;
|
|
75
|
-
/** The token contract address (standard ERC20) */
|
|
76
|
-
[AddressKind.Token]: `0x${string}`;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Contract version indicating which ABI to use.
|
|
81
|
-
*/
|
|
82
|
-
export enum ContractVersion {
|
|
83
|
-
/** Legacy LBTC contract (pre-AssetRouter) */
|
|
84
|
-
Legacy = 'legacy',
|
|
85
|
-
/** Upgraded contract with AssetRouter support */
|
|
86
|
-
Upgraded = 'upgraded',
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Contract types supported by the SDK.
|
|
91
|
-
*/
|
|
92
|
-
export enum ContractType {
|
|
93
|
-
/** LBTC token contract */
|
|
94
|
-
LBTC = 'lbtc',
|
|
95
|
-
/** Native LBTC variant (BTCb on non-Avalanche chains) */
|
|
96
|
-
NativeLBTC = 'native_lbtc',
|
|
97
|
-
/** BTCK legacy contract */
|
|
98
|
-
BTCK = 'btck',
|
|
99
|
-
/** Bridge Token Adapter (BTCb on Avalanche) */
|
|
100
|
-
BridgeTokenAdapter = 'bridge_token_adapter',
|
|
101
|
-
/** Asset Router contract */
|
|
102
|
-
AssetRouter = 'asset_router',
|
|
103
|
-
/** Standard ERC20 */
|
|
104
|
-
ERC20 = 'erc20',
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* ABI type mapping for contract types.
|
|
109
|
-
*/
|
|
110
|
-
export type ContractAbiMap = {
|
|
111
|
-
[ContractType.LBTC]: typeof LBTC_ABI | typeof STLBTC_ABI;
|
|
112
|
-
[ContractType.NativeLBTC]: typeof NATIVE_LBTC_ABI;
|
|
113
|
-
[ContractType.BTCK]: typeof BTCK_ABI | typeof NATIVE_LBTC_ABI;
|
|
114
|
-
[ContractType.BridgeTokenAdapter]: typeof BRIDGE_TOKEN_ADAPTER_ABI;
|
|
115
|
-
[ContractType.AssetRouter]: typeof ASSET_ROUTER_ABI;
|
|
116
|
-
[ContractType.ERC20]: Abi;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Information about a contract including its ABI and address.
|
|
121
|
-
*/
|
|
122
|
-
export interface ContractInfo<T extends ContractType = ContractType> {
|
|
123
|
-
/** The contract ABI */
|
|
124
|
-
abi: ContractAbiMap[T];
|
|
125
|
-
/** The contract address */
|
|
126
|
-
address: `0x${string}`;
|
|
127
|
-
/** The chain ID */
|
|
128
|
-
chainId: ChainId;
|
|
129
|
-
/** The contract type */
|
|
130
|
-
type: T;
|
|
131
|
-
/** The contract version (for upgradeable contracts) */
|
|
132
|
-
version?: ContractVersion;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Options for getting contract information.
|
|
137
|
-
*/
|
|
138
|
-
export interface GetContractInfoOptions {
|
|
139
|
-
/** Which address to use for dual-address tokens (default: Token) */
|
|
140
|
-
addressKind?: AddressKind;
|
|
141
|
-
/** Custom RPC URL for upgrade detection */
|
|
142
|
-
rpcUrl?: string;
|
|
143
|
-
}
|
package/src/contracts/utils.ts
DELETED
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Contract utility functions for the Lombard SDK.
|
|
3
|
-
*
|
|
4
|
-
* These utilities help determine which ABI to use for a given contract,
|
|
5
|
-
* handle contract upgrades, and provide typed contract information.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { DEFAULT_ENV, Env } from '@lombard.finance/sdk-common';
|
|
9
|
-
import { type Abi, erc20Abi, zeroAddress } from 'viem';
|
|
10
|
-
|
|
11
|
-
import { makePublicClient } from '../clients/public-client';
|
|
12
|
-
import { ChainId } from '../common/chains';
|
|
13
|
-
import {
|
|
14
|
-
AssetId,
|
|
15
|
-
evmChainIdToChain,
|
|
16
|
-
getAssetAddress,
|
|
17
|
-
getBridgeAdapter,
|
|
18
|
-
} from '../core';
|
|
19
|
-
import {
|
|
20
|
-
ASSET_ROUTER_ABI,
|
|
21
|
-
BRIDGE_TOKEN_ADAPTER_ABI,
|
|
22
|
-
BTCK_ABI,
|
|
23
|
-
LBTC_ABI,
|
|
24
|
-
NATIVE_LBTC_ABI,
|
|
25
|
-
STLBTC_ABI,
|
|
26
|
-
} from './abis';
|
|
27
|
-
import {
|
|
28
|
-
AddressKind,
|
|
29
|
-
type ContractInfo,
|
|
30
|
-
ContractType,
|
|
31
|
-
ContractVersion,
|
|
32
|
-
type GetContractInfoOptions,
|
|
33
|
-
} from './types';
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* ABI fragment for detecting upgraded contracts.
|
|
37
|
-
* Upgraded contracts have a `getAssetRouter` function.
|
|
38
|
-
*/
|
|
39
|
-
const UPGRADE_DETECTION_ABI = [
|
|
40
|
-
{
|
|
41
|
-
inputs: [],
|
|
42
|
-
name: 'getAssetRouter',
|
|
43
|
-
outputs: [{ internalType: 'address', name: '', type: 'address' }],
|
|
44
|
-
stateMutability: 'view',
|
|
45
|
-
type: 'function',
|
|
46
|
-
},
|
|
47
|
-
] as const;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Checks if a contract has been upgraded to support AssetRouter.
|
|
51
|
-
*
|
|
52
|
-
* Upgraded contracts have a `getAssetRouter()` function that returns
|
|
53
|
-
* a non-zero address when the AssetRouter is configured.
|
|
54
|
-
*
|
|
55
|
-
* @param address - Contract address to check
|
|
56
|
-
* @param chainId - Chain ID
|
|
57
|
-
* @param env - Environment (default: DEFAULT_ENV)
|
|
58
|
-
* @param rpcUrl - Optional custom RPC URL
|
|
59
|
-
* @returns true if contract is upgraded, false otherwise
|
|
60
|
-
*/
|
|
61
|
-
export async function isUpgradedContract(
|
|
62
|
-
address: `0x${string}`,
|
|
63
|
-
chainId: ChainId,
|
|
64
|
-
env: Env = DEFAULT_ENV,
|
|
65
|
-
rpcUrl?: string,
|
|
66
|
-
): Promise<boolean> {
|
|
67
|
-
const publicClient = makePublicClient({ chainId, rpcUrl, env });
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
const assetRouter = await publicClient.readContract({
|
|
71
|
-
abi: UPGRADE_DETECTION_ABI,
|
|
72
|
-
address,
|
|
73
|
-
functionName: 'getAssetRouter',
|
|
74
|
-
});
|
|
75
|
-
return assetRouter !== zeroAddress;
|
|
76
|
-
} catch {
|
|
77
|
-
// Contract doesn't have getAssetRouter function = not upgraded
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Type guard to check if an ABI is an upgraded contract ABI.
|
|
84
|
-
*/
|
|
85
|
-
export function isUpgradedAbi(
|
|
86
|
-
abi: unknown,
|
|
87
|
-
): abi is typeof STLBTC_ABI | typeof NATIVE_LBTC_ABI {
|
|
88
|
-
const hasAssetRouter = (abi as Abi).find(
|
|
89
|
-
a => a.type === 'function' && a.name === 'getAssetRouter',
|
|
90
|
-
);
|
|
91
|
-
return hasAssetRouter != null;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Gets the appropriate ABI for an LBTC contract based on upgrade status.
|
|
96
|
-
*
|
|
97
|
-
* @param address - Contract address
|
|
98
|
-
* @param chainId - Chain ID
|
|
99
|
-
* @param env - Environment
|
|
100
|
-
* @param rpcUrl - Optional custom RPC URL
|
|
101
|
-
* @returns The appropriate ABI and version
|
|
102
|
-
*/
|
|
103
|
-
export async function getLbtcAbi(
|
|
104
|
-
address: `0x${string}`,
|
|
105
|
-
chainId: ChainId,
|
|
106
|
-
env: Env = DEFAULT_ENV,
|
|
107
|
-
rpcUrl?: string,
|
|
108
|
-
): Promise<{
|
|
109
|
-
abi: typeof LBTC_ABI | typeof STLBTC_ABI;
|
|
110
|
-
version: ContractVersion;
|
|
111
|
-
}> {
|
|
112
|
-
const upgraded = await isUpgradedContract(address, chainId, env, rpcUrl);
|
|
113
|
-
return {
|
|
114
|
-
abi: upgraded ? STLBTC_ABI : LBTC_ABI,
|
|
115
|
-
version: upgraded ? ContractVersion.Upgraded : ContractVersion.Legacy,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Gets the appropriate ABI for a BTCK contract based on upgrade status.
|
|
121
|
-
*
|
|
122
|
-
* @param address - Contract address
|
|
123
|
-
* @param chainId - Chain ID
|
|
124
|
-
* @param env - Environment
|
|
125
|
-
* @param rpcUrl - Optional custom RPC URL
|
|
126
|
-
* @returns The appropriate ABI and version
|
|
127
|
-
*/
|
|
128
|
-
export async function getBtckAbi(
|
|
129
|
-
address: `0x${string}`,
|
|
130
|
-
chainId: ChainId,
|
|
131
|
-
env: Env = DEFAULT_ENV,
|
|
132
|
-
rpcUrl?: string,
|
|
133
|
-
): Promise<{
|
|
134
|
-
abi: typeof BTCK_ABI | typeof NATIVE_LBTC_ABI;
|
|
135
|
-
version: ContractVersion;
|
|
136
|
-
}> {
|
|
137
|
-
const upgraded = await isUpgradedContract(address, chainId, env, rpcUrl);
|
|
138
|
-
return {
|
|
139
|
-
abi: upgraded ? NATIVE_LBTC_ABI : BTCK_ABI,
|
|
140
|
-
version: upgraded ? ContractVersion.Upgraded : ContractVersion.Legacy,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Determines the contract type for an asset on a specific chain.
|
|
146
|
-
*
|
|
147
|
-
* @param assetId - Asset identifier
|
|
148
|
-
* @param chainId - Chain ID
|
|
149
|
-
* @param addressKind - Which address to use for dual-address tokens
|
|
150
|
-
* @returns Contract type
|
|
151
|
-
*/
|
|
152
|
-
export function getContractType(
|
|
153
|
-
assetId: AssetId,
|
|
154
|
-
chainId: ChainId,
|
|
155
|
-
addressKind: AddressKind = AddressKind.Token,
|
|
156
|
-
): ContractType {
|
|
157
|
-
switch (assetId) {
|
|
158
|
-
case AssetId.LBTC:
|
|
159
|
-
return ContractType.LBTC;
|
|
160
|
-
|
|
161
|
-
case AssetId.BTCK:
|
|
162
|
-
return ContractType.BTCK;
|
|
163
|
-
|
|
164
|
-
case AssetId.BTCb:
|
|
165
|
-
// On Avalanche chains, BTCb uses dual-contract architecture
|
|
166
|
-
if (chainId === ChainId.avalanche || chainId === ChainId.avalancheFuji) {
|
|
167
|
-
return addressKind === AddressKind.Adapter
|
|
168
|
-
? ContractType.BridgeTokenAdapter
|
|
169
|
-
: ContractType.ERC20;
|
|
170
|
-
}
|
|
171
|
-
// On other chains, BTCb is NativeLBTC
|
|
172
|
-
return ContractType.NativeLBTC;
|
|
173
|
-
|
|
174
|
-
default:
|
|
175
|
-
// Supporting tokens (cbBTC, wBTC, etc.) use standard ERC20
|
|
176
|
-
return ContractType.ERC20;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Gets contract information including ABI and address for an asset.
|
|
182
|
-
*
|
|
183
|
-
* This is the main entry point for getting everything needed to interact
|
|
184
|
-
* with a contract. It handles:
|
|
185
|
-
* - Determining the correct contract type
|
|
186
|
-
* - Detecting contract upgrades
|
|
187
|
-
* - Returning the appropriate ABI
|
|
188
|
-
*
|
|
189
|
-
* @param assetId - Asset identifier
|
|
190
|
-
* @param chainId - Chain ID
|
|
191
|
-
* @param env - Environment (default: DEFAULT_ENV)
|
|
192
|
-
* @param options - Additional options
|
|
193
|
-
* @returns Contract information including ABI and address
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* ```typescript
|
|
197
|
-
* // Get LBTC contract info
|
|
198
|
-
* const info = await getContractInfo(AssetId.LBTC, ChainId.ethereum, Env.prod);
|
|
199
|
-
* const contract = getContract({ ...info, client });
|
|
200
|
-
* const balance = await contract.read.balanceOf([userAddress]);
|
|
201
|
-
*
|
|
202
|
-
* // Get BTCb adapter on Avalanche
|
|
203
|
-
* const adapterInfo = await getContractInfo(
|
|
204
|
-
* AssetId.BTCb,
|
|
205
|
-
* ChainId.avalanche,
|
|
206
|
-
* Env.prod,
|
|
207
|
-
* { addressKind: AddressKind.Adapter }
|
|
208
|
-
* );
|
|
209
|
-
* ```
|
|
210
|
-
*/
|
|
211
|
-
export async function getContractInfo(
|
|
212
|
-
assetId: AssetId,
|
|
213
|
-
chainId: ChainId,
|
|
214
|
-
env: Env = DEFAULT_ENV,
|
|
215
|
-
options: GetContractInfoOptions = {},
|
|
216
|
-
): Promise<ContractInfo> {
|
|
217
|
-
const { addressKind = AddressKind.Token, rpcUrl } = options;
|
|
218
|
-
|
|
219
|
-
// Get address from the asset catalog
|
|
220
|
-
// For Adapter kind, use getBridgeAdapter; otherwise use getAssetAddress
|
|
221
|
-
// Convert ChainId (numeric) to Chain (CAIP-2 string like "eip155:1")
|
|
222
|
-
const chain = evmChainIdToChain(chainId);
|
|
223
|
-
const addressStr =
|
|
224
|
-
addressKind === AddressKind.Adapter
|
|
225
|
-
? getBridgeAdapter(assetId, env, chain)
|
|
226
|
-
: getAssetAddress(assetId, env, chain);
|
|
227
|
-
|
|
228
|
-
if (!addressStr) {
|
|
229
|
-
throw new Error(
|
|
230
|
-
`No address found for ${assetId} on chain ${chainId} in ${env} environment (addressKind: ${addressKind})`,
|
|
231
|
-
);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Cast to 0x-prefixed address type
|
|
235
|
-
const address = addressStr as `0x${string}`;
|
|
236
|
-
|
|
237
|
-
const contractType = getContractType(assetId, chainId, addressKind);
|
|
238
|
-
|
|
239
|
-
// Determine ABI based on contract type and upgrade status
|
|
240
|
-
let abi: Abi;
|
|
241
|
-
let version: ContractVersion | undefined;
|
|
242
|
-
|
|
243
|
-
switch (contractType) {
|
|
244
|
-
case ContractType.LBTC: {
|
|
245
|
-
const result = await getLbtcAbi(address, chainId, env, rpcUrl);
|
|
246
|
-
abi = result.abi as Abi;
|
|
247
|
-
version = result.version;
|
|
248
|
-
break;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
case ContractType.BTCK: {
|
|
252
|
-
const result = await getBtckAbi(address, chainId, env, rpcUrl);
|
|
253
|
-
abi = result.abi as Abi;
|
|
254
|
-
version = result.version;
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
case ContractType.NativeLBTC:
|
|
259
|
-
abi = NATIVE_LBTC_ABI as Abi;
|
|
260
|
-
break;
|
|
261
|
-
|
|
262
|
-
case ContractType.BridgeTokenAdapter:
|
|
263
|
-
abi = BRIDGE_TOKEN_ADAPTER_ABI as Abi;
|
|
264
|
-
break;
|
|
265
|
-
default:
|
|
266
|
-
abi = erc20Abi;
|
|
267
|
-
break;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
return {
|
|
271
|
-
abi: abi as ContractInfo['abi'],
|
|
272
|
-
address,
|
|
273
|
-
chainId,
|
|
274
|
-
type: contractType,
|
|
275
|
-
version,
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* Gets the ABI for an Asset Router contract.
|
|
281
|
-
* Asset Router handles minting/redemption in the MARS architecture.
|
|
282
|
-
*
|
|
283
|
-
* @param assetId - Asset identifier (to get the associated router)
|
|
284
|
-
* @param chainId - Chain ID
|
|
285
|
-
* @param env - Environment
|
|
286
|
-
* @returns Asset Router ABI
|
|
287
|
-
*/
|
|
288
|
-
export { ASSET_ROUTER_ABI };
|