@leather.io/models
Advanced tools
| export const StacksProtocolIds = { | ||
| alex: 'alex', | ||
| arkadiko: 'arkadiko', | ||
| bitflow: 'bitflow', | ||
| fastPool: 'fast-pool', | ||
| granite: 'granite', | ||
| hermetica: 'hermetica', | ||
| sbtcBridge: 'sbtc-bridge', | ||
| stackingDao: 'stacking-dao', | ||
| velar: 'velar', | ||
| xverse: 'xverse', | ||
| zest: 'zest', | ||
| } as const; | ||
| export type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds]; | ||
| export interface StacksProtocol { | ||
| readonly id: StacksProtocolId; | ||
| readonly name: string; | ||
| readonly url: string; | ||
| readonly logo: string; | ||
| readonly description?: string; | ||
| } | ||
| export const stacksProtocolActions = [ | ||
| 'swap', | ||
| 'add-liquidity', | ||
| 'remove-liquidity', | ||
| 'stake', | ||
| 'unstake', | ||
| 'stack', | ||
| 'unstack', | ||
| 'deposit', | ||
| 'withdraw', | ||
| 'borrow', | ||
| 'repay', | ||
| 'claim-rewards', | ||
| 'bridge', | ||
| ] as const; | ||
| export type StacksProtocolAction = (typeof stacksProtocolActions)[number]; |
| > @leather.io/models@0.53.0 build /home/runner/work/mono/mono/packages/models | ||
| > @leather.io/models@0.54.0 build /home/runner/work/mono/mono/packages/models | ||
| > tsdown | ||
@@ -10,7 +10,7 @@ | ||
| [34mℹ[39m Build start | ||
| [34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m23.02 kB[22m [2m│ gzip: 5.37 kB[22m | ||
| [34mℹ[39m [2mdist/[22mindex.js.map [2m52.03 kB[22m [2m│ gzip: 11.02 kB[22m | ||
| [34mℹ[39m [2mdist/[22mindex.d.ts.map [2m19.93 kB[22m [2m│ gzip: 7.73 kB[22m | ||
| [34mℹ[39m [2mdist/[22m[32m[1mindex.d.ts[22m[39m [2m51.71 kB[22m [2m│ gzip: 10.33 kB[22m | ||
| [34mℹ[39m 4 files, total: 146.68 kB | ||
| [32m✔[39m Build complete in [32m2770ms[39m | ||
| [34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m23.30 kB[22m [2m│ gzip: 5.49 kB[22m | ||
| [34mℹ[39m [2mdist/[22mindex.js.map [2m52.53 kB[22m [2m│ gzip: 11.14 kB[22m | ||
| [34mℹ[39m [2mdist/[22mindex.d.ts.map [2m20.03 kB[22m [2m│ gzip: 7.73 kB[22m | ||
| [34mℹ[39m [2mdist/[22m[32m[1mindex.d.ts[22m[39m [2m52.01 kB[22m [2m│ gzip: 10.43 kB[22m | ||
| [34mℹ[39m 4 files, total: 147.86 kB | ||
| [32m✔[39m Build complete in [32m2821ms[39m |
+7
-0
@@ -39,2 +39,9 @@ # Changelog | ||
| ## [0.54.0](https://github.com/leather-io/mono/compare/@leather.io/models-v0.53.0...@leather.io/models-v0.54.0) (2026-03-02) | ||
| ### Features | ||
| * **models,services:** unify SwapDex and YieldProvider into StacksProtocol model ([0d7f44c](https://github.com/leather-io/mono/commit/0d7f44cb2961c57aa0730066b39697e5ab7ca632)) | ||
| ## [0.53.0](https://github.com/leather-io/mono/compare/@leather.io/models-v0.52.0...@leather.io/models-v0.53.0) (2026-02-09) | ||
@@ -41,0 +48,0 @@ |
+49
-50
@@ -753,2 +753,27 @@ import { z } from "zod"; | ||
| //#endregion | ||
| //#region src/protocols/stacks-protocol.model.d.ts | ||
| declare const StacksProtocolIds: { | ||
| readonly alex: "alex"; | ||
| readonly arkadiko: "arkadiko"; | ||
| readonly bitflow: "bitflow"; | ||
| readonly fastPool: "fast-pool"; | ||
| readonly granite: "granite"; | ||
| readonly hermetica: "hermetica"; | ||
| readonly sbtcBridge: "sbtc-bridge"; | ||
| readonly stackingDao: "stacking-dao"; | ||
| readonly velar: "velar"; | ||
| readonly xverse: "xverse"; | ||
| readonly zest: "zest"; | ||
| }; | ||
| type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds]; | ||
| interface StacksProtocol { | ||
| readonly id: StacksProtocolId; | ||
| readonly name: string; | ||
| readonly url: string; | ||
| readonly logo: string; | ||
| readonly description?: string; | ||
| } | ||
| declare const stacksProtocolActions: readonly ["swap", "add-liquidity", "remove-liquidity", "stake", "unstake", "stack", "unstack", "deposit", "withdraw", "borrow", "repay", "claim-rewards", "bridge"]; | ||
| type StacksProtocolAction = (typeof stacksProtocolActions)[number]; | ||
| //#endregion | ||
| //#region src/swap/swap.model.d.ts | ||
@@ -779,3 +804,3 @@ type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset; | ||
| readonly targetAmount: Money; | ||
| readonly dexPath: SwapDex[]; | ||
| readonly dexPath: StacksProtocol[]; | ||
| readonly assetPath: (NativeCryptoAsset | Sip10Asset)[]; | ||
@@ -817,8 +842,2 @@ readonly isExecutable: boolean; | ||
| } | ||
| interface SwapDex { | ||
| readonly name: string; | ||
| readonly url: string; | ||
| readonly logo: string; | ||
| readonly description: string; | ||
| } | ||
| declare const swapExecutionTypes: readonly ["stacks-contract-call", "sbtc-bridge-deposit"]; | ||
@@ -857,3 +876,3 @@ type SwapExecutionType = (typeof swapExecutionTypes)[number]; | ||
| }; | ||
| readonly individuals: { | ||
| readonly standard: { | ||
| readonly count: number; | ||
@@ -998,22 +1017,2 @@ readonly balance: number; | ||
| //#endregion | ||
| //#region src/yield/yield-provider.model.d.ts | ||
| declare const YieldProviderKeys: { | ||
| readonly bitflow: "bitflow"; | ||
| readonly zest: "zest"; | ||
| readonly granite: "granite"; | ||
| readonly stackingDao: "stackingdao"; | ||
| readonly lisa: "lisa"; | ||
| readonly hermetica: "hermetica"; | ||
| readonly fastPool: "fast-pool"; | ||
| readonly xverse: "xverse"; | ||
| readonly velar: "velar"; | ||
| }; | ||
| type YieldProviderKey = (typeof YieldProviderKeys)[keyof typeof YieldProviderKeys]; | ||
| interface YieldProvider { | ||
| readonly key: YieldProviderKey; | ||
| readonly name: string; | ||
| readonly logo: string; | ||
| readonly url: string; | ||
| } | ||
| //#endregion | ||
| //#region src/yield/yield-product.model.d.ts | ||
@@ -1054,7 +1053,7 @@ declare const YieldProductKeys: { | ||
| readonly "granite-v1-borrow": "granite"; | ||
| readonly "stackingdao-ststx": "stackingdao"; | ||
| readonly "stackingdao-ststxbtc": "stackingdao"; | ||
| readonly "stackingdao-pooled-stacking": "stackingdao"; | ||
| readonly "lisa-listx": "lisa"; | ||
| readonly "lisa-liquid-staking": "lisa"; | ||
| readonly "stackingdao-ststx": "stacking-dao"; | ||
| readonly "stackingdao-ststxbtc": "stacking-dao"; | ||
| readonly "stackingdao-pooled-stacking": "stacking-dao"; | ||
| readonly "lisa-listx": "alex"; | ||
| readonly "lisa-liquid-staking": "alex"; | ||
| readonly "hermetica-usdh-staking": "hermetica"; | ||
@@ -1070,3 +1069,3 @@ readonly "velar-amm-lp": "velar"; | ||
| readonly key: YieldProductKey; | ||
| readonly provider: YieldProviderKey; | ||
| readonly provider: StacksProtocolId; | ||
| readonly category: YieldProductCategory; | ||
@@ -1084,3 +1083,3 @@ readonly name: string; | ||
| readonly id: string; | ||
| readonly provider: YieldProviderKey; | ||
| readonly provider: StacksProtocolId; | ||
| readonly product: YieldProductKey; | ||
@@ -1155,3 +1154,3 @@ readonly totalBalance: Money; | ||
| interface BaseStackingDaoLstPosition extends BaseYieldPosition { | ||
| provider: 'stackingdao'; | ||
| provider: 'stacking-dao'; | ||
| withdrawalsBalance: Money; | ||
@@ -1190,3 +1189,3 @@ lstHolding?: StackingDaoLstHolding; | ||
| interface StackingDaoPooledStackingPosition extends BasePooledStackingPosition { | ||
| provider: 'stackingdao'; | ||
| provider: 'stacking-dao'; | ||
| product: 'stackingdao-pooled-stacking'; | ||
@@ -1236,3 +1235,3 @@ } | ||
| interface LisaLiStxPosition extends BaseYieldPosition { | ||
| provider: 'lisa'; | ||
| provider: 'alex'; | ||
| product: 'lisa-listx'; | ||
@@ -1242,3 +1241,3 @@ holding: LisaLstHolding; | ||
| interface LisaLiquidStakingPosition extends BaseYieldPosition { | ||
| provider: 'lisa'; | ||
| provider: 'alex'; | ||
| product: 'lisa-liquid-staking'; | ||
@@ -1308,3 +1307,3 @@ holding: LisaLstHolding; | ||
| declare function isStackingDaoPooledPosition(pos: YieldPosition): pos is StackingDaoPooledStackingPosition; | ||
| declare function filterPositionsByProvider(positions: YieldPosition[], provider: YieldProviderKey): YieldPosition[]; | ||
| declare function filterPositionsByProvider(positions: YieldPosition[], provider: StacksProtocolId): YieldPosition[]; | ||
| declare function filterPositionsByProduct(positions: YieldPosition[], product: YieldProductKey): YieldPosition[]; | ||
@@ -1315,14 +1314,14 @@ declare function filterPositionsByCategory(positions: YieldPosition[], products: YieldProduct[], category: YieldProductCategory): YieldPosition[]; | ||
| declare function sortPositionsByUpdateTime(positions: YieldPosition[], ascending?: boolean): YieldPosition[]; | ||
| declare function getProviderForProduct(product: YieldProductKey): YieldProviderKey; | ||
| declare function getProviderForProduct(product: YieldProductKey): StacksProtocolId; | ||
| declare function getCategoryForProduct(product: YieldProduct): YieldProductCategory; | ||
| declare function isProductInProvider(product: YieldProductKey, provider: YieldProviderKey): boolean; | ||
| declare function getProductsForProvider(provider: YieldProviderKey): YieldProductKey[]; | ||
| declare function isProductInProvider(product: YieldProductKey, provider: StacksProtocolId): boolean; | ||
| declare function getProductsForProvider(provider: StacksProtocolId): YieldProductKey[]; | ||
| declare function getProductsInCategory(products: YieldProduct[], category: YieldProductCategory): YieldProduct[]; | ||
| declare function groupPositionsByProvider(positions: YieldPosition[]): Record<YieldProviderKey, YieldPosition[]>; | ||
| declare function groupPositionsByProvider(positions: YieldPosition[]): Record<StacksProtocolId, YieldPosition[]>; | ||
| declare function groupPositionsByCategory(positions: YieldPosition[], products: YieldProduct[]): Record<string, YieldPosition[]>; | ||
| declare function getPositionsInCategories(positions: YieldPosition[], products: YieldProduct[], categories: YieldProductCategory[]): YieldPosition[]; | ||
| declare function hasPositionsInProvider(positions: YieldPosition[], provider: YieldProviderKey): boolean; | ||
| declare function hasPositionsInProvider(positions: YieldPosition[], provider: StacksProtocolId): boolean; | ||
| declare function hasPositionsInCategory(positions: YieldPosition[], products: YieldProduct[], category: YieldProductCategory): boolean; | ||
| declare function enrichPositionWithProvider<T extends YieldPosition>(position: T, provider: YieldProvider): T & { | ||
| providerData: YieldProvider; | ||
| declare function enrichPositionWithProvider<T extends YieldPosition>(position: T, provider: StacksProtocol): T & { | ||
| providerData: StacksProtocol; | ||
| }; | ||
@@ -1332,4 +1331,4 @@ declare function enrichPositionWithProduct<T extends YieldPosition>(position: T, product: YieldProduct): T & { | ||
| }; | ||
| declare function enrichPositionWithMetadata<T extends YieldPosition>(position: T, provider: YieldProvider, product: YieldProduct): T & { | ||
| providerData: YieldProvider; | ||
| declare function enrichPositionWithMetadata<T extends YieldPosition>(position: T, provider: StacksProtocol, product: YieldProduct): T & { | ||
| providerData: StacksProtocol; | ||
| productData: YieldProduct; | ||
@@ -1339,3 +1338,3 @@ }; | ||
| //#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, BitflowSdkSwapQuote, Blockchain, 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, StacksTransactionFeeQuote, StacksTx, StacksTxStatus, StampAsset, StxAsset, StxBalance, StxTransfer, SupportedBlockchains, SwapAsset, SwapAssetsActivity, SwapDex, 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, YieldProvider, YieldProviderKey, YieldProviderKeys, 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, 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, BitcoinTransactionVectorInput, BitcoinTransactionVectorOutput, BitcoinTransactionVin, BitcoinTransactionVout, BitcoinTx, BitcoinUnit, BitcoinUnitInfo, BitcoinUnitSymbol, BitflowAmmLpPosition, BitflowAmmStakingPosition, BitflowSdkSwapQuote, Blockchain, 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 }; | ||
| //# 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/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-provider.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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AA,QAAA,EAAA,MAAA;EAId,OAAA,EAAA,qBAA4E;WyCO9E;;AzCPiB,UyCUX,cAAA,CzCVW;SyCWnB;WACE;gBACK;EzCbY,GAAA,EAAA,MAAA;;;;U0CFX,kBAAA,SAA2B;;E1CF/B,OAAA,EAAA,cAEX;;;IAFyB,KAAA,E0COhB,mB1CPgB;IAAA,OAAA,E0CQd,K1CRc;IAId,YAAA,E0CKK,K1CLuE;;;IAA7D,KAAA,E0CQjB,mB1CRiB;a0CSf;kBACK;;E1CVU,MAAA,EAAA;IAAA,KAAA,E0CajB,mB1CbiB;IAEf,OAAA,E0CYA,K1CZA;kB0CaK;;;UAID,iBAAA,SAA0B;;;;I1CjBN,KAAA,E0CqB1B,mB1CrB0B;IAAA,OAAA,E0CsBxB,K1CtBwB;IAOxB,YAAA,E0CgBK,K1ChBL;;;IAAuB,KAAA,E0CmBzB,mB1CnByB;IAAA,OAAA,E0CoBvB,K1CpBuB;IAIvB,YAAA,E0CiBK,K1CjBL;;;;;U2CjBI,4BAAA,SAAqC;;;;;;A3CA3B,K4CkBf,aAAA,GACR,oB5CnBuB,G4CoBvB,yB5CpBuB,G4CqBvB,wB5CrBuB,G4CsBvB,qB5CtBuB,G4CuBvB,uB5CvBuB,G4CwBvB,wB5CxBuB,G4CyBvB,2B5CzBuB,G4C0BvB,iC5C1BuB,G4C2BvB,kB5C3BuB,G4C4BvB,iB5C5BuB,G4C6BvB,iB5C7BuB,G4C8BvB,yB5C9BuB,G4C+BvB,4B5C/BuB,G4CgCvB,8B5ChCuB,G4CiCvB,4B5CjCuB;;;iB6CuBX,sBAAA,MAA4B,uBAAuB;A7CvBxC,iB6C2BX,2BAAA,C7C3BW,GAAA,E6C2BsB,a7C3BtB,CAAA,EAAA,GAAA,I6C2B6C,yB7C3B7C;AAAA,iB6C+BX,cAAA,C7C/BW,GAAA,E6C+BS,a7C/BT,CAAA,EAAA,GAAA,I6C+BgC,wB7C/BhC;AAId,iB6C+BG,qBAAA,C7C/ByE,GAAA,E6C+B9C,a7C/B8C,CAAA,EAAA,GAAA,I6C+BvB,qB7C/BuB;iB6CmCzE,uBAAA,MAA6B,uBAAuB;iBAIpD,0BAAA,MAAgC,uBAAuB;A7CvC3C,iB6C2CZ,6BAAA,C7C3CY,GAAA,E6C4CrB,a7C5CqB,CAAA,EAAA,GAAA,I6C6ClB,2B7C7CkB;iB6CiDZ,2BAAA,MACT,uBACG;iBAIM,yBAAA,YACH,2BACD,mBACT;iBAIa,wBAAA,YACH,0BACF,kBACR;A7CjEyB,iB6CqEZ,yBAAA,C7CrEY,SAAA,E6CsEf,a7CtEe,EAAA,EAAA,QAAA,E6CuEhB,Y7CvEgB,EAAA,EAAA,QAAA,E6CwEhB,oB7CxEgB,CAAA,E6CyEzB,a7CzEyB,EAAA;AAAA,iB6C8EZ,sBAAA,C7C9EY,SAAA,E6C+Ef,a7C/Ee,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E6CiFzB,a7CjFyB,EAAA;AAEf,iB6CsFG,kBAAA,C7CjFd,SAAA,E6CiF4C,a7CjF5C,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E6CiFiF,a7CjFjF,EAAA;iB6CyFc,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;A7CpIS,iB6CkJrB,wBAAA,C7ClJqB,SAAA,E6CmJxB,a7CnJwB,EAAA,EAAA,QAAA,E6CoJzB,Y7CpJyB,EAAA,CAAA,E6CqJlC,M7CrJkC,CAAA,MAAA,E6CqJnB,a7CrJmB,EAAA,CAAA;AAAA,iB6CuKrB,wBAAA,C7CvKqB,SAAA,E6CwKxB,a7CxKwB,EAAA,EAAA,QAAA,E6CyKzB,Y7CzKyB,EAAA,EAAA,UAAA,E6C0KvB,oB7C1KuB,EAAA,CAAA,E6C2KlC,a7C3KkC,EAAA;AAOxB,iB6C6KG,sBAAA,C7C3Kd,SAAA,E6C4KW,a7C5KX,EAAA,EAAA,QAAA,E6C6KU,gB7C7KV,CAAA,EAAA,OAAA;iB6CkLc,sBAAA,YACH,2BACD,0BACA;iBAMI,qCAAqC,yBACzC,aACA,gBACT;E7ChMiC,YAAA,E6CgMb,a7ChMa;CAAA;AAIvB,iB6CgMG,yB7C5Ld,CAAA,U6C4LkD,a7C5LlD,CAAA,CAAA,QAAA,E6C6LU,C7C7LV,EAAA,OAAA,E6C8LS,Y7C9LT,CAAA,E6C+LC,C7C/LD,GAAA;e6C+LoB;;iBAIN,qCAAqC,yBACzC,aACA,wBACD,eACR;gBAAoB;eAA4B;;iBAInC,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/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/protocols/stacks-protocol.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":";;;;;cAEa,gBAAc,CAAA,CAAA;;;cAId,iBAAe,CAAA,CAAA,gBAAA,CAAA,CAAA;EAJf,WAAA,aAEX;;;CAFyB,eAAA,CAAA,CAAA;AAAA,cAMd,wBANc,EAMU,CAAA,CAAA,SANV,CAAA;EAId,iBAAA,aAA4E;;;EAA7D,iCAAA,eAAA,YAAA,CAAA;;cASf,yBAAuB,CAAA,CAAA;;CATR,eAAA,CAAA;AAAA,cAaf,sBAbe,EAaO,CAAA,CAAA,SAbP,CAAA;EAEf,EAAA,mBAAA,YAKX,CAAA;;;;;;;;IALmC,4BAAA,eAAA,YAAA,CAAA;IAAA,iCAAA,eAAA,YAAA,CAAA;EAOxB,CAAA,eAAA,CAAA,CAAA;;;EAAuB,CAAA,eAAA,CAAA,CAAA;CAAA,eAAA,CAAA;AAIvB,KAMD,QAAA,GAAW,CAAA,CAAE,KAFvB,CAAA,OAEoC,cAFpC,CAAA;KAGU,SAAA,GAAY,CAAA,CAAE,aAAa;KAE3B,kBAAA,GAAqB,CAAA,CAAE,aAAa;KACpC,iBAAA,GAAoB,CAAA,CAAE,aAAa;KACnC,gBAAA,GAAmB,CAAA,CAAE,aAAa;;;cC9BjC;;;;KAID,aAAA,gBAA6B;;;KCJ7B,iBAAA;iBAEI,oCAAoC,mCAC5B,OAAO,mBAAmB,gBACvC,UACN,MAAM;;;cCLE;;;;;AHEA,KGGD,qBAAA,GHDV,MAAA,OGC+C,uBHD/C;;;cIJW;;;;;EJEA,SAAA,YAEX,EAAA,cAAA;;;AAFyB,KIMf,mBAAA,GJNe,MAAA,OIMoB,oBJNpB;AAAA,cIQd,mBJRc,EAAA;EAId,SAAA,UAA4E,EAAA,YAAA;;;AAA7D,KIQhB,kBAAA,GJRgB,MAAA,OIQkB,mBJRlB;cIUf;;;EJVe,SAAA,2BAAA,EAAA,6BAAA;CAAA;AAEf,KIaD,mBAAA,GJRV,MAAA,OIQ6C,oBJR7C;KIUU,YAAA,GAAe,sBAAsB,qBAAqB;;;;;;;;AJrBtE;cKIa;KAWD,mBAAA,WAA8B;;;KCjB9B,aAAa,QAAQ;UAEhB,yBAAA;;;KAIZ,SAAA;ANJQ,KMMD,YNJV,CAAA,WAAA,EAAA,iBMIqD,SNJrD,CAAA,GMKE,WNLF,GAAA,CMMG,QNNH,GMMc,MNNd,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;KMQU,2BAA2B,KAAK,GAAG,EAAE,KNVtB,CAAA,MMUkC,CNVlC,CAAA,EAAA;AAAA,KMYf,YNZe,CAAA,CAAA,EAAA,qBAAA,QAId,MMQkD,CNRlD,IAAA,GAA4E,MMQZ,KAC3E,SACM,8BAEM,eAAe,aAAa,INZd;KMehB,4BACE,IAAI,EAAE;ANhBQ,KMmBhB,QNnBgB,CAAA,CAAA,CAAA,GAAA,QAAA,MMoBd,CNpBc,GMoBV,CNpBU,CMoBR,CNpBQ,CAAA,GAAA,IAAA,EAE5B;;;KONY,cAAA,GAAiB;KAEjB,aAAA,GAAgB;KAKhB,QAAA,GAAW,iBAAiB;;;KCL5B,OAAA,GAAU;UAEL,KAAA;mBACE;ERLN,SAAA,MAAA,EQMM,QRJjB;;;;;cSDW;KAwCD,eAAA,WAA0B;UAErB,cAAA;ET3CJ,IAAA,EAAA,MAAA;;;EAAc,UAAA,CAAA,ES+CZ,KT/CY;EAAA,UAAA,CAAA,ESgDZ,KThDY;AAI3B;US+CiB,gBAAA;;ET/CW,WAAA,ESiDb,eTjDa;;USoDX,aAAA;;ETpDW,KAAA,EAAA,GAAA;EAAA,aAAA,CAAA,EAAA,MAAA;AAE5B;USwDiB,SAAA,SAAkB;;;;;;;ETxDE,SAAA,WAAA,EAAA,MAAA;EAAA,SAAA,OAAA,ESgEjB,gBThEiB;EAOxB,SAAA,UAAA,CAAA,ES0DW,aTxDtB,EAAA;wBSyDsB;;ET3DY,SAAA,UAAA,CAAA,EAAA,MAAA;;;;cUZvB;;;AVDb,CAAA;cUKa;;EVLc,SAAA,GAAA,EAAA,KAAA;CAAA;AAId,cUKA,4BVL4E,EAAA;;;EAA7D,SAAA,KAAA,EAAA,OAAA;;;;CAAA;AAAA,cUaf,+BVbe,EAAA;EAEf,SAAA,KAAA,EAAA,OAAA;;;;cUgBA;;;;EVhBwB,SAAA,SAAA,EAAA,WAAA;EAAA,SAAA,SAAA,EAAA,WAAA;EAOxB,SAAA,KAAA,EAAA,OAAA;;;EAAuB,SAAA,IAAA,EAAA,MAAA;CAAA;AAIvB,KUUD,gBAAA,GVNV,MAAA,OUM0C,iBVN1C;KUOU,mBAAA,gBAAmC;KACnC,2BAAA,gBAA2C;KAC3C,8BAAA,gBAA8C;KAC9C,mBAAA,GAAsB,8BAA8B;UAE/C,eAAA;kBACC;qBACG;qBACA;;UAIX,uBAAA,SAAgC;;qBAErB;;;;;UAKJ,QAAA,SAAiB;;;;;;AV9BC,UUoClB,QAAA,SAAiB,uBVpCC,CAAA;EAMvB,SAAA,KAAQ,EAAA,QAAkB;EAC1B,SAAA,QAAS,EAAA,WAAkB;EAE3B,SAAA,IAAA,EAAA,QAAkB;EAClB,SAAA,MAAA,EAAA,KAAiB;AAC7B;UU+BiB,UAAA,SAAmB;;;ET7DvB,SAAA,MAAA,EAGH,MAAA;AACV;US8DiB,UAAA,SAAmB;;;ERlExB,SAAA,EAAA,EAAA,MAAA;EAEI,SAAA,MAAA,EAAA,MAAA;EAAoC,SAAA,SAAA,EAAA,MAAA;EACrB,SAAA,UAAA,EAAA,MAAA;;AAAP,UQuEP,SAAA,SAAkB,uBRvEX,CAAA;EACb,SAAA,KAAA,EAAA,SAAA;EACN,SAAA,QAAA,EAAA,MAAA;EAAM,SAAA,cAAA,EAAA,MAAA;EAAiB,SAAA,QAAA,EAAA,MAAA;;;UQ4EX,UAAA,SAAmB;EPjFvB,SAAA,KAAA,EAAA,QAAA;EAKD,SAAA,QAAA,EAAA,OAAqB;;;;ECLpB,SAAA,UAAA,EAAA,MAOH;EACE,SAAA,iBAAmB,EAAA,MAAgB;EAElC,SAAA,MAAA,EAAA,MAGH;AACV;AAEa,KM2ED,iBAAA,GAAoB,QNvEtB,GMuEiC,QNvEjC;AACE,KMuEA,mBAAA,GACR,iBNxE2C,GMyE3C,UNzE+D,GM0E/D,UN1E+D,GM2E/D,UN3E+D,GM4E/D,SN5E+D;AAEvD,UM6EK,0BAAA,SAAmC,eN7E5B,CAAA;EAAG,SAAA,QAAA,EAAA,KAAA;EAAsB,SAAA,QAAA,EM+E5B,8BN/E4B;;AAAwC,UMiFxE,gBAAA,SAAyB,0BNjF+C,CAAA;;;;ECjB5E,SAAA,QAAA,EKsGQ,mBL7FX;EAEE,SAAA,MAAA,EAAA,MAAmB;;;;ECjBnB,SAAA,MAAO,EAAA,MAAA;EAEF,SAAA,MAAA,EAAA,MAAA;EAIZ,SAAA,OAAS,EAAA,MAAA;EAEF,SAAA,GAAA,EAAA,MAAY;EAA+B,SAAA,YAAA,CAAA,EAAA,MAAA;EACnD,SAAA,KAAA,EAAA,MAAA;EACC,SAAA,gBAAA,EAAA,MAAA;EAAW,SAAA,gBAAA,EAAA,MAAA;EAAM,SAAA,kBAAA,EAAA,MAAA;AAEtB;AAAuC,UI+GtB,UAAA,SAAmB,0BJ/GG,CAAA;EAAK,SAAA,KAAA,EAAA,SAAA;EAAG,SAAA,QAAA,EAAA,OAAA;EAAE,SAAA,KAAA,EAAA,MAAA;EAAY,SAAA,QAAA,EAAA,MAAA;EAAC,SAAA,gBAAA,EAAA,MAAA;EAElD,SAAA,WAAY,EAAA,MAAA;;AACtB,KIqHU,sBAAA,GAAyB,gBJrHnC,GIqHsD,UJrHtD,GIqHmE,SJrHnE;AACM,KIsHI,WAAA,GAAc,mBJtHlB,GIsHwC,sBJtHxC;AAFqE,UI0H5D,eAAA,CJ1H4D;EAI/D,QAAA,EIuHF,2BJvHE;EAAe,EAAA,EAAA,MAAA;;;;KKJjB,gBAAA;AXZe,UWcV,YAAA,CXdU;EAAA,SAAA,KAAA,EWeT,aXfS;EAId,SAAA,IAAA,EWYI,YXZwE;;;AAA7D,UWgBX,oBAAA,SAA6B,YXhBlB,CAAA;;oBWkBR;;AXlBQ,UWqBX,gBAAA,SAAyB,YXrBd,CAAA;EAAA,SAAA,KAAA,EAAA,KAAA;AAE5B;UWwBiB,mBAAA,SAA4B;iBAC5B;;mBAEE;;UAGF,2BAAA,SAAoC;;EX9BhB,SAAA,UAAA,EAAA,MAAA;;AAOxB,UW4BI,4BAAA,SAAqC,mBX1BpD,CAAA;;;EAFkC,SAAA,YAAA,EAAA,MAAA;;AAIvB,UW8BI,iBAAA,SAA0B,mBX1BzC,CAAA;;kBW4BgB;mBACC;;YAEP;WACD;;;UAIM,iBAAA,SAA0B;;kBAEzB;;mBAEC;;YAEP;WACD;;;UAIM,oBAAA,SAA6B;;kBAE5B;EXrDiB,SAAA,OAAA,EAAA,MAAA,EAAA;EAAA,SAAA,MAAA,EWuDhB,WXvDgB;EAMvB,SAAA,KAAQ,CAAA,EAAA;IACR,MAAA,EWkDA,KXlDS;IAET,KAAA,EWiDD,KXjDC;EACA,CAAA;AACZ;UWmDiB,kBAAA,SAA2B;;sBAEtB;EVnFT,SAAA,UAGH,EUiFa,WVjFb;EACE,SAAA,SAAa,CAAA,EAAA;YUkFb;WACD;;ETvFC,SAAA,OAAA,ESyFQ,WTzFS;EAEb,SAAA,QAAA,ESwFK,WTxFgB;EAAe,SAAA,OAAA,CAAA,EAAA;IACrB,MAAA,ESyFnB,KTzFmB;IAAmB,KAAA,ES0FvC,KT1FuC;EAA1B,CAAA;EACb,SAAA,gBAAA,CAAA,ES2FmB,gBT3FnB;;AACA,US8FM,kBAAA,SAA2B,oBT9FjC,CAAA;EAAiB,SAAA,IAAA,ES+FX,kBT/FW;;USkGX,kBAAA,SAA2B;;ERvG/B,SAAA,OAAA,EAAA,MAAA;EAKD,SAAA,MAAA,EAAA,MAAA;;UQwGK,mBAAA,SAA4B;;EP7GhC,SAAA,OAAA,EAAA,MAOH;EACE,SAAA,MAAA,EAAA,MAAmB;AAE/B;AAIY,UOsGK,eAAA,SAAwB,gBPtGwB,CAAA;EAEpD,SAAA,IAAA,EOqGI,mBPjGP;EACE,SAAA,KAAA,EAAA,MAAmB;EAEnB,SAAA,OAAY,EAAA,MAAA;;AAAyB,KOmGrC,eAAA,GACR,2BPpG6C,GOqG7C,4BPrG6C,GOsG7C,iBPtG6C,GOuG7C,iBPvG6C,GOwG7C,oBPxG6C,GOyG7C,kBPzG6C;AAAqB,KO0G1D,cAAA,GAAiB,kBP1GyC,GO0GpB,mBP1GoB;AAAmB,KO2G7E,QAAA,GAAW,eP3GkE,GO2GhD,cP3GgD,GO2G/B,eP3G+B;;;UQrBxE,aAAA;YACL;;;;;iBCaI,eAAA,QAAuB,uBAAuB;iBAI9C,kBAAA,QAA0B,uBAAuB;iBAIjD,UAAA,QAAkB,uBAAuB;AbtB5C,iBa0BG,UAAA,CbxBd,KAAA,EawBgC,WbxBhC,CAAA,EAAA,KAAA,IawBuD,QbxBvD;iBa4Bc,aAAA,QAAqB,uBAAuB;iBAI5C,YAAA,QAAoB,uBAAuB;AblChC,iBasCX,gBAAA,CbtCW,KAAA,EasCa,WbtCb,CAAA,EAAA,KAAA,IasCoC,iBbtCpC,GasCwD,UbtCxD;AAAA,iBa0CX,YAAA,Cb1CW,KAAA,Ea0CS,Wb1CT,CAAA,EAAA,KAAA,Ia0CgC,Ub1ChC;AAId,iBa0CG,YAAA,Cb1CyE,KAAA,Ea0CrD,Wb1CqD,CAAA,EAAA,KAAA,Ia0C9B,Ub1C8B;iBa8CzE,WAAA,QAAmB,uBAAuB;iBAI1C,kBAAA,QAA0B,uBAAuB;AblDrC,iBasDZ,YAAA,CbtDY,KAAA,EasDQ,WbtDR,CAAA,EAAA,KAAA,IasD+B,UbtD/B;iBa0DZ,WAAA,QAAmB,uBAAuB;;;UC9DzC,sBAAA;;;;EdAJ,SAAA,YAEX,EcEuB,KdFvB;;;;EAFyB,SAAA,cAAA,EcQA,KdRA;EAId;;;EAAe,SAAA,eAAA,EcQA,KdRA;;;;EAAA,SAAA,cAAA,EcYD,KdZC;EAAA;AAE5B;;6Bcc6B;;UAGZ,UAAA,SAAmB;;;;EdjBC,SAAA,gBAAA,EcqBR,KdrBQ;EAAA;AAOrC;;wBckBwB;EdlBY;;AAIpC;+BckB+B;;UAGd,UAAA,SAAmB;;;;qCAIC;;;;0BAIX;;;;4BAIE;;KAGhB,kBAAA,GAAqB,yBAAyB,aAAa;;;KCpD3D,cAAA;;;cAEC,mBAAiB,CAAA,CAAA;EfHjB,OAAA,EAAA,SAEX;;;AAFyB,KeIf,WAAA,GAAc,CAAA,CAAE,KfJD,CAAA,OeIc,iBfJd,CAAA;AAAA,KeMf,iBAAA,GfNe,KAAA,GAAA,KAAA;AAId,UeII,eAAA,CfJwE;QeKjF;UACE;EfNkB,OAAA,EAAA,MAAA;;;;cgBNf;;;;cAKA,eAAA;AhBHA,UgBKI,OAAA,ChBHf;;;EAFyB,SAAA,EAAA,MAAA;EAAA,QAAA,EAAA,MAAA;EAId,aAAA,EAAA,MAA4E;;;AAA7D,UgBUX,UAAA,ChBVW;WgBWjB;eACI;;AhBZa,UgBeX,cAAA,ChBfW;EAAA,IAAA,CAAA,EAAA,MAAA;EAEf,GAAA,CAAA,EAAA,MAAA;;;;cgBmBC;;UAGG,uBAAA;;EhBtBoB,cAAA,CAAA,EAAA,MAAA;EAAA,MAAA,CAAA,EAAA,MAAA;EAOxB,QAAA,CAAA,EAAA,MAAA;;;;UiBbI,sBAAA;cACH;eACC;WACJ;AjBHX;ciBMa,cAAc,aAAa;aAM5B,UAAA;EjBZe,IAAA,GAAA,MAAA;EAAA,QAAA,GAAA,UAAA;EAId,GAAA,GAAA,KAAA;;;;KkBJD,UAAA,GAAa;;;UCAR,iBAAA;OACV;;;;;aCAK,QAAA;;;EpBDC,IAAA,GAAA,CAAA;;;;AAAc,aoBSf,mBAAA;EpBLC,GAAA,GAAA,KAAA;;;EAAe,UAAA,GAAA,aAAA;;;UoBaX,IAAA;EpBbW,UAAA,EoBcd,UpBdc;EAAA,SAAA,EoBef,iBpBfe,EAAA;EAEf,WAAA,EoBcE,mBpBTb;;;;cqBVW;KACD,kBAAA,WAA6B;UAExB,eAAA;ErBJJ,SAAA,KAAA,EqBKK,UrBHhB;oBqBIkB,OAAO,oBAAoB;;ArBNpB,cqBSd,uBrBTc,EAAA,SAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,SAAA,CAAA;AAAA,KqBef,uBAAA,GrBfe,CAAA,OqBemB,uBrBfnB,CAAA,CAAA,MAAA,CAAA;AAId,UqBaI,uBAAA,CrBbwE;iBqBcxE;kBACC;;UAGD,uBAAA,SAAgC;;;ArBlBrB,UqBsBX,0BAAA,SAAmC,uBrBtBxB,CAAA;EAAA,SAAA,IAAA,EAAA,gBAAA;EAEf,SAAA,IAAA,EAAA,MAAA;;;;;UqB4BI,yBAAA,SAAkC;;;ErB5Bd,SAAA,QAAA,EAAA,WAAA;EAAA,SAAA,eAAA,EAAA,MAAA;EAOxB,SAAA,QAAA,EAAA,MAAA;;UqB6BI,sBAAA,SAA+B;ErB7BZ,SAAA,IAAA,EAAA,SAAA;EAAA,SAAA,aAAA,EqB+BV,KrB/BU;EAIvB,SAAA,iBAIX,EqBwB4B,KrBxB5B;;;KqB4BU,mBAAA,GACR,0BACA,6BACA,4BACA;;;UCpDM,UAAA;iBACO;kBACC;AtBHlB;iBsBMgB,gBAAA,OAAuB,iBAAiB,gBAAgB;iBAIxD,gBAAA;;;GAAkC;AtBVvB,UsBcV,UAAA,CtBdU;EAAA,SAAA,IAAA,EsBeV,UtBfU;EAId,SAAA,KAAA,EsBYK,KtBZuE;;iBsBezE,gBAAA,OAAuB,mBAAmB,QAAQ;AtBftC,csBqBf,iBtBrBe,EAAA,SAAA,CAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,CAAA;KsBsBhB,gBAAA,WAA2B;UAEtB,mBAAA;SACR;EtBzBmB,SAAA,EAAA,MAAA;;AAEf,UsB2BI,kBAAA,CtBtBf;UsBuBQ;;UAEA;;UAGO,WAAA;wBACO,QAAQ,OAAO;;;;;cCtC1B,2BAAyB,CAAA,CAAA;;;;EvBFzB,OAAA,EAAA,SAEX;;cuBEW,sBAAoB,CAAA,CAAA;EvBJN,OAAA,EAAA,SAAA;EAAA,QAAA,EAAA,UAAA;EAId,MAAA,EAAA,QAAA;;;CAAe,CAAA;cuBEf,4BAA0B,CAAA,CAAA;;;EvBFX,KAAA,aAAA,CAAA;IAAA,OAAA,aAAA,CAAA;MAEf,UAAA,cAKX,CAAA,SAAA,CAAA;;;;;;;;MALmC,CAAA,CAAA;MAAA,IAAA,WAAA,CAAA;QAOxB,OAAA,EAAA,SAEX;;;QAFkC,OAAA,EAAA,SAAA;MAAA,CAAA,CAAA;IAIvB,CAAA,eAAA,CAAA;;;;;;;;;;;cwBdA,yBAAA;cACA,yBAAA;AxBJA,cwBKA,kCAAA,GxBHX,sCAAA;cwBKW,kCAAA;cACA,kCAAA;AxBRc,cwBUd,4BAAA,GxBVc,mCAAA;AAAA,cwBWd,6BAAA,GxBXc,2CAAA;AAId,cwBQA,6BAAA,GxBR4E,4CAAA;cwBS5E,2BAAA;cAEA,+BAAA;AxBXe,cwBYf,+BAAA,GxBZe,8CAAA;cwBcf,mBAAA;cAEA,0BAAA;cACA,0BAAA;AxBjBe,cwBkBf,yBAAA,GxBlBe,uBAAA;AAAA,awBqBhB,OAAA;ExBnBC,OAAA,GAAA,UAAA;;;awBwBD,oCAAA;;;;;ExBxByB,WAAA,GAAA,aAAA;EAAA,UAAA,GAAA,YAAA;EAOxB,MAAA,GAAA,QAAA;;cwB2BA,oCAAkC,CAAA,CAAA;ExB3BX,OAAA,EAAA,SAAA;EAAA,OAAA,EAAA,SAAA;EAIvB,QAAA,EAAA,UAAA;;;;;;KwBgCD,4BAAA,GAA+B,CAAA,CAAE,aAAa;cAE7C;KAED,oBAAA,WAA+B;cAE9B;cACA;cAEA;KACD,cAAA,WAAyB;KAEzB,YAAA,WAAuB;KAC9B,mBAAA,WAA8B;iBAEnB,2BAAA,UAAqC,iBAAiB;KAmB1D,mBAAA,GAAsB,eAAe;UAEvC,eAAA;cACI;;UAGG,kBAAA,SAA2B;;ExBxET,UAAA,EAAA,MAAA;EAAA,cAAA,EwB2EjB,cxB3EiB;EAMvB,IAAA,EwBsEJ,mBxBtE8B;AACtC;AAEY,UwBsEK,iBAAA,SAA0B,exBtEK,CAAA;EACpC,UAAA,EAAA,QAAiB;EACjB,GAAA,EAAA,MAAA;;WwBwED;;EvBtGE,aAAA,CAAA,EuBwGK,OvBrGR;AACV;KuBuGY,oBAAA,GAAuB,CAAA,CAAE,aAAa;cAgIrC,uBAAuB;cAEvB,0BAA0B,OACrC,sCACA;;;cC3OW,gCAA8B,CAAA,CAAA;;;EzBF9B,OAAA,EAAA,SAEX;;;AAFyB,KyBGf,wBAAA,GAA2B,CAAA,CAAE,KzBHd,CAAA,OyBG2B,8BzBH3B,CAAA;AAAA,UyBKV,4BAAA,CzBLU;EAId,IAAA,EyBEL,wBzBFiF;cyBG3E;;;cAID,2BAAyB,CAAA,CAAA;;;CzBPV,CAAA;AAAA,KyBQhB,mBAAA,GAAsB,CAAA,CAAE,KzBRR,CAAA,OyBQqB,yBzBRrB,CAAA;AAEf,cyBQA,kBzBHX,EyBG6B,CAAA,CAAA,QzBH7B;KyBIU,YAAA,GAAe,CAAA,CAAE,aAAa;;;cCjB7B;;;;;E1BEA,SAAA,OAAA,EAEX,SAAA;;;EAFyB,SAAA,WAAA,EAAA,cAAA;EAAA,SAAA,KAAA,EAAA,OAAA;EAId,SAAA,MAAA,EAAA,QAA4E;;;AAA7D,K0BQhB,gBAAA,G1BRgB,CAAA,O0BQW,iB1BRX,CAAA,CAAA,MAAA,O0BQ2C,iB1BR3C,CAAA;U0BUX,cAAA;eACF;;E1BXa,SAAA,GAAA,EAAA,MAAA;EAAA,SAAA,IAAA,EAAA,MAAA;EAEf,SAAA,WAAA,CAAA,EAAA,MAKX;;c0BWW;KAgBD,oBAAA,WAA+B;;;KCnC/B,4BAAA,GAA+B,oBAAoB;A3BHlD,U2BKI,SAAA,C3BHf;kB2BIgB;2BACS;;A3BPA,c2BUd,e3BVc,EAAA,SAAA,CAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,WAAA,CAAA;AAId,K2BOD,cAAA,G3BP6E,CAAA,O2BOpD,e3BPoD,CAAA,CAAA,MAAA,CAAA;U2BSxE,YAAA;eACF;E3BVa,SAAA,YAAA,EAAA,OAAA;;U2BcX,iBAAA;uBACM;E3BfK,SAAA,eAAA,EAAA,MAAA;EAAA,SAAA,OAAA,E2BiBR,a3BjBQ;AAE5B;K2BkBY,SAAA,GACR,mBACA,oBACA,sBACA;UAEa,aAAA;0BACS;uBACH;sBACD;wBACE;uBACD;E3B7Bc,SAAA,YAAA,E2B8BZ,K3B9BY;EAAA,SAAA,OAAA,E2B+BjB,c3B/BiB,EAAA;EAOxB,SAAA,SAAA,EAAA,C2ByBU,iB3BvBrB,G2BuByC,U3BvBzC,CAAA,EAAA;;iC2ByB+B;E3B3BG,SAAA,SAAA,E2B4Bd,I3B5Bc;;AAIvB,U2B2BI,mBAAA,C3BvBf;;sB2ByBoB;;UAGL,gBAAA,SAAyB;;;;;;;;UASzB,iBAAA,SAA0B;;;;;;;UAQ1B,mBAAA,SAA4B;;;I3BjDV,2BAAA,EAAA,OAAA;EAAA,CAAA;AAMnC;AACY,U2BiDK,mBAAA,SAA4B,a3BjDd,CAAA;EAEnB,SAAA,UAAA,EAAkB,aAAkB;EACpC,SAAA,iBAAiB,EAAA;IACjB,oBAAgB,EAAA,MAAkB;;;c2BoDjC;A1BlFA,K0BmFD,iBAAA,G1BhFF,CAAA,O0BgF8B,kB1BhF9B,CAAA,CAAA,MAAA,CAAA;AACE,U0BiFK,qBAAA,C1BjFwB;0B0BkFf;uBACH;kBACL;AzBxFlB;AAEgB,UyBwFC,mCAAA,SAA4C,qBzBxFxB,CAAA;EAAe,SAAA,aAAA,EAAA,sBAAA;EACrB,SAAA,eAAA,EAAA,MAAA;EAAmB,SAAA,YAAA,EAAA,MAAA;EAA1B,SAAA,YAAA,EAAA,MAAA;EACb,SAAA,YAAA,EAAA,OAAA,EAAA;EACN,SAAA,cAAA,EAAA,OAAA,EAAA;EAAM,SAAA,iBAAA,CAAA,EAAA,OAAA;;UyB8FM,kCAAA,SAA2C;;;AxBnG/C,KwBsGD,iBAAA,GACR,mCxBnGM,GwBoGN,kCxBpGM;;;UyBJO,kBAAA;;;;;I5BEJ,SAAA,OAEX,EAAA,MAAA;;;IAFyB,SAAA,KAAA,EAAA,MAAA;IAAA,SAAA,OAAA,EAAA,MAAA;EAId,CAAA;;;IAAe,SAAA,OAAA,EAAA,MAAA;;;U4BEX,cAAA;E5BFW,SAAA,iBAAA,EAAA,MAAA;EAAA,SAAA,WAAA,CAAA,EAAA,MAAA;EAEf,SAAA,iBAAA,CAKX,EAAA,MAAA;;;;;c4BIW;cACA;KAED,iBAAA,WAA4B;A5BZH,K4BazB,8BAAA,G5BbyB,CAAA,O4BagB,c5BbhB,CAAA,CAAA,MAAA,CAAA;AAAA,U4BepB,iBAAA,C5BfoB;EAOxB,SAAA,UAAA,E4BSU,O5BPrB,C4BO6B,M5BP7B,C4BOoC,iB5BPpC,E4BOuD,kB5BPvD,CAAA,CAAA;wB4BQsB,QAAQ,OAAO,gCAAgC;;;;;UCzBtD,kBAAA;;;;gBAID;E7BFH,SAAA,IAAA,E6BGI,sB7BDf,EAAA;;U6BIe,qBAAA;E7BNU,SAAA,CAAA,EAAA,MAAA;EAAA,SAAA,IAAA,CAAA,EAAA,MAAA;EAId,SAAA,KAAA,CAAA,EAAA,OAA4E;;;EAA7D,SAAA,KAAA,EAAA,MAAA;;U6BWX,sBAAA;;E7BXW,SAAA,KAAA,CAAA,EAAA,OAAA;EAAA,SAAA,OAAA,CAAA,EAAA,MAAA;EAEf,SAAA,IAAA,CAAA,EAAA,MAAA;;;U6BmBH,0BAAA;;;;;E7BnB2B,aAAA,EAAA,MAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAOxB,qBAAA,CAAA,EAAA,MAEX;;;;U6BsBQ,wBAAA,C7BxB0B;EAIvB,YAAA,EAAA,MAAA;;;;;U6B2BH,wBAAA;;;;;;UAOO,8BAAA;;;;;;;;;WASN;;A7B3CwB,U6B8ClB,6BAAA,C7B9CkB;EAAA,sBAAA,CAAA,EAAA,MAAA;EAMvB,uBAA0B,CAAA,EAAA,MAAA;EAC1B,WAAA,EAAS,OAAA;EAET,QAAA,CAAA,EAAA,OAAA;EACA,QAAA,CAAA,E6ByCC,0B7BzCkC,GAAA,IAAA;EACnC,OAAA,E6ByCD,8B7BzCmC;;;;EC9BjC,IAAA,EAAA,MAAA;EAID,IAAA,EAAA,MAAA;;;U4B4EK,SAAA;E3BhFL,GAAA,EAAA,MAAA;EAEI,QAAA,EAAA,MAAA;EAAoC,IAAA,EAAA,MAAA;EACrB,MAAA,E2BiFrB,wB3BjFqB;EAAmB,OAAA,CAAA,EAAA,MAAA;EAA1B,IAAA,EAAA,MAAA;EACb,OAAA,EAAA,MAAA;EACN,GAAA,E2BmFE,6B3BnFF,EAAA;EAAM,IAAA,E2BoFH,8B3BpFG,EAAA;EAAiB,MAAA,EAAA,MAAA;;;;K4BHhB,QAAA,GAAW,qBAAqB;KAChC,cAAA;UAEK,WAAA;;E9BHJ,MAAA,CAAA,EAAA,MAAA;;;AAAc,U8BSV,UAAA,C9BTU;EAAA,gBAAA,EAAA,MAAA;EAId,MAAA,EAAA,MAAA;;;;;;K+BND,mBAAA;;;UCAK,MAAA;;;;UAKA,IAAA,SAAa;EhCHjB,SAAA,MAAA,CAAA,EAEX,MAAA;;;AAFyB,UgCQV,SAAA,SAAkB,IhCRR,CAAA;EAAA,SAAA,OAAA,EAAA,MAAA;EAId,SAAA,IAAA,EAAA,MAA4E;;;;;ciCJ5E;;;;EjCAA,SAAA,aAEX,EAAA,iBAAA;;;EAFyB,SAAA,mBAAA,EAAA,sBAAA;EAAA,SAAA,yBAAA,EAAA,6BAAA;EAId,SAAA,SAA4E,EAAA,YAAA;;;EAA7D,SAAA,UAAA,EAAA,cAAA;;;;EAAA,SAAA,oBAAA,EAAA,wBAAA;CAAA;AAEf,KiCYD,eAAA,GjCZC,CAKX,OiCOoC,gBjCPpC,CAAA,CAAA,MAAA,OiCOmE,gBjCPnE,CAAA;ciCSW;;;;;;;CjCdwB;AAAA,KiCsBzB,oBAAA,GjCtByB,CAAA,OiCuB3B,sBjCvB2B,CAAA,CAAA,MAAA,OiCuBU,sBjCvBV,CAAA;AAOxB,ciCkBA,yBjChBX,EAAA;;;EAFkC,SAAA,oBAAA,EAAA,MAAA;EAAA,SAAA,iBAAA,EAAA,SAAA;EAIvB,SAAA,mBAIX,EAAA,SAAA;;;;;;;;;;;;;KiC6BU,YAAA,GAAe,mBAAmB;UAE7B,gBAAA;gBACD;qBACK;qBACA;;;;UAMJ,0BAAA,SAAmC;EjC5CjB,SAAA,QAAA,EAAA,iBAAA;EAAA,SAAA,YAAA,EAAA,MAAA;AAMnC;;;UkCrBiB,iBAAA;;ElCFJ,SAAA,QAEX,EkCEmB,gBlCFnB;oBkCGkB;yBACK;ElCNE,SAAA,GAAA,EAAA,MAAA;;AAId,UkCMI,0BAAA,SAAmC,iBlCNqC,CAAA;8BkCO3D;;;;UCTb,oBAAA,SAA6B;;EnCFjC,OAAA,EAAA,gBAEX;;;IAFyB,KAAA,EmCOhB,mBnCPgB;IAAA,OAAA,EmCQd,KnCRc;IAId,YAAA,EmCKK,KnCLuE;;;IAA7D,KAAA,EmCQjB,mBnCRiB;amCSf;kBACK;;EnCVU,MAAA,EAAA;IAAA,KAAA,EmCajB,mBnCbiB;IAEf,OAAA,EmCYA,KnCZA;kBmCaK;;;UAID,yBAAA,SAAkC;;;;InCjBd,KAAA,EmCqB1B,mBnCrB0B;IAAA,OAAA,EmCsBxB,KnCtBwB;IAOxB,YAAA,EmCgBK,KnChBL;;;IAAuB,KAAA,EmCmBzB,mBnCnByB;IAAA,OAAA,EmCoBvB,KnCpBuB;IAIvB,YAAA,EmCiBK,KnCjBL;;;;;UoCfI,qBAAA,SAA8B;;EpCFlC,OAAA,EAAA,iBAEX;eoCGa;4BACa;EpCND,6BAAA,EoCOM,KpCPN;;AAId,UoCMI,uBAAA,SAAgC,iBpCNwC,CAAA;;;EAA7D,WAAA,EoCSb,mBpCTa;4BoCUA;iCACK;0BACP;EpCZE,UAAA,EoCad,wBpCbc,EAAA;;AAEf,UoCcI,wBAAA,CpCTf;SoCUO;WACE;gBACK;;;;UCrBN,0BAAA,SAAmC;;ErCFhC,kBAEX,EqCEoB,KrCFpB;eqCGa;eACA;;ArCNY,UqCSV,wBAAA,SAAiC,0BrCTvB,CAAA;EAId,OAAA,EAAA,mBAA4E;;UqCSxE,2BAAA,SAAoC;ErCTzB,OAAA,EAAA,sBAAA;eqCWb;;UAGE,qBAAA;ErCdW,KAAA,EqCenB,mBrCfmB;EAAA,OAAA,EqCgBjB,KrChBiB;EAEf,UAAA,EqCeC,KrCfD;gBqCgBG;;;;UAKC,iBAAA;SACR;WACE;ErCvB0B,YAAA,EqCwBrB,KrCxBqB;;AAOxB,UqCoBI,wBAAA,CrClBf;SqCmBO;WACE;ErCtByB,UAAA,EqCuBtB,KrCvBsB;EAAA,YAAA,EqCwBpB,KrCxBoB;EAIvB,qBAAA,EAAA,MAIX;;;UqCqBe,iCAAA,SAA0C;;;;;;UCxC1C,wBAAA,SAAiC;;EtCFrC,OAAA,EAAA,oBAEX;iBsCGe;iBACA;EtCNU,aAAA,EAAA,MAAA;EAAA,YAAA,EsCQX,etCRW,EAAA;EAId,YAAA,EsCKG,etCLyE,EAAA;;UsCQxE,eAAA;EtCRW,KAAA,EsCSnB,mBtCTmB;;WsCWjB;gBACK;;;;UChBC,8BAAA,SAAuC;;;;;;UCEvC,4BAAA,SAAqC;;ExCFzC,OAAA,EAAA,wBAEX;WwCGS;;AxCLgB,UwCQV,gBAAA,CxCRU;EAAA,KAAA,EwCSlB,mBxCTkB;EAId,OAAA,EwCMF,KxCNE;gBwCOG;;ExCPY,WAAA,CAAA,EwCSZ,mBxCTY;kBwCUV;uBACK;;;;UCbN,iBAAA,SAA0B;;EzCF9B,OAAA,EAAA,YAEX;WyCGS;;AzCLgB,UyCQV,yBAAA,SAAkC,iBzCRxB,CAAA;EAAA,QAAA,EAAA,MAAA;EAId,OAAA,EAAA,qBAA4E;WyCO9E;;AzCPiB,UyCUX,cAAA,CzCVW;SyCWnB;WACE;gBACK;EzCbY,GAAA,EAAA,MAAA;;;;U0CFX,kBAAA,SAA2B;;E1CF/B,OAAA,EAAA,cAEX;;;IAFyB,KAAA,E0COhB,mB1CPgB;IAAA,OAAA,E0CQd,K1CRc;IAId,YAAA,E0CKK,K1CLuE;;;IAA7D,KAAA,E0CQjB,mB1CRiB;a0CSf;kBACK;;E1CVU,MAAA,EAAA;IAAA,KAAA,E0CajB,mB1CbiB;IAEf,OAAA,E0CYA,K1CZA;kB0CaK;;;UAID,iBAAA,SAA0B;;;;I1CjBN,KAAA,E0CqB1B,mB1CrB0B;IAAA,OAAA,E0CsBxB,K1CtBwB;IAOxB,YAAA,E0CgBK,K1ChBL;;;IAAuB,KAAA,E0CmBzB,mB1CnByB;IAAA,OAAA,E0CoBvB,K1CpBuB;IAIvB,YAAA,E0CiBK,K1CjBL;;;;;U2CjBI,4BAAA,SAAqC;;;;;;A3CA3B,K4CkBf,aAAA,GACR,oB5CnBuB,G4CoBvB,yB5CpBuB,G4CqBvB,wB5CrBuB,G4CsBvB,qB5CtBuB,G4CuBvB,uB5CvBuB,G4CwBvB,wB5CxBuB,G4CyBvB,2B5CzBuB,G4C0BvB,iC5C1BuB,G4C2BvB,kB5C3BuB,G4C4BvB,iB5C5BuB,G4C6BvB,iB5C7BuB,G4C8BvB,yB5C9BuB,G4C+BvB,4B5C/BuB,G4CgCvB,8B5ChCuB,G4CiCvB,4B5CjCuB;;;iB6CuBX,sBAAA,MAA4B,uBAAuB;A7CvBxC,iB6C2BX,2BAAA,C7C3BW,GAAA,E6C2BsB,a7C3BtB,CAAA,EAAA,GAAA,I6C2B6C,yB7C3B7C;AAAA,iB6C+BX,cAAA,C7C/BW,GAAA,E6C+BS,a7C/BT,CAAA,EAAA,GAAA,I6C+BgC,wB7C/BhC;AAId,iB6C+BG,qBAAA,C7C/ByE,GAAA,E6C+B9C,a7C/B8C,CAAA,EAAA,GAAA,I6C+BvB,qB7C/BuB;iB6CmCzE,uBAAA,MAA6B,uBAAuB;iBAIpD,0BAAA,MAAgC,uBAAuB;A7CvC3C,iB6C2CZ,6BAAA,C7C3CY,GAAA,E6C4CrB,a7C5CqB,CAAA,EAAA,GAAA,I6C6ClB,2B7C7CkB;iB6CiDZ,2BAAA,MACT,uBACG;iBAIM,yBAAA,YACH,2BACD,mBACT;iBAIa,wBAAA,YACH,0BACF,kBACR;A7CjEyB,iB6CqEZ,yBAAA,C7CrEY,SAAA,E6CsEf,a7CtEe,EAAA,EAAA,QAAA,E6CuEhB,Y7CvEgB,EAAA,EAAA,QAAA,E6CwEhB,oB7CxEgB,CAAA,E6CyEzB,a7CzEyB,EAAA;AAAA,iB6C8EZ,sBAAA,C7C9EY,SAAA,E6C+Ef,a7C/Ee,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E6CiFzB,a7CjFyB,EAAA;AAEf,iB6CsFG,kBAAA,C7CjFd,SAAA,E6CiF4C,a7CjF5C,EAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,E6CiFiF,a7CjFjF,EAAA;iB6CyFc,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;A7CpIS,iB6CkJrB,wBAAA,C7ClJqB,SAAA,E6CmJxB,a7CnJwB,EAAA,EAAA,QAAA,E6CoJzB,Y7CpJyB,EAAA,CAAA,E6CqJlC,M7CrJkC,CAAA,MAAA,E6CqJnB,a7CrJmB,EAAA,CAAA;AAAA,iB6CuKrB,wBAAA,C7CvKqB,SAAA,E6CwKxB,a7CxKwB,EAAA,EAAA,QAAA,E6CyKzB,Y7CzKyB,EAAA,EAAA,UAAA,E6C0KvB,oB7C1KuB,EAAA,CAAA,E6C2KlC,a7C3KkC,EAAA;AAOxB,iB6C6KG,sBAAA,C7C3Kd,SAAA,E6C4KW,a7C5KX,EAAA,EAAA,QAAA,E6C6KU,gB7C7KV,CAAA,EAAA,OAAA;iB6CkLc,sBAAA,YACH,2BACD,0BACA;iBAMI,qCAAqC,yBACzC,aACA,iBACT;E7ChMiC,YAAA,E6CgMb,c7ChMa;CAAA;AAIvB,iB6CgMG,yB7C5Ld,CAAA,U6C4LkD,a7C5LlD,CAAA,CAAA,QAAA,E6C6LU,C7C7LV,EAAA,OAAA,E6C8LS,Y7C9LT,CAAA,E6C+LC,C7C/LD,GAAA;e6C+LoB;;iBAIN,qCAAqC,yBACzC,aACA,yBACD,eACR;gBAAoB;eAA6B;;iBAIpC,sBAAA,WAAiC"} |
+48
-31
@@ -507,2 +507,33 @@ import { z } from "zod"; | ||
| //#endregion | ||
| //#region src/protocols/stacks-protocol.model.ts | ||
| const StacksProtocolIds = { | ||
| alex: "alex", | ||
| arkadiko: "arkadiko", | ||
| bitflow: "bitflow", | ||
| fastPool: "fast-pool", | ||
| granite: "granite", | ||
| hermetica: "hermetica", | ||
| sbtcBridge: "sbtc-bridge", | ||
| stackingDao: "stacking-dao", | ||
| velar: "velar", | ||
| xverse: "xverse", | ||
| zest: "zest" | ||
| }; | ||
| const stacksProtocolActions = [ | ||
| "swap", | ||
| "add-liquidity", | ||
| "remove-liquidity", | ||
| "stake", | ||
| "unstake", | ||
| "stack", | ||
| "unstack", | ||
| "deposit", | ||
| "withdraw", | ||
| "borrow", | ||
| "repay", | ||
| "claim-rewards", | ||
| "bridge" | ||
| ]; | ||
| //#endregion | ||
| //#region src/swap/swap.model.ts | ||
@@ -534,16 +565,2 @@ const swapProviderIds = [ | ||
| //#endregion | ||
| //#region src/yield/yield-provider.model.ts | ||
| const YieldProviderKeys = { | ||
| bitflow: "bitflow", | ||
| zest: "zest", | ||
| granite: "granite", | ||
| stackingDao: "stackingdao", | ||
| lisa: "lisa", | ||
| hermetica: "hermetica", | ||
| fastPool: "fast-pool", | ||
| xverse: "xverse", | ||
| velar: "velar" | ||
| }; | ||
| //#endregion | ||
| //#region src/yield/yield-product.model.ts | ||
@@ -577,18 +594,18 @@ const YieldProductKeys = { | ||
| const YieldProductToProviderMap = { | ||
| [YieldProductKeys.bitflowAmmLp]: YieldProviderKeys.bitflow, | ||
| [YieldProductKeys.bitflowAmmStaking]: YieldProviderKeys.bitflow, | ||
| [YieldProductKeys.zestBorrowMarket]: YieldProviderKeys.zest, | ||
| [YieldProductKeys.graniteV1Earn]: YieldProviderKeys.granite, | ||
| [YieldProductKeys.graniteV1Borrow]: YieldProviderKeys.granite, | ||
| [YieldProductKeys.stackingDaoStstx]: YieldProviderKeys.stackingDao, | ||
| [YieldProductKeys.stackingDaoStstxbtc]: YieldProviderKeys.stackingDao, | ||
| [YieldProductKeys.stackingDaoPooledStacking]: YieldProviderKeys.stackingDao, | ||
| [YieldProductKeys.lisaListx]: YieldProviderKeys.lisa, | ||
| [YieldProductKeys.lisaLiquidStaking]: YieldProviderKeys.lisa, | ||
| [YieldProductKeys.hermeticaUsdhStaking]: YieldProviderKeys.hermetica, | ||
| [YieldProductKeys.velarAmmLp]: YieldProviderKeys.velar, | ||
| [YieldProductKeys.velarPerps]: YieldProviderKeys.velar, | ||
| [YieldProductKeys.velarAmmLpFarming]: YieldProviderKeys.velar, | ||
| [YieldProductKeys.fastPoolPooledStacking]: YieldProviderKeys.fastPool, | ||
| [YieldProductKeys.xversePooledStacking]: YieldProviderKeys.xverse | ||
| [YieldProductKeys.bitflowAmmLp]: StacksProtocolIds.bitflow, | ||
| [YieldProductKeys.bitflowAmmStaking]: StacksProtocolIds.bitflow, | ||
| [YieldProductKeys.zestBorrowMarket]: StacksProtocolIds.zest, | ||
| [YieldProductKeys.graniteV1Earn]: StacksProtocolIds.granite, | ||
| [YieldProductKeys.graniteV1Borrow]: StacksProtocolIds.granite, | ||
| [YieldProductKeys.stackingDaoStstx]: StacksProtocolIds.stackingDao, | ||
| [YieldProductKeys.stackingDaoStstxbtc]: StacksProtocolIds.stackingDao, | ||
| [YieldProductKeys.stackingDaoPooledStacking]: StacksProtocolIds.stackingDao, | ||
| [YieldProductKeys.lisaListx]: StacksProtocolIds.alex, | ||
| [YieldProductKeys.lisaLiquidStaking]: StacksProtocolIds.alex, | ||
| [YieldProductKeys.hermeticaUsdhStaking]: StacksProtocolIds.hermetica, | ||
| [YieldProductKeys.velarAmmLp]: StacksProtocolIds.velar, | ||
| [YieldProductKeys.velarPerps]: StacksProtocolIds.velar, | ||
| [YieldProductKeys.velarAmmLpFarming]: StacksProtocolIds.velar, | ||
| [YieldProductKeys.fastPoolPooledStacking]: StacksProtocolIds.fastPool, | ||
| [YieldProductKeys.xversePooledStacking]: StacksProtocolIds.xverse | ||
| }; | ||
@@ -734,3 +751,3 @@ | ||
| //#endregion | ||
| export { ActivityLevels, 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, BtcFeeType, ChainId, CryptoAssetCategories, CryptoAssetChains, CryptoAssetProtocols, EMILY_API_BASE_URL_DEVENV, EMILY_API_BASE_URL_MAINNET, EMILY_API_BASE_URL_TESTNET, FeeCalculationTypes, FeeTypes, FungibleCryptoAssetProtocols, GeneralActivityTypes, 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, NonFungibleCryptoAssetProtocols, OnChainActivityStatuses, OnChainActivityTypes, WalletActivityTypes, WalletDefaultNetworkConfigurationIds, YieldProductCategories, YieldProductKeys, YieldProductToProviderMap, YieldProviderKeys, 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, supportedBlockchains, swapExecutionTypes, swapProviderIds, testnetModes, topHolderKeys, transactionFeeQuoteType, transactionFeeTiers, walletIdSchema, whenInputCurrencyMode }; | ||
| export { ActivityLevels, 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, BtcFeeType, ChainId, CryptoAssetCategories, CryptoAssetChains, CryptoAssetProtocols, EMILY_API_BASE_URL_DEVENV, EMILY_API_BASE_URL_MAINNET, EMILY_API_BASE_URL_TESTNET, FeeCalculationTypes, FeeTypes, FungibleCryptoAssetProtocols, GeneralActivityTypes, 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, NonFungibleCryptoAssetProtocols, OnChainActivityStatuses, OnChainActivityTypes, StacksProtocolIds, WalletActivityTypes, WalletDefaultNetworkConfigurationIds, YieldProductCategories, YieldProductKeys, YieldProductToProviderMap, 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.js.map |
@@ -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<YieldProviderKey, 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/swap/swap.model.ts","../src/token-analytics.model.ts","../src/yield/yield-provider.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","import { CryptoAssetId } from '../assets/asset-id.model';\nimport { NativeCryptoAsset, Sip10Asset } from '../assets/asset.model';\nimport { Money } from '../money.model';\n\nexport type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset;\n\nexport interface SwapAsset {\n readonly asset: SwappableFungibleCryptoAsset;\n readonly providerAssets: SwapProviderAsset[];\n}\n\nexport const swapProviderIds = ['bitflow-sdk', 'sbtc-bridge', 'alex-sdk', 'velar-sdk'] 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 | 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: SwapDex[];\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 SbtcBridgeSwapQuote extends BaseSwapQuote {\n readonly providerId: 'sbtc-bridge';\n readonly providerQuoteData: {\n signerSweepTxFeeSats: number;\n };\n}\n\nexport interface SwapDex {\n readonly name: string;\n readonly url: string;\n readonly logo: string;\n readonly description: string;\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 individuals: { 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","export const YieldProviderKeys = {\n bitflow: 'bitflow',\n zest: 'zest',\n granite: 'granite',\n stackingDao: 'stackingdao',\n lisa: 'lisa',\n hermetica: 'hermetica',\n fastPool: 'fast-pool',\n xverse: 'xverse',\n velar: 'velar',\n} as const;\nexport type YieldProviderKey = (typeof YieldProviderKeys)[keyof typeof YieldProviderKeys];\n\nexport interface YieldProvider {\n readonly key: YieldProviderKey;\n readonly name: string;\n readonly logo: string;\n readonly url: string;\n}\n","import { YieldProviderKey, YieldProviderKeys } from './yield-provider.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]: YieldProviderKeys.bitflow,\n [YieldProductKeys.bitflowAmmStaking]: YieldProviderKeys.bitflow,\n [YieldProductKeys.zestBorrowMarket]: YieldProviderKeys.zest,\n [YieldProductKeys.graniteV1Earn]: YieldProviderKeys.granite,\n [YieldProductKeys.graniteV1Borrow]: YieldProviderKeys.granite,\n [YieldProductKeys.stackingDaoStstx]: YieldProviderKeys.stackingDao,\n [YieldProductKeys.stackingDaoStstxbtc]: YieldProviderKeys.stackingDao,\n [YieldProductKeys.stackingDaoPooledStacking]: YieldProviderKeys.stackingDao,\n [YieldProductKeys.lisaListx]: YieldProviderKeys.lisa,\n [YieldProductKeys.lisaLiquidStaking]: YieldProviderKeys.lisa,\n [YieldProductKeys.hermeticaUsdhStaking]: YieldProviderKeys.hermetica,\n [YieldProductKeys.velarAmmLp]: YieldProviderKeys.velar,\n [YieldProductKeys.velarPerps]: YieldProviderKeys.velar,\n [YieldProductKeys.velarAmmLpFarming]: YieldProviderKeys.velar,\n [YieldProductKeys.fastPoolPooledStacking]: YieldProviderKeys.fastPool,\n [YieldProductKeys.xversePooledStacking]: YieldProviderKeys.xverse,\n} as const;\n\nexport type YieldProduct = BaseYieldProduct | PooledStackingYieldProduct;\n\nexport interface BaseYieldProduct {\n readonly key: YieldProductKey;\n readonly provider: YieldProviderKey;\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 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';\nimport { YieldProvider, YieldProviderKey } from '../yield-provider.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: YieldProviderKey\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): YieldProviderKey {\n return YieldProductToProviderMap[product];\n}\n\nexport function getCategoryForProduct(product: YieldProduct): YieldProductCategory {\n return product.category;\n}\n\nexport function isProductInProvider(product: YieldProductKey, provider: YieldProviderKey): boolean {\n return YieldProductToProviderMap[product] === provider;\n}\n\nexport function getProductsForProvider(provider: YieldProviderKey): 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<YieldProviderKey, YieldPosition[]> {\n const grouped: Partial<Record<YieldProviderKey, 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<YieldProviderKey, 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: YieldProviderKey\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: YieldProvider\n): T & { providerData: YieldProvider } {\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: YieldProvider,\n product: YieldProduct\n): T & { providerData: YieldProvider; 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 {\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 = ['bitflow-sdk', 'sbtc-bridge', 'alex-sdk', 'velar-sdk'] 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 | 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 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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"} |
+3
-3
@@ -5,3 +5,3 @@ { | ||
| "description": "Leather models and types", | ||
| "version": "0.53.0", | ||
| "version": "0.54.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": [ |
+1
-8
@@ -25,2 +25,3 @@ export * from './account.model'; | ||
| export * from './settings.model'; | ||
| export * from './protocols/stacks-protocol.model'; | ||
| export * from './swap/swap.model'; | ||
@@ -47,9 +48,1 @@ export * from './token-analytics.model'; | ||
| export * from './yield/yield-product.model'; | ||
| export * from './yield/yield-provider.model'; | ||
| export * from './activity/activity-level.model'; | ||
| export * from './activity/activity-status.model'; | ||
| export * from './activity/activity-type.model'; | ||
| export * from './activity/activity.model'; | ||
| export * from './account.model'; | ||
| export * from './bns.model'; | ||
| export * from './swap/swap.model'; |
| import { CryptoAssetId } from '../assets/asset-id.model'; | ||
| import { NativeCryptoAsset, Sip10Asset } from '../assets/asset.model'; | ||
| import { Money } from '../money.model'; | ||
| import type { StacksProtocol } from '../protocols/stacks-protocol.model'; | ||
@@ -39,3 +40,3 @@ export type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset; | ||
| readonly targetAmount: Money; | ||
| readonly dexPath: SwapDex[]; | ||
| readonly dexPath: StacksProtocol[]; | ||
| readonly assetPath: (NativeCryptoAsset | Sip10Asset)[]; | ||
@@ -83,9 +84,2 @@ readonly isExecutable: boolean; | ||
| export interface SwapDex { | ||
| readonly name: string; | ||
| readonly url: string; | ||
| readonly logo: string; | ||
| readonly description: string; | ||
| } | ||
| export const swapExecutionTypes = ['stacks-contract-call', 'sbtc-bridge-deposit'] as const; | ||
@@ -92,0 +86,0 @@ export type SwapExecutionType = (typeof swapExecutionTypes)[number]; |
@@ -6,3 +6,3 @@ export interface TokenHolderSegment { | ||
| readonly multisigs: { readonly count: number; readonly balance: number }; | ||
| readonly individuals: { readonly count: number; readonly balance: number }; | ||
| readonly standard: { readonly count: number; readonly balance: number }; | ||
| } | ||
@@ -9,0 +9,0 @@ |
@@ -0,1 +1,2 @@ | ||
| import { StacksProtocol, StacksProtocolId } from '../../protocols/stacks-protocol.model'; | ||
| import type { | ||
@@ -24,3 +25,2 @@ BitflowAmmLpPosition, | ||
| } from '../yield-product.model'; | ||
| import { YieldProvider, YieldProviderKey } from '../yield-provider.model'; | ||
@@ -65,3 +65,3 @@ export function isBitflowAmmLpPosition(pos: YieldPosition): pos is BitflowAmmLpPosition { | ||
| positions: YieldPosition[], | ||
| provider: YieldProviderKey | ||
| provider: StacksProtocolId | ||
| ): YieldPosition[] { | ||
@@ -116,3 +116,3 @@ return positions.filter(p => p.provider === provider); | ||
| export function getProviderForProduct(product: YieldProductKey): YieldProviderKey { | ||
| export function getProviderForProduct(product: YieldProductKey): StacksProtocolId { | ||
| return YieldProductToProviderMap[product]; | ||
@@ -125,7 +125,7 @@ } | ||
| export function isProductInProvider(product: YieldProductKey, provider: YieldProviderKey): boolean { | ||
| export function isProductInProvider(product: YieldProductKey, provider: StacksProtocolId): boolean { | ||
| return YieldProductToProviderMap[product] === provider; | ||
| } | ||
| export function getProductsForProvider(provider: YieldProviderKey): YieldProductKey[] { | ||
| export function getProductsForProvider(provider: StacksProtocolId): YieldProductKey[] { | ||
| return Object.entries(YieldProductToProviderMap) | ||
@@ -145,4 +145,4 @@ .filter(([_, p]) => p === provider) | ||
| positions: YieldPosition[] | ||
| ): Record<YieldProviderKey, YieldPosition[]> { | ||
| const grouped: Partial<Record<YieldProviderKey, YieldPosition[]>> = {}; | ||
| ): Record<StacksProtocolId, YieldPosition[]> { | ||
| const grouped: Partial<Record<StacksProtocolId, YieldPosition[]>> = {}; | ||
@@ -157,3 +157,3 @@ for (const position of positions) { | ||
| return grouped as Record<YieldProviderKey, YieldPosition[]>; | ||
| return grouped as Record<StacksProtocolId, YieldPosition[]>; | ||
| } | ||
@@ -197,3 +197,3 @@ | ||
| positions: YieldPosition[], | ||
| provider: YieldProviderKey | ||
| provider: StacksProtocolId | ||
| ): boolean { | ||
@@ -214,4 +214,4 @@ return positions.some(p => p.provider === provider); | ||
| position: T, | ||
| provider: YieldProvider | ||
| ): T & { providerData: YieldProvider } { | ||
| provider: StacksProtocol | ||
| ): T & { providerData: StacksProtocol } { | ||
| return { ...position, providerData: provider }; | ||
@@ -229,5 +229,5 @@ } | ||
| position: T, | ||
| provider: YieldProvider, | ||
| provider: StacksProtocol, | ||
| product: YieldProduct | ||
| ): T & { providerData: YieldProvider; productData: YieldProduct } { | ||
| ): T & { providerData: StacksProtocol; productData: YieldProduct } { | ||
| return { ...position, providerData: provider, productData: product }; | ||
@@ -234,0 +234,0 @@ } |
@@ -6,3 +6,3 @@ import type { FungibleCryptoAsset } from '../../assets/asset.model'; | ||
| export interface LisaLiStxPosition extends BaseYieldPosition { | ||
| provider: 'lisa'; | ||
| provider: 'alex'; | ||
| product: 'lisa-listx'; | ||
@@ -13,3 +13,3 @@ holding: LisaLstHolding; | ||
| export interface LisaLiquidStakingPosition extends BaseYieldPosition { | ||
| provider: 'lisa'; | ||
| provider: 'alex'; | ||
| product: 'lisa-liquid-staking'; | ||
@@ -16,0 +16,0 @@ holding: LisaLstHolding; |
@@ -6,3 +6,3 @@ import type { FungibleCryptoAsset } from '../../assets/asset.model'; | ||
| interface BaseStackingDaoLstPosition extends BaseYieldPosition { | ||
| provider: 'stackingdao'; | ||
| provider: 'stacking-dao'; | ||
| withdrawalsBalance: Money; | ||
@@ -47,4 +47,4 @@ lstHolding?: StackingDaoLstHolding; | ||
| export interface StackingDaoPooledStackingPosition extends BasePooledStackingPosition { | ||
| provider: 'stackingdao'; | ||
| provider: 'stacking-dao'; | ||
| product: 'stackingdao-pooled-stacking'; | ||
| } |
| import type { Money } from '../money.model'; | ||
| import type { StacksProtocolId } from '../protocols/stacks-protocol.model'; | ||
| import type { YieldProductKey } from './yield-product.model'; | ||
| import type { YieldProviderKey } from './yield-provider.model'; | ||
| export interface BaseYieldPosition { | ||
| readonly id: string; | ||
| readonly provider: YieldProviderKey; | ||
| readonly provider: StacksProtocolId; | ||
| readonly product: YieldProductKey; | ||
@@ -9,0 +9,0 @@ readonly totalBalance: Money; |
@@ -1,2 +0,2 @@ | ||
| import { YieldProviderKey, YieldProviderKeys } from './yield-provider.model'; | ||
| import { StacksProtocolId, StacksProtocolIds } from '../protocols/stacks-protocol.model'; | ||
@@ -35,18 +35,18 @@ export const YieldProductKeys = { | ||
| export const YieldProductToProviderMap = { | ||
| [YieldProductKeys.bitflowAmmLp]: YieldProviderKeys.bitflow, | ||
| [YieldProductKeys.bitflowAmmStaking]: YieldProviderKeys.bitflow, | ||
| [YieldProductKeys.zestBorrowMarket]: YieldProviderKeys.zest, | ||
| [YieldProductKeys.graniteV1Earn]: YieldProviderKeys.granite, | ||
| [YieldProductKeys.graniteV1Borrow]: YieldProviderKeys.granite, | ||
| [YieldProductKeys.stackingDaoStstx]: YieldProviderKeys.stackingDao, | ||
| [YieldProductKeys.stackingDaoStstxbtc]: YieldProviderKeys.stackingDao, | ||
| [YieldProductKeys.stackingDaoPooledStacking]: YieldProviderKeys.stackingDao, | ||
| [YieldProductKeys.lisaListx]: YieldProviderKeys.lisa, | ||
| [YieldProductKeys.lisaLiquidStaking]: YieldProviderKeys.lisa, | ||
| [YieldProductKeys.hermeticaUsdhStaking]: YieldProviderKeys.hermetica, | ||
| [YieldProductKeys.velarAmmLp]: YieldProviderKeys.velar, | ||
| [YieldProductKeys.velarPerps]: YieldProviderKeys.velar, | ||
| [YieldProductKeys.velarAmmLpFarming]: YieldProviderKeys.velar, | ||
| [YieldProductKeys.fastPoolPooledStacking]: YieldProviderKeys.fastPool, | ||
| [YieldProductKeys.xversePooledStacking]: YieldProviderKeys.xverse, | ||
| [YieldProductKeys.bitflowAmmLp]: StacksProtocolIds.bitflow, | ||
| [YieldProductKeys.bitflowAmmStaking]: StacksProtocolIds.bitflow, | ||
| [YieldProductKeys.zestBorrowMarket]: StacksProtocolIds.zest, | ||
| [YieldProductKeys.graniteV1Earn]: StacksProtocolIds.granite, | ||
| [YieldProductKeys.graniteV1Borrow]: StacksProtocolIds.granite, | ||
| [YieldProductKeys.stackingDaoStstx]: StacksProtocolIds.stackingDao, | ||
| [YieldProductKeys.stackingDaoStstxbtc]: StacksProtocolIds.stackingDao, | ||
| [YieldProductKeys.stackingDaoPooledStacking]: StacksProtocolIds.stackingDao, | ||
| [YieldProductKeys.lisaListx]: StacksProtocolIds.alex, | ||
| [YieldProductKeys.lisaLiquidStaking]: StacksProtocolIds.alex, | ||
| [YieldProductKeys.hermeticaUsdhStaking]: StacksProtocolIds.hermetica, | ||
| [YieldProductKeys.velarAmmLp]: StacksProtocolIds.velar, | ||
| [YieldProductKeys.velarPerps]: StacksProtocolIds.velar, | ||
| [YieldProductKeys.velarAmmLpFarming]: StacksProtocolIds.velar, | ||
| [YieldProductKeys.fastPoolPooledStacking]: StacksProtocolIds.fastPool, | ||
| [YieldProductKeys.xversePooledStacking]: StacksProtocolIds.xverse, | ||
| } as const; | ||
@@ -58,3 +58,3 @@ | ||
| readonly key: YieldProductKey; | ||
| readonly provider: YieldProviderKey; | ||
| readonly provider: StacksProtocolId; | ||
| readonly category: YieldProductCategory; | ||
@@ -61,0 +61,0 @@ readonly name: string; |
| export const YieldProviderKeys = { | ||
| bitflow: 'bitflow', | ||
| zest: 'zest', | ||
| granite: 'granite', | ||
| stackingDao: 'stackingdao', | ||
| lisa: 'lisa', | ||
| hermetica: 'hermetica', | ||
| fastPool: 'fast-pool', | ||
| xverse: 'xverse', | ||
| velar: 'velar', | ||
| } as const; | ||
| export type YieldProviderKey = (typeof YieldProviderKeys)[keyof typeof YieldProviderKeys]; | ||
| export interface YieldProvider { | ||
| readonly key: YieldProviderKey; | ||
| readonly name: string; | ||
| readonly logo: string; | ||
| readonly url: string; | ||
| } |
250889
0.64%3908
0.59%