@leather.io/models 0.53.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
 
2
- > @leather.io/models@0.53.0 build /home/runner/work/mono/mono/packages/models
2
+ > @leather.io/models@0.54.0 build /home/runner/work/mono/mono/packages/models
3
3
  > tsdown
4
4
 
5
5
  ℹ tsdown v0.16.5 powered by rolldown v1.0.0-beta.50
@@ -7,9 +7,9 @@
7
7
  ℹ entry: src/index.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/index.js 23.02 kB │ gzip: 5.37 kB
11
- ℹ dist/index.js.map 52.03 kB │ gzip: 11.02 kB
12
- ℹ dist/index.d.ts.map 19.93 kB │ gzip: 7.73 kB
13
- ℹ dist/index.d.ts 51.71 kB │ gzip: 10.33 kB
14
- ℹ 4 files, total: 146.68 kB
15
- ✔ Build complete in 2770ms
10
+ ℹ dist/index.js 23.30 kB │ gzip: 5.49 kB
11
+ ℹ dist/index.js.map 52.53 kB │ gzip: 11.14 kB
12
+ ℹ dist/index.d.ts.map 20.03 kB │ gzip: 7.73 kB
13
+ ℹ dist/index.d.ts 52.01 kB │ gzip: 10.43 kB
14
+ ℹ 4 files, total: 147.86 kB
15
+ ✔ Build complete in 2821ms
package/CHANGELOG.md CHANGED
@@ -36,6 +36,13 @@
36
36
  * devDependencies
37
37
  * @leather.io/prettier-config bumped to 0.9.0
38
38
 
39
+ ## [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)
40
+
41
+
42
+ ### Features
43
+
44
+ * **models,services:** unify SwapDex and YieldProvider into StacksProtocol model ([0d7f44c](https://github.com/leather-io/mono/commit/0d7f44cb2961c57aa0730066b39697e5ab7ca632))
45
+
39
46
  ## [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)
40
47
 
41
48
 
package/dist/index.d.ts CHANGED
@@ -750,6 +750,31 @@ type AnalyticsPreference = z.infer<typeof analyticsPreferenceSchema>;
750
750
  declare const emailAddressSchema: z.ZodEmail;
751
751
  type EmailAddress = z.infer<typeof emailAddressSchema>;
752
752
  //#endregion
753
+ //#region src/protocols/stacks-protocol.model.d.ts
754
+ declare const StacksProtocolIds: {
755
+ readonly alex: "alex";
756
+ readonly arkadiko: "arkadiko";
757
+ readonly bitflow: "bitflow";
758
+ readonly fastPool: "fast-pool";
759
+ readonly granite: "granite";
760
+ readonly hermetica: "hermetica";
761
+ readonly sbtcBridge: "sbtc-bridge";
762
+ readonly stackingDao: "stacking-dao";
763
+ readonly velar: "velar";
764
+ readonly xverse: "xverse";
765
+ readonly zest: "zest";
766
+ };
767
+ type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds];
768
+ interface StacksProtocol {
769
+ readonly id: StacksProtocolId;
770
+ readonly name: string;
771
+ readonly url: string;
772
+ readonly logo: string;
773
+ readonly description?: string;
774
+ }
775
+ declare const stacksProtocolActions: readonly ["swap", "add-liquidity", "remove-liquidity", "stake", "unstake", "stack", "unstack", "deposit", "withdraw", "borrow", "repay", "claim-rewards", "bridge"];
776
+ type StacksProtocolAction = (typeof stacksProtocolActions)[number];
777
+ //#endregion
753
778
  //#region src/swap/swap.model.d.ts
754
779
  type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset;
755
780
  interface SwapAsset {
@@ -775,7 +800,7 @@ interface BaseSwapQuote {
775
800
  readonly targetAsset: SwappableFungibleCryptoAsset;
776
801
  readonly baseAmount: Money;
777
802
  readonly targetAmount: Money;
778
- readonly dexPath: SwapDex[];
803
+ readonly dexPath: StacksProtocol[];
779
804
  readonly assetPath: (NativeCryptoAsset | Sip10Asset)[];
780
805
  readonly isExecutable: boolean;
781
806
  readonly executionConstraints: ExecutionConstraint[];
@@ -812,12 +837,6 @@ interface SbtcBridgeSwapQuote extends BaseSwapQuote {
812
837
  signerSweepTxFeeSats: number;
813
838
  };
814
839
  }
815
- interface SwapDex {
816
- readonly name: string;
817
- readonly url: string;
818
- readonly logo: string;
819
- readonly description: string;
820
- }
821
840
  declare const swapExecutionTypes: readonly ["stacks-contract-call", "sbtc-bridge-deposit"];
822
841
  type SwapExecutionType = (typeof swapExecutionTypes)[number];
823
842
  interface BaseSwapExecutionData {
@@ -851,7 +870,7 @@ interface TokenHolderSegment {
851
870
  readonly count: number;
852
871
  readonly balance: number;
853
872
  };
854
- readonly individuals: {
873
+ readonly standard: {
855
874
  readonly count: number;
856
875
  readonly balance: number;
857
876
  };
@@ -991,26 +1010,6 @@ interface OwnedUtxo extends Utxo {
991
1010
  readonly keyOrigin: string;
992
1011
  }
993
1012
  //#endregion
994
- //#region src/yield/yield-provider.model.d.ts
995
- declare const YieldProviderKeys: {
996
- readonly bitflow: "bitflow";
997
- readonly zest: "zest";
998
- readonly granite: "granite";
999
- readonly stackingDao: "stackingdao";
1000
- readonly lisa: "lisa";
1001
- readonly hermetica: "hermetica";
1002
- readonly fastPool: "fast-pool";
1003
- readonly xverse: "xverse";
1004
- readonly velar: "velar";
1005
- };
1006
- type YieldProviderKey = (typeof YieldProviderKeys)[keyof typeof YieldProviderKeys];
1007
- interface YieldProvider {
1008
- readonly key: YieldProviderKey;
1009
- readonly name: string;
1010
- readonly logo: string;
1011
- readonly url: string;
1012
- }
1013
- //#endregion
1014
1013
  //#region src/yield/yield-product.model.d.ts
1015
1014
  declare const YieldProductKeys: {
1016
1015
  readonly bitflowAmmLp: "bitflow-amm-lp";
@@ -1046,11 +1045,11 @@ declare const YieldProductToProviderMap: {
1046
1045
  readonly "zest-borrow-market": "zest";
1047
1046
  readonly "granite-v1-earn": "granite";
1048
1047
  readonly "granite-v1-borrow": "granite";
1049
- readonly "stackingdao-ststx": "stackingdao";
1050
- readonly "stackingdao-ststxbtc": "stackingdao";
1051
- readonly "stackingdao-pooled-stacking": "stackingdao";
1052
- readonly "lisa-listx": "lisa";
1053
- readonly "lisa-liquid-staking": "lisa";
1048
+ readonly "stackingdao-ststx": "stacking-dao";
1049
+ readonly "stackingdao-ststxbtc": "stacking-dao";
1050
+ readonly "stackingdao-pooled-stacking": "stacking-dao";
1051
+ readonly "lisa-listx": "alex";
1052
+ readonly "lisa-liquid-staking": "alex";
1054
1053
  readonly "hermetica-usdh-staking": "hermetica";
1055
1054
  readonly "velar-amm-lp": "velar";
1056
1055
  readonly "velar-perps": "velar";
@@ -1061,7 +1060,7 @@ declare const YieldProductToProviderMap: {
1061
1060
  type YieldProduct = BaseYieldProduct | PooledStackingYieldProduct;
1062
1061
  interface BaseYieldProduct {
1063
1062
  readonly key: YieldProductKey;
1064
- readonly provider: YieldProviderKey;
1063
+ readonly provider: StacksProtocolId;
1065
1064
  readonly category: YieldProductCategory;
1066
1065
  readonly name: string;
1067
1066
  readonly url: string;
@@ -1074,7 +1073,7 @@ interface PooledStackingYieldProduct extends BaseYieldProduct {
1074
1073
  //#region src/yield/yield-position.base.model.d.ts
1075
1074
  interface BaseYieldPosition {
1076
1075
  readonly id: string;
1077
- readonly provider: YieldProviderKey;
1076
+ readonly provider: StacksProtocolId;
1078
1077
  readonly product: YieldProductKey;
1079
1078
  readonly totalBalance: Money;
1080
1079
  readonly apy: number;
@@ -1144,7 +1143,7 @@ interface GraniteV1CollateralAsset {
1144
1143
  //#endregion
1145
1144
  //#region src/yield/providers/stacking-dao-position.model.d.ts
1146
1145
  interface BaseStackingDaoLstPosition extends BaseYieldPosition {
1147
- provider: 'stackingdao';
1146
+ provider: 'stacking-dao';
1148
1147
  withdrawalsBalance: Money;
1149
1148
  lstHolding?: StackingDaoLstHolding;
1150
1149
  withdrawals: StackingDaoLstWithdrawal[];
@@ -1178,7 +1177,7 @@ interface StackingDaoLstWithdrawal {
1178
1177
  unlockBurnHeight: number;
1179
1178
  }
1180
1179
  interface StackingDaoPooledStackingPosition extends BasePooledStackingPosition {
1181
- provider: 'stackingdao';
1180
+ provider: 'stacking-dao';
1182
1181
  product: 'stackingdao-pooled-stacking';
1183
1182
  }
1184
1183
  //#endregion
@@ -1223,12 +1222,12 @@ interface HermeticaStaking {
1223
1222
  //#endregion
1224
1223
  //#region src/yield/providers/lisa-position.model.d.ts
1225
1224
  interface LisaLiStxPosition extends BaseYieldPosition {
1226
- provider: 'lisa';
1225
+ provider: 'alex';
1227
1226
  product: 'lisa-listx';
1228
1227
  holding: LisaLstHolding;
1229
1228
  }
1230
1229
  interface LisaLiquidStakingPosition extends BaseYieldPosition {
1231
- provider: 'lisa';
1230
+ provider: 'alex';
1232
1231
  product: 'lisa-liquid-staking';
1233
1232
  holding: LisaLstHolding;
1234
1233
  }
@@ -1293,33 +1292,33 @@ declare function isGraniteBorrowPosition(pos: YieldPosition): pos is GraniteV1Bo
1293
1292
  declare function isStackingDaoStStxPosition(pos: YieldPosition): pos is StackingDaoStStxPosition;
1294
1293
  declare function isStackingDaoStStxBtcPosition(pos: YieldPosition): pos is StackingDaoStStxBtcPosition;
1295
1294
  declare function isStackingDaoPooledPosition(pos: YieldPosition): pos is StackingDaoPooledStackingPosition;
1296
- declare function filterPositionsByProvider(positions: YieldPosition[], provider: YieldProviderKey): YieldPosition[];
1295
+ declare function filterPositionsByProvider(positions: YieldPosition[], provider: StacksProtocolId): YieldPosition[];
1297
1296
  declare function filterPositionsByProduct(positions: YieldPosition[], product: YieldProductKey): YieldPosition[];
1298
1297
  declare function filterPositionsByCategory(positions: YieldPosition[], products: YieldProduct[], category: YieldProductCategory): YieldPosition[];
1299
1298
  declare function sortPositionsByBalance(positions: YieldPosition[], ascending?: boolean): YieldPosition[];
1300
1299
  declare function sortPositionsByApy(positions: YieldPosition[], ascending?: boolean): YieldPosition[];
1301
1300
  declare function sortPositionsByUpdateTime(positions: YieldPosition[], ascending?: boolean): YieldPosition[];
1302
- declare function getProviderForProduct(product: YieldProductKey): YieldProviderKey;
1301
+ declare function getProviderForProduct(product: YieldProductKey): StacksProtocolId;
1303
1302
  declare function getCategoryForProduct(product: YieldProduct): YieldProductCategory;
1304
- declare function isProductInProvider(product: YieldProductKey, provider: YieldProviderKey): boolean;
1305
- declare function getProductsForProvider(provider: YieldProviderKey): YieldProductKey[];
1303
+ declare function isProductInProvider(product: YieldProductKey, provider: StacksProtocolId): boolean;
1304
+ declare function getProductsForProvider(provider: StacksProtocolId): YieldProductKey[];
1306
1305
  declare function getProductsInCategory(products: YieldProduct[], category: YieldProductCategory): YieldProduct[];
1307
- declare function groupPositionsByProvider(positions: YieldPosition[]): Record<YieldProviderKey, YieldPosition[]>;
1306
+ declare function groupPositionsByProvider(positions: YieldPosition[]): Record<StacksProtocolId, YieldPosition[]>;
1308
1307
  declare function groupPositionsByCategory(positions: YieldPosition[], products: YieldProduct[]): Record<string, YieldPosition[]>;
1309
1308
  declare function getPositionsInCategories(positions: YieldPosition[], products: YieldProduct[], categories: YieldProductCategory[]): YieldPosition[];
1310
- declare function hasPositionsInProvider(positions: YieldPosition[], provider: YieldProviderKey): boolean;
1309
+ declare function hasPositionsInProvider(positions: YieldPosition[], provider: StacksProtocolId): boolean;
1311
1310
  declare function hasPositionsInCategory(positions: YieldPosition[], products: YieldProduct[], category: YieldProductCategory): boolean;
1312
- declare function enrichPositionWithProvider<T extends YieldPosition>(position: T, provider: YieldProvider): T & {
1313
- providerData: YieldProvider;
1311
+ declare function enrichPositionWithProvider<T extends YieldPosition>(position: T, provider: StacksProtocol): T & {
1312
+ providerData: StacksProtocol;
1314
1313
  };
1315
1314
  declare function enrichPositionWithProduct<T extends YieldPosition>(position: T, product: YieldProduct): T & {
1316
1315
  productData: YieldProduct;
1317
1316
  };
1318
- declare function enrichPositionWithMetadata<T extends YieldPosition>(position: T, provider: YieldProvider, product: YieldProduct): T & {
1319
- providerData: YieldProvider;
1317
+ declare function enrichPositionWithMetadata<T extends YieldPosition>(position: T, provider: StacksProtocol, product: YieldProduct): T & {
1318
+ providerData: StacksProtocol;
1320
1319
  productData: YieldProduct;
1321
1320
  };
1322
1321
  declare function getCategoryDisplayName(category: YieldProductCategory): string;
1323
1322
  //#endregion
1324
- 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 };
1323
+ 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 };
1325
1324
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
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/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"}
package/dist/index.js CHANGED
@@ -503,6 +503,37 @@ const accountDisplayPreferenceSchema = z.enum([
503
503
  const analyticsPreferenceSchema = z.enum(["consent-given", "rejects-tracking"]);
504
504
  const emailAddressSchema = z.email({ error: "Invalid email address" });
505
505
 
506
+ //#endregion
507
+ //#region src/protocols/stacks-protocol.model.ts
508
+ const StacksProtocolIds = {
509
+ alex: "alex",
510
+ arkadiko: "arkadiko",
511
+ bitflow: "bitflow",
512
+ fastPool: "fast-pool",
513
+ granite: "granite",
514
+ hermetica: "hermetica",
515
+ sbtcBridge: "sbtc-bridge",
516
+ stackingDao: "stacking-dao",
517
+ velar: "velar",
518
+ xverse: "xverse",
519
+ zest: "zest"
520
+ };
521
+ const stacksProtocolActions = [
522
+ "swap",
523
+ "add-liquidity",
524
+ "remove-liquidity",
525
+ "stake",
526
+ "unstake",
527
+ "stack",
528
+ "unstack",
529
+ "deposit",
530
+ "withdraw",
531
+ "borrow",
532
+ "repay",
533
+ "claim-rewards",
534
+ "bridge"
535
+ ];
536
+
506
537
  //#endregion
507
538
  //#region src/swap/swap.model.ts
508
539
  const swapProviderIds = [
@@ -529,20 +560,6 @@ const percentileKeys = [
529
560
  75
530
561
  ];
531
562
 
532
- //#endregion
533
- //#region src/yield/yield-provider.model.ts
534
- const YieldProviderKeys = {
535
- bitflow: "bitflow",
536
- zest: "zest",
537
- granite: "granite",
538
- stackingDao: "stackingdao",
539
- lisa: "lisa",
540
- hermetica: "hermetica",
541
- fastPool: "fast-pool",
542
- xverse: "xverse",
543
- velar: "velar"
544
- };
545
-
546
563
  //#endregion
547
564
  //#region src/yield/yield-product.model.ts
548
565
  const YieldProductKeys = {
@@ -572,22 +589,22 @@ const YieldProductCategories = {
572
589
  PERPS: "perps"
573
590
  };
574
591
  const YieldProductToProviderMap = {
575
- [YieldProductKeys.bitflowAmmLp]: YieldProviderKeys.bitflow,
576
- [YieldProductKeys.bitflowAmmStaking]: YieldProviderKeys.bitflow,
577
- [YieldProductKeys.zestBorrowMarket]: YieldProviderKeys.zest,
578
- [YieldProductKeys.graniteV1Earn]: YieldProviderKeys.granite,
579
- [YieldProductKeys.graniteV1Borrow]: YieldProviderKeys.granite,
580
- [YieldProductKeys.stackingDaoStstx]: YieldProviderKeys.stackingDao,
581
- [YieldProductKeys.stackingDaoStstxbtc]: YieldProviderKeys.stackingDao,
582
- [YieldProductKeys.stackingDaoPooledStacking]: YieldProviderKeys.stackingDao,
583
- [YieldProductKeys.lisaListx]: YieldProviderKeys.lisa,
584
- [YieldProductKeys.lisaLiquidStaking]: YieldProviderKeys.lisa,
585
- [YieldProductKeys.hermeticaUsdhStaking]: YieldProviderKeys.hermetica,
586
- [YieldProductKeys.velarAmmLp]: YieldProviderKeys.velar,
587
- [YieldProductKeys.velarPerps]: YieldProviderKeys.velar,
588
- [YieldProductKeys.velarAmmLpFarming]: YieldProviderKeys.velar,
589
- [YieldProductKeys.fastPoolPooledStacking]: YieldProviderKeys.fastPool,
590
- [YieldProductKeys.xversePooledStacking]: YieldProviderKeys.xverse
592
+ [YieldProductKeys.bitflowAmmLp]: StacksProtocolIds.bitflow,
593
+ [YieldProductKeys.bitflowAmmStaking]: StacksProtocolIds.bitflow,
594
+ [YieldProductKeys.zestBorrowMarket]: StacksProtocolIds.zest,
595
+ [YieldProductKeys.graniteV1Earn]: StacksProtocolIds.granite,
596
+ [YieldProductKeys.graniteV1Borrow]: StacksProtocolIds.granite,
597
+ [YieldProductKeys.stackingDaoStstx]: StacksProtocolIds.stackingDao,
598
+ [YieldProductKeys.stackingDaoStstxbtc]: StacksProtocolIds.stackingDao,
599
+ [YieldProductKeys.stackingDaoPooledStacking]: StacksProtocolIds.stackingDao,
600
+ [YieldProductKeys.lisaListx]: StacksProtocolIds.alex,
601
+ [YieldProductKeys.lisaLiquidStaking]: StacksProtocolIds.alex,
602
+ [YieldProductKeys.hermeticaUsdhStaking]: StacksProtocolIds.hermetica,
603
+ [YieldProductKeys.velarAmmLp]: StacksProtocolIds.velar,
604
+ [YieldProductKeys.velarPerps]: StacksProtocolIds.velar,
605
+ [YieldProductKeys.velarAmmLpFarming]: StacksProtocolIds.velar,
606
+ [YieldProductKeys.fastPoolPooledStacking]: StacksProtocolIds.fastPool,
607
+ [YieldProductKeys.xversePooledStacking]: StacksProtocolIds.xverse
591
608
  };
592
609
 
593
610
  //#endregion
@@ -728,5 +745,5 @@ function getCategoryDisplayName(category) {
728
745
  }
729
746
 
730
747
  //#endregion
731
- 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 };
748
+ 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 };
732
749
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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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"}
1
+ {"version":3,"file":"index.js","names":["btcTxTimeMap: Record<keyof AverageBitcoinFeeRates, string>","networkMainnet: NetworkConfiguration","networkTestnet: NetworkConfiguration","networkTestnet4: NetworkConfiguration","networkSignet: NetworkConfiguration","networkSbtcTestnet: NetworkConfiguration","networkSbtcDevenv: NetworkConfiguration","networkDevnet: NetworkConfiguration","defaultCurrentNetwork: NetworkConfiguration","defaultNetworksKeyedById: Record<\n WalletDefaultNetworkConfigurationIds,\n NetworkConfiguration\n>","grouped: Partial<Record<StacksProtocolId, YieldPosition[]>>","grouped: Record<string, YieldPosition[]>"],"sources":["../src/account.model.ts","../src/activity/activity-level.model.ts","../src/input-currency-mode.model.ts","../src/activity/activity-status.model.ts","../src/activity/activity-type.model.ts","../src/assets/asset-type-guards.ts","../src/assets/asset.model.ts","../src/assets/sip9-asset.model.ts","../src/bitcoin.model.ts","../src/bns.model.ts","../src/fees/bitcoin-fees.model.ts","../src/fees/fees.model.ts","../src/fees/transaction-fees.model.ts","../src/inscription-mime-type.model.ts","../src/market.model.ts","../src/network/network.model.ts","../src/network/network.schema.ts","../src/settings.model.ts","../src/protocols/stacks-protocol.model.ts","../src/swap/swap.model.ts","../src/token-analytics.model.ts","../src/yield/yield-product.model.ts","../src/yield/helpers/yield.helpers.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const walletIdSchema = z.object({\n fingerprint: z.string(),\n});\n\nexport const accountIdSchema = walletIdSchema.and(z.object({ accountIndex: z.number() }));\n\nexport const bitcoinAddressInfoSchema = z.object({\n taprootDescriptor: z.string(),\n nativeSegwitDescriptor: z.string(),\n zeroIndexTaprootPayerAddress: z.string().optional(),\n zeroIndexNativeSegwitPayerAddress: z.string().optional(),\n});\n\nexport const stacksAddressInfoSchema = z.object({\n stxAddress: z.string(),\n});\n\nexport const accountAddressesSchema = z.object({\n id: accountIdSchema,\n bitcoin: bitcoinAddressInfoSchema.optional(),\n stacks: stacksAddressInfoSchema.optional(),\n});\n\nexport type WalletId = z.infer<typeof walletIdSchema>;\nexport type AccountId = z.infer<typeof accountIdSchema>;\n\nexport type BitcoinAddressInfo = z.infer<typeof bitcoinAddressInfoSchema>;\nexport type StacksAddressInfo = z.infer<typeof stacksAddressInfoSchema>;\nexport type AccountAddresses = z.infer<typeof accountAddressesSchema>;\n","export const ActivityLevels = {\n account: 'account',\n app: 'app',\n} as const;\nexport type ActivityLevel = keyof typeof ActivityLevels;\n","export type InputCurrencyMode = 'crypto' | 'quote';\n\nexport function whenInputCurrencyMode<TValue>(mode: InputCurrencyMode) {\n return <TMode extends Record<InputCurrencyMode, TValue>>(\n modes: TMode\n ): TMode[InputCurrencyMode] => modes[mode];\n}\n","export const OnChainActivityStatuses = {\n pending: 'pending',\n success: 'success',\n failed: 'failed',\n} as const;\nexport type OnChainActivityStatus = keyof typeof OnChainActivityStatuses;\n","export const OnChainActivityTypes = {\n deploySmartContract: 'deploySmartContract',\n executeSmartContract: 'executeSmartContract',\n lockAsset: 'lockAsset',\n sendAsset: 'sendAsset',\n receiveAsset: 'receiveAsset',\n swapAssets: 'swapAssets',\n} as const;\nexport type OnChainActivityType = keyof typeof OnChainActivityTypes;\n\nexport const WalletActivityTypes = {\n connectApp: 'connectApp',\n signMessage: 'signMessage',\n} as const;\nexport type WalletActivityType = keyof typeof WalletActivityTypes;\n\nexport const GeneralActivityTypes = {\n walletAdded: 'walletAdded',\n receiveAnnouncement: 'receiveAnnouncement',\n featureWaitlistNotification: 'featureWaitlistNotification',\n} as const;\nexport type GeneralActivityType = keyof typeof GeneralActivityTypes;\n\nexport type ActivityType = OnChainActivityType | WalletActivityType | GeneralActivityType;\n","import {\n Brc20Asset,\n BtcAsset,\n CryptoAsset,\n FungibleCryptoAsset,\n InscriptionAsset,\n NativeCryptoAsset,\n NonFungibleCryptoAsset,\n RuneAsset,\n Sip10Asset,\n Src20Asset,\n StampAsset,\n StxAsset,\n} from './asset.model';\nimport { Sip9Asset } from './sip9-asset.model';\n\nexport function isFungibleAsset(asset: CryptoAsset): asset is FungibleCryptoAsset {\n return asset.category === 'fungible';\n}\n\nexport function isNonFungibleAsset(asset: CryptoAsset): asset is NonFungibleCryptoAsset {\n return asset.category === 'nft';\n}\n\nexport function isBtcAsset(asset: CryptoAsset): asset is BtcAsset {\n return asset.protocol === 'nativeBtc';\n}\n\nexport function isStxAsset(asset: CryptoAsset): asset is StxAsset {\n return asset.protocol === 'nativeStx';\n}\n\nexport function isNativeAsset(asset: CryptoAsset): asset is NativeCryptoAsset {\n return isBtcAsset(asset) || isStxAsset(asset);\n}\n\nexport function isSip10Asset(asset: CryptoAsset): asset is Sip10Asset {\n return asset.protocol === 'sip10';\n}\n\nexport function isSwappableAsset(asset: CryptoAsset): asset is NativeCryptoAsset | Sip10Asset {\n return isNativeAsset(asset) || isSip10Asset(asset);\n}\n\nexport function isBrc20Asset(asset: CryptoAsset): asset is Brc20Asset {\n return asset.protocol === 'brc20';\n}\n\nexport function isSrc20Asset(asset: CryptoAsset): asset is Src20Asset {\n return asset.protocol === 'src20';\n}\n\nexport function isRuneAsset(asset: CryptoAsset): asset is RuneAsset {\n return asset.protocol === 'rune';\n}\n\nexport function isInscriptionAsset(asset: CryptoAsset): asset is InscriptionAsset {\n return asset.protocol === 'inscription';\n}\n\nexport function isStampAsset(asset: CryptoAsset): asset is StampAsset {\n return asset.protocol === 'stamp';\n}\n\nexport function isSip9Asset(asset: CryptoAsset): asset is Sip9Asset {\n return asset.protocol === 'sip9';\n}\n","import { InscriptionMimeType } from '../inscription-mime-type.model';\nimport { Sip9Asset } from './sip9-asset.model';\n\nexport const CryptoAssetChains = {\n bitcoin: 'bitcoin',\n stacks: 'stacks',\n} as const;\nexport const CryptoAssetCategories = {\n fungible: 'fungible',\n nft: 'nft',\n} as const;\nexport const FungibleCryptoAssetProtocols = {\n nativeBtc: 'nativeBtc',\n nativeStx: 'nativeStx',\n sip10: 'sip10',\n brc20: 'brc20',\n src20: 'src20',\n rune: 'rune',\n} as const;\nexport const NonFungibleCryptoAssetProtocols = {\n stamp: 'stamp',\n sip9: 'sip9',\n inscription: 'inscription',\n} as const;\nexport const CryptoAssetProtocols = {\n ...FungibleCryptoAssetProtocols,\n ...NonFungibleCryptoAssetProtocols,\n} as const;\n\nexport type CryptoAssetChain = keyof typeof CryptoAssetChains;\nexport type CryptoAssetCategory = keyof typeof CryptoAssetCategories;\nexport type FungibleCryptoAssetProtocol = keyof typeof FungibleCryptoAssetProtocols;\nexport type NonFungibleCryptoAssetProtocol = keyof typeof NonFungibleCryptoAssetProtocols;\nexport type CryptoAssetProtocol = FungibleCryptoAssetProtocol | NonFungibleCryptoAssetProtocol;\n\nexport interface BaseCryptoAsset {\n readonly chain: CryptoAssetChain;\n readonly category: CryptoAssetCategory;\n readonly protocol: CryptoAssetProtocol;\n}\n\n// Fungible asset types\ninterface BaseFungibleCryptoAsset extends BaseCryptoAsset {\n readonly category: 'fungible';\n readonly protocol: FungibleCryptoAssetProtocol;\n readonly symbol: string;\n readonly decimals: number;\n readonly hasMemo: boolean;\n}\nexport interface BtcAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'nativeBtc';\n readonly name: 'Bitcoin';\n readonly symbol: 'BTC';\n}\nexport interface StxAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'nativeStx';\n readonly name: 'Stacks';\n readonly symbol: 'STX';\n}\nexport interface Brc20Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'brc20';\n readonly symbol: string;\n}\nexport interface Src20Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'src20';\n readonly id: string;\n readonly symbol: string;\n readonly deploy_tx: string;\n readonly deploy_img: string;\n}\nexport interface RuneAsset extends BaseFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'rune';\n readonly spacedRuneName: string;\n readonly runeName: string;\n readonly symbol: string;\n}\nexport interface Sip10Asset extends BaseFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'sip10';\n readonly name: string;\n readonly canTransfer: boolean;\n readonly assetId: string;\n readonly contractId: string;\n readonly imageCanonicalUri: string;\n readonly symbol: string;\n}\nexport type NativeCryptoAsset = BtcAsset | StxAsset;\nexport type FungibleCryptoAsset =\n | NativeCryptoAsset\n | Sip10Asset\n | Brc20Asset\n | Src20Asset\n | RuneAsset;\n\n// NFT asset types\nexport interface BaseNonFungibleCryptoAsset extends BaseCryptoAsset {\n readonly category: 'nft';\n readonly protocol: NonFungibleCryptoAssetProtocol;\n}\nexport interface InscriptionAsset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'inscription';\n readonly id: string;\n readonly mimeType: InscriptionMimeType;\n readonly number: number;\n readonly address: string;\n readonly title: string;\n readonly txid: string;\n readonly output: string;\n readonly offset: string;\n readonly preview: string;\n readonly src: string;\n readonly thumbnailSrc?: string;\n readonly value: string;\n readonly genesisBlockHash: string;\n readonly genesisTimestamp: number;\n readonly genesisBlockHeight: number;\n}\nexport interface StampAsset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'bitcoin';\n readonly protocol: 'stamp';\n readonly stamp: number;\n readonly stampUrl: string;\n readonly stampExplorerUrl: string;\n readonly blockHeight: number;\n}\n\nexport type NonFungibleCryptoAsset = InscriptionAsset | StampAsset | Sip9Asset;\n\nexport type CryptoAsset = FungibleCryptoAsset | NonFungibleCryptoAsset;\n\nexport interface FungibleAssetId {\n protocol: FungibleCryptoAssetProtocol;\n id: string;\n}\n","import { Money } from '../money.model';\nimport { BaseNonFungibleCryptoAsset } from './asset.model';\n\nexport const sip9ContentTypes = [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/bmp',\n 'image/tiff',\n 'image/avif',\n 'video/mp4',\n 'video/webm',\n 'video/mov',\n 'video/quicktime',\n 'video/avi',\n 'video/x-msvideo',\n 'video/ogg',\n 'audio/mpeg',\n 'audio/mp3',\n 'audio/wav',\n 'audio/x-wav',\n 'audio/ogg',\n 'audio/aac',\n 'audio/flac',\n 'audio/webm',\n 'model/gltf+json',\n 'model/gltf-binary',\n 'application/octet-stream',\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/pdf',\n 'application/json',\n 'text/javascript',\n 'application/javascript',\n 'application/zip',\n 'unknown',\n '',\n] as const;\n\nexport type Sip9ContentType = (typeof sip9ContentTypes)[number];\n\nexport interface Sip9Collection {\n name: string;\n collectionExplorerUrl: string;\n totalItems?: number;\n floorPrice?: Money;\n latestSale?: Money;\n}\n\nexport interface Sip9AssetContent {\n contentUrl: string;\n contentType: Sip9ContentType;\n}\n\nexport interface Sip9Attribute {\n traitType: string;\n value: any;\n rarityPercent?: number;\n}\n\nexport interface Sip9Asset extends BaseNonFungibleCryptoAsset {\n readonly chain: 'stacks';\n readonly protocol: 'sip9';\n readonly assetId: string;\n readonly contractId: string;\n readonly tokenId: number;\n readonly name: string;\n readonly description: string;\n readonly content: Sip9AssetContent;\n readonly attributes?: Sip9Attribute[];\n readonly collection?: Sip9Collection;\n readonly creator?: string;\n readonly rarityRank?: number;\n}\n","import { z } from 'zod';\n\n// Branded type for Bitcoin addresses\nexport type BitcoinAddress = string & { readonly __brand: unique symbol };\n\nexport const bitcoinUnitSchema = z.enum(['bitcoin', 'satoshi']);\nexport type BitcoinUnit = z.infer<typeof bitcoinUnitSchema>;\n\nexport type BitcoinUnitSymbol = 'BTC' | 'sat';\n\nexport interface BitcoinUnitInfo {\n name: BitcoinUnit;\n symbol: BitcoinUnitSymbol;\n decimal: string;\n}\n","export const bnsContractAddress = {\n mainnet: 'SP2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D96YPGZF',\n testnet: 'ST2QEZ06AGJ3RKJPBV14SY1V5BBFNAW33D9SZJQ0M',\n};\n\nexport const bnsContractName = 'BNS-V2';\n\nexport interface BnsName {\n owner: string;\n name: string;\n namespace: string;\n fullName: string;\n renewalHeight: number;\n registeredAtBlockNumber: number;\n}\n\nexport interface BnsProfile {\n bnsName: BnsName;\n profileData: BnsProfileData;\n}\n\nexport interface BnsProfileData {\n name?: string;\n bio?: string;\n website?: string;\n pfpUrl?: string;\n location?: string;\n addresses?: BnsProfileDataAddresses;\n}\n\nexport interface BnsProfileDataAddresses {\n bitcoinPayment?: string;\n bitcoinOrdinal?: string;\n solana?: string;\n ethereum?: string;\n}\n","import type BigNumber from 'bignumber.js';\n\nexport interface AverageBitcoinFeeRates {\n fastestFee: BigNumber;\n halfHourFee: BigNumber;\n hourFee: BigNumber;\n}\n\nexport const btcTxTimeMap: Record<keyof AverageBitcoinFeeRates, string> = {\n fastestFee: '~10 – 20min',\n halfHourFee: '~30 min',\n hourFee: '~1 hour+',\n};\n\nexport enum BtcFeeType {\n High = 'High',\n Standard = 'Standard',\n Low = 'Low',\n}\n","import { Blockchain } from '../types';\nimport { StacksFeeEstimate } from './stacks-fees.model';\n\nexport enum FeeTypes {\n Low,\n Middle,\n High,\n Custom,\n Unknown,\n}\n\nexport enum FeeCalculationTypes {\n Api = 'api',\n Default = 'default',\n DefaultSimulated = 'default-simulated',\n FeesCapped = 'fees-capped',\n TokenTransferSpecific = 'token-transfer-specific',\n}\n\nexport interface Fees {\n blockchain: Blockchain;\n estimates: StacksFeeEstimate[];\n calculation: FeeCalculationTypes;\n}\n","import { Money } from '../money.model';\nimport { Blockchain } from '../types';\n\nexport const transactionFeeTiers = ['low', 'standard', 'high'] as const;\nexport type TransactionFeeTier = (typeof transactionFeeTiers)[number];\n\nexport interface TransactionFees {\n readonly chain: Blockchain;\n readonly options: Record<TransactionFeeTier, TransactionFeeQuote>;\n}\n\nexport const transactionFeeQuoteType = [\n 'flat',\n 'bitcoinFeeRate',\n 'stacksFeeRate',\n 'evm1559',\n] as const;\nexport type TransactionFeeQuoteType = (typeof transactionFeeQuoteType)[number];\n\nexport interface BaseTransactionFeeQuote {\n readonly type: TransactionFeeQuoteType;\n readonly value: Money;\n}\n\nexport interface FlatTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'flat';\n}\n\nexport interface BitcoinTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'bitcoinFeeRate';\n readonly rate: number;\n readonly rateUnit: 'sats/vB';\n readonly estimatedTxSize: number;\n readonly sizeUnit: 'vB';\n}\n\nexport interface StacksTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'stacksFeeRate';\n readonly rate: number;\n readonly rateUnit: 'µSTX/byte';\n readonly estimatedTxSize: number;\n readonly sizeUnit: 'byte';\n}\n\nexport interface EvmTransactionFeeQuote extends BaseTransactionFeeQuote {\n readonly type: 'evm1559';\n readonly baseFeePerGas: Money;\n readonly priorityFeePerGas: Money;\n readonly gasLimit: number;\n}\n\nexport type TransactionFeeQuote =\n | FlatTransactionFeeQuote\n | BitcoinTransactionFeeQuote\n | StacksTransactionFeeQuote\n | EvmTransactionFeeQuote;\n","/**\n * Inscriptions contain arbitrary data. When retrieving an inscription, it should be\n * classified into one of the types below, indicating that the app can handle it\n * appropriately and securely. Inscriptions of types not ready to be handled by the\n * app should be classified as \"other\".\n */\nexport const inscriptionMimeTypes = [\n 'audio',\n 'gltf',\n 'html',\n 'image',\n 'svg',\n 'text',\n 'video',\n 'other',\n] as const;\n\nexport type InscriptionMimeType = (typeof inscriptionMimeTypes)[number];\n","import type { Currency, QuoteCurrency } from './currencies.model';\nimport type { Money } from './money.model';\n\ninterface MarketPair {\n readonly base: Currency;\n readonly quote: QuoteCurrency;\n}\n\nexport function createMarketPair(base: Currency, quote: QuoteCurrency): MarketPair {\n return Object.freeze({ base, quote });\n}\n\nexport function formatMarketPair({ base, quote }: MarketPair) {\n return `${base}/${quote}`;\n}\n\nexport interface MarketData {\n readonly pair: MarketPair;\n readonly price: Money;\n}\n\nexport function createMarketData(pair: MarketPair, price: Money): MarketData {\n if (pair.quote !== price.symbol)\n throw new Error('Cannot create market data when price does not match quote');\n return Object.freeze({ pair, price });\n}\n\nexport const historicalPeriods = ['1d', '1w', '1m', '3m', '6m', '1y'] as const;\nexport type HistoricalPeriod = (typeof historicalPeriods)[number];\n\nexport interface MarketPriceSnapshot {\n price: Money;\n timestamp: number;\n}\n\nexport interface MarketPriceHistory {\n period: HistoricalPeriod;\n changePercentage: number;\n prices: MarketPriceSnapshot[];\n}\n\nexport interface MarketStats {\n readonly priceChange: Partial<Record<HistoricalPeriod, number | null>>;\n readonly marketCap?: number;\n}\n","import { z } from 'zod';\n\nimport { Blockchain } from '../types';\nimport { networkConfigurationSchema } from './network.schema';\n\nexport const HIRO_API_BASE_URL_MAINNET = 'https://api.hiro.so';\nexport const HIRO_API_BASE_URL_TESTNET = 'https://api.testnet.hiro.so';\nexport const HIRO_API_BASE_URL_NAKAMOTO_TESTNET = 'https://api.nakamoto.testnet.hiro.so';\n\nexport const HIRO_API_BASE_URL_MAINNET_EXTENDED = 'https://api.hiro.so/extended/v1';\nexport const HIRO_API_BASE_URL_TESTNET_EXTENDED = 'https://api.testnet.hiro.so/extended';\n\nexport const BITCOIN_API_BASE_URL_MAINNET = 'https://leather.mempool.space/api';\nexport const BITCOIN_API_BASE_URL_TESTNET3 = 'https://leather.mempool.space/testnet/api';\nexport const BITCOIN_API_BASE_URL_TESTNET4 = 'https://leather.mempool.space/testnet4/api';\nexport const BITCOIN_API_BASE_URL_SIGNET = 'https://mempool.space/signet/api';\n\nexport const BESTINSLOT_API_BASE_URL_MAINNET = 'https://leatherapi.bestinslot.xyz/v3';\nexport const BESTINSLOT_API_BASE_URL_TESTNET = 'https://leatherapi_testnet.bestinslot.xyz/v3';\n\nexport const BNS_V2_API_BASE_URL = 'https://api.bnsv2.com';\n\nexport const EMILY_API_BASE_URL_MAINNET = 'https://sbtc-emily.com';\nexport const EMILY_API_BASE_URL_TESTNET = 'https://beta.sbtc-emily.com';\nexport const EMILY_API_BASE_URL_DEVENV = 'http://localhost:3031';\n\n// Copied from @stacks/transactions to avoid dependencies\nexport enum ChainId {\n Testnet = 2147483648,\n Mainnet = 1,\n}\n\nexport enum WalletDefaultNetworkConfigurationIds {\n mainnet = 'mainnet',\n testnet = 'testnet',\n testnet4 = 'testnet4',\n signet = 'signet',\n sbtcTestnet = 'sbtcTestnet',\n sbtcDevenv = 'sbtcDevenv',\n devnet = 'devnet',\n}\n\nexport const defaultNetworkConfigurationsSchema = z.enum([\n 'mainnet',\n 'testnet',\n 'testnet4',\n 'signet',\n 'sbtcTestnet',\n 'sbtcDevenv',\n 'devnet',\n]);\nexport type DefaultNetworkConfigurations = z.infer<typeof defaultNetworkConfigurationsSchema>;\n\nexport const supportedBlockchains = ['stacks', 'bitcoin'] as const;\n\nexport type SupportedBlockchains = (typeof supportedBlockchains)[number];\n\nexport const networkModes = ['mainnet', 'testnet'] as const;\nexport const testnetModes = ['testnet', 'regtest', 'signet'] as const;\n\nexport const bitcoinNetworks = ['mainnet', 'testnet3', 'testnet4', 'regtest', 'signet'] as const;\nexport type BitcoinNetwork = (typeof bitcoinNetworks)[number];\n\nexport type NetworkModes = (typeof networkModes)[number];\ntype BitcoinTestnetModes = (typeof testnetModes)[number];\n\nexport function bitcoinNetworkToNetworkMode(network: BitcoinNetwork): BitcoinNetworkModes {\n switch (network) {\n case 'mainnet':\n return 'mainnet';\n case 'testnet3':\n return 'testnet';\n case 'testnet4':\n return 'testnet';\n case 'regtest':\n return 'regtest';\n case 'signet':\n return 'signet';\n default:\n // TODO: Needs exhaustive check. Cannot import 'assertUnreachable' since 'utils' package depends on 'models'.\n // Ideally this function should live in utils, but it's currently widely used in the extension.\n throw new Error(`Unhandled case: ${network}`);\n }\n}\n\nexport type BitcoinNetworkModes = NetworkModes | BitcoinTestnetModes;\n\ninterface BaseChainConfig {\n blockchain: Blockchain;\n}\n\nexport interface BitcoinChainConfig extends BaseChainConfig {\n blockchain: 'bitcoin';\n bitcoinUrl: string;\n bitcoinNetwork: BitcoinNetwork;\n mode: BitcoinNetworkModes;\n}\n\nexport interface StacksChainConfig extends BaseChainConfig {\n blockchain: 'stacks';\n url: string;\n /** The chainId of the network (or parent network if this is a subnet) */\n chainId: ChainId;\n /** An additional chainId for subnets. Indicated a subnet if defined and is mainly used for signing. */\n subnetChainId?: ChainId;\n}\n\nexport type NetworkConfiguration = z.infer<typeof networkConfigurationSchema>;\n\nconst networkMainnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.mainnet,\n name: 'Mainnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Mainnet,\n url: HIRO_API_BASE_URL_MAINNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'mainnet',\n mode: 'mainnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_MAINNET,\n },\n },\n};\n\nconst networkTestnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.testnet,\n name: 'Testnet3',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'testnet3',\n mode: 'testnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_TESTNET3,\n },\n },\n};\n\nconst networkTestnet4: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.testnet4,\n name: 'Testnet4',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'testnet4',\n mode: 'testnet',\n bitcoinUrl: BITCOIN_API_BASE_URL_TESTNET4,\n },\n },\n};\n\nconst networkSignet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.signet,\n name: 'Signet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'signet',\n mode: 'signet',\n bitcoinUrl: BITCOIN_API_BASE_URL_SIGNET,\n },\n },\n};\n\nconst networkSbtcTestnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.sbtcTestnet,\n name: 'sBTC Testnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: HIRO_API_BASE_URL_TESTNET,\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'https://beta.sbtc-mempool.tech/api/proxy',\n },\n },\n};\n\nconst networkSbtcDevenv: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.sbtcDevenv,\n name: 'sBTC Devenv',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: 'http://localhost:3999',\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'http://localhost:3000/api/proxy',\n },\n },\n};\n\nconst networkDevnet: NetworkConfiguration = {\n id: WalletDefaultNetworkConfigurationIds.devnet,\n name: 'Devnet',\n chain: {\n stacks: {\n blockchain: 'stacks',\n chainId: ChainId.Testnet,\n url: 'http://localhost:3999',\n },\n bitcoin: {\n blockchain: 'bitcoin',\n bitcoinNetwork: 'regtest',\n mode: 'regtest',\n bitcoinUrl: 'http://localhost:18443',\n },\n },\n};\n\nexport const defaultCurrentNetwork: NetworkConfiguration = networkMainnet;\n\nexport const defaultNetworksKeyedById: Record<\n WalletDefaultNetworkConfigurationIds,\n NetworkConfiguration\n> = {\n [WalletDefaultNetworkConfigurationIds.mainnet]: networkMainnet,\n [WalletDefaultNetworkConfigurationIds.testnet4]: networkTestnet4,\n [WalletDefaultNetworkConfigurationIds.testnet]: networkTestnet,\n [WalletDefaultNetworkConfigurationIds.signet]: networkSignet,\n [WalletDefaultNetworkConfigurationIds.sbtcTestnet]: networkSbtcTestnet,\n [WalletDefaultNetworkConfigurationIds.sbtcDevenv]: networkSbtcDevenv,\n [WalletDefaultNetworkConfigurationIds.devnet]: networkDevnet,\n};\n","import { z } from 'zod';\n\nimport { bitcoinNetworks, networkModes, testnetModes } from './network.model';\n\nexport const bitcoinNetworkModesSchema = z.enum([...networkModes, ...testnetModes]);\n\nexport const bitcoinNetworkSchema = z.enum([...bitcoinNetworks]);\n\nexport const networkConfigurationSchema = z.object({\n name: z.string(),\n id: z.string(),\n chain: z.object({\n bitcoin: z.object({\n blockchain: z.literal('bitcoin'),\n bitcoinUrl: z.string(),\n bitcoinNetwork: bitcoinNetworkSchema,\n mode: bitcoinNetworkModesSchema,\n }),\n stacks: z.object({\n blockchain: z.literal('stacks'),\n url: z.string(),\n chainId: z.number(),\n subnetChainId: z.number().optional(),\n }),\n }),\n});\n","import { z } from 'zod';\n\nimport { Blockchain } from './types';\n\nexport const accountDisplayPreferenceSchema = z.enum(['native-segwit', 'taproot', 'bns', 'stacks']);\nexport type AccountDisplayPreference = z.infer<typeof accountDisplayPreferenceSchema>;\n\nexport interface AccountDisplayPreferenceInfo {\n type: AccountDisplayPreference;\n blockchain: Blockchain;\n name: string;\n}\n\nexport const analyticsPreferenceSchema = z.enum(['consent-given', 'rejects-tracking']);\nexport type AnalyticsPreference = z.infer<typeof analyticsPreferenceSchema>;\n\nexport const emailAddressSchema = z.email({ error: 'Invalid email address' });\nexport type EmailAddress = z.infer<typeof emailAddressSchema>;\n","export const StacksProtocolIds = {\n alex: 'alex',\n arkadiko: 'arkadiko',\n bitflow: 'bitflow',\n fastPool: 'fast-pool',\n granite: 'granite',\n hermetica: 'hermetica',\n sbtcBridge: 'sbtc-bridge',\n stackingDao: 'stacking-dao',\n velar: 'velar',\n xverse: 'xverse',\n zest: 'zest',\n} as const;\n\nexport type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds];\n\nexport interface StacksProtocol {\n readonly id: StacksProtocolId;\n readonly name: string;\n readonly url: string;\n readonly logo: string;\n readonly description?: string;\n}\n\nexport const stacksProtocolActions = [\n 'swap',\n 'add-liquidity',\n 'remove-liquidity',\n 'stake',\n 'unstake',\n 'stack',\n 'unstack',\n 'deposit',\n 'withdraw',\n 'borrow',\n 'repay',\n 'claim-rewards',\n 'bridge',\n] as const;\n\nexport type StacksProtocolAction = (typeof stacksProtocolActions)[number];\n","import { CryptoAssetId } from '../assets/asset-id.model';\nimport { NativeCryptoAsset, Sip10Asset } from '../assets/asset.model';\nimport { Money } from '../money.model';\nimport type { StacksProtocol } from '../protocols/stacks-protocol.model';\n\nexport type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset;\n\nexport interface SwapAsset {\n readonly asset: SwappableFungibleCryptoAsset;\n readonly providerAssets: SwapProviderAsset[];\n}\n\nexport const swapProviderIds = ['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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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@leather.io/models",
3
3
  "author": "Leather.io contact@leather.io",
4
4
  "description": "Leather models and types",
5
- "version": "0.53.0",
5
+ "version": "0.54.0",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/leather-io/mono/tree/dev/packages/models",
8
8
  "repository": {
@@ -28,8 +28,8 @@
28
28
  "prettier": "3.5.1",
29
29
  "tsdown": "0.16.5",
30
30
  "typescript": "5.9.3",
31
- "@leather.io/tsconfig-config": "0.11.1",
32
- "@leather.io/prettier-config": "0.9.0"
31
+ "@leather.io/prettier-config": "0.9.0",
32
+ "@leather.io/tsconfig-config": "0.11.1"
33
33
  },
34
34
  "keywords": [
35
35
  "leather",
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ export * from './money.model';
22
22
  export * from './network/network.model';
23
23
  export * from './network/network.schema';
24
24
  export * from './settings.model';
25
+ export * from './protocols/stacks-protocol.model';
25
26
  export * from './swap/swap.model';
26
27
  export * from './token-analytics.model';
27
28
  export * from './transactions/bitcoin-transaction.model';
@@ -43,11 +44,3 @@ export * from './yield/providers/zest-position.model';
43
44
  export * from './yield/yield-position.base.model';
44
45
  export * from './yield/yield-position.model';
45
46
  export * from './yield/yield-product.model';
46
- export * from './yield/yield-provider.model';
47
- export * from './activity/activity-level.model';
48
- export * from './activity/activity-status.model';
49
- export * from './activity/activity-type.model';
50
- export * from './activity/activity.model';
51
- export * from './account.model';
52
- export * from './bns.model';
53
- export * from './swap/swap.model';
@@ -0,0 +1,41 @@
1
+ export const StacksProtocolIds = {
2
+ alex: 'alex',
3
+ arkadiko: 'arkadiko',
4
+ bitflow: 'bitflow',
5
+ fastPool: 'fast-pool',
6
+ granite: 'granite',
7
+ hermetica: 'hermetica',
8
+ sbtcBridge: 'sbtc-bridge',
9
+ stackingDao: 'stacking-dao',
10
+ velar: 'velar',
11
+ xverse: 'xverse',
12
+ zest: 'zest',
13
+ } as const;
14
+
15
+ export type StacksProtocolId = (typeof StacksProtocolIds)[keyof typeof StacksProtocolIds];
16
+
17
+ export interface StacksProtocol {
18
+ readonly id: StacksProtocolId;
19
+ readonly name: string;
20
+ readonly url: string;
21
+ readonly logo: string;
22
+ readonly description?: string;
23
+ }
24
+
25
+ export const stacksProtocolActions = [
26
+ 'swap',
27
+ 'add-liquidity',
28
+ 'remove-liquidity',
29
+ 'stake',
30
+ 'unstake',
31
+ 'stack',
32
+ 'unstack',
33
+ 'deposit',
34
+ 'withdraw',
35
+ 'borrow',
36
+ 'repay',
37
+ 'claim-rewards',
38
+ 'bridge',
39
+ ] as const;
40
+
41
+ export type StacksProtocolAction = (typeof stacksProtocolActions)[number];
@@ -1,6 +1,7 @@
1
1
  import { CryptoAssetId } from '../assets/asset-id.model';
2
2
  import { NativeCryptoAsset, Sip10Asset } from '../assets/asset.model';
3
3
  import { Money } from '../money.model';
4
+ import type { StacksProtocol } from '../protocols/stacks-protocol.model';
4
5
 
5
6
  export type SwappableFungibleCryptoAsset = NativeCryptoAsset | Sip10Asset;
6
7
 
@@ -36,7 +37,7 @@ export interface BaseSwapQuote {
36
37
  readonly targetAsset: SwappableFungibleCryptoAsset;
37
38
  readonly baseAmount: Money;
38
39
  readonly targetAmount: Money;
39
- readonly dexPath: SwapDex[];
40
+ readonly dexPath: StacksProtocol[];
40
41
  readonly assetPath: (NativeCryptoAsset | Sip10Asset)[];
41
42
  readonly isExecutable: boolean;
42
43
  readonly executionConstraints: ExecutionConstraint[];
@@ -79,13 +80,6 @@ export interface SbtcBridgeSwapQuote extends BaseSwapQuote {
79
80
  };
80
81
  }
81
82
 
82
- export interface SwapDex {
83
- readonly name: string;
84
- readonly url: string;
85
- readonly logo: string;
86
- readonly description: string;
87
- }
88
-
89
83
  export const swapExecutionTypes = ['stacks-contract-call', 'sbtc-bridge-deposit'] as const;
90
84
  export type SwapExecutionType = (typeof swapExecutionTypes)[number];
91
85
 
@@ -3,7 +3,7 @@ export interface TokenHolderSegment {
3
3
  readonly balance: number;
4
4
  readonly contracts: { readonly count: number; readonly balance: number };
5
5
  readonly multisigs: { readonly count: number; readonly balance: number };
6
- readonly individuals: { readonly count: number; readonly balance: number };
6
+ readonly standard: { readonly count: number; readonly balance: number };
7
7
  }
8
8
 
9
9
  export interface TokenAnalytics {
@@ -1,3 +1,4 @@
1
+ import { StacksProtocol, StacksProtocolId } from '../../protocols/stacks-protocol.model';
1
2
  import type {
2
3
  BitflowAmmLpPosition,
3
4
  BitflowAmmStakingPosition,
@@ -21,7 +22,6 @@ import {
21
22
  YieldProductKeys,
22
23
  YieldProductToProviderMap,
23
24
  } from '../yield-product.model';
24
- import { YieldProvider, YieldProviderKey } from '../yield-provider.model';
25
25
 
26
26
  export function isBitflowAmmLpPosition(pos: YieldPosition): pos is BitflowAmmLpPosition {
27
27
  return pos.product === YieldProductKeys.bitflowAmmLp;
@@ -61,7 +61,7 @@ export function isStackingDaoPooledPosition(
61
61
 
62
62
  export function filterPositionsByProvider(
63
63
  positions: YieldPosition[],
64
- provider: YieldProviderKey
64
+ provider: StacksProtocolId
65
65
  ): YieldPosition[] {
66
66
  return positions.filter(p => p.provider === provider);
67
67
  }
@@ -111,7 +111,7 @@ export function sortPositionsByUpdateTime(
111
111
  });
112
112
  }
113
113
 
114
- export function getProviderForProduct(product: YieldProductKey): YieldProviderKey {
114
+ export function getProviderForProduct(product: YieldProductKey): StacksProtocolId {
115
115
  return YieldProductToProviderMap[product];
116
116
  }
117
117
 
@@ -119,11 +119,11 @@ export function getCategoryForProduct(product: YieldProduct): YieldProductCatego
119
119
  return product.category;
120
120
  }
121
121
 
122
- export function isProductInProvider(product: YieldProductKey, provider: YieldProviderKey): boolean {
122
+ export function isProductInProvider(product: YieldProductKey, provider: StacksProtocolId): boolean {
123
123
  return YieldProductToProviderMap[product] === provider;
124
124
  }
125
125
 
126
- export function getProductsForProvider(provider: YieldProviderKey): YieldProductKey[] {
126
+ export function getProductsForProvider(provider: StacksProtocolId): YieldProductKey[] {
127
127
  return Object.entries(YieldProductToProviderMap)
128
128
  .filter(([_, p]) => p === provider)
129
129
  .map(([product]) => product as YieldProductKey);
@@ -138,8 +138,8 @@ export function getProductsInCategory(
138
138
 
139
139
  export function groupPositionsByProvider(
140
140
  positions: YieldPosition[]
141
- ): Record<YieldProviderKey, YieldPosition[]> {
142
- const grouped: Partial<Record<YieldProviderKey, YieldPosition[]>> = {};
141
+ ): Record<StacksProtocolId, YieldPosition[]> {
142
+ const grouped: Partial<Record<StacksProtocolId, YieldPosition[]>> = {};
143
143
 
144
144
  for (const position of positions) {
145
145
  const provider = position.provider;
@@ -149,7 +149,7 @@ export function groupPositionsByProvider(
149
149
  grouped[provider].push(position);
150
150
  }
151
151
 
152
- return grouped as Record<YieldProviderKey, YieldPosition[]>;
152
+ return grouped as Record<StacksProtocolId, YieldPosition[]>;
153
153
  }
154
154
 
155
155
  export function groupPositionsByCategory(
@@ -188,7 +188,7 @@ export function getPositionsInCategories(
188
188
 
189
189
  export function hasPositionsInProvider(
190
190
  positions: YieldPosition[],
191
- provider: YieldProviderKey
191
+ provider: StacksProtocolId
192
192
  ): boolean {
193
193
  return positions.some(p => p.provider === provider);
194
194
  }
@@ -204,8 +204,8 @@ export function hasPositionsInCategory(
204
204
 
205
205
  export function enrichPositionWithProvider<T extends YieldPosition>(
206
206
  position: T,
207
- provider: YieldProvider
208
- ): T & { providerData: YieldProvider } {
207
+ provider: StacksProtocol
208
+ ): T & { providerData: StacksProtocol } {
209
209
  return { ...position, providerData: provider };
210
210
  }
211
211
 
@@ -218,9 +218,9 @@ export function enrichPositionWithProduct<T extends YieldPosition>(
218
218
 
219
219
  export function enrichPositionWithMetadata<T extends YieldPosition>(
220
220
  position: T,
221
- provider: YieldProvider,
221
+ provider: StacksProtocol,
222
222
  product: YieldProduct
223
- ): T & { providerData: YieldProvider; productData: YieldProduct } {
223
+ ): T & { providerData: StacksProtocol; productData: YieldProduct } {
224
224
  return { ...position, providerData: provider, productData: product };
225
225
  }
226
226
 
@@ -3,13 +3,13 @@ import type { Money } from '../../money.model';
3
3
  import type { BaseYieldPosition } from '../yield-position.base.model';
4
4
 
5
5
  export interface LisaLiStxPosition extends BaseYieldPosition {
6
- provider: 'lisa';
6
+ provider: 'alex';
7
7
  product: 'lisa-listx';
8
8
  holding: LisaLstHolding;
9
9
  }
10
10
 
11
11
  export interface LisaLiquidStakingPosition extends BaseYieldPosition {
12
- provider: 'lisa';
12
+ provider: 'alex';
13
13
  product: 'lisa-liquid-staking';
14
14
  holding: LisaLstHolding;
15
15
  }
@@ -3,7 +3,7 @@ import type { Money } from '../../money.model';
3
3
  import type { BasePooledStackingPosition, BaseYieldPosition } from '../yield-position.base.model';
4
4
 
5
5
  interface BaseStackingDaoLstPosition extends BaseYieldPosition {
6
- provider: 'stackingdao';
6
+ provider: 'stacking-dao';
7
7
  withdrawalsBalance: Money;
8
8
  lstHolding?: StackingDaoLstHolding;
9
9
  withdrawals: StackingDaoLstWithdrawal[];
@@ -43,6 +43,6 @@ export interface StackingDaoLstWithdrawal {
43
43
  }
44
44
 
45
45
  export interface StackingDaoPooledStackingPosition extends BasePooledStackingPosition {
46
- provider: 'stackingdao';
46
+ provider: 'stacking-dao';
47
47
  product: 'stackingdao-pooled-stacking';
48
48
  }
@@ -1,10 +1,10 @@
1
1
  import type { Money } from '../money.model';
2
+ import type { StacksProtocolId } from '../protocols/stacks-protocol.model';
2
3
  import type { YieldProductKey } from './yield-product.model';
3
- import type { YieldProviderKey } from './yield-provider.model';
4
4
 
5
5
  export interface BaseYieldPosition {
6
6
  readonly id: string;
7
- readonly provider: YieldProviderKey;
7
+ readonly provider: StacksProtocolId;
8
8
  readonly product: YieldProductKey;
9
9
  readonly totalBalance: Money;
10
10
  readonly apy: number;
@@ -1,4 +1,4 @@
1
- import { YieldProviderKey, YieldProviderKeys } from './yield-provider.model';
1
+ import { StacksProtocolId, StacksProtocolIds } from '../protocols/stacks-protocol.model';
2
2
 
3
3
  export const YieldProductKeys = {
4
4
  bitflowAmmLp: 'bitflow-amm-lp',
@@ -32,29 +32,29 @@ export type YieldProductCategory =
32
32
  (typeof YieldProductCategories)[keyof typeof YieldProductCategories];
33
33
 
34
34
  export const YieldProductToProviderMap = {
35
- [YieldProductKeys.bitflowAmmLp]: YieldProviderKeys.bitflow,
36
- [YieldProductKeys.bitflowAmmStaking]: YieldProviderKeys.bitflow,
37
- [YieldProductKeys.zestBorrowMarket]: YieldProviderKeys.zest,
38
- [YieldProductKeys.graniteV1Earn]: YieldProviderKeys.granite,
39
- [YieldProductKeys.graniteV1Borrow]: YieldProviderKeys.granite,
40
- [YieldProductKeys.stackingDaoStstx]: YieldProviderKeys.stackingDao,
41
- [YieldProductKeys.stackingDaoStstxbtc]: YieldProviderKeys.stackingDao,
42
- [YieldProductKeys.stackingDaoPooledStacking]: YieldProviderKeys.stackingDao,
43
- [YieldProductKeys.lisaListx]: YieldProviderKeys.lisa,
44
- [YieldProductKeys.lisaLiquidStaking]: YieldProviderKeys.lisa,
45
- [YieldProductKeys.hermeticaUsdhStaking]: YieldProviderKeys.hermetica,
46
- [YieldProductKeys.velarAmmLp]: YieldProviderKeys.velar,
47
- [YieldProductKeys.velarPerps]: YieldProviderKeys.velar,
48
- [YieldProductKeys.velarAmmLpFarming]: YieldProviderKeys.velar,
49
- [YieldProductKeys.fastPoolPooledStacking]: YieldProviderKeys.fastPool,
50
- [YieldProductKeys.xversePooledStacking]: YieldProviderKeys.xverse,
35
+ [YieldProductKeys.bitflowAmmLp]: StacksProtocolIds.bitflow,
36
+ [YieldProductKeys.bitflowAmmStaking]: StacksProtocolIds.bitflow,
37
+ [YieldProductKeys.zestBorrowMarket]: StacksProtocolIds.zest,
38
+ [YieldProductKeys.graniteV1Earn]: StacksProtocolIds.granite,
39
+ [YieldProductKeys.graniteV1Borrow]: StacksProtocolIds.granite,
40
+ [YieldProductKeys.stackingDaoStstx]: StacksProtocolIds.stackingDao,
41
+ [YieldProductKeys.stackingDaoStstxbtc]: StacksProtocolIds.stackingDao,
42
+ [YieldProductKeys.stackingDaoPooledStacking]: StacksProtocolIds.stackingDao,
43
+ [YieldProductKeys.lisaListx]: StacksProtocolIds.alex,
44
+ [YieldProductKeys.lisaLiquidStaking]: StacksProtocolIds.alex,
45
+ [YieldProductKeys.hermeticaUsdhStaking]: StacksProtocolIds.hermetica,
46
+ [YieldProductKeys.velarAmmLp]: StacksProtocolIds.velar,
47
+ [YieldProductKeys.velarPerps]: StacksProtocolIds.velar,
48
+ [YieldProductKeys.velarAmmLpFarming]: StacksProtocolIds.velar,
49
+ [YieldProductKeys.fastPoolPooledStacking]: StacksProtocolIds.fastPool,
50
+ [YieldProductKeys.xversePooledStacking]: StacksProtocolIds.xverse,
51
51
  } as const;
52
52
 
53
53
  export type YieldProduct = BaseYieldProduct | PooledStackingYieldProduct;
54
54
 
55
55
  export interface BaseYieldProduct {
56
56
  readonly key: YieldProductKey;
57
- readonly provider: YieldProviderKey;
57
+ readonly provider: StacksProtocolId;
58
58
  readonly category: YieldProductCategory;
59
59
  readonly name: string;
60
60
  readonly url: string;
@@ -1,19 +0,0 @@
1
- export const YieldProviderKeys = {
2
- bitflow: 'bitflow',
3
- zest: 'zest',
4
- granite: 'granite',
5
- stackingDao: 'stackingdao',
6
- lisa: 'lisa',
7
- hermetica: 'hermetica',
8
- fastPool: 'fast-pool',
9
- xverse: 'xverse',
10
- velar: 'velar',
11
- } as const;
12
- export type YieldProviderKey = (typeof YieldProviderKeys)[keyof typeof YieldProviderKeys];
13
-
14
- export interface YieldProvider {
15
- readonly key: YieldProviderKey;
16
- readonly name: string;
17
- readonly logo: string;
18
- readonly url: string;
19
- }