Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@leather.io/models

Package Overview
Dependencies
Maintainers
2
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@leather.io/models - npm Package Compare versions

Comparing version
0.55.0
to
0.56.0
+6
-6
.turbo/turbo-build.log
> @leather.io/models@0.55.0 build /home/runner/work/mono/mono/packages/models
> @leather.io/models@0.56.0 build /home/runner/work/mono/mono/packages/models
> tsdown

@@ -11,6 +11,6 @@

ℹ dist/index.js 23.32 kB │ gzip: 5.50 kB
ℹ dist/index.js.map 52.78 kB │ gzip: 11.17 kB
ℹ dist/index.d.ts.map 20.73 kB │ gzip: 8.02 kB
ℹ dist/index.d.ts 53.50 kB │ gzip: 10.67 kB
ℹ 4 files, total: 150.33 kB
✔ Build complete in 2771ms
ℹ dist/index.js.map 53.08 kB │ gzip: 11.21 kB
ℹ dist/index.d.ts.map 20.69 kB │ gzip: 8.01 kB
ℹ dist/index.d.ts 53.82 kB │ gzip: 10.73 kB
ℹ 4 files, total: 150.90 kB
✔ Build complete in 2894ms

@@ -39,2 +39,9 @@ # Changelog

## [0.56.0](https://github.com/leather-io/mono/compare/@leather.io/models-v0.55.0...@leather.io/models-v0.56.0) (2026-03-27)
### Features
* **extension:** fee service usage in extension ([f295794](https://github.com/leather-io/mono/commit/f29579434d4291805dc1010faeac863dcadaaf5f))
## [0.55.0](https://github.com/leather-io/mono/compare/@leather.io/models-v0.54.0...@leather.io/models-v0.55.0) (2026-03-05)

@@ -41,0 +48,0 @@

@@ -611,6 +611,12 @@ import { z } from "zod";

type TransactionFeeTier = (typeof transactionFeeTiers)[number];
interface TransactionFees {
interface TransactionFees<T extends TransactionFeeQuote = TransactionFeeQuote> {
readonly chain: Blockchain;
readonly options: Record<TransactionFeeTier, TransactionFeeQuote>;
readonly options: Record<TransactionFeeTier, T>;
}
interface BitcoinTransactionFees extends TransactionFees<BitcoinTransactionFeeQuote> {
readonly chain: 'bitcoin';
}
interface StacksTransactionFees extends TransactionFees<StacksTransactionFeeQuote> {
readonly chain: 'stacks';
}
declare const transactionFeeQuoteType: readonly ["flat", "bitcoinFeeRate", "stacksFeeRate", "evm1559"];

@@ -1364,3 +1370,3 @@ type TransactionFeeQuoteType = (typeof transactionFeeQuoteType)[number];

//#endregion
export { AccountAddresses, AccountDisplayPreference, AccountDisplayPreferenceInfo, AccountId, AccountLevelActivity, Activity, ActivityLevel, ActivityLevels, ActivityType, AlexSdkSwapQuote, AllowAdditionalProperties, AnalyticsPreference, AppLevelActivity, AverageBitcoinFeeRates, BESTINSLOT_API_BASE_URL_MAINNET, BESTINSLOT_API_BASE_URL_TESTNET, BITCOIN_API_BASE_URL_MAINNET, BITCOIN_API_BASE_URL_SIGNET, BITCOIN_API_BASE_URL_TESTNET3, BITCOIN_API_BASE_URL_TESTNET4, BNS_V2_API_BASE_URL, BaseActivity, BaseCryptoAsset, BaseCryptoAssetBalance, BaseNonFungibleCryptoAsset, BaseOnChainActivity, BasePooledStackingPosition, BaseSwapExecutionData, BaseSwapQuote, BaseTransactionFeeQuote, BaseWalletActivity, BaseYieldPosition, BaseYieldProduct, BitcoinAddress, BitcoinAddressInfo, BitcoinChainConfig, BitcoinNetwork, BitcoinNetworkModes, BitcoinTransaction, BitcoinTransactionFeeQuote, BitcoinTransactionVectorInput, BitcoinTransactionVectorOutput, BitcoinTransactionVin, BitcoinTransactionVout, BitcoinTx, BitcoinUnit, BitcoinUnitInfo, BitcoinUnitSymbol, BitflowAmmLpPosition, BitflowAmmStakingPosition, BitflowBffApiSwapQuote, BitflowSdkSwapQuote, Blockchain, BlockchainActivity, BlockchainActivityContractCall, BlockchainActivityContractDeploy, BlockchainActivityEvent, BlockchainActivityEventAction, BnsName, BnsProfile, BnsProfileData, BnsProfileDataAddresses, Brc20Asset, BtcAsset, BtcBalance, BtcFeeType, ChainId, ConnectAppActivity, CryptoAsset, CryptoAssetBalance, CryptoAssetCategories, CryptoAssetCategory, CryptoAssetChain, CryptoAssetChains, CryptoAssetId, CryptoAssetProtocol, CryptoAssetProtocols, CryptoCurrency, Currency, DefaultNetworkConfigurations, DeploySmartContractActivity, EMILY_API_BASE_URL_DEVENV, EMILY_API_BASE_URL_MAINNET, EMILY_API_BASE_URL_TESTNET, EmailAddress, Entries, EvmTransactionFeeQuote, ExecuteSmartContractActivity, ExecutionConstraint, FastPoolPooledStackingPosition, FeeCalculationTypes, FeeTypes, Fees, FlatTransactionFeeQuote, FtTransfer, FungibleAssetId, FungibleCryptoAsset, FungibleCryptoAssetProtocol, FungibleCryptoAssetProtocols, GeneralActivity, GeneralActivityType, GeneralActivityTypes, GraniteV1BorrowPosition, GraniteV1CollateralAsset, GraniteV1EarnPosition, HIRO_API_BASE_URL_MAINNET, HIRO_API_BASE_URL_MAINNET_EXTENDED, HIRO_API_BASE_URL_NAKAMOTO_TESTNET, HIRO_API_BASE_URL_TESTNET, HIRO_API_BASE_URL_TESTNET_EXTENDED, HermeticaStaking, HermeticaUsdhStakingPosition, HistoricalPeriod, InputCurrencyMode, InscriptionAsset, InscriptionMimeType, LisaLiStxPosition, LisaLiquidStakingPosition, LisaLstHolding, LiteralUnion, LockAssetActivity, MarketData, MarketPriceHistory, MarketPriceSnapshot, MarketStats, Money, NativeCryptoAsset, NetworkConfiguration, NetworkModes, NonFungibleCryptoAsset, NonFungibleCryptoAssetProtocol, NonFungibleCryptoAssetProtocols, Nullable, NumType, OnChainActivity, OnChainActivityStatus, OnChainActivityStatuses, OnChainActivityType, OnChainActivityTypes, OwnedUtxo, PooledStackingYieldProduct, Prettify, QuoteCurrency, ReceiveAssetActivity, ReplaceTypes, RuneAsset, SbtcBridgeDepositSwapExecutionData, SbtcBridgeStatus, SbtcBridgeSwapQuote, SendAssetActivity, SignMessageActivity, Sip10Asset, Sip9Asset, Sip9AssetContent, Sip9Attribute, Sip9Collection, Sip9ContentType, Src20Asset, StackingDaoLstHolding, StackingDaoLstWithdrawal, StackingDaoPooledStackingPosition, StackingDaoReward, StackingDaoStStxBtcPosition, StackingDaoStStxPosition, StacksAddressInfo, StacksChainConfig, StacksContractCallSwapExecutionData, StacksFeeEstimate, StacksProtocol, StacksProtocolAction, StacksProtocolId, StacksProtocolIds, StacksTransactionFeeQuote, StacksTx, StacksTxStatus, StampAsset, StxAsset, StxBalance, StxTransfer, SupportedBlockchains, SwapAsset, SwapAssetsActivity, SwapExecutionData, SwapExecutionType, SwapProvider, SwapProviderAsset, SwapProviderId, SwapQuote, SwappableFungibleCryptoAsset, TokenAnalytics, TokenDistribution, TokenDistributionPercentileKey, TokenHolderSegment, TokenTopHolderKey, TransactionErrorKey, TransactionFeeQuote, TransactionFeeQuoteType, TransactionFeeTier, TransactionFees, Utxo, UtxoId, ValueOf, VelarAmmLpPosition, VelarFarmPosition, VelarSdkSwapQuote, WalletActivity, WalletActivityType, WalletActivityTypes, WalletDefaultNetworkConfigurationIds, WalletId, XversePooledStackingPosition, YieldPosition, YieldProduct, YieldProductCategories, YieldProductCategory, YieldProductKey, YieldProductKeys, YieldProductToProviderMap, ZestBorrowAsset, ZestBorrowMarketPosition, accountAddressesSchema, accountDisplayPreferenceSchema, accountIdSchema, analyticsPreferenceSchema, bitcoinAddressInfoSchema, bitcoinNetworkModesSchema, bitcoinNetworkSchema, bitcoinNetworkToNetworkMode, bitcoinNetworks, bitcoinUnitSchema, bnsContractAddress, bnsContractName, btcTxTimeMap, createMarketData, createMarketPair, defaultCurrentNetwork, defaultNetworkConfigurationsSchema, defaultNetworksKeyedById, emailAddressSchema, enrichPositionWithMetadata, enrichPositionWithProduct, enrichPositionWithProvider, filterPositionsByCategory, filterPositionsByProduct, filterPositionsByProvider, formatMarketPair, getCategoryDisplayName, getCategoryForProduct, getPositionsInCategories, getProductsForProvider, getProductsInCategory, getProviderForProduct, groupPositionsByCategory, groupPositionsByProvider, hasPositionsInCategory, hasPositionsInProvider, historicalPeriods, inscriptionMimeTypes, isBitflowAmmLpPosition, isBitflowAmmStakingPosition, isBrc20Asset, isBtcAsset, isFungibleAsset, isGraniteBorrowPosition, isGraniteEarnPosition, isInscriptionAsset, isNativeAsset, isNonFungibleAsset, isProductInProvider, isRuneAsset, isSip10Asset, isSip9Asset, isSrc20Asset, isStackingDaoPooledPosition, isStackingDaoStStxBtcPosition, isStackingDaoStStxPosition, isStampAsset, isStxAsset, isSwappableAsset, isZestPosition, networkConfigurationSchema, networkModes, percentileKeys, sip9ContentTypes, sortPositionsByApy, sortPositionsByBalance, sortPositionsByUpdateTime, stacksAddressInfoSchema, stacksProtocolActions, supportedBlockchains, swapExecutionTypes, swapProviderIds, testnetModes, topHolderKeys, transactionFeeQuoteType, transactionFeeTiers, walletIdSchema, whenInputCurrencyMode };
export { AccountAddresses, AccountDisplayPreference, AccountDisplayPreferenceInfo, AccountId, AccountLevelActivity, Activity, ActivityLevel, ActivityLevels, ActivityType, AlexSdkSwapQuote, AllowAdditionalProperties, AnalyticsPreference, AppLevelActivity, AverageBitcoinFeeRates, BESTINSLOT_API_BASE_URL_MAINNET, BESTINSLOT_API_BASE_URL_TESTNET, BITCOIN_API_BASE_URL_MAINNET, BITCOIN_API_BASE_URL_SIGNET, BITCOIN_API_BASE_URL_TESTNET3, BITCOIN_API_BASE_URL_TESTNET4, BNS_V2_API_BASE_URL, BaseActivity, BaseCryptoAsset, BaseCryptoAssetBalance, BaseNonFungibleCryptoAsset, BaseOnChainActivity, BasePooledStackingPosition, BaseSwapExecutionData, BaseSwapQuote, BaseTransactionFeeQuote, BaseWalletActivity, BaseYieldPosition, BaseYieldProduct, BitcoinAddress, BitcoinAddressInfo, BitcoinChainConfig, BitcoinNetwork, BitcoinNetworkModes, BitcoinTransaction, BitcoinTransactionFeeQuote, BitcoinTransactionFees, BitcoinTransactionVectorInput, BitcoinTransactionVectorOutput, BitcoinTransactionVin, BitcoinTransactionVout, BitcoinTx, BitcoinUnit, BitcoinUnitInfo, BitcoinUnitSymbol, BitflowAmmLpPosition, BitflowAmmStakingPosition, BitflowBffApiSwapQuote, BitflowSdkSwapQuote, Blockchain, BlockchainActivity, BlockchainActivityContractCall, BlockchainActivityContractDeploy, BlockchainActivityEvent, BlockchainActivityEventAction, BnsName, BnsProfile, BnsProfileData, BnsProfileDataAddresses, Brc20Asset, BtcAsset, BtcBalance, BtcFeeType, ChainId, ConnectAppActivity, CryptoAsset, CryptoAssetBalance, CryptoAssetCategories, CryptoAssetCategory, CryptoAssetChain, CryptoAssetChains, CryptoAssetId, CryptoAssetProtocol, CryptoAssetProtocols, CryptoCurrency, Currency, DefaultNetworkConfigurations, DeploySmartContractActivity, EMILY_API_BASE_URL_DEVENV, EMILY_API_BASE_URL_MAINNET, EMILY_API_BASE_URL_TESTNET, EmailAddress, Entries, EvmTransactionFeeQuote, ExecuteSmartContractActivity, ExecutionConstraint, FastPoolPooledStackingPosition, FeeCalculationTypes, FeeTypes, Fees, FlatTransactionFeeQuote, FtTransfer, FungibleAssetId, FungibleCryptoAsset, FungibleCryptoAssetProtocol, FungibleCryptoAssetProtocols, GeneralActivity, GeneralActivityType, GeneralActivityTypes, GraniteV1BorrowPosition, GraniteV1CollateralAsset, GraniteV1EarnPosition, HIRO_API_BASE_URL_MAINNET, HIRO_API_BASE_URL_MAINNET_EXTENDED, HIRO_API_BASE_URL_NAKAMOTO_TESTNET, HIRO_API_BASE_URL_TESTNET, HIRO_API_BASE_URL_TESTNET_EXTENDED, HermeticaStaking, HermeticaUsdhStakingPosition, HistoricalPeriod, InputCurrencyMode, InscriptionAsset, InscriptionMimeType, LisaLiStxPosition, LisaLiquidStakingPosition, LisaLstHolding, LiteralUnion, LockAssetActivity, MarketData, MarketPriceHistory, MarketPriceSnapshot, MarketStats, Money, NativeCryptoAsset, NetworkConfiguration, NetworkModes, NonFungibleCryptoAsset, NonFungibleCryptoAssetProtocol, NonFungibleCryptoAssetProtocols, Nullable, NumType, OnChainActivity, OnChainActivityStatus, OnChainActivityStatuses, OnChainActivityType, OnChainActivityTypes, OwnedUtxo, PooledStackingYieldProduct, Prettify, QuoteCurrency, ReceiveAssetActivity, ReplaceTypes, RuneAsset, SbtcBridgeDepositSwapExecutionData, SbtcBridgeStatus, SbtcBridgeSwapQuote, SendAssetActivity, SignMessageActivity, Sip10Asset, Sip9Asset, Sip9AssetContent, Sip9Attribute, Sip9Collection, Sip9ContentType, Src20Asset, StackingDaoLstHolding, StackingDaoLstWithdrawal, StackingDaoPooledStackingPosition, StackingDaoReward, StackingDaoStStxBtcPosition, StackingDaoStStxPosition, StacksAddressInfo, StacksChainConfig, StacksContractCallSwapExecutionData, StacksFeeEstimate, StacksProtocol, StacksProtocolAction, StacksProtocolId, StacksProtocolIds, StacksTransactionFeeQuote, StacksTransactionFees, StacksTx, StacksTxStatus, StampAsset, StxAsset, StxBalance, StxTransfer, SupportedBlockchains, SwapAsset, SwapAssetsActivity, SwapExecutionData, SwapExecutionType, SwapProvider, SwapProviderAsset, SwapProviderId, SwapQuote, SwappableFungibleCryptoAsset, TokenAnalytics, TokenDistribution, TokenDistributionPercentileKey, TokenHolderSegment, TokenTopHolderKey, TransactionErrorKey, TransactionFeeQuote, TransactionFeeQuoteType, TransactionFeeTier, TransactionFees, Utxo, UtxoId, ValueOf, VelarAmmLpPosition, VelarFarmPosition, VelarSdkSwapQuote, WalletActivity, WalletActivityType, WalletActivityTypes, WalletDefaultNetworkConfigurationIds, WalletId, XversePooledStackingPosition, YieldPosition, YieldProduct, YieldProductCategories, YieldProductCategory, YieldProductKey, YieldProductKeys, YieldProductToProviderMap, ZestBorrowAsset, ZestBorrowMarketPosition, accountAddressesSchema, accountDisplayPreferenceSchema, accountIdSchema, analyticsPreferenceSchema, bitcoinAddressInfoSchema, bitcoinNetworkModesSchema, bitcoinNetworkSchema, bitcoinNetworkToNetworkMode, bitcoinNetworks, bitcoinUnitSchema, bnsContractAddress, bnsContractName, btcTxTimeMap, createMarketData, createMarketPair, defaultCurrentNetwork, defaultNetworkConfigurationsSchema, defaultNetworksKeyedById, emailAddressSchema, enrichPositionWithMetadata, enrichPositionWithProduct, enrichPositionWithProvider, filterPositionsByCategory, filterPositionsByProduct, filterPositionsByProvider, formatMarketPair, getCategoryDisplayName, getCategoryForProduct, getPositionsInCategories, getProductsForProvider, getProductsInCategory, getProviderForProduct, groupPositionsByCategory, groupPositionsByProvider, hasPositionsInCategory, hasPositionsInProvider, historicalPeriods, inscriptionMimeTypes, isBitflowAmmLpPosition, isBitflowAmmStakingPosition, isBrc20Asset, isBtcAsset, isFungibleAsset, isGraniteBorrowPosition, isGraniteEarnPosition, isInscriptionAsset, isNativeAsset, isNonFungibleAsset, isProductInProvider, isRuneAsset, isSip10Asset, isSip9Asset, isSrc20Asset, isStackingDaoPooledPosition, isStackingDaoStStxBtcPosition, isStackingDaoStStxPosition, isStampAsset, isStxAsset, isSwappableAsset, isZestPosition, networkConfigurationSchema, networkModes, percentileKeys, sip9ContentTypes, sortPositionsByApy, sortPositionsByBalance, sortPositionsByUpdateTime, stacksAddressInfoSchema, stacksProtocolActions, supportedBlockchains, swapExecutionTypes, swapProviderIds, testnetModes, topHolderKeys, transactionFeeQuoteType, transactionFeeTiers, walletIdSchema, whenInputCurrencyMode };
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","names":[],"sources":["../src/account.model.ts","../src/activity/activity-level.model.ts","../src/input-currency-mode.model.ts","../src/activity/activity-status.model.ts","../src/activity/activity-type.model.ts","../src/inscription-mime-type.model.ts","../src/types.utils.ts","../src/currencies.model.ts","../src/money.model.ts","../src/assets/sip9-asset.model.ts","../src/assets/asset.model.ts","../src/activity/activity.model.ts","../src/protocols/stacks-protocol.model.ts","../src/activity/blockchain-activity.model.ts","../src/assets/asset-id.model.ts","../src/assets/asset-type-guards.ts","../src/balance.model.ts","../src/bitcoin.model.ts","../src/bns.model.ts","../src/fees/bitcoin-fees.model.ts","../src/types.ts","../src/fees/stacks-fees.model.ts","../src/fees/fees.model.ts","../src/fees/transaction-fees.model.ts","../src/market.model.ts","../src/network/network.schema.ts","../src/network/network.model.ts","../src/settings.model.ts","../src/swap/swap.model.ts","../src/token-analytics.model.ts","../src/transactions/bitcoin-transaction.model.ts","../src/transactions/stacks-transaction.model.ts","../src/transactions/transaction-error.model.ts","../src/utxo.model.ts","../src/yield/yield-product.model.ts","../src/yield/yield-position.base.model.ts","../src/yield/providers/bitflow-position.model.ts","../src/yield/providers/granite-position.model.ts","../src/yield/providers/stacking-dao-position.model.ts","../src/yield/providers/zest-position.model.ts","../src/yield/providers/fast-pool-position.model.ts","../src/yield/providers/hermetica-position.model.ts","../src/yield/providers/lisa-position.model.ts","../src/yield/providers/velar-position.model.ts","../src/yield/providers/xverse-position.model.ts","../src/yield/yield-position.model.ts","../src/yield/helpers/yield.helpers.ts"],"sourcesContent":[],"mappings":"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B,KAAA,E2CmBzB,mB3CnByB;IAAA,OAAA,E2CoBvB,K3CpBuB;IAIvB,YAAA,E2CiBK,K3CjBL;;;;;U4CjBI,4BAAA,SAAqC;;;;;;A5CA3B,K6CkBf,aAAA,GACR,oB7CnBuB,G6CoBvB,yB7CpBuB,G6CqBvB,wB7CrBuB,G6CsBvB,qB7CtBuB,G6CuBvB,uB7CvBuB,G6CwBvB,wB7CxBuB,G6CyBvB,2B7CzBuB,G6C0BvB,iC7C1BuB,G6C2BvB,kB7C3BuB,G6C4BvB,iB7C5BuB,G6C6BvB,iB7C7BuB,G6C8BvB,yB7C9BuB,G6C+BvB,4B7C/BuB,G6CgCvB,8B7ChCuB,G6CiCvB,4B7CjCuB;;;iB8CuBX,sBAAA,MAA4B,uBAAuB;A9CvBxC,iB8C2BX,2BAAA,C9C3BW,GAAA,E8C2BsB,a9C3BtB,CAAA,EAAA,GAAA,I8C2B6C,yB9C3B7C;AAAA,iB8C+BX,cAAA,C9C/BW,GAAA,E8C+BS,a9C/BT,CAAA,EAAA,GAAA,I8C+BgC,wB9C/BhC;AAId,iB8C+BG,qBAAA,C9C/ByE,GAAA,E8C+B9C,a9C/B8C,CAAA,EAAA,GAAA,I8C+BvB,qB9C/BuB;iB8CmCzE,uBAAA,MAA6B,uBAAuB;iBAIpD,0BAAA,MAAgC,uBAAuB;A9CvC3C,iB8C2CZ,6BAAA,C9C3CY,GAAA,E8C4CrB,a9C5CqB,CAAA,EAAA,GAAA,I8C6ClB,2B9C7CkB;iB8CiDZ,2BAAA,MACT,uBACG;iBAIM,yBAAA,YACH,2BACD,mBACT;iBAIa,wBAAA,YACH,0BACF,kBACR;A9CjEyB,iB8CqEZ,yBAAA,C9CrEY,SAAA,E8CsEf,a9CtEe,EAAA,EAAA,QAAA,E8CuEhB,Y9CvEgB,EAAA,EAAA,QAAA,E8CwEhB,oB9CxEgB,CAAA,E8CyEzB,a9CzEyB,EAAA;AAAA,iB8C8EZ,sBAAA,C9C9EY,SAAA,E8C+Ef,a9C/Ee,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E8CiFzB,a9CjFyB,EAAA;AAEf,iB8CsFG,kBAAA,C9CjFd,SAAA,E8CiF4C,a9CjF5C,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E8CiFiF,a9CjFjF,EAAA;iB8CyFc,yBAAA,YACH,uCAEV;iBAQa,qBAAA,UAA+B,kBAAkB;iBAIjD,qBAAA,UAA+B,eAAe;iBAI9C,mBAAA,UAA6B,2BAA2B;iBAIxD,sBAAA,WAAiC,mBAAmB;iBAMpD,qBAAA,WACJ,0BACA,uBACT;iBAIa,wBAAA,YACH,kBACV,OAAO,kBAAkB;A9CpIS,iB8CkJrB,wBAAA,C9ClJqB,SAAA,E8CmJxB,a9CnJwB,EAAA,EAAA,QAAA,E8CoJzB,Y9CpJyB,EAAA,CAAA,E8CqJlC,M9CrJkC,CAAA,MAAA,E8CqJnB,a9CrJmB,EAAA,CAAA;AAAA,iB8CuKrB,wBAAA,C9CvKqB,SAAA,E8CwKxB,a9CxKwB,EAAA,EAAA,QAAA,E8CyKzB,Y9CzKyB,EAAA,EAAA,UAAA,E8C0KvB,oB9C1KuB,EAAA,CAAA,E8C2KlC,a9C3KkC,EAAA;AAOxB,iB8C6KG,sBAAA,C9C3Kd,SAAA,E8C4KW,a9C5KX,EAAA,EAAA,QAAA,E8C6KU,gB9C7KV,CAAA,EAAA,OAAA;iB8CkLc,sBAAA,YACH,2BACD,0BACA;iBAMI,qCAAqC,yBACzC,aACA,iBACT;E9ChMiC,YAAA,E8CgMb,c9ChMa;CAAA;AAIvB,iB8CgMG,yB9C5Ld,CAAA,U8C4LkD,a9C5LlD,CAAA,CAAA,QAAA,E8C6LU,C9C7LV,EAAA,OAAA,E8C8LS,Y9C9LT,CAAA,E8C+LC,C9C/LD,GAAA;e8C+LoB;;iBAIN,qCAAqC,yBACzC,aACA,yBACD,eACR;gBAAoB;eAA6B;;iBAIpC,sBAAA,WAAiC"}
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/account.model.ts","../src/activity/activity-level.model.ts","../src/input-currency-mode.model.ts","../src/activity/activity-status.model.ts","../src/activity/activity-type.model.ts","../src/inscription-mime-type.model.ts","../src/types.utils.ts","../src/currencies.model.ts","../src/money.model.ts","../src/assets/sip9-asset.model.ts","../src/assets/asset.model.ts","../src/activity/activity.model.ts","../src/protocols/stacks-protocol.model.ts","../src/activity/blockchain-activity.model.ts","../src/assets/asset-id.model.ts","../src/assets/asset-type-guards.ts","../src/balance.model.ts","../src/bitcoin.model.ts","../src/bns.model.ts","../src/fees/bitcoin-fees.model.ts","../src/types.ts","../src/fees/stacks-fees.model.ts","../src/fees/fees.model.ts","../src/fees/transaction-fees.model.ts","../src/market.model.ts","../src/network/network.schema.ts","../src/network/network.model.ts","../src/settings.model.ts","../src/swap/swap.model.ts","../src/token-analytics.model.ts","../src/transactions/bitcoin-transaction.model.ts","../src/transactions/stacks-transaction.model.ts","../src/transactions/transaction-error.model.ts","../src/utxo.model.ts","../src/yield/yield-product.model.ts","../src/yield/yield-position.base.model.ts","../src/yield/providers/bitflow-position.model.ts","../src/yield/providers/granite-position.model.ts","../src/yield/providers/stacking-dao-position.model.ts","../src/yield/providers/zest-position.model.ts","../src/yield/providers/fast-pool-position.model.ts","../src/yield/providers/hermetica-position.model.ts","../src/yield/providers/lisa-position.model.ts","../src/yield/providers/velar-position.model.ts","../src/yield/providers/xverse-position.model.ts","../src/yield/yield-position.model.ts","../src/yield/helpers/yield.helpers.ts"],"sourcesContent":[],"mappings":"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oBvB,K3CpBuB;IAIvB,YAAA,E2CiBK,K3CjBL;;;;;U4CjBI,4BAAA,SAAqC;;;;;;A5CA3B,K6CkBf,aAAA,GACR,oB7CnBuB,G6CoBvB,yB7CpBuB,G6CqBvB,wB7CrBuB,G6CsBvB,qB7CtBuB,G6CuBvB,uB7CvBuB,G6CwBvB,wB7CxBuB,G6CyBvB,2B7CzBuB,G6C0BvB,iC7C1BuB,G6C2BvB,kB7C3BuB,G6C4BvB,iB7C5BuB,G6C6BvB,iB7C7BuB,G6C8BvB,yB7C9BuB,G6C+BvB,4B7C/BuB,G6CgCvB,8B7ChCuB,G6CiCvB,4B7CjCuB;;;iB8CuBX,sBAAA,MAA4B,uBAAuB;A9CvBxC,iB8C2BX,2BAAA,C9C3BW,GAAA,E8C2BsB,a9C3BtB,CAAA,EAAA,GAAA,I8C2B6C,yB9C3B7C;AAAA,iB8C+BX,cAAA,C9C/BW,GAAA,E8C+BS,a9C/BT,CAAA,EAAA,GAAA,I8C+BgC,wB9C/BhC;AAId,iB8C+BG,qBAAA,C9C/ByE,GAAA,E8C+B9C,a9C/B8C,CAAA,EAAA,GAAA,I8C+BvB,qB9C/BuB;iB8CmCzE,uBAAA,MAA6B,uBAAuB;iBAIpD,0BAAA,MAAgC,uBAAuB;A9CvC3C,iB8C2CZ,6BAAA,C9C3CY,GAAA,E8C4CrB,a9C5CqB,CAAA,EAAA,GAAA,I8C6ClB,2B9C7CkB;iB8CiDZ,2BAAA,MACT,uBACG;iBAIM,yBAAA,YACH,2BACD,mBACT;iBAIa,wBAAA,YACH,0BACF,kBACR;A9CjEyB,iB8CqEZ,yBAAA,C9CrEY,SAAA,E8CsEf,a9CtEe,EAAA,EAAA,QAAA,E8CuEhB,Y9CvEgB,EAAA,EAAA,QAAA,E8CwEhB,oB9CxEgB,CAAA,E8CyEzB,a9CzEyB,EAAA;AAAA,iB8C8EZ,sBAAA,C9C9EY,SAAA,E8C+Ef,a9C/Ee,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E8CiFzB,a9CjFyB,EAAA;AAEf,iB8CsFG,kBAAA,C9CjFd,SAAA,E8CiF4C,a9CjF5C,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E8CiFiF,a9CjFjF,EAAA;iB8CyFc,yBAAA,YACH,uCAEV;iBAQa,qBAAA,UAA+B,kBAAkB;iBAIjD,qBAAA,UAA+B,eAAe;iBAI9C,mBAAA,UAA6B,2BAA2B;iBAIxD,sBAAA,WAAiC,mBAAmB;iBAMpD,qBAAA,WACJ,0BACA,uBACT;iBAIa,wBAAA,YACH,kBACV,OAAO,kBAAkB;A9CpIS,iB8CkJrB,wBAAA,C9ClJqB,SAAA,E8CmJxB,a9CnJwB,EAAA,EAAA,QAAA,E8CoJzB,Y9CpJyB,EAAA,CAAA,E8CqJlC,M9CrJkC,CAAA,MAAA,E8CqJnB,a9CrJmB,EAAA,CAAA;AAAA,iB8CuKrB,wBAAA,C9CvKqB,SAAA,E8CwKxB,a9CxKwB,EAAA,EAAA,QAAA,E8CyKzB,Y9CzKyB,EAAA,EAAA,UAAA,E8C0KvB,oB9C1KuB,EAAA,CAAA,E8C2KlC,a9C3KkC,EAAA;AAOxB,iB8C6KG,sBAAA,C9C3Kd,SAAA,E8C4KW,a9C5KX,EAAA,EAAA,QAAA,E8C6KU,gB9C7KV,CAAA,EAAA,OAAA;iB8CkLc,sBAAA,YACH,2BACD,0BACA;iBAMI,qCAAqC,yBACzC,aACA,iBACT;E9ChMiC,YAAA,E8CgMb,c9ChMa;CAAA;AAIvB,iB8CgMG,yB9C5Ld,CAAA,U8C4LkD,a9C5LlD,CAAA,CAAA,QAAA,E8C6LU,C9C7LV,EAAA,OAAA,E8C8LS,Y9C9LT,CAAA,E8C+LC,C9C/LD,GAAA;e8C+LoB;;iBAIN,qCAAqC,yBACzC,aACA,yBACD,eACR;gBAAoB;eAA6B;;iBAIpC,sBAAA,WAAiC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","names":["btcTxTimeMap: Record<keyof AverageBitcoinFeeRates, string>","networkMainnet: NetworkConfiguration","networkTestnet: NetworkConfiguration","networkTestnet4: NetworkConfiguration","networkSignet: NetworkConfiguration","networkSbtcTestnet: NetworkConfiguration","networkSbtcDevenv: NetworkConfiguration","networkDevnet: NetworkConfiguration","defaultCurrentNetwork: NetworkConfiguration","defaultNetworksKeyedById: Record<\n WalletDefaultNetworkConfigurationIds,\n NetworkConfiguration\n>","grouped: Partial<Record<StacksProtocolId, YieldPosition[]>>","grouped: Record<string, YieldPosition[]>"],"sources":["../src/account.model.ts","../src/activity/activity-level.model.ts","../src/input-currency-mode.model.ts","../src/activity/activity-status.model.ts","../src/activity/activity-type.model.ts","../src/assets/asset-type-guards.ts","../src/assets/asset.model.ts","../src/assets/sip9-asset.model.ts","../src/bitcoin.model.ts","../src/bns.model.ts","../src/fees/bitcoin-fees.model.ts","../src/fees/fees.model.ts","../src/fees/transaction-fees.model.ts","../src/inscription-mime-type.model.ts","../src/market.model.ts","../src/network/network.model.ts","../src/network/network.schema.ts","../src/settings.model.ts","../src/protocols/stacks-protocol.model.ts","../src/swap/swap.model.ts","../src/token-analytics.model.ts","../src/yield/yield-product.model.ts","../src/yield/helpers/yield.helpers.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const walletIdSchema = z.object({\n fingerprint: z.string(),\n});\n\nexport const accountIdSchema = walletIdSchema.and(z.object({ accountIndex: z.number() }));\n\nexport const bitcoinAddressInfoSchema = z.object({\n taprootDescriptor: z.string(),\n nativeSegwitDescriptor: z.string(),\n zeroIndexTaprootPayerAddress: z.string().optional(),\n zeroIndexNativeSegwitPayerAddress: z.string().optional(),\n});\n\nexport const stacksAddressInfoSchema = z.object({\n stxAddress: z.string(),\n});\n\nexport const accountAddressesSchema = z.object({\n id: accountIdSchema,\n bitcoin: bitcoinAddressInfoSchema.optional(),\n stacks: stacksAddressInfoSchema.optional(),\n});\n\nexport type WalletId = z.infer<typeof walletIdSchema>;\nexport type AccountId = z.infer<typeof accountIdSchema>;\n\nexport type BitcoinAddressInfo = z.infer<typeof bitcoinAddressInfoSchema>;\nexport type StacksAddressInfo = z.infer<typeof stacksAddressInfoSchema>;\nexport type AccountAddresses = z.infer<typeof accountAddressesSchema>;\n","export const ActivityLevels = {\n account: 'account',\n app: 'app',\n} as const;\nexport type ActivityLevel = keyof typeof ActivityLevels;\n","export type InputCurrencyMode = 'crypto' | 'quote';\n\nexport function whenInputCurrencyMode<TValue>(mode: InputCurrencyMode) {\n return <TMode extends Record<InputCurrencyMode, TValue>>(\n modes: TMode\n ): TMode[InputCurrencyMode] => modes[mode];\n}\n","export const OnChainActivityStatuses = {\n pending: 'pending',\n success: 'success',\n failed: 'failed',\n} as const;\nexport type OnChainActivityStatus = keyof typeof OnChainActivityStatuses;\n","export const OnChainActivityTypes = {\n deploySmartContract: 'deploySmartContract',\n executeSmartContract: 'executeSmartContract',\n lockAsset: 'lockAsset',\n sendAsset: 'sendAsset',\n receiveAsset: 'receiveAsset',\n swapAssets: 'swapAssets',\n} as const;\nexport type OnChainActivityType = keyof typeof OnChainActivityTypes;\n\nexport const WalletActivityTypes = {\n connectApp: 'connectApp',\n signMessage: 'signMessage',\n} as const;\nexport type WalletActivityType = keyof typeof WalletActivityTypes;\n\nexport const GeneralActivityTypes = {\n walletAdded: 'walletAdded',\n receiveAnnouncement: 'receiveAnnouncement',\n featureWaitlistNotification: 'featureWaitlistNotification',\n} as const;\nexport type GeneralActivityType = keyof typeof GeneralActivityTypes;\n\nexport type ActivityType = OnChainActivityType | WalletActivityType | GeneralActivityType;\n","import {\n Brc20Asset,\n BtcAsset,\n CryptoAsset,\n FungibleCryptoAsset,\n InscriptionAsset,\n NativeCryptoAsset,\n NonFungibleCryptoAsset,\n RuneAsset,\n Sip10Asset,\n Src20Asset,\n StampAsset,\n StxAsset,\n} from './asset.model';\nimport { Sip9Asset } from './sip9-asset.model';\n\nexport function isFungibleAsset(asset: CryptoAsset): asset is FungibleCryptoAsset {\n return asset.category === 'fungible';\n}\n\nexport function isNonFungibleAsset(asset: CryptoAsset): asset is NonFungibleCryptoAsset {\n return asset.category === 'nft';\n}\n\nexport function isBtcAsset(asset: CryptoAsset): asset is BtcAsset {\n return asset.protocol === 'nativeBtc';\n}\n\nexport function isStxAsset(asset: CryptoAsset): asset is StxAsset {\n return asset.protocol === 'nativeStx';\n}\n\nexport function isNativeAsset(asset: CryptoAsset): asset is NativeCryptoAsset {\n return isBtcAsset(asset) || isStxAsset(asset);\n}\n\nexport function isSip10Asset(asset: CryptoAsset): asset is Sip10Asset {\n return asset.protocol === 'sip10';\n}\n\nexport function isSwappableAsset(asset: CryptoAsset): asset is NativeCryptoAsset | Sip10Asset {\n return isNativeAsset(asset) || isSip10Asset(asset);\n}\n\nexport function isBrc20Asset(asset: CryptoAsset): asset is Brc20Asset {\n return asset.protocol === 'brc20';\n}\n\nexport function isSrc20Asset(asset: CryptoAsset): asset is Src20Asset {\n return asset.protocol === 'src20';\n}\n\nexport function isRuneAsset(asset: CryptoAsset): asset is RuneAsset {\n return asset.protocol === 'rune';\n}\n\nexport function isInscriptionAsset(asset: CryptoAsset): asset is InscriptionAsset {\n return asset.protocol === 'inscription';\n}\n\nexport function isStampAsset(asset: CryptoAsset): asset is StampAsset {\n return asset.protocol === 'stamp';\n}\n\nexport function isSip9Asset(asset: CryptoAsset): asset is Sip9Asset {\n return asset.protocol === 'sip9';\n}\n","import { InscriptionMimeType } from '../inscription-mime-type.model';\nimport { Sip9Asset } from './sip9-asset.model';\n\nexport const CryptoAssetChains = {\n bitcoin: 'bitcoin',\n stacks: 'stacks',\n} as const;\nexport const CryptoAssetCategories = {\n fungible: 'fungible',\n nft: 'nft',\n} as const;\nexport const FungibleCryptoAssetProtocols = {\n nativeBtc: 'nativeBtc',\n nativeStx: 'nativeStx',\n sip10: 'sip10',\n brc20: 'brc20',\n src20: 'src20',\n rune: 'rune',\n} as const;\nexport const NonFungibleCryptoAssetProtocols = {\n stamp: 'stamp',\n sip9: 'sip9',\n inscription: 'inscription',\n} as const;\nexport const CryptoAssetProtocols = {\n ...FungibleCryptoAssetProtocols,\n ...NonFungibleCryptoAssetProtocols,\n} as const;\n\nexport type CryptoAssetChain = keyof typeof CryptoAssetChains;\nexport type CryptoAssetCategory = keyof typeof CryptoAssetCategories;\nexport type FungibleCryptoAssetProtocol = keyof typeof FungibleCryptoAssetProtocols;\nexport type NonFungibleCryptoAssetProtocol = keyof typeof NonFungibleCryptoAssetProtocols;\nexport type CryptoAssetProtocol = FungibleCryptoAssetProtocol | NonFungibleCryptoAssetProtocol;\n\nexport interface BaseCryptoAsset {\n readonly chain: CryptoAssetChain;\n readonly category: CryptoAssetCategory;\n readonly protocol: CryptoAssetProtocol;\n}\n\n// Fungible asset types\ninterface BaseFungibleCryptoAsset extends BaseCryptoAsset {\n readonly category: 'fungible';\n readonly protocol: FungibleCryptoAssetProtocol;\n readonly symbol: string;\n readonly decimals: number;\n readonly hasMemo: boolean;\n}\nexport interface BtcAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'nativeBtc';\n readonly name: 'Bitcoin';\n readonly symbol: 'BTC';\n}\nexport interface StxAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'nativeStx';\n readonly name: 'Stacks';\n readonly symbol: 'STX';\n}\nexport interface Brc20Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'brc20';\n readonly symbol: string;\n}\nexport interface Src20Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'src20';\n readonly id: string;\n readonly symbol: string;\n readonly deploy_tx: string;\n readonly deploy_img: string;\n}\nexport interface RuneAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'rune';\n readonly spacedRuneName: string;\n readonly runeName: string;\n readonly symbol: string;\n}\nexport interface Sip10Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'sip10';\n readonly name: string;\n readonly canTransfer: boolean;\n readonly assetId: string;\n readonly contractId: string;\n readonly imageCanonicalUri: string;\n readonly symbol: string;\n}\nexport type NativeCryptoAsset = BtcAsset | StxAsset;\nexport type FungibleCryptoAsset =\n | NativeCryptoAsset\n | Sip10Asset\n | Brc20Asset\n | Src20Asset\n | RuneAsset;\n\n// NFT asset types\nexport interface BaseNonFungibleCryptoAsset extends BaseCryptoAsset {\n readonly category: 'nft';\n readonly protocol: NonFungibleCryptoAssetProtocol;\n}\nexport interface InscriptionAsset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'inscription';\n readonly id: string;\n readonly mimeType: InscriptionMimeType;\n readonly number: number;\n readonly address: string;\n readonly title: string;\n readonly txid: string;\n readonly output: string;\n readonly offset: string;\n readonly preview: string;\n readonly src: string;\n readonly thumbnailSrc?: string;\n readonly value: string;\n readonly genesisBlockHash: string;\n readonly genesisTimestamp: number;\n readonly genesisBlockHeight: number;\n}\nexport interface StampAsset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'stamp';\n readonly stamp: number;\n readonly stampUrl: string;\n readonly stampExplorerUrl: string;\n readonly blockHeight: number;\n}\n\nexport type NonFungibleCryptoAsset = InscriptionAsset | StampAsset | Sip9Asset;\n\nexport type CryptoAsset = FungibleCryptoAsset | NonFungibleCryptoAsset;\n\nexport interface FungibleAssetId {\n protocol: FungibleCryptoAssetProtocol;\n id: string;\n}\n","import { Money } from '../money.model';\nimport { BaseNonFungibleCryptoAsset } from './asset.model';\n\nexport const sip9ContentTypes = [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/bmp',\n 'image/tiff',\n 'image/avif',\n 'video/mp4',\n 'video/webm',\n 'video/mov',\n 'video/quicktime',\n 'video/avi',\n 'video/x-msvideo',\n 'video/ogg',\n 'audio/mpeg',\n 'audio/mp3',\n 'audio/wav',\n 'audio/x-wav',\n 'audio/ogg',\n 'audio/aac',\n 'audio/flac',\n 'audio/webm',\n 'model/gltf+json',\n 'model/gltf-binary',\n 'application/octet-stream',\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/pdf',\n 'application/json',\n 'text/javascript',\n 'application/javascript',\n 'application/zip',\n 'unknown',\n '',\n] as const;\n\nexport type Sip9ContentType = (typeof sip9ContentTypes)[number];\n\nexport interface Sip9Collection {\n name: string;\n collectionExplorerUrl: string;\n totalItems?: number;\n floorPrice?: Money;\n latestSale?: Money;\n}\n\nexport interface Sip9AssetContent {\n contentUrl: string;\n contentType: Sip9ContentType;\n}\n\nexport interface Sip9Attribute {\n traitType: string;\n value: any;\n rarityPercent?: number;\n}\n\nexport interface Sip9Asset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'sip9';\n readonly assetId: string;\n readonly contractId: string;\n readonly tokenId: number;\n readonly name: string;\n readonly description: string;\n readonly content: Sip9AssetContent;\n readonly attributes?: Sip9Attribute[];\n readonly collection?: Sip9Collection;\n readonly creator?: string;\n readonly rarityRank?: number;\n}\n","import { z } from 'zod';\n\n// Branded type for Bitcoin addresses\nexport type BitcoinAddress = string & { readonly __brand: unique symbol };\n\nexport const bitcoinUnitSchema = z.enum(['bitcoin', 'satoshi']);\nexport type BitcoinUnit = z.infer<typeof bitcoinUnitSchema>;\n\nexport type BitcoinUnitSymbol = 'BTC' | 'sat';\n\nexport interface BitcoinUnitInfo {\n name: BitcoinUnit;\n symbol: BitcoinUnitSymbol;\n decimal: string;\n}\n","export const bnsContractAddress = {\n mainnet: 'SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF',\n testnet: 'ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M',\n};\n\nexport const bnsContractName = 'BNS-V2';\n\nexport interface BnsName {\n owner: string;\n name: string;\n namespace: string;\n fullName: string;\n renewalHeight: number;\n registeredAtBlockNumber: number;\n}\n\nexport interface BnsProfile {\n bnsName: BnsName;\n profileData: BnsProfileData;\n}\n\nexport interface BnsProfileData {\n name?: string;\n bio?: string;\n website?: string;\n pfpUrl?: string;\n location?: string;\n addresses?: BnsProfileDataAddresses;\n}\n\nexport interface BnsProfileDataAddresses {\n bitcoinPayment?: string;\n bitcoinOrdinal?: string;\n solana?: string;\n ethereum?: string;\n}\n","import type BigNumber from 'bignumber.js';\n\nexport interface AverageBitcoinFeeRates {\n fastestFee: BigNumber;\n halfHourFee: BigNumber;\n hourFee: BigNumber;\n}\n\nexport const btcTxTimeMap: Record<keyof AverageBitcoinFeeRates, string> = {\n fastestFee: '~10 – 20min',\n halfHourFee: '~30 min',\n hourFee: '~1 hour+',\n};\n\nexport enum BtcFeeType {\n High = 'High',\n Standard = 'Standard',\n Low = 'Low',\n}\n","import { Blockchain } from '../types';\nimport { StacksFeeEstimate } from './stacks-fees.model';\n\nexport enum FeeTypes {\n Low,\n Middle,\n High,\n Custom,\n Unknown,\n}\n\nexport enum FeeCalculationTypes {\n Api = 'api',\n Default = 'default',\n DefaultSimulated = 'default-simulated',\n FeesCapped = 'fees-capped',\n TokenTransferSpecific = 'token-transfer-specific',\n}\n\nexport interface Fees {\n blockchain: Blockchain;\n estimates: StacksFeeEstimate[];\n calculation: FeeCalculationTypes;\n}\n","import { Money } from '../money.model';\nimport { Blockchain } from '../types';\n\nexport const transactionFeeTiers = ['low', 'standard', 'high'] as const;\nexport type TransactionFeeTier = (typeof transactionFeeTiers)[number];\n\nexport interface TransactionFees {\n readonly chain: Blockchain;\n readonly options: Record<TransactionFeeTier, TransactionFeeQuote>;\n}\n\nexport const transactionFeeQuoteType = [\n 'flat',\n 'bitcoinFeeRate',\n 'stacksFeeRate',\n 'evm1559',\n] as const;\nexport type TransactionFeeQuoteType = (typeof transactionFeeQuoteType)[number];\n\nexport interface BaseTransactionFeeQuote {\n readonly type: TransactionFeeQuoteType;\n readonly value: Money;\n}\n\nexport interface FlatTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'flat';\n}\n\nexport interface BitcoinTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'bitcoinFeeRate';\n readonly rate: number;\n readonly rateUnit: 'sats/vB';\n readonly estimatedTxSize: number;\n readonly sizeUnit: 'vB';\n}\n\nexport interface StacksTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'stacksFeeRate';\n readonly rate: number;\n readonly rateUnit: 'µSTX/byte';\n readonly estimatedTxSize: number;\n readonly sizeUnit: 'byte';\n}\n\nexport interface EvmTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'evm1559';\n readonly baseFeePerGas: Money;\n readonly priorityFeePerGas: Money;\n readonly gasLimit: number;\n}\n\nexport type TransactionFeeQuote =\n | FlatTransactionFeeQuote\n | BitcoinTransactionFeeQuote\n | StacksTransactionFeeQuote\n | EvmTransactionFeeQuote;\n","/**\n * Inscriptions contain arbitrary data. When retrieving an inscription, it should be\n * classified into one of the types below, indicating that the app can handle it\n * appropriately and securely. Inscriptions of types not ready to be handled by the\n * app should be classified as \"other\".\n */\nexport const inscriptionMimeTypes = [\n 'audio',\n 'gltf',\n 'html',\n 'image',\n 'svg',\n 'text',\n 'video',\n 'other',\n] as const;\n\nexport type InscriptionMimeType = (typeof inscriptionMimeTypes)[number];\n","import type { Currency, QuoteCurrency } from './currencies.model';\nimport type { Money } from './money.model';\n\ninterface MarketPair {\n readonly base: Currency;\n readonly quote: QuoteCurrency;\n}\n\nexport function createMarketPair(base: Currency, quote: QuoteCurrency): MarketPair {\n return Object.freeze({ base, quote });\n}\n\nexport function formatMarketPair({ base, quote }: MarketPair) {\n return `${base}/${quote}`;\n}\n\nexport interface MarketData {\n readonly pair: MarketPair;\n readonly price: Money;\n}\n\nexport function createMarketData(pair: MarketPair, price: Money): MarketData {\n if (pair.quote !== price.symbol)\n throw new Error('Cannot create market data when price does not match quote');\n return Object.freeze({ pair, price });\n}\n\nexport const historicalPeriods = ['1d', '1w', '1m', '3m', '6m', '1y'] as const;\nexport type HistoricalPeriod = (typeof historicalPeriods)[number];\n\nexport interface MarketPriceSnapshot {\n price: Money;\n timestamp: number;\n}\n\nexport interface MarketPriceHistory {\n period: HistoricalPeriod;\n changePercentage: number;\n prices: MarketPriceSnapshot[];\n}\n\nexport interface MarketStats {\n readonly priceChange: Partial<Record<HistoricalPeriod, number | null>>;\n readonly marketCap?: number;\n}\n","import { z } from 'zod';\n\nimport { Blockchain } from '../types';\nimport { networkConfigurationSchema } from './network.schema';\n\nexport const HIRO_API_BASE_URL_MAINNET = 'https://api.hiro.so';\nexport const HIRO_API_BASE_URL_TESTNET = 'https://api.testnet.hiro.so';\nexport const HIRO_API_BASE_URL_NAKAMOTO_TESTNET = 'https://api.nakamoto.testnet.hiro.so';\n\nexport const HIRO_API_BASE_URL_MAINNET_EXTENDED = 'https://api.hiro.so/extended/v1';\nexport const HIRO_API_BASE_URL_TESTNET_EXTENDED = 'https://api.testnet.hiro.so/extended';\n\nexport const BITCOIN_API_BASE_URL_MAINNET = 'https://leather.mempool.space/api';\nexport const BITCOIN_API_BASE_URL_TESTNET3 = 'https://leather.mempool.space/testnet/api';\nexport const BITCOIN_API_BASE_URL_TESTNET4 = 'https://leather.mempool.space/testnet4/api';\nexport const BITCOIN_API_BASE_URL_SIGNET = 'https://mempool.space/signet/api';\n\nexport const BESTINSLOT_API_BASE_URL_MAINNET = 'https://leatherapi.bestinslot.xyz/v3';\nexport const BESTINSLOT_API_BASE_URL_TESTNET = 'https://leatherapi_testnet.bestinslot.xyz/v3';\n\nexport const BNS_V2_API_BASE_URL = 'https://api.bnsv2.com';\n\nexport const EMILY_API_BASE_URL_MAINNET = 'https://sbtc-emily.com';\nexport const EMILY_API_BASE_URL_TESTNET = 'https://beta.sbtc-emily.com';\nexport const EMILY_API_BASE_URL_DEVENV = 'http://localhost:3031';\n\n// Copied from @stacks/transactions to avoid dependencies\nexport enum ChainId {\n Testnet = 2147483648,\n Mainnet = 1,\n}\n\nexport enum WalletDefaultNetworkConfigurationIds {\n mainnet = 'mainnet',\n testnet = 'testnet',\n testnet4 = 'testnet4',\n signet = 'signet',\n sbtcTestnet = 'sbtcTestnet',\n sbtcDevenv = 'sbtcDevenv',\n devnet = 'devnet',\n}\n\nexport const defaultNetworkConfigurationsSchema = z.enum([\n 'mainnet',\n 'testnet',\n 'testnet4',\n 'signet',\n 'sbtcTestnet',\n 'sbtcDevenv',\n 'devnet',\n]);\nexport type DefaultNetworkConfigurations = z.infer<typeof defaultNetworkConfigurationsSchema>;\n\nexport const supportedBlockchains = ['stacks', 'bitcoin'] as const;\n\nexport type SupportedBlockchains = (typeof supportedBlockchains)[number];\n\nexport const networkModes = ['mainnet', 'testnet'] as const;\nexport const testnetModes = ['testnet', 'regtest', 'signet'] as const;\n\nexport const bitcoinNetworks = ['mainnet', 'testnet3', 'testnet4', 'regtest', 'signet'] as const;\nexport type BitcoinNetwork = (typeof bitcoinNetworks)[number];\n\nexport type NetworkModes = (typeof networkModes)[number];\ntype BitcoinTestnetModes = (typeof testnetModes)[number];\n\nexport function bitcoinNetworkToNetworkMode(network: BitcoinNetwork): BitcoinNetworkModes {\n switch (network) {\n case 'mainnet':\n return 'mainnet';\n case 'testnet3':\n return 'testnet';\n case 'testnet4':\n return 'testnet';\n case 'regtest':\n return 'regtest';\n case 'signet':\n return 'signet';\n default:\n // TODO: Needs exhaustive check. Cannot import 'assertUnreachable' since 'utils' package depends on 'models'.\n // Ideally this function should live in utils, but it's currently widely used in the extension.\n throw new Error(`Unhandled case: ${network}`);\n }\n}\n\nexport type BitcoinNetworkModes = NetworkModes | BitcoinTestnetModes;\n\ninterface BaseChainConfig {\n blockchain: Blockchain;\n}\n\nexport interface BitcoinChainConfig extends BaseChainConfig {\n blockchain: 'bitcoin';\n bitcoinUrl: string;\n bitcoinNetwork: BitcoinNetwork;\n mode: BitcoinNetworkModes;\n}\n\nexport interface StacksChainConfig extends BaseChainConfig {\n blockchain: 'stacks';\n url: string;\n /** The chainId of the network (or parent network if this is a subnet) */\n chainId: ChainId;\n /** An additional chainId for subnets. Indicated a subnet if defined and is mainly used for signing. */\n subnetChainId?: ChainId;\n}\n\nexport type NetworkConfiguration = z.infer<typeof networkConfigurationSchema>;\n\nconst networkMainnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.mainnet,\n name: 'Mainnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Mainnet,\n url: HIRO_API_BASE_URL_MAINNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'mainnet',\n mode: 'mainnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_MAINNET,\n },\n },\n};\n\nconst networkTestnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.testnet,\n name: 'Testnet3',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'testnet3',\n mode: 'testnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_TESTNET3,\n },\n },\n};\n\nconst networkTestnet4: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.testnet4,\n name: 'Testnet4',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'testnet4',\n mode: 'testnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_TESTNET4,\n },\n },\n};\n\nconst networkSignet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.signet,\n name: 'Signet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'signet',\n mode: 'signet',\n bitcoinUrl: BITCOIN_API_BASE_URL_SIGNET,\n },\n },\n};\n\nconst networkSbtcTestnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.sbtcTestnet,\n name: 'sBTC Testnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'https://beta.sbtc-mempool.tech/api/proxy',\n },\n },\n};\n\nconst networkSbtcDevenv: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.sbtcDevenv,\n name: 'sBTC Devenv',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: 'http://localhost:3999',\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'http://localhost:3000/api/proxy',\n },\n },\n};\n\nconst networkDevnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.devnet,\n name: 'Devnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: 'http://localhost:3999',\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'http://localhost:18443',\n },\n },\n};\n\nexport const defaultCurrentNetwork: NetworkConfiguration = networkMainnet;\n\nexport const defaultNetworksKeyedById: Record<\n WalletDefaultNetworkConfigurationIds,\n NetworkConfiguration\n> = {\n [WalletDefaultNetworkConfigurationIds.mainnet]: networkMainnet,\n [WalletDefaultNetworkConfigurationIds.testnet4]: networkTestnet4,\n [WalletDefaultNetworkConfigurationIds.testnet]: networkTestnet,\n [WalletDefaultNetworkConfigurationIds.signet]: networkSignet,\n [WalletDefaultNetworkConfigurationIds.sbtcTestnet]: networkSbtcTestnet,\n [WalletDefaultNetworkConfigurationIds.sbtcDevenv]: networkSbtcDevenv,\n [WalletDefaultNetworkConfigurationIds.devnet]: networkDevnet,\n};\n","import { z } from 'zod';\n\nimport { bitcoinNetworks, networkModes, testnetModes } from './network.model';\n\nexport const bitcoinNetworkModesSchema = z.enum([...networkModes, ...testnetModes]);\n\nexport const bitcoinNetworkSchema = z.enum([...bitcoinNetworks]);\n\nexport const networkConfigurationSchema = z.object({\n name: z.string(),\n id: z.string(),\n chain: z.object({\n bitcoin: z.object({\n blockchain: z.literal('bitcoin'),\n bitcoinUrl: z.string(),\n bitcoinNetwork: bitcoinNetworkSchema,\n mode: bitcoinNetworkModesSchema,\n }),\n stacks: z.object({\n blockchain: z.literal('stacks'),\n url: z.string(),\n chainId: z.number(),\n subnetChainId: z.number().optional(),\n }),\n }),\n});\n","import { z } from 'zod';\n\nimport { Blockchain } from './types';\n\nexport const accountDisplayPreferenceSchema = z.enum(['native-segwit', 'taproot', 'bns', 'stacks']);\nexport type AccountDisplayPreference = z.infer<typeof accountDisplayPreferenceSchema>;\n\nexport interface AccountDisplayPreferenceInfo {\n type: AccountDisplayPreference;\n blockchain: Blockchain;\n name: string;\n}\n\nexport const analyticsPreferenceSchema = z.enum(['consent-given', 'rejects-tracking']);\nexport type AnalyticsPreference = z.infer<typeof analyticsPreferenceSchema>;\n\nexport const emailAddressSchema = z.email({ error: 'Invalid email address' });\nexport type EmailAddress = z.infer<typeof emailAddressSchema>;\n","export const StacksProtocolIds = {\n alex: 'alex',\n arkadiko: 'arkadiko',\n bitflow: 'bitflow',\n fastPool: 'fast-pool',\n granite: 'granite',\n hermetica: 'hermetica',\n sbtcBridge: 'sbtc-bridge',\n stackingDao: 'stacking-dao',\n velar: 'velar',\n xverse: 'xverse',\n zest: 'zest',\n} as const;\n\nexport type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds];\n\nexport interface StacksProtocol {\n readonly id: StacksProtocolId;\n readonly name: string;\n readonly url: string;\n readonly logo: string;\n readonly description?: string;\n}\n\nexport const stacksProtocolActions = [\n 'swap',\n 'add-liquidity',\n 'remove-liquidity',\n 'stake',\n 'unstake',\n 'stack',\n 'unstack',\n 'deposit',\n 'withdraw',\n 'borrow',\n 'repay',\n 'claim-rewards',\n 'bridge',\n] as const;\n\nexport type StacksProtocolAction = (typeof stacksProtocolActions)[number];\n","import { CryptoAssetId } from '../assets/asset-id.model';\nimport { NativeCryptoAsset, Sip10Asset } from '../assets/asset.model';\nimport { Money } from '../money.model';\nimport type { StacksProtocol } from '../protocols/stacks-protocol.model';\n\nexport type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset;\n\nexport interface SwapAsset {\n readonly asset: SwappableFungibleCryptoAsset;\n readonly providerAssets: SwapProviderAsset[];\n}\n\nexport const swapProviderIds = [\n 'bitflow-sdk',\n 'bitflow-bff-api',\n 'sbtc-bridge',\n 'alex-sdk',\n 'velar-sdk',\n] as const;\nexport type SwapProviderId = (typeof swapProviderIds)[number];\n\nexport interface SwapProvider {\n readonly id: SwapProviderId;\n readonly isAggregator: boolean;\n}\n\nexport interface SwapProviderAsset {\n readonly providerId: SwapProviderId;\n readonly providerAssetId: string;\n readonly assetId: CryptoAssetId;\n}\n\nexport type SwapQuote =\n | AlexSdkSwapQuote\n | VelarSdkSwapQuote\n | BitflowSdkSwapQuote\n | BitflowBffApiSwapQuote\n | SbtcBridgeSwapQuote;\n\nexport interface BaseSwapQuote {\n readonly executionType: SwapExecutionType;\n readonly providerId: SwapProviderId;\n readonly baseAsset: SwappableFungibleCryptoAsset;\n readonly targetAsset: SwappableFungibleCryptoAsset;\n readonly baseAmount: Money;\n readonly targetAmount: Money;\n readonly dexPath: StacksProtocol[];\n readonly assetPath: (NativeCryptoAsset | Sip10Asset)[];\n readonly isExecutable: boolean;\n readonly executionConstraints: ExecutionConstraint[];\n readonly createdAt: Date;\n}\n\nexport interface ExecutionConstraint {\n readonly reason: 'minimum-threshold-not-met' | 'maximum-threshold-exceeded';\n readonly threshold: Money;\n}\n\nexport interface AlexSdkSwapQuote extends BaseSwapQuote {\n readonly providerId: 'alex-sdk';\n readonly providerQuoteData: {\n baseProviderAssetId: string;\n targetProviderAssetId: string;\n alexSdkAmmRoute: unknown;\n };\n}\n\nexport interface VelarSdkSwapQuote extends BaseSwapQuote {\n readonly providerId: 'velar-sdk';\n providerQuoteData: {\n readonly baseProviderAssetId: string;\n readonly targetProviderAssetId: string;\n };\n}\n\nexport interface BitflowSdkSwapQuote extends BaseSwapQuote {\n readonly providerId: 'bitflow-sdk';\n readonly providerQuoteData: {\n bitflowSdkSelectedSwapRoute: unknown;\n };\n}\n\nexport interface BitflowBffApiSwapQuote extends BaseSwapQuote {\n readonly providerId: 'bitflow-bff-api';\n readonly providerQuoteData: {\n bitflowBffApiQuote: unknown;\n };\n}\nexport interface SbtcBridgeSwapQuote extends BaseSwapQuote {\n readonly providerId: 'sbtc-bridge';\n readonly providerQuoteData: {\n signerSweepTxFeeSats: number;\n };\n}\n\nexport const swapExecutionTypes = ['stacks-contract-call', 'sbtc-bridge-deposit'] as const;\nexport type SwapExecutionType = (typeof swapExecutionTypes)[number];\n\nexport interface BaseSwapExecutionData {\n readonly executionType: SwapExecutionType;\n readonly providerId: SwapProviderId;\n readonly quote: SwapQuote;\n}\nexport interface StacksContractCallSwapExecutionData extends BaseSwapExecutionData {\n readonly executionType: 'stacks-contract-call';\n readonly contractAddress: string;\n readonly contractName: string;\n readonly functionName: string;\n readonly functionArgs: unknown[];\n readonly postConditions: unknown[];\n readonly postConditionMode?: unknown;\n}\nexport interface SbtcBridgeDepositSwapExecutionData extends BaseSwapExecutionData {\n readonly executionType: 'sbtc-bridge-deposit';\n}\nexport type SwapExecutionData =\n | StacksContractCallSwapExecutionData\n | SbtcBridgeDepositSwapExecutionData;\n","export interface TokenHolderSegment {\n readonly holderCount: number;\n readonly balance: number;\n readonly contracts: { readonly count: number; readonly balance: number };\n readonly multisigs: { readonly count: number; readonly balance: number };\n readonly standard: { readonly count: number; readonly balance: number };\n}\n\nexport interface TokenAnalytics {\n readonly circulatingSupply: number;\n readonly holderCount?: number;\n readonly distributionScore?: number;\n readonly trustScore?: number;\n readonly trendingScore?: number;\n readonly updatedAt: string;\n}\n\nexport const topHolderKeys = [1, 10, 50, 100, 200] as const;\nexport const percentileKeys = [10, 25, 50, 75] as const;\n\nexport type TokenTopHolderKey = (typeof topHolderKeys)[number];\nexport type TokenDistributionPercentileKey = (typeof percentileKeys)[number];\n\nexport interface TokenDistribution {\n readonly topHolders: Partial<Record<TokenTopHolderKey, TokenHolderSegment>>;\n readonly percentiles: Partial<Record<TokenDistributionPercentileKey, TokenHolderSegment>>;\n readonly updatedAt: string;\n}\n","import { StacksProtocolId, StacksProtocolIds } from '../protocols/stacks-protocol.model';\n\nexport const YieldProductKeys = {\n bitflowAmmLp: 'bitflow-amm-lp',\n bitflowAmmStaking: 'bitflow-amm-staking',\n zestBorrowMarket: 'zest-borrow-market',\n graniteV1Earn: 'granite-v1-earn',\n graniteV1Borrow: 'granite-v1-borrow',\n stackingDaoStstx: 'stackingdao-ststx',\n stackingDaoStstxbtc: 'stackingdao-ststxbtc',\n stackingDaoPooledStacking: 'stackingdao-pooled-stacking',\n lisaListx: 'lisa-listx',\n lisaLiquidStaking: 'lisa-liquid-staking',\n hermeticaUsdhStaking: 'hermetica-usdh-staking',\n velarAmmLp: 'velar-amm-lp',\n velarPerps: 'velar-perps',\n velarAmmLpFarming: 'velar-amm-lp-farming',\n fastPoolPooledStacking: 'fast-pool-pooled-stacking',\n xversePooledStacking: 'xverse-pooled-stacking',\n} as const;\nexport type YieldProductKey = (typeof YieldProductKeys)[keyof typeof YieldProductKeys];\n\nexport const YieldProductCategories = {\n AMM: 'amm',\n LENDING: 'lending',\n LIQUID_STACKING: 'liquid-stacking',\n POOLED_STACKING: 'pooled-stacking',\n STAKING: 'staking',\n PERPS: 'perps',\n} as const;\nexport type YieldProductCategory =\n (typeof YieldProductCategories)[keyof typeof YieldProductCategories];\n\nexport const YieldProductToProviderMap = {\n [YieldProductKeys.bitflowAmmLp]: StacksProtocolIds.bitflow,\n [YieldProductKeys.bitflowAmmStaking]: StacksProtocolIds.bitflow,\n [YieldProductKeys.zestBorrowMarket]: StacksProtocolIds.zest,\n [YieldProductKeys.graniteV1Earn]: StacksProtocolIds.granite,\n [YieldProductKeys.graniteV1Borrow]: StacksProtocolIds.granite,\n [YieldProductKeys.stackingDaoStstx]: StacksProtocolIds.stackingDao,\n [YieldProductKeys.stackingDaoStstxbtc]: StacksProtocolIds.stackingDao,\n [YieldProductKeys.stackingDaoPooledStacking]: StacksProtocolIds.stackingDao,\n [YieldProductKeys.lisaListx]: StacksProtocolIds.alex,\n [YieldProductKeys.lisaLiquidStaking]: StacksProtocolIds.alex,\n [YieldProductKeys.hermeticaUsdhStaking]: StacksProtocolIds.hermetica,\n [YieldProductKeys.velarAmmLp]: StacksProtocolIds.velar,\n [YieldProductKeys.velarPerps]: StacksProtocolIds.velar,\n [YieldProductKeys.velarAmmLpFarming]: StacksProtocolIds.velar,\n [YieldProductKeys.fastPoolPooledStacking]: StacksProtocolIds.fastPool,\n [YieldProductKeys.xversePooledStacking]: StacksProtocolIds.xverse,\n} as const;\n\nexport type YieldProduct = BaseYieldProduct | PooledStackingYieldProduct;\n\nexport interface BaseYieldProduct {\n readonly key: YieldProductKey;\n readonly provider: StacksProtocolId;\n readonly category: YieldProductCategory;\n readonly name: string;\n readonly url: string;\n}\n\n// normalizes pooled stacking product data\nexport interface PooledStackingYieldProduct extends BaseYieldProduct {\n readonly category: 'pooled-stacking';\n readonly stackerCount: number;\n}\n","import { StacksProtocol, StacksProtocolId } from '../../protocols/stacks-protocol.model';\nimport type {\n BitflowAmmLpPosition,\n BitflowAmmStakingPosition,\n} from '../providers/bitflow-position.model';\nimport type {\n GraniteV1BorrowPosition,\n GraniteV1EarnPosition,\n} from '../providers/granite-position.model';\nimport type {\n StackingDaoPooledStackingPosition,\n StackingDaoStStxBtcPosition,\n StackingDaoStStxPosition,\n} from '../providers/stacking-dao-position.model';\nimport type { ZestBorrowMarketPosition } from '../providers/zest-position.model';\nimport type { YieldPosition } from '../yield-position.model';\nimport {\n YieldProduct,\n YieldProductCategories,\n YieldProductCategory,\n YieldProductKey,\n YieldProductKeys,\n YieldProductToProviderMap,\n} from '../yield-product.model';\n\nexport function isBitflowAmmLpPosition(pos: YieldPosition): pos is BitflowAmmLpPosition {\n return pos.product === YieldProductKeys.bitflowAmmLp;\n}\n\nexport function isBitflowAmmStakingPosition(pos: YieldPosition): pos is BitflowAmmStakingPosition {\n return pos.product === YieldProductKeys.bitflowAmmStaking;\n}\n\nexport function isZestPosition(pos: YieldPosition): pos is ZestBorrowMarketPosition {\n return pos.product === YieldProductKeys.zestBorrowMarket;\n}\n\nexport function isGraniteEarnPosition(pos: YieldPosition): pos is GraniteV1EarnPosition {\n return pos.product === YieldProductKeys.graniteV1Earn;\n}\n\nexport function isGraniteBorrowPosition(pos: YieldPosition): pos is GraniteV1BorrowPosition {\n return pos.product === YieldProductKeys.graniteV1Borrow;\n}\n\nexport function isStackingDaoStStxPosition(pos: YieldPosition): pos is StackingDaoStStxPosition {\n return pos.product === YieldProductKeys.stackingDaoStstx;\n}\n\nexport function isStackingDaoStStxBtcPosition(\n pos: YieldPosition\n): pos is StackingDaoStStxBtcPosition {\n return pos.product === YieldProductKeys.stackingDaoStstxbtc;\n}\n\nexport function isStackingDaoPooledPosition(\n pos: YieldPosition\n): pos is StackingDaoPooledStackingPosition {\n return pos.product === YieldProductKeys.stackingDaoPooledStacking;\n}\n\nexport function filterPositionsByProvider(\n positions: YieldPosition[],\n provider: StacksProtocolId\n): YieldPosition[] {\n return positions.filter(p => p.provider === provider);\n}\n\nexport function filterPositionsByProduct(\n positions: YieldPosition[],\n product: YieldProductKey\n): YieldPosition[] {\n return positions.filter(p => p.product === product);\n}\n\nexport function filterPositionsByCategory(\n positions: YieldPosition[],\n products: YieldProduct[],\n category: YieldProductCategory\n): YieldPosition[] {\n const productMap = new Map(products.map(p => [p.key, p]));\n return positions.filter(pos => productMap.get(pos.product)?.category === category);\n}\n\nexport function sortPositionsByBalance(\n positions: YieldPosition[],\n ascending = false\n): YieldPosition[] {\n return [...positions].sort((a, b) => {\n const diff = a.totalBalance.amount.comparedTo(b.totalBalance.amount);\n return ascending ? diff : -diff;\n });\n}\n\nexport function sortPositionsByApy(positions: YieldPosition[], ascending = false): YieldPosition[] {\n return [...positions].sort((a, b) => {\n const apyA = a.apy;\n const apyB = b.apy;\n return ascending ? apyA - apyB : apyB - apyA;\n });\n}\n\nexport function sortPositionsByUpdateTime(\n positions: YieldPosition[],\n ascending = false\n): YieldPosition[] {\n return [...positions].sort((a, b) => {\n const timeA = 'updatedAt' in a && a.updatedAt instanceof Date ? a.updatedAt.getTime() : 0;\n const timeB = 'updatedAt' in b && b.updatedAt instanceof Date ? b.updatedAt.getTime() : 0;\n return ascending ? timeA - timeB : timeB - timeA;\n });\n}\n\nexport function getProviderForProduct(product: YieldProductKey): StacksProtocolId {\n return YieldProductToProviderMap[product];\n}\n\nexport function getCategoryForProduct(product: YieldProduct): YieldProductCategory {\n return product.category;\n}\n\nexport function isProductInProvider(product: YieldProductKey, provider: StacksProtocolId): boolean {\n return YieldProductToProviderMap[product] === provider;\n}\n\nexport function getProductsForProvider(provider: StacksProtocolId): YieldProductKey[] {\n return Object.entries(YieldProductToProviderMap)\n .filter(([_, p]) => p === provider)\n .map(([product]) => product as YieldProductKey);\n}\n\nexport function getProductsInCategory(\n products: YieldProduct[],\n category: YieldProductCategory\n): YieldProduct[] {\n return products.filter(p => p.category === category);\n}\n\nexport function groupPositionsByProvider(\n positions: YieldPosition[]\n): Record<StacksProtocolId, YieldPosition[]> {\n const grouped: Partial<Record<StacksProtocolId, YieldPosition[]>> = {};\n\n for (const position of positions) {\n const provider = position.provider;\n if (!grouped[provider]) {\n grouped[provider] = [];\n }\n grouped[provider].push(position);\n }\n\n return grouped as Record<StacksProtocolId, YieldPosition[]>;\n}\n\nexport function groupPositionsByCategory(\n positions: YieldPosition[],\n products: YieldProduct[]\n): Record<string, YieldPosition[]> {\n const grouped: Record<string, YieldPosition[]> = {};\n const productMap = new Map(products.map(p => [p.key, p]));\n\n for (const position of positions) {\n const product = productMap.get(position.product);\n if (!product) continue;\n\n const category = product.category;\n if (!grouped[category]) {\n grouped[category] = [];\n }\n grouped[category].push(position);\n }\n\n return grouped;\n}\n\nexport function getPositionsInCategories(\n positions: YieldPosition[],\n products: YieldProduct[],\n categories: YieldProductCategory[]\n): YieldPosition[] {\n const categorySet = new Set(categories);\n const productMap = new Map(products.map(p => [p.key, p]));\n return positions.filter(pos => {\n const product = productMap.get(pos.product);\n return product && categorySet.has(product.category);\n });\n}\n\nexport function hasPositionsInProvider(\n positions: YieldPosition[],\n provider: StacksProtocolId\n): boolean {\n return positions.some(p => p.provider === provider);\n}\n\nexport function hasPositionsInCategory(\n positions: YieldPosition[],\n products: YieldProduct[],\n category: YieldProductCategory\n): boolean {\n const productMap = new Map(products.map(p => [p.key, p]));\n return positions.some(pos => productMap.get(pos.product)?.category === category);\n}\n\nexport function enrichPositionWithProvider<T extends YieldPosition>(\n position: T,\n provider: StacksProtocol\n): T & { providerData: StacksProtocol } {\n return { ...position, providerData: provider };\n}\n\nexport function enrichPositionWithProduct<T extends YieldPosition>(\n position: T,\n product: YieldProduct\n): T & { productData: YieldProduct } {\n return { ...position, productData: product };\n}\n\nexport function enrichPositionWithMetadata<T extends YieldPosition>(\n position: T,\n provider: StacksProtocol,\n product: YieldProduct\n): T & { providerData: StacksProtocol; productData: YieldProduct } {\n return { ...position, providerData: provider, productData: product };\n}\n\nexport function getCategoryDisplayName(category: YieldProductCategory): string {\n const displayNames: Record<YieldProductCategory, string> = {\n [YieldProductCategories.AMM]: 'Liquidity Pools',\n [YieldProductCategories.LENDING]: 'Lending & Borrowing',\n [YieldProductCategories.LIQUID_STACKING]: 'Liquid Stacking',\n [YieldProductCategories.POOLED_STACKING]: 'Pooled Stacking',\n [YieldProductCategories.STAKING]: 'Staking',\n [YieldProductCategories.PERPS]: 'Perpetuals',\n };\n return displayNames[category] || category;\n}\n"],"mappings":"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"}
{"version":3,"file":"index.js","names":["btcTxTimeMap: Record<keyof AverageBitcoinFeeRates, string>","networkMainnet: NetworkConfiguration","networkTestnet: NetworkConfiguration","networkTestnet4: NetworkConfiguration","networkSignet: NetworkConfiguration","networkSbtcTestnet: NetworkConfiguration","networkSbtcDevenv: NetworkConfiguration","networkDevnet: NetworkConfiguration","defaultCurrentNetwork: NetworkConfiguration","defaultNetworksKeyedById: Record<\n WalletDefaultNetworkConfigurationIds,\n NetworkConfiguration\n>","grouped: Partial<Record<StacksProtocolId, YieldPosition[]>>","grouped: Record<string, YieldPosition[]>"],"sources":["../src/account.model.ts","../src/activity/activity-level.model.ts","../src/input-currency-mode.model.ts","../src/activity/activity-status.model.ts","../src/activity/activity-type.model.ts","../src/assets/asset-type-guards.ts","../src/assets/asset.model.ts","../src/assets/sip9-asset.model.ts","../src/bitcoin.model.ts","../src/bns.model.ts","../src/fees/bitcoin-fees.model.ts","../src/fees/fees.model.ts","../src/fees/transaction-fees.model.ts","../src/inscription-mime-type.model.ts","../src/market.model.ts","../src/network/network.model.ts","../src/network/network.schema.ts","../src/settings.model.ts","../src/protocols/stacks-protocol.model.ts","../src/swap/swap.model.ts","../src/token-analytics.model.ts","../src/yield/yield-product.model.ts","../src/yield/helpers/yield.helpers.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const walletIdSchema = z.object({\n fingerprint: z.string(),\n});\n\nexport const accountIdSchema = walletIdSchema.and(z.object({ accountIndex: z.number() }));\n\nexport const bitcoinAddressInfoSchema = z.object({\n taprootDescriptor: z.string(),\n nativeSegwitDescriptor: z.string(),\n zeroIndexTaprootPayerAddress: z.string().optional(),\n zeroIndexNativeSegwitPayerAddress: z.string().optional(),\n});\n\nexport const stacksAddressInfoSchema = z.object({\n stxAddress: z.string(),\n});\n\nexport const accountAddressesSchema = z.object({\n id: accountIdSchema,\n bitcoin: bitcoinAddressInfoSchema.optional(),\n stacks: stacksAddressInfoSchema.optional(),\n});\n\nexport type WalletId = z.infer<typeof walletIdSchema>;\nexport type AccountId = z.infer<typeof accountIdSchema>;\n\nexport type BitcoinAddressInfo = z.infer<typeof bitcoinAddressInfoSchema>;\nexport type StacksAddressInfo = z.infer<typeof stacksAddressInfoSchema>;\nexport type AccountAddresses = z.infer<typeof accountAddressesSchema>;\n","export const ActivityLevels = {\n account: 'account',\n app: 'app',\n} as const;\nexport type ActivityLevel = keyof typeof ActivityLevels;\n","export type InputCurrencyMode = 'crypto' | 'quote';\n\nexport function whenInputCurrencyMode<TValue>(mode: InputCurrencyMode) {\n return <TMode extends Record<InputCurrencyMode, TValue>>(\n modes: TMode\n ): TMode[InputCurrencyMode] => modes[mode];\n}\n","export const OnChainActivityStatuses = {\n pending: 'pending',\n success: 'success',\n failed: 'failed',\n} as const;\nexport type OnChainActivityStatus = keyof typeof OnChainActivityStatuses;\n","export const OnChainActivityTypes = {\n deploySmartContract: 'deploySmartContract',\n executeSmartContract: 'executeSmartContract',\n lockAsset: 'lockAsset',\n sendAsset: 'sendAsset',\n receiveAsset: 'receiveAsset',\n swapAssets: 'swapAssets',\n} as const;\nexport type OnChainActivityType = keyof typeof OnChainActivityTypes;\n\nexport const WalletActivityTypes = {\n connectApp: 'connectApp',\n signMessage: 'signMessage',\n} as const;\nexport type WalletActivityType = keyof typeof WalletActivityTypes;\n\nexport const GeneralActivityTypes = {\n walletAdded: 'walletAdded',\n receiveAnnouncement: 'receiveAnnouncement',\n featureWaitlistNotification: 'featureWaitlistNotification',\n} as const;\nexport type GeneralActivityType = keyof typeof GeneralActivityTypes;\n\nexport type ActivityType = OnChainActivityType | WalletActivityType | GeneralActivityType;\n","import {\n Brc20Asset,\n BtcAsset,\n CryptoAsset,\n FungibleCryptoAsset,\n InscriptionAsset,\n NativeCryptoAsset,\n NonFungibleCryptoAsset,\n RuneAsset,\n Sip10Asset,\n Src20Asset,\n StampAsset,\n StxAsset,\n} from './asset.model';\nimport { Sip9Asset } from './sip9-asset.model';\n\nexport function isFungibleAsset(asset: CryptoAsset): asset is FungibleCryptoAsset {\n return asset.category === 'fungible';\n}\n\nexport function isNonFungibleAsset(asset: CryptoAsset): asset is NonFungibleCryptoAsset {\n return asset.category === 'nft';\n}\n\nexport function isBtcAsset(asset: CryptoAsset): asset is BtcAsset {\n return asset.protocol === 'nativeBtc';\n}\n\nexport function isStxAsset(asset: CryptoAsset): asset is StxAsset {\n return asset.protocol === 'nativeStx';\n}\n\nexport function isNativeAsset(asset: CryptoAsset): asset is NativeCryptoAsset {\n return isBtcAsset(asset) || isStxAsset(asset);\n}\n\nexport function isSip10Asset(asset: CryptoAsset): asset is Sip10Asset {\n return asset.protocol === 'sip10';\n}\n\nexport function isSwappableAsset(asset: CryptoAsset): asset is NativeCryptoAsset | Sip10Asset {\n return isNativeAsset(asset) || isSip10Asset(asset);\n}\n\nexport function isBrc20Asset(asset: CryptoAsset): asset is Brc20Asset {\n return asset.protocol === 'brc20';\n}\n\nexport function isSrc20Asset(asset: CryptoAsset): asset is Src20Asset {\n return asset.protocol === 'src20';\n}\n\nexport function isRuneAsset(asset: CryptoAsset): asset is RuneAsset {\n return asset.protocol === 'rune';\n}\n\nexport function isInscriptionAsset(asset: CryptoAsset): asset is InscriptionAsset {\n return asset.protocol === 'inscription';\n}\n\nexport function isStampAsset(asset: CryptoAsset): asset is StampAsset {\n return asset.protocol === 'stamp';\n}\n\nexport function isSip9Asset(asset: CryptoAsset): asset is Sip9Asset {\n return asset.protocol === 'sip9';\n}\n","import { InscriptionMimeType } from '../inscription-mime-type.model';\nimport { Sip9Asset } from './sip9-asset.model';\n\nexport const CryptoAssetChains = {\n bitcoin: 'bitcoin',\n stacks: 'stacks',\n} as const;\nexport const CryptoAssetCategories = {\n fungible: 'fungible',\n nft: 'nft',\n} as const;\nexport const FungibleCryptoAssetProtocols = {\n nativeBtc: 'nativeBtc',\n nativeStx: 'nativeStx',\n sip10: 'sip10',\n brc20: 'brc20',\n src20: 'src20',\n rune: 'rune',\n} as const;\nexport const NonFungibleCryptoAssetProtocols = {\n stamp: 'stamp',\n sip9: 'sip9',\n inscription: 'inscription',\n} as const;\nexport const CryptoAssetProtocols = {\n ...FungibleCryptoAssetProtocols,\n ...NonFungibleCryptoAssetProtocols,\n} as const;\n\nexport type CryptoAssetChain = keyof typeof CryptoAssetChains;\nexport type CryptoAssetCategory = keyof typeof CryptoAssetCategories;\nexport type FungibleCryptoAssetProtocol = keyof typeof FungibleCryptoAssetProtocols;\nexport type NonFungibleCryptoAssetProtocol = keyof typeof NonFungibleCryptoAssetProtocols;\nexport type CryptoAssetProtocol = FungibleCryptoAssetProtocol | NonFungibleCryptoAssetProtocol;\n\nexport interface BaseCryptoAsset {\n readonly chain: CryptoAssetChain;\n readonly category: CryptoAssetCategory;\n readonly protocol: CryptoAssetProtocol;\n}\n\n// Fungible asset types\ninterface BaseFungibleCryptoAsset extends BaseCryptoAsset {\n readonly category: 'fungible';\n readonly protocol: FungibleCryptoAssetProtocol;\n readonly symbol: string;\n readonly decimals: number;\n readonly hasMemo: boolean;\n}\nexport interface BtcAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'nativeBtc';\n readonly name: 'Bitcoin';\n readonly symbol: 'BTC';\n}\nexport interface StxAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'nativeStx';\n readonly name: 'Stacks';\n readonly symbol: 'STX';\n}\nexport interface Brc20Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'brc20';\n readonly symbol: string;\n}\nexport interface Src20Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'src20';\n readonly id: string;\n readonly symbol: string;\n readonly deploy_tx: string;\n readonly deploy_img: string;\n}\nexport interface RuneAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'rune';\n readonly spacedRuneName: string;\n readonly runeName: string;\n readonly symbol: string;\n}\nexport interface Sip10Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'sip10';\n readonly name: string;\n readonly canTransfer: boolean;\n readonly assetId: string;\n readonly contractId: string;\n readonly imageCanonicalUri: string;\n readonly symbol: string;\n}\nexport type NativeCryptoAsset = BtcAsset | StxAsset;\nexport type FungibleCryptoAsset =\n | NativeCryptoAsset\n | Sip10Asset\n | Brc20Asset\n | Src20Asset\n | RuneAsset;\n\n// NFT asset types\nexport interface BaseNonFungibleCryptoAsset extends BaseCryptoAsset {\n readonly category: 'nft';\n readonly protocol: NonFungibleCryptoAssetProtocol;\n}\nexport interface InscriptionAsset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'inscription';\n readonly id: string;\n readonly mimeType: InscriptionMimeType;\n readonly number: number;\n readonly address: string;\n readonly title: string;\n readonly txid: string;\n readonly output: string;\n readonly offset: string;\n readonly preview: string;\n readonly src: string;\n readonly thumbnailSrc?: string;\n readonly value: string;\n readonly genesisBlockHash: string;\n readonly genesisTimestamp: number;\n readonly genesisBlockHeight: number;\n}\nexport interface StampAsset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'stamp';\n readonly stamp: number;\n readonly stampUrl: string;\n readonly stampExplorerUrl: string;\n readonly blockHeight: number;\n}\n\nexport type NonFungibleCryptoAsset = InscriptionAsset | StampAsset | Sip9Asset;\n\nexport type CryptoAsset = FungibleCryptoAsset | NonFungibleCryptoAsset;\n\nexport interface FungibleAssetId {\n protocol: FungibleCryptoAssetProtocol;\n id: string;\n}\n","import { Money } from '../money.model';\nimport { BaseNonFungibleCryptoAsset } from './asset.model';\n\nexport const sip9ContentTypes = [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/bmp',\n 'image/tiff',\n 'image/avif',\n 'video/mp4',\n 'video/webm',\n 'video/mov',\n 'video/quicktime',\n 'video/avi',\n 'video/x-msvideo',\n 'video/ogg',\n 'audio/mpeg',\n 'audio/mp3',\n 'audio/wav',\n 'audio/x-wav',\n 'audio/ogg',\n 'audio/aac',\n 'audio/flac',\n 'audio/webm',\n 'model/gltf+json',\n 'model/gltf-binary',\n 'application/octet-stream',\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/pdf',\n 'application/json',\n 'text/javascript',\n 'application/javascript',\n 'application/zip',\n 'unknown',\n '',\n] as const;\n\nexport type Sip9ContentType = (typeof sip9ContentTypes)[number];\n\nexport interface Sip9Collection {\n name: string;\n collectionExplorerUrl: string;\n totalItems?: number;\n floorPrice?: Money;\n latestSale?: Money;\n}\n\nexport interface Sip9AssetContent {\n contentUrl: string;\n contentType: Sip9ContentType;\n}\n\nexport interface Sip9Attribute {\n traitType: string;\n value: any;\n rarityPercent?: number;\n}\n\nexport interface Sip9Asset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'sip9';\n readonly assetId: string;\n readonly contractId: string;\n readonly tokenId: number;\n readonly name: string;\n readonly description: string;\n readonly content: Sip9AssetContent;\n readonly attributes?: Sip9Attribute[];\n readonly collection?: Sip9Collection;\n readonly creator?: string;\n readonly rarityRank?: number;\n}\n","import { z } from 'zod';\n\n// Branded type for Bitcoin addresses\nexport type BitcoinAddress = string & { readonly __brand: unique symbol };\n\nexport const bitcoinUnitSchema = z.enum(['bitcoin', 'satoshi']);\nexport type BitcoinUnit = z.infer<typeof bitcoinUnitSchema>;\n\nexport type BitcoinUnitSymbol = 'BTC' | 'sat';\n\nexport interface BitcoinUnitInfo {\n name: BitcoinUnit;\n symbol: BitcoinUnitSymbol;\n decimal: string;\n}\n","export const bnsContractAddress = {\n mainnet: 'SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF',\n testnet: 'ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M',\n};\n\nexport const bnsContractName = 'BNS-V2';\n\nexport interface BnsName {\n owner: string;\n name: string;\n namespace: string;\n fullName: string;\n renewalHeight: number;\n registeredAtBlockNumber: number;\n}\n\nexport interface BnsProfile {\n bnsName: BnsName;\n profileData: BnsProfileData;\n}\n\nexport interface BnsProfileData {\n name?: string;\n bio?: string;\n website?: string;\n pfpUrl?: string;\n location?: string;\n addresses?: BnsProfileDataAddresses;\n}\n\nexport interface BnsProfileDataAddresses {\n bitcoinPayment?: string;\n bitcoinOrdinal?: string;\n solana?: string;\n ethereum?: string;\n}\n","import type BigNumber from 'bignumber.js';\n\nexport interface AverageBitcoinFeeRates {\n fastestFee: BigNumber;\n halfHourFee: BigNumber;\n hourFee: BigNumber;\n}\n\nexport const btcTxTimeMap: Record<keyof AverageBitcoinFeeRates, string> = {\n fastestFee: '~10 – 20min',\n halfHourFee: '~30 min',\n hourFee: '~1 hour+',\n};\n\nexport enum BtcFeeType {\n High = 'High',\n Standard = 'Standard',\n Low = 'Low',\n}\n","import { Blockchain } from '../types';\nimport { StacksFeeEstimate } from './stacks-fees.model';\n\nexport enum FeeTypes {\n Low,\n Middle,\n High,\n Custom,\n Unknown,\n}\n\nexport enum FeeCalculationTypes {\n Api = 'api',\n Default = 'default',\n DefaultSimulated = 'default-simulated',\n FeesCapped = 'fees-capped',\n TokenTransferSpecific = 'token-transfer-specific',\n}\n\nexport interface Fees {\n blockchain: Blockchain;\n estimates: StacksFeeEstimate[];\n calculation: FeeCalculationTypes;\n}\n","import { Money } from '../money.model';\nimport { Blockchain } from '../types';\n\nexport const transactionFeeTiers = ['low', 'standard', 'high'] as const;\nexport type TransactionFeeTier = (typeof transactionFeeTiers)[number];\n\nexport interface TransactionFees<T extends TransactionFeeQuote = TransactionFeeQuote> {\n readonly chain: Blockchain;\n readonly options: Record<TransactionFeeTier, T>;\n}\n\nexport interface BitcoinTransactionFees extends TransactionFees<BitcoinTransactionFeeQuote> {\n readonly chain: 'bitcoin';\n}\n\nexport interface StacksTransactionFees extends TransactionFees<StacksTransactionFeeQuote> {\n readonly chain: 'stacks';\n}\n\nexport const transactionFeeQuoteType = [\n 'flat',\n 'bitcoinFeeRate',\n 'stacksFeeRate',\n 'evm1559',\n] as const;\nexport type TransactionFeeQuoteType = (typeof transactionFeeQuoteType)[number];\n\nexport interface BaseTransactionFeeQuote {\n readonly type: TransactionFeeQuoteType;\n readonly value: Money;\n}\n\nexport interface FlatTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'flat';\n}\n\nexport interface BitcoinTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'bitcoinFeeRate';\n readonly rate: number;\n readonly rateUnit: 'sats/vB';\n readonly estimatedTxSize: number;\n readonly sizeUnit: 'vB';\n}\n\nexport interface StacksTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'stacksFeeRate';\n readonly rate: number;\n readonly rateUnit: 'µSTX/byte';\n readonly estimatedTxSize: number;\n readonly sizeUnit: 'byte';\n}\n\nexport interface EvmTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'evm1559';\n readonly baseFeePerGas: Money;\n readonly priorityFeePerGas: Money;\n readonly gasLimit: number;\n}\n\nexport type TransactionFeeQuote =\n | FlatTransactionFeeQuote\n | BitcoinTransactionFeeQuote\n | StacksTransactionFeeQuote\n | EvmTransactionFeeQuote;\n","/**\n * Inscriptions contain arbitrary data. When retrieving an inscription, it should be\n * classified into one of the types below, indicating that the app can handle it\n * appropriately and securely. Inscriptions of types not ready to be handled by the\n * app should be classified as \"other\".\n */\nexport const inscriptionMimeTypes = [\n 'audio',\n 'gltf',\n 'html',\n 'image',\n 'svg',\n 'text',\n 'video',\n 'other',\n] as const;\n\nexport type InscriptionMimeType = (typeof inscriptionMimeTypes)[number];\n","import type { Currency, QuoteCurrency } from './currencies.model';\nimport type { Money } from './money.model';\n\ninterface MarketPair {\n readonly base: Currency;\n readonly quote: QuoteCurrency;\n}\n\nexport function createMarketPair(base: Currency, quote: QuoteCurrency): MarketPair {\n return Object.freeze({ base, quote });\n}\n\nexport function formatMarketPair({ base, quote }: MarketPair) {\n return `${base}/${quote}`;\n}\n\nexport interface MarketData {\n readonly pair: MarketPair;\n readonly price: Money;\n}\n\nexport function createMarketData(pair: MarketPair, price: Money): MarketData {\n if (pair.quote !== price.symbol)\n throw new Error('Cannot create market data when price does not match quote');\n return Object.freeze({ pair, price });\n}\n\nexport const historicalPeriods = ['1d', '1w', '1m', '3m', '6m', '1y'] as const;\nexport type HistoricalPeriod = (typeof historicalPeriods)[number];\n\nexport interface MarketPriceSnapshot {\n price: Money;\n timestamp: number;\n}\n\nexport interface MarketPriceHistory {\n period: HistoricalPeriod;\n changePercentage: number;\n prices: MarketPriceSnapshot[];\n}\n\nexport interface MarketStats {\n readonly priceChange: Partial<Record<HistoricalPeriod, number | null>>;\n readonly marketCap?: number;\n}\n","import { z } from 'zod';\n\nimport { Blockchain } from '../types';\nimport { networkConfigurationSchema } from './network.schema';\n\nexport const HIRO_API_BASE_URL_MAINNET = 'https://api.hiro.so';\nexport const HIRO_API_BASE_URL_TESTNET = 'https://api.testnet.hiro.so';\nexport const HIRO_API_BASE_URL_NAKAMOTO_TESTNET = 'https://api.nakamoto.testnet.hiro.so';\n\nexport const HIRO_API_BASE_URL_MAINNET_EXTENDED = 'https://api.hiro.so/extended/v1';\nexport const HIRO_API_BASE_URL_TESTNET_EXTENDED = 'https://api.testnet.hiro.so/extended';\n\nexport const BITCOIN_API_BASE_URL_MAINNET = 'https://leather.mempool.space/api';\nexport const BITCOIN_API_BASE_URL_TESTNET3 = 'https://leather.mempool.space/testnet/api';\nexport const BITCOIN_API_BASE_URL_TESTNET4 = 'https://leather.mempool.space/testnet4/api';\nexport const BITCOIN_API_BASE_URL_SIGNET = 'https://mempool.space/signet/api';\n\nexport const BESTINSLOT_API_BASE_URL_MAINNET = 'https://leatherapi.bestinslot.xyz/v3';\nexport const BESTINSLOT_API_BASE_URL_TESTNET = 'https://leatherapi_testnet.bestinslot.xyz/v3';\n\nexport const BNS_V2_API_BASE_URL = 'https://api.bnsv2.com';\n\nexport const EMILY_API_BASE_URL_MAINNET = 'https://sbtc-emily.com';\nexport const EMILY_API_BASE_URL_TESTNET = 'https://beta.sbtc-emily.com';\nexport const EMILY_API_BASE_URL_DEVENV = 'http://localhost:3031';\n\n// Copied from @stacks/transactions to avoid dependencies\nexport enum ChainId {\n Testnet = 2147483648,\n Mainnet = 1,\n}\n\nexport enum WalletDefaultNetworkConfigurationIds {\n mainnet = 'mainnet',\n testnet = 'testnet',\n testnet4 = 'testnet4',\n signet = 'signet',\n sbtcTestnet = 'sbtcTestnet',\n sbtcDevenv = 'sbtcDevenv',\n devnet = 'devnet',\n}\n\nexport const defaultNetworkConfigurationsSchema = z.enum([\n 'mainnet',\n 'testnet',\n 'testnet4',\n 'signet',\n 'sbtcTestnet',\n 'sbtcDevenv',\n 'devnet',\n]);\nexport type DefaultNetworkConfigurations = z.infer<typeof defaultNetworkConfigurationsSchema>;\n\nexport const supportedBlockchains = ['stacks', 'bitcoin'] as const;\n\nexport type SupportedBlockchains = (typeof supportedBlockchains)[number];\n\nexport const networkModes = ['mainnet', 'testnet'] as const;\nexport const testnetModes = ['testnet', 'regtest', 'signet'] as const;\n\nexport const bitcoinNetworks = ['mainnet', 'testnet3', 'testnet4', 'regtest', 'signet'] as const;\nexport type BitcoinNetwork = (typeof bitcoinNetworks)[number];\n\nexport type NetworkModes = (typeof networkModes)[number];\ntype BitcoinTestnetModes = (typeof testnetModes)[number];\n\nexport function bitcoinNetworkToNetworkMode(network: BitcoinNetwork): BitcoinNetworkModes {\n switch (network) {\n case 'mainnet':\n return 'mainnet';\n case 'testnet3':\n return 'testnet';\n case 'testnet4':\n return 'testnet';\n case 'regtest':\n return 'regtest';\n case 'signet':\n return 'signet';\n default:\n // TODO: Needs exhaustive check. Cannot import 'assertUnreachable' since 'utils' package depends on 'models'.\n // Ideally this function should live in utils, but it's currently widely used in the extension.\n throw new Error(`Unhandled case: ${network}`);\n }\n}\n\nexport type BitcoinNetworkModes = NetworkModes | BitcoinTestnetModes;\n\ninterface BaseChainConfig {\n blockchain: Blockchain;\n}\n\nexport interface BitcoinChainConfig extends BaseChainConfig {\n blockchain: 'bitcoin';\n bitcoinUrl: string;\n bitcoinNetwork: BitcoinNetwork;\n mode: BitcoinNetworkModes;\n}\n\nexport interface StacksChainConfig extends BaseChainConfig {\n blockchain: 'stacks';\n url: string;\n /** The chainId of the network (or parent network if this is a subnet) */\n chainId: ChainId;\n /** An additional chainId for subnets. Indicated a subnet if defined and is mainly used for signing. */\n subnetChainId?: ChainId;\n}\n\nexport type NetworkConfiguration = z.infer<typeof networkConfigurationSchema>;\n\nconst networkMainnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.mainnet,\n name: 'Mainnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Mainnet,\n url: HIRO_API_BASE_URL_MAINNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'mainnet',\n mode: 'mainnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_MAINNET,\n },\n },\n};\n\nconst networkTestnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.testnet,\n name: 'Testnet3',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'testnet3',\n mode: 'testnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_TESTNET3,\n },\n },\n};\n\nconst networkTestnet4: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.testnet4,\n name: 'Testnet4',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'testnet4',\n mode: 'testnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_TESTNET4,\n },\n },\n};\n\nconst networkSignet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.signet,\n name: 'Signet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'signet',\n mode: 'signet',\n bitcoinUrl: BITCOIN_API_BASE_URL_SIGNET,\n },\n },\n};\n\nconst networkSbtcTestnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.sbtcTestnet,\n name: 'sBTC Testnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'https://beta.sbtc-mempool.tech/api/proxy',\n },\n },\n};\n\nconst networkSbtcDevenv: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.sbtcDevenv,\n name: 'sBTC Devenv',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: 'http://localhost:3999',\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'http://localhost:3000/api/proxy',\n },\n },\n};\n\nconst networkDevnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.devnet,\n name: 'Devnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: 'http://localhost:3999',\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'http://localhost:18443',\n },\n },\n};\n\nexport const defaultCurrentNetwork: NetworkConfiguration = networkMainnet;\n\nexport const defaultNetworksKeyedById: Record<\n WalletDefaultNetworkConfigurationIds,\n NetworkConfiguration\n> = {\n [WalletDefaultNetworkConfigurationIds.mainnet]: networkMainnet,\n [WalletDefaultNetworkConfigurationIds.testnet4]: networkTestnet4,\n [WalletDefaultNetworkConfigurationIds.testnet]: networkTestnet,\n [WalletDefaultNetworkConfigurationIds.signet]: networkSignet,\n [WalletDefaultNetworkConfigurationIds.sbtcTestnet]: networkSbtcTestnet,\n [WalletDefaultNetworkConfigurationIds.sbtcDevenv]: networkSbtcDevenv,\n [WalletDefaultNetworkConfigurationIds.devnet]: networkDevnet,\n};\n","import { z } from 'zod';\n\nimport { bitcoinNetworks, networkModes, testnetModes } from './network.model';\n\nexport const bitcoinNetworkModesSchema = z.enum([...networkModes, ...testnetModes]);\n\nexport const bitcoinNetworkSchema = z.enum([...bitcoinNetworks]);\n\nexport const networkConfigurationSchema = z.object({\n name: z.string(),\n id: z.string(),\n chain: z.object({\n bitcoin: z.object({\n blockchain: z.literal('bitcoin'),\n bitcoinUrl: z.string(),\n bitcoinNetwork: bitcoinNetworkSchema,\n mode: bitcoinNetworkModesSchema,\n }),\n stacks: z.object({\n blockchain: z.literal('stacks'),\n url: z.string(),\n chainId: z.number(),\n subnetChainId: z.number().optional(),\n }),\n }),\n});\n","import { z } from 'zod';\n\nimport { Blockchain } from './types';\n\nexport const accountDisplayPreferenceSchema = z.enum(['native-segwit', 'taproot', 'bns', 'stacks']);\nexport type AccountDisplayPreference = z.infer<typeof accountDisplayPreferenceSchema>;\n\nexport interface AccountDisplayPreferenceInfo {\n type: AccountDisplayPreference;\n blockchain: Blockchain;\n name: string;\n}\n\nexport const analyticsPreferenceSchema = z.enum(['consent-given', 'rejects-tracking']);\nexport type AnalyticsPreference = z.infer<typeof analyticsPreferenceSchema>;\n\nexport const emailAddressSchema = z.email({ error: 'Invalid email address' });\nexport type EmailAddress = z.infer<typeof emailAddressSchema>;\n","export const StacksProtocolIds = {\n alex: 'alex',\n arkadiko: 'arkadiko',\n bitflow: 'bitflow',\n fastPool: 'fast-pool',\n granite: 'granite',\n hermetica: 'hermetica',\n sbtcBridge: 'sbtc-bridge',\n stackingDao: 'stacking-dao',\n velar: 'velar',\n xverse: 'xverse',\n zest: 'zest',\n} as const;\n\nexport type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds];\n\nexport interface StacksProtocol {\n readonly id: StacksProtocolId;\n readonly name: string;\n readonly url: string;\n readonly logo: string;\n readonly description?: string;\n}\n\nexport const stacksProtocolActions = [\n 'swap',\n 'add-liquidity',\n 'remove-liquidity',\n 'stake',\n 'unstake',\n 'stack',\n 'unstack',\n 'deposit',\n 'withdraw',\n 'borrow',\n 'repay',\n 'claim-rewards',\n 'bridge',\n] as const;\n\nexport type StacksProtocolAction = (typeof stacksProtocolActions)[number];\n","import { CryptoAssetId } from '../assets/asset-id.model';\nimport { NativeCryptoAsset, Sip10Asset } from '../assets/asset.model';\nimport { Money } from '../money.model';\nimport type { StacksProtocol } from '../protocols/stacks-protocol.model';\n\nexport type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset;\n\nexport interface SwapAsset {\n readonly asset: SwappableFungibleCryptoAsset;\n readonly providerAssets: SwapProviderAsset[];\n}\n\nexport const swapProviderIds = [\n 'bitflow-sdk',\n 'bitflow-bff-api',\n 'sbtc-bridge',\n 'alex-sdk',\n 'velar-sdk',\n] as const;\nexport type SwapProviderId = (typeof swapProviderIds)[number];\n\nexport interface SwapProvider {\n readonly id: SwapProviderId;\n readonly isAggregator: boolean;\n}\n\nexport interface SwapProviderAsset {\n readonly providerId: SwapProviderId;\n readonly providerAssetId: string;\n readonly assetId: CryptoAssetId;\n}\n\nexport type SwapQuote =\n | AlexSdkSwapQuote\n | VelarSdkSwapQuote\n | BitflowSdkSwapQuote\n | BitflowBffApiSwapQuote\n | SbtcBridgeSwapQuote;\n\nexport interface BaseSwapQuote {\n readonly executionType: SwapExecutionType;\n readonly providerId: SwapProviderId;\n readonly baseAsset: SwappableFungibleCryptoAsset;\n readonly targetAsset: SwappableFungibleCryptoAsset;\n readonly baseAmount: Money;\n readonly targetAmount: Money;\n readonly dexPath: StacksProtocol[];\n readonly assetPath: (NativeCryptoAsset | Sip10Asset)[];\n readonly isExecutable: boolean;\n readonly executionConstraints: ExecutionConstraint[];\n readonly createdAt: Date;\n}\n\nexport interface ExecutionConstraint {\n readonly reason: 'minimum-threshold-not-met' | 'maximum-threshold-exceeded';\n readonly threshold: Money;\n}\n\nexport interface AlexSdkSwapQuote extends BaseSwapQuote {\n readonly providerId: 'alex-sdk';\n readonly providerQuoteData: {\n baseProviderAssetId: string;\n targetProviderAssetId: string;\n alexSdkAmmRoute: unknown;\n };\n}\n\nexport interface VelarSdkSwapQuote extends BaseSwapQuote {\n readonly providerId: 'velar-sdk';\n providerQuoteData: {\n readonly baseProviderAssetId: string;\n readonly targetProviderAssetId: string;\n };\n}\n\nexport interface BitflowSdkSwapQuote extends BaseSwapQuote {\n readonly providerId: 'bitflow-sdk';\n readonly providerQuoteData: {\n bitflowSdkSelectedSwapRoute: unknown;\n };\n}\n\nexport interface BitflowBffApiSwapQuote extends BaseSwapQuote {\n readonly providerId: 'bitflow-bff-api';\n readonly providerQuoteData: {\n bitflowBffApiQuote: unknown;\n };\n}\nexport interface SbtcBridgeSwapQuote extends BaseSwapQuote {\n readonly providerId: 'sbtc-bridge';\n readonly providerQuoteData: {\n signerSweepTxFeeSats: number;\n };\n}\n\nexport const swapExecutionTypes = ['stacks-contract-call', 'sbtc-bridge-deposit'] as const;\nexport type SwapExecutionType = (typeof swapExecutionTypes)[number];\n\nexport interface BaseSwapExecutionData {\n readonly executionType: SwapExecutionType;\n readonly providerId: SwapProviderId;\n readonly quote: SwapQuote;\n}\nexport interface StacksContractCallSwapExecutionData extends BaseSwapExecutionData {\n readonly executionType: 'stacks-contract-call';\n readonly contractAddress: string;\n readonly contractName: string;\n readonly functionName: string;\n readonly functionArgs: unknown[];\n readonly postConditions: unknown[];\n readonly postConditionMode?: unknown;\n}\nexport interface SbtcBridgeDepositSwapExecutionData extends BaseSwapExecutionData {\n readonly executionType: 'sbtc-bridge-deposit';\n}\nexport type SwapExecutionData =\n | StacksContractCallSwapExecutionData\n | SbtcBridgeDepositSwapExecutionData;\n","export interface TokenHolderSegment {\n readonly holderCount: number;\n readonly balance: number;\n readonly contracts: { readonly count: number; readonly balance: number };\n readonly multisigs: { readonly count: number; readonly balance: number };\n readonly standard: { readonly count: number; readonly balance: number };\n}\n\nexport interface TokenAnalytics {\n readonly circulatingSupply: number;\n readonly holderCount?: number;\n readonly distributionScore?: number;\n readonly trustScore?: number;\n readonly trendingScore?: number;\n readonly updatedAt: string;\n}\n\nexport const topHolderKeys = [1, 10, 50, 100, 200] as const;\nexport const percentileKeys = [10, 25, 50, 75] as const;\n\nexport type TokenTopHolderKey = (typeof topHolderKeys)[number];\nexport type TokenDistributionPercentileKey = (typeof percentileKeys)[number];\n\nexport interface TokenDistribution {\n readonly topHolders: Partial<Record<TokenTopHolderKey, TokenHolderSegment>>;\n readonly percentiles: Partial<Record<TokenDistributionPercentileKey, TokenHolderSegment>>;\n readonly updatedAt: string;\n}\n","import { StacksProtocolId, StacksProtocolIds } from '../protocols/stacks-protocol.model';\n\nexport const YieldProductKeys = {\n bitflowAmmLp: 'bitflow-amm-lp',\n bitflowAmmStaking: 'bitflow-amm-staking',\n zestBorrowMarket: 'zest-borrow-market',\n graniteV1Earn: 'granite-v1-earn',\n graniteV1Borrow: 'granite-v1-borrow',\n stackingDaoStstx: 'stackingdao-ststx',\n stackingDaoStstxbtc: 'stackingdao-ststxbtc',\n stackingDaoPooledStacking: 'stackingdao-pooled-stacking',\n lisaListx: 'lisa-listx',\n lisaLiquidStaking: 'lisa-liquid-staking',\n hermeticaUsdhStaking: 'hermetica-usdh-staking',\n velarAmmLp: 'velar-amm-lp',\n velarPerps: 'velar-perps',\n velarAmmLpFarming: 'velar-amm-lp-farming',\n fastPoolPooledStacking: 'fast-pool-pooled-stacking',\n xversePooledStacking: 'xverse-pooled-stacking',\n} as const;\nexport type YieldProductKey = (typeof YieldProductKeys)[keyof typeof YieldProductKeys];\n\nexport const YieldProductCategories = {\n AMM: 'amm',\n LENDING: 'lending',\n LIQUID_STACKING: 'liquid-stacking',\n POOLED_STACKING: 'pooled-stacking',\n STAKING: 'staking',\n PERPS: 'perps',\n} as const;\nexport type YieldProductCategory =\n (typeof YieldProductCategories)[keyof typeof YieldProductCategories];\n\nexport const YieldProductToProviderMap = {\n [YieldProductKeys.bitflowAmmLp]: StacksProtocolIds.bitflow,\n [YieldProductKeys.bitflowAmmStaking]: StacksProtocolIds.bitflow,\n [YieldProductKeys.zestBorrowMarket]: StacksProtocolIds.zest,\n [YieldProductKeys.graniteV1Earn]: StacksProtocolIds.granite,\n [YieldProductKeys.graniteV1Borrow]: StacksProtocolIds.granite,\n [YieldProductKeys.stackingDaoStstx]: StacksProtocolIds.stackingDao,\n [YieldProductKeys.stackingDaoStstxbtc]: StacksProtocolIds.stackingDao,\n [YieldProductKeys.stackingDaoPooledStacking]: StacksProtocolIds.stackingDao,\n [YieldProductKeys.lisaListx]: StacksProtocolIds.alex,\n [YieldProductKeys.lisaLiquidStaking]: StacksProtocolIds.alex,\n [YieldProductKeys.hermeticaUsdhStaking]: StacksProtocolIds.hermetica,\n [YieldProductKeys.velarAmmLp]: StacksProtocolIds.velar,\n [YieldProductKeys.velarPerps]: StacksProtocolIds.velar,\n [YieldProductKeys.velarAmmLpFarming]: StacksProtocolIds.velar,\n [YieldProductKeys.fastPoolPooledStacking]: StacksProtocolIds.fastPool,\n [YieldProductKeys.xversePooledStacking]: StacksProtocolIds.xverse,\n} as const;\n\nexport type YieldProduct = BaseYieldProduct | PooledStackingYieldProduct;\n\nexport interface BaseYieldProduct {\n readonly key: YieldProductKey;\n readonly provider: StacksProtocolId;\n readonly category: YieldProductCategory;\n readonly name: string;\n readonly url: string;\n}\n\n// normalizes pooled stacking product data\nexport interface PooledStackingYieldProduct extends BaseYieldProduct {\n readonly category: 'pooled-stacking';\n readonly stackerCount: number;\n}\n","import { StacksProtocol, StacksProtocolId } from '../../protocols/stacks-protocol.model';\nimport type {\n BitflowAmmLpPosition,\n BitflowAmmStakingPosition,\n} from '../providers/bitflow-position.model';\nimport type {\n GraniteV1BorrowPosition,\n GraniteV1EarnPosition,\n} from '../providers/granite-position.model';\nimport type {\n StackingDaoPooledStackingPosition,\n StackingDaoStStxBtcPosition,\n StackingDaoStStxPosition,\n} from '../providers/stacking-dao-position.model';\nimport type { ZestBorrowMarketPosition } from '../providers/zest-position.model';\nimport type { YieldPosition } from '../yield-position.model';\nimport {\n YieldProduct,\n YieldProductCategories,\n YieldProductCategory,\n YieldProductKey,\n YieldProductKeys,\n YieldProductToProviderMap,\n} from '../yield-product.model';\n\nexport function isBitflowAmmLpPosition(pos: YieldPosition): pos is BitflowAmmLpPosition {\n return pos.product === YieldProductKeys.bitflowAmmLp;\n}\n\nexport function isBitflowAmmStakingPosition(pos: YieldPosition): pos is BitflowAmmStakingPosition {\n return pos.product === YieldProductKeys.bitflowAmmStaking;\n}\n\nexport function isZestPosition(pos: YieldPosition): pos is ZestBorrowMarketPosition {\n return pos.product === YieldProductKeys.zestBorrowMarket;\n}\n\nexport function isGraniteEarnPosition(pos: YieldPosition): pos is GraniteV1EarnPosition {\n return pos.product === YieldProductKeys.graniteV1Earn;\n}\n\nexport function isGraniteBorrowPosition(pos: YieldPosition): pos is GraniteV1BorrowPosition {\n return pos.product === YieldProductKeys.graniteV1Borrow;\n}\n\nexport function isStackingDaoStStxPosition(pos: YieldPosition): pos is StackingDaoStStxPosition {\n return pos.product === YieldProductKeys.stackingDaoStstx;\n}\n\nexport function isStackingDaoStStxBtcPosition(\n pos: YieldPosition\n): pos is StackingDaoStStxBtcPosition {\n return pos.product === YieldProductKeys.stackingDaoStstxbtc;\n}\n\nexport function isStackingDaoPooledPosition(\n pos: YieldPosition\n): pos is StackingDaoPooledStackingPosition {\n return pos.product === YieldProductKeys.stackingDaoPooledStacking;\n}\n\nexport function filterPositionsByProvider(\n positions: YieldPosition[],\n provider: StacksProtocolId\n): YieldPosition[] {\n return positions.filter(p => p.provider === provider);\n}\n\nexport function filterPositionsByProduct(\n positions: YieldPosition[],\n product: YieldProductKey\n): YieldPosition[] {\n return positions.filter(p => p.product === product);\n}\n\nexport function filterPositionsByCategory(\n positions: YieldPosition[],\n products: YieldProduct[],\n category: YieldProductCategory\n): YieldPosition[] {\n const productMap = new Map(products.map(p => [p.key, p]));\n return positions.filter(pos => productMap.get(pos.product)?.category === category);\n}\n\nexport function sortPositionsByBalance(\n positions: YieldPosition[],\n ascending = false\n): YieldPosition[] {\n return [...positions].sort((a, b) => {\n const diff = a.totalBalance.amount.comparedTo(b.totalBalance.amount);\n return ascending ? diff : -diff;\n });\n}\n\nexport function sortPositionsByApy(positions: YieldPosition[], ascending = false): YieldPosition[] {\n return [...positions].sort((a, b) => {\n const apyA = a.apy;\n const apyB = b.apy;\n return ascending ? apyA - apyB : apyB - apyA;\n });\n}\n\nexport function sortPositionsByUpdateTime(\n positions: YieldPosition[],\n ascending = false\n): YieldPosition[] {\n return [...positions].sort((a, b) => {\n const timeA = 'updatedAt' in a && a.updatedAt instanceof Date ? a.updatedAt.getTime() : 0;\n const timeB = 'updatedAt' in b && b.updatedAt instanceof Date ? b.updatedAt.getTime() : 0;\n return ascending ? timeA - timeB : timeB - timeA;\n });\n}\n\nexport function getProviderForProduct(product: YieldProductKey): StacksProtocolId {\n return YieldProductToProviderMap[product];\n}\n\nexport function getCategoryForProduct(product: YieldProduct): YieldProductCategory {\n return product.category;\n}\n\nexport function isProductInProvider(product: YieldProductKey, provider: StacksProtocolId): boolean {\n return YieldProductToProviderMap[product] === provider;\n}\n\nexport function getProductsForProvider(provider: StacksProtocolId): YieldProductKey[] {\n return Object.entries(YieldProductToProviderMap)\n .filter(([_, p]) => p === provider)\n .map(([product]) => product as YieldProductKey);\n}\n\nexport function getProductsInCategory(\n products: YieldProduct[],\n category: YieldProductCategory\n): YieldProduct[] {\n return products.filter(p => p.category === category);\n}\n\nexport function groupPositionsByProvider(\n positions: YieldPosition[]\n): Record<StacksProtocolId, YieldPosition[]> {\n const grouped: Partial<Record<StacksProtocolId, YieldPosition[]>> = {};\n\n for (const position of positions) {\n const provider = position.provider;\n if (!grouped[provider]) {\n grouped[provider] = [];\n }\n grouped[provider].push(position);\n }\n\n return grouped as Record<StacksProtocolId, YieldPosition[]>;\n}\n\nexport function groupPositionsByCategory(\n positions: YieldPosition[],\n products: YieldProduct[]\n): Record<string, YieldPosition[]> {\n const grouped: Record<string, YieldPosition[]> = {};\n const productMap = new Map(products.map(p => [p.key, p]));\n\n for (const position of positions) {\n const product = productMap.get(position.product);\n if (!product) continue;\n\n const category = product.category;\n if (!grouped[category]) {\n grouped[category] = [];\n }\n grouped[category].push(position);\n }\n\n return grouped;\n}\n\nexport function getPositionsInCategories(\n positions: YieldPosition[],\n products: YieldProduct[],\n categories: YieldProductCategory[]\n): YieldPosition[] {\n const categorySet = new Set(categories);\n const productMap = new Map(products.map(p => [p.key, p]));\n return positions.filter(pos => {\n const product = productMap.get(pos.product);\n return product && categorySet.has(product.category);\n });\n}\n\nexport function hasPositionsInProvider(\n positions: YieldPosition[],\n provider: StacksProtocolId\n): boolean {\n return positions.some(p => p.provider === provider);\n}\n\nexport function hasPositionsInCategory(\n positions: YieldPosition[],\n products: YieldProduct[],\n category: YieldProductCategory\n): boolean {\n const productMap = new Map(products.map(p => [p.key, p]));\n return positions.some(pos => productMap.get(pos.product)?.category === category);\n}\n\nexport function enrichPositionWithProvider<T extends YieldPosition>(\n position: T,\n provider: StacksProtocol\n): T & { providerData: StacksProtocol } {\n return { ...position, providerData: provider };\n}\n\nexport function enrichPositionWithProduct<T extends YieldPosition>(\n position: T,\n product: YieldProduct\n): T & { productData: YieldProduct } {\n return { ...position, productData: product };\n}\n\nexport function enrichPositionWithMetadata<T extends YieldPosition>(\n position: T,\n provider: StacksProtocol,\n product: YieldProduct\n): T & { providerData: StacksProtocol; productData: YieldProduct } {\n return { ...position, providerData: provider, productData: product };\n}\n\nexport function getCategoryDisplayName(category: YieldProductCategory): string {\n const displayNames: Record<YieldProductCategory, string> = {\n [YieldProductCategories.AMM]: 'Liquidity Pools',\n [YieldProductCategories.LENDING]: 'Lending & Borrowing',\n [YieldProductCategories.LIQUID_STACKING]: 'Liquid Stacking',\n [YieldProductCategories.POOLED_STACKING]: 'Pooled Stacking',\n [YieldProductCategories.STAKING]: 'Staking',\n [YieldProductCategories.PERPS]: 'Perpetuals',\n };\n return displayNames[category] || category;\n}\n"],"mappings":"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"}

@@ -5,3 +5,3 @@ {

"description": "Leather models and types",
"version": "0.55.0",
"version": "0.56.0",
"license": "MIT",

@@ -32,4 +32,4 @@ "homepage": "https://github.com/leather-io/mono/tree/dev/packages/models",

"typescript": "5.9.3",
"@leather.io/tsconfig-config": "0.11.1",
"@leather.io/prettier-config": "0.9.0"
"@leather.io/prettier-config": "0.9.0",
"@leather.io/tsconfig-config": "0.11.1"
},

@@ -36,0 +36,0 @@ "keywords": [

@@ -7,7 +7,15 @@ import { Money } from '../money.model';

export interface TransactionFees {
export interface TransactionFees<T extends TransactionFeeQuote = TransactionFeeQuote> {
readonly chain: Blockchain;
readonly options: Record<TransactionFeeTier, TransactionFeeQuote>;
readonly options: Record<TransactionFeeTier, T>;
}
export interface BitcoinTransactionFees extends TransactionFees<BitcoinTransactionFeeQuote> {
readonly chain: 'bitcoin';
}
export interface StacksTransactionFees extends TransactionFees<StacksTransactionFeeQuote> {
readonly chain: 'stacks';
}
export const transactionFeeQuoteType = [

@@ -14,0 +22,0 @@ 'flat',